From 93f06f119ad2ead465e0333bb1d51cebc6684a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Wed, 19 Nov 2025 19:23:46 +0800 Subject: [PATCH 01/12] =?UTF-8?q?upload=20WebUI=200.11.5=20Beta=20DashBoar?= =?UTF-8?q?d=20after=20Build=20Files=20commit=20hash=EF=BC=9Aebfe09b8606cb?= =?UTF-8?q?0ef99d915e9c3ed02cc944e7243?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webui/dist/assets/index-B2bHZpg3.css | 1 - webui/dist/assets/index-Br56hjqL.js | 157 +++++++++++++++++++++++++++ webui/dist/assets/index-Cp6kNbgY.css | 1 + webui/dist/assets/index-_H5_gB__.js | 157 --------------------------- webui/dist/index.html | 4 +- 5 files changed, 160 insertions(+), 160 deletions(-) delete mode 100644 webui/dist/assets/index-B2bHZpg3.css create mode 100644 webui/dist/assets/index-Br56hjqL.js create mode 100644 webui/dist/assets/index-Cp6kNbgY.css delete mode 100644 webui/dist/assets/index-_H5_gB__.js diff --git a/webui/dist/assets/index-B2bHZpg3.css b/webui/dist/assets/index-B2bHZpg3.css deleted file mode 100644 index 04780e74..00000000 --- a/webui/dist/assets/index-B2bHZpg3.css +++ /dev/null @@ -1 +0,0 @@ -*,: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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-600\/20{background-color:#dc262633}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-secondary\/50{background-color:hsl(var(--secondary) / .5)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500\/10{background-color:#eab3081a}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-orange-700:hover{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} diff --git a/webui/dist/assets/index-Br56hjqL.js b/webui/dist/assets/index-Br56hjqL.js new file mode 100644 index 00000000..944ec6d7 --- /dev/null +++ b/webui/dist/assets/index-Br56hjqL.js @@ -0,0 +1,157 @@ +function VV(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var bp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function St(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var _0={exports:{}},Wd={};var Fk;function GV(){if(Fk)return Wd;Fk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var l=null;if(s!==void 0&&(l=""+s),a.key!==void 0&&(l=""+a.key),"key"in a){s={};for(var u in a)u!=="key"&&(s[u]=a[u])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:s}}return Wd.Fragment=t,Wd.jsx=n,Wd.jsxs=n,Wd}var Uk;function YV(){return Uk||(Uk=1,_0.exports=GV()),_0.exports}var i=YV(),N0={exports:{}},Ve={};var Hk;function KV(){if(Hk)return Ve;Hk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(I){return I===null||typeof I!="object"?null:(I=g&&I[g]||I["@@iterator"],typeof I=="function"?I:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function N(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}N.prototype.isReactComponent={},N.prototype.setState=function(I,z){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,z,"setState")},N.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function E(){}E.prototype=N.prototype;function O(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}var A=O.prototype=new E;A.constructor=O,w(A,N.prototype),A.isPureReactComponent=!0;var C=Array.isArray;function k(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function R(I,z,Y){var ne=Y.ref;return{$$typeof:e,type:I,key:z,ref:ne!==void 0?ne:null,props:Y}}function L(I,z){return R(I.type,z,I.props)}function $(I){return typeof I=="object"&&I!==null&&I.$$typeof===e}function H(I){var z={"=":"=0",":":"=2"};return"$"+I.replace(/[=:]/g,function(Y){return z[Y]})}var V=/\/+/g;function F(I,z){return typeof I=="object"&&I!==null&&I.key!=null?H(""+I.key):z.toString(36)}function G(I){switch(I.status){case"fulfilled":return I.value;case"rejected":throw I.reason;default:switch(typeof I.status=="string"?I.then(k,k):(I.status="pending",I.then(function(z){I.status==="pending"&&(I.status="fulfilled",I.value=z)},function(z){I.status==="pending"&&(I.status="rejected",I.reason=z)})),I.status){case"fulfilled":return I.value;case"rejected":throw I.reason}}throw I}function B(I,z,Y,ne,se){var xe=typeof I;(xe==="undefined"||xe==="boolean")&&(I=null);var ee=!1;if(I===null)ee=!0;else switch(xe){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(I.$$typeof){case e:case t:ee=!0;break;case m:return ee=I._init,B(ee(I._payload),z,Y,ne,se)}}if(ee)return se=se(I),ee=ne===""?"."+F(I,0):ne,C(se)?(Y="",ee!=null&&(Y=ee.replace(V,"$&/")+"/"),B(se,z,Y,"",function(ve){return ve})):se!=null&&($(se)&&(se=L(se,Y+(se.key==null||I&&I.key===se.key?"":(""+se.key).replace(V,"$&/")+"/")+ee)),z.push(se)),1;ee=0;var ae=ne===""?".":ne+":";if(C(I))for(var Z=0;Z>>1,te=B[K];if(0>>1;Ka(Y,U))nea(se,Y)?(B[K]=se,B[ne]=U,K=ne):(B[K]=Y,B[z]=U,K=z);else if(nea(se,U))B[K]=se,B[ne]=U,K=ne;else break e}}return D}function a(B,D){var U=B.sortIndex-D.sortIndex;return U!==0?U:B.id-D.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,w=!1,b=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function A(B){for(var D=n(f);D!==null;){if(D.callback===null)r(f);else if(D.startTime<=B)r(f),D.sortIndex=D.expirationTime,t(d,D);else break;D=n(f)}}function C(B){if(w=!1,A(B),!j)if(n(d)!==null)j=!0,k||(k=!0,H());else{var D=n(f);D!==null&&G(C,D.startTime-B)}}var k=!1,T=-1,M=5,R=-1;function L(){return b?!0:!(e.unstable_now()-RB&&L());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var te=K(p.expirationTime<=B);if(B=e.unstable_now(),typeof te=="function"){p.callback=te,A(B),D=!0;break t}p===n(d)&&r(d),A(B)}else r(d);p=n(d)}if(p!==null)D=!0;else{var I=n(f);I!==null&&G(C,I.startTime-B),D=!1}}break e}finally{p=null,g=U,x=!1}D=void 0}}finally{D?H():k=!1}}}var H;if(typeof O=="function")H=function(){O($)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,F=V.port2;V.port1.onmessage=$,H=function(){F.postMessage(null)}}else H=function(){N($,0)};function G(B,D){T=N(function(){B(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(B){B.callback=null},e.unstable_forceFrameRate=function(B){0>B||125K?(B.sortIndex=U,t(f,B),n(d)===null&&B===n(f)&&(w?(E(T),T=-1):w=!0,G(C,U-K))):(B.sortIndex=te,t(d,B),j||x||(j=!0,k||(k=!0,H()))),B},e.unstable_shouldYield=L,e.unstable_wrapCallback=function(B){var D=g;return function(){var U=g;g=D;try{return B.apply(this,arguments)}finally{g=U}}}})(E0)),E0}var Gk;function ZV(){return Gk||(Gk=1,O0.exports=XV()),O0.exports}var A0={exports:{}},ir={};var Yk;function QV(){if(Yk)return ir;Yk=1;var e=Sh();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),A0.exports=QV(),A0.exports}var Xk;function JV(){if(Xk)return Vd;Xk=1;var e=ZV(),t=Sh(),n=GL();function r(o){var c="https://react.dev/errors/"+o;if(1te||(o.current=K[te],K[te]=null,te--)}function Y(o,c){te++,K[te]=o.current,o.current=c}var ne=I(null),se=I(null),xe=I(null),ee=I(null);function ae(o,c){switch(Y(xe,c),Y(se,o),Y(ne,null),c.nodeType){case 9:case 11:o=(o=c.documentElement)&&(o=o.namespaceURI)?dk(o):0;break;default:if(o=c.tagName,c=c.namespaceURI)c=dk(c),o=fk(c,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}z(ne),Y(ne,o)}function Z(){z(ne),z(se),z(xe)}function ve(o){o.memoizedState!==null&&Y(ee,o);var c=ne.current,h=fk(c,o.type);c!==h&&(Y(se,o),Y(ne,h))}function je(o){se.current===o&&(z(ne),z(se)),ee.current===o&&(z(ee),qd._currentValue=U)}var le,Re;function _e(o){if(le===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);le=c&&c[1]||"",Re=-1)":-1S||X[v]!==oe[S]){var ge=` +`+X[v].replace(" at new "," at ");return o.displayName&&ge.includes("")&&(ge=ge.replace("",o.displayName)),ge}while(1<=v&&0<=S);break}}}finally{fe=!1,Error.prepareStackTrace=h}return(h=o?o.displayName||o.name:"")?_e(h):""}function Le(o,c){switch(o.tag){case 26:case 27:case 5:return _e(o.type);case 16:return _e("Lazy");case 13:return o.child!==c&&c!==null?_e("Suspense Fallback"):_e("Suspense");case 19:return _e("SuspenseList");case 0:case 15:return pe(o.type,!1);case 11:return pe(o.type.render,!1);case 1:return pe(o.type,!0);case 31:return _e("Activity");default:return""}}function It(o){try{var c="",h=null;do c+=Le(o,h),h=o,o=o.return;while(o);return c}catch(v){return` +Error generating stack: `+v.message+` +`+v.stack}}var Cn=Object.prototype.hasOwnProperty,vr=e.unstable_scheduleCallback,rr=e.unstable_cancelCallback,gr=e.unstable_shouldYield,ct=e.unstable_requestPaint,rt=e.unstable_now,$n=e.unstable_getCurrentPriorityLevel,go=e.unstable_ImmediatePriority,sm=e.unstable_UserBlockingPriority,Rl=e.unstable_NormalPriority,lx=e.unstable_LowPriority,om=e.unstable_IdlePriority,cx=e.log,ux=e.unstable_setDisableYieldValue,yo=null,yr=null;function Ka(o){if(typeof cx=="function"&&ux(o),yr&&typeof yr.setStrictMode=="function")try{yr.setStrictMode(yo,o)}catch{}}var ar=Math.clz32?Math.clz32:zt,dx=Math.log,et=Math.LN2;function zt(o){return o>>>=0,o===0?32:31-(dx(o)/et|0)|0}var He=256,gt=262144,In=4194304;function tt(o){var c=o&42;if(c!==0)return c;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function Dl(o,c,h){var v=o.pendingLanes;if(v===0)return 0;var S=0,_=o.suspendedLanes,P=o.pingedLanes;o=o.warmLanes;var q=v&134217727;return q!==0?(v=q&~_,v!==0?S=tt(v):(P&=q,P!==0?S=tt(P):h||(h=q&~o,h!==0&&(S=tt(h))))):(q=v&~_,q!==0?S=tt(q):P!==0?S=tt(P):h||(h=v&~o,h!==0&&(S=tt(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function xo(o,c){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&c)===0}function fx(o,c){switch(o){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function $l(){var o=In;return In<<=1,(In&62914560)===0&&(In=4194304),o}function bo(o){for(var c=[],h=0;31>h;h++)c.push(o);return c}function td(o,c){o.pendingLanes|=c,c!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function RW(o,c,h,v,S,_){var P=o.pendingLanes;o.pendingLanes=h,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=h,o.entangledLanes&=h,o.errorRecoveryDisabledLanes&=h,o.shellSuspendCounter=0;var q=o.entanglements,X=o.expirationTimes,oe=o.hiddenUpdates;for(h=P&~h;0"u")return null;try{return o.activeElement||o.body}catch{return o.body}}var zW=/[\n"\\]/g;function la(o){return o.replace(zW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function yx(o,c,h,v,S,_,P,q){o.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?o.type=P:o.removeAttribute("type"),c!=null?P==="number"?(c===0&&o.value===""||o.value!=c)&&(o.value=""+oa(c)):o.value!==""+oa(c)&&(o.value=""+oa(c)):P!=="submit"&&P!=="reset"||o.removeAttribute("value"),c!=null?xx(o,P,oa(c)):h!=null?xx(o,P,oa(h)):v!=null&&o.removeAttribute("value"),S==null&&_!=null&&(o.defaultChecked=!!_),S!=null&&(o.checked=S&&typeof S!="function"&&typeof S!="symbol"),q!=null&&typeof q!="function"&&typeof q!="symbol"&&typeof q!="boolean"?o.name=""+oa(q):o.removeAttribute("name")}function iA(o,c,h,v,S,_,P,q){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(o.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){gx(o);return}h=h!=null?""+oa(h):"",c=c!=null?""+oa(c):h,q||c===o.value||(o.value=c),o.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,o.checked=q?o.checked:!!v,o.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(o.name=P),gx(o)}function xx(o,c,h){c==="number"&&um(o.ownerDocument)===o||o.defaultValue===""+h||(o.defaultValue=""+h)}function Fl(o,c,h,v){if(o=o.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_x=!1;if(Ci)try{var id={};Object.defineProperty(id,"passive",{get:function(){_x=!0}}),window.addEventListener("test",id,id),window.removeEventListener("test",id,id)}catch{_x=!1}var ms=null,Nx=null,fm=null;function fA(){if(fm)return fm;var o,c=Nx,h=c.length,v,S="value"in ms?ms.value:ms.textContent,_=S.length;for(o=0;o=ld),yA=" ",xA=!1;function bA(o,c){switch(o){case"keyup":return m7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function wA(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Vl=!1;function v7(o,c){switch(o){case"compositionend":return wA(c);case"keypress":return c.which!==32?null:(xA=!0,yA);case"textInput":return o=c.data,o===yA&&xA?null:o;default:return null}}function g7(o,c){if(Vl)return o==="compositionend"||!Tx&&bA(o,c)?(o=fA(),fm=Nx=ms=null,Vl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-o};o=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=AA(h)}}function kA(o,c){return o&&c?o===c?!0:o&&o.nodeType===3?!1:c&&c.nodeType===3?kA(o,c.parentNode):"contains"in o?o.contains(c):o.compareDocumentPosition?!!(o.compareDocumentPosition(c)&16):!1:!1}function MA(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var c=um(o.document);c instanceof o.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)o=c.contentWindow;else break;c=um(o.document)}return c}function Px(o){var c=o&&o.nodeName&&o.nodeName.toLowerCase();return c&&(c==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||c==="textarea"||o.contentEditable==="true")}var N7=Ci&&"documentMode"in document&&11>=document.documentMode,Gl=null,Rx=null,fd=null,Dx=!1;function PA(o,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;Dx||Gl==null||Gl!==um(v)||(v=Gl,"selectionStart"in v&&Px(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),fd&&dd(fd,v)||(fd=v,v=ip(Rx,"onSelect"),0>=P,S-=P,Xa=1<<32-ar(c)+S|h<Je?(dt=De,De=null):dt=De.sibling;var mt=ue(re,De,ie[Je],be);if(mt===null){De===null&&(De=dt);break}o&&De&&mt.alternate===null&&c(re,De),Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt,De=dt}if(Je===ie.length)return h(re,De),ft&&Ei(re,Je),Ie;if(De===null){for(;JeJe?(dt=De,De=null):dt=De.sibling;var $s=ue(re,De,mt.value,be);if($s===null){De===null&&(De=dt);break}o&&De&&$s.alternate===null&&c(re,De),Q=_($s,Q,Je),ht===null?Ie=$s:ht.sibling=$s,ht=$s,De=dt}if(mt.done)return h(re,De),ft&&Ei(re,Je),Ie;if(De===null){for(;!mt.done;Je++,mt=ie.next())mt=we(re,mt.value,be),mt!==null&&(Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt);return ft&&Ei(re,Je),Ie}for(De=v(De);!mt.done;Je++,mt=ie.next())mt=me(De,re,Je,mt.value,be),mt!==null&&(o&&mt.alternate!==null&&De.delete(mt.key===null?Je:mt.key),Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt);return o&&De.forEach(function(WV){return c(re,WV)}),ft&&Ei(re,Je),Ie}function Pt(re,Q,ie,be){if(typeof ie=="object"&&ie!==null&&ie.type===w&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case x:e:{for(var Ie=ie.key;Q!==null;){if(Q.key===Ie){if(Ie=ie.type,Ie===w){if(Q.tag===7){h(re,Q.sibling),be=S(Q,ie.props.children),be.return=re,re=be;break e}}else if(Q.elementType===Ie||typeof Ie=="object"&&Ie!==null&&Ie.$$typeof===M&&ko(Ie)===Q.type){h(re,Q.sibling),be=S(Q,ie.props),yd(be,ie),be.return=re,re=be;break e}h(re,Q);break}else c(re,Q);Q=Q.sibling}ie.type===w?(be=Co(ie.props.children,re.mode,be,ie.key),be.return=re,re=be):(be=jm(ie.type,ie.key,ie.props,null,re.mode,be),yd(be,ie),be.return=re,re=be)}return P(re);case j:e:{for(Ie=ie.key;Q!==null;){if(Q.key===Ie)if(Q.tag===4&&Q.stateNode.containerInfo===ie.containerInfo&&Q.stateNode.implementation===ie.implementation){h(re,Q.sibling),be=S(Q,ie.children||[]),be.return=re,re=be;break e}else{h(re,Q);break}else c(re,Q);Q=Q.sibling}be=Fx(ie,re.mode,be),be.return=re,re=be}return P(re);case M:return ie=ko(ie),Pt(re,Q,ie,be)}if(G(ie))return Ae(re,Q,ie,be);if(H(ie)){if(Ie=H(ie),typeof Ie!="function")throw Error(r(150));return ie=Ie.call(ie),ze(re,Q,ie,be)}if(typeof ie.then=="function")return Pt(re,Q,Am(ie),be);if(ie.$$typeof===O)return Pt(re,Q,Nm(re,ie),be);Tm(re,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"||typeof ie=="bigint"?(ie=""+ie,Q!==null&&Q.tag===6?(h(re,Q.sibling),be=S(Q,ie),be.return=re,re=be):(h(re,Q),be=qx(ie,re.mode,be),be.return=re,re=be),P(re)):h(re,Q)}return function(re,Q,ie,be){try{gd=0;var Ie=Pt(re,Q,ie,be);return ac=null,Ie}catch(De){if(De===rc||De===Om)throw De;var ht=qr(29,De,null,re.mode);return ht.lanes=be,ht.return=re,ht}finally{}}}var Po=nT(!0),rT=nT(!1),xs=!1;function eb(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function tb(o,c){o=o.updateQueue,c.updateQueue===o&&(c.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function bs(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function ws(o,c,h){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(yt&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=wm(o),zA(o,null,h),c}return bm(o,v,c,h),wm(o)}function xd(o,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,YE(o,h)}}function nb(o,c){var h=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},o.updateQueue=h;return}o=h.lastBaseUpdate,o===null?h.firstBaseUpdate=c:o.next=c,h.lastBaseUpdate=c}var rb=!1;function bd(){if(rb){var o=nc;if(o!==null)throw o}}function wd(o,c,h,v){rb=!1;var S=o.updateQueue;xs=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,q=S.shared.pending;if(q!==null){S.shared.pending=null;var X=q,oe=X.next;X.next=null,P===null?_=oe:P.next=oe,P=X;var ge=o.alternate;ge!==null&&(ge=ge.updateQueue,q=ge.lastBaseUpdate,q!==P&&(q===null?ge.firstBaseUpdate=oe:q.next=oe,ge.lastBaseUpdate=X))}if(_!==null){var we=S.baseState;P=0,ge=oe=X=null,q=_;do{var ue=q.lane&-536870913,me=ue!==q.lane;if(me?(ut&ue)===ue:(v&ue)===ue){ue!==0&&ue===tc&&(rb=!0),ge!==null&&(ge=ge.next={lane:0,tag:q.tag,payload:q.payload,callback:null,next:null});e:{var Ae=o,ze=q;ue=c;var Pt=h;switch(ze.tag){case 1:if(Ae=ze.payload,typeof Ae=="function"){we=Ae.call(Pt,we,ue);break e}we=Ae;break e;case 3:Ae.flags=Ae.flags&-65537|128;case 0:if(Ae=ze.payload,ue=typeof Ae=="function"?Ae.call(Pt,we,ue):Ae,ue==null)break e;we=p({},we,ue);break e;case 2:xs=!0}}ue=q.callback,ue!==null&&(o.flags|=64,me&&(o.flags|=8192),me=S.callbacks,me===null?S.callbacks=[ue]:me.push(ue))}else me={lane:ue,tag:q.tag,payload:q.payload,callback:q.callback,next:null},ge===null?(oe=ge=me,X=we):ge=ge.next=me,P|=ue;if(q=q.next,q===null){if(q=S.shared.pending,q===null)break;me=q,q=me.next,me.next=null,S.lastBaseUpdate=me,S.shared.pending=null}}while(!0);ge===null&&(X=we),S.baseState=X,S.firstBaseUpdate=oe,S.lastBaseUpdate=ge,_===null&&(S.shared.lanes=0),Cs|=P,o.lanes=P,o.memoizedState=we}}function aT(o,c){if(typeof o!="function")throw Error(r(191,o));o.call(c)}function iT(o,c){var h=o.callbacks;if(h!==null)for(o.callbacks=null,o=0;o_?_:8;var P=B.T,q={};B.T=q,jb(o,!1,c,h);try{var X=S(),oe=B.S;if(oe!==null&&oe(q,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var ge=R7(X,v);_d(o,c,ge,Vr(o))}else _d(o,c,v,Vr(o))}catch(we){_d(o,c,{then:function(){},status:"rejected",reason:we},Vr())}finally{D.p=_,P!==null&&q.types!==null&&(P.types=q.types),B.T=P}}function z7(){}function bb(o,c,h,v){if(o.tag!==5)throw Error(r(476));var S=IT(o).queue;$T(o,S,c,U,h===null?z7:function(){return LT(o),h(v)})}function IT(o){var c=o.memoizedState;if(c!==null)return c;c={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mi,lastRenderedState:U},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mi,lastRenderedState:h},next:null},o.memoizedState=c,o=o.alternate,o!==null&&(o.memoizedState=c),c}function LT(o){var c=IT(o);c.next===null&&(c=o.alternate.memoizedState),_d(o,c.next.queue,{},Vr())}function wb(){return Xn(qd)}function BT(){return un().memoizedState}function zT(){return un().memoizedState}function q7(o){for(var c=o.return;c!==null;){switch(c.tag){case 24:case 3:var h=Vr();o=bs(h);var v=ws(c,o,h);v!==null&&(Tr(v,c,h),xd(v,c,h)),c={cache:Xx()},o.payload=c;return}c=c.return}}function F7(o,c,h){var v=Vr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},zm(o)?FT(c,h):(h=Bx(o,c,h,v),h!==null&&(Tr(h,o,v),UT(h,c,v)))}function qT(o,c,h){var v=Vr();_d(o,c,h,v)}function _d(o,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(zm(o))FT(c,S);else{var _=o.alternate;if(o.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,q=_(P,h);if(S.hasEagerState=!0,S.eagerState=q,zr(q,P))return bm(o,c,S,0),Lt===null&&xm(),!1}catch{}finally{}if(h=Bx(o,c,S,v),h!==null)return Tr(h,o,v),UT(h,c,v),!0}return!1}function jb(o,c,h,v){if(v={lane:2,revertLane:e0(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},zm(o)){if(c)throw Error(r(479))}else c=Bx(o,h,v,2),c!==null&&Tr(c,o,2)}function zm(o){var c=o.alternate;return o===Ke||c!==null&&c===Ke}function FT(o,c){sc=Pm=!0;var h=o.pending;h===null?c.next=c:(c.next=h.next,h.next=c),o.pending=c}function UT(o,c,h){if((h&4194048)!==0){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,YE(o,h)}}var Nd={readContext:Xn,use:$m,useCallback:rn,useContext:rn,useEffect:rn,useImperativeHandle:rn,useLayoutEffect:rn,useInsertionEffect:rn,useMemo:rn,useReducer:rn,useRef:rn,useState:rn,useDebugValue:rn,useDeferredValue:rn,useTransition:rn,useSyncExternalStore:rn,useId:rn,useHostTransitionStatus:rn,useFormState:rn,useActionState:rn,useOptimistic:rn,useMemoCache:rn,useCacheRefresh:rn};Nd.useEffectEvent=rn;var HT={readContext:Xn,use:$m,useCallback:function(o,c){return xr().memoizedState=[o,c===void 0?null:c],o},useContext:Xn,useEffect:OT,useImperativeHandle:function(o,c,h){h=h!=null?h.concat([o]):null,Lm(4194308,4,kT.bind(null,c,o),h)},useLayoutEffect:function(o,c){return Lm(4194308,4,o,c)},useInsertionEffect:function(o,c){Lm(4,2,o,c)},useMemo:function(o,c){var h=xr();c=c===void 0?null:c;var v=o();if(Ro){Ka(!0);try{o()}finally{Ka(!1)}}return h.memoizedState=[v,c],v},useReducer:function(o,c,h){var v=xr();if(h!==void 0){var S=h(c);if(Ro){Ka(!0);try{h(c)}finally{Ka(!1)}}}else S=c;return v.memoizedState=v.baseState=S,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:S},v.queue=o,o=o.dispatch=F7.bind(null,Ke,o),[v.memoizedState,o]},useRef:function(o){var c=xr();return o={current:o},c.memoizedState=o},useState:function(o){o=pb(o);var c=o.queue,h=qT.bind(null,Ke,c);return c.dispatch=h,[o.memoizedState,h]},useDebugValue:yb,useDeferredValue:function(o,c){var h=xr();return xb(h,o,c)},useTransition:function(){var o=pb(!1);return o=$T.bind(null,Ke,o.queue,!0,!1),xr().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,c,h){var v=Ke,S=xr();if(ft){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Lt===null)throw Error(r(349));(ut&127)!==0||dT(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,OT(hT.bind(null,v,_,o),[o]),v.flags|=2048,lc(9,{destroy:void 0},fT.bind(null,v,_,h,c),null),h},useId:function(){var o=xr(),c=Lt.identifierPrefix;if(ft){var h=Za,v=Xa;h=(v&~(1<<32-ar(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=Rm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Yn]=c,_[_r]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(Qn(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&Ri(c)}}return Kt(c),$b(c,c.type,o===null?null:o.memoizedProps,c.pendingProps,h),null;case 6:if(o&&c.stateNode!=null)o.memoizedProps!==v&&Ri(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(o=xe.current,Jl(c)){if(o=c.stateNode,h=c.memoizedProps,v=null,S=Kn,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}o[Yn]=c,o=!!(o.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||ck(o.nodeValue,h)),o||gs(c,!0)}else o=sp(o).createTextNode(v),o[Yn]=c,c.stateNode=o}return Kt(c),null;case 31:if(h=c.memoizedState,o===null||o.memoizedState!==null){if(v=Jl(c),h!==null){if(o===null){if(!v)throw Error(r(318));if(o=c.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));o[Yn]=c}else Oo(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;Kt(c),o=!1}else h=Vx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=h),o=!0;if(!o)return c.flags&256?(Ur(c),c):(Ur(c),null);if((c.flags&128)!==0)throw Error(r(558))}return Kt(c),null;case 13:if(v=c.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(S=Jl(c),v!==null&&v.dehydrated!==null){if(o===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Yn]=c}else Oo(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;Kt(c),S=!1}else S=Vx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Ur(c),c):(Ur(c),null)}return Ur(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,o=o!==null&&o.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==o&&h&&(c.child.flags|=8192),Wm(c,c.updateQueue),Kt(c),null);case 4:return Z(),o===null&&a0(c.stateNode.containerInfo),Kt(c),null;case 10:return Ti(c.type),Kt(c),null;case 19:if(z(cn),v=c.memoizedState,v===null)return Kt(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)Od(v,!1);else{if(an!==0||o!==null&&(o.flags&128)!==0)for(o=c.child;o!==null;){if(_=Mm(o),_!==null){for(c.flags|=128,Od(v,!1),o=_.updateQueue,c.updateQueue=o,Wm(c,o),c.subtreeFlags=0,o=h,h=c.child;h!==null;)qA(h,o),h=h.sibling;return Y(cn,cn.current&1|2),ft&&Ei(c,v.treeForkCount),c.child}o=o.sibling}v.tail!==null&&rt()>Xm&&(c.flags|=128,S=!0,Od(v,!1),c.lanes=4194304)}else{if(!S)if(o=Mm(_),o!==null){if(c.flags|=128,S=!0,o=o.updateQueue,c.updateQueue=o,Wm(c,o),Od(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!ft)return Kt(c),null}else 2*rt()-v.renderingStartTime>Xm&&h!==536870912&&(c.flags|=128,S=!0,Od(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(o=v.last,o!==null?o.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=rt(),o.sibling=null,h=cn.current,Y(cn,S?h&1|2:h&1),ft&&Ei(c,v.treeForkCount),o):(Kt(c),null);case 22:case 23:return Ur(c),ib(),v=c.memoizedState!==null,o!==null?o.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(Kt(c),c.subtreeFlags&6&&(c.flags|=8192)):Kt(c),h=c.updateQueue,h!==null&&Wm(c,h.retryQueue),h=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),o!==null&&z(To),null;case 24:return h=null,o!==null&&(h=o.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Ti(dn),Kt(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function G7(o,c){switch(Hx(c),c.tag){case 1:return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 3:return Ti(dn),Z(),o=c.flags,(o&65536)!==0&&(o&128)===0?(c.flags=o&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Ur(c),c.alternate===null)throw Error(r(340));Oo()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 13:if(Ur(c),o=c.memoizedState,o!==null&&o.dehydrated!==null){if(c.alternate===null)throw Error(r(340));Oo()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 19:return z(cn),null;case 4:return Z(),null;case 10:return Ti(c.type),null;case 22:case 23:return Ur(c),ib(),o!==null&&z(To),o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 24:return Ti(dn),null;case 25:return null;default:return null}}function m2(o,c){switch(Hx(c),c.tag){case 3:Ti(dn),Z();break;case 26:case 27:case 5:je(c);break;case 4:Z();break;case 31:c.memoizedState!==null&&Ur(c);break;case 13:Ur(c);break;case 19:z(cn);break;case 10:Ti(c.type);break;case 22:case 23:Ur(c),ib(),o!==null&&z(To);break;case 24:Ti(dn)}}function Ed(o,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&o)===o){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(q){Nt(c,c.return,q)}}function _s(o,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&o)===o){var P=v.inst,q=P.destroy;if(q!==void 0){P.destroy=void 0,S=c;var X=h,oe=q;try{oe()}catch(ge){Nt(S,X,ge)}}}v=v.next}while(v!==_)}}catch(ge){Nt(c,c.return,ge)}}function p2(o){var c=o.updateQueue;if(c!==null){var h=o.stateNode;try{iT(c,h)}catch(v){Nt(o,o.return,v)}}}function v2(o,c,h){h.props=Do(o.type,o.memoizedProps),h.state=o.memoizedState;try{h.componentWillUnmount()}catch(v){Nt(o,c,v)}}function Ad(o,c){try{var h=o.ref;if(h!==null){switch(o.tag){case 26:case 27:case 5:var v=o.stateNode;break;case 30:v=o.stateNode;break;default:v=o.stateNode}typeof h=="function"?o.refCleanup=h(v):h.current=v}}catch(S){Nt(o,c,S)}}function Qa(o,c){var h=o.ref,v=o.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){Nt(o,c,S)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){Nt(o,c,S)}else h.current=null}function g2(o){var c=o.type,h=o.memoizedProps,v=o.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){Nt(o,o.return,S)}}function Ib(o,c,h){try{var v=o.stateNode;pV(v,o.type,h,c),v[_r]=c}catch(S){Nt(o,o.return,S)}}function y2(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&ks(o.type)||o.tag===4}function Lb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||y2(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&ks(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Bb(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(o,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(o),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ni));else if(v!==4&&(v===27&&ks(o.type)&&(h=o.stateNode,c=null),o=o.child,o!==null))for(Bb(o,c,h),o=o.sibling;o!==null;)Bb(o,c,h),o=o.sibling}function Vm(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?h.insertBefore(o,c):h.appendChild(o);else if(v!==4&&(v===27&&ks(o.type)&&(h=o.stateNode),o=o.child,o!==null))for(Vm(o,c,h),o=o.sibling;o!==null;)Vm(o,c,h),o=o.sibling}function x2(o){var c=o.stateNode,h=o.memoizedProps;try{for(var v=o.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);Qn(c,v,h),c[Yn]=o,c[_r]=h}catch(_){Nt(o,o.return,_)}}var Di=!1,mn=!1,zb=!1,b2=typeof WeakSet=="function"?WeakSet:Set,Bn=null;function Y7(o,c){if(o=o.containerInfo,o0=hp,o=MA(o),Px(o)){if("selectionStart"in o)var h={start:o.selectionStart,end:o.selectionEnd};else e:{h=(h=o.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,q=-1,X=-1,oe=0,ge=0,we=o,ue=null;t:for(;;){for(var me;we!==h||S!==0&&we.nodeType!==3||(q=P+S),we!==_||v!==0&&we.nodeType!==3||(X=P+v),we.nodeType===3&&(P+=we.nodeValue.length),(me=we.firstChild)!==null;)ue=we,we=me;for(;;){if(we===o)break t;if(ue===h&&++oe===S&&(q=P),ue===_&&++ge===v&&(X=P),(me=we.nextSibling)!==null)break;we=ue,ue=we.parentNode}we=me}h=q===-1||X===-1?null:{start:q,end:X}}else h=null}h=h||{start:0,end:0}}else h=null;for(l0={focusedElem:o,selectionRange:h},hp=!1,Bn=c;Bn!==null;)if(c=Bn,o=c.child,(c.subtreeFlags&1028)!==0&&o!==null)o.return=c,Bn=o;else for(;Bn!==null;){switch(c=Bn,_=c.alternate,o=c.flags,c.tag){case 0:if((o&4)!==0&&(o=c.updateQueue,o=o!==null?o.events:null,o!==null))for(h=0;h title"))),Qn(_,v,h),_[Yn]=o,Ln(_),v=_;break e;case"link":var P=Ck("link","href",S).get(v+(h.href||""));if(P){for(var q=0;qPt&&(P=Pt,Pt=ze,ze=P);var re=TA(q,ze),Q=TA(q,Pt);if(re&&Q&&(me.rangeCount!==1||me.anchorNode!==re.node||me.anchorOffset!==re.offset||me.focusNode!==Q.node||me.focusOffset!==Q.offset)){var ie=we.createRange();ie.setStart(re.node,re.offset),me.removeAllRanges(),ze>Pt?(me.addRange(ie),me.extend(Q.node,Q.offset)):(ie.setEnd(Q.node,Q.offset),me.addRange(ie))}}}}for(we=[],me=q;me=me.parentNode;)me.nodeType===1&&we.push({element:me,left:me.scrollLeft,top:me.scrollTop});for(typeof q.focus=="function"&&q.focus(),q=0;qh?32:h,B.T=null,h=Gb,Gb=null;var _=Es,P=zi;if(On=0,hc=Es=null,zi=0,(yt&6)!==0)throw Error(r(331));var q=yt;if(yt|=4,k2(_.current),E2(_,_.current,P,h),yt=q,Dd(0,!1),yr&&typeof yr.onPostCommitFiberRoot=="function")try{yr.onPostCommitFiberRoot(yo,_)}catch{}return!0}finally{D.p=S,B.T=v,K2(o,c)}}function Z2(o,c,h){c=ua(h,c),c=Cb(o.stateNode,c,2),o=ws(o,c,2),o!==null&&(td(o,2),Ja(o))}function Nt(o,c,h){if(o.tag===3)Z2(o,o,h);else for(;c!==null;){if(c.tag===3){Z2(c,o,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(Os===null||!Os.has(v))){o=ua(h,o),h=QT(2),v=ws(c,h,2),v!==null&&(JT(h,v,c,o),td(v,2),Ja(v));break}}c=c.return}}function Zb(o,c,h){var v=o.pingCache;if(v===null){v=o.pingCache=new Z7;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Ub=!0,S.add(h),o=nV.bind(null,o,c,h),c.then(o,o))}function nV(o,c,h){var v=o.pingCache;v!==null&&v.delete(c),o.pingedLanes|=o.suspendedLanes&h,o.warmLanes&=~h,Lt===o&&(ut&h)===h&&(an===4||an===3&&(ut&62914560)===ut&&300>rt()-Km?(yt&2)===0&&mc(o,0):Hb|=h,fc===ut&&(fc=0)),Ja(o)}function Q2(o,c){c===0&&(c=$l()),o=No(o,c),o!==null&&(td(o,c),Ja(o))}function rV(o){var c=o.memoizedState,h=0;c!==null&&(h=c.retryLane),Q2(o,h)}function aV(o,c){var h=0;switch(o.tag){case 31:case 13:var v=o.stateNode,S=o.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=o.stateNode;break;case 22:v=o.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),Q2(o,h)}function iV(o,c){return vr(o,c)}var np=null,vc=null,Qb=!1,rp=!1,Jb=!1,Ts=0;function Ja(o){o!==vc&&o.next===null&&(vc===null?np=vc=o:vc=vc.next=o),rp=!0,Qb||(Qb=!0,oV())}function Dd(o,c){if(!Jb&&rp){Jb=!0;do for(var h=!1,v=np;v!==null;){if(o!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,q=v.pingedLanes;_=(1<<31-ar(42|o)+1)-1,_&=S&~(P&~q),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,nk(v,_))}else _=ut,_=Dl(v,v===Lt?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||xo(v,_)||(h=!0,nk(v,_));v=v.next}while(h);Jb=!1}}function sV(){J2()}function J2(){rp=Qb=!1;var o=0;Ts!==0&&gV()&&(o=Ts);for(var c=rt(),h=null,v=np;v!==null;){var S=v.next,_=ek(v,c);_===0?(v.next=null,h===null?np=S:h.next=S,S===null&&(vc=h)):(h=v,(o!==0||(_&3)!==0)&&(rp=!0)),v=S}On!==0&&On!==5||Dd(o),Ts!==0&&(Ts=0)}function ek(o,c){for(var h=o.suspendedLanes,v=o.pingedLanes,S=o.expirationTimes,_=o.pendingLanes&-62914561;0<_;){var P=31-ar(_),q=1<q)break;var ge=X.transferSize,we=X.initiatorType;ge&&uk(we)&&(X=X.responseEnd,P+=ge*(X"u"?null:document;function jk(o,c,h){var v=gc;if(v&&typeof c=="string"&&c){var S=la(c);S='link[rel="'+o+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),wk.has(S)||(wk.add(S),o={rel:o,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),Qn(c,"link",o),Ln(c),v.head.appendChild(c)))}}function CV(o){qi.D(o),jk("dns-prefetch",o,null)}function OV(o,c){qi.C(o,c),jk("preconnect",o,c)}function EV(o,c,h){qi.L(o,c,h);var v=gc;if(v&&o&&c){var S='link[rel="preload"][as="'+la(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+la(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+la(h.imageSizes)+'"]')):S+='[href="'+la(o)+'"]';var _=S;switch(c){case"style":_=yc(o);break;case"script":_=xc(o)}va.has(_)||(o=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:o,as:c},h),va.set(_,o),v.querySelector(S)!==null||c==="style"&&v.querySelector(Bd(_))||c==="script"&&v.querySelector(zd(_))||(c=v.createElement("link"),Qn(c,"link",o),Ln(c),v.head.appendChild(c)))}}function AV(o,c){qi.m(o,c);var h=gc;if(h&&o){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+la(v)+'"][href="'+la(o)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=xc(o)}if(!va.has(_)&&(o=p({rel:"modulepreload",href:o},c),va.set(_,o),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(zd(_)))return}v=h.createElement("link"),Qn(v,"link",o),Ln(v),h.head.appendChild(v)}}}function TV(o,c,h){qi.S(o,c,h);var v=gc;if(v&&o){var S=zl(v).hoistableStyles,_=yc(o);c=c||"default";var P=S.get(_);if(!P){var q={loading:0,preload:null};if(P=v.querySelector(Bd(_)))q.loading=5;else{o=p({rel:"stylesheet",href:o,"data-precedence":c},h),(h=va.get(_))&&p0(o,h);var X=P=v.createElement("link");Ln(X),Qn(X,"link",o),X._p=new Promise(function(oe,ge){X.onload=oe,X.onerror=ge}),X.addEventListener("load",function(){q.loading|=1}),X.addEventListener("error",function(){q.loading|=2}),q.loading|=4,lp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:q},S.set(_,P)}}}function kV(o,c){qi.X(o,c);var h=gc;if(h&&o){var v=zl(h).hoistableScripts,S=xc(o),_=v.get(S);_||(_=h.querySelector(zd(S)),_||(o=p({src:o,async:!0},c),(c=va.get(S))&&v0(o,c),_=h.createElement("script"),Ln(_),Qn(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function MV(o,c){qi.M(o,c);var h=gc;if(h&&o){var v=zl(h).hoistableScripts,S=xc(o),_=v.get(S);_||(_=h.querySelector(zd(S)),_||(o=p({src:o,async:!0,type:"module"},c),(c=va.get(S))&&v0(o,c),_=h.createElement("script"),Ln(_),Qn(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function Sk(o,c,h,v){var S=(S=xe.current)?op(S):null;if(!S)throw Error(r(446));switch(o){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=yc(h.href),h=zl(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){o=yc(h.href);var _=zl(S).hoistableStyles,P=_.get(o);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(o,P),(_=S.querySelector(Bd(o)))&&!_._p&&(P.instance=_,P.state.loading=5),va.has(o)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},va.set(o,h),_||PV(S,o,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=xc(h),h=zl(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,o))}}function yc(o){return'href="'+la(o)+'"'}function Bd(o){return'link[rel="stylesheet"]['+o+"]"}function _k(o){return p({},o,{"data-precedence":o.precedence,precedence:null})}function PV(o,c,h,v){o.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=o.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),Qn(c,"link",h),Ln(c),o.head.appendChild(c))}function xc(o){return'[src="'+la(o)+'"]'}function zd(o){return"script[async]"+o}function Nk(o,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=o.querySelector('style[data-href~="'+la(h.href)+'"]');if(v)return c.instance=v,Ln(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(o.ownerDocument||o).createElement("style"),Ln(v),Qn(v,"style",S),lp(v,h.precedence,o),c.instance=v;case"stylesheet":S=yc(h.href);var _=o.querySelector(Bd(S));if(_)return c.state.loading|=4,c.instance=_,Ln(_),_;v=_k(h),(S=va.get(S))&&p0(v,S),_=(o.ownerDocument||o).createElement("link"),Ln(_);var P=_;return P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),Qn(_,"link",v),c.state.loading|=4,lp(_,h.precedence,o),c.instance=_;case"script":return _=xc(h.src),(S=o.querySelector(zd(_)))?(c.instance=S,Ln(S),S):(v=h,(S=va.get(_))&&(v=p({},h),v0(v,S)),o=o.ownerDocument||o,S=o.createElement("script"),Ln(S),Qn(S,"link",v),o.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,lp(v,h.precedence,o));return c.instance}function lp(o,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function RV(o,c,h){if(h===1||c.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return o=c.disabled,typeof c.precedence=="string"&&o==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Ek(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function DV(o,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=yc(v.href),_=c.querySelector(Bd(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(o.count++,o=up.bind(o),c.then(o,o)),h.state.loading|=4,h.instance=_,Ln(_);return}_=c.ownerDocument||c,v=_k(v),(S=va.get(S))&&p0(v,S),_=_.createElement("link"),Ln(_);var P=_;P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),Qn(_,"link",v),h.instance=_}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(o.count++,h=up.bind(o),c.addEventListener("load",h),c.addEventListener("error",h))}}var g0=0;function $V(o,c){return o.stylesheets&&o.count===0&&fp(o,o.stylesheets),0g0?50:800)+c);return o.unsuspend=h,function(){o.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function up(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)fp(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var dp=null;function fp(o,c){o.stylesheets=null,o.unsuspend!==null&&(o.count++,dp=new Map,c.forEach(IV,o),dp=null,up.call(o))}function IV(o,c){if(!(c.state.loading&4)){var h=dp.get(o);if(h)var v=h.get(null);else{h=new Map,dp.set(o,h);for(var S=o.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),C0.exports=JV(),C0.exports}var tG=eG();const h_=new WeakMap,nG=new WeakMap,fv={current:[]};let T0=!1,xf=0;const uf=new Set,wp=new Map;function YL(e){for(const t of e){if(fv.current.includes(t))continue;fv.current.push(t),t.recompute();const n=nG.get(t);if(n)for(const r of n){const a=h_.get(r);a?.length&&YL(a)}}}function rG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function aG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function KL(e){if(xf>0&&!wp.has(e)&&wp.set(e,e.prevState),uf.add(e),!(xf>0)&&!T0)try{for(T0=!0;uf.size>0;){const t=Array.from(uf);uf.clear();for(const n of t){const r=wp.get(n)??n.prevState;n.prevState=r,rG(n)}for(const n of t){const r=h_.get(n);r&&(fv.current.push(n),YL(r))}for(const n of t){const r=h_.get(n);if(r)for(const a of r)aG(a)}}}finally{T0=!1,fv.current=[],wp.clear()}}function bf(e){xf++;try{e()}finally{if(xf--,xf===0){const t=uf.values().next().value;t&&KL(t)}}}function iG(e){return typeof e=="function"}class sG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,s;this.listeners.add(r);const l=(s=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:s.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):iG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),KL(this)}}const Vs="__TSR_index",Qk="popstate",Jk="beforeunload";function oG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},s=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=hv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Vs];u=eM(f+1,u),s({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Vs];u=eM(f,u),s({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{s({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{s({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{s({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Vs]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function eM(e,t){t||(t={});const n=CC();return{...t,key:n,__TSR_key:n,[Vs]:e}}function lG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const s=()=>a,l=M=>a=M,u=(M=>M),d=(()=>hv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=CC();t.history.replaceState({[Vs]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const w=()=>f;let b,N;const E=()=>{b&&(T._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),T._ignoreSubscribers=!1,b=void 0,N=void 0,m=void 0)},O=(M,R,L)=>{const $=u(R);N||(m=f),f=hv(R,L),b={href:$,state:L,isPush:b?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>E()))},A=M=>{f=d(),T.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),R=M.state[Vs]-f.state[Vs],L=R===1,$=R===-1,H=!L&&!$||p;p=!1;const V=H?"GO":$?"BACK":"FORWARD",F=H?{type:"GO",index:R}:{type:$?"BACK":"FORWARD"};if(x)x=!1;else{const G=s();if(typeof document<"u"&&G.length){for(const B of G)if(await B.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),T.notify(F);return}}}f=d(),T.notify(F)},k=M=>{if(j){j=!1;return}let R=!1;const L=s();if(typeof document<"u"&&L.length)for(const $ of L){const H=$.enableBeforeUnload??!0;if(H===!0){R=!0;break}if(typeof H=="function"&&H()===!0){R=!0;break}}if(R)return M.preventDefault(),M.returnValue=""},T=oG({getLocation:w,getLength:()=>t.history.length,pushState:(M,R)=>O("push",M,R),replaceState:(M,R)=>O("replace",M,R),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Jk,k,{capture:!0}),t.removeEventListener(Qk,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:s,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(Jk,k,{capture:!0}),t.addEventListener(Qk,C),t.history.pushState=function(...M){const R=n.apply(t.history,M);return T._ignoreSubscribers||A("PUSH"),R},t.history.replaceState=function(...M){const R=r.apply(t.history,M);return T._ignoreSubscribers||A("REPLACE"),R},T}function hv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=CC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Vs]:0,key:a,__TSR_key:a}}}function CC(){return(Math.random()+1).toString(36).substring(7)}function m_(e){return e[e.length-1]}function cG(e){return typeof e=="function"}function Qo(e,t){return cG(e)?e(t):e}const uG=Object.prototype.hasOwnProperty;function wa(e,t){if(e===t)return e;const n=t,r=rM(e)&&rM(n);if(!r&&!(mv(e)&&mv(n)))return n;const a=r?e:tM(e);if(!a)return n;const s=r?n:tM(n);if(!s)return n;const l=a.length,u=s.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!nM(n)||!n.hasOwnProperty("isPrototypeOf"))}function nM(e){return Object.prototype.toString.call(e)==="[object Object]"}function rM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Jo(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!Jo(e[l],t[l],n)))return!1;return a===s}return!1}function Qc(e){let t,n;const r=new Promise((a,s)=>{t=a,n=s});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function Gs(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const dG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function aM(e,t=dG){function n(a,s,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var fG="Invariant failed";function ur(e,t){if(!e)throw new Error(fG)}const di=0,ll=1,Jc=2,eu=3;function Qi(e){return OC(e.filter(t=>t!==void 0).join("/"))}function OC(e){return e.replace(/\/{2,}/g,"/")}function EC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Ys(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function Jp(e){return Ys(EC(e))}function pv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function hG(e,t,n){return pv(e,n)===pv(t,n)}function mG(e){const{type:t,value:n}=e;if(t===di)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===ll){const s=n.substring(1);if(r&&a)return`${r}{$${s}}${a}`;if(r)return`${r}{$${s}}`;if(a)return`{$${s}}${a}`}if(t===eu){const s=n.substring(1);return r&&a?`${r}{-$${s}}${a}`:r?`${r}{-$${s}}`:a?`{-$${s}}${a}`:`{-$${s}}`}if(t===Jc){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function pG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=tu(e,r).slice();const s=tu(t,r);a.length>1&&m_(a)?.value==="/"&&a.pop();for(let d=0,f=s.length;d1&&(m_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:di,value:"/"}));const l=a.map(mG);return Qi(l)}const tu=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=wG(e);return t?.set(e,r),r},vG=/^\$.{1,}$/,gG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,yG=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,xG=/^\$$/,bG=/^(.*?)\{\$\}(.*)$/;function wG(e){e=OC(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:di,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(bG);if(a){const u=a[1],d=a[2];return{type:Jc,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const s=r.match(yG);if(s){const u=s[1],d=s[2],f=s[3];return{type:eu,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(gG);if(l){const u=l[1],d=l[2],f=l[3];return{type:ll,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(vG.test(r)){const u=r.substring(1);return{type:ll,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return xG.test(r)?{type:Jc,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:di,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:di,value:"/"})),t}function k0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=tu(e,r);function s(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?jG(m,n):m}let l=!1;const u={},d=Qi(a.map(f=>{if(f.type===di)return f.value;if(f.type===Jc){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=s("_splat");return`${m}${g}${p}`}if(f.type===ll){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${s(m)??"undefined"}${g}`}if(f.type===eu){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${s(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function jG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function p_(e,t,n){const r=SG(e,t,n);if(!(t.to&&!r))return r??{}}function SG(e,{to:t,fuzzy:n,caseSensitive:r},a){const s=t,l=tu(e.startsWith("/")?e:`/${e}`,a),u=tu(s.startsWith("/")?s:`/${s}`,a),d={};return _G(l,u,d,n,r)?d:void 0}function _G(e,t,n,r,a){let s=0,l=0;for(;sw.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(Qi(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===di){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;s++,l++;continue}else return!1}if(d.type===ll){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,s++),l++;continue}if(d.type===eu){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=Qi(e.slice(s).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const s=EC(r.fullPath);let l=tu(s),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return NG;if(p.type===di)return CG;let x;p.type===ll?x=OG:p.type===eu?(x=EG,d++):x=AG;for(let j=g+1;j{const s=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function DG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(ur(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=Ys(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const s=RG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:s}}function Fa(e){return!!e?.isNotFound}function $G(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const vv="tsr-scroll-restoration-v1_3",IG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function LG(){const e=$G();if(!e)return null;const t=e.getItem(vv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=Qo(r,n)||n,e.setItem(vv,JSON.stringify(n)))}}const jp=LG(),v_=e=>e.state.__TSR_key||e.href;function BG(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let gv=!1;function XL({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:s}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];gv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(s??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}gv=!1}function zG(e,t){if(!jp&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!jp))return;e.isScrollRestorationSetup=!0,gv=!1;const r=e.options.getScrollRestorationKey||v_;window.history.scrollRestoration="manual";const a=s=>{if(gv||!e.isScrollRestoring)return;let l="";if(s.target===document||s.target===window)l="window";else{const d=s.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=BG(s.target)}const u=r(e.state.location);jp.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",IG(a,100),!0),e.subscribe("onRendered",s=>{const l=r(s.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(XL({storageKey:vv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&jp.set(u=>(u[l]||={},u)))})}function qG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function FG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function M0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function UG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const s=n[r];s==null?n[r]=M0(a):Array.isArray(s)?s.push(M0(a)):n[r]=[s,M0(a)]}return n}const HG=VG(JSON.parse),WG=GG(JSON.stringify,JSON.parse);function VG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=UG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function GG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const s=FG(a,r);return s?`?${s}`:""}}const Zr="__root__";function ZL(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function si(e){return e instanceof Response&&!!e.options}function YG(e){const t=new Map;let n,r;const a=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,n=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){const l=t.get(s);if(l)return a(l),l.value},set(s,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(s);if(u)u.value=l,a(u);else{const d={key:s,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(s,d)}}}}const ev=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},$g=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),QL=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),ur(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);ur(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,QL(e,t))},Fs=(e,t,n)=>{if(!(!si(n)&&!Fa(n))){if(si(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=si(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Fa(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw si(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(QL(e,n),n)}},JL=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Gd=(e,t,n,r)=>{const{id:a,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Fs(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Fs(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},KG=(e,t,n,r)=>{const a=e.router.getMatch(t),s=e.matches[n-1]?.id,l=s?e.router.getMatch(s):void 0;if(e.router.isShell()){a.ssr=r.id===Zr;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:Sp(f,a.searchError),params:Sp(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:Sp(x.search,x.searchError),params:Sp(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(Gs(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},e5=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!$g(e,t)&&(n.options.loader||n.options.beforeLoad||r5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{ev(e)},a);r._nonReactive.pendingTimeout=l}},XG=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;e5(e,t,n,r);const a=()=>{const s=e.router.getMatch(t);s.preload&&(s.status==="redirected"||s.status==="notFound")&&Fs(e,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},ZG=(e,t,n,r)=>{const a=e.router.getMatch(t),s=a._nonReactive.loadPromise;a._nonReactive.loadPromise=Qc(()=>{s?.resolve()});const{paramsError:l,searchError:u}=a;l&&Gd(e,n,l,"PARSE_PARAMS"),u&&Gd(e,n,u,"VALIDATE_SEARCH"),e5(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,T=>({...T,isFetching:"beforeLoad",fetchCount:T.fetchCount+1,abortController:d,context:g})))},w=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,T=>({...T,isFetching:!1}))};if(!r.options.beforeLoad){bf(()=>{j(),w()});return}a._nonReactive.beforeLoadPromise=Qc();const{search:b,params:N,cause:E}=a,O=$g(e,t),A={search:b,abortController:d,params:N,preload:O,context:g,location:e.location,navigate:T=>e.router.navigate({...T,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:O?"preload":E,matches:e.matches,...e.router.options.additionalContext},C=T=>{if(T===void 0){bf(()=>{j(),w()});return}(si(T)||Fa(T))&&(j(),Gd(e,n,T,"BEFORE_LOAD")),bf(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:T,context:{...M.context,...T}})),w()})};let k;try{if(k=r.options.beforeLoad(A),Gs(k))return j(),k.catch(T=>{Gd(e,n,T,"BEFORE_LOAD")}).then(C)}catch(T){j(),Gd(e,n,T,"BEFORE_LOAD")}C(k)},QG=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],s=()=>{if(e.router.isServer){const d=KG(e,n,t,a);if(Gs(d))return d.then(u)}return u()},l=()=>ZG(e,n,t,a),u=()=>{if(JL(e,n))return;const d=XG(e,n,a);return Gs(d)?d.then(l):l()};return s()},wf=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([s,l,u])=>{const d=s?.meta,f=s?.links,m=s?.scripts,p=s?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},t5=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:s,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=$g(e,t);return{params:s,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},lM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&n5(r);const s=r.options.loader?.(t5(e,t,n,r)),l=r.options.loader&&Gs(s);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await s:s;Fs(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=wf(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let l=s;const u=a._nonReactive.minPendingPromise;u&&await u,Fa(s)&&await r.options.notFoundComponent?.preload?.(),Fs(e,e.router.getMatch(t),s);try{r.options.onError?.(s)}catch(m){l=m,Fs(e,e.router.getMatch(t),m)}const d=wf(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const s=e.router.getMatch(t);if(s){const l=wf(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}s._nonReactive.loaderPromise=void 0}Fs(e,s,a)}},JG=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,s=!1;const l=e.router.looseRoutesById[r];if(JL(e,n)){if(e.router.isServer){const f=wf(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Fs(e,m,p)}else{const m=Date.now()-f.updatedAt,p=$g(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(t5(e,n,t,l)):x,w=!!p&&!e.router.state.matches.some(O=>O.id===n),b=e.router.getMatch(n);b._nonReactive.loaderPromise=Qc(),w!==b.preload&&e.updateMatch(n,O=>({...O,preload:w}));const{status:N,invalid:E}=b;if(a=N==="success"&&(E||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)s=!0,(async()=>{try{await lM(e,n,t,l);const O=e.router.getMatch(n);O._nonReactive.loaderPromise?.resolve(),O._nonReactive.loadPromise?.resolve(),O._nonReactive.loaderPromise=void 0}catch(O){si(O)&&await e.router.navigate(O.options)}})();else if(N!=="success"||a&&e.sync)await lM(e,n,t,l);else{const O=wf(e,n,l);if(O){const A=await O;e.updateMatch(n,C=>({...C,...A}))}}}}const u=e.router.getMatch(n);s||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,s||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=s?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function cM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&ev(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of a5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Sp(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function r5(e){for(const t of a5)if(e.options[t]?.preload)return!0;return!1}const a5=["component","errorComponent","pendingComponent","notFoundComponent"];function eY(e){return{input:({url:t})=>{for(const n of e)t=i5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=s5(e[n],t);return t}}}function tY(e){const t=Jp(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),s=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(s)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=Qi(["/",t,l.pathname]),l)}}function i5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function s5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function el(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,s=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:s}}class nY{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",s=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=lG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new sG(aY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),zG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(s||a!==d||l!==f){this.basepath=d;const g=[];Jp(d)!==""&&g.push(tY({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:eY(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=DG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=i5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:w,hash:b}=p;return{href:j,publicHref:d,url:p.href,pathname:aM(w),searchStr:x,search:wa(r?.search,g),hash:b.split("#").reverse()[0]??"",state:wa(r?.state,f)}},s=a(n),{__tempLocation:l,__tempKey:u}=s.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=s.state.key,d.state.__TSR_key=s.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:s}}return s},this.resolvePathWithBase=(n,r)=>pG({base:n,to:OC(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=YG(1e3),this.getMatchedRoutes=(n,r)=>iY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(s=>s.status==="pending"),r=this.state.matches.filter(s=>s.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(s=>{this.cancelMatch(s.id)})},this.buildLocation=n=>{const r=(s={})=>{const l=s._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=m_(u);s.from;const f=s.unsafeRelative==="path"?l.pathname:s.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=s.to?this.resolvePathWithBase(m,`${s.to}`):this.resolvePathWithBase(m,"."),j=s.params===!1||s.params===null?{}:(s.params??!0)===!0?g:Object.assign(g,Qo(s.params,g)),w=k0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(w,void 0,{_buildLocation:!0}).map(L=>this.looseRoutesById[L.routeId]);if(Object.keys(j).length>0)for(const L of b){const $=L.options.params?.stringify??L.options.stringifyParams;$&&Object.assign(j,$(j))}const N=n.leaveParams?x:aM(k0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let E=p;if(n._includeValidateSearch&&this.options.search?.strict){const L={};b.forEach($=>{if($.options.validateSearch)try{Object.assign(L,g_($.options.validateSearch,{...L,...E}))}catch{}}),E=L}E=sY({search:E,dest:s,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=wa(p,E);const O=this.options.stringifySearch(E),A=s.hash===!0?l.hash:s.hash?Qo(s.hash,l.hash):void 0,C=A?`#${A}`:"";let k=s.state===!0?l.state:s.state?Qo(s.state,l.state):{};k=wa(l.state,k);const T=`${N}${O}${C}`,M=new URL(T,this.origin),R=s5(this.rewrite,M);return{publicHref:R.pathname+R.search+R.hash,href:T,url:R.href,pathname:N,search:E,searchStr:O,state:k,hash:A??"",unmaskOnReload:s.unmaskOnReload}},a=(s={},l)=>{const u=r(s);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=p_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const s=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=Jo(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=Ys(this.latestLocation.href)===Ys(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=Qc(()=>{u?.resolve()}),l&&s())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:s,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=hv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:s,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...s})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...s}).url),s.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...s,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(Jp(a(this.latestLocation.href))!==Jp(a(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),ZL({href:s})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(s=>s.id===a.id))}))},this.load=async n=>{let r,a,s;for(s=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...el({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...el({resolvedLocation:f,location:d})}),await cM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];bf(()=>{this.__store.setState(x=>{const j=x.matches,w=x.pendingMatches||x.matches;return m=j.filter(b=>!w.some(N=>N.id===b.id)),p=w.filter(b=>!j.some(N=>N.id===b.id)),g=w.filter(b=>j.some(N=>N.id===b.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(b=>b.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(w=>{this.looseRoutesById[w.routeId].options[j]?.(w)})})})})}})}catch(d){si(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Fa(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const s=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(el({resolvedLocation:l,location:s})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(s=>s.id===n)?"pendingMatches":this.state.matches.some(s=>s.id===n)?"matches":this.state.cachedMatches.some(s=>s.id===n)?"cachedMatches":"";a&&this.__store.setState(s=>({...s,[a]:s[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(s=>!r(s))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const s=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:n})},this.loadRouteChunk=n5,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...s,...this.state.cachedMatches.map(u=>u.id)]);bf(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await cM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{s.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(si(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Fa(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},s=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=p_(u.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!d||n.params&&!Jo(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?Jo(u.search,s.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??WG,parseSearch:t.parseSearch??HG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:s}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&s["**"]:Ys(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return Zr}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,w]=(()=>{const H=g?.search??t.search,V=g?._strictSearch??void 0;try{const F=g_(m.options.validateSearch,{...H})??void 0;return[{...H,...F},{...V,...F},void 0]}catch(F){let G=F;if(F instanceof yv||(G=new yv(F.message,{cause:F})),n?.throwOnError)throw G;return[H,{},G]}})(),b=m.options.loaderDeps?.({search:x})??"",N=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:O}=k0({path:m.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),A=m.id+E+N,C=this.getMatch(A),k=this.state.matches.find(H=>H.routeId===m.id),T=C?._strictParams??O;let M;if(!C){const H=m.options.params?.parse??m.options.parseParams;if(H)try{Object.assign(T,H(T))}catch(V){if(M=new rY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(s,T);const R=k?"stay":"enter";let L;if(C)L={...C,cause:R,params:k?wa(k.params,s):s,_strictParams:T,search:wa(k?k.search:C.search,x),_strictSearch:j};else{const H=m.options.loader||m.options.beforeLoad||m.lazyFn||r5(m)?"pending":"success";L={id:A,index:p,routeId:m.id,params:k?wa(k.params,s):s,_strictParams:T,pathname:E,updatedAt:Date.now(),search:k?wa(k.search,x):x,_strictSearch:j,searchError:void 0,status:H,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:Qc()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:R,loaderDeps:k?wa(k.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(L.globalNotFound=u===m.id),L.searchError=w;const $=f(g);L.context={...$,...L.__routeContext,...L.__beforeLoadContext},d.push(L)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],w=f(j);if(g.options.context){const b={deps:m.loaderDeps,params:m.params,context:w??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(b)??void 0}m.context={...w,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class yv extends Error{}class rY extends Error{}function aY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function g_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new yv("Async validation not supported");if(n.issues)throw new yv(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function iY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:s,parseCache:l}){let u={};const d=Ys(e),f=x=>p_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of s){const w=f(j);if(w)if(j.path!=="/"&&w["**"])x||(x={foundRoute:j,routeParams:w});else{m=j,u=w;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[Zr];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function sY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((w,b)=>b(w),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((w,b)=>b(w),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...g_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],s=({search:u})=>t.search?t.search===!0?u:Qo(t.search,u):{};a.push(s);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const oY="Error preloading route! ☝️";class o5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=Zr:this.parentRoute||ur(!1);let s=a?Zr:r?.path;s&&s!=="/"&&(s=EC(s));const l=r?.id||s;let u=a?Zr:Qi([this.parentRoute.id===Zr?"":this.parentRoute.id,l]);s===Zr&&(s="/"),u!==Zr&&(u=Qi(["/",u]));const d=u===Zr?"/":Qi([this.parentRoute.fullPath,s]);this._path=s,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class lY extends o5{constructor(t){super(t)}}function AC(e){const t=e.errorComponent??Ig;return i.jsx(cY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class cY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Ig({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function uY({children:e,fallback:t=null}){return dY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function dY(){return W.useSyncExternalStore(fY,()=>!0,()=>!1)}function fY(){return()=>{}}var P0={exports:{}},R0={},D0={exports:{}},$0={};var uM;function hY(){if(uM)return $0;uM=1;var e=Sh();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),w=j[0].inst,b=j[1];return s(function(){w.value=x,w.getSnapshot=g,d(w)&&b({inst:w})},[p,x,g]),a(function(){return d(w)&&b({inst:w}),p(function(){d(w)&&b({inst:w})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return $0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,$0}var dM;function mY(){return dM||(dM=1,D0.exports=hY()),D0.exports}var fM;function pY(){if(fM)return R0;fM=1;var e=Sh(),t=mY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return R0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=s(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=u(function(){function N(k){if(!E){if(E=!0,O=k,k=g(k),x!==void 0&&w.hasValue){var T=w.value;if(x(T,k))return A=T}return A=k}if(T=A,r(O,k))return T;var M=g(k);return x!==void 0&&x(T,M)?(O=k,T):(O=k,A=M)}var E=!1,O,A,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var b=a(f,j[0],j[1]);return l(function(){w.hasValue=!0,w.value=b},[b]),d(b),b},R0}var hM;function vY(){return hM||(hM=1,P0.exports=pY()),P0.exports}var gY=vY();function yY(e,t=r=>r,n={}){const r=n.equal??xY;return gY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function xY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=mM(e);if(n.length!==mM(t).length)return!1;for(let r=0;r"u"?I0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=I0,I0)}function Ir(e){const t=y.useContext(l5());return e?.warn,t}function Sr(e){const t=Ir({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return yY(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const s=wa(r.current,e.select(a));return r.current=s,s}return e.select(a)}return a})}const Lg=y.createContext(void 0),bY=y.createContext(void 0);function pi(e){const t=y.useContext(e.from?bY:Lg);return Sr({select:r=>{const a=r.matches.find(s=>e.from?e.from===s.routeId:s.id===t);if(ur(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function TC(e){return pi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function kC(e){const{select:t,...n}=e;return pi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function MC(e){return pi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function PC(e){return pi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function sa(e){const t=Ir();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var wl=GL();const wY=St(wl),_p=typeof window<"u"?y.useLayoutEffect:y.useEffect;function L0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function jY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([s])=>{t(s)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function SY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function _Y(e,t){const n=Ir(),[r,a]=y.useState(!1),s=y.useRef(!1),l=SY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:w,resetScroll:b,viewTransition:N,children:E,target:O,disabled:A,style:C,className:k,onClick:T,onFocus:M,onMouseEnter:R,onMouseLeave:L,onTouchStart:$,ignoreBlocker:H,params:V,search:F,hash:G,state:B,mask:D,reloadDocument:U,unsafeRelative:K,from:te,_fromLocation:I,...z}=e,Y=Sr({select:ct=>ct.location.search,structuralSharing:!0}),ne=e.from,se=y.useMemo(()=>({...e,from:ne}),[n,Y,ne,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),xe=y.useMemo(()=>n.buildLocation({...se}),[n,se]),ee=y.useMemo(()=>{if(A)return;let ct=xe.maskedLocation?xe.maskedLocation.url:xe.url,rt=!1;return n.origin&&(ct.startsWith(n.origin)?ct=n.history.createHref(ct.replace(n.origin,""))||"/":rt=!0),{href:ct,external:rt}},[A,xe.maskedLocation,xe.url,n.origin,n.history]),ae=y.useMemo(()=>{if(ee?.external)return ee.href;try{return new URL(m),m}catch{}},[m,ee]),Z=e.reloadDocument||ae?!1:p??n.options.defaultPreload,ve=g??n.options.defaultPreloadDelay??0,je=Sr({select:ct=>{if(ae)return!1;if(f?.exact){if(!hG(ct.location.pathname,xe.pathname,n.basepath))return!1}else{const rt=pv(ct.location.pathname,n.basepath),$n=pv(xe.pathname,n.basepath);if(!(rt.startsWith($n)&&(rt.length===$n.length||rt[$n.length]==="/")))return!1}return(f?.includeSearch??!0)&&!Jo(ct.location.search,xe.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?ct.location.hash===xe.hash:!0}}),le=y.useCallback(()=>{n.preloadRoute({...se}).catch(ct=>{console.warn(ct),console.warn(oY)})},[n,se]),Re=y.useCallback(ct=>{ct?.isIntersecting&&le()},[le]);jY(l,Re,AY,{disabled:!!A||Z!=="viewport"}),y.useEffect(()=>{s.current||!A&&Z==="render"&&(le(),s.current=!0)},[A,le,Z]);const _e=ct=>{const rt=ct.currentTarget.getAttribute("target"),$n=O!==void 0?O:rt;if(!A&&!TY(ct)&&!ct.defaultPrevented&&(!$n||$n==="_self")&&ct.button===0){ct.preventDefault(),wl.flushSync(()=>{a(!0)});const go=n.subscribe("onResolved",()=>{go(),a(!1)});n.navigate({...se,replace:j,resetScroll:b,hashScrollIntoView:x,startTransition:w,viewTransition:N,ignoreBlocker:H})}};if(ae)return{...z,ref:l,href:ae,...E&&{children:E},...O&&{target:O},...A&&{disabled:A},...C&&{style:C},...k&&{className:k},...T&&{onClick:T},...M&&{onFocus:M},...R&&{onMouseEnter:R},...L&&{onMouseLeave:L},...$&&{onTouchStart:$}};const fe=ct=>{A||Z&&le()},pe=fe,Le=ct=>{if(!(A||!Z))if(!ve)le();else{const rt=ct.target;if(Yd.has(rt))return;const $n=setTimeout(()=>{Yd.delete(rt),le()},ve);Yd.set(rt,$n)}},It=ct=>{if(A||!Z||!ve)return;const rt=ct.target,$n=Yd.get(rt);$n&&(clearTimeout($n),Yd.delete(rt))},Cn=je?Qo(u,{})??NY:B0,vr=je?B0:Qo(d,{})??B0,rr=[k,Cn.className,vr.className].filter(Boolean).join(" "),gr=(C||Cn.style||vr.style)&&{...C,...Cn.style,...vr.style};return{...z,...Cn,...vr,href:ee?.href,ref:l,onClick:Kd([T,_e]),onFocus:Kd([M,fe]),onMouseEnter:Kd([R,Le]),onMouseLeave:Kd([L,It]),onTouchStart:Kd([$,pe]),disabled:!!A,target:O,...gr&&{style:gr},...rr&&{className:rr},...A&&CY,...je&&OY,...r&&EY}}const B0={},NY={className:"active"},CY={role:"link","aria-disabled":!0},OY={"data-status":"active","aria-current":"page"},EY={"data-transitioning":"transitioning"},Yd=new WeakMap,AY={rootMargin:"100px"},Kd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},RC=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:s,...l}=_Y(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:s},u)});function TY(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class kY extends o5{constructor(t){super(t),this.useMatch=n=>pi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>PC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>MC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>kC({...n,from:this.id}),this.useLoaderData=n=>TC({...n,from:this.id}),this.useNavigate=()=>sa({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(RC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function fr(e){return new kY(e)}class MY extends lY{constructor(t){super(t),this.useMatch=n=>pi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>PC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>MC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>kC({...n,from:this.id}),this.useLoaderData=n=>TC({...n,from:this.id}),this.useNavigate=()=>sa({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(RC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function PY(e){return new MY(e)}function pM(e){return typeof e=="object"?new vM(e,{silent:!0}).createRoute(e):new vM(e,{silent:!0}).createRoute}class vM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=fr(r);return a.isRoot=!1,a},this.silent=n?.silent}}class gM{constructor(t){this.useMatch=n=>pi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>PC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>MC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>kC({...n,from:this.options.id}),this.useLoaderData=n=>TC({...n,from:this.options.id}),this.useNavigate=()=>{const n=Ir();return sa({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function yM(e){return typeof e=="object"?new gM(e):t=>new gM({id:e,...t})}function RY(){const e=Ir(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:s}=Sr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=L0(s),u=s||n||a,d=L0(u),f=s||a,m=L0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Ys(e.latestLocation.href)!==Ys(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),_p(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),_p(()=>{l&&!s&&e.emit({type:"onLoad",...el(e.state)})},[l,e,s]),_p(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...el(e.state)})},[f,m,e]),_p(()=>{d&&!u&&(e.emit({type:"onResolved",...el(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),qG(e))},[u,d,e]),null}function DY(e){const t=Sr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(AC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Fa(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Fa(n))return e.fallback?.(n);throw n},children:e.children})}function $Y(){return i.jsx("p",{children:"Not Found"})}function kc(e){return i.jsx(i.Fragment,{children:e.children})}function c5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx($Y,{})}function IY({children:e}){const t=Ir();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` +`)+";$_TSR.c()"}}):null}function LY(){const e=Ir();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||v_)(e.latestLocation),r=n!==v_(e.latestLocation)?n:void 0,a={storageKey:vv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(IY,{children:`(${XL.toString()})(${JSON.stringify(a)})`})}const u5=y.memo(function({matchId:t}){const n=Ir(),r=Sr({select:N=>{const E=N.matches.find(O=>O.id===t);return ur(E),{routeId:E.routeId,ssr:E.ssr,_displayPending:E._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],s=a.options.pendingComponent??n.options.defaultPendingComponent,l=s?i.jsx(s,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??s??(a.options.errorComponent?.preload||m))?y.Suspense:kc,g=u?AC:kc,x=f?DY:kc,j=Sr({select:N=>N.loadedAt}),w=Sr({select:N=>{const E=N.matches.findIndex(O=>O.id===t);return N.matches[E-1]?.routeId}}),b=a.isRoot?a.options.shellComponent??kc:kc;return i.jsxs(b,{children:[i.jsx(Lg.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||Ig,onCatch:(N,E)=>{if(Fa(N))throw N;d?.(N,E)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(uY,{fallback:l,children:i.jsx(xM,{matchId:t})}):i.jsx(xM,{matchId:t})})})})}),w===Zr&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx(BY,{}),i.jsx(LY,{})]}):null]})});function BY(){const e=Ir(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...el(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const xM=y.memo(function({matchId:t}){const n=Ir(),{match:r,key:a,routeId:s}=Sr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[s],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(DC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=Qc();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return ur(Fa(r.error)),c5(n,l,r.error);if(r.status==="redirected")throw ur(si(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||Ig;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),DC=y.memo(function(){const t=Ir(),n=y.useContext(Lg),r=Sr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],s=Sr({select:f=>{const p=f.matches.find(g=>g.id===n);return ur(p),p.globalNotFound}}),l=Sr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(s)return c5(t,a,void 0);if(!l)return null;const d=i.jsx(u5,{matchId:l});return r===Zr?i.jsx(y.Suspense,{fallback:u,children:d}):d});function zY(){const e=Ir(),n=e.routesById[Zr].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?kc:y.Suspense,s=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(RY,{}),i.jsx(qY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:s}):s}function qY(){const e=Ir(),t=Sr({select:a=>a.matches[0]?.id}),n=Sr({select:a=>a.loadedAt}),r=t?i.jsx(u5,{matchId:t}):null;return i.jsx(Lg.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(AC,{getResetKey:()=>n,errorComponent:Ig,onCatch:a=>{a.message||a.toString()},children:r})})}function FY(){const e=Ir();return Sr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s})},[e])}const UY=e=>new HY(e);class HY extends nY{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=pM,globalThis.createLazyFileRoute=yM):typeof window<"u"&&(window.createFileRoute=pM,window.createLazyFileRoute=yM);function WY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=l5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function VY({router:e,...t}){return i.jsx(WY,{router:e,...t,children:i.jsx(zY,{})})}function d5(e,t){return function(){return e.apply(t,arguments)}}const{toString:GY}=Object.prototype,{getPrototypeOf:$C}=Object,{iterator:Bg,toStringTag:f5}=Symbol,zg=(e=>t=>{const n=GY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Va=e=>(e=e.toLowerCase(),t=>zg(t)===e),qg=e=>t=>typeof t===e,{isArray:Du}=Array,nu=qg("undefined");function _h(e){return e!==null&&!nu(e)&&e.constructor!==null&&!nu(e.constructor)&&Mr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const h5=Va("ArrayBuffer");function YY(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&h5(e.buffer),t}const KY=qg("string"),Mr=qg("function"),m5=qg("number"),Nh=e=>e!==null&&typeof e=="object",XY=e=>e===!0||e===!1,tv=e=>{if(zg(e)!=="object")return!1;const t=$C(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(f5 in e)&&!(Bg in e)},ZY=e=>{if(!Nh(e)||_h(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},QY=Va("Date"),JY=Va("File"),eK=Va("Blob"),tK=Va("FileList"),nK=e=>Nh(e)&&Mr(e.pipe),rK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Mr(e.append)&&((t=zg(e))==="formdata"||t==="object"&&Mr(e.toString)&&e.toString()==="[object FormData]"))},aK=Va("URLSearchParams"),[iK,sK,oK,lK]=["ReadableStream","Request","Response","Headers"].map(Va),cK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ch(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),Du(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Vo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,v5=e=>!nu(e)&&e!==Vo;function y_(){const{caseless:e,skipUndefined:t}=v5(this)&&this||{},n={},r=(a,s)=>{const l=e&&p5(n,s)||s;tv(n[l])&&tv(a)?n[l]=y_(n[l],a):tv(a)?n[l]=y_({},a):Du(a)?n[l]=a.slice():(!t||!nu(a))&&(n[l]=a)};for(let a=0,s=arguments.length;a(Ch(t,(a,s)=>{n&&Mr(a)?e[s]=d5(a,n):e[s]=a},{allOwnKeys:r}),e),dK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},hK=(e,t,n,r)=>{let a,s,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),s=a.length;s-- >0;)l=a[s],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&$C(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},mK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pK=e=>{if(!e)return null;if(Du(e))return e;let t=e.length;if(!m5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},vK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&$C(Uint8Array)),gK=(e,t)=>{const r=(e&&e[Bg]).call(e);let a;for(;(a=r.next())&&!a.done;){const s=a.value;t.call(e,s[0],s[1])}},yK=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},xK=Va("HTMLFormElement"),bK=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),bM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),wK=Va("RegExp"),g5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ch(n,(a,s)=>{let l;(l=t(a,s,e))!==!1&&(r[s]=l||a)}),Object.defineProperties(e,r)},jK=e=>{g5(e,(t,n)=>{if(Mr(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Mr(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},SK=(e,t)=>{const n={},r=a=>{a.forEach(s=>{n[s]=!0})};return Du(e)?r(e):r(String(e).split(t)),n},_K=()=>{},NK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function CK(e){return!!(e&&Mr(e.append)&&e[f5]==="FormData"&&e[Bg])}const OK=e=>{const t=new Array(10),n=(r,a)=>{if(Nh(r)){if(t.indexOf(r)>=0)return;if(_h(r))return r;if(!("toJSON"in r)){t[a]=r;const s=Du(r)?[]:{};return Ch(r,(l,u)=>{const d=n(l,a+1);!nu(d)&&(s[u]=d)}),t[a]=void 0,s}}return r};return n(e,0)},EK=Va("AsyncFunction"),AK=e=>e&&(Nh(e)||Mr(e))&&Mr(e.then)&&Mr(e.catch),y5=((e,t)=>e?setImmediate:t?((n,r)=>(Vo.addEventListener("message",({source:a,data:s})=>{a===Vo&&s===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Vo.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Mr(Vo.postMessage)),TK=typeof queueMicrotask<"u"?queueMicrotask.bind(Vo):typeof process<"u"&&process.nextTick||y5,kK=e=>e!=null&&Mr(e[Bg]),he={isArray:Du,isArrayBuffer:h5,isBuffer:_h,isFormData:rK,isArrayBufferView:YY,isString:KY,isNumber:m5,isBoolean:XY,isObject:Nh,isPlainObject:tv,isEmptyObject:ZY,isReadableStream:iK,isRequest:sK,isResponse:oK,isHeaders:lK,isUndefined:nu,isDate:QY,isFile:JY,isBlob:eK,isRegExp:wK,isFunction:Mr,isStream:nK,isURLSearchParams:aK,isTypedArray:vK,isFileList:tK,forEach:Ch,merge:y_,extend:uK,trim:cK,stripBOM:dK,inherits:fK,toFlatObject:hK,kindOf:zg,kindOfTest:Va,endsWith:mK,toArray:pK,forEachEntry:gK,matchAll:yK,isHTMLForm:xK,hasOwnProperty:bM,hasOwnProp:bM,reduceDescriptors:g5,freezeMethods:jK,toObjectSet:SK,toCamelCase:bK,noop:_K,toFiniteNumber:NK,findKey:p5,global:Vo,isContextDefined:v5,isSpecCompliantForm:CK,toJSONObject:OK,isAsyncFn:EK,isThenable:AK,setImmediate:y5,asap:TK,isIterable:kK};function Xe(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}he.inherits(Xe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:he.toJSONObject(this.config),code:this.code,status:this.status}}});const x5=Xe.prototype,b5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{b5[e]={value:e}});Object.defineProperties(Xe,b5);Object.defineProperty(x5,"isAxiosError",{value:!0});Xe.from=(e,t,n,r,a,s)=>{const l=Object.create(x5);he.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return Xe.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",s&&Object.assign(l,s),l};const MK=null;function x_(e){return he.isPlainObject(e)||he.isArray(e)}function w5(e){return he.endsWith(e,"[]")?e.slice(0,-2):e}function wM(e,t,n){return e?e.concat(t).map(function(a,s){return a=w5(a),!n&&s?"["+a+"]":a}).join(n?".":""):t}function PK(e){return he.isArray(e)&&!e.some(x_)}const RK=he.toFlatObject(he,{},null,function(t){return/^is[A-Z]/.test(t)});function Fg(e,t,n){if(!he.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=he.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,b){return!he.isUndefined(b[w])});const r=n.metaTokens,a=n.visitor||m,s=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&he.isSpecCompliantForm(t);if(!he.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(he.isDate(j))return j.toISOString();if(he.isBoolean(j))return j.toString();if(!d&&he.isBlob(j))throw new Xe("Blob is not supported. Use a Buffer instead.");return he.isArrayBuffer(j)||he.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,w,b){let N=j;if(j&&!b&&typeof j=="object"){if(he.endsWith(w,"{}"))w=r?w:w.slice(0,-2),j=JSON.stringify(j);else if(he.isArray(j)&&PK(j)||(he.isFileList(j)||he.endsWith(w,"[]"))&&(N=he.toArray(j)))return w=w5(w),N.forEach(function(O,A){!(he.isUndefined(O)||O===null)&&t.append(l===!0?wM([w],A,s):l===null?w:w+"[]",f(O))}),!1}return x_(j)?!0:(t.append(wM(b,w,s),f(j)),!1)}const p=[],g=Object.assign(RK,{defaultVisitor:m,convertValue:f,isVisitable:x_});function x(j,w){if(!he.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+w.join("."));p.push(j),he.forEach(j,function(N,E){(!(he.isUndefined(N)||N===null)&&a.call(t,N,he.isString(E)?E.trim():E,w,g))===!0&&x(N,w?w.concat(E):[E])}),p.pop()}}if(!he.isObject(e))throw new TypeError("data must be an object");return x(e),t}function jM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function IC(e,t){this._pairs=[],e&&Fg(e,this,t)}const j5=IC.prototype;j5.append=function(t,n){this._pairs.push([t,n])};j5.toString=function(t){const n=t?function(r){return t.call(this,r,jM)}:jM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function DK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function S5(e,t,n){if(!t)return e;const r=n&&n.encode||DK;he.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let s;if(a?s=a(t,n):s=he.isURLSearchParams(t)?t.toString():new IC(t,n).toString(r),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class SM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){he.forEach(this.handlers,function(r){r!==null&&t(r)})}}const _5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},$K=typeof URLSearchParams<"u"?URLSearchParams:IC,IK=typeof FormData<"u"?FormData:null,LK=typeof Blob<"u"?Blob:null,BK={isBrowser:!0,classes:{URLSearchParams:$K,FormData:IK,Blob:LK},protocols:["http","https","file","blob","url","data"]},LC=typeof window<"u"&&typeof document<"u",b_=typeof navigator=="object"&&navigator||void 0,zK=LC&&(!b_||["ReactNative","NativeScript","NS"].indexOf(b_.product)<0),qK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",FK=LC&&window.location.href||"http://localhost",UK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:LC,hasStandardBrowserEnv:zK,hasStandardBrowserWebWorkerEnv:qK,navigator:b_,origin:FK},Symbol.toStringTag,{value:"Module"})),cr={...UK,...BK};function HK(e,t){return Fg(e,new cr.classes.URLSearchParams,{visitor:function(n,r,a,s){return cr.isNode&&he.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function WK(e){return he.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function VK(e){const t={},n=Object.keys(e);let r;const a=n.length;let s;for(r=0;r=n.length;return l=!l&&he.isArray(a)?a.length:l,d?(he.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!he.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],s)&&he.isArray(a[l])&&(a[l]=VK(a[l])),!u)}if(he.isFormData(e)&&he.isFunction(e.entries)){const n={};return he.forEachEntry(e,(r,a)=>{t(WK(r),a,n,0)}),n}return null}function GK(e,t,n){if(he.isString(e))try{return(t||JSON.parse)(e),he.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Oh={transitional:_5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,s=he.isObject(t);if(s&&he.isHTMLForm(t)&&(t=new FormData(t)),he.isFormData(t))return a?JSON.stringify(N5(t)):t;if(he.isArrayBuffer(t)||he.isBuffer(t)||he.isStream(t)||he.isFile(t)||he.isBlob(t)||he.isReadableStream(t))return t;if(he.isArrayBufferView(t))return t.buffer;if(he.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return HK(t,this.formSerializer).toString();if((u=he.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Fg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||a?(n.setContentType("application/json",!1),GK(t)):t}],transformResponse:[function(t){const n=this.transitional||Oh.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(he.isResponse(t)||he.isReadableStream(t))return t;if(t&&he.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?Xe.from(u,Xe.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:cr.classes.FormData,Blob:cr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};he.forEach(["delete","get","head","post","put","patch"],e=>{Oh.headers[e]={}});const YK=he.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),KK=e=>{const t={};let n,r,a;return e&&e.split(` +`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&YK[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},_M=Symbol("internals");function Xd(e){return e&&String(e).trim().toLowerCase()}function nv(e){return e===!1||e==null?e:he.isArray(e)?e.map(nv):String(e)}function XK(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const ZK=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function z0(e,t,n,r,a){if(he.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!he.isString(t)){if(he.isString(r))return t.indexOf(r)!==-1;if(he.isRegExp(r))return r.test(t)}}function QK(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function JK(e,t){const n=he.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,s,l){return this[r].call(this,t,a,s,l)},configurable:!0})})}let Pr=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function s(u,d,f){const m=Xd(d);if(!m)throw new Error("header name must be a non-empty string");const p=he.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=nv(u))}const l=(u,d)=>he.forEach(u,(f,m)=>s(f,m,d));if(he.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(he.isString(t)&&(t=t.trim())&&!ZK(t))l(KK(t),n);else if(he.isObject(t)&&he.isIterable(t)){let u={},d,f;for(const m of t){if(!he.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?he.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=Xd(t),t){const r=he.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return XK(a);if(he.isFunction(n))return n.call(this,a,r);if(he.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Xd(t),t){const r=he.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||z0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function s(l){if(l=Xd(l),l){const u=he.findKey(r,l);u&&(!n||z0(r,r[u],u,n))&&(delete r[u],a=!0)}}return he.isArray(t)?t.forEach(s):s(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const s=n[r];(!t||z0(this,this[s],s,t,!0))&&(delete this[s],a=!0)}return a}normalize(t){const n=this,r={};return he.forEach(this,(a,s)=>{const l=he.findKey(r,s);if(l){n[l]=nv(a),delete n[s];return}const u=t?QK(s):String(s).trim();u!==s&&delete n[s],n[u]=nv(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return he.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&he.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[_M]=this[_M]={accessors:{}}).accessors,a=this.prototype;function s(l){const u=Xd(l);r[u]||(JK(a,l),r[u]=!0)}return he.isArray(t)?t.forEach(s):s(t),this}};Pr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);he.reduceDescriptors(Pr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});he.freezeMethods(Pr);function q0(e,t){const n=this||Oh,r=t||n,a=Pr.from(r.headers);let s=r.data;return he.forEach(e,function(u){s=u.call(n,s,a.normalize(),t?t.status:void 0)}),a.normalize(),s}function C5(e){return!!(e&&e.__CANCEL__)}function $u(e,t,n){Xe.call(this,e??"canceled",Xe.ERR_CANCELED,t,n),this.name="CanceledError"}he.inherits($u,Xe,{__CANCEL__:!0});function O5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Xe("Request failed with status code "+n.status,[Xe.ERR_BAD_REQUEST,Xe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function eX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function tX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[s];l||(l=f),n[a]=d,r[a]=f;let p=s,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===s&&(s=(s+1)%e),f-l{n=m,a=null,s&&(clearTimeout(s),s=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,s||(s=setTimeout(()=>{s=null,l(a)},r-p)))},()=>a&&l(a)]}const xv=(e,t,n=3)=>{let r=0;const a=tX(50,250);return nX(s=>{const l=s.loaded,u=s.lengthComputable?s.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:s,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},NM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},CM=e=>(...t)=>he.asap(()=>e(...t)),rX=cr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,cr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(cr.origin),cr.navigator&&/(msie|trident)/i.test(cr.navigator.userAgent)):()=>!0,aX=cr.hasStandardBrowserEnv?{write(e,t,n,r,a,s,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];he.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),he.isString(r)&&u.push(`path=${r}`),he.isString(a)&&u.push(`domain=${a}`),s===!0&&u.push("secure"),he.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function iX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function sX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function E5(e,t,n){let r=!iX(t);return e&&(r||n==!1)?sX(e,t):t}const OM=e=>e instanceof Pr?{...e}:e;function cl(e,t){t=t||{};const n={};function r(f,m,p,g){return he.isPlainObject(f)&&he.isPlainObject(m)?he.merge.call({caseless:g},f,m):he.isPlainObject(m)?he.merge({},m):he.isArray(m)?m.slice():m}function a(f,m,p,g){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function s(f,m){if(!he.isUndefined(m))return r(void 0,m)}function l(f,m){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(OM(f),OM(m),p,!0)};return he.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);he.isUndefined(g)&&p!==u||(n[m]=g)}),n}const A5=e=>{const t=cl({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:s,headers:l,auth:u}=t;if(t.headers=l=Pr.from(l),t.url=S5(E5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),he.isFormData(n)){if(cr.hasStandardBrowserEnv||cr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(he.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(cr.hasStandardBrowserEnv&&(r&&he.isFunction(r)&&(r=r(t)),r||r!==!1&&rX(t.url))){const d=a&&s&&aX.read(s);d&&l.set(a,d)}return t},oX=typeof XMLHttpRequest<"u",lX=oX&&function(e){return new Promise(function(n,r){const a=A5(e);let s=a.data;const l=Pr.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function w(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function N(){if(!b)return;const O=Pr.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:O,config:e,request:b};O5(function(T){n(T),w()},function(T){r(T),w()},C),b=null}"onloadend"in b?b.onloadend=N:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(N)},b.onabort=function(){b&&(r(new Xe("Request aborted",Xe.ECONNABORTED,e,b)),b=null)},b.onerror=function(A){const C=A&&A.message?A.message:"Network Error",k=new Xe(C,Xe.ERR_NETWORK,e,b);k.event=A||null,r(k),b=null},b.ontimeout=function(){let A=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||_5;a.timeoutErrorMessage&&(A=a.timeoutErrorMessage),r(new Xe(A,C.clarifyTimeoutError?Xe.ETIMEDOUT:Xe.ECONNABORTED,e,b)),b=null},s===void 0&&l.setContentType(null),"setRequestHeader"in b&&he.forEach(l.toJSON(),function(A,C){b.setRequestHeader(C,A)}),he.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),u&&u!=="json"&&(b.responseType=a.responseType),f&&([g,j]=xv(f,!0),b.addEventListener("progress",g)),d&&b.upload&&([p,x]=xv(d),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=O=>{b&&(r(!O||O.type?new $u(null,e,b):O),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const E=eX(a.url);if(E&&cr.protocols.indexOf(E)===-1){r(new Xe("Unsupported protocol "+E+":",Xe.ERR_BAD_REQUEST,e));return}b.send(s||null)})},cX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const s=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof Xe?m:new $u(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,s(new Xe(`timeout ${t} of ms exceeded`,Xe.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>he.asap(u),d}},uX=function*(e,t){let n=e.byteLength;if(n{const a=dX(e,t);let s=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=s+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},AM=64*1024,{isFunction:Np}=he,hX=(({Request:e,Response:t})=>({Request:e,Response:t}))(he.global),{ReadableStream:TM,TextEncoder:kM}=he.global,MM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},mX=e=>{e=he.merge.call({skipUndefined:!0},hX,e);const{fetch:t,Request:n,Response:r}=e,a=t?Np(t):typeof fetch=="function",s=Np(n),l=Np(r);if(!a)return!1;const u=a&&Np(TM),d=a&&(typeof kM=="function"?(j=>w=>j.encode(w))(new kM):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=s&&u&&MM(()=>{let j=!1;const w=new n(cr.origin,{body:new TM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!w}),m=l&&u&&MM(()=>he.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(w,b)=>{let N=w&&w[j];if(N)return N.call(w);throw new Xe(`Response type '${j}' is not supported`,Xe.ERR_NOT_SUPPORT,b)})});const g=async j=>{if(j==null)return 0;if(he.isBlob(j))return j.size;if(he.isSpecCompliantForm(j))return(await new n(cr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(he.isArrayBufferView(j)||he.isArrayBuffer(j))return j.byteLength;if(he.isURLSearchParams(j)&&(j=j+""),he.isString(j))return(await d(j)).byteLength},x=async(j,w)=>{const b=he.toFiniteNumber(j.getContentLength());return b??g(w)};return async j=>{let{url:w,method:b,data:N,signal:E,cancelToken:O,timeout:A,onDownloadProgress:C,onUploadProgress:k,responseType:T,headers:M,withCredentials:R="same-origin",fetchOptions:L}=A5(j),$=t||fetch;T=T?(T+"").toLowerCase():"text";let H=cX([E,O&&O.toAbortSignal()],A),V=null;const F=H&&H.unsubscribe&&(()=>{H.unsubscribe()});let G;try{if(k&&f&&b!=="get"&&b!=="head"&&(G=await x(M,N))!==0){let I=new n(w,{method:"POST",body:N,duplex:"half"}),z;if(he.isFormData(N)&&(z=I.headers.get("content-type"))&&M.setContentType(z),I.body){const[Y,ne]=NM(G,xv(CM(k)));N=EM(I.body,AM,Y,ne)}}he.isString(R)||(R=R?"include":"omit");const B=s&&"credentials"in n.prototype,D={...L,signal:H,method:b.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:B?R:void 0};V=s&&new n(w,D);let U=await(s?$(V,L):$(w,D));const K=m&&(T==="stream"||T==="response");if(m&&(C||K&&F)){const I={};["status","statusText","headers"].forEach(se=>{I[se]=U[se]});const z=he.toFiniteNumber(U.headers.get("content-length")),[Y,ne]=C&&NM(z,xv(CM(C),!0))||[];U=new r(EM(U.body,AM,Y,()=>{ne&&ne(),F&&F()}),I)}T=T||"text";let te=await p[he.findKey(p,T)||"text"](U,j);return!K&&F&&F(),await new Promise((I,z)=>{O5(I,z,{data:te,headers:Pr.from(U.headers),status:U.status,statusText:U.statusText,config:j,request:V})})}catch(B){throw F&&F(),B&&B.name==="TypeError"&&/Load failed|fetch/i.test(B.message)?Object.assign(new Xe("Network Error",Xe.ERR_NETWORK,j,V),{cause:B.cause||B}):Xe.from(B,B&&B.code,j,V)}}},pX=new Map,T5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,s=[r,a,n];let l=s.length,u=l,d,f,m=pX;for(;u--;)d=s[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:mX(t)),m=f;return f};T5();const BC={http:MK,xhr:lX,fetch:{get:T5}};he.forEach(BC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const PM=e=>`- ${e}`,vX=e=>he.isFunction(e)||e===null||e===!1;function gX(e,t){e=he.isArray(e)?e:[e];const{length:n}=e;let r,a;const s={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : +`+l.map(PM).join(` +`):" "+PM(l[0]):"as no adapter specified";throw new Xe("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const k5={getAdapter:gX,adapters:BC};function F0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $u(null,e)}function RM(e){return F0(e),e.headers=Pr.from(e.headers),e.data=q0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),k5.getAdapter(e.adapter||Oh.adapter,e)(e).then(function(r){return F0(e),r.data=q0.call(e,e.transformResponse,r),r.headers=Pr.from(r.headers),r},function(r){return C5(r)||(F0(e),r&&r.response&&(r.response.data=q0.call(e,e.transformResponse,r.response),r.response.headers=Pr.from(r.response.headers))),Promise.reject(r)})}const M5="1.13.2",Ug={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ug[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const DM={};Ug.transitional=function(t,n,r){function a(s,l){return"[Axios v"+M5+"] Transitional option '"+s+"'"+l+(r?". "+r:"")}return(s,l,u)=>{if(t===!1)throw new Xe(a(l," has been removed"+(n?" in "+n:"")),Xe.ERR_DEPRECATED);return n&&!DM[l]&&(DM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,l,u):!0}};Ug.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yX(e,t,n){if(typeof e!="object")throw new Xe("options must be an object",Xe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const s=r[a],l=t[s];if(l){const u=e[s],d=u===void 0||l(u,s,e);if(d!==!0)throw new Xe("option "+s+" must be "+d,Xe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Xe("Unknown option "+s,Xe.ERR_BAD_OPTION)}}const rv={assertOptions:yX,validators:Ug},ei=rv.validators;let tl=class{constructor(t){this.defaults=t||{},this.interceptors={request:new SM,response:new SM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const s=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=cl(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:s}=n;r!==void 0&&rv.assertOptions(r,{silentJSONParsing:ei.transitional(ei.boolean),forcedJSONParsing:ei.transitional(ei.boolean),clarifyTimeoutError:ei.transitional(ei.boolean)},!1),a!=null&&(he.isFunction(a)?n.paramsSerializer={serialize:a}:rv.assertOptions(a,{encode:ei.function,serialize:ei.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),rv.assertOptions(n,{baseUrl:ei.spelling("baseURL"),withXsrfToken:ei.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=s&&he.merge(s.common,s[n.method]);s&&he.forEach(["delete","get","head","post","put","patch","common"],j=>{delete s[j]}),n.headers=Pr.concat(l,s);const u=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,u.unshift(w.fulfilled,w.rejected))});const f=[];this.interceptors.response.forEach(function(w){f.push(w.fulfilled,w.rejected)});let m,p=0,g;if(!d){const j=[RM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](a);r._listeners=null}),this.promise.then=a=>{let s;const l=new Promise(u=>{r.subscribe(u),s=u}).then(a);return l.cancel=function(){r.unsubscribe(s)},l},t(function(s,l,u){r.reason||(r.reason=new $u(s,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new P5(function(a){t=a}),cancel:t}}};function bX(e){return function(n){return e.apply(null,n)}}function wX(e){return he.isObject(e)&&e.isAxiosError===!0}const w_={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(w_).forEach(([e,t])=>{w_[t]=e});function R5(e){const t=new tl(e),n=d5(tl.prototype.request,t);return he.extend(n,tl.prototype,t,{allOwnKeys:!0}),he.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return R5(cl(e,a))},n}const ln=R5(Oh);ln.Axios=tl;ln.CanceledError=$u;ln.CancelToken=xX;ln.isCancel=C5;ln.VERSION=M5;ln.toFormData=Fg;ln.AxiosError=Xe;ln.Cancel=ln.CanceledError;ln.all=function(t){return Promise.all(t)};ln.spread=bX;ln.isAxiosError=wX;ln.mergeConfig=cl;ln.AxiosHeaders=Pr;ln.formToJSON=e=>N5(he.isHTMLForm(e)?new FormData(e):e);ln.getAdapter=k5.getAdapter;ln.HttpStatusCode=w_;ln.default=ln;const{Axios:gAe,AxiosError:yAe,CanceledError:xAe,isCancel:bAe,CancelToken:wAe,VERSION:jAe,all:SAe,Cancel:_Ae,isAxiosError:NAe,spread:CAe,toFormData:OAe,AxiosHeaders:EAe,HttpStatusCode:AAe,formToJSON:TAe,getAdapter:kAe,mergeConfig:MAe}=ln;function D5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),$5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),bv="-",$M=[],_X="arbitrary..",NX=e=>{const t=OX(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return CX(l);const u=l.split(bv),d=u[0]===""&&u.length>1?1:0;return I5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?jX(f,d):d:f||$M}return n[l]||$M}}},I5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],s=n.nextPart.get(a);if(s){const f=I5(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(bv):e.slice(t).join(bv),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?_X+r:void 0})(),OX=e=>{const{theme:t,classGroups:n}=e;return EX(n,t)},EX=(e,t)=>{const n=$5();for(const r in e){const a=e[r];zC(a,n,r,t)}return n},zC=(e,t,n,r)=>{const a=e.length;for(let s=0;s{if(typeof e=="string"){TX(e,t,n);return}if(typeof e=="function"){kX(e,t,n,r);return}MX(e,t,n,r)},TX=(e,t,n)=>{const r=e===""?t:L5(t,e);r.classGroupId=n},kX=(e,t,n,r)=>{if(PX(e)){zC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(SX(n,e))},MX=(e,t,n,r)=>{const a=Object.entries(e),s=a.length;for(let l=0;l{let n=e;const r=t.split(bv),a=r.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,RX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(s,l)=>{n[s]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=r[s])!==void 0)return a(s,l),l},set(s,l){s in n?n[s]=l:a(s,l)}}},j_="!",IM=":",DX=[],LM=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),$X=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const s=[];let l=0,u=0,d=0,f;const m=a.length;for(let w=0;wd?f-d:void 0;return LM(s,x,g,j)};if(t){const a=t+IM,s=r;r=l=>l.startsWith(a)?s(l.slice(a.length)):LM(DX,!1,l,void 0,!0)}if(n){const a=r;r=s=>n({className:s,parseClassName:a})}return r},IX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let s=0;s0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},LX=e=>({cache:RX(e.cacheSize),parseClassName:$X(e),sortModifiers:IX(e),...NX(e)}),BX=/\s+/,zX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:s}=t,l=[],u=e.trim().split(BX);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:w}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let b=!!w,N=r(b?j.substring(0,w):j);if(!N){if(!b){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}b=!1}const E=g.length===0?"":g.length===1?g[0]:s(g).join(":"),O=x?E+j_:E,A=O+N;if(l.indexOf(A)>-1)continue;l.push(A);const C=a(N,b);for(let k=0;k0?" "+d:d)}return d},qX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,s;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=LX(f),r=n.cache.get,a=n.cache.set,s=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=zX(d,n);return a(d,m),m};return s=l,(...d)=>s(qX(...d))},UX=[],En=e=>{const t=n=>n[e]||UX;return t.isThemeGetter=!0,t},z5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,q5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,HX=/^\d+\/\d+$/,WX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,VX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,GX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,YX=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,KX=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,wc=e=>HX.test(e),nt=e=>!!e&&!Number.isNaN(Number(e)),Is=e=>!!e&&Number.isInteger(Number(e)),U0=e=>e.endsWith("%")&&nt(e.slice(0,-1)),Fi=e=>WX.test(e),XX=()=>!0,ZX=e=>VX.test(e)&&!GX.test(e),F5=()=>!1,QX=e=>YX.test(e),JX=e=>KX.test(e),eZ=e=>!Te(e)&&!ke(e),tZ=e=>Iu(e,W5,F5),Te=e=>z5.test(e),Lo=e=>Iu(e,V5,ZX),H0=e=>Iu(e,sZ,nt),BM=e=>Iu(e,U5,F5),nZ=e=>Iu(e,H5,JX),Cp=e=>Iu(e,G5,QX),ke=e=>q5.test(e),Zd=e=>Lu(e,V5),rZ=e=>Lu(e,oZ),zM=e=>Lu(e,U5),aZ=e=>Lu(e,W5),iZ=e=>Lu(e,H5),Op=e=>Lu(e,G5,!0),Iu=(e,t,n)=>{const r=z5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Lu=(e,t,n=!1)=>{const r=q5.exec(e);return r?r[1]?t(r[1]):n:!1},U5=e=>e==="position"||e==="percentage",H5=e=>e==="image"||e==="url",W5=e=>e==="length"||e==="size"||e==="bg-size",V5=e=>e==="length",sZ=e=>e==="number",oZ=e=>e==="family-name",G5=e=>e==="shadow",lZ=()=>{const e=En("color"),t=En("font"),n=En("text"),r=En("font-weight"),a=En("tracking"),s=En("leading"),l=En("breakpoint"),u=En("container"),d=En("spacing"),f=En("radius"),m=En("shadow"),p=En("inset-shadow"),g=En("text-shadow"),x=En("drop-shadow"),j=En("blur"),w=En("perspective"),b=En("aspect"),N=En("ease"),E=En("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...A(),ke,Te],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],M=()=>[ke,Te,d],R=()=>[wc,"full","auto",...M()],L=()=>[Is,"none","subgrid",ke,Te],$=()=>["auto",{span:["full",Is,ke,Te]},Is,ke,Te],H=()=>[Is,"auto",ke,Te],V=()=>["auto","min","max","fr",ke,Te],F=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],B=()=>["auto",...M()],D=()=>[wc,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],U=()=>[e,ke,Te],K=()=>[...A(),zM,BM,{position:[ke,Te]}],te=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",aZ,tZ,{size:[ke,Te]}],z=()=>[U0,Zd,Lo],Y=()=>["","none","full",f,ke,Te],ne=()=>["",nt,Zd,Lo],se=()=>["solid","dashed","dotted","double"],xe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[nt,U0,zM,BM],ae=()=>["","none",j,ke,Te],Z=()=>["none",nt,ke,Te],ve=()=>["none",nt,ke,Te],je=()=>[nt,ke,Te],le=()=>[wc,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fi],breakpoint:[Fi],color:[XX],container:[Fi],"drop-shadow":[Fi],ease:["in","out","in-out"],font:[eZ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fi],shadow:[Fi],spacing:["px",nt],text:[Fi],"text-shadow":[Fi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",wc,Te,ke,b]}],container:["container"],columns:[{columns:[nt,Te,ke,u]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[Is,"auto",ke,Te]}],basis:[{basis:[wc,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[nt,wc,"auto","initial","none",Te]}],grow:[{grow:["",nt,ke,Te]}],shrink:[{shrink:["",nt,ke,Te]}],order:[{order:[Is,"first","last","none",ke,Te]}],"grid-cols":[{"grid-cols":L()}],"col-start-end":[{col:$()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":L()}],"row-start-end":[{row:$()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...F(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...F()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":F()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:B()}],mx:[{mx:B()}],my:[{my:B()}],ms:[{ms:B()}],me:[{me:B()}],mt:[{mt:B()}],mr:[{mr:B()}],mb:[{mb:B()}],ml:[{ml:B()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:D()}],w:[{w:[u,"screen",...D()]}],"min-w":[{"min-w":[u,"screen","none",...D()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...D()]}],h:[{h:["screen","lh",...D()]}],"min-h":[{"min-h":["screen","lh","none",...D()]}],"max-h":[{"max-h":["screen","lh",...D()]}],"font-size":[{text:["base",n,Zd,Lo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,ke,H0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",U0,Te]}],"font-family":[{font:[rZ,Te,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,ke,Te]}],"line-clamp":[{"line-clamp":[nt,"none",ke,H0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",ke,Te]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ke,Te]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:U()}],"text-color":[{text:U()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...se(),"wavy"]}],"text-decoration-thickness":[{decoration:[nt,"from-font","auto",ke,Lo]}],"text-decoration-color":[{decoration:U()}],"underline-offset":[{"underline-offset":[nt,"auto",ke,Te]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ke,Te]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ke,Te]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:K()}],"bg-repeat":[{bg:te()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Is,ke,Te],radial:["",ke,Te],conic:[Is,ke,Te]},iZ,nZ]}],"bg-color":[{bg:U()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:U()}],"gradient-via":[{via:U()}],"gradient-to":[{to:U()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:ne()}],"border-w-x":[{"border-x":ne()}],"border-w-y":[{"border-y":ne()}],"border-w-s":[{"border-s":ne()}],"border-w-e":[{"border-e":ne()}],"border-w-t":[{"border-t":ne()}],"border-w-r":[{"border-r":ne()}],"border-w-b":[{"border-b":ne()}],"border-w-l":[{"border-l":ne()}],"divide-x":[{"divide-x":ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...se(),"hidden","none"]}],"divide-style":[{divide:[...se(),"hidden","none"]}],"border-color":[{border:U()}],"border-color-x":[{"border-x":U()}],"border-color-y":[{"border-y":U()}],"border-color-s":[{"border-s":U()}],"border-color-e":[{"border-e":U()}],"border-color-t":[{"border-t":U()}],"border-color-r":[{"border-r":U()}],"border-color-b":[{"border-b":U()}],"border-color-l":[{"border-l":U()}],"divide-color":[{divide:U()}],"outline-style":[{outline:[...se(),"none","hidden"]}],"outline-offset":[{"outline-offset":[nt,ke,Te]}],"outline-w":[{outline:["",nt,Zd,Lo]}],"outline-color":[{outline:U()}],shadow:[{shadow:["","none",m,Op,Cp]}],"shadow-color":[{shadow:U()}],"inset-shadow":[{"inset-shadow":["none",p,Op,Cp]}],"inset-shadow-color":[{"inset-shadow":U()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:U()}],"ring-offset-w":[{"ring-offset":[nt,Lo]}],"ring-offset-color":[{"ring-offset":U()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":U()}],"text-shadow":[{"text-shadow":["none",g,Op,Cp]}],"text-shadow-color":[{"text-shadow":U()}],opacity:[{opacity:[nt,ke,Te]}],"mix-blend":[{"mix-blend":[...xe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":xe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[nt]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":U()}],"mask-image-linear-to-color":[{"mask-linear-to":U()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":U()}],"mask-image-t-to-color":[{"mask-t-to":U()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":U()}],"mask-image-r-to-color":[{"mask-r-to":U()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":U()}],"mask-image-b-to-color":[{"mask-b-to":U()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":U()}],"mask-image-l-to-color":[{"mask-l-to":U()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":U()}],"mask-image-x-to-color":[{"mask-x-to":U()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":U()}],"mask-image-y-to-color":[{"mask-y-to":U()}],"mask-image-radial":[{"mask-radial":[ke,Te]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":U()}],"mask-image-radial-to-color":[{"mask-radial-to":U()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":A()}],"mask-image-conic-pos":[{"mask-conic":[nt]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":U()}],"mask-image-conic-to-color":[{"mask-conic-to":U()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:K()}],"mask-repeat":[{mask:te()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ke,Te]}],filter:[{filter:["","none",ke,Te]}],blur:[{blur:ae()}],brightness:[{brightness:[nt,ke,Te]}],contrast:[{contrast:[nt,ke,Te]}],"drop-shadow":[{"drop-shadow":["","none",x,Op,Cp]}],"drop-shadow-color":[{"drop-shadow":U()}],grayscale:[{grayscale:["",nt,ke,Te]}],"hue-rotate":[{"hue-rotate":[nt,ke,Te]}],invert:[{invert:["",nt,ke,Te]}],saturate:[{saturate:[nt,ke,Te]}],sepia:[{sepia:["",nt,ke,Te]}],"backdrop-filter":[{"backdrop-filter":["","none",ke,Te]}],"backdrop-blur":[{"backdrop-blur":ae()}],"backdrop-brightness":[{"backdrop-brightness":[nt,ke,Te]}],"backdrop-contrast":[{"backdrop-contrast":[nt,ke,Te]}],"backdrop-grayscale":[{"backdrop-grayscale":["",nt,ke,Te]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[nt,ke,Te]}],"backdrop-invert":[{"backdrop-invert":["",nt,ke,Te]}],"backdrop-opacity":[{"backdrop-opacity":[nt,ke,Te]}],"backdrop-saturate":[{"backdrop-saturate":[nt,ke,Te]}],"backdrop-sepia":[{"backdrop-sepia":["",nt,ke,Te]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ke,Te]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[nt,"initial",ke,Te]}],ease:[{ease:["linear","initial",N,ke,Te]}],delay:[{delay:[nt,ke,Te]}],animate:[{animate:["none",E,ke,Te]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,ke,Te]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:Z()}],"rotate-x":[{"rotate-x":Z()}],"rotate-y":[{"rotate-y":Z()}],"rotate-z":[{"rotate-z":Z()}],scale:[{scale:ve()}],"scale-x":[{"scale-x":ve()}],"scale-y":[{"scale-y":ve()}],"scale-z":[{"scale-z":ve()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[ke,Te,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:le()}],"translate-x":[{"translate-x":le()}],"translate-y":[{"translate-y":le()}],"translate-z":[{"translate-z":le()}],"translate-none":["translate-none"],accent:[{accent:U()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:U()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ke,Te]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ke,Te]}],fill:[{fill:["none",...U()]}],"stroke-w":[{stroke:[nt,Zd,Lo,H0]}],stroke:[{stroke:["none",...U()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},cZ=FX(lZ);function ce(...e){return cZ(Ye(e))}const ot=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("rounded-xl border bg-card text-card-foreground shadow",e),...t}));ot.displayName="Card";const qt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex flex-col space-y-1.5 p-6",e),...t}));qt.displayName="CardHeader";const Ft=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("font-semibold leading-none tracking-tight",e),...t}));Ft.displayName="CardTitle";const er=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));er.displayName="CardDescription";const sn=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("p-6 pt-0",e),...t}));sn.displayName="CardContent";const Y5=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex items-center p-6 pt-0",e),...t}));Y5.displayName="CardFooter";function Se(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function uZ(e,t){const n=y.createContext(t),r=s=>{const{children:l,...u}=s,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(s){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function hr(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,dZ(a,...t)]}function dZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function qM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Rr(...e){return t=>{let n=!1;const r=e.map(a=>{const s=qM(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(mZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function fZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=vZ(a),u=pZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var hZ=Symbol("radix.slottable");function mZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===hZ}function pZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function vZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Eh(e){const t=e+"CollectionProvider",[n,r]=hr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=w=>{const{scope:b,children:N}=w,E=W.useRef(null),O=W.useRef(new Map).current;return i.jsx(a,{scope:b,itemMap:O,collectionRef:E,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=FM(u),f=W.forwardRef((w,b)=>{const{scope:N,children:E}=w,O=s(u,N),A=qe(b,O.collectionRef);return i.jsx(d,{ref:A,children:E})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=FM(m),x=W.forwardRef((w,b)=>{const{scope:N,children:E,...O}=w,A=W.useRef(null),C=qe(b,A),k=s(m,N);return W.useEffect(()=>(k.itemMap.set(A,{ref:A,...O}),()=>void k.itemMap.delete(A))),i.jsx(g,{[p]:"",ref:C,children:E})});x.displayName=m;function j(w){const b=s(e+"CollectionConsumer",w);return W.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const O=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(b.itemMap.values()).sort((k,T)=>O.indexOf(k.ref.current)-O.indexOf(T.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Un=globalThis?.document?y.useLayoutEffect:()=>{},gZ=NC[" useId ".trim().toString()]||(()=>{}),yZ=0;function Fn(e){const[t,n]=y.useState(gZ());return Un(()=>{n(r=>r??String(yZ++))},[e]),t?`radix-${t}`:""}function xZ(e){const t=bZ(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(jZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function bZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=_Z(a),u=SZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var wZ=Symbol("radix.slottable");function jZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===wZ}function SZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function _Z(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var NZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Pe=NZ.reduce((e,t)=>{const n=xZ(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function qC(e,t){e&&wl.flushSync(()=>e.dispatchEvent(t))}function nn(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var CZ=NC[" useInsertionEffect ".trim().toString()]||Un;function Na({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,l]=OZ({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=EZ(m)?m(e):m;p!==e&&l.current?.(p)}else s(m)},[u,e,s,l]);return[d,f]}function OZ({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),s=y.useRef(t);return CZ(()=>{s.current=t},[t]),y.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function EZ(e){return typeof e=="function"}var AZ=y.createContext(void 0);function Bu(e){const t=y.useContext(AZ);return e||t||"ltr"}var W0="rovingFocusGroup.onEntryFocus",TZ={bubbles:!1,cancelable:!0},Ah="RovingFocusGroup",[S_,K5,kZ]=Eh(Ah),[MZ,Hg]=hr(Ah,[kZ]),[PZ,RZ]=MZ(Ah),X5=y.forwardRef((e,t)=>i.jsx(S_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(S_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(DZ,{...e,ref:t})})}));X5.displayName=Ah;var DZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=qe(t,g),j=Bu(s),[w,b]=Na({prop:l,defaultProp:u??null,onChange:d,caller:Ah}),[N,E]=y.useState(!1),O=nn(f),A=K5(n),C=y.useRef(!1),[k,T]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(W0,O),()=>M.removeEventListener(W0,O)},[O]),i.jsx(PZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:w,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>T(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>T(M=>M-1),[]),children:i.jsx(Pe.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:Se(e.onMouseDown,()=>{C.current=!0}),onFocus:Se(e.onFocus,M=>{const R=!C.current;if(M.target===M.currentTarget&&R&&!N){const L=new CustomEvent(W0,TZ);if(M.currentTarget.dispatchEvent(L),!L.defaultPrevented){const $=A().filter(B=>B.focusable),H=$.find(B=>B.active),V=$.find(B=>B.id===w),G=[H,V,...$].filter(Boolean).map(B=>B.ref.current);J5(G,m)}}C.current=!1}),onBlur:Se(e.onBlur,()=>E(!1))})})}),Z5="RovingFocusGroupItem",Q5=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:l,...u}=e,d=Fn(),f=s||d,m=RZ(Z5,n),p=m.currentTabStopId===f,g=K5(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:w}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(S_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx(Pe.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:Se(e.onMouseDown,b=>{r?m.onItemFocus(f):b.preventDefault()}),onFocus:Se(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:Se(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){m.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const N=LZ(b,m.orientation,m.dir);if(N!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let O=g().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")O.reverse();else if(N==="prev"||N==="next"){N==="prev"&&O.reverse();const A=O.indexOf(b.currentTarget);O=m.loop?BZ(O,A+1):O.slice(A+1)}setTimeout(()=>J5(O))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:w!=null}):l})})});Q5.displayName=Z5;var $Z={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function IZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function LZ(e,t,n){const r=IZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return $Z[r]}function J5(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function BZ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var eB=X5,tB=Q5;function zZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Rn=e=>{const{present:t,children:n}=e,r=qZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),s=qe(r.ref,FZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:s}):null};Rn.displayName="Presence";function qZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),s=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=zZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Ep(r.current);s.current=u==="mounted"?f:"none"},[u]),Un(()=>{const f=r.current,m=a.current;if(m!==e){const g=s.current,x=Ep(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Un(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const w=Ep(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&w&&(d("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=x=>{x.target===t&&(s.current=Ep(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Ep(e){return e?.animationName||"none"}function FZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Wg="Tabs",[UZ]=hr(Wg,[Hg]),nB=Hg(),[HZ,FC]=UZ(Wg),rB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Bu(u),[p,g]=Na({prop:r,onChange:a,defaultProp:s??"",caller:Wg});return i.jsx(HZ,{scope:n,baseId:Fn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx(Pe.div,{dir:m,"data-orientation":l,...f,ref:t})})});rB.displayName=Wg;var aB="TabsList",iB=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=FC(aB,n),l=nB(n);return i.jsx(eB,{asChild:!0,...l,orientation:s.orientation,dir:s.dir,loop:r,children:i.jsx(Pe.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});iB.displayName=aB;var sB="TabsTrigger",oB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,l=FC(sB,n),u=nB(n),d=uB(l.baseId,r),f=dB(l.baseId,r),m=r===l.value;return i.jsx(tB,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx(Pe.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...s,ref:t,onMouseDown:Se(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:Se(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:Se(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});oB.displayName=sB;var lB="TabsContent",cB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...l}=e,u=FC(lB,n),d=uB(u.baseId,r),f=dB(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(Rn,{present:a||m,children:({present:g})=>i.jsx(Pe.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&s})})});cB.displayName=lB;function uB(e,t){return`${e}-trigger-${t}`}function dB(e,t){return`${e}-content-${t}`}var WZ=rB,fB=iB,hB=oB,mB=cB;const ul=WZ,Zs=y.forwardRef(({className:e,...t},n)=>i.jsx(fB,{ref:n,className:ce("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Zs.displayName=fB.displayName;const Ot=y.forwardRef(({className:e,...t},n)=>i.jsx(hB,{ref:n,className:ce("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Ot.displayName=hB.displayName;const en=y.forwardRef(({className:e,...t},n)=>i.jsx(mB,{ref:n,className:ce("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));en.displayName=mB.displayName;function Tf(e,[t,n]){return Math.min(n,Math.max(t,e))}function VZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var UC="ScrollArea",[pB]=hr(UC),[GZ,Oa]=pB(UC),vB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:s=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(0),[O,A]=y.useState(0),[C,k]=y.useState(!1),[T,M]=y.useState(!1),R=qe(t,$=>d($)),L=Bu(a);return i.jsx(GZ,{scope:n,type:r,dir:L,scrollHideDelay:s,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:w,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:E,onCornerHeightChange:A,children:i.jsx(Pe.div,{dir:L,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":O+"px",...e.style}})})});vB.displayName=UC;var gB="ScrollAreaViewport",yB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...s}=e,l=Oa(gB,n),u=y.useRef(null),d=qe(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx(Pe.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});yB.displayName=gB;var xi="ScrollAreaScrollbar",HC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)}),[u,s,l]),a.type==="hover"?i.jsx(YZ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(KZ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(xB,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(WC,{...r,ref:t}):null});HC.displayName=xi;var YZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),[s,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(Rn,{present:n||s,children:i.jsx(xB,{"data-state":s?"visible":"hidden",...r,ref:t})})}),KZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),s=e.orientation==="horizontal",l=Gg(()=>d("SCROLL_END"),100),[u,d]=VZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=s?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,s,d,l]),i.jsx(Rn,{present:n||u!=="hidden",children:i.jsx(WC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Se(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:Se(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),xB=y.forwardRef((e,t)=>{const n=Oa(xi,e.__scopeScrollArea),{forceMount:r,...a}=e,[s,l]=y.useState(!1),u=e.orientation==="horizontal",d=Gg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Oa(xi,e.__scopeScrollArea),s=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=_B(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>s.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return tQ(g,l.current,u,x)}return n==="horizontal"?i.jsx(XZ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollLeft,x=UM(g,u,a.dir);s.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(ZZ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollTop,x=UM(g,u);s.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),XZ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Oa(xi,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=qe(t,d,s.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(wB,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Vg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),CB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:jv(l.paddingLeft),paddingEnd:jv(l.paddingRight)}})}})}),ZZ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Oa(xi,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=qe(t,d,s.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(wB,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Vg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),CB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:jv(l.paddingTop),paddingEnd:jv(l.paddingBottom)}})}})}),[QZ,bB]=pB(xi),wB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Oa(xi,n),[j,w]=y.useState(null),b=qe(t,R=>w(R)),N=y.useRef(null),E=y.useRef(""),O=x.viewport,A=r.content-r.viewport,C=nn(m),k=nn(d),T=Gg(p,10);function M(R){if(N.current){const L=R.clientX-N.current.left,$=R.clientY-N.current.top;f({x:L,y:$})}}return y.useEffect(()=>{const R=L=>{const $=L.target;j?.contains($)&&C(L,A)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[O,j,A,C]),y.useEffect(k,[r,k]),ru(j,T),ru(x.content,T),i.jsx(QZ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:nn(s),onThumbPointerUp:nn(l),onThumbPositionChange:k,onThumbPointerDown:nn(u),children:i.jsx(Pe.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:Se(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),N.current=j.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(R))}),onPointerMove:Se(e.onPointerMove,M),onPointerUp:Se(e.onPointerUp,R=>{const L=R.target;L.hasPointerCapture(R.pointerId)&&L.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),wv="ScrollAreaThumb",jB=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=bB(wv,e.__scopeScrollArea);return i.jsx(Rn,{present:n||a.hasThumb,children:i.jsx(JZ,{ref:t,...r})})}),JZ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,s=Oa(wv,n),l=bB(wv,n),{onThumbPositionChange:u}=l,d=qe(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Gg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=s.viewport;if(p){const g=()=>{if(m(),!f.current){const x=nQ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[s.viewport,m,u]),i.jsx(Pe.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Se(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,w=p.clientY-x.top;l.onThumbPointerDown({x:j,y:w})}),onPointerUp:Se(e.onPointerUp,l.onThumbPointerUp)})});jB.displayName=wv;var VC="ScrollAreaCorner",SB=y.forwardRef((e,t)=>{const n=Oa(VC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(eQ,{...e,ref:t}):null});SB.displayName=VC;var eQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Oa(VC,n),[s,l]=y.useState(0),[u,d]=y.useState(0),f=!!(s&&u);return ru(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),ru(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx(Pe.div,{...r,ref:t,style:{width:s,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function jv(e){return e?parseInt(e,10):0}function _B(e,t){const n=e/t;return isNaN(n)?0:n}function Vg(e){const t=_B(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function tQ(e,t,n,r="ltr"){const a=Vg(n),s=a/2,l=t||s,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return NB([d,f],p)(e)}function UM(e,t,n="ltr"){const r=Vg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,u=s-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Tf(e,d);return NB([0,l],[0,u])(f)}function NB(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function CB(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const s={left:e.scrollLeft,top:e.scrollTop},l=n.left!==s.left,u=n.top!==s.top;(l||u)&&t(),n=s,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Gg(e,t){const n=nn(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function ru(e,t){const n=nn(t);Un(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var OB=vB,rQ=yB,aQ=SB;const Vt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(OB,{ref:r,className:ce("relative overflow-hidden",e),...n,children:[i.jsx(rQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(EB,{}),i.jsx(aQ,{})]}));Vt.displayName=OB.displayName;const EB=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(HC,{ref:r,orientation:t,className:ce("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(jB,{className:"relative flex-1 rounded-full bg-border"})}));EB.displayName=HC.displayName;function HM({className:e,...t}){return i.jsx("div",{className:ce("animate-pulse rounded-md bg-primary/10",e),...t})}function iQ(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l);u.displayName=s+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,sQ(a,...t)]}function sQ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var oQ=Symbol.for("react.lazy"),Sv=NC[" use ".trim().toString()];function lQ(e){return typeof e=="object"&&e!==null&&"then"in e}function AB(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===oQ&&"_payload"in e&&lQ(e._payload)}function Th(e){const t=uQ(e),n=y.forwardRef((r,a)=>{let{children:s,...l}=r;AB(s)&&typeof Sv=="function"&&(s=Sv(s._payload));const u=y.Children.toArray(s),d=u.find(fQ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var cQ=Th("Slot");function uQ(e){const t=y.forwardRef((n,r)=>{let{children:a,...s}=n;if(AB(a)&&typeof Sv=="function"&&(a=Sv(a._payload)),y.isValidElement(a)){const l=mQ(a),u=hQ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var dQ=Symbol("radix.slottable");function fQ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===dQ}function hQ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function mQ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var pQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],TB=pQ.reduce((e,t)=>{const n=Th(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),GC="Progress",YC=100,[vQ]=iQ(GC),[gQ,yQ]=vQ(GC),kB=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:s=xQ,...l}=e;(a||a===0)&&!WM(a)&&console.error(bQ(`${a}`,"Progress"));const u=WM(a)?a:YC;r!==null&&!VM(r,u)&&console.error(wQ(`${r}`,"Progress"));const d=VM(r,u)?r:null,f=_v(d)?s(d,u):void 0;return i.jsx(gQ,{scope:n,value:d,max:u,children:i.jsx(TB.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":_v(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":RB(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});kB.displayName=GC;var MB="ProgressIndicator",PB=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=yQ(MB,n);return i.jsx(TB.div,{"data-state":RB(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});PB.displayName=MB;function xQ(e,t){return`${Math.round(e/t*100)}%`}function RB(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function _v(e){return typeof e=="number"}function WM(e){return _v(e)&&!isNaN(e)&&e>0}function VM(e,t){return _v(e)&&!isNaN(e)&&e<=t&&e>=0}function bQ(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${YC}\`.`}function wQ(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${YC} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var DB=kB,jQ=PB;const Yg=y.forwardRef(({className:e,value:t,...n},r)=>i.jsx(DB,{ref:r,className:ce("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(jQ,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));Yg.displayName=DB.displayName;var V0,GM;function Lr(){if(GM)return V0;GM=1;var e=Array.isArray;return V0=e,V0}var G0,YM;function $B(){if(YM)return G0;YM=1;var e=typeof bp=="object"&&bp&&bp.Object===Object&&bp;return G0=e,G0}var Y0,KM;function bi(){if(KM)return Y0;KM=1;var e=$B(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Y0=n,Y0}var K0,XM;function kh(){if(XM)return K0;XM=1;var e=bi(),t=e.Symbol;return K0=t,K0}var X0,ZM;function SQ(){if(ZM)return X0;ZM=1;var e=kh(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function s(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return X0=s,X0}var Z0,QM;function _Q(){if(QM)return Z0;QM=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return Z0=n,Z0}var Q0,JM;function ls(){if(JM)return Q0;JM=1;var e=kh(),t=SQ(),n=_Q(),r="[object Null]",a="[object Undefined]",s=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:s&&s in Object(u)?t(u):n(u)}return Q0=l,Q0}var J0,eP;function cs(){if(eP)return J0;eP=1;function e(t){return t!=null&&typeof t=="object"}return J0=e,J0}var ew,tP;function zu(){if(tP)return ew;tP=1;var e=ls(),t=cs(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return ew=r,ew}var tw,nP;function KC(){if(nP)return tw;nP=1;var e=Lr(),t=zu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(s,l){if(e(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||t(s)?!0:r.test(s)||!n.test(s)||l!=null&&s in Object(l)}return tw=a,tw}var nw,rP;function io(){if(rP)return nw;rP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return nw=e,nw}var rw,aP;function XC(){if(aP)return rw;aP=1;var e=ls(),t=io(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==s}return rw=l,rw}var aw,iP;function NQ(){if(iP)return aw;iP=1;var e=bi(),t=e["__core-js_shared__"];return aw=t,aw}var iw,sP;function CQ(){if(sP)return iw;sP=1;var e=NQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return iw=n,iw}var sw,oP;function IB(){if(oP)return sw;oP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return sw=n,sw}var ow,lP;function OQ(){if(lP)return ow;lP=1;var e=XC(),t=CQ(),n=io(),r=IB(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:s;return x.test(r(g))}return ow=p,ow}var lw,cP;function EQ(){if(cP)return lw;cP=1;function e(t,n){return t?.[n]}return lw=e,lw}var cw,uP;function jl(){if(uP)return cw;uP=1;var e=OQ(),t=EQ();function n(r,a){var s=t(r,a);return e(s)?s:void 0}return cw=n,cw}var uw,dP;function Kg(){if(dP)return uw;dP=1;var e=jl(),t=e(Object,"create");return uw=t,uw}var dw,fP;function AQ(){if(fP)return dw;fP=1;var e=Kg();function t(){this.__data__=e?e(null):{},this.size=0}return dw=t,dw}var fw,hP;function TQ(){if(hP)return fw;hP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return fw=e,fw}var hw,mP;function kQ(){if(mP)return hw;mP=1;var e=Kg(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(s){var l=this.__data__;if(e){var u=l[s];return u===t?void 0:u}return r.call(l,s)?l[s]:void 0}return hw=a,hw}var mw,pP;function MQ(){if(pP)return mw;pP=1;var e=Kg(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var s=this.__data__;return e?s[a]!==void 0:n.call(s,a)}return mw=r,mw}var pw,vP;function PQ(){if(vP)return pw;vP=1;var e=Kg(),t="__lodash_hash_undefined__";function n(r,a){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=e&&a===void 0?t:a,this}return pw=n,pw}var vw,gP;function RQ(){if(gP)return vw;gP=1;var e=AQ(),t=TQ(),n=kQ(),r=MQ(),a=PQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return jw=t,jw}var Sw,_P;function BQ(){if(_P)return Sw;_P=1;var e=Xg();function t(n,r){var a=this.__data__,s=e(a,n);return s<0?(++this.size,a.push([n,r])):a[s][1]=r,this}return Sw=t,Sw}var _w,NP;function Zg(){if(NP)return _w;NP=1;var e=DQ(),t=$Q(),n=IQ(),r=LQ(),a=BQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Go=function(t){return dl(t)&&t.indexOf("%")===t.length-1},Ce=function(t){return lJ(t)&&!Mh(t)},cJ=function(t){return Ge(t)},Mn=function(t){return Ce(t)||dl(t)},uJ=0,Fu=function(t){var n=++uJ;return"".concat(t||"").concat(n)},wr=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ce(t)&&!dl(t))return r;var s;if(Go(t)){var l=t.indexOf("%");s=n*parseFloat(t.slice(0,l))/100}else s=+t;return Mh(s)&&(s=r),a&&s>n&&(s=n),s},qs=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},dJ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function yJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function N_(e){"@babel/helpers - typeof";return N_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},N_(e)}var JP={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Ji=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},eR=null,Xw=null,rO=function e(t){if(t===eR&&Array.isArray(Xw))return Xw;var n=[];return y.Children.forEach(t,function(r){Ge(r)||(aJ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),Xw=n,eR=t,n};function na(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return Ji(a)}):r=[Ji(t)],rO(e).forEach(function(a){var s=ta(a,"type.displayName")||ta(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function Kr(e,t){var n=na(e,t);return n&&n[0]}var tR=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ce(r)||r<=0||!Ce(a)||a<=0)},xJ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],bJ=function(t){return t&&t.type&&dl(t.type)&&xJ.indexOf(t.type)>=0},wJ=function(t){return t&&N_(t)==="object"&&"clipDot"in t},jJ=function(t,n,r,a){var s,l=(s=Kw?.[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!We(t)&&(a&&l.includes(n)||mJ.includes(n))||r&&nO.includes(n)},Be=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!qu(a))return null;var s={};return Object.keys(a).forEach(function(l){var u;jJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(s[l]=a[l])}),s},C_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return nR(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function OJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function E_(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=CJ(e,NJ),m=a||{width:n,height:r,x:0,y:0},p=Ye("recharts-surface",s);return W.createElement("svg",O_({},Be(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var EJ=["children","className"];function A_(){return A_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function TJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var pt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=AJ(e,EJ),s=Ye("recharts-layer",r);return W.createElement("g",A_({className:s},Be(a,!0),{ref:t}),n)}),qa=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;ss?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(s);++a=s?n:e(n,r,a)}return Qw=t,Qw}var Jw,sR;function UB(){if(sR)return Jw;sR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+s+"]");function d(f){return u.test(f)}return Jw=d,Jw}var ej,oR;function PJ(){if(oR)return ej;oR=1;function e(t){return t.split("")}return ej=e,ej}var tj,lR;function RJ(){if(lR)return tj;lR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",w="["+s+"]?",b="(?:"+x+"(?:"+[m,p,g].join("|")+")"+w+j+")*",N=w+j+b,E="(?:"+[m+u+"?",u,p,g,l].join("|")+")",O=RegExp(d+"(?="+d+")|"+E+N,"g");function A(C){return C.match(O)||[]}return tj=A,tj}var nj,cR;function DJ(){if(cR)return nj;cR=1;var e=PJ(),t=UB(),n=RJ();function r(a){return t(a)?n(a):e(a)}return nj=r,nj}var rj,uR;function $J(){if(uR)return rj;uR=1;var e=MJ(),t=UB(),n=DJ(),r=BB();function a(s){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[s]()+f}}return rj=a,rj}var aj,dR;function IJ(){if(dR)return aj;dR=1;var e=$J(),t=e("toUpperCase");return aj=t,aj}var LJ=IJ();const ey=St(LJ);function Ht(e){return function(){return e}}const HB=Math.cos,Ov=Math.sin,Ga=Math.sqrt,Ev=Math.PI,ty=2*Ev,T_=Math.PI,k_=2*T_,Fo=1e-6,BJ=k_-Fo;function WB(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return WB;const n=10**t;return function(r){this._+=r[0];for(let a=1,s=r.length;aFo)if(!(Math.abs(p*d-f*m)>Fo)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,w=d*d+f*f,b=x*x+j*j,N=Math.sqrt(w),E=Math.sqrt(g),O=s*Math.tan((T_-Math.acos((w+g-b)/(2*N*E)))/2),A=O/E,C=O/N;Math.abs(A-1)>Fo&&this._append`L${t+A*m},${n+A*p}`,this._append`A${s},${s},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,s,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-s:s-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Fo||Math.abs(this._y1-m)>Fo)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%k_+k_),g>BJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Fo&&this._append`A${r},${r},0,${+(g>=T_)},${p},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function aO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new qJ(t)}function iO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function VB(e){this._context=e}VB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function ny(e){return new VB(e)}function GB(e){return e[0]}function YB(e){return e[1]}function KB(e,t){var n=Ht(!0),r=null,a=ny,s=null,l=aO(u);e=typeof e=="function"?e:e===void 0?GB:Ht(e),t=typeof t=="function"?t:t===void 0?YB:Ht(t);function u(d){var f,m=(d=iO(d)).length,p,g=!1,x;for(r==null&&(s=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(O[j],A[j]);u.lineEnd(),u.areaEnd()}N&&(O[g]=+e(b,g,p),A[g]=+t(b,g,p),u.point(r?+r(b,g,p):O[g],n?+n(b,g,p):A[g]))}if(E)return u=null,E+""||null}function m(){return KB().defined(a).curve(l).context(s)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Ht(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Ht(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Ht(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Ht(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Ht(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Ht(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Ht(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,s!=null&&(u=l(s)),f):l},f.context=function(p){return arguments.length?(p==null?s=u=null:u=l(s=p),f):s},f}class XB{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function FJ(e){return new XB(e,!0)}function UJ(e){return new XB(e,!1)}const sO={draw(e,t){const n=Ga(t/Ev);e.moveTo(n,0),e.arc(0,0,n,0,ty)}},HJ={draw(e,t){const n=Ga(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},ZB=Ga(1/3),WJ=ZB*2,VJ={draw(e,t){const n=Ga(t/WJ),r=n*ZB;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},GJ={draw(e,t){const n=Ga(t),r=-n/2;e.rect(r,r,n,n)}},YJ=.8908130915292852,QB=Ov(Ev/10)/Ov(7*Ev/10),KJ=Ov(ty/10)*QB,XJ=-HB(ty/10)*QB,ZJ={draw(e,t){const n=Ga(t*YJ),r=KJ*n,a=XJ*n;e.moveTo(0,-n),e.lineTo(r,a);for(let s=1;s<5;++s){const l=ty*s/5,u=HB(l),d=Ov(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},ij=Ga(3),QJ={draw(e,t){const n=-Ga(t/(ij*3));e.moveTo(0,n*2),e.lineTo(-ij*n,-n),e.lineTo(ij*n,-n),e.closePath()}},ga=-.5,ya=Ga(3)/2,M_=1/Ga(12),JJ=(M_/2+1)*3,eee={draw(e,t){const n=Ga(t/JJ),r=n/2,a=n*M_,s=r,l=n*M_+n,u=-s,d=l;e.moveTo(r,a),e.lineTo(s,l),e.lineTo(u,d),e.lineTo(ga*r-ya*a,ya*r+ga*a),e.lineTo(ga*s-ya*l,ya*s+ga*l),e.lineTo(ga*u-ya*d,ya*u+ga*d),e.lineTo(ga*r+ya*a,ga*a-ya*r),e.lineTo(ga*s+ya*l,ga*l-ya*s),e.lineTo(ga*u+ya*d,ga*d-ya*u),e.closePath()}};function tee(e,t){let n=null,r=aO(a);e=typeof e=="function"?e:Ht(e||sO),t=typeof t=="function"?t:Ht(t===void 0?64:+t);function a(){let s;if(n||(n=s=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(e=typeof s=="function"?s:Ht(s),a):e},a.size=function(s){return arguments.length?(t=typeof s=="function"?s:Ht(+s),a):t},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function Av(){}function Tv(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function JB(e){this._context=e}JB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Tv(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Tv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function nee(e){return new JB(e)}function ez(e){this._context=e}ez.prototype={areaStart:Av,areaEnd:Av,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Tv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function ree(e){return new ez(e)}function tz(e){this._context=e}tz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Tv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function aee(e){return new tz(e)}function nz(e){this._context=e}nz.prototype={areaStart:Av,areaEnd:Av,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function iee(e){return new nz(e)}function fR(e){return e<0?-1:1}function hR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(s*a+l*r)/(r+a);return(fR(s)+fR(l))*Math.min(Math.abs(s),Math.abs(l),.5*Math.abs(u))||0}function mR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function sj(e,t,n){var r=e._x0,a=e._y0,s=e._x1,l=e._y1,u=(s-r)/3;e._context.bezierCurveTo(r+u,a+u*t,s-u,l-u*n,s,l)}function kv(e){this._context=e}kv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:sj(this,this._t0,mR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,sj(this,mR(this,n=hR(this,e,t)),n);break;default:sj(this,this._t0,n=hR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function rz(e){this._context=new az(e)}(rz.prototype=Object.create(kv.prototype)).point=function(e,t){kv.prototype.point.call(this,t,e)};function az(e){this._context=e}az.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,s){this._context.bezierCurveTo(t,e,r,n,s,a)}};function see(e){return new kv(e)}function oee(e){return new rz(e)}function iz(e){this._context=e}iz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=pR(e),a=pR(t),s=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/s[t];for(s[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function cee(e){return new ry(e,.5)}function uee(e){return new ry(e,0)}function dee(e){return new ry(e,1)}function au(e,t){if((l=e.length)>1)for(var n=1,r,a,s=e[t[0]],l,u=s.length;n=0;)n[t]=t;return n}function fee(e,t){return e[t]}function hee(e){const t=[];return t.key=e,t}function mee(){var e=Ht([]),t=P_,n=au,r=fee;function a(s){var l=Array.from(e.apply(this,arguments),hee),u,d=l.length,f=-1,m;for(const p of s)for(u=0,++f;u0){for(var n,r,a=0,s=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,s=r.length;n0)||!((s=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,s,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function See(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var sz={symbolCircle:sO,symbolCross:HJ,symbolDiamond:VJ,symbolSquare:GJ,symbolStar:ZJ,symbolTriangle:QJ,symbolWye:eee},_ee=Math.PI/180,Nee=function(t){var n="symbol".concat(ey(t));return sz[n]||sO},Cee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*_ee;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},Oee=function(t,n){sz["symbol".concat(ey(t))]=n},oO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,s=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=jee(t,yee),f=gR(gR({},d),{},{type:r,size:s,sizeType:u}),m=function(){var b=Nee(r),N=tee().type(b).size(Cee(s,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=Be(f,!0);return g===+g&&x===+x&&s===+s?W.createElement("path",R_({},j,{className:Ye("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};oO.registerSymbol=Oee;function iu(e){"@babel/helpers - typeof";return iu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},iu(e)}function D_(){return D_=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var E=x.inactive?f:x.color;return W.createElement("li",D_({className:b,style:p,key:"legend-item-".concat(j)},fl(r.props,x,j)),W.createElement(E_,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:s==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);Mf(lO,"displayName","Legend");Mf(lO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var oj,xR;function Iee(){if(xR)return oj;xR=1;var e=Zg();function t(){this.__data__=new e,this.size=0}return oj=t,oj}var lj,bR;function Lee(){if(bR)return lj;bR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return lj=e,lj}var cj,wR;function Bee(){if(wR)return cj;wR=1;function e(t){return this.__data__.get(t)}return cj=e,cj}var uj,jR;function zee(){if(jR)return uj;jR=1;function e(t){return this.__data__.has(t)}return uj=e,uj}var dj,SR;function qee(){if(SR)return dj;SR=1;var e=Zg(),t=QC(),n=JC(),r=200;function a(s,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var w=p.get(l),b=p.get(u);if(w&&b)return w==u&&b==l;var N=-1,E=!0,O=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return Pj=t,Pj}var Rj,GR;function ete(){if(GR)return Rj;GR=1;var e=ls(),t=fO(),n=cs(),r="[object Arguments]",a="[object Array]",s="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",w="[object WeakMap]",b="[object ArrayBuffer]",N="[object DataView]",E="[object Float32Array]",O="[object Float64Array]",A="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",R="[object Uint16Array]",L="[object Uint32Array]",$={};$[E]=$[O]=$[A]=$[C]=$[k]=$[T]=$[M]=$[R]=$[L]=!0,$[r]=$[a]=$[b]=$[s]=$[N]=$[l]=$[u]=$[d]=$[f]=$[m]=$[p]=$[g]=$[x]=$[j]=$[w]=!1;function H(V){return n(V)&&t(V.length)&&!!$[e(V)]}return Rj=H,Rj}var Dj,YR;function vz(){if(YR)return Dj;YR=1;function e(t){return function(n){return t(n)}}return Dj=e,Dj}var ff={exports:{}};ff.exports;var KR;function tte(){return KR||(KR=1,(function(e,t){var n=$B(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(ff,ff.exports)),ff.exports}var $j,XR;function gz(){if(XR)return $j;XR=1;var e=ete(),t=vz(),n=tte(),r=n&&n.isTypedArray,a=r?t(r):e;return $j=a,$j}var Ij,ZR;function nte(){if(ZR)return Ij;ZR=1;var e=Zee(),t=uO(),n=Lr(),r=pz(),a=dO(),s=gz(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&s(f),w=p||g||x||j,b=w?e(f.length,String):[],N=b.length;for(var E in f)(m||u.call(f,E))&&!(w&&(E=="length"||x&&(E=="offset"||E=="parent")||j&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||a(E,N)))&&b.push(E);return b}return Ij=d,Ij}var Lj,QR;function rte(){if(QR)return Lj;QR=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return Lj=t,Lj}var Bj,JR;function yz(){if(JR)return Bj;JR=1;function e(t,n){return function(r){return t(n(r))}}return Bj=e,Bj}var zj,eD;function ate(){if(eD)return zj;eD=1;var e=yz(),t=e(Object.keys,Object);return zj=t,zj}var qj,tD;function ite(){if(tD)return qj;tD=1;var e=rte(),t=ate(),n=Object.prototype,r=n.hasOwnProperty;function a(s){if(!e(s))return t(s);var l=[];for(var u in Object(s))r.call(s,u)&&u!="constructor"&&l.push(u);return l}return qj=a,qj}var Fj,nD;function Ph(){if(nD)return Fj;nD=1;var e=XC(),t=fO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Fj=n,Fj}var Uj,rD;function ay(){if(rD)return Uj;rD=1;var e=nte(),t=ite(),n=Ph();function r(a){return n(a)?e(a):t(a)}return Uj=r,Uj}var Hj,aD;function ste(){if(aD)return Hj;aD=1;var e=Gee(),t=Xee(),n=ay();function r(a){return e(a,n,t)}return Hj=r,Hj}var Wj,iD;function ote(){if(iD)return Wj;iD=1;var e=ste(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(s,l,u,d,f,m){var p=u&t,g=e(s),x=g.length,j=e(l),w=j.length;if(x!=w&&!p)return!1;for(var b=x;b--;){var N=g[b];if(!(p?N in l:r.call(l,N)))return!1}var E=m.get(s),O=m.get(l);if(E&&O)return E==l&&O==s;var A=!0;m.set(s,l),m.set(l,s);for(var C=p;++b-1}return g1=t,g1}var y1,MD;function Ote(){if(MD)return y1;MD=1;function e(t,n,r){for(var a=-1,s=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return s(N);j=!1,g=r,b=new e}else b=f?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ute(e){return e.value}function Hte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=qte(t,Pte);return W.createElement(lO,n)}var zD=1,nl=(function(e){function t(){var n;Rte(this,t);for(var r=arguments.length,a=new Array(r),s=0;szD||Math.abs(a.height-this.lastBoundingBox.height)>zD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Ui({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&s==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Ui(Ui({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Ui(Ui({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Hte(s,Ui(Ui({},this.props),{},{payload:Sz(m,f,Ute)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Ui(Ui({},this.defaultProps),r.props),l=s.layout;return l==="vertical"&&Ce(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);iy(nl,"displayName","Legend");iy(nl,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var S1,qD;function Wte(){if(qD)return S1;qD=1;var e=kh(),t=uO(),n=Lr(),r=e?e.isConcatSpreadable:void 0;function a(s){return n(s)||t(s)||!!(r&&s&&s[r])}return S1=a,S1}var _1,FD;function Cz(){if(FD)return _1;FD=1;var e=mz(),t=Wte();function n(r,a,s,l,u){var d=-1,f=r.length;for(s||(s=t),u||(u=[]);++d0&&s(m)?a>1?n(m,a-1,s,l,u):e(u,m):l||(u[u.length]=m)}return u}return _1=n,_1}var N1,UD;function Vte(){if(UD)return N1;UD=1;function e(t){return function(n,r,a){for(var s=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++s];if(r(l[f],f,l)===!1)break}return n}}return N1=e,N1}var C1,HD;function Gte(){if(HD)return C1;HD=1;var e=Vte(),t=e();return C1=t,C1}var O1,WD;function Oz(){if(WD)return O1;WD=1;var e=Gte(),t=ay();function n(r,a){return r&&e(r,a,t)}return O1=n,O1}var E1,VD;function Yte(){if(VD)return E1;VD=1;var e=Ph();function t(n,r){return function(a,s){if(a==null)return a;if(!e(a))return n(a,s);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||s&&d&&m||!a&&m||!l)return 1;if(!s&&!u&&!p&&n=f)return m;var p=a[s];return m*(p=="desc"?-1:1)}}return n.index-r.index}return P1=t,P1}var R1,QD;function Qte(){if(QD)return R1;QD=1;var e=eO(),t=tO(),n=wi(),r=Ez(),a=Kte(),s=vz(),l=Zte(),u=Uu(),d=Lr();function f(m,p,g){p.length?p=e(p,function(w){return d(w)?function(b){return t(b,w.length===1?w[0]:w)}:w}):p=[u];var x=-1;p=e(p,s(n));var j=r(m,function(w,b,N){var E=e(p,function(O){return O(w)});return{criteria:E,index:++x,value:w}});return a(j,function(w,b){return l(w,b,g)})}return R1=f,R1}var D1,JD;function Jte(){if(JD)return D1;JD=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return D1=e,D1}var $1,e4;function ene(){if(e4)return $1;e4=1;var e=Jte(),t=Math.max;function n(r,a,s){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++s>=e)return arguments[0]}else s=0;return a.apply(void 0,arguments)}}return z1=r,z1}var q1,i4;function ane(){if(i4)return q1;i4=1;var e=nne(),t=rne(),n=t(e);return q1=n,q1}var F1,s4;function ine(){if(s4)return F1;s4=1;var e=Uu(),t=ene(),n=ane();function r(a,s){return n(t(a,s,e),a+"")}return F1=r,F1}var U1,o4;function sy(){if(o4)return U1;o4=1;var e=ZC(),t=Ph(),n=dO(),r=io();function a(s,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],s):!1}return U1=a,U1}var H1,l4;function sne(){if(l4)return H1;l4=1;var e=Cz(),t=Qte(),n=ine(),r=sy(),a=n(function(s,l){if(s==null)return[];var u=l.length;return u>1&&r(s,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(s,e(l,1),[])});return H1=a,H1}var one=sne();const pO=St(one);function Pf(e){"@babel/helpers - typeof";return Pf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pf(e)}function L_(){return L_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(Qd,"-left"),Ce(n)&&t&&Ce(t.x)&&n=t.y),"".concat(Qd,"-top"),Ce(r)&&t&&Ce(t.y)&&rw?Math.max(m,d[r]):Math.max(p,d[r])}function jne(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function Sne(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,s=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=d4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=d4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=jne({translateX:m,translateY:p,useTranslate3d:u})):f=bne,{cssProperties:f,cssClasses:wne({translateX:m,translateY:p,coordinate:n})}}function ou(e){"@babel/helpers - typeof";return ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ou(e)}function f4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function h4(e){for(var t=1;tm4||Math.abs(r.height-this.state.lastBoundingBox.height)>m4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,w=a.reverseDirection,b=a.useTranslate3d,N=a.viewBox,E=a.wrapperStyle,O=Sne({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:N}),A=O.cssClasses,C=O.cssProperties,k=h4(h4({transition:g&&s?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return W.createElement("div",{tabIndex:-1,className:A,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),Pne=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Sl={isSsr:Pne()};function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function p4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function v4(e){for(var t=1;t0;return W.createElement(Mne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:s,coordinate:m,hasPayload:k,offset:x,position:b,reverseDirection:N,useTranslate3d:E,viewBox:O,wrapperStyle:A},Une(f,v4(v4({},this.props),{},{payload:C})))}}])})(y.PureComponent);vO(ni,"displayName","Tooltip");vO(ni,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Sl.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var V1,g4;function Hne(){if(g4)return V1;g4=1;var e=bi(),t=function(){return e.Date.now()};return V1=t,V1}var G1,y4;function Wne(){if(y4)return G1;y4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return G1=t,G1}var Y1,x4;function Vne(){if(x4)return Y1;x4=1;var e=Wne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Y1=n,Y1}var K1,b4;function Rz(){if(b4)return K1;b4=1;var e=Vne(),t=io(),n=zu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=s.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return K1=d,K1}var X1,w4;function Gne(){if(w4)return X1;w4=1;var e=io(),t=Hne(),n=Rz(),r="Expected a function",a=Math.max,s=Math.min;function l(u,d,f){var m,p,g,x,j,w,b=0,N=!1,E=!1,O=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,E="maxWait"in f,g=E?a(n(f.maxWait)||0,d):g,O="trailing"in f?!!f.trailing:O);function A(V){var F=m,G=p;return m=p=void 0,b=V,x=u.apply(G,F),x}function C(V){return b=V,j=setTimeout(M,d),N?A(V):x}function k(V){var F=V-w,G=V-b,B=d-F;return E?s(B,g-G):B}function T(V){var F=V-w,G=V-b;return w===void 0||F>=d||F<0||E&&G>=g}function M(){var V=t();if(T(V))return R(V);j=setTimeout(M,k(V))}function R(V){return j=void 0,O&&m?A(V):(m=p=void 0,x)}function L(){j!==void 0&&clearTimeout(j),b=0,m=w=p=j=void 0}function $(){return j===void 0?x:R(t())}function H(){var V=t(),F=T(V);if(m=arguments,p=this,w=V,F){if(j===void 0)return C(w);if(E)return clearTimeout(j),j=setTimeout(M,d),A(w)}return j===void 0&&(j=setTimeout(M,d)),x}return H.cancel=L,H.flush=$,H}return X1=l,X1}var Z1,j4;function Yne(){if(j4)return Z1;j4=1;var e=Gne(),t=io(),n="Expected a function";function r(a,s,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,s,{leading:u,maxWait:s,trailing:d})}return Z1=r,Z1}var Kne=Yne();const Dz=St(Kne);function Df(e){"@babel/helpers - typeof";return Df=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Df(e)}function S4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function kp(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(V=Dz(V,w,{trailing:!0,leading:!1}));var F=new ResizeObserver(V),G=C.current.getBoundingClientRect(),B=G.width,D=G.height;return $(B,D),F.observe(C.current),function(){F.disconnect()}},[$,w]);var H=y.useMemo(function(){var V=R.containerWidth,F=R.containerHeight;if(V<0||F<0)return null;qa(Go(l)||Go(d),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,l,d),qa(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Go(l)?V:l,B=Go(d)?F:d;n&&n>0&&(G?B=G/n:B&&(G=B*n),g&&B>g&&(B=g)),qa(G>0||B>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,G,B,l,d,m,p,n);var D=!Array.isArray(x)&&Ji(x.type).endsWith("Chart");return W.Children.map(x,function(U){return W.isValidElement(U)?y.cloneElement(U,kp({width:G,height:B},D?{style:kp({height:"100%",width:"100%",maxHeight:B,maxWidth:G},U.props.style)}:{})):U})},[n,x,d,g,p,m,R,l]);return W.createElement("div",{id:b?"".concat(b):void 0,className:Ye("recharts-responsive-container",N),style:kp(kp({},A),{},{width:l,height:d,minWidth:m,minHeight:p,maxHeight:g}),ref:C},H)}),oy=function(t){return null};oy.displayName="Cell";function $f(e){"@babel/helpers - typeof";return $f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$f(e)}function N4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function F_(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Sl.isSsr)return{width:0,height:0};var r=ure(n),a=JSON.stringify({text:t,copyStyle:r});if(jc.widthCache[a])return jc.widthCache[a];try{var s=document.getElementById(C4);s||(s=document.createElement("span"),s.setAttribute("id",C4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var l=F_(F_({},cre),r);Object.assign(s.style,l),s.textContent="".concat(t);var u=s.getBoundingClientRect(),d={width:u.width,height:u.height};return jc.widthCache[a]=d,++jc.cacheCount>lre&&(jc.cacheCount=0,jc.widthCache={}),d}catch{return{width:0,height:0}}},dre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function If(e){"@babel/helpers - typeof";return If=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},If(e)}function $v(e,t){return pre(e)||mre(e,t)||hre(e,t)||fre()}function fre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hre(e,t){if(e){if(typeof e=="string")return O4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O4(e,t)}}function O4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Are(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function P4(e,t){return Pre(e)||Mre(e,t)||kre(e,t)||Tre()}function Tre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kre(e,t){if(e){if(typeof e=="string")return R4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R4(e,t)}}function R4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function(B,D){var U=D.word,K=D.width,te=B[B.length-1];if(te&&(a==null||s||te.width+K+rD.width?B:D})};if(!m)return x;for(var w="…",b=function(G){var B=p.slice(0,G),D=Bz({breakAll:f,style:d,children:B+w}).wordsWithComputedWidth,U=g(D),K=U.length>l||j(U).width>Number(a);return[K,U]},N=0,E=p.length-1,O=0,A;N<=E&&O<=p.length-1;){var C=Math.floor((N+E)/2),k=C-1,T=b(k),M=P4(T,2),R=M[0],L=M[1],$=b(C),H=P4($,1),V=H[0];if(!R&&!V&&(N=C+1),R&&V&&(E=C-1),!R&&V){A=L;break}O++}return A||x},D4=function(t){var n=Ge(t)?[]:t.toString().split(Lz);return[{words:n}]},Dre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,s=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Sl.isSsr){var d,f,m=Bz({breakAll:l,children:a,style:s});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return D4(a);return Rre({breakAll:l,children:a,maxLines:u,style:s},d,f,n,r)}return D4(a)},$4="#808080",hl=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,w=j===void 0?"end":j,b=t.fill,N=b===void 0?$4:b,E=M4(t,Ore),O=y.useMemo(function(){return Dre({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),A=E.dx,C=E.dy,k=E.angle,T=E.className,M=E.breakAll,R=M4(E,Ere);if(!Mn(r)||!Mn(s))return null;var L=r+(Ce(A)?A:0),$=s+(Ce(C)?C:0),H;switch(w){case"start":H=Q1("calc(".concat(f,")"));break;case"middle":H=Q1("calc(".concat((O.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:H=Q1("calc(".concat(O.length-1," * -").concat(u,")"));break}var V=[];if(p){var F=O[0].width,G=E.width;V.push("scale(".concat((Ce(G)?G/F:1)/F,")"))}return k&&V.push("rotate(".concat(k,", ").concat(L,", ").concat($,")")),V.length&&(R.transform=V.join(" ")),W.createElement("text",U_({},Be(R,!0),{x:L,y:$,className:Ye("recharts-text",T),textAnchor:x,fill:N.includes("url")?$4:N}),O.map(function(B,D){var U=B.words.join(M?"":" ");return W.createElement("tspan",{x:L,dy:D===0?H:u,key:"".concat(U,"-").concat(D)},U)}))};function Ks(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function $re(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function gO(e){let t,n,r;e.length!==2?(t=Ks,n=(u,d)=>Ks(e(u),d),r=(u,d)=>e(u)-d):(t=e===Ks||e===$re?e:Ire,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:s}}function Ire(){return 0}function zz(e){return e===null?NaN:+e}function*Lre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Bre=gO(Ks),Rh=Bre.right;gO(zz).center;class I4 extends Map{constructor(t,n=Fre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(L4(this,t))}has(t){return super.has(L4(this,t))}set(t,n){return super.set(zre(this,t),n)}delete(t){return super.delete(qre(this,t))}}function L4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function zre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function qre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Fre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Ure(e=Ks){if(e===Ks)return qz;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function qz(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Hre=Math.sqrt(50),Wre=Math.sqrt(10),Vre=Math.sqrt(2);function Iv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),l=s>=Hre?10:s>=Wre?5:s>=Vre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=s-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function z4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function Fz(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?qz:Ure(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));Fz(e,t,x,j,a)}const s=e[t];let l=n,u=r;for(Jd(e,n,t),a(e[r],s)>0&&Jd(e,n,r);l0;)--u}a(e[n],s)===0?Jd(e,n,u):(++u,Jd(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function Jd(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Gre(e,t,n){if(e=Float64Array.from(Lre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return z4(e);if(t>=1)return B4(e);var r,a=(r-1)*t,s=Math.floor(a),l=B4(Fz(e,s).subarray(0,s+1)),u=z4(e.subarray(s+1));return l+(u-l)*(a-s)}}function Yre(e,t,n=zz){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,s=Math.floor(a),l=+n(e[s],s,e),u=+n(e[s+1],s+1,e);return l+(u-l)*(a-s)}}function Kre(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Pp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Pp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Zre.exec(e))?new kr(t[1],t[2],t[3],1):(t=Qre.exec(e))?new kr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Jre.exec(e))?Pp(t[1],t[2],t[3],t[4]):(t=eae.exec(e))?Pp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=tae.exec(e))?G4(t[1],t[2]/100,t[3]/100,1):(t=nae.exec(e))?G4(t[1],t[2]/100,t[3]/100,t[4]):q4.hasOwnProperty(e)?H4(q4[e]):e==="transparent"?new kr(NaN,NaN,NaN,0):null}function H4(e){return new kr(e>>16&255,e>>8&255,e&255,1)}function Pp(e,t,n,r){return r<=0&&(e=t=n=NaN),new kr(e,t,n,r)}function iae(e){return e instanceof Dh||(e=qf(e)),e?(e=e.rgb(),new kr(e.r,e.g,e.b,e.opacity)):new kr}function Y_(e,t,n,r){return arguments.length===1?iae(e):new kr(e,t,n,r??1)}function kr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}xO(kr,Y_,Hz(Dh,{brighter(e){return e=e==null?Lv:Math.pow(Lv,e),new kr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Bf:Math.pow(Bf,e),new kr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new kr(rl(this.r),rl(this.g),rl(this.b),Bv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:W4,formatHex:W4,formatHex8:sae,formatRgb:V4,toString:V4}));function W4(){return`#${Yo(this.r)}${Yo(this.g)}${Yo(this.b)}`}function sae(){return`#${Yo(this.r)}${Yo(this.g)}${Yo(this.b)}${Yo((isNaN(this.opacity)?1:this.opacity)*255)}`}function V4(){const e=Bv(this.opacity);return`${e===1?"rgb(":"rgba("}${rl(this.r)}, ${rl(this.g)}, ${rl(this.b)}${e===1?")":`, ${e})`}`}function Bv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function rl(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yo(e){return e=rl(e),(e<16?"0":"")+e.toString(16)}function G4(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ba(e,t,n,r)}function Wz(e){if(e instanceof Ba)return new Ba(e.h,e.s,e.l,e.opacity);if(e instanceof Dh||(e=qf(e)),!e)return new Ba;if(e instanceof Ba)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,u=s-a,d=(s+a)/2;return u?(t===s?l=(n-r)/u+(n0&&d<1?0:l,new Ba(l,u,d,e.opacity)}function oae(e,t,n,r){return arguments.length===1?Wz(e):new Ba(e,t,n,r??1)}function Ba(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}xO(Ba,oae,Hz(Dh,{brighter(e){return e=e==null?Lv:Math.pow(Lv,e),new Ba(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Bf:Math.pow(Bf,e),new Ba(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new kr(J1(e>=240?e-240:e+120,a,r),J1(e,a,r),J1(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new Ba(Y4(this.h),Rp(this.s),Rp(this.l),Bv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Bv(this.opacity);return`${e===1?"hsl(":"hsla("}${Y4(this.h)}, ${Rp(this.s)*100}%, ${Rp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Y4(e){return e=(e||0)%360,e<0?e+360:e}function Rp(e){return Math.max(0,Math.min(1,e||0))}function J1(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const bO=e=>()=>e;function lae(e,t){return function(n){return e+n*t}}function cae(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function uae(e){return(e=+e)==1?Vz:function(t,n){return n-t?cae(t,n,e):bO(isNaN(t)?n:t)}}function Vz(e,t){var n=t-e;return n?lae(e,n):bO(isNaN(e)?t:e)}const K4=(function e(t){var n=uae(t);function r(a,s){var l=n((a=Y_(a)).r,(s=Y_(s)).r),u=n(a.g,s.g),d=n(a.b,s.b),f=Vz(a.opacity,s.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function dae(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(s){for(a=0;an&&(s=t.slice(n,s),u[l]?u[l]+=s:u[++l]=s),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:zv(r,a)})),n=eS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function jae(e,t,n){var r=e[0],a=e[1],s=t[0],l=t[1];return a2?Sae:jae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?s:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),zv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,qv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=wO,m()},p.clamp=function(g){return arguments.length?(l=g?!0:jr,m()):l!==jr},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(s=g,p):s},function(g,x){return r=g,a=x,m()}}function jO(){return ly()(jr,jr)}function _ae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Fv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function cu(e){return e=Fv(Math.abs(e)),e?e[1]:NaN}function Nae(e,t){return function(n,r){for(var a=n.length,s=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),s.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return s.reverse().join(t)}}function Cae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Oae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ff(e){if(!(t=Oae.exec(e)))throw new Error("invalid format: "+e);var t;return new SO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Ff.prototype=SO.prototype;function SO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}SO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Eae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var Gz;function Aae(e,t){var n=Fv(e,t);if(!n)return e+"";var r=n[0],a=n[1],s=a-(Gz=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Fv(e,Math.max(0,t+s-1))[0]}function Z4(e,t){var n=Fv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const Q4={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:_ae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Z4(e*100,t),r:Z4,s:Aae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function J4(e){return e}var e$=Array.prototype.map,t$=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Tae(e){var t=e.grouping===void 0||e.thousands===void 0?J4:Nae(e$.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?J4:Cae(e$.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=Ff(p);var g=p.fill,x=p.align,j=p.sign,w=p.symbol,b=p.zero,N=p.width,E=p.comma,O=p.precision,A=p.trim,C=p.type;C==="n"?(E=!0,C="g"):Q4[C]||(O===void 0&&(O=12),A=!0,C="g"),(b||g==="0"&&x==="=")&&(b=!0,g="0",x="=");var k=w==="$"?n:w==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=w==="$"?r:/[%p]/.test(C)?l:"",M=Q4[C],R=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function L($){var H=k,V=T,F,G,B;if(C==="c")V=M($)+V,$="";else{$=+$;var D=$<0||1/$<0;if($=isNaN($)?d:M(Math.abs($),O),A&&($=Eae($)),D&&+$==0&&j!=="+"&&(D=!1),H=(D?j==="("?j:u:j==="-"||j==="("?"":j)+H,V=(C==="s"?t$[8+Gz/3]:"")+V+(D&&j==="("?")":""),R){for(F=-1,G=$.length;++FB||B>57){V=(B===46?a+$.slice(F+1):$.slice(F))+V,$=$.slice(0,F);break}}}E&&!b&&($=t($,1/0));var U=H.length+$.length+V.length,K=U>1)+H+$+V+K.slice(U);break;default:$=K+H+$+V;break}return s($)}return L.toString=function(){return p+""},L}function m(p,g){var x=f((p=Ff(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(cu(g)/3)))*3,w=Math.pow(10,-j),b=t$[8+j/3];return function(N){return x(w*N)+b}}return{format:f,formatPrefix:m}}var Dp,_O,Yz;kae({thousands:",",grouping:[3],currency:["$",""]});function kae(e){return Dp=Tae(e),_O=Dp.format,Yz=Dp.formatPrefix,Dp}function Mae(e){return Math.max(0,-cu(Math.abs(e)))}function Pae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(cu(t)/3)))*3-cu(Math.abs(e)))}function Rae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,cu(t)-cu(e))+1}function Kz(e,t,n,r){var a=V_(e,t,n),s;switch(r=Ff(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(s=Pae(a,l))&&(r.precision=s),Yz(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Rae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=Mae(a))&&(r.precision=s-(r.type==="%")*2);break}}return _O(r)}function so(e){var t=e.domain;return e.ticks=function(n){var r=t();return H_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return Kz(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,s=r.length-1,l=r[a],u=r[s],d,f,m=10;for(u0;){if(f=W_(l,u,n),f===d)return r[a]=l,r[s]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function Uv(){var e=jO();return e.copy=function(){return $h(e,Uv())},Ea.apply(e,arguments),so(e)}function Xz(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,qv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return Xz(e).unknown(t)},e=arguments.length?Array.from(e,qv):[0,1],so(n)}function Zz(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],s=e[r],l;return sMath.pow(e,t)}function Bae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function a$(e){return(t,n)=>-e(-t,n)}function NO(e){const t=e(n$,r$),n=t.domain;let r=10,a,s;function l(){return a=Bae(r),s=Lae(r),n()[0]<0?(a=a$(a),s=a$(s),e(Dae,$ae)):e(n$,r$),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(w)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(w=g>0?j/s(-g):j*s(g),!(wm)break;N.push(w)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=Ff(d)).precision==null&&(d.trim=!0),d=_O(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/s(Math.round(a(m)));return p*rn(Zz(n(),{floor:u=>s(Math.floor(a(u))),ceil:u=>s(Math.ceil(a(u)))})),t}function Qz(){const e=NO(ly()).domain([1,10]);return e.copy=()=>$h(e,Qz()).base(e.base()),Ea.apply(e,arguments),e}function i$(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function s$(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function CO(e){var t=1,n=e(i$(t),s$(t));return n.constant=function(r){return arguments.length?e(i$(t=+r),s$(t)):t},so(n)}function Jz(){var e=CO(ly());return e.copy=function(){return $h(e,Jz()).constant(e.constant())},Ea.apply(e,arguments)}function o$(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function zae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function qae(e){return e<0?-e*e:e*e}function OO(e){var t=e(jr,jr),n=1;function r(){return n===1?e(jr,jr):n===.5?e(zae,qae):e(o$(n),o$(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},so(t)}function EO(){var e=OO(ly());return e.copy=function(){return $h(e,EO()).exponent(e.exponent())},Ea.apply(e,arguments),e}function Fae(){return EO.apply(null,arguments).exponent(.5)}function l$(e){return Math.sign(e)*e*e}function Uae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function e6(){var e=jO(),t=[0,1],n=!1,r;function a(s){var l=Uae(e(s));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(s){return e.invert(l$(s))},a.domain=function(s){return arguments.length?(e.domain(s),a):e.domain()},a.range=function(s){return arguments.length?(e.range((t=Array.from(s,qv)).map(l$)),a):t.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(e.clamp(s),a):e.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return e6(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Ea.apply(a,arguments),so(a)}function t6(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(s=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return n6().domain([e,t]).range(a).unknown(s)},Ea.apply(so(l),arguments)}function r6(){var e=[.5],t=[0,1],n,r=1;function a(s){return s!=null&&s<=s?t[Rh(e,s,0,r)]:n}return a.domain=function(s){return arguments.length?(e=Array.from(s),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(s){return arguments.length?(t=Array.from(s),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(s){var l=t.indexOf(s);return[e[l-1],e[l]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return r6().domain(e).range(t).unknown(n)},Ea.apply(a,arguments)}const tS=new Date,nS=new Date;function Dn(e,t,n,r){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const l=a(s),u=a.ceil(s);return s-l(t(s=new Date(+s),l==null?1:Math.floor(l)),s),a.range=(s,l,u)=>{const d=[];if(s=a.ceil(s),u=u==null?1:Math.floor(u),!(s0))return d;let f;do d.push(f=new Date(+s)),t(s,u),e(s);while(fDn(l=>{if(l>=l)for(;e(l),!s(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!s(l););else for(;--u>=0;)for(;t(l,1),!s(l););}),n&&(a.count=(s,l)=>(tS.setTime(+s),nS.setTime(+l),e(tS),e(nS),Math.floor(n(tS,nS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?l=>r(l)%s===0:l=>a.count(0,l)%s===0):a)),a}const Hv=Dn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Hv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Dn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Hv);Hv.range;const Gi=1e3,Sa=Gi*60,Yi=Sa*60,ns=Yi*24,AO=ns*7,c$=ns*30,rS=ns*365,Ko=Dn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Gi)},(e,t)=>(t-e)/Gi,e=>e.getUTCSeconds());Ko.range;const TO=Dn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Gi)},(e,t)=>{e.setTime(+e+t*Sa)},(e,t)=>(t-e)/Sa,e=>e.getMinutes());TO.range;const kO=Dn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Sa)},(e,t)=>(t-e)/Sa,e=>e.getUTCMinutes());kO.range;const MO=Dn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Gi-e.getMinutes()*Sa)},(e,t)=>{e.setTime(+e+t*Yi)},(e,t)=>(t-e)/Yi,e=>e.getHours());MO.range;const PO=Dn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Yi)},(e,t)=>(t-e)/Yi,e=>e.getUTCHours());PO.range;const Ih=Dn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Sa)/ns,e=>e.getDate()-1);Ih.range;const cy=Dn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ns,e=>e.getUTCDate()-1);cy.range;const a6=Dn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ns,e=>Math.floor(e/ns));a6.range;function _l(e){return Dn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Sa)/AO)}const uy=_l(0),Wv=_l(1),Hae=_l(2),Wae=_l(3),uu=_l(4),Vae=_l(5),Gae=_l(6);uy.range;Wv.range;Hae.range;Wae.range;uu.range;Vae.range;Gae.range;function Nl(e){return Dn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/AO)}const dy=Nl(0),Vv=Nl(1),Yae=Nl(2),Kae=Nl(3),du=Nl(4),Xae=Nl(5),Zae=Nl(6);dy.range;Vv.range;Yae.range;Kae.range;du.range;Xae.range;Zae.range;const RO=Dn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());RO.range;const DO=Dn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());DO.range;const rs=Dn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());rs.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Dn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});rs.range;const as=Dn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());as.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Dn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});as.range;function i6(e,t,n,r,a,s){const l=[[Ko,1,Gi],[Ko,5,5*Gi],[Ko,15,15*Gi],[Ko,30,30*Gi],[s,1,Sa],[s,5,5*Sa],[s,15,15*Sa],[s,30,30*Sa],[a,1,Yi],[a,3,3*Yi],[a,6,6*Yi],[a,12,12*Yi],[r,1,ns],[r,2,2*ns],[n,1,AO],[t,1,c$],[t,3,3*c$],[e,1,rS]];function u(f,m,p){const g=mb).right(l,g);if(x===l.length)return e.every(V_(f/rS,m/rS,p));if(x===0)return Hv.every(Math.max(V_(f,m,p),1));const[j,w]=l[g/l[x-1][2]53)return null;"w"in le||(le.w=1),"Z"in le?(_e=iS(ef(le.y,0,1)),fe=_e.getUTCDay(),_e=fe>4||fe===0?Vv.ceil(_e):Vv(_e),_e=cy.offset(_e,(le.V-1)*7),le.y=_e.getUTCFullYear(),le.m=_e.getUTCMonth(),le.d=_e.getUTCDate()+(le.w+6)%7):(_e=aS(ef(le.y,0,1)),fe=_e.getDay(),_e=fe>4||fe===0?Wv.ceil(_e):Wv(_e),_e=Ih.offset(_e,(le.V-1)*7),le.y=_e.getFullYear(),le.m=_e.getMonth(),le.d=_e.getDate()+(le.w+6)%7)}else("W"in le||"U"in le)&&("w"in le||(le.w="u"in le?le.u%7:"W"in le?1:0),fe="Z"in le?iS(ef(le.y,0,1)).getUTCDay():aS(ef(le.y,0,1)).getDay(),le.m=0,le.d="W"in le?(le.w+6)%7+le.W*7-(fe+5)%7:le.w+le.U*7-(fe+6)%7);return"Z"in le?(le.H+=le.Z/100|0,le.M+=le.Z%100,iS(le)):aS(le)}}function M(Z,ve,je,le){for(var Re=0,_e=ve.length,fe=je.length,pe,Le;Re<_e;){if(le>=fe)return-1;if(pe=ve.charCodeAt(Re++),pe===37){if(pe=ve.charAt(Re++),Le=C[pe in u$?ve.charAt(Re++):pe],!Le||(le=Le(Z,je,le))<0)return-1}else if(pe!=je.charCodeAt(le++))return-1}return le}function R(Z,ve,je){var le=f.exec(ve.slice(je));return le?(Z.p=m.get(le[0].toLowerCase()),je+le[0].length):-1}function L(Z,ve,je){var le=x.exec(ve.slice(je));return le?(Z.w=j.get(le[0].toLowerCase()),je+le[0].length):-1}function $(Z,ve,je){var le=p.exec(ve.slice(je));return le?(Z.w=g.get(le[0].toLowerCase()),je+le[0].length):-1}function H(Z,ve,je){var le=N.exec(ve.slice(je));return le?(Z.m=E.get(le[0].toLowerCase()),je+le[0].length):-1}function V(Z,ve,je){var le=w.exec(ve.slice(je));return le?(Z.m=b.get(le[0].toLowerCase()),je+le[0].length):-1}function F(Z,ve,je){return M(Z,t,ve,je)}function G(Z,ve,je){return M(Z,n,ve,je)}function B(Z,ve,je){return M(Z,r,ve,je)}function D(Z){return l[Z.getDay()]}function U(Z){return s[Z.getDay()]}function K(Z){return d[Z.getMonth()]}function te(Z){return u[Z.getMonth()]}function I(Z){return a[+(Z.getHours()>=12)]}function z(Z){return 1+~~(Z.getMonth()/3)}function Y(Z){return l[Z.getUTCDay()]}function ne(Z){return s[Z.getUTCDay()]}function se(Z){return d[Z.getUTCMonth()]}function xe(Z){return u[Z.getUTCMonth()]}function ee(Z){return a[+(Z.getUTCHours()>=12)]}function ae(Z){return 1+~~(Z.getUTCMonth()/3)}return{format:function(Z){var ve=k(Z+="",O);return ve.toString=function(){return Z},ve},parse:function(Z){var ve=T(Z+="",!1);return ve.toString=function(){return Z},ve},utcFormat:function(Z){var ve=k(Z+="",A);return ve.toString=function(){return Z},ve},utcParse:function(Z){var ve=T(Z+="",!0);return ve.toString=function(){return Z},ve}}}var u$={"-":"",_:" ",0:"0"},Gn=/^\s*\d+/,rie=/^%/,aie=/[\\^$*+?|[\]().{}]/g;function vt(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",s=a.length;return r+(s[t.toLowerCase(),n]))}function sie(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function oie(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function lie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function cie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function uie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function d$(e,t,n){var r=Gn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function f$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function die(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function fie(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function hie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function h$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function mie(e,t,n){var r=Gn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function m$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function pie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function vie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function gie(e,t,n){var r=Gn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function yie(e,t,n){var r=Gn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function xie(e,t,n){var r=rie.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function bie(e,t,n){var r=Gn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function wie(e,t,n){var r=Gn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function p$(e,t){return vt(e.getDate(),t,2)}function jie(e,t){return vt(e.getHours(),t,2)}function Sie(e,t){return vt(e.getHours()%12||12,t,2)}function _ie(e,t){return vt(1+Ih.count(rs(e),e),t,3)}function s6(e,t){return vt(e.getMilliseconds(),t,3)}function Nie(e,t){return s6(e,t)+"000"}function Cie(e,t){return vt(e.getMonth()+1,t,2)}function Oie(e,t){return vt(e.getMinutes(),t,2)}function Eie(e,t){return vt(e.getSeconds(),t,2)}function Aie(e){var t=e.getDay();return t===0?7:t}function Tie(e,t){return vt(uy.count(rs(e)-1,e),t,2)}function o6(e){var t=e.getDay();return t>=4||t===0?uu(e):uu.ceil(e)}function kie(e,t){return e=o6(e),vt(uu.count(rs(e),e)+(rs(e).getDay()===4),t,2)}function Mie(e){return e.getDay()}function Pie(e,t){return vt(Wv.count(rs(e)-1,e),t,2)}function Rie(e,t){return vt(e.getFullYear()%100,t,2)}function Die(e,t){return e=o6(e),vt(e.getFullYear()%100,t,2)}function $ie(e,t){return vt(e.getFullYear()%1e4,t,4)}function Iie(e,t){var n=e.getDay();return e=n>=4||n===0?uu(e):uu.ceil(e),vt(e.getFullYear()%1e4,t,4)}function Lie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+vt(t/60|0,"0",2)+vt(t%60,"0",2)}function v$(e,t){return vt(e.getUTCDate(),t,2)}function Bie(e,t){return vt(e.getUTCHours(),t,2)}function zie(e,t){return vt(e.getUTCHours()%12||12,t,2)}function qie(e,t){return vt(1+cy.count(as(e),e),t,3)}function l6(e,t){return vt(e.getUTCMilliseconds(),t,3)}function Fie(e,t){return l6(e,t)+"000"}function Uie(e,t){return vt(e.getUTCMonth()+1,t,2)}function Hie(e,t){return vt(e.getUTCMinutes(),t,2)}function Wie(e,t){return vt(e.getUTCSeconds(),t,2)}function Vie(e){var t=e.getUTCDay();return t===0?7:t}function Gie(e,t){return vt(dy.count(as(e)-1,e),t,2)}function c6(e){var t=e.getUTCDay();return t>=4||t===0?du(e):du.ceil(e)}function Yie(e,t){return e=c6(e),vt(du.count(as(e),e)+(as(e).getUTCDay()===4),t,2)}function Kie(e){return e.getUTCDay()}function Xie(e,t){return vt(Vv.count(as(e)-1,e),t,2)}function Zie(e,t){return vt(e.getUTCFullYear()%100,t,2)}function Qie(e,t){return e=c6(e),vt(e.getUTCFullYear()%100,t,2)}function Jie(e,t){return vt(e.getUTCFullYear()%1e4,t,4)}function ese(e,t){var n=e.getUTCDay();return e=n>=4||n===0?du(e):du.ceil(e),vt(e.getUTCFullYear()%1e4,t,4)}function tse(){return"+0000"}function g$(){return"%"}function y$(e){return+e}function x$(e){return Math.floor(+e/1e3)}var Sc,u6,d6;nse({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function nse(e){return Sc=nie(e),u6=Sc.format,Sc.parse,d6=Sc.utcFormat,Sc.utcParse,Sc}function rse(e){return new Date(e)}function ase(e){return e instanceof Date?+e:+new Date(+e)}function $O(e,t,n,r,a,s,l,u,d,f){var m=jO(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),w=f("%I:%M"),b=f("%I %p"),N=f("%a %d"),E=f("%b %d"),O=f("%B"),A=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>Gre(e,s/r))},n.copy=function(){return p6(t).domain(e)},us.apply(n,arguments)}function hy(){var e=0,t=.5,n=1,r=1,a,s,l,u,d,f=jr,m,p=!1,g;function x(w){return isNaN(w=+w)?g:(w=.5+((w=+m(w))-s)*(r*wn}return oS=e,oS}var lS,S$;function cse(){if(S$)return lS;S$=1;var e=my(),t=x6(),n=Uu();function r(a){return a&&a.length?e(a,n,t):void 0}return lS=r,lS}var use=cse();const py=St(use);var cS,_$;function b6(){if(_$)return cS;_$=1;function e(t,n){return te.e^s.s<0?1:-1;for(r=s.d.length,a=e.d.length,t=0,n=re.d[t]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};Ee.decimalPlaces=Ee.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*Xt;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Ee.dividedBy=Ee.div=function(e){return es(this,new this.constructor(e))};Ee.dividedToIntegerBy=Ee.idiv=function(e){var t=this,n=t.constructor;return Bt(es(t,new n(e),0,1),n.precision)};Ee.equals=Ee.eq=function(e){return!this.cmp(e)};Ee.exponent=function(){return gn(this)};Ee.greaterThan=Ee.gt=function(e){return this.cmp(e)>0};Ee.greaterThanOrEqualTo=Ee.gte=function(e){return this.cmp(e)>=0};Ee.isInteger=Ee.isint=function(){return this.e>this.d.length-2};Ee.isNegative=Ee.isneg=function(){return this.s<0};Ee.isPositive=Ee.ispos=function(){return this.s>0};Ee.isZero=function(){return this.s===0};Ee.lessThan=Ee.lt=function(e){return this.cmp(e)<0};Ee.lessThanOrEqualTo=Ee.lte=function(e){return this.cmp(e)<1};Ee.logarithm=Ee.log=function(e){var t,n=this,r=n.constructor,a=r.precision,s=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ea))throw Error(Ca+"NaN");if(n.s<1)throw Error(Ca+(n.s?"NaN":"-Infinity"));return n.eq(ea)?new r(0):(Qt=!1,t=es(Uf(n,s),Uf(e,s),s),Qt=!0,Bt(t,a))};Ee.minus=Ee.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_6(t,e):j6(t,(e.s=-e.s,e))};Ee.modulo=Ee.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(Ca+"NaN");return n.s?(Qt=!1,t=es(n,e,0,1).times(e),Qt=!0,n.minus(t)):Bt(new r(n),a)};Ee.naturalExponential=Ee.exp=function(){return S6(this)};Ee.naturalLogarithm=Ee.ln=function(){return Uf(this)};Ee.negated=Ee.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Ee.plus=Ee.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?j6(t,e):_6(t,(e.s=-e.s,e))};Ee.precision=Ee.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(al+e);if(t=gn(a)+1,r=a.d.length-1,n=r*Xt+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Ee.squareRoot=Ee.sqrt=function(){var e,t,n,r,a,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Ca+"NaN")}for(e=gn(u),Qt=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=oi(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Vu((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(s=r,r=s.plus(es(u,s,l+2)).times(.5),oi(s.d).slice(0,l)===(t=oi(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Bt(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!="9999")break;l+=4}return Qt=!0,Bt(r,n)};Ee.times=Ee.mul=function(e){var t,n,r,a,s,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=s[a]+x[r]*g[a-r-1]+t,s[a--]=u%zn|0,t=u/zn|0;s[a]=(s[a]+t)%zn|0}for(;!s[--l];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,Qt?Bt(e,p.precision):e};Ee.toDecimalPlaces=Ee.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(vi(e,0,Wu),t===void 0?t=r.rounding:vi(t,0,8),Bt(n,e+gn(n)+1,t))};Ee.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=ml(r,!0):(vi(e,0,Wu),t===void 0?t=a.rounding:vi(t,0,8),r=Bt(new a(r),e+1,t),n=ml(r,!0,e+1)),n};Ee.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?ml(a):(vi(e,0,Wu),t===void 0?t=s.rounding:vi(t,0,8),r=Bt(new s(a),e+gn(a)+1,t),n=ml(r.abs(),!1,e+gn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Ee.toInteger=Ee.toint=function(){var e=this,t=e.constructor;return Bt(new t(e),gn(e)+1,t.rounding)};Ee.toNumber=function(){return+this};Ee.toPower=Ee.pow=function(e){var t,n,r,a,s,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ea);if(u=new d(u),!u.s){if(e.s<1)throw Error(Ca+"Infinity");return u}if(u.eq(ea))return u;if(r=d.precision,e.eq(ea))return Bt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,l){if((n=m<0?-m:m)<=w6){for(a=new d(ea),t=Math.ceil(r/Xt+4),Qt=!1;n%2&&(a=a.times(u),T$(a.d,t)),n=Vu(n/2),n!==0;)u=u.times(u),T$(u.d,t);return Qt=!0,e.s<0?new d(ea).div(a):Bt(a,r)}}else if(s<0)throw Error(Ca+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,Qt=!1,a=e.times(Uf(u,r+f)),Qt=!0,a=S6(a),a.s=s,a};Ee.toPrecision=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?(n=gn(a),r=ml(a,n<=s.toExpNeg||n>=s.toExpPos)):(vi(e,1,Wu),t===void 0?t=s.rounding:vi(t,0,8),a=Bt(new s(a),e,t),n=gn(a),r=ml(a,e<=n||n<=s.toExpNeg,e)),r};Ee.toSignificantDigits=Ee.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(vi(e,1,Wu),t===void 0?t=r.rounding:vi(t,0,8)),Bt(new r(n),e,t)};Ee.toString=Ee.valueOf=Ee.val=Ee.toJSON=Ee[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=gn(e),n=e.constructor;return ml(e,t<=n.toExpNeg||t>=n.toExpPos)};function j6(e,t){var n,r,a,s,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),Qt?Bt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),s=l-a,s){for(s<0?(r=d,s=-s,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/Xt),u=l>u?l+1:u+1,s>u&&(s=u,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(u=d.length,s=f.length,u-s<0&&(s=u,r=f,f=d,d=r),n=0;s;)n=(d[--s]=d[s]+f[s]+n)/zn|0,d[s]%=zn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,Qt?Bt(t,p):t}function vi(e,t,n){if(e!==~~e||en)throw Error(al+e)}function oi(e){var t,n,r,a=e.length-1,s="",l=e[0];if(a>0){for(s+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,s){for(var l=0;s--;)r[s]-=l,l=r[s]1;)r.shift()}return function(r,a,s,l){var u,d,f,m,p,g,x,j,w,b,N,E,O,A,C,k,T,M,R=r.constructor,L=r.s==a.s?1:-1,$=r.d,H=a.d;if(!r.s)return new R(r);if(!a.s)throw Error(Ca+"Division by zero");for(d=r.e-a.e,T=H.length,C=$.length,x=new R(L),j=x.d=[],f=0;H[f]==($[f]||0);)++f;if(H[f]>($[f]||0)&&--d,s==null?E=s=R.precision:l?E=s+(gn(r)-gn(a))+1:E=s,E<0)return new R(0);if(E=E/Xt+2|0,f=0,T==1)for(m=0,H=H[0],E++;(f1&&(H=e(H,m),$=e($,m),T=H.length,C=$.length),A=T,w=$.slice(0,T),b=w.length;b=zn/2&&++k;do m=0,u=t(H,w,T,b),u<0?(N=w[0],T!=b&&(N=N*zn+(w[1]||0)),m=N/k|0,m>1?(m>=zn&&(m=zn-1),p=e(H,m),g=p.length,b=w.length,u=t(p,w,g,b),u==1&&(m--,n(p,T16)throw Error(BO+gn(e));if(!e.s)return new m(ea);for(Qt=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Uo(2,f))/Math.LN10*2+5|0,u+=r,n=a=s=new m(ea),m.precision=u;;){if(a=Bt(a.times(e),u),n=n.times(++d),l=s.plus(es(a,n,u)),oi(l.d).slice(0,u)===oi(s.d).slice(0,u)){for(;f--;)s=Bt(s.times(s),u);return m.precision=p,t==null?(Qt=!0,Bt(s,p)):s}s=l}}function gn(e){for(var t=e.e*Xt,n=e.d[0];n>=10;n/=10)t++;return t}function mS(e,t,n){if(t>e.LN10.sd())throw Qt=!0,n&&(e.precision=n),Error(Ca+"LN10 precision limit exceeded");return Bt(new e(e.LN10),t)}function zs(e){for(var t="";e--;)t+="0";return t}function Uf(e,t){var n,r,a,s,l,u,d,f,m,p=1,g=10,x=e,j=x.d,w=x.constructor,b=w.precision;if(x.s<1)throw Error(Ca+(x.s?"NaN":"-Infinity"));if(x.eq(ea))return new w(0);if(t==null?(Qt=!1,f=b):f=t,x.eq(10))return t==null&&(Qt=!0),mS(w,f);if(f+=g,w.precision=f,n=oi(j),r=n.charAt(0),s=gn(x),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=oi(x.d),r=n.charAt(0),p++;s=gn(x),r>1?(x=new w("0."+n),s++):x=new w(r+"."+n.slice(1))}else return d=mS(w,f+2,b).times(s+""),x=Uf(new w(r+"."+n.slice(1)),f-g).plus(d),w.precision=b,t==null?(Qt=!0,Bt(x,b)):x;for(u=l=x=es(x.minus(ea),x.plus(ea),f),m=Bt(x.times(x),f),a=3;;){if(l=Bt(l.times(m),f),d=u.plus(es(l,new w(a),f)),oi(d.d).slice(0,f)===oi(u.d).slice(0,f))return u=u.times(2),s!==0&&(u=u.plus(mS(w,f+2,b).times(s+""))),u=es(u,new w(p),f),w.precision=b,t==null?(Qt=!0,Bt(u,b)):u;u=d,a+=2}}function A$(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Vu(n/Xt),e.d=[],r=(n+1)%Xt,n<0&&(r+=Xt),rGv||e.e<-Gv))throw Error(BO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Bt(e,t,n){var r,a,s,l,u,d,f,m,p=e.d;for(l=1,s=p[0];s>=10;s/=10)l++;if(r=t-l,r<0)r+=Xt,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/Xt),s=p.length,m>=s)return e;for(f=s=p[m],l=1;s>=10;s/=10)l++;r%=Xt,a=r-Xt+l}if(n!==void 0&&(s=Uo(10,l-a-1),u=f/s%10|0,d=t<0||p[m+1]!==void 0||f%s,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Uo(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(s=gn(e),p.length=1,t=t-s-1,p[0]=Uo(10,(Xt-t%Xt)%Xt),e.e=Vu(-t/Xt)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,s=1,m--):(p.length=m+1,s=Uo(10,Xt-r),p[m]=a>0?(f/Uo(10,l-a)%Uo(10,a)|0)*s:0),d)for(;;)if(m==0){(p[0]+=s)==zn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=zn)break;p[m--]=0,s=1}for(r=p.length;p[--r]===0;)p.pop();if(Qt&&(e.e>Gv||e.e<-Gv))throw Error(BO+gn(e));return e}function _6(e,t){var n,r,a,s,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),Qt?Bt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/Xt),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?s=s.charAt(0)+"."+s.slice(1)+zs(r):l>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+zs(-a-1)+s,n&&(r=n-l)>0&&(s+=zs(r))):a>=l?(s+=zs(a+1-l),n&&(r=n-a-1)>0&&(s=s+"."+zs(r))):((r=a+1)0&&(a+1===l&&(s+="."),s+=zs(r))),e.s<0?"-"+s:s}function T$(e,t){if(e.length>t)return e.length=t,!0}function N6(e){var t,n,r;function a(s){var l=this;if(!(l instanceof a))return new a(s);if(l.constructor=a,s instanceof a){l.s=s.s,l.e=s.e,l.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(al+s);if(s>0)l.s=1;else if(s<0)s=-s,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(s===~~s&&s<1e7){l.e=0,l.d=[s];return}return A$(l,s.toString())}else if(typeof s!="string")throw Error(al+s);if(s.charCodeAt(0)===45?(s=s.slice(1),l.s=-1):l.s=1,bse.test(s))A$(l,s);else throw Error(al+s)}if(a.prototype=Ee,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=N6,a.config=a.set=wse,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(al+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(al+n+": "+r);return this}var zO=N6(xse);ea=new zO(1);const Rt=zO;function jse(e){return Cse(e)||Nse(e)||_se(e)||Sse()}function Sse(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _se(e,t){if(e){if(typeof e=="string")return Z_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Z_(e,t)}}function Nse(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Cse(e){if(Array.isArray(e))return Z_(e)}function Z_(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,k$(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,s=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw s}}return n}}function qse(e){if(Array.isArray(e))return e}function T6(e){var t=Hf(e,2),n=t[0],r=t[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function k6(e,t,n){if(e.lte(0))return new Rt(0);var r=yy.getDigitCount(e.toNumber()),a=new Rt(10).pow(r),s=e.div(a),l=r!==1?.05:.1,u=new Rt(Math.ceil(s.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new Rt(Math.ceil(d))}function Fse(e,t,n){var r=1,a=new Rt(e);if(!a.isint()&&n){var s=Math.abs(e);s<1?(r=new Rt(10).pow(yy.getDigitCount(e)-1),a=new Rt(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new Rt(Math.floor(e)))}else e===0?a=new Rt(Math.floor((t-1)/2)):n||(a=new Rt(Math.floor(e)));var l=Math.floor((t-1)/2),u=Tse(Ase(function(d){return a.add(new Rt(d-l).mul(r)).toNumber()}),Q_);return u(0,t)}function M6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new Rt(0),tickMin:new Rt(0),tickMax:new Rt(0)};var s=k6(new Rt(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new Rt(0):(l=new Rt(e).add(t).div(2),l=l.sub(new Rt(l).mod(s)));var u=Math.ceil(l.sub(e).div(s).toNumber()),d=Math.ceil(new Rt(t).sub(l).div(s).toNumber()),f=u+d+1;return f>n?M6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:s,tickMin:l.sub(new Rt(u).mul(s)),tickMax:l.add(new Rt(d).mul(s))})}function Use(e){var t=Hf(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=T6([n,r]),d=Hf(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(eN(Q_(0,a-1).map(function(){return 1/0}))):[].concat(eN(Q_(0,a-1).map(function(){return-1/0})),[m]);return n>r?J_(p):p}if(f===m)return Fse(f,a,s);var g=M6(f,m,l,s),x=g.step,j=g.tickMin,w=g.tickMax,b=yy.rangeStep(j,w.add(new Rt(.1).mul(x)),x);return n>r?J_(b):b}function Hse(e,t){var n=Hf(e,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=T6([r,a]),u=Hf(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=k6(new Rt(f).sub(d).div(m-1),s,0),g=[].concat(eN(yy.rangeStep(new Rt(d),new Rt(f).sub(new Rt(.99).mul(p)),p)),[f]);return r>a?J_(g):g}var Wse=E6(Use),Vse=E6(Hse),Gse=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function fu(e){"@babel/helpers - typeof";return fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fu(e)}function Yv(){return Yv=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function eoe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function toe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function noe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var d=s.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(br(p-m)!==br(g-p)){var j=[];if(br(g-p)===br(d[1]-d[0])){x=g;var w=p+d[1]-d[0];j[0]=Math.min(w,(w+m)/2),j[1]=Math.max(w,(w+m)/2)}else{x=m;var b=g+d[1]-d[0];j[0]=Math.min(p,(b+p)/2),j[1]=Math.max(p,(b+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var E=Math.min(m,g),O=Math.max(m,g);if(t>(E+p)/2&&t<=(O+p)/2){l=a[f].index;break}}}else for(var A=0;A0&&A(r[A].coordinate+r[A-1].coordinate)/2&&t<=(r[A].coordinate+r[A+1].coordinate)/2||A===u-1&&t>(r[A].coordinate+r[A-1].coordinate)/2){l=r[A].index;break}return l},qO=function(t){var n,r=t,a=r.type.displayName,s=(n=t.type)!==null&&n!==void 0&&n.defaultProps?on(on({},t.type.defaultProps),t.props):t.props,l=s.stroke,u=s.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},xoe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var l={},u=Object.keys(s),d=0,f=u.length;d=0});if(N&&N.length){var E=N[0].type.defaultProps,O=E!==void 0?on(on({},E),N[0].props):N[0].props,A=O.barSize,C=O[b];l[C]||(l[C]=[]);var k=Ge(A)?n:A;l[C].push({item:N[0],stackList:N.slice(1),barSize:Ge(k)?void 0:wr(k,r,0)})}}return l},boe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,s=t.sizeList,l=s===void 0?[]:s,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=wr(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(A,C){return A+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var w=(a-j)/2>>0,b={offset:w-f,size:0};m=l.reduce(function(A,C){var k={item:C.item,position:{offset:b.offset+b.size+f,size:g?x:C.barSize}},T=[].concat(R$(A),[k]);return b=T[T.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:b})}),T},p)}else{var N=wr(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var E=(a-2*N-(d-1)*f)/d;E>1&&(E>>=0);var O=u===+u?Math.min(E,u):E;m=l.reduce(function(A,C,k){var T=[].concat(R$(A),[{item:C.item,position:{offset:N+(E+f)*k+(E-O)/2,size:O}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:T[T.length-1].position})}),T},p)}return m},woe=function(t,n,r,a){var s=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=$6({children:s,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,w=f.layout;if((w==="vertical"||w==="horizontal"&&j==="middle")&&x!=="center"&&Ce(t[x]))return on(on({},t),{},Wc({},x,t[x]+(p||0)));if((w==="horizontal"||w==="vertical"&&x==="center")&&j!=="middle"&&Ce(t[j]))return on(on({},t),{},Wc({},j,t[j]+(g||0)))}return t},joe=function(t,n,r){return Ge(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},I6=function(t,n,r,a,s){var l=n.props.children,u=na(l,Bh).filter(function(f){return joe(a,s,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=kn(m,r);if(Ge(p))return f;var g=Array.isArray(p)?[vy(p),py(p)]:[p,p],x=d.reduce(function(j,w){var b=kn(m,w,0),N=g[0]-Math.abs(Array.isArray(b)?b[0]:b),E=g[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(N,j[0]),Math.max(E,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},Soe=function(t,n,r,a,s){var l=n.map(function(u){return I6(t,u,r,s,a)}).filter(function(u){return!Ge(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},L6=function(t,n,r,a,s){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&I6(t,d,f,a)||_f(t,f,r,s)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?br(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=s?s.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!Mh(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:s?s[p]:p,index:g,offset:f}})},pS=new WeakMap,$p=function(t,n){if(typeof n!="function")return t;pS.has(t)||pS.set(t,new WeakMap);var r=pS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},q6=function(t,n,r){var a=t.scale,s=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:Lf(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:Uv(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Sf(),realScaleType:"point"}:s==="category"?{scale:Lf(),realScaleType:"band"}:{scale:Uv(),realScaleType:"linear"};if(dl(a)){var d="scale".concat(ey(a));return{scale:(b$[d]||Sf)(),realScaleType:b$[d]?d:"point"}}return We(a)?{scale:a}:{scale:Sf(),realScaleType:"point"}},$$=1e-4,F6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),s=Math.min(a[0],a[1])-$$,l=Math.max(a[0],a[1])+$$,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},_oe=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(t[u][r][0]=s,t[u][r][1]=s+d,s=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},Ooe=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},Eoe={sign:Coe,expand:pee,none:au,silhouette:vee,wiggle:gee,positive:Ooe},Aoe=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),s=Eoe[r],l=mee().keys(a).value(function(u,d){return+kn(u,d,0)}).order(P_).offset(s);return l(t)},Toe=function(t,n,r,a,s,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?on(on({},g.type.defaultProps),g.props):g.props,w=j.stackId,b=j.hide;if(b)return p;var N=j[r],E=p[N]||{hasStack:!1,stackGroups:{}};if(Mn(w)){var O=E.stackGroups[w]||{numericAxisId:r,cateAxisId:a,items:[]};O.items.push(g),E.hasStack=!0,E.stackGroups[w]=O}else E.stackGroups[Fu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return on(on({},p),{},Wc({},N,E))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(w,b){var N=x.stackGroups[b];return on(on({},w),{},Wc({},b,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:Aoe(t,N.items,s)}))},j)}return on(on({},p),{},Wc({},g,x))},m)},U6=function(t,n){var r=n.realScaleType,a=n.type,s=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(s&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=Wse(f,s,u);return t.domain([vy(m),py(m)]),{niceTicks:m}}if(s&&a==="number"){var p=t.domain(),g=Vse(p,s,u);return{niceTicks:g}}return null};function I$(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,s=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Ge(a[t.dataKey])){var u=Nv(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var d=kn(a,Ge(l)?t.dataKey:l);return Ge(d)?null:t.scale(d)}var L$=function(t){var n=t.axis,r=t.ticks,a=t.offset,s=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=kn(l,n.dataKey,n.domain[u]);return Ge(d)?null:n.scale(d)-s/2+a},koe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},Moe=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?on(on({},t.type.defaultProps),t.props):t.props,s=a.stackId;if(Mn(s)){var l=n[s];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},Poe=function(t){return t.reduce(function(n,r){return[vy(r.concat([n[0]]).filter(Ce)),py(r.concat([n[1]]).filter(Ce))]},[1/0,-1/0])},H6=function(t,n,r){return Object.keys(t).reduce(function(a,s){var l=t[s],u=l.stackedData,d=u.reduce(function(f,m){var p=Poe(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},B$=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,z$=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,aN=function(t,n,r){if(We(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ce(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(B$.test(t[0])){var s=+B$.exec(t[0])[1];a[0]=n[0]-s}else We(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ce(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(z$.test(t[1])){var l=+z$.exec(t[1])[1];a[1]=n[1]+l}else We(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},Xv=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var s=pO(n,function(p){return p.coordinate}),l=1/0,u=1,d=s.length;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},Foe=function(t,n,r,a,s){var l=t.width,u=t.height,d=t.startAngle,f=t.endAngle,m=wr(t.cx,l,l/2),p=wr(t.cy,u,u/2),g=G6(l,u,r),x=wr(t.innerRadius,g,0),j=wr(t.outerRadius,g,g*.8),w=Object.keys(n);return w.reduce(function(b,N){var E=n[N],O=E.domain,A=E.reversed,C;if(Ge(E.range))a==="angleAxis"?C=[d,f]:a==="radiusAxis"&&(C=[x,j]),A&&(C=[C[1],C[0]]);else{C=E.range;var k=C,T=$oe(k,2);d=T[0],f=T[1]}var M=q6(E,s),R=M.realScaleType,L=M.scale;L.domain(O).range(C),F6(L);var $=U6(L,Wi(Wi({},E),{},{realScaleType:R})),H=Wi(Wi(Wi({},E),$),{},{range:C,radius:j,realScaleType:R,scale:L,cx:m,cy:p,innerRadius:x,outerRadius:j,startAngle:d,endAngle:f});return Wi(Wi({},b),{},V6({},N,H))},{})},Uoe=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return Math.sqrt(Math.pow(r-s,2)+Math.pow(a-l,2))},Hoe=function(t,n){var r=t.x,a=t.y,s=n.cx,l=n.cy,u=Uoe({x:r,y:a},{x:s,y:l});if(u<=0)return{radius:u};var d=(r-s)/u,f=Math.acos(d);return a>l&&(f=2*Math.PI-f),{radius:u,angle:qoe(f),angleInRadian:f}},Woe=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),l=Math.min(a,s);return{startAngle:n-l*360,endAngle:r-l*360}},Voe=function(t,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),l=Math.floor(a/360),u=Math.min(s,l);return t+u*360},H$=function(t,n){var r=t.x,a=t.y,s=Hoe({x:r,y:a},n),l=s.radius,u=s.angle,d=n.innerRadius,f=n.outerRadius;if(lf)return!1;if(l===0)return!0;var m=Woe(n),p=m.startAngle,g=m.endAngle,x=u,j;if(p<=g){for(;x>g;)x-=360;for(;x=p&&x<=g}else{for(;x>p;)x-=360;for(;x=g&&x<=p}return j?Wi(Wi({},n),{},{radius:l,angle:Voe(x,n)}):null},Y6=function(t){return!y.isValidElement(t)&&!We(t)&&typeof t!="boolean"?t.className:""};function Yf(e){"@babel/helpers - typeof";return Yf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yf(e)}var Goe=["offset"];function Yoe(e){return Qoe(e)||Zoe(e)||Xoe(e)||Koe()}function Koe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xoe(e,t){if(e){if(typeof e=="string")return iN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return iN(e,t)}}function Zoe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Qoe(e){if(Array.isArray(e))return iN(e)}function iN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ele(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function W$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Tn(e){for(var t=1;t=0?1:-1,O,A;a==="insideStart"?(O=x+E*l,A=w):a==="insideEnd"?(O=j-E*l,A=!w):a==="end"&&(O=j+E*l,A=w),A=N<=0?A:!A;var C=Gt(f,m,b,O),k=Gt(f,m,b,O+(A?1:-1)*359),T="M".concat(C.x,",").concat(C.y,` + A`).concat(b,",").concat(b,",0,1,").concat(A?0:1,`, + `).concat(k.x,",").concat(k.y),M=Ge(t.id)?Fu("recharts-radial-line-"):t.id;return W.createElement("text",Kf({},r,{dominantBaseline:"central",className:Ye("recharts-radial-bar-label",u)}),W.createElement("defs",null,W.createElement("path",{id:M,d:T})),W.createElement("textPath",{xlinkHref:"#".concat(M)},n))},ole=function(t){var n=t.viewBox,r=t.offset,a=t.position,s=n,l=s.cx,u=s.cy,d=s.innerRadius,f=s.outerRadius,m=s.startAngle,p=s.endAngle,g=(m+p)/2;if(a==="outside"){var x=Gt(l,u,f+r,g),j=x.x,w=x.y;return{x:j,y:w,textAnchor:j>=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var b=(d+f)/2,N=Gt(l,u,b,g),E=N.x,O=N.y;return{x:E,y:O,textAnchor:"middle",verticalAnchor:"middle"}},lle=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,s=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",w=f>=0?1:-1,b=w*a,N=w>0?"end":"start",E=w>0?"start":"end";if(s==="top"){var O={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return Tn(Tn({},O),r?{height:Math.max(d-r.y,0),width:f}:{})}if(s==="bottom"){var A={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return Tn(Tn({},A),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(s==="left"){var C={x:u-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return Tn(Tn({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(s==="right"){var k={x:u+f+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"};return Tn(Tn({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var T=r?{width:f,height:m}:{};return s==="insideLeft"?Tn({x:u+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"},T):s==="insideRight"?Tn({x:u+f-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},T):s==="insideTop"?Tn({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},T):s==="insideBottom"?Tn({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},T):s==="insideTopLeft"?Tn({x:u+b,y:d+g,textAnchor:E,verticalAnchor:j},T):s==="insideTopRight"?Tn({x:u+f-b,y:d+g,textAnchor:N,verticalAnchor:j},T):s==="insideBottomLeft"?Tn({x:u+b,y:d+m-g,textAnchor:E,verticalAnchor:x},T):s==="insideBottomRight"?Tn({x:u+f-b,y:d+m-g,textAnchor:N,verticalAnchor:x},T):qu(s)&&(Ce(s.x)||Go(s.x))&&(Ce(s.y)||Go(s.y))?Tn({x:u+wr(s.x,f),y:d+wr(s.y,m),textAnchor:"end",verticalAnchor:"end"},T):Tn({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},T)},cle=function(t){return"cx"in t&&Ce(t.cx)};function qn(e){var t=e.offset,n=t===void 0?5:t,r=Joe(e,Goe),a=Tn({offset:n},r),s=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!s||Ge(u)&&Ge(d)&&!y.isValidElement(f)&&!We(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(We(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=ale(a);var j=cle(s),w=Be(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return sle(a,x,w);var b=j?ole(a):lle(a);return W.createElement(hl,Kf({className:Ye("recharts-label",p)},w,b,{breakAll:g}),x)}qn.displayName="Label";var K6=function(t){var n=t.cx,r=t.cy,a=t.angle,s=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,w=t.width,b=t.height,N=t.clockWise,E=t.labelViewBox;if(E)return E;if(Ce(w)&&Ce(b)){if(Ce(p)&&Ce(g))return{x:p,y:g,width:w,height:b};if(Ce(x)&&Ce(j))return{x,y:j,width:w,height:b}}return Ce(p)&&Ce(g)?{x:p,y:g,width:0,height:0}:Ce(n)&&Ce(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},ule=function(t,n){return t?t===!0?W.createElement(qn,{key:"label-implicit",viewBox:n}):Mn(t)?W.createElement(qn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===qn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(qn,{key:"label-implicit",content:t,viewBox:n}):We(t)?W.createElement(qn,{key:"label-implicit",content:t,viewBox:n}):qu(t)?W.createElement(qn,Kf({viewBox:n},t,{key:"label-implicit"})):null:null},dle=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,s=K6(t),l=na(a,qn).map(function(d,f){return y.cloneElement(d,{viewBox:n||s,key:"label-".concat(f)})});if(!r)return l;var u=ule(t.label,n||s);return[u].concat(Yoe(l))};qn.parseViewBox=K6;qn.renderCallByParent=dle;var vS,V$;function fle(){if(V$)return vS;V$=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return vS=e,vS}var hle=fle();const mle=St(hle);function Xf(e){"@babel/helpers - typeof";return Xf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xf(e)}var ple=["valueAccessor"],vle=["data","dataKey","clockWise","id","textBreakAll"];function gle(e){return wle(e)||ble(e)||xle(e)||yle()}function yle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xle(e,t){if(e){if(typeof e=="string")return sN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return sN(e,t)}}function ble(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wle(e){if(Array.isArray(e))return sN(e)}function sN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Nle(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Cle=function(t){return Array.isArray(t.value)?mle(t.value):t.value};function ts(e){var t=e.valueAccessor,n=t===void 0?Cle:t,r=K$(e,ple),a=r.data,s=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=K$(r,vle);return!a||!a.length?null:W.createElement(pt,{className:"recharts-label-list"},a.map(function(m,p){var g=Ge(s)?n(m,p):kn(m&&m.payload,s),x=Ge(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(qn,Qv({},Be(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:qn.parseViewBox(Ge(l)?m:Y$(Y$({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}ts.displayName="LabelList";function Ole(e,t){return e?e===!0?W.createElement(ts,{key:"labelList-implicit",data:t}):W.isValidElement(e)||We(e)?W.createElement(ts,{key:"labelList-implicit",data:t,content:e}):qu(e)?W.createElement(ts,Qv({data:t},e,{key:"labelList-implicit"})):null:null}function Ele(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=na(r,ts).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var s=Ole(e.label,t);return[s].concat(gle(a))}ts.renderCallByParent=Ele;function Zf(e){"@babel/helpers - typeof";return Zf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zf(e)}function oN(){return oN=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(l>f),`, + `).concat(p.x,",").concat(p.y,` + `);if(a>0){var x=Gt(n,r,a,l),j=Gt(n,r,a,f);g+="L ".concat(j.x,",").concat(j.y,` + A `).concat(a,",").concat(a,`,0, + `).concat(+(Math.abs(d)>180),",").concat(+(l<=f),`, + `).concat(x.x,",").concat(x.y," Z")}else g+="L ".concat(n,",").concat(r," Z");return g},Ple=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,s=t.outerRadius,l=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,m=t.endAngle,p=br(m-f),g=Ip({cx:n,cy:r,radius:s,angle:f,sign:p,cornerRadius:l,cornerIsExternal:d}),x=g.circleTangency,j=g.lineTangency,w=g.theta,b=Ip({cx:n,cy:r,radius:s,angle:m,sign:-p,cornerRadius:l,cornerIsExternal:d}),N=b.circleTangency,E=b.lineTangency,O=b.theta,A=d?Math.abs(f-m):Math.abs(f-m)-w-O;if(A<0)return u?"M ".concat(j.x,",").concat(j.y,` + a`).concat(l,",").concat(l,",0,0,1,").concat(l*2,`,0 + a`).concat(l,",").concat(l,",0,0,1,").concat(-l*2,`,0 + `):X6({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:f,endAngle:m});var C="M ".concat(j.x,",").concat(j.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(x.x,",").concat(x.y,` + A`).concat(s,",").concat(s,",0,").concat(+(A>180),",").concat(+(p<0),",").concat(N.x,",").concat(N.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(E.x,",").concat(E.y,` + `);if(a>0){var k=Ip({cx:n,cy:r,radius:a,angle:f,sign:p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),T=k.circleTangency,M=k.lineTangency,R=k.theta,L=Ip({cx:n,cy:r,radius:a,angle:m,sign:-p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),$=L.circleTangency,H=L.lineTangency,V=L.theta,F=d?Math.abs(f-m):Math.abs(f-m)-R-V;if(F<0&&l===0)return"".concat(C,"L").concat(n,",").concat(r,"Z");C+="L".concat(H.x,",").concat(H.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat($.x,",").concat($.y,` + A`).concat(a,",").concat(a,",0,").concat(+(F>180),",").concat(+(p>0),",").concat(T.x,",").concat(T.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(M.x,",").concat(M.y,"Z")}else C+="L".concat(n,",").concat(r,"Z");return C},Rle={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Z6=function(t){var n=Z$(Z$({},Rle),t),r=n.cx,a=n.cy,s=n.innerRadius,l=n.outerRadius,u=n.cornerRadius,d=n.forceCornerRadius,f=n.cornerIsExternal,m=n.startAngle,p=n.endAngle,g=n.className;if(l0&&Math.abs(m-p)<360?b=Ple({cx:r,cy:a,innerRadius:s,outerRadius:l,cornerRadius:Math.min(w,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):b=X6({cx:r,cy:a,innerRadius:s,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",oN({},Be(n,!0),{className:x,d:b,role:"img"}))};function Qf(e){"@babel/helpers - typeof";return Qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qf(e)}function lN(){return lN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function Jle(e,t){return Cl(e.getTime(),t.getTime())}function ece(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function tce(e,t){return e===t}function l3(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.entries(),l,u,d=0;(l=s.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var nce=Cl;function rce(e,t,n){var r=o3(e),a=r.length;if(o3(t).length!==a)return!1;for(;a-- >0;)if(!Q6(e,t,n,r[a]))return!1;return!0}function sf(e,t,n){var r=i3(e),a=r.length;if(i3(t).length!==a)return!1;for(var s,l,u;a-- >0;)if(s=r[a],!Q6(e,t,n,s)||(l=s3(e,s),u=s3(t,s),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function ace(e,t){return Cl(e.valueOf(),t.valueOf())}function ice(e,t){return e.source===t.source&&e.flags===t.flags}function c3(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.values(),l,u;(l=s.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function sce(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function oce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function Q6(e,t,n,r){return(r===Zle||r===Xle||r===Kle)&&(e.$$typeof||t.$$typeof)?!0:Yle(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var lce="[object Arguments]",cce="[object Boolean]",uce="[object Date]",dce="[object Error]",fce="[object Map]",hce="[object Number]",mce="[object Object]",pce="[object RegExp]",vce="[object Set]",gce="[object String]",yce="[object URL]",xce=Array.isArray,u3=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,d3=Object.assign,bce=Object.prototype.toString.call.bind(Object.prototype.toString);function wce(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,s=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(w,b,N){if(w===b)return!0;if(w==null||b==null)return!1;var E=typeof w;if(E!==typeof b)return!1;if(E!=="object")return E==="number"?l(w,b,N):E==="function"?a(w,b,N):!1;var O=w.constructor;if(O!==b.constructor)return!1;if(O===Object)return u(w,b,N);if(xce(w))return t(w,b,N);if(u3!=null&&u3(w))return p(w,b,N);if(O===Date)return n(w,b,N);if(O===RegExp)return f(w,b,N);if(O===Map)return s(w,b,N);if(O===Set)return m(w,b,N);var A=bce(w);if(A===uce)return n(w,b,N);if(A===pce)return f(w,b,N);if(A===fce)return s(w,b,N);if(A===vce)return m(w,b,N);if(A===mce)return typeof w.then!="function"&&typeof b.then!="function"&&u(w,b,N);if(A===yce)return g(w,b,N);if(A===dce)return r(w,b,N);if(A===lce)return u(w,b,N);if(A===cce||A===hce||A===gce)return d(w,b,N);if(x){var C=x[A];if(!C){var k=Gle(w);k&&(C=x[k])}if(C)return C(w,b,N)}return!1}}function jce(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?sf:Qle,areDatesEqual:Jle,areErrorsEqual:ece,areFunctionsEqual:tce,areMapsEqual:r?a3(l3,sf):l3,areNumbersEqual:nce,areObjectsEqual:r?sf:rce,arePrimitiveWrappersEqual:ace,areRegExpsEqual:ice,areSetsEqual:r?a3(c3,sf):c3,areTypedArraysEqual:r?sf:sce,areUrlsEqual:oce,unknownTagComparators:void 0};if(n&&(a=d3({},a,n(a))),t){var s=Bp(a.areArraysEqual),l=Bp(a.areMapsEqual),u=Bp(a.areObjectsEqual),d=Bp(a.areSetsEqual);a=d3({},a,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function Sce(e){return function(t,n,r,a,s,l,u){return e(t,n,u)}}function _ce(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,s=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:s})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:s})};var l={cache:void 0,equals:a,meta:void 0,strict:s};return function(d,f){return n(d,f,l)}}var Nce=lo();lo({strict:!0});lo({circular:!0});lo({circular:!0,strict:!0});lo({createInternalComparator:function(){return Cl}});lo({strict:!0,createInternalComparator:function(){return Cl}});lo({circular:!0,createInternalComparator:function(){return Cl}});lo({circular:!0,createInternalComparator:function(){return Cl},strict:!0});function lo(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,s=e.strict,l=s===void 0?!1:s,u=jce(e),d=wce(u),f=r?r(d):Sce(d);return _ce({circular:n,comparator:d,createState:a,equals:f,strict:l})}function Cce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function f3(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>t?(e(s),n=-1):Cce(a)};requestAnimationFrame(r)}function cN(e){"@babel/helpers - typeof";return cN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cN(e)}function Oce(e){return kce(e)||Tce(e)||Ace(e)||Ece()}function Ece(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ace(e,t){if(e){if(typeof e=="string")return h3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h3(e,t)}}function h3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},w=function(N){for(var E=N>1?1:N,O=E,A=0;A<8;++A){var C=p(O)-E,k=x(O);if(Math.abs(C-E)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,s=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*s,w=g+(x-j)*u/1e3,b=g*u/1e3+m;return Math.abs(b-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function lue(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,s;for(s=0;s=0)&&(n[a]=e[a]);return n}function bS(e){return fue(e)||due(e)||uue(e)||cue()}function cue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uue(e,t){if(e){if(typeof e=="string")return mN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mN(e,t)}}function due(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fue(e){if(Array.isArray(e))return mN(e)}function mN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ng(e){return ng=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ng(e)}var gi=(function(e){gue(n,e);var t=yue(n);function n(r,a){var s;hue(this,n),s=t.call(this,r,a);var l=s.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(s.handleStyleChange=s.handleStyleChange.bind(gN(s)),s.changeStyle=s.changeStyle.bind(gN(s)),!u||x<=0)return s.state={style:{}},typeof g=="function"&&(s.state={style:m}),vN(s);if(p&&p.length)s.state={style:p[0].style};else if(f){if(typeof g=="function")return s.state={style:f},vN(s);s.state={style:d?hf({},d,f):f}}else s.state={style:{}};return s}return pue(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,l=a.canBegin;this.mounted=!0,!(!s||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,l=s.isActive,u=s.canBegin,d=s.attributeName,f=s.shouldReAnimate,m=s.to,p=s.from,g=this.state.style;if(u){if(!l){var x={style:d?hf({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(Nce(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=j||f?p:a.to;if(this.state&&g){var b={style:d?hf({},d,w):w};(d&&g[d]!==w||!d&&g!==w)&&this.setState(b)}this.runAnimation(Pa(Pa({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=iue(l,u,Yce(f),d,this.changeStyle),j=function(){s.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var s=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(w,b,N){if(N===0)return w;var E=b.duration,O=b.easing,A=O===void 0?"ease":O,C=b.style,k=b.properties,T=b.onAnimationEnd,M=N>0?l[N-1]:b,R=k||Object.keys(C);if(typeof A=="function"||A==="spring")return[].concat(bS(w),[s.runJSAnimation.bind(s,{from:M.style,to:C,duration:E,easing:A}),E]);var L=v3(R,E,A),$=Pa(Pa(Pa({},M.style),C),{},{transition:L});return[].concat(bS(w),[$,E,T]).filter($ce)};return this.manager.start([d].concat(bS(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=Mce());var s=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var w=u?hf({},u,d):d,b=v3(Object.keys(w),l,f);j.start([m,s,Pa(Pa({},w),{},{transition:b}),l,p])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=oue(a,sue),f=y.Children.count(s),m=this.state.style;if(typeof s=="function")return s(m);if(!u||f===0||l<=0)return s;var p=function(x){var j=x.props,w=j.style,b=w===void 0?{}:w,N=j.className,E=y.cloneElement(x,Pa(Pa({},d),{},{style:Pa(Pa({},b),m),className:N}));return E};return f===1?p(y.Children.only(s)):W.createElement("div",null,y.Children.map(s,function(g){return p(g)}))}}]),n})(y.PureComponent);gi.displayName="Animate";gi.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};gi.propTypes={from:bt.oneOfType([bt.object,bt.string]),to:bt.oneOfType([bt.object,bt.string]),attributeName:bt.string,duration:bt.number,begin:bt.number,easing:bt.oneOfType([bt.string,bt.func]),steps:bt.arrayOf(bt.shape({duration:bt.number.isRequired,style:bt.object.isRequired,easing:bt.oneOfType([bt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),bt.func]),properties:bt.arrayOf("string"),onAnimationEnd:bt.func})),children:bt.oneOfType([bt.node,bt.func]),isActive:bt.bool,canBegin:bt.bool,onAnimationEnd:bt.func,shouldReAnimate:bt.bool,onAnimationStart:bt.func,onAnimationReStart:bt.func};function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function rg(){return rg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,d=r>=0?1:-1,f=a>=0&&r>=0||a<0&&r<0?1:0,m;if(l>0&&s instanceof Array){for(var p=[0,0,0,0],g=0,x=4;gl?l:s[g];m="M".concat(t,",").concat(n+u*p[0]),p[0]>0&&(m+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(f,",").concat(t+d*p[0],",").concat(n)),m+="L ".concat(t+r-d*p[1],",").concat(n),p[1]>0&&(m+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(f,`, + `).concat(t+r,",").concat(n+u*p[1])),m+="L ".concat(t+r,",").concat(n+a-u*p[2]),p[2]>0&&(m+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(f,`, + `).concat(t+r-d*p[2],",").concat(n+a)),m+="L ".concat(t+d*p[3],",").concat(n+a),p[3]>0&&(m+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(f,`, + `).concat(t,",").concat(n+a-u*p[3])),m+="Z"}else if(l>0&&s===+s&&s>0){var j=Math.min(l,s);m="M ".concat(t,",").concat(n+u*j,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+d*j,",").concat(n,` + L `).concat(t+r-d*j,",").concat(n,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r,",").concat(n+u*j,` + L `).concat(t+r,",").concat(n+a-u*j,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r-d*j,",").concat(n+a,` + L `).concat(t+d*j,",").concat(n+a,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t,",").concat(n+a-u*j," Z")}else m="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return m},Eue=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,s=n.x,l=n.y,u=n.width,d=n.height;if(Math.abs(u)>0&&Math.abs(d)>0){var f=Math.min(s,s+u),m=Math.max(s,s+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},Aue={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},FO=function(t){var n=_3(_3({},Aue),t),r=y.useRef(),a=y.useState(-1),s=bue(a,2),l=s[0],u=s[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var A=r.current.getTotalLength();A&&u(A)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,w=n.animationDuration,b=n.animationBegin,N=n.isAnimationActive,E=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var O=Ye("recharts-rectangle",x);return E?W.createElement(gi,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:w,animationEasing:j,isActive:E},function(A){var C=A.width,k=A.height,T=A.x,M=A.y;return W.createElement(gi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,isActive:N,easing:j},W.createElement("path",rg({},Be(n,!0),{className:O,d:N3(T,M,C,k,g),ref:r})))}):W.createElement("path",rg({},Be(n,!0),{className:O,d:N3(d,f,m,p,g)}))},Tue=["points","className","baseLinePoints","connectNulls"];function Bc(){return Bc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Mue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function C3(e){return $ue(e)||Due(e)||Rue(e)||Pue()}function Pue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Rue(e,t){if(e){if(typeof e=="string")return yN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return yN(e,t)}}function Due(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function $ue(e){if(Array.isArray(e))return yN(e)}function yN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){O3(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),O3(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Cf=function(t,n){var r=Iue(t);n&&(r=[r.reduce(function(s,l){return[].concat(C3(s),C3(l))},[])]);var a=r.map(function(s){return s.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},Lue=function(t,n,r){var a=Cf(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Cf(n.reverse(),r).slice(1))},Bue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,s=t.connectNulls,l=kue(t,Tue);if(!n||!n.length)return null;var u=Ye("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=Lue(n,a,s);return W.createElement("g",{className:u},W.createElement("path",Bc({},Be(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Bc({},Be(l,!0),{fill:"none",d:Cf(n,s)})):null,d?W.createElement("path",Bc({},Be(l,!0),{fill:"none",d:Cf(a,s)})):null)}var m=Cf(n,s);return W.createElement("path",Bc({},Be(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function xN(){return xN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Vue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Gue=function(t,n,r,a,s,l){return"M".concat(t,",").concat(s,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},Yue=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,w=Wue(t,zue),b=que({x:r,y:s,top:u,left:f,width:p,height:x},w);return!Ce(r)||!Ce(s)||!Ce(p)||!Ce(x)||!Ce(u)||!Ce(f)?null:W.createElement("path",bN({},Be(b,!0),{className:Ye("recharts-cross",j),d:Gue(r,s,p,x,u,f)}))},wS,A3;function Kue(){if(A3)return wS;A3=1;var e=my(),t=x6(),n=wi();function r(a,s){return a&&a.length?e(a,n(s,2),t):void 0}return wS=r,wS}var Xue=Kue();const Zue=St(Xue);var jS,T3;function Que(){if(T3)return jS;T3=1;var e=my(),t=wi(),n=b6();function r(a,s){return a&&a.length?e(a,t(s,2),n):void 0}return jS=r,jS}var Jue=Que();const ede=St(Jue);var tde=["cx","cy","angle","ticks","axisLine"],nde=["ticks","tick","angle","tickFormatter","stroke"];function mu(e){"@babel/helpers - typeof";return mu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mu(e)}function Of(){return Of=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function rde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ade(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P3(e,t){for(var n=0;n$3?l=a==="outer"?"start":"end":s<-$3?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,s=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=qo(qo({},Be(this.props,!1)),{},{fill:"none"},Be(u,!1));if(d==="circle")return W.createElement(xy,Wo({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:s,r:l}));var m=this.props.ticks,p=m.map(function(g){return Gt(a,s,l,g.coordinate)});return W.createElement(Bue,Wo({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,s=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=Be(this.props,!1),p=Be(l,!1),g=qo(qo({},m),{},{fill:"none"},Be(u,!1)),x=s.map(function(j,w){var b=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),E=qo(qo(qo({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:w,payload:j,x:b.x2,y:b.y2});return W.createElement(pt,Wo({className:Ye("recharts-polar-angle-axis-tick",Y6(l)),key:"tick-".concat(j.coordinate)},fl(r.props,j,w)),u&&W.createElement("line",Wo({className:"recharts-polar-angle-axis-tick-line"},g,b)),l&&t.renderTickItem(l,E,d?d(j.value,w):j.value))});return W.createElement(pt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,s=r.radius,l=r.axisLine;return s<=0||!a||!a.length?null:W.createElement(pt,{className:Ye("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,s){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):We(r)?l=r(a):l=W.createElement(hl,Wo({},a,{className:"recharts-polar-angle-axis-tick-value"}),s),l}}])})(y.PureComponent);jy(Sy,"displayName","PolarAngleAxis");jy(Sy,"axisType","angleAxis");jy(Sy,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var SS,I3;function xde(){if(I3)return SS;I3=1;var e=yz(),t=e(Object.getPrototypeOf,Object);return SS=t,SS}var _S,L3;function bde(){if(L3)return _S;L3=1;var e=ls(),t=xde(),n=cs(),r="[object Object]",a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return _S=f,_S}var wde=bde();const jde=St(wde);var NS,B3;function Sde(){if(B3)return NS;B3=1;var e=ls(),t=cs(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return NS=r,NS}var _de=Sde();const Nde=St(_de);function rh(e){"@babel/helpers - typeof";return rh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rh(e)}function sg(){return sg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:w,animationEasing:j,isActive:N},function(O){var A=O.upperWidth,C=O.lowerWidth,k=O.height,T=O.x,M=O.y;return W.createElement(gi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,easing:j},W.createElement("path",sg({},Be(n,!0),{className:E,d:U3(T,M,A,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",sg({},Be(n,!0),{className:E,d:U3(d,f,m,p,g)})))},$de=["option","shapeType","propTransformer","activeClassName","isActive"];function ah(e){"@babel/helpers - typeof";return ah=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ah(e)}function Ide(e,t){if(e==null)return{};var n=Lde(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function H3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function og(e){for(var t=1;t0?ta(O,"paddingAngle",0):0;if(C){var T=Qr(C.endAngle-C.startAngle,O.endAngle-O.startAngle),M=Ut(Ut({},O),{},{startAngle:E+k,endAngle:E+T(w)+k});b.push(M),E=M.endAngle}else{var R=O.endAngle,L=O.startAngle,$=Qr(0,R-L),H=$(w),V=Ut(Ut({},O),{},{startAngle:E+k,endAngle:E+H+k});b.push(V),E=V.endAngle}}),W.createElement(pt,null,r.renderSectorsStatically(b))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(s){if(!s.altKey)switch(s.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,s=r.isAnimationActive,l=this.state.prevSectors;return s&&a&&a.length&&(!l||!Lh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,s=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(s||!l||!l.length||!Ce(f)||!Ce(m)||!Ce(p)||!Ce(g))return null;var w=Ye("recharts-pie",u);return W.createElement(pt,{tabIndex:this.props.rootTabIndex,className:w,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),qn.renderCallByParent(this.props,null,!1),(!x||j)&&ts.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r=360?E:E-1)*d,A=b-E*x-O,C=a.reduce(function(M,R){var L=kn(R,N,0);return M+(Ce(L)?L:0)},0),k;if(C>0){var T;k=a.map(function(M,R){var L=kn(M,N,0),$=kn(M,m,R),H=(Ce(L)?L:0)/C,V;R?V=T.endAngle+br(w)*d*(L!==0?1:0):V=l;var F=V+br(w)*((L!==0?x:0)+H*A),G=(V+F)/2,B=(j.innerRadius+j.outerRadius)/2,D=[{name:$,value:L,payload:M,dataKey:N,type:g}],U=Gt(j.cx,j.cy,B,G);return T=Ut(Ut(Ut({percent:H,cornerRadius:s,name:$,tooltipPayload:D,midAngle:G,middleRadius:B,tooltipPosition:U},M),j),{},{value:kn(M,N),startAngle:V,endAngle:F,payload:M,paddingAngle:br(w)*d}),T})}return Ut(Ut({},j),{},{sectors:k,data:a})});var CS,Y3;function ife(){if(Y3)return CS;Y3=1;var e=Math.ceil,t=Math.max;function n(r,a,s,l){for(var u=-1,d=t(e((a-r)/(s||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=s;return f}return CS=n,CS}var OS,K3;function fq(){if(K3)return OS;K3=1;var e=Rz(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var s=a<0?-1:1;return s*n}return a===a?a:0}return OS=r,OS}var ES,X3;function sfe(){if(X3)return ES;X3=1;var e=ife(),t=sy(),n=fq();function r(a){return function(s,l,u){return u&&typeof u!="number"&&t(s,l,u)&&(l=u=void 0),s=n(s),l===void 0?(l=s,s=0):l=n(l),u=u===void 0?s0&&r.handleDrag(a.changedTouches[0])}),Yr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:s,startIndex:u})}),r.detachDragEndListener()}),Yr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Yr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Yr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Yr(r,"handleSlideDragStart",function(a){var s=nI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return yfe(t,e),mfe(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,s),g=Math.max(a,s),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,l=a.tickFormatter,u=a.dataKey,d=kn(s[r],u,r);return We(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,w=r.pageX-s;w>0?w=Math.min(w,f+m-p-u,f+m-p-l):w<0&&(w=Math.max(w,f-l,f-u));var b=this.getIndex({startX:l+w,endX:u+w});(b.startIndex!==g||b.endIndex!==x)&&j&&j(b),this.setState({startX:l+w,endX:u+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=nI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,w=m.gap,b=m.data,N={startX:this.state.startX,endX:this.state.endX},E=r.pageX-s;E>0?E=Math.min(E,p+g-x-f):E<0&&(E=Math.max(E,p-f)),N[l]=f+E;var O=this.getIndex(N),A=O.startIndex,C=O.endIndex,k=function(){var M=b.length-1;return l==="startX"&&(u>d?A%w===0:C%w===0)||ud?C%w===0:A%w===0)||u>d&&C===M};this.setState(Yr(Yr({},l,f+E),"brushMoveStartX",r.pageX),function(){j&&k()&&j(O)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Yr({},a,x),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:s,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:s,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,w=d.startIndex,b=d.endIndex,N=Math.max(r,this.props.x),E=TS(TS({},Be(this.props,!1)),{},{x:N,y:f,width:m,height:p}),O=x||"Min value: ".concat((s=j[w])===null||s===void 0?void 0:s.name,", Max value: ").concat((l=j[b])===null||l===void 0?void 0:l.name);return W.createElement(pt,{tabIndex:0,role:"slider","aria-label":O,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,E))}},{key:"renderSlide",value:function(r,a){var s=this.props,l=s.y,u=s.height,d=s.stroke,f=s.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(pt,{className:"recharts-brush-texts"},W.createElement(hl,ug({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(hl,ug({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,w=g.isTextActive,b=g.isSlideMoving,N=g.isTravellerMoving,E=g.isTravellerFocused;if(!a||!a.length||!Ce(u)||!Ce(d)||!Ce(f)||!Ce(m)||f<=0||m<=0)return null;var O=Ye("recharts-brush",s),A=W.Children.count(l)===1,C=ffe("userSelect","none");return W.createElement(pt,{className:O,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(w||b||N||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(s+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:s,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return W.isValidElement(r)?s=W.cloneElement(r,a):We(r)?s=r(a):s=t.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(s!==a.prevData||f!==a.prevUpdateId)return TS({prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},s&&s.length?bfe({data:s,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,l=0,u=s-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Yr(yu,"displayName","Brush");Yr(yu,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var kS,rI;function wfe(){if(rI)return kS;rI=1;var e=mO();function t(n,r){var a;return e(n,function(s,l,u){return a=r(s,l,u),!a}),!!a}return kS=t,kS}var MS,aI;function jfe(){if(aI)return MS;aI=1;var e=dz(),t=wi(),n=wfe(),r=Lr(),a=sy();function s(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return MS=s,MS}var Sfe=jfe();const _fe=St(Sfe);var hi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},PS,iI;function Nfe(){if(iI)return PS;iI=1;var e=Az();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return PS=t,PS}var RS,sI;function Cfe(){if(sI)return RS;sI=1;var e=Nfe(),t=Oz(),n=wi();function r(a,s){var l={};return s=n(s,3),t(a,function(u,d,f){e(l,d,s(u,d,f))}),l}return RS=r,RS}var Ofe=Cfe();const Efe=St(Ofe);var DS,oI;function Afe(){if(oI)return DS;oI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Bfe(e,t){var n=e.x,r=e.y,a=Ife(e,Pfe),s="".concat(n),l=parseInt(s,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return of(of(of(of(of({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function dI(e){return W.createElement(cq,NN({shapeType:"rectangle",propTransformer:Bfe,activeClassName:"recharts-active-bar"},e))}var zfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var s=Ce(r)||cJ(r);return s?t(r,a):(s||ur(!1),n)}},qfe=["value","background"],gq;function xu(e){"@babel/helpers - typeof";return xu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xu(e)}function Ffe(e,t){if(e==null)return{};var n=Ufe(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ufe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function fg(){return fg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(F)0&&(V=Math.min((ne||0)-(F[se-1]||0),V))}),Number.isFinite(V)){var G=V/H,B=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(T=G*B/2),w.padding==="no-gap"){var D=wr(t.barCategoryGap,G*B),U=G*B/2;T=U-D-(U-D)/B*D}}}a==="xAxis"?M=[r.left+(O.left||0)+(T||0),r.left+r.width-(O.right||0)-(T||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(O.bottom||0),r.top+(O.top||0)]:[r.top+(O.top||0)+(T||0),r.top+r.height-(O.bottom||0)-(T||0)]:M=w.range,C&&(M=[M[1],M[0]]);var K=q6(w,s,g),te=K.scale,I=K.realScaleType;te.domain(N).range(M),F6(te);var z=U6(te,Ia(Ia({},w),{},{realScaleType:I}));a==="xAxis"?($=b==="top"&&!A||b==="bottom"&&A,R=r.left,L=p[k]-$*w.height):a==="yAxis"&&($=b==="left"&&!A||b==="right"&&A,R=p[k]-$*w.width,L=r.top);var Y=Ia(Ia(Ia({},w),z),{},{realScaleType:I,x:R,y:L,scale:te,width:a==="xAxis"?r.width:w.width,height:a==="yAxis"?r.height:w.height});return Y.bandSize=Xv(Y,z),!w.hide&&a==="xAxis"?p[k]+=($?-1:1)*Y.height:w.hide||(p[k]+=($?-1:1)*Y.width),Ia(Ia({},x),{},Cy({},j,Y))},{})},jq=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return{x:Math.min(r,s),y:Math.min(a,l),width:Math.abs(s-r),height:Math.abs(l-a)}},ehe=function(t){var n=t.x1,r=t.y1,a=t.x2,s=t.y2;return jq({x:n,y:r},{x:a,y:s})},Sq=(function(){function e(t){Zfe(this,e),this.scale=t}return Qfe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();Cy(Sq,"EPS",1e-4);var UO=function(t){var n=Object.keys(t).reduce(function(r,a){return Ia(Ia({},r),{},Cy({},a,Sq.create(t[a])))},{});return Ia(Ia({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=s.bandAware,u=s.position;return Efe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return vq(a,function(s,l){return n[l].isInRange(s)})}})};function the(e){return(e%180+180)%180}var nhe=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=the(a),l=s*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?s[m]:m]:void 0}}return LS=r,LS}var BS,gI;function ahe(){if(gI)return BS;gI=1;var e=fq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return BS=t,BS}var zS,yI;function ihe(){if(yI)return zS;yI=1;var e=jz(),t=wi(),n=ahe(),r=Math.max;function a(s,l,u){var d=s==null?0:s.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(s,t(l,3),f)}return zS=a,zS}var qS,xI;function she(){if(xI)return qS;xI=1;var e=rhe(),t=ihe(),n=e(t);return qS=n,qS}var ohe=she();const lhe=St(ohe);var che=LB();const uhe=St(che);var dhe=uhe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),HO=y.createContext(void 0),WO=y.createContext(void 0),_q=y.createContext(void 0),Nq=y.createContext({}),Cq=y.createContext(void 0),Oq=y.createContext(0),Eq=y.createContext(0),bI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=dhe(s);return W.createElement(HO.Provider,{value:r},W.createElement(WO.Provider,{value:a},W.createElement(Nq.Provider,{value:s},W.createElement(_q.Provider,{value:m},W.createElement(Cq.Provider,{value:l},W.createElement(Oq.Provider,{value:f},W.createElement(Eq.Provider,{value:d},u)))))))},fhe=function(){return y.useContext(Cq)},Aq=function(t){var n=y.useContext(HO);n==null&&ur(!1);var r=n[t];return r==null&&ur(!1),r},hhe=function(){var t=y.useContext(HO);return qs(t)},mhe=function(){var t=y.useContext(WO),n=lhe(t,function(r){return vq(r.domain,Number.isFinite)});return n||qs(t)},Tq=function(t){var n=y.useContext(WO);n==null&&ur(!1);var r=n[t];return r==null&&ur(!1),r},phe=function(){var t=y.useContext(_q);return t},vhe=function(){return y.useContext(Nq)},VO=function(){return y.useContext(Eq)},GO=function(){return y.useContext(Oq)};function bu(e){"@babel/helpers - typeof";return bu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bu(e)}function ghe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yhe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var s=n();return e*(t-e*s/2-r)>=0&&e*(t+e*s/2-a)<=0}function Jhe(e,t){return Iq(e,t+1)}function eme(e,t,n,r,a){for(var s=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Iq(r,f)};var w=d,b,N=function(){return b===void 0&&(b=n(j,w)),b},E=j.coordinate,O=d===0||gg(e,E,N,m,u);O||(d=0,m=l,f+=1),O&&(m=E+e*(N()/2+a),d+=f)},g;f<=s.length;)if(g=p(),g)return g.v;return[]}function ch(e){"@babel/helpers - typeof";return ch=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ch(e)}function EI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function sr(e){for(var t=1;t0?x.coordinate-b*e:x.coordinate})}else s[g]=x=sr(sr({},x),{},{tickCoord:x.coordinate});var N=gg(e,x.tickCoord,w,u,d);N&&(d=x.tickCoord-e*(w()/2+a),s[g]=sr(sr({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return s}function ime(e,t,n,r,a,s){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(s){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=sr(sr({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=gg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=sr(sr({},m),{},{isShow:!0}))}for(var j=s?u-1:u,w=function(E){var O=l[E],A,C=function(){return A===void 0&&(A=n(O,E)),A};if(E===0){var k=e*(O.coordinate-e*C()/2-d);l[E]=O=sr(sr({},O),{},{tickCoord:k<0?O.coordinate-k*e:O.coordinate})}else l[E]=O=sr(sr({},O),{},{tickCoord:O.coordinate});var T=gg(e,O.tickCoord,C,d,f);T&&(d=O.tickCoord+e*(C()/2+a),l[E]=sr(sr({},O),{},{isShow:!0}))},b=0;b=2?br(a[1].coordinate-a[0].coordinate):1,N=Qhe(s,b,x);return d==="equidistantPreserveStart"?eme(b,N,w,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=ime(b,N,w,a,l,d==="preserveStartEnd"):g=ame(b,N,w,a,l),g.filter(function(E){return E.isShow}))}var sme=["viewBox"],ome=["viewBox"],lme=["ticks"];function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function qc(){return qc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function cme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ume(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function TI(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(pt,{className:Ye("recharts-cartesian-axis",f),ref:function(b){r.layerReference=b}},s&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),qn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var l,u=Ye(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,An(An({},a),{},{className:u})):We(r)?l=r(An(An({},a),{},{className:u})):l=W.createElement(hl,qc({},a,{className:"recharts-cartesian-axis-tick-value"}),s),l}}])})(y.Component);ZO(Gu,"displayName","CartesianAxis");ZO(Gu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var gme=["x1","y1","x2","y2","key"],yme=["offset"];function pl(e){"@babel/helpers - typeof";return pl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pl(e)}function kI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function lr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Sme=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,s=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:s,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function zq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(We(e))n=e(t);else{var r=t.x1,a=t.y1,s=t.x2,l=t.y2,u=t.key,d=MI(t,gme),f=Be(d,!1);f.offset;var m=MI(f,yme);n=W.createElement("line",Xo({},m,{x1:r,y1:a,x2:s,y2:l,fill:"none",key:u}))}return n}function _me(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,s=e.horizontalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=lr(lr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return zq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function Nme(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,s=e.verticalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=lr(lr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return zq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Cme(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,s=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?a+l-g:m[x+1]-g;if(w<=0)return null;var b=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:w,width:s,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function Ome(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,s=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+s-s)}).sort(function(g,x){return g-x});s!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?s+u-g:m[x+1]-g;if(w<=0)return null;var b=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:w,height:d,stroke:"none",fill:r[b],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Eme=function(t,n){var r=t.xAxis,a=t.width,s=t.height,l=t.offset;return z6(XO(lr(lr(lr({},Gu.defaultProps),r),{},{ticks:Ki(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.left,l.left+l.width,n)},Ame=function(t,n){var r=t.yAxis,a=t.width,s=t.height,l=t.offset;return z6(XO(lr(lr(lr({},Gu.defaultProps),r),{},{ticks:Ki(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.top,l.top+l.height,n)},_c={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function mf(e){var t,n,r,a,s,l,u=VO(),d=GO(),f=vhe(),m=lr(lr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:_c.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:_c.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:_c.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:_c.horizontalFill,vertical:(s=e.vertical)!==null&&s!==void 0?s:_c.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:_c.verticalFill,x:Ce(e.x)?e.x:f.left,y:Ce(e.y)?e.y:f.top,width:Ce(e.width)?e.width:f.width,height:Ce(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,w=m.syncWithTicks,b=m.horizontalValues,N=m.verticalValues,E=hhe(),O=mhe();if(!Ce(x)||x<=0||!Ce(j)||j<=0||!Ce(p)||p!==+p||!Ce(g)||g!==+g)return null;var A=m.verticalCoordinatesGenerator||Eme,C=m.horizontalCoordinatesGenerator||Ame,k=m.horizontalPoints,T=m.verticalPoints;if((!k||!k.length)&&We(C)){var M=b&&b.length,R=C({yAxis:O?lr(lr({},O),{},{ticks:M?b:O.ticks}):void 0,width:u,height:d,offset:f},M?!0:w);qa(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(pl(R),"]")),Array.isArray(R)&&(k=R)}if((!T||!T.length)&&We(A)){var L=N&&N.length,$=A({xAxis:E?lr(lr({},E),{},{ticks:L?N:E.ticks}):void 0,width:u,height:d,offset:f},L?!0:w);qa(Array.isArray($),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(pl($),"]")),Array.isArray($)&&(T=$)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Sme,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(_me,Xo({},m,{offset:f,horizontalPoints:k,xAxis:E,yAxis:O})),W.createElement(Nme,Xo({},m,{offset:f,verticalPoints:T,xAxis:E,yAxis:O})),W.createElement(Cme,Xo({},m,{horizontalPoints:k})),W.createElement(Ome,Xo({},m,{verticalPoints:T})))}mf.displayName="CartesianGrid";var Tme=["type","layout","connectNulls","ref"],kme=["key"];function _u(e){"@babel/helpers - typeof";return _u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_u(e)}function PI(e,t){if(e==null)return{};var n=Mme(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Mme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ef(){return Ef=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Nc(d.slice(0,j)),[p-w]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(Nc(t.repeat(d,m)),Nc(x),b).map(function(N){return"".concat(N,"px")}).join(", ")}),La(n,"id",Fu("recharts-line-")),La(n,"pathRef",function(l){n.mainCurve=l}),La(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),La(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Fme(t,e),Lme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.points,u=s.xAxis,d=s.yAxis,f=s.layout,m=s.children,p=na(m,Bh);if(!p)return null;var g=function(w,b){return{x:w.x,y:w.y,value:w.value,errorVal:kn(w.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(pt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,s){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=Be(this.props,!1),g=Be(d,!0),x=f.map(function(w,b){var N=Gr(Gr(Gr({key:"dot-".concat(b),r:3},p),g),{},{index:b,cx:w.x,cy:w.y,value:w.value,dataKey:m,payload:w.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return W.createElement(pt,Ef({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,s,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=PI(u,Tme),g=Gr(Gr(Gr({},Be(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(Jv,Ef({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,w=l.width,b=l.height,N=this.state,E=N.prevPoints,O=N.totalLength;return W.createElement(gi,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(A){var C=A.t;if(E){var k=E.length/u.length,T=u.map(function(H,V){var F=Math.floor(V*k);if(E[F]){var G=E[F],B=Qr(G.x,H.x),D=Qr(G.y,H.y);return Gr(Gr({},H),{},{x:B(C),y:D(C)})}if(j){var U=Qr(w*2,H.x),K=Qr(b/2,H.y);return Gr(Gr({},H),{},{x:U(C),y:K(C)})}return Gr(Gr({},H),{},{x:H.x,y:H.y})});return s.renderCurveStatically(T,r,a)}var M=Qr(0,O),R=M(C),L;if(d){var $="".concat(d).split(/[,\s]+/gim).map(function(H){return parseFloat(H)});L=s.getStrokeDasharray(R,O,$)}else L=s.generateSimpleStrokeDasharray(O,R);return s.renderCurveStatically(u,r,a,{strokeDasharray:L})})}},{key:"renderCurve",value:function(r,a){var s=this.props,l=s.points,u=s.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Lh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,w=a.isAnimationActive,b=a.id;if(s||!u||!u.length)return null;var N=this.state.isAnimationFinished,E=u.length===1,O=Ye("recharts-line",d),A=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=A||C,T=Ge(b)?this.id:b,M=(r=Be(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},R=M.r,L=R===void 0?3:R,$=M.strokeWidth,H=$===void 0?2:$,V=wJ(l)?l:{},F=V.clipDot,G=F===void 0?!0:F,B=L*2+H;return W.createElement(pt,{className:O},A||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(T)},W.createElement("rect",{x:A?g:g-x/2,y:C?p:p-j/2,width:A?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(T)},W.createElement("rect",{x:g-B/2,y:p-B/2,width:x+B,height:j+B}))):null,!E&&this.renderCurve(k,T),this.renderErrorBar(k,T),(E||l)&&this.renderDots(k,G,T),(!w||N)&&ts.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Nc(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Mpe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ppe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Rpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ce(a)&&Ce(s)?t.slice(a,s+1):[]};function tF(e){return e==="number"?[0,"auto"]:void 0}var HN=function(t,n,r,a){var s=t.graphicalItems,l=t.tooltipAxis,u=ky(n,t);return r<0||!s||!s.length||r>=u.length?null:s.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=Nv(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(Eu(d),[W6(f,g)]):d},[])},FI=function(t,n,r,a){var s=a||{x:t.chartX,y:t.chartY},l=Vpe(s,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=yoe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=HN(t,n,m,p),x=Gpe(r,u,m,s);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},Ype=function(t,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=B6(m,s);return r.reduce(function(j,w){var b,N=w.type.defaultProps!==void 0?ye(ye({},w.type.defaultProps),w.props):w.props,E=N.type,O=N.dataKey,A=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,T=N.ticks,M=N.includeHidden,R=N[l];if(j[R])return j;var L=ky(t.data,{graphicalItems:a.filter(function(z){var Y,ne=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l];return ne===R}),dataStartIndex:d,dataEndIndex:f}),$=L.length,H,V,F;bpe(N.domain,A,E)&&(H=aN(N.domain,null,A),x&&(E==="number"||k!=="auto")&&(F=_f(L,O,"category")));var G=tF(E);if(!H||H.length===0){var B,D=(B=N.domain)!==null&&B!==void 0?B:G;if(O){if(H=_f(L,O,E),E==="category"&&x){var U=dJ(H);C&&U?(V=H,H=cg(0,$)):C||(H=q$(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0?z:[].concat(Eu(z),[Y])},[]))}else if(E==="category")C?H=H.filter(function(z){return z!==""&&!Ge(z)}):H=q$(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0||Y===""||Ge(Y)?z:[].concat(Eu(z),[Y])},[]);else if(E==="number"){var K=Soe(L,a.filter(function(z){var Y,ne,se=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l],xe="hide"in z.props?z.props.hide:(ne=z.type.defaultProps)===null||ne===void 0?void 0:ne.hide;return se===R&&(M||!xe)}),O,s,m);K&&(H=K)}x&&(E==="number"||k!=="auto")&&(F=_f(L,O,"category"))}else x?H=cg(0,$):u&&u[R]&&u[R].hasStack&&E==="number"?H=g==="expand"?[0,1]:H6(u[R].stackGroups,d,f):H=L6(L,a.filter(function(z){var Y=l in z.props?z.props[l]:z.type.defaultProps[l],ne="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return Y===R&&(M||!ne)}),E,m,!0);if(E==="number")H=qN(p,H,R,s,T),D&&(H=aN(D,H,A));else if(E==="category"&&D){var te=D,I=H.every(function(z){return te.indexOf(z)>=0});I&&(H=te)}}return ye(ye({},j),{},Fe({},R,ye(ye({},N),{},{axisType:s,domain:H,categoricalDomain:F,duplicateDomain:V,originalDomain:(b=N.domain)!==null&&b!==void 0?b:G,isCategorical:x,layout:m})))},{})},Kpe=function(t,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=ky(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=B6(m,s),w=-1;return r.reduce(function(b,N){var E=N.type.defaultProps!==void 0?ye(ye({},N.type.defaultProps),N.props):N.props,O=E[l],A=tF("number");if(!b[O]){w++;var C;return j?C=cg(0,x):u&&u[O]&&u[O].hasStack?(C=H6(u[O].stackGroups,d,f),C=qN(p,C,O,s)):(C=aN(A,L6(g,r.filter(function(k){var T,M,R=l in k.props?k.props[l]:(T=k.type.defaultProps)===null||T===void 0?void 0:T[l],L="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return R===O&&!L}),"number",m),a.defaultProps.allowDataOverflow),C=qN(p,C,O,s)),ye(ye({},b),{},Fe({},O,ye(ye({axisType:s},a.defaultProps),{},{hide:!0,orientation:ta(Hpe,"".concat(s,".").concat(w%2),null),domain:C,originalDomain:A,isCategorical:j,layout:m})))}return b},{})},Xpe=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=na(m,s),x={};return g&&g.length?x=Ype(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=Kpe(t,{Axis:s,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},Zpe=function(t){var n=qs(t),r=Ki(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:pO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Xv(n,r)}},UI=function(t){var n=t.children,r=t.defaultShowTooltip,a=Kr(n,yu),s=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},Qpe=function(t){return!t||!t.length?!1:t.some(function(n){var r=Ji(n&&n.type);return r&&r.indexOf("Bar")>=0})},HI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},Jpe=function(t,n){var r=t.props,a=t.graphicalItems,s=t.xAxisMap,l=s===void 0?{}:s,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=Kr(p,yu),j=Kr(p,nl),w=Object.keys(d).reduce(function(C,k){var T=d[k],M=T.orientation;return!T.mirror&&!T.hide?ye(ye({},C),{},Fe({},M,C[M]+T.width)):C},{left:g.left||0,right:g.right||0}),b=Object.keys(l).reduce(function(C,k){var T=l[k],M=T.orientation;return!T.mirror&&!T.hide?ye(ye({},C),{},Fe({},M,ta(C,"".concat(M))+T.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ye(ye({},b),w),E=N.bottom;x&&(N.bottom+=x.props.height||yu.defaultProps.height),j&&n&&(N=woe(N,a,r,n));var O=f-N.left-N.right,A=m-N.top-N.bottom;return ye(ye({brushBottom:E},N),{},{width:Math.max(O,0),height:Math.max(A,0)})},eve=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},QO=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,s=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,E){var O=E.graphicalItems,A=E.stackGroups,C=E.offset,k=E.updateId,T=E.dataStartIndex,M=E.dataEndIndex,R=N.barSize,L=N.layout,$=N.barGap,H=N.barCategoryGap,V=N.maxBarSize,F=HI(L),G=F.numericAxisName,B=F.cateAxisName,D=Qpe(O),U=[];return O.forEach(function(K,te){var I=ky(N.data,{graphicalItems:[K],dataStartIndex:T,dataEndIndex:M}),z=K.type.defaultProps!==void 0?ye(ye({},K.type.defaultProps),K.props):K.props,Y=z.dataKey,ne=z.maxBarSize,se=z["".concat(G,"Id")],xe=z["".concat(B,"Id")],ee={},ae=d.reduce(function(rr,gr){var ct=E["".concat(gr.axisType,"Map")],rt=z["".concat(gr.axisType,"Id")];ct&&ct[rt]||gr.axisType==="zAxis"||ur(!1);var $n=ct[rt];return ye(ye({},rr),{},Fe(Fe({},gr.axisType,$n),"".concat(gr.axisType,"Ticks"),Ki($n)))},ee),Z=ae[B],ve=ae["".concat(B,"Ticks")],je=A&&A[se]&&A[se].hasStack&&Moe(K,A[se].stackGroups),le=Ji(K.type).indexOf("Bar")>=0,Re=Xv(Z,ve),_e=[],fe=D&&xoe({barSize:R,stackGroups:A,totalSize:eve(ae,B)});if(le){var pe,Le,It=Ge(ne)?V:ne,Cn=(pe=(Le=Xv(Z,ve,!0))!==null&&Le!==void 0?Le:It)!==null&&pe!==void 0?pe:0;_e=boe({barGap:$,barCategoryGap:H,bandSize:Cn!==Re?Cn:Re,sizeList:fe[xe],maxBarSize:It}),Cn!==Re&&(_e=_e.map(function(rr){return ye(ye({},rr),{},{position:ye(ye({},rr.position),{},{offset:rr.position.offset-Cn/2})})}))}var vr=K&&K.type&&K.type.getComposedData;vr&&U.push({props:ye(ye({},vr(ye(ye({},ae),{},{displayedData:I,props:N,dataKey:Y,item:K,bandSize:Re,barPosition:_e,offset:C,stackedData:je,layout:L,dataStartIndex:T,dataEndIndex:M}))),{},Fe(Fe(Fe({key:K.key||"item-".concat(te)},G,ae[G]),B,ae[B]),"animationId",k)),childIndex:_J(K,N.children),item:K})}),U},x=function(N,E){var O=N.props,A=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!tR({props:O}))return null;var T=O.children,M=O.layout,R=O.stackOffset,L=O.data,$=O.reverseStackOrder,H=HI(M),V=H.numericAxisName,F=H.cateAxisName,G=na(T,r),B=Toe(L,G,"".concat(V,"Id"),"".concat(F,"Id"),R,$),D=d.reduce(function(z,Y){var ne="".concat(Y.axisType,"Map");return ye(ye({},z),{},Fe({},ne,Xpe(O,ye(ye({},Y),{},{graphicalItems:G,stackGroups:Y.axisType===V&&B,dataStartIndex:A,dataEndIndex:C}))))},{}),U=Jpe(ye(ye({},D),{},{props:O,graphicalItems:G}),E?.legendBBox);Object.keys(D).forEach(function(z){D[z]=m(O,D[z],U,z.replace("Map",""),n)});var K=D["".concat(F,"Map")],te=Zpe(K),I=g(O,ye(ye({},D),{},{dataStartIndex:A,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:B,offset:U}));return ye(ye({formattedGraphicalItems:I,graphicalItems:G,offset:U,stackGroups:B},te),D)},j=(function(b){function N(E){var O,A,C;return Ppe(this,N),C=$pe(this,N,[E]),Fe(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Fe(C,"accessibilityManager",new xpe),Fe(C,"handleLegendBBoxUpdate",function(k){if(k){var T=C.state,M=T.dataStartIndex,R=T.dataEndIndex,L=T.updateId;C.setState(ye({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:R,updateId:L},ye(ye({},C.state),{},{legendBBox:k}))))}}),Fe(C,"handleReceiveSyncEvent",function(k,T,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(T)}}),Fe(C,"handleBrushChange",function(k){var T=k.startIndex,M=k.endIndex;if(T!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var R=C.state.updateId;C.setState(function(){return ye({dataStartIndex:T,dataEndIndex:M},x({props:C.props,dataStartIndex:T,dataEndIndex:M,updateId:R},C.state))}),C.triggerSyncEvent({dataStartIndex:T,dataEndIndex:M})}}),Fe(C,"handleMouseEnter",function(k){var T=C.getMouseInfo(k);if(T){var M=ye(ye({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseEnter;We(R)&&R(M,k)}}),Fe(C,"triggeredAfterMouseMove",function(k){var T=C.getMouseInfo(k),M=T?ye(ye({},T),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseMove;We(R)&&R(M,k)}),Fe(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),Fe(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),Fe(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),Fe(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var T={isTooltipActive:!1};C.setState(T),C.triggerSyncEvent(T);var M=C.props.onMouseLeave;We(M)&&M(T,k)}),Fe(C,"handleOuterEvent",function(k){var T=SJ(k),M=ta(C.props,"".concat(T));if(T&&We(M)){var R,L;/.*touch.*/i.test(T)?L=C.getMouseInfo(k.changedTouches[0]):L=C.getMouseInfo(k),M((R=L)!==null&&R!==void 0?R:{},k)}}),Fe(C,"handleClick",function(k){var T=C.getMouseInfo(k);if(T){var M=ye(ye({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onClick;We(R)&&R(M,k)}}),Fe(C,"handleMouseDown",function(k){var T=C.props.onMouseDown;if(We(T)){var M=C.getMouseInfo(k);T(M,k)}}),Fe(C,"handleMouseUp",function(k){var T=C.props.onMouseUp;if(We(T)){var M=C.getMouseInfo(k);T(M,k)}}),Fe(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),Fe(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),Fe(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),Fe(C,"handleDoubleClick",function(k){var T=C.props.onDoubleClick;if(We(T)){var M=C.getMouseInfo(k);T(M,k)}}),Fe(C,"handleContextMenu",function(k){var T=C.props.onContextMenu;if(We(T)){var M=C.getMouseInfo(k);T(M,k)}}),Fe(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&HS.emit(WS,C.props.syncId,k,C.eventEmitterSymbol)}),Fe(C,"applySyncEvent",function(k){var T=C.props,M=T.layout,R=T.syncMethod,L=C.state.updateId,$=k.dataStartIndex,H=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ye({dataStartIndex:$,dataEndIndex:H},x({props:C.props,dataStartIndex:$,dataEndIndex:H,updateId:L},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,F=k.chartY,G=k.activeTooltipIndex,B=C.state,D=B.offset,U=B.tooltipTicks;if(!D)return;if(typeof R=="function")G=R(U,k);else if(R==="value"){G=-1;for(var K=0;K=0){var je,le;if(V.dataKey&&!V.allowDuplicatedCategory){var Re=typeof V.dataKey=="function"?ve:"payload.".concat(V.dataKey.toString());je=Nv(K,Re,G),le=te&&I&&Nv(I,Re,G)}else je=K?.[F],le=te&&I&&I[F];if(xe||se){var _e=k.props.activeIndex!==void 0?k.props.activeIndex:F;return[y.cloneElement(k,ye(ye(ye({},R.props),ae),{},{activeIndex:_e})),null,null]}if(!Ge(je))return[Z].concat(Eu(C.renderActivePoints({item:R,activePoint:je,basePoint:le,childIndex:F,isRange:te})))}else{var fe,pe=(fe=C.getItemByXY(C.state.activeCoordinate))!==null&&fe!==void 0?fe:{graphicalItem:Z},Le=pe.graphicalItem,It=Le.item,Cn=It===void 0?k:It,vr=Le.childIndex,rr=ye(ye(ye({},R.props),ae),{},{activeIndex:vr});return[y.cloneElement(Cn,rr),null,null]}return te?[Z,null,null]:[Z,null]}),Fe(C,"renderCustomized",function(k,T,M){return y.cloneElement(k,ye(ye({key:"recharts-customized-".concat(M)},C.props),C.state))}),Fe(C,"renderMap",{CartesianGrid:{handler:qp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:qp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:qp},YAxis:{handler:qp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((O=E.id)!==null&&O!==void 0?O:Fu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=Dz(C.triggeredAfterMouseMove,(A=E.throttleDelay)!==null&&A!==void 0?A:1e3/60),C.state={},C}return Bpe(N,b),Dpe(N,[{key:"componentDidMount",value:function(){var O,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(O=this.props.margin.left)!==null&&O!==void 0?O:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var O=this.props,A=O.children,C=O.data,k=O.height,T=O.layout,M=Kr(A,ni);if(M){var R=M.props.defaultIndex;if(!(typeof R!="number"||R<0||R>this.state.tooltipTicks.length-1)){var L=this.state.tooltipTicks[R]&&this.state.tooltipTicks[R].value,$=HN(this.state,C,R,L),H=this.state.tooltipTicks[R].coordinate,V=(this.state.offset.top+k)/2,F=T==="horizontal",G=F?{x:H,y:V}:{y:H,x:V},B=this.state.formattedGraphicalItems.find(function(U){var K=U.item;return K.type.name==="Scatter"});B&&(G=ye(ye({},G),B.props.points[R].tooltipPosition),$=B.props.points[R].tooltipPayload);var D={activeTooltipIndex:R,isTooltipActive:!0,activeLabel:L,activePayload:$,activeCoordinate:G};this.setState(D),this.renderCursor(M),this.accessibilityManager.setIndex(R)}}}},{key:"getSnapshotBeforeUpdate",value:function(O,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==O.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==O.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(O){C_([Kr(O.children,ni)],[Kr(this.props.children,ni)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var O=Kr(this.props.children,ni);if(O&&typeof O.props.shared=="boolean"){var A=O.props.shared?"axis":"item";return u.indexOf(A)>=0?A:s}return s}},{key:"getMouseInfo",value:function(O){if(!this.container)return null;var A=this.container,C=A.getBoundingClientRect(),k=dre(C),T={chartX:Math.round(O.pageX-k.left),chartY:Math.round(O.pageY-k.top)},M=C.width/A.offsetWidth||1,R=this.inRange(T.chartX,T.chartY,M);if(!R)return null;var L=this.state,$=L.xAxisMap,H=L.yAxisMap,V=this.getTooltipEventType(),F=FI(this.state,this.props.data,this.props.layout,R);if(V!=="axis"&&$&&H){var G=qs($).scale,B=qs(H).scale,D=G&&G.invert?G.invert(T.chartX):null,U=B&&B.invert?B.invert(T.chartY):null;return ye(ye({},T),{},{xValue:D,yValue:U},F)}return F?ye(ye({},T),F):null}},{key:"inRange",value:function(O,A){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,T=O/C,M=A/C;if(k==="horizontal"||k==="vertical"){var R=this.state.offset,L=T>=R.left&&T<=R.left+R.width&&M>=R.top&&M<=R.top+R.height;return L?{x:T,y:M}:null}var $=this.state,H=$.angleAxisMap,V=$.radiusAxisMap;if(H&&V){var F=qs(H);return H$({x:T,y:M},F)}return null}},{key:"parseEventsOfWrapper",value:function(){var O=this.props.children,A=this.getTooltipEventType(),C=Kr(O,ni),k={};C&&A==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var T=Cv(this.props,this.handleOuterEvent);return ye(ye({},T),k)}},{key:"addListener",value:function(){HS.on(WS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){HS.removeListener(WS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(O,A,C){for(var k=this.state.formattedGraphicalItems,T=0,M=k.length;T");return e}const Mc=y.forwardRef(({id:e,className:t,children:n,config:r,...a},s)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(nF.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:s,className:ce("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(ave,{id:u,config:r}),i.jsx(are,{children:n})]})})});Mc.displayName="Chart";const ave=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(rve).map(([r,a])=>` +${a} [data-chart=${e}] { +${n.map(([s,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${s}: ${u};`:null}).join(` +`)} +} +`).join(` +`)}}):null},lf=ni,Pc=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:s=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=rF(),w=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,E=`${g||N?.dataKey||N?.name||"value"}`,O=WN(j,N,E),A=!g&&typeof l=="string"?j[l]?.label||l:O?.label;return u?i.jsx("div",{className:ce("font-medium",d),children:u(A,t)}):A?i.jsx("div",{className:ce("font-medium",d),children:A}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const b=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:ce("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[b?null:w,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,E)=>{const O=`${p||N.name||N.dataKey||"value"}`,A=WN(j,N,O),C=m||N.payload.fill||N.color;return i.jsx("div",{className:ce("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,E,N.payload):i.jsxs(i.Fragment,{children:[A?.icon?i.jsx(A.icon,{}):!s&&i.jsx("div",{className:ce("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":b&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:ce("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[b?w:null,i.jsx("span",{className:"text-muted-foreground",children:A?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});Pc.displayName="ChartTooltip";const ive=nl,aF=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},s)=>{const{config:l}=rF();return n?.length?i.jsx("div",{ref:s,className:ce("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=WN(l,u,d);return i.jsxs("div",{className:ce("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});aF.displayName="ChartLegend";function WN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const sve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ove=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),WI=e=>{const t=ove(e);return t.charAt(0).toUpperCase()+t.slice(1)},iF=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),lve=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var cve={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const uve=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...cve,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:iF("lucide",a),...!s&&!lve(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(s)?s:[s]]));const Oe=(e,t)=>{const n=y.forwardRef(({className:r,...a},s)=>y.createElement(uve,{ref:s,iconNode:t,className:iF(`lucide-${sve(WI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=WI(e),n};const dve=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],fve=Oe("activity",dve);const hve=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],sF=Oe("arrow-left",hve);const mve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],pve=Oe("arrow-right",mve);const vve=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],VI=Oe("ban",vve);const gve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],yve=Oe("book-open",gve);const xve=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],bve=Oe("bot",xve);const wve=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],oF=Oe("boxes",wve);const jve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],GI=Oe("calendar",jve);const Sve=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],_ve=Oe("chart-column",Sve);const Nve=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],il=Oe("check",Nve);const Cve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],fh=Oe("chevron-down",Cve);const Ove=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],JO=Oe("chevron-left",Ove);const Eve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],eE=Oe("chevron-right",Eve);const Ave=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],VN=Oe("chevron-up",Ave);const Tve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],kve=Oe("chevrons-up-down",Tve);const Mve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],Sg=Oe("circle-alert",Mve);const Pve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ws=Oe("circle-check",Pve);const Rve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Dve=Oe("circle-question-mark",Rve);const $ve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],lF=Oe("circle-user",$ve);const Ive=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],GN=Oe("circle-x",Ive);const Lve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Bve=Oe("circle",Lve);const zve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],sl=Oe("clock",zve);const qve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],YN=Oe("copy",qve);const Fve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Uve=Oe("database",Fve);const Hve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Wve=Oe("dollar-sign",Hve);const Vve=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],KN=Oe("download",Vve);const Gve=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],iv=Oe("external-link",Gve);const Yve=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],XN=Oe("eye-off",Yve);const Kve=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ua=Oe("eye",Kve);const Xve=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],_g=Oe("file-search",Xve);const Zve=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],tE=Oe("file-text",Zve);const Qve=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],ZN=Oe("funnel",Qve);const Jve=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Ng=Oe("hash",Jve);const ege=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Cg=Oe("house",ege);const tge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Au=Oe("info",tge);const nge=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],rge=Oe("key",nge);const age=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],QN=Oe("loader-circle",age);const ige=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],YI=Oe("lock",ige);const sge=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],KI=Oe("log-out",sge);const oge=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],lge=Oe("menu",oge);const cge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],qh=Oe("message-square",cge);const uge=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],JN=Oe("moon",uge);const dge=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],cF=Oe("package",dge);const fge=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],uF=Oe("palette",fge);const hge=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],mge=Oe("pause",hge);const pge=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Tu=Oe("pencil",pge);const vge=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],gge=Oe("play",vge);const yge=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],tr=Oe("plus",yge);const xge=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],ol=Oe("refresh-cw",xge);const bge=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],wge=Oe("rotate-ccw",bge);const jge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Sge=Oe("rotate-cw",jge);const _ge=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],nE=Oe("save",_ge);const Nge=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Dr=Oe("search",Nge);const Cge=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],dF=Oe("server",Cge);const Oge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Ege=Oe("settings-2",Oge);const Age=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Vc=Oe("settings",Age);const Tge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],kge=Oe("shield",Tge);const Mge=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Pge=Oe("skip-forward",Mge);const Rge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],rE=Oe("smile",Rge);const Dge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],$ge=Oe("sparkles",Dge);const Ige=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],ku=Oe("square-pen",Ige);const Lge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],XI=Oe("star",Lge);const Bge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],eC=Oe("sun",Bge);const zge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],qge=Oe("terminal",zge);const Fge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Tt=Oe("trash-2",Fge);const Uge=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Hge=Oe("trending-up",Uge);const Wge=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Gc=Oe("triangle-alert",Wge);const Vge=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],fF=Oe("user",Vge);const Gge=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Yge=Oe("users",Gge);const Kge=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Fh=Oe("x",Kge);const Xge=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],hh=Oe("zap",Xge),ZI=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,QI=Ye,Yu=(e,t)=>n=>{var r;if(t?.variants==null)return QI(e,n?.class,n?.className);const{variants:a,defaultVariants:s}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=s?.[f];if(m===null)return null;const g=ZI(m)||ZI(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[w,b]=j;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...f,p,g]:f},[]);return QI(e,l,d,n?.class,n?.className)},mh=Yu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),de=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const l=r?cQ:"button";return i.jsx(l,{className:ce(mh({variant:t,size:n,className:e})),ref:s,...a})});de.displayName="Button";function Zge(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(24),[d,f]=y.useState(!0),[m,p]=y.useState(null),[g,x]=y.useState(!0),j=y.useCallback(async()=>{try{x(!0);const R=await ln.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");p({hitokoto:R.data.hitokoto,from:R.data.from||R.data.from_who||"未知"})}catch(R){console.error("获取一言失败:",R),p({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{x(!1)}},[]),w=y.useCallback(async()=>{try{const R=localStorage.getItem("token"),L=await ln.get(`/api/webui/statistics/dashboard?hours=${l}`,{headers:{Authorization:`Bearer ${R}`}});t(L.data),r(!1),s(100)}catch(R){console.error("Failed to fetch dashboard data:",R),r(!1),s(100)}},[l]);if(y.useEffect(()=>{if(!n)return;s(0);const R=setTimeout(()=>s(15),200),L=setTimeout(()=>s(30),800),$=setTimeout(()=>s(45),2e3),H=setTimeout(()=>s(60),4e3),V=setTimeout(()=>s(75),6500),F=setTimeout(()=>s(85),9e3),G=setTimeout(()=>s(92),11e3);return()=>{clearTimeout(R),clearTimeout(L),clearTimeout($),clearTimeout(H),clearTimeout(V),clearTimeout(F),clearTimeout(G)}},[n]),y.useEffect(()=>{w(),j()},[w,j]),y.useEffect(()=>{if(!d)return;const R=setInterval(()=>{w()},3e4);return()=>clearInterval(R)},[d,w]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[i.jsx(ol,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Yg,{value:a,className:"h-2"}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:[a,"%"]})]})]})});const{summary:b,model_stats:N,hourly_data:E,daily_data:O,recent_activity:A}=e,C=R=>{const L=Math.floor(R/3600),$=Math.floor(R%3600/60);return`${L}小时${$}分钟`},k=R=>new Date(R).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),T=N.slice(0,6).map(R=>({name:R.model_name,value:R.request_count,fill:`hsl(var(--chart-${N.indexOf(R)%5+1}))`})),M={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(ul,{value:l.toString(),onValueChange:R=>u(Number(R)),children:i.jsxs(Zs,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Ot,{value:"24",children:"24小时"}),i.jsx(Ot,{value:"168",children:"7天"}),i.jsx(Ot,{value:"720",children:"30天"})]})}),i.jsxs(de,{variant:d?"default":"outline",size:"sm",onClick:()=>f(!d),className:"gap-2",children:[i.jsx(ol,{className:`h-4 w-4 ${d?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(de,{variant:"outline",size:"sm",onClick:w,children:i.jsx(ol,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(fve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",l<48?l+"小时":Math.floor(l/24)+"天"]})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"总花费"}),i.jsx(Wve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",b.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.cost_per_hour>0?`¥${b.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(Uve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(b.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.tokens_per_hour>0?`${(b.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(hh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[b.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(sl,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(sn,{children:i.jsx("div",{className:"text-xl font-bold",children:C(b.online_time)})})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(qh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",b.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(Hge,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages>0?`¥${(b.total_cost/b.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(ul,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(Zs,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Ot,{value:"trends",children:"趋势"}),i.jsx(Ot,{value:"models",children:"模型"}),i.jsx(Ot,{value:"activity",children:"活动"}),i.jsx(Ot,{value:"daily",children:"日统计"})]}),i.jsxs(en,{value:"trends",className:"space-y-4",children:[i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"请求趋势"}),i.jsxs(er,{children:["最近",l,"小时的请求量变化"]})]}),i.jsx(sn,{children:i.jsx(Mc,{config:M,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(tve,{data:E,children:[i.jsx(mf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Hs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(lf,{content:i.jsx(Pc,{labelFormatter:R=>k(R)})}),i.jsx(zh,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"花费趋势"}),i.jsx(er,{children:"API调用成本变化"})]}),i.jsx(sn,{children:i.jsx(Mc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(GS,{data:E,children:[i.jsx(mf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Hs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(lf,{content:i.jsx(Pc,{labelFormatter:R=>k(R)})}),i.jsx(li,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"Token消耗"}),i.jsx(er,{children:"Token使用量变化"})]}),i.jsx(sn,{children:i.jsx(Mc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(GS,{data:E,children:[i.jsx(mf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Hs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(lf,{content:i.jsx(Pc,{labelFormatter:R=>k(R)})}),i.jsx(li,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(en,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"模型请求分布"}),i.jsx(er,{children:"各模型使用占比"})]}),i.jsx(sn,{children:i.jsx(Mc,{config:Object.fromEntries(N.slice(0,6).map((R,L)=>[R.model_name,{label:R.model_name,color:`hsl(var(--chart-${L%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(nve,{children:[i.jsx(lf,{content:i.jsx(Pc,{})}),i.jsx(ds,{data:T,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percent:L})=>`${R} ${L?(L*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:T.map((R,L)=>i.jsx(oy,{fill:R.fill},`cell-${L}`))})]})})})]}),i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"模型详细统计"}),i.jsx(er,{children:"请求数、花费和性能"})]}),i.jsx(sn,{children:i.jsx(Vt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:N.map((R,L)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:R.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${L%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:R.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",R.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(R.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[R.avg_response_time.toFixed(2),"s"]})]})]})]},L))})})})]})]})}),i.jsx(en,{value:"activity",children:i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"最近活动"}),i.jsx(er,{children:"最新的API调用记录"})]}),i.jsx(sn,{children:i.jsx(Vt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((R,L)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:R.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:R.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:k(R.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:R.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",R.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[R.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${R.status==="success"?"text-green-600":"text-red-600"}`,children:R.status})]})]})]},L))})})})]})}),i.jsx(en,{value:"daily",children:i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"每日统计"}),i.jsx(er,{children:"最近7天的数据汇总"})]}),i.jsx(sn,{children:i.jsx(Mc,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(GS,{data:O,children:[i.jsx(mf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Hs,{dataKey:"timestamp",tickFormatter:R=>{const L=new Date(R);return`${L.getMonth()+1}/${L.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(lf,{content:i.jsx(Pc,{labelFormatter:R=>new Date(R).toLocaleDateString("zh-CN")})}),i.jsx(ive,{content:i.jsx(aF,{})}),i.jsx(li,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(li,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(ot,{className:"border-2 border-primary/20",children:[i.jsx(qt,{className:"pb-3",children:i.jsx(Ft,{className:"text-lg",children:"每日一言"})}),i.jsx(sn,{children:g?i.jsxs("div",{className:"space-y-2",children:[i.jsx(HM,{className:"h-6 w-3/4"}),i.jsx(HM,{className:"h-4 w-1/4"})]}):m?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',m.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",m.from]})]}):null})]})]})})}const Qge={theme:"system",setTheme:()=>null},hF=y.createContext(Qge),aE=()=>{const e=y.useContext(hF);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},Jge=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,s=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(s,innerHeight-s));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},mF=y.createContext(void 0),pF=()=>{const e=y.useContext(mF);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function My(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function Py(e){const[t,n]=y.useState(void 0);return Un(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let l,u;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Ry="Switch",[eye]=hr(Ry),[tye,nye]=eye(Ry),vF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=qe(t,O=>x(O)),w=y.useRef(!1),b=g?m||!!g.closest("form"):!0,[N,E]=Na({prop:a,defaultProp:s??!1,onChange:f,caller:Ry});return i.jsxs(tye,{scope:n,checked:N,disabled:u,children:[i.jsx(Pe.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":bF(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:Se(e.onClick,O=>{E(A=>!A),b&&(w.current=O.isPropagationStopped(),w.current||O.stopPropagation())})}),b&&i.jsx(xF,{control:g,bubbles:!w.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});vF.displayName=Ry;var gF="SwitchThumb",yF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=nye(gF,n);return i.jsx(Pe.span,{"data-state":bF(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});yF.displayName=gF;var rye="SwitchBubbleInput",xF=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const l=y.useRef(null),u=qe(l,s),d=My(n),f=Py(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});xF.displayName=rye;function bF(e){return e?"checked":"unchecked"}var wF=vF,aye=yF;const at=y.forwardRef(({className:e,...t},n)=>i.jsx(wF,{className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(aye,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));at.displayName=wF.displayName;var iye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],sye=iye.reduce((e,t)=>{const n=Th(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),oye="Label",jF=y.forwardRef((e,t)=>i.jsx(sye.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));jF.displayName=oye;var SF=jF;const lye=Yu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),J=y.forwardRef(({className:e,...t},n)=>i.jsx(SF,{ref:n,className:ce(lye(),e),...t}));J.displayName=SF.displayName;const Ne=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:ce("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ne.displayName="Input";const cye=1,uye=1e6;let YS=0;function dye(){return YS=(YS+1)%Number.MAX_SAFE_INTEGER,YS.toString()}const KS=new Map,JI=e=>{if(KS.has(e))return;const t=setTimeout(()=>{KS.delete(e),Af({type:"REMOVE_TOAST",toastId:e})},uye);KS.set(e,t)},fye=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,cye)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?JI(n):e.toasts.forEach(r=>{JI(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},sv=[];let ov={toasts:[]};function Af(e){ov=fye(ov,e),sv.forEach(t=>{t(ov)})}function hye({...e}){const t=dye(),n=a=>Af({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Af({type:"DISMISS_TOAST",toastId:t});return Af({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function mr(){const[e,t]=y.useState(ov);return y.useEffect(()=>(sv.push(t),()=>{const n=sv.indexOf(t);n>-1&&sv.splice(n,1)}),[e]),{...e,toast:hye,dismiss:n=>Af({type:"DISMISS_TOAST",toastId:n})}}const mye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function pye(e){const t=mye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const iE="0.11.5 Beta",sE="MaiBot Dashboard",vye=`${sE} v${iE}`,gye=(e="v")=>`${e}${iE}`;function yye(e,t=globalThis?.document){const n=nn(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var xye="DismissableLayer",tC="dismissableLayer.update",bye="dismissableLayer.pointerDownOutside",wye="dismissableLayer.focusOutside",eL,_F=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ol=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(_F),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=qe(t,T=>p(T)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=w.indexOf(b),E=m?w.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,A=E>=N,C=Sye(T=>{const M=T.target,R=[...f.branches].some(L=>L.contains(M));!A||R||(a?.(T),l?.(T),T.defaultPrevented||u?.())},g),k=_ye(T=>{const M=T.target;[...f.branches].some(L=>L.contains(M))||(s?.(T),l?.(T),T.defaultPrevented||u?.())},g);return yye(T=>{E===f.layers.size-1&&(r?.(T),!T.defaultPrevented&&u&&(T.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(eL=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),tL(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=eL)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),tL())},[m,f]),y.useEffect(()=>{const T=()=>x({});return document.addEventListener(tC,T),()=>document.removeEventListener(tC,T)},[]),i.jsx(Pe.div,{...d,ref:j,style:{pointerEvents:O?A?"auto":"none":void 0,...e.style},onFocusCapture:Se(e.onFocusCapture,k.onFocusCapture),onBlurCapture:Se(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:Se(e.onPointerDownCapture,C.onPointerDownCapture)})});Ol.displayName=xye;var jye="DismissableLayerBranch",NF=y.forwardRef((e,t)=>{const n=y.useContext(_F),r=y.useRef(null),a=qe(t,r);return y.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),i.jsx(Pe.div,{...e,ref:a})});NF.displayName=jye;function Sye(e,t=globalThis?.document){const n=nn(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let d=function(){CF(bye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function _ye(e,t=globalThis?.document){const n=nn(e),r=y.useRef(!1);return y.useEffect(()=>{const a=s=>{s.target&&!r.current&&CF(wye,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function tL(){const e=new CustomEvent(tC);document.dispatchEvent(e)}function CF(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?qC(a,s):a.dispatchEvent(s)}var Nye=Ol,Cye=NF,XS="focusScope.autoFocusOnMount",ZS="focusScope.autoFocusOnUnmount",nL={bubbles:!1,cancelable:!0},Oye="FocusScope",Uh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...l}=e,[u,d]=y.useState(null),f=nn(a),m=nn(s),p=y.useRef(null),g=qe(t,w=>d(w)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let w=function(O){if(x.paused||!u)return;const A=O.target;u.contains(A)?p.current=A:Bs(p.current,{select:!0})},b=function(O){if(x.paused||!u)return;const A=O.relatedTarget;A!==null&&(u.contains(A)||Bs(p.current,{select:!0}))},N=function(O){if(document.activeElement===document.body)for(const C of O)C.removedNodes.length>0&&Bs(u)};document.addEventListener("focusin",w),document.addEventListener("focusout",b);const E=new MutationObserver(N);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",b),E.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){aL.add(x);const w=document.activeElement;if(!u.contains(w)){const N=new CustomEvent(XS,nL);u.addEventListener(XS,f),u.dispatchEvent(N),N.defaultPrevented||(Eye(Pye(OF(u)),{select:!0}),document.activeElement===w&&Bs(u))}return()=>{u.removeEventListener(XS,f),setTimeout(()=>{const N=new CustomEvent(ZS,nL);u.addEventListener(ZS,m),u.dispatchEvent(N),N.defaultPrevented||Bs(w??document.body,{select:!0}),u.removeEventListener(ZS,m),aL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(w=>{if(!n&&!r||x.paused)return;const b=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,N=document.activeElement;if(b&&N){const E=w.currentTarget,[O,A]=Aye(E);O&&A?!w.shiftKey&&N===A?(w.preventDefault(),n&&Bs(O,{select:!0})):w.shiftKey&&N===O&&(w.preventDefault(),n&&Bs(A,{select:!0})):N===E&&w.preventDefault()}},[n,r,x.paused]);return i.jsx(Pe.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Uh.displayName=Oye;function Eye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Bs(r,{select:t}),document.activeElement!==n)return}function Aye(e){const t=OF(e),n=rL(t,e),r=rL(t.reverse(),e);return[n,r]}function OF(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function rL(e,t){for(const n of e)if(!Tye(n,{upTo:t}))return n}function Tye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function kye(e){return e instanceof HTMLInputElement&&"select"in e}function Bs(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&kye(e)&&t&&e.select()}}var aL=Mye();function Mye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=iL(e,t),e.unshift(t)},remove(t){e=iL(e,t),e[0]?.resume()}}}function iL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Pye(e){return e.filter(t=>t.tagName!=="A")}var Rye="Portal",El=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,s]=y.useState(!1);Un(()=>s(!0),[]);const l=n||a&&globalThis?.document?.body;return l?wY.createPortal(i.jsx(Pe.div,{...r,ref:t}),l):null});El.displayName=Rye;var QS=0;function Dy(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??sL()),document.body.insertAdjacentElement("beforeend",e[1]??sL()),QS++,()=>{QS===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),QS--}},[])}function sL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ri=function(){return ri=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return Zye;var t=Qye(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},exe=kF(),Yc="data-scroll-locked",txe=function(e,t,n,r){var a=e.left,s=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` + .`.concat($ye,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(u,"px ").concat(r,`; + } + body[`).concat(Yc,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(a,`px; + padding-top: `).concat(s,`px; + padding-right: `).concat(l,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(u,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(lv,` { + right: `).concat(u,"px ").concat(r,`; + } + + .`).concat(cv,` { + margin-right: `).concat(u,"px ").concat(r,`; + } + + .`).concat(lv," .").concat(lv,` { + right: 0 `).concat(r,`; + } + + .`).concat(cv," .").concat(cv,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(Yc,`] { + `).concat(Iye,": ").concat(u,`px; + } +`)},lL=function(){var e=parseInt(document.body.getAttribute(Yc)||"0",10);return isFinite(e)?e:0},nxe=function(){y.useEffect(function(){return document.body.setAttribute(Yc,(lL()+1).toString()),function(){var e=lL()-1;e<=0?document.body.removeAttribute(Yc):document.body.setAttribute(Yc,e.toString())}},[])},rxe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;nxe();var s=y.useMemo(function(){return Jye(a)},[a]);return y.createElement(exe,{styles:txe(s,!t,a,n?"":"!important")})},nC=!1;if(typeof window<"u")try{var Fp=Object.defineProperty({},"passive",{get:function(){return nC=!0,!0}});window.addEventListener("test",Fp,Fp),window.removeEventListener("test",Fp,Fp)}catch{nC=!1}var Cc=nC?{passive:!1}:!1,axe=function(e){return e.tagName==="TEXTAREA"},MF=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!axe(e)&&n[t]==="visible")},ixe=function(e){return MF(e,"overflowY")},sxe=function(e){return MF(e,"overflowX")},cL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=PF(e,r);if(a){var s=RF(e,r),l=s[1],u=s[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},oxe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},lxe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},PF=function(e,t){return e==="v"?ixe(t):sxe(t)},RF=function(e,t){return e==="v"?oxe(t):lxe(t)},cxe=function(e,t){return e==="h"&&t==="rtl"?-1:1},uxe=function(e,t,n,r,a){var s=cxe(e,window.getComputedStyle(t).direction),l=s*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=RF(e,u),j=x[0],w=x[1],b=x[2],N=w-b-s*j;(j||N)&&PF(e,u)&&(p+=N,g+=j);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Up=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},uL=function(e){return[e.deltaX,e.deltaY]},dL=function(e){return e&&"current"in e?e.current:e},dxe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},fxe=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},hxe=0,Oc=[];function mxe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(hxe++)[0],s=y.useState(kF)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var w=Dye([e.lockRef.current],(e.shards||[]).map(dL),!0).filter(Boolean);return w.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(w,b){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var N=Up(w),E=n.current,O="deltaX"in w?w.deltaX:E[0]-N[0],A="deltaY"in w?w.deltaY:E[1]-N[1],C,k=w.target,T=Math.abs(O)>Math.abs(A)?"h":"v";if("touches"in w&&T==="h"&&k.type==="range")return!1;var M=cL(T,k);if(!M)return!0;if(M?C=T:(C=T==="v"?"h":"v",M=cL(T,k)),!M)return!1;if(!r.current&&"changedTouches"in w&&(O||A)&&(r.current=C),!C)return!0;var R=r.current||C;return uxe(R,b,w,R==="h"?O:A)},[]),d=y.useCallback(function(w){var b=w;if(!(!Oc.length||Oc[Oc.length-1]!==s)){var N="deltaY"in b?uL(b):Up(b),E=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&dxe(C.delta,N)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var O=(l.current.shards||[]).map(dL).filter(Boolean).filter(function(C){return C.contains(b.target)}),A=O.length>0?u(b,O[0]):!l.current.noIsolation;A&&b.cancelable&&b.preventDefault()}}},[]),f=y.useCallback(function(w,b,N,E){var O={name:w,delta:b,target:N,should:E,shadowParent:pxe(N)};t.current.push(O),setTimeout(function(){t.current=t.current.filter(function(A){return A!==O})},1)},[]),m=y.useCallback(function(w){n.current=Up(w),r.current=void 0},[]),p=y.useCallback(function(w){f(w.type,uL(w),w.target,u(w,e.lockRef.current))},[]),g=y.useCallback(function(w){f(w.type,Up(w),w.target,u(w,e.lockRef.current))},[]);y.useEffect(function(){return Oc.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Cc),document.addEventListener("touchmove",d,Cc),document.addEventListener("touchstart",m,Cc),function(){Oc=Oc.filter(function(w){return w!==s}),document.removeEventListener("wheel",d,Cc),document.removeEventListener("touchmove",d,Cc),document.removeEventListener("touchstart",m,Cc)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(s,{styles:fxe(a)}):null,x?y.createElement(rxe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function pxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const vxe=Hye(TF,mxe);var Hh=y.forwardRef(function(e,t){return y.createElement($y,ri({},e,{ref:t,sideCar:vxe}))});Hh.classNames=$y.classNames;var gxe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ec=new WeakMap,Hp=new WeakMap,Wp={},n_=0,DF=function(e){return e&&(e.host||DF(e.parentNode))},yxe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=DF(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},xxe=function(e,t,n,r){var a=yxe(t,Array.isArray(e)?e:[e]);Wp[n]||(Wp[n]=new WeakMap);var s=Wp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",w=(Ec.get(g)||0)+1,b=(s.get(g)||0)+1;Ec.set(g,w),s.set(g,b),l.push(g),w===1&&j&&Hp.set(g,!0),b===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),n_++,function(){l.forEach(function(p){var g=Ec.get(p)-1,x=s.get(p)-1;Ec.set(p,g),s.set(p,x),g||(Hp.has(p)||p.removeAttribute(r),Hp.delete(p)),x||p.removeAttribute(n)}),n_--,n_||(Ec=new WeakMap,Ec=new WeakMap,Hp=new WeakMap,Wp={})}},Iy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=gxe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),xxe(r,a,n,"aria-hidden")):function(){return null}};function bxe(e){const t=wxe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Sxe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function wxe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=Nxe(a),u=_xe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var jxe=Symbol("radix.slottable");function Sxe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===jxe}function _xe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function Nxe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Ly="Dialog",[$F,IF]=hr(Ly),[Cxe,Ya]=$F(Ly),LF=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Na({prop:r,defaultProp:a??!1,onChange:s,caller:Ly});return i.jsx(Cxe,{scope:t,triggerRef:u,contentRef:d,contentId:Fn(),titleId:Fn(),descriptionId:Fn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};LF.displayName=Ly;var BF="DialogTrigger",zF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(BF,n),s=qe(t,a.triggerRef);return i.jsx(Pe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":cE(a.open),...r,ref:s,onClick:Se(e.onClick,a.onOpenToggle)})});zF.displayName=BF;var oE="DialogPortal",[Oxe,qF]=$F(oE,{forceMount:void 0}),FF=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=Ya(oE,t);return i.jsx(Oxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(Rn,{present:n||s.open,children:i.jsx(El,{asChild:!0,container:a,children:l})}))})};FF.displayName=oE;var Og="DialogOverlay",UF=y.forwardRef((e,t)=>{const n=qF(Og,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Ya(Og,e.__scopeDialog);return s.modal?i.jsx(Rn,{present:r||s.open,children:i.jsx(Axe,{...a,ref:t})}):null});UF.displayName=Og;var Exe=bxe("DialogOverlay.RemoveScroll"),Axe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(Og,n);return i.jsx(Hh,{as:Exe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx(Pe.div,{"data-state":cE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),vl="DialogContent",HF=y.forwardRef((e,t)=>{const n=qF(vl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Ya(vl,e.__scopeDialog);return i.jsx(Rn,{present:r||s.open,children:s.modal?i.jsx(Txe,{...a,ref:t}):i.jsx(kxe,{...a,ref:t})})});HF.displayName=vl;var Txe=y.forwardRef((e,t)=>{const n=Ya(vl,e.__scopeDialog),r=y.useRef(null),a=qe(t,n.contentRef,r);return y.useEffect(()=>{const s=r.current;if(s)return Iy(s)},[]),i.jsx(WF,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Se(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Se(e.onPointerDownOutside,s=>{const l=s.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&s.preventDefault()}),onFocusOutside:Se(e.onFocusOutside,s=>s.preventDefault())})}),kxe=y.forwardRef((e,t)=>{const n=Ya(vl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(WF,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),WF=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...l}=e,u=Ya(vl,n),d=y.useRef(null),f=qe(t,d);return Dy(),i.jsxs(i.Fragment,{children:[i.jsx(Uh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Ol,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":cE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(Pxe,{titleId:u.titleId}),i.jsx(Dxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),lE="DialogTitle",VF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(lE,n);return i.jsx(Pe.h2,{id:a.titleId,...r,ref:t})});VF.displayName=lE;var GF="DialogDescription",YF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(GF,n);return i.jsx(Pe.p,{id:a.descriptionId,...r,ref:t})});YF.displayName=GF;var KF="DialogClose",XF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(KF,n);return i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,()=>a.onOpenChange(!1))})});XF.displayName=KF;function cE(e){return e?"open":"closed"}var ZF="DialogTitleWarning",[Mxe,QF]=uZ(ZF,{contentName:vl,titleName:lE,docsSlug:"dialog"}),Pxe=({titleId:e})=>{const t=QF(ZF),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Rxe="DialogDescriptionWarning",Dxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${QF(Rxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},uE=LF,JF=zF,dE=FF,By=UF,zy=HF,fE=VF,hE=YF,mE=XF;const nr=uE,e8=JF,$xe=dE,t8=y.forwardRef(({className:e,...t},n)=>i.jsx(By,{ref:n,className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));t8.displayName=By.displayName;const Hn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs($xe,{children:[i.jsx(t8,{}),i.jsxs(zy,{ref:r,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(mE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Fh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Hn.displayName=zy.displayName;const Wn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Wn.displayName="DialogHeader";const $r=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});$r.displayName="DialogFooter";const Vn=y.forwardRef(({className:e,...t},n)=>i.jsx(fE,{ref:n,className:ce("text-lg font-semibold leading-none tracking-tight",e),...t}));Vn.displayName=fE.displayName;const dr=y.forwardRef(({className:e,...t},n)=>i.jsx(hE,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));dr.displayName=hE.displayName;var Ixe=Symbol("radix.slottable");function Lxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Ixe,t}var n8="AlertDialog",[Bxe]=hr(n8,[IF]),fs=IF(),r8=e=>{const{__scopeAlertDialog:t,...n}=e,r=fs(t);return i.jsx(uE,{...r,...n,modal:!0})};r8.displayName=n8;var zxe="AlertDialogTrigger",a8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(JF,{...a,...r,ref:t})});a8.displayName=zxe;var qxe="AlertDialogPortal",i8=e=>{const{__scopeAlertDialog:t,...n}=e,r=fs(t);return i.jsx(dE,{...r,...n})};i8.displayName=qxe;var Fxe="AlertDialogOverlay",s8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(By,{...a,...r,ref:t})});s8.displayName=Fxe;var Kc="AlertDialogContent",[Uxe,Hxe]=Bxe(Kc),Wxe=Lxe("AlertDialogContent"),o8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,s=fs(n),l=y.useRef(null),u=qe(t,l),d=y.useRef(null);return i.jsx(Mxe,{contentName:Kc,titleName:l8,docsSlug:"alert-dialog",children:i.jsx(Uxe,{scope:n,cancelRef:d,children:i.jsxs(zy,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:Se(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(Wxe,{children:r}),i.jsx(Gxe,{contentRef:l})]})})})});o8.displayName=Kc;var l8="AlertDialogTitle",c8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(fE,{...a,...r,ref:t})});c8.displayName=l8;var u8="AlertDialogDescription",d8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(hE,{...a,...r,ref:t})});d8.displayName=u8;var Vxe="AlertDialogAction",f8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(mE,{...a,...r,ref:t})});f8.displayName=Vxe;var h8="AlertDialogCancel",m8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=Hxe(h8,n),s=fs(n),l=qe(t,a);return i.jsx(mE,{...s,...r,ref:l})});m8.displayName=h8;var Gxe=({contentRef:e})=>{const t=`\`${Kc}\` requires a description for the component to be accessible for screen reader users. + +You can add a description to the \`${Kc}\` by passing a \`${u8}\` component as a child, which also benefits sighted users by adding visible context to the dialog. + +Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Kc}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. + +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},Yxe=r8,Kxe=a8,Xxe=i8,p8=s8,v8=o8,g8=f8,y8=m8,x8=c8,b8=d8;const Pn=Yxe,ra=Kxe,Zxe=Xxe,w8=y.forwardRef(({className:e,...t},n)=>i.jsx(p8,{className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));w8.displayName=p8.displayName;const yn=y.forwardRef(({className:e,...t},n)=>i.jsxs(Zxe,{children:[i.jsx(w8,{}),i.jsx(v8,{ref:n,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));yn.displayName=v8.displayName;const xn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-2 text-center sm:text-left",e),...t});xn.displayName="AlertDialogHeader";const bn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});bn.displayName="AlertDialogFooter";const wn=y.forwardRef(({className:e,...t},n)=>i.jsx(x8,{ref:n,className:ce("text-lg font-semibold",e),...t}));wn.displayName=x8.displayName;const jn=y.forwardRef(({className:e,...t},n)=>i.jsx(b8,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));jn.displayName=b8.displayName;const Sn=y.forwardRef(({className:e,...t},n)=>i.jsx(g8,{ref:n,className:ce(mh(),e),...t}));Sn.displayName=g8.displayName;const _n=y.forwardRef(({className:e,...t},n)=>i.jsx(y8,{ref:n,className:ce(mh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));_n.displayName=y8.displayName;function Qxe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(ul,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(Zs,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Ot,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(uF,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Ot,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(kge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Ot,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Vc,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Ot,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Au,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Vt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(en,{value:"appearance",className:"mt-0",children:i.jsx(Jxe,{})}),i.jsx(en,{value:"security",className:"mt-0",children:i.jsx(ebe,{})}),i.jsx(en,{value:"other",className:"mt-0",children:i.jsx(tbe,{})}),i.jsx(en,{value:"about",className:"mt-0",children:i.jsx(nbe,{})})]})]})]})}function fL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=s=>{s=s.replace("#","");const l=parseInt(s.substring(0,2),16)/255,u=parseInt(s.substring(2,4),16)/255,d=parseInt(s.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";fL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),fL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(r_,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(r_,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(r_,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(ba,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(ba,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(ba,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(ba,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(ba,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(ba,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(ba,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(ba,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(ba,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(ba,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(ba,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(ba,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ne,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(J,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(at,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(J,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(at,{id:"waves-background",checked:a,onCheckedChange:s})]})})]})]})]})}function ebe(){const e=sa(),[t,n]=y.useState(""),[r,a]=y.useState(""),[s,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(""),[O,A]=y.useState(!1),{toast:C}=mr(),k=y.useMemo(()=>pye(r),[r]),T=()=>localStorage.getItem("access-token")||"",M=async F=>{try{await navigator.clipboard.writeText(F),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},R=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const F=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${F}`,variant:"destructive"});return}m(!0);try{const F=T(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`},body:JSON.stringify({new_token:r.trim()})}),B=await G.json();G.ok&&B.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:B.message||"无法更新 Token",variant:"destructive"})}catch(F){console.error("更新 Token 错误:",F),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},L=async()=>{g(!0);try{const F=T(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`}}),B=await G.json();G.ok&&B.success?(localStorage.setItem("access-token",B.token),n(B.token),E(B.token),b(!0),A(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:B.message||"无法生成新 Token",variant:"destructive"})}catch(F){console.error("生成 Token 错误:",F),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},$=async()=>{try{await navigator.clipboard.writeText(N),A(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},H=()=>{b(!1),setTimeout(()=>{E(""),A(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=F=>{F||H()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(nr,{open:w,onOpenChange:V,children:i.jsxs(Hn,{className:"sm:max-w-md",children:[i.jsxs(Wn,{children:[i.jsxs(Vn,{className:"flex items-center gap-2",children:[i.jsx(Gc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(dr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(J,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Gc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs($r,{className:"gap-2 sm:gap-0",children:[i.jsx(de,{variant:"outline",onClick:$,className:"gap-2",children:O?i.jsxs(i.Fragment,{children:[i.jsx(il,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(YN,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(de,{onClick:H,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ne,{id:"current-token",type:s?"text":"password",value:t||T(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(T()),l(!s)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:s?"隐藏":"显示",children:s?i.jsx(XN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ua,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(de,{variant:"outline",size:"icon",onClick:()=>M(T()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(il,{className:"h-4 w-4 text-green-500"}):i.jsx(YN,{className:"h-4 w-4"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs(de,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(ol,{className:ce("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认重新生成 Token"}),i.jsx(jn,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:L,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ne,{id:"new-token",type:u?"text":"password",value:r,onChange:F=>a(F.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(XN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ua,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(F=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[F.passed?i.jsx(Ws,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(GN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:ce(F.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:F.label})]},F.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(il,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(de,{onClick:R,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function tbe(){const e=sa(),{toast:t}=mr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const s=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${s}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(s){console.error("重置配置状态错误:",s),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs(de,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(wge,{className:ce("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认重新配置"}),i.jsx(jn,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function nbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",sE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",iE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Vt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(Jt,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(Jt,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(Jt,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(Jt,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(Jt,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(Jt,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(Jt,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(Jt,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(Jt,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(Jt,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(Jt,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(Jt,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(Jt,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(Jt,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(Jt,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(Jt,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function Jt({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function r_({value:e,current:t,onChange:n,label:r,description:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function ba({value:e,current:t,onChange:n,label:r,colorClass:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:ce("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class rbe{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const s=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),s),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),s),l)}}function abe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new rbe(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,s=e.current;if(!a||!s)return;const l=r.current,u=()=>{const w=a.getBoundingClientRect();l.bounding=w,s.style.width=`${w.width}px`,s.style.height=`${w.height}px`},d=()=>{if(!l.bounding)return;const{width:w,height:b}=l.bounding;l.lines=[],l.paths.forEach(R=>R.remove()),l.paths=[];const N=10,E=32,O=w+200,A=b+30,C=Math.ceil(O/N),k=Math.ceil(A/E),T=(w-N*C)/2,M=(b-E*k)/2;for(let R=0;R<=C;R++){const L=[];for(let H=0;H<=k;H++){const V={x:T+N*R,y:M+E*H,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};L.push(V)}const $=document.createElementNS("http://www.w3.org/2000/svg","path");s.appendChild($),l.paths.push($),l.lines.push(L)}},f=w=>{const{lines:b,mouse:N,noise:E}=l;b.forEach(O=>{O.forEach(A=>{const C=E.perlin2((A.x+w*.0125)*.002,(A.y+w*.005)*.0015)*12;A.wave.x=Math.cos(C)*32,A.wave.y=Math.sin(C)*16;const k=A.x-N.sx,T=A.y-N.sy,M=Math.hypot(k,T),R=Math.max(175,N.vs);if(M{const N={x:w.x+w.wave.x+(b?w.cursor.x:0),y:w.y+w.wave.y+(b?w.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:w,paths:b}=l;w.forEach((N,E)=>{let O=m(N[0],!1),A=`M ${O.x} ${O.y}`;N.forEach((C,k)=>{const T=k===N.length-1;O=m(C,!T),A+=`L ${O.x} ${O.y}`}),b[E].setAttribute("d",A)})},g=w=>{const{mouse:b}=l;b.sx+=(b.x-b.sx)*.1,b.sy+=(b.y-b.sy)*.1;const N=b.x-b.lx,E=b.y-b.ly,O=Math.hypot(N,E);b.v=O,b.vs+=(O-b.vs)*.1,b.vs=Math.min(100,b.vs),b.lx=b.x,b.ly=b.y,b.a=Math.atan2(E,N),a&&(a.style.setProperty("--x",`${b.sx}px`),a.style.setProperty("--y",`${b.sy}px`)),f(w),p(),n.current=requestAnimationFrame(g)},x=w=>{if(!l.bounding)return;const{mouse:b}=l;b.x=w.pageX-l.bounding.left,b.y=w.pageY-l.bounding.top+window.scrollY,b.set||(b.sx=b.x,b.sy=b.y,b.lx=b.x,b.ly=b.y,b.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` + path { + fill: none; + stroke: hsl(var(--primary) / 0.20); + stroke-width: 1px; + } + `})})]})}function ibe(){const e=sa();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function j8(){return!!localStorage.getItem("access-token")}function sbe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,s]=y.useState(""),l=sa(),{enableWavesBackground:u,setEnableWavesBackground:d}=pF(),{theme:f,setTheme:m}=aE();y.useEffect(()=>{j8()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async w=>{if(w.preventDefault(),s(""),!e.trim()){s("请输入 Access Token");return}r(!0);try{const b=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await b.json();if(b.ok&&N.valid){localStorage.setItem("access-token",e.trim());const E=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),O=await E.json();E.ok&&O.is_first_setup?l({to:"/setup"}):l({to:"/"})}else s(N.message||"Token 验证失败,请检查后重试")}catch(b){console.error("Token 验证错误:",b),s("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(abe,{}),i.jsxs(ot,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(eC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(JN,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(qt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(YI,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Ft,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(er,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(sn,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx(rge,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ne,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:w=>t(w.target.value),className:ce("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(Sg,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(de,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(nr,{children:[i.jsx(e8,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(Dve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Hn,{className:"sm:max-w-md",children:[i.jsxs(Wn,{children:[i.jsxs(Vn,{className:"flex items-center gap-2",children:[i.jsx(YI,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(dr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(qge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(tE,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Sg,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(hh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsxs(wn,{className:"flex items-center gap-2",children:[i.jsx(hh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(jn,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:vye})})]})}const Wt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Wt.displayName="Textarea";var obe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lbe=obe.reduce((e,t)=>{const n=Th(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),cbe="Separator",hL="horizontal",ube=["horizontal","vertical"],S8=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=hL,...a}=e,s=dbe(r)?r:hL,u=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return i.jsx(lbe.div,{"data-orientation":s,...u,...a,ref:t})});S8.displayName=cbe;function dbe(e){return ube.includes(e)}var _8=S8;const ph=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(_8,{ref:a,decorative:n,orientation:t,className:ce("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));ph.displayName=_8.displayName;const fbe=Yu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Dt({className:e,variant:t,...n}){return i.jsx("div",{className:ce(fbe({variant:t}),e),...n})}function hbe({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((s,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ne,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ne,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,s)=>i.jsxs(Dt,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(s),className:"ml-1 hover:text-destructive",children:i.jsx(Fh,{className:"h-3 w-3"})})]},s))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(de,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function mbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Wt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Wt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Wt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(ph,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Wt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Wt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function pbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ne,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(at,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(ph,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(at,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(at,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function vbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(at,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(ph,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(at,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ne,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Wt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(ph,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(at,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function Qe(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function lt(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function gbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function ybe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function xbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function bbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},s=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:s.all_global??!0}}async function wbe(e){const t=await Qe("/api/webui/config/bot/section/bot",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function jbe(e){const t=await Qe("/api/webui/config/bot/section/personality",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function Sbe(e){const t=await Qe("/api/webui/config/bot/section/emoji",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function _be(e){const t=[];t.push(Qe("/api/webui/config/bot/section/tool",{method:"POST",headers:lt(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(Qe("/api/webui/config/bot/section/jargon",{method:"POST",headers:lt(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(Qe("/api/webui/config/bot/section/mood",{method:"POST",headers:lt(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const s=await a.json();throw new Error(s.detail||"保存其他配置失败")}return{success:!0}}async function mL(){const e=localStorage.getItem("access-token"),t=await Qe("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function Nbe(){const e=sa(),{toast:t}=mr(),[n,r]=y.useState(0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.请控制你的发言频率,不要太过频繁的发言 +4.如果有人对你感到厌烦,请减少回复 +5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.某句话如果已经被回复过,不要重复回复`}),[j,w]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[b,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),E=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:bve},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:fF},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:rE},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Vc},{id:"complete",title:"完成设置",description:"后续配置提示",icon:hh}],O=(n+1)/E.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[$,H,V,F]=await Promise.all([gbe(),ybe(),xbe(),bbe()]);p($),x(H),w(V),N(F)}catch($){t({title:"加载配置失败",description:$ instanceof Error?$.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const A=async()=>{u(!0);try{switch(n){case 0:await wbe(m);break;case 1:await jbe(g);break;case 2:await Sbe(j);break;case 3:await _be(b);break}return t({title:"保存成功",description:`${E[n].title}配置已保存`}),!0}catch(L){return t({title:"保存失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await A()&&n{n>0&&r(n-1)},T=async()=>{s(!0);try{if(!await A()){s(!1);return}await mL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(L){t({title:"完成失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}finally{s(!1)}},M=async()=>{try{await mL(),e({to:"/"})}catch(L){t({title:"跳过失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}},R=()=>{switch(n){case 0:return i.jsx(hbe,{config:m,onChange:p});case 1:return i.jsx(mbe,{config:g,onChange:x});case 2:return i.jsx(pbe,{config:j,onChange:w});case 3:return i.jsx(vbe,{config:b,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(hh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx($ge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",sE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",E.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(O),"%"]})]}),i.jsx(Yg,{value:O,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:E.map((L,$)=>{const H=L.icon;return i.jsxs("div",{className:ce("flex flex-1 flex-col items-center gap-1 md:gap-2",$e({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(Cg,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(de,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(sF,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var C8=["PageUp","PageDown"],O8=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],E8={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Ku="Slider",[rC,Cbe,Obe]=Eh(Ku),[A8]=hr(Ku,[Obe]),[Ebe,qy]=A8(Ku),T8=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:s=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...w}=e,b=y.useRef(new Set),N=y.useRef(0),O=l==="horizontal"?Abe:Tbe,[A=[],C]=Na({prop:m,defaultProp:f,onChange:$=>{[...b.current][N.current]?.focus(),p($)}}),k=y.useRef(A);function T($){const H=Dbe(A,$);L($,H)}function M($){L($,N.current)}function R(){const $=k.current[N.current];A[N.current]!==$&&g(A)}function L($,H,{commit:V}={commit:!1}){const F=Bbe(s),G=zbe(Math.round(($-r)/s)*s+r,F),B=Tf(G,[r,a]);C((D=[])=>{const U=Pbe(D,B,H);if(Lbe(U,d*s)){N.current=U.indexOf(B);const K=String(U)!==String(D);return K&&V&&g(U),K?U:D}else return D})}return i.jsx(Ebe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:b.current,values:A,orientation:l,form:j,children:i.jsx(rC.Provider,{scope:e.__scopeSlider,children:i.jsx(rC.Slot,{scope:e.__scopeSlider,children:i.jsx(O,{"aria-disabled":u,"data-disabled":u?"":void 0,...w,ref:t,onPointerDown:Se(w.onPointerDown,()=>{u||(k.current=A)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:T,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:R,onHomeKeyDown:()=>!u&&L(r,0,{commit:!0}),onEndKeyDown:()=>!u&&L(a,A.length-1,{commit:!0}),onStepKeyDown:({event:$,direction:H})=>{if(!u){const G=C8.includes($.key)||$.shiftKey&&O8.includes($.key)?10:1,B=N.current,D=A[B],U=s*G*H;L(D+U,B,{commit:!0})}}})})})})});T8.displayName=Ku;var[k8,M8]=A8(Ku,{startEdge:"left",endEdge:"right",size:"width",direction:1}),Abe=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:s,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=qe(t,O=>g(O)),j=y.useRef(void 0),w=Bu(a),b=w==="ltr",N=b&&!s||!b&&s;function E(O){const A=j.current||p.getBoundingClientRect(),C=[0,A.width],T=pE(C,N?[n,r]:[r,n]);return j.current=A,T(O-A.left)}return i.jsx(k8,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(P8,{dir:w,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:O=>{const A=E(O.clientX);l?.(A)},onSlideMove:O=>{const A=E(O.clientX);u?.(A)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:O=>{const C=E8[N?"from-left":"from-right"].includes(O.key);f?.({event:O,direction:C?-1:1})}})})}),Tbe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:s,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=qe(t,m),g=y.useRef(void 0),x=!a;function j(w){const b=g.current||m.current.getBoundingClientRect(),N=[0,b.height],O=pE(N,x?[r,n]:[n,r]);return g.current=b,O(w-b.top)}return i.jsx(k8,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(P8,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const b=j(w.clientY);s?.(b)},onSlideMove:w=>{const b=j(w.clientY);l?.(b)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:w=>{const N=E8[x?"from-bottom":"from-top"].includes(w.key);d?.({event:w,direction:N?-1:1})}})})}),P8=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:s,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=qy(Ku,n);return i.jsx(Pe.span,{...f,ref:t,onKeyDown:Se(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):C8.concat(O8).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:Se(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:Se(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:Se(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),s(p))})})}),R8="SliderTrack",D8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=qy(R8,n);return i.jsx(Pe.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});D8.displayName=R8;var aC="SliderRange",$8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=qy(aC,n),s=M8(aC,n),l=y.useRef(null),u=qe(t,l),d=a.values.length,f=a.values.map(g=>B8(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx(Pe.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[s.startEdge]:m+"%",[s.endEdge]:p+"%"}})});$8.displayName=aC;var iC="SliderThumb",I8=y.forwardRef((e,t)=>{const n=Cbe(e.__scopeSlider),[r,a]=y.useState(null),s=qe(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(kbe,{...e,ref:s,index:l})}),kbe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...s}=e,l=qy(iC,n),u=M8(iC,n),[d,f]=y.useState(null),m=qe(t,E=>f(E)),p=d?l.form||!!d.closest("form"):!0,g=Py(d),x=l.values[r],j=x===void 0?0:B8(x,l.min,l.max),w=Rbe(r,l.values.length),b=g?.[u.size],N=b?$be(b,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(rC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx(Pe.span,{role:"slider","aria-label":e["aria-label"]||w,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...s,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:Se(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(L8,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});I8.displayName=iC;var Mbe="RadioBubbleInput",L8=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),s=qe(a,r),l=My(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx(Pe.input,{style:{display:"none"},...n,ref:s,defaultValue:t})});L8.displayName=Mbe;function Pbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,s)=>a-s)}function B8(e,t,n){const s=100/(n-t)*(e-t);return Tf(s,[0,100])}function Rbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Dbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function $be(e,t,n){const r=e/2,s=pE([0,50],[0,r]);return(r-s(t)*n)*n}function Ibe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Lbe(e,t){if(t>0){const n=Ibe(e);return Math.min(...n)>=t}return!0}function pE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Bbe(e){return(String(e).split(".")[1]||"").length}function zbe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var z8=T8,qbe=D8,Fbe=$8,Ube=I8;const vE=y.forwardRef(({className:e,...t},n)=>i.jsxs(z8,{ref:n,className:ce("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(qbe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Fbe,{className:"absolute h-full bg-primary"})}),i.jsx(Ube,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));vE.displayName=z8.displayName;const Hbe=["top","right","bottom","left"],Qs=Math.min,Jr=Math.max,Eg=Math.round,Vp=Math.floor,mi=e=>({x:e,y:e}),Wbe={left:"right",right:"left",bottom:"top",top:"bottom"},Vbe={start:"end",end:"start"};function sC(e,t,n){return Jr(e,Qs(t,n))}function is(e,t){return typeof e=="function"?e(t):e}function ss(e){return e.split("-")[0]}function Xu(e){return e.split("-")[1]}function gE(e){return e==="x"?"y":"x"}function yE(e){return e==="y"?"height":"width"}const Gbe=new Set(["top","bottom"]);function ci(e){return Gbe.has(ss(e))?"y":"x"}function xE(e){return gE(ci(e))}function Ybe(e,t,n){n===void 0&&(n=!1);const r=Xu(e),a=xE(e),s=yE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Ag(l)),[l,Ag(l)]}function Kbe(e){const t=Ag(e);return[oC(e),t,oC(t)]}function oC(e){return e.replace(/start|end/g,t=>Vbe[t])}const pL=["left","right"],vL=["right","left"],Xbe=["top","bottom"],Zbe=["bottom","top"];function Qbe(e,t,n){switch(e){case"top":case"bottom":return n?t?vL:pL:t?pL:vL;case"left":case"right":return t?Xbe:Zbe;default:return[]}}function Jbe(e,t,n,r){const a=Xu(e);let s=Qbe(ss(e),n==="start",r);return a&&(s=s.map(l=>l+"-"+a),t&&(s=s.concat(s.map(oC)))),s}function Ag(e){return e.replace(/left|right|bottom|top/g,t=>Wbe[t])}function e0e(e){return{top:0,right:0,bottom:0,left:0,...e}}function q8(e){return typeof e!="number"?e0e(e):{top:e,right:e,bottom:e,left:e}}function Tg(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function gL(e,t,n){let{reference:r,floating:a}=e;const s=ci(t),l=xE(t),u=yE(l),d=ss(t),f=s==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(Xu(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const t0e=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:l}=n,u=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=gL(f,r,d),g=r,x={},j=0;for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=is(e,t)||{};if(f==null)return{};const p=q8(m),g={x:n,y:r},x=xE(a),j=yE(x),w=await l.getDimensions(f),b=x==="y",N=b?"top":"left",E=b?"bottom":"right",O=b?"clientHeight":"clientWidth",A=s.reference[j]+s.reference[x]-g[x]-s.floating[j],C=g[x]-s.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let T=k?k[O]:0;(!T||!await(l.isElement==null?void 0:l.isElement(k)))&&(T=u.floating[O]||s.floating[j]);const M=A/2-C/2,R=T/2-w[j]/2-1,L=Qs(p[N],R),$=Qs(p[E],R),H=L,V=T-w[j]-$,F=T/2-w[j]/2+M,G=sC(H,F,V),B=!d.arrow&&Xu(a)!=null&&F!==G&&s.reference[j]/2-(FF<=0)){var $,H;const F=((($=s.flip)==null?void 0:$.index)||0)+1,G=T[F];if(G&&(!(p==="alignment"?E!==ci(G):!1)||L.every(U=>ci(U.placement)===E?U.overflows[0]>0:!0)))return{data:{index:F,overflows:L},reset:{placement:G}};let B=(H=L.filter(D=>D.overflows[0]<=0).sort((D,U)=>D.overflows[1]-U.overflows[1])[0])==null?void 0:H.placement;if(!B)switch(x){case"bestFit":{var V;const D=(V=L.filter(U=>{if(k){const K=ci(U.placement);return K===E||K==="y"}return!0}).map(U=>[U.placement,U.overflows.filter(K=>K>0).reduce((K,te)=>K+te,0)]).sort((U,K)=>U[1]-K[1])[0])==null?void 0:V[0];D&&(B=D);break}case"initialPlacement":B=u;break}if(a!==B)return{reset:{placement:B}}}return{}}}};function yL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function xL(e){return Hbe.some(t=>e[t]>=0)}const a0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=is(e,t);switch(r){case"referenceHidden":{const s=await vh(t,{...a,elementContext:"reference"}),l=yL(s,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:xL(l)}}}case"escaped":{const s=await vh(t,{...a,altBoundary:!0}),l=yL(s,n.floating);return{data:{escapedOffsets:l,escaped:xL(l)}}}default:return{}}}}},F8=new Set(["left","top"]);async function i0e(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=ss(n),u=Xu(n),d=ci(n)==="y",f=F8.has(l)?-1:1,m=s&&d?-1:1,p=is(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const s0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:l,middlewareData:u}=t,d=await i0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:s+d.y,data:{...d,placement:l}}}}},o0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:b=>{let{x:N,y:E}=b;return{x:N,y:E}}},...d}=is(e,t),f={x:n,y:r},m=await vh(t,d),p=ci(ss(a)),g=gE(p);let x=f[g],j=f[p];if(s){const b=g==="y"?"top":"left",N=g==="y"?"bottom":"right",E=x+m[b],O=x-m[N];x=sC(E,x,O)}if(l){const b=p==="y"?"top":"left",N=p==="y"?"bottom":"right",E=j+m[b],O=j-m[N];j=sC(E,j,O)}const w=u.fn({...t,[g]:x,[p]:j});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[g]:s,[p]:l}}}}}},l0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=is(e,t),m={x:n,y:r},p=ci(a),g=gE(p);let x=m[g],j=m[p];const w=is(u,t),b=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const O=g==="y"?"height":"width",A=s.reference[g]-s.floating[O]+b.mainAxis,C=s.reference[g]+s.reference[O]-b.mainAxis;xC&&(x=C)}if(f){var N,E;const O=g==="y"?"width":"height",A=F8.has(ss(a)),C=s.reference[p]-s.floating[O]+(A&&((N=l.offset)==null?void 0:N[p])||0)+(A?0:b.crossAxis),k=s.reference[p]+s.reference[O]+(A?0:((E=l.offset)==null?void 0:E[p])||0)-(A?b.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},c0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:l,elements:u}=t,{apply:d=()=>{},...f}=is(e,t),m=await vh(t,f),p=ss(a),g=Xu(a),x=ci(a)==="y",{width:j,height:w}=s.floating;let b,N;p==="top"||p==="bottom"?(b=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,b=g==="end"?"top":"bottom");const E=w-m.top-m.bottom,O=j-m.left-m.right,A=Qs(w-m[b],E),C=Qs(j-m[N],O),k=!t.middlewareData.shift;let T=A,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=O),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=E),k&&!g){const L=Jr(m.left,0),$=Jr(m.right,0),H=Jr(m.top,0),V=Jr(m.bottom,0);x?M=j-2*(L!==0||$!==0?L+$:Jr(m.left,m.right)):T=w-2*(H!==0||V!==0?H+V:Jr(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:T});const R=await l.getDimensions(u.floating);return j!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function Fy(){return typeof window<"u"}function Zu(e){return U8(e)?(e.nodeName||"").toLowerCase():"#document"}function aa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ji(e){var t;return(t=(U8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function U8(e){return Fy()?e instanceof Node||e instanceof aa(e).Node:!1}function Ha(e){return Fy()?e instanceof Element||e instanceof aa(e).Element:!1}function yi(e){return Fy()?e instanceof HTMLElement||e instanceof aa(e).HTMLElement:!1}function bL(e){return!Fy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof aa(e).ShadowRoot}const u0e=new Set(["inline","contents"]);function Wh(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Wa(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!u0e.has(a)}const d0e=new Set(["table","td","th"]);function f0e(e){return d0e.has(Zu(e))}const h0e=[":popover-open",":modal"];function Uy(e){return h0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const m0e=["transform","translate","scale","rotate","perspective"],p0e=["transform","translate","scale","rotate","perspective","filter"],v0e=["paint","layout","strict","content"];function bE(e){const t=wE(),n=Ha(e)?Wa(e):e;return m0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||p0e.some(r=>(n.willChange||"").includes(r))||v0e.some(r=>(n.contain||"").includes(r))}function g0e(e){let t=Js(e);for(;yi(t)&&!Mu(t);){if(bE(t))return t;if(Uy(t))return null;t=Js(t)}return null}function wE(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const y0e=new Set(["html","body","#document"]);function Mu(e){return y0e.has(Zu(e))}function Wa(e){return aa(e).getComputedStyle(e)}function Hy(e){return Ha(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Js(e){if(Zu(e)==="html")return e;const t=e.assignedSlot||e.parentNode||bL(e)&&e.host||ji(e);return bL(t)?t.host:t}function H8(e){const t=Js(e);return Mu(t)?e.ownerDocument?e.ownerDocument.body:e.body:yi(t)&&Wh(t)?t:H8(t)}function gh(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=H8(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),l=aa(a);if(s){const u=lC(l);return t.concat(l,l.visualViewport||[],Wh(a)?a:[],u&&n?gh(u):[])}return t.concat(a,gh(a,[],n))}function lC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function W8(e){const t=Wa(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=yi(e),s=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Eg(n)!==s||Eg(r)!==l;return u&&(n=s,r=l),{width:n,height:r,$:u}}function jE(e){return Ha(e)?e:e.contextElement}function Xc(e){const t=jE(e);if(!yi(t))return mi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=W8(t);let l=(s?Eg(n.width):n.width)/r,u=(s?Eg(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const x0e=mi(0);function V8(e){const t=aa(e);return!wE()||!t.visualViewport?x0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function b0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==aa(e)?!1:t}function gl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=jE(e);let l=mi(1);t&&(r?Ha(r)&&(l=Xc(r)):l=Xc(e));const u=b0e(s,n,r)?V8(s):mi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(s){const g=aa(s),x=r&&Ha(r)?aa(r):r;let j=g,w=lC(j);for(;w&&r&&x!==j;){const b=Xc(w),N=w.getBoundingClientRect(),E=Wa(w),O=N.left+(w.clientLeft+parseFloat(E.paddingLeft))*b.x,A=N.top+(w.clientTop+parseFloat(E.paddingTop))*b.y;d*=b.x,f*=b.y,m*=b.x,p*=b.y,d+=O,f+=A,j=aa(w),w=lC(j)}}return Tg({width:m,height:p,x:d,y:f})}function Wy(e,t){const n=Hy(e).scrollLeft;return t?t.left+n:gl(ji(e)).left+n}function G8(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Wy(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function w0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",l=ji(r),u=t?Uy(t.floating):!1;if(r===l||u&&s)return n;let d={scrollLeft:0,scrollTop:0},f=mi(1);const m=mi(0),p=yi(r);if((p||!p&&!s)&&((Zu(r)!=="body"||Wh(l))&&(d=Hy(r)),yi(r))){const x=gl(r);f=Xc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!s?G8(l,d):mi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function j0e(e){return Array.from(e.getClientRects())}function S0e(e){const t=ji(e),n=Hy(e),r=e.ownerDocument.body,a=Jr(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=Jr(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Wy(e);const u=-n.scrollTop;return Wa(r).direction==="rtl"&&(l+=Jr(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:l,y:u}}const wL=25;function _0e(e,t){const n=aa(e),r=ji(e),a=n.visualViewport;let s=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){s=a.width,l=a.height;const m=wE();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Wy(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=wL&&(s-=j)}else f<=wL&&(s+=f);return{width:s,height:l,x:u,y:d}}const N0e=new Set(["absolute","fixed"]);function C0e(e,t){const n=gl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=yi(e)?Xc(e):mi(1),l=e.clientWidth*s.x,u=e.clientHeight*s.y,d=a*s.x,f=r*s.y;return{width:l,height:u,x:d,y:f}}function jL(e,t,n){let r;if(t==="viewport")r=_0e(e,n);else if(t==="document")r=S0e(ji(e));else if(Ha(t))r=C0e(t,n);else{const a=V8(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return Tg(r)}function Y8(e,t){const n=Js(e);return n===t||!Ha(n)||Mu(n)?!1:Wa(n).position==="fixed"||Y8(n,t)}function O0e(e,t){const n=t.get(e);if(n)return n;let r=gh(e,[],!1).filter(u=>Ha(u)&&Zu(u)!=="body"),a=null;const s=Wa(e).position==="fixed";let l=s?Js(e):e;for(;Ha(l)&&!Mu(l);){const u=Wa(l),d=bE(l);!d&&u.position==="fixed"&&(a=null),(s?!d&&!a:!d&&u.position==="static"&&!!a&&N0e.has(a.position)||Wh(l)&&!d&&Y8(e,l))?r=r.filter(m=>m!==l):a=u,l=Js(l)}return t.set(e,r),r}function E0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?Uy(t)?[]:O0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=jL(t,m,a);return f.top=Jr(p.top,f.top),f.right=Qs(p.right,f.right),f.bottom=Qs(p.bottom,f.bottom),f.left=Jr(p.left,f.left),f},jL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function A0e(e){const{width:t,height:n}=W8(e);return{width:t,height:n}}function T0e(e,t,n){const r=yi(t),a=ji(t),s=n==="fixed",l=gl(e,!0,s,t);let u={scrollLeft:0,scrollTop:0};const d=mi(0);function f(){d.x=Wy(a)}if(r||!r&&!s)if((Zu(t)!=="body"||Wh(a))&&(u=Hy(t)),r){const x=gl(t,!0,s,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();s&&!r&&a&&f();const m=a&&!r&&!s?G8(a,u):mi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function a_(e){return Wa(e).position==="static"}function SL(e,t){if(!yi(e)||Wa(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return ji(e)===n&&(n=n.ownerDocument.body),n}function K8(e,t){const n=aa(e);if(Uy(e))return n;if(!yi(e)){let a=Js(e);for(;a&&!Mu(a);){if(Ha(a)&&!a_(a))return a;a=Js(a)}return n}let r=SL(e,t);for(;r&&f0e(r)&&a_(r);)r=SL(r,t);return r&&Mu(r)&&a_(r)&&!bE(r)?n:r||g0e(e)||n}const k0e=async function(e){const t=this.getOffsetParent||K8,n=this.getDimensions,r=await n(e.floating);return{reference:T0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function M0e(e){return Wa(e).direction==="rtl"}const P0e={convertOffsetParentRelativeRectToViewportRelativeRect:w0e,getDocumentElement:ji,getClippingRect:E0e,getOffsetParent:K8,getElementRects:k0e,getClientRects:j0e,getDimensions:A0e,getScale:Xc,isElement:Ha,isRTL:M0e};function X8(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function R0e(e,t){let n=null,r;const a=ji(e);function s(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),s();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Vp(p),w=Vp(a.clientWidth-(m+g)),b=Vp(a.clientHeight-(p+x)),N=Vp(m),O={rootMargin:-j+"px "+-w+"px "+-b+"px "+-N+"px",threshold:Jr(0,Qs(1,d))||1};let A=!0;function C(k){const T=k[0].intersectionRatio;if(T!==d){if(!A)return l();T?l(!1,T):r=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!X8(f,e.getBoundingClientRect())&&l(),A=!1}try{n=new IntersectionObserver(C,{...O,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,O)}n.observe(e)}return l(!0),s}function D0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=jE(e),m=a||s?[...f?gh(f):[],...gh(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),s&&N.addEventListener("resize",n)});const p=f&&u?R0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[E]=N;E&&E.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var O;(O=x)==null||O.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,w=d?gl(e):null;d&&b();function b(){const N=gl(e);w&&!X8(w,N)&&n(),w=N,j=requestAnimationFrame(b)}return n(),()=>{var N;m.forEach(E=>{a&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const $0e=s0e,I0e=o0e,L0e=r0e,B0e=c0e,z0e=a0e,_L=n0e,q0e=l0e,F0e=(e,t,n)=>{const r=new Map,a={platform:P0e,...n},s={...a.platform,_c:r};return t0e(e,t,{...a,platform:s})};var U0e=typeof document<"u",H0e=function(){},uv=U0e?y.useLayoutEffect:H0e;function kg(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!kg(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!kg(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function Z8(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function NL(e,t){const n=Z8(e);return Math.round(t*n)/n}function i_(e){const t=y.useRef(e);return uv(()=>{t.current=e}),t}function W0e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);kg(g,r)||x(r);const[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useCallback(U=>{U!==k.current&&(k.current=U,w(U))},[]),O=y.useCallback(U=>{U!==T.current&&(T.current=U,N(U))},[]),A=s||j,C=l||b,k=y.useRef(null),T=y.useRef(null),M=y.useRef(m),R=d!=null,L=i_(d),$=i_(a),H=i_(f),V=y.useCallback(()=>{if(!k.current||!T.current)return;const U={placement:t,strategy:n,middleware:g};$.current&&(U.platform=$.current),F0e(k.current,T.current,U).then(K=>{const te={...K,isPositioned:H.current!==!1};F.current&&!kg(M.current,te)&&(M.current=te,wl.flushSync(()=>{p(te)}))})},[g,t,n,$,H]);uv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(U=>({...U,isPositioned:!1})))},[f]);const F=y.useRef(!1);uv(()=>(F.current=!0,()=>{F.current=!1}),[]),uv(()=>{if(A&&(k.current=A),C&&(T.current=C),A&&C){if(L.current)return L.current(A,C,V);V()}},[A,C,V,L,R]);const G=y.useMemo(()=>({reference:k,floating:T,setReference:E,setFloating:O}),[E,O]),B=y.useMemo(()=>({reference:A,floating:C}),[A,C]),D=y.useMemo(()=>{const U={position:n,left:0,top:0};if(!B.floating)return U;const K=NL(B.floating,m.x),te=NL(B.floating,m.y);return u?{...U,transform:"translate("+K+"px, "+te+"px)",...Z8(B.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:K,top:te}},[n,u,B.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:B,floatingStyles:D}),[m,V,G,B,D])}const V0e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?_L({element:r.current,padding:a}).fn(n):{}:r?_L({element:r,padding:a}).fn(n):{}}}},G0e=(e,t)=>({...$0e(e),options:[e,t]}),Y0e=(e,t)=>({...I0e(e),options:[e,t]}),K0e=(e,t)=>({...q0e(e),options:[e,t]}),X0e=(e,t)=>({...L0e(e),options:[e,t]}),Z0e=(e,t)=>({...B0e(e),options:[e,t]}),Q0e=(e,t)=>({...z0e(e),options:[e,t]}),J0e=(e,t)=>({...V0e(e),options:[e,t]});var ewe="Arrow",Q8=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return i.jsx(Pe.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});Q8.displayName=ewe;var twe=Q8,SE="Popper",[J8,co]=hr(SE),[nwe,eU]=J8(SE),tU=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(nwe,{scope:t,anchor:r,onAnchorChange:a,children:n})};tU.displayName=SE;var nU="PopperAnchor",rU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=eU(nU,n),l=y.useRef(null),u=qe(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&s.onAnchorChange(d.current)}),r?null:i.jsx(Pe.div,{...a,ref:u})});rU.displayName=nU;var _E="PopperContent",[rwe,awe]=J8(_E),aU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...w}=e,b=eU(_E,n),[N,E]=y.useState(null),O=qe(t,ee=>E(ee)),[A,C]=y.useState(null),k=Py(A),T=k?.width??0,M=k?.height??0,R=r+(s!=="center"?"-"+s:""),L=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},$=Array.isArray(f)?f:[f],H=$.length>0,V={padding:L,boundary:$.filter(swe),altBoundary:H},{refs:F,floatingStyles:G,placement:B,isPositioned:D,middlewareData:U}=W0e({strategy:"fixed",placement:R,whileElementsMounted:(...ee)=>D0e(...ee,{animationFrame:x==="always"}),elements:{reference:b.anchor},middleware:[G0e({mainAxis:a+M,alignmentAxis:l}),d&&Y0e({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?K0e():void 0,...V}),d&&X0e({...V}),Z0e({...V,apply:({elements:ee,rects:ae,availableWidth:Z,availableHeight:ve})=>{const{width:je,height:le}=ae.reference,Re=ee.floating.style;Re.setProperty("--radix-popper-available-width",`${Z}px`),Re.setProperty("--radix-popper-available-height",`${ve}px`),Re.setProperty("--radix-popper-anchor-width",`${je}px`),Re.setProperty("--radix-popper-anchor-height",`${le}px`)}}),A&&J0e({element:A,padding:u}),owe({arrowWidth:T,arrowHeight:M}),g&&Q0e({strategy:"referenceHidden",...V})]}),[K,te]=oU(B),I=nn(j);Un(()=>{D&&I?.()},[D,I]);const z=U.arrow?.x,Y=U.arrow?.y,ne=U.arrow?.centerOffset!==0,[se,xe]=y.useState();return Un(()=>{N&&xe(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:F.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:D?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:se,"--radix-popper-transform-origin":[U.transformOrigin?.x,U.transformOrigin?.y].join(" "),...U.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(rwe,{scope:n,placedSide:K,onArrowChange:C,arrowX:z,arrowY:Y,shouldHideArrow:ne,children:i.jsx(Pe.div,{"data-side":K,"data-align":te,...w,ref:O,style:{...w.style,animation:D?void 0:"none"}})})})});aU.displayName=_E;var iU="PopperArrow",iwe={top:"bottom",right:"left",bottom:"top",left:"right"},sU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=awe(iU,r),l=iwe[s.placedSide];return i.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:i.jsx(twe,{...a,ref:n,style:{...a.style,display:"block"}})})});sU.displayName=iU;function swe(e){return e!==null}var owe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=oU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",w="";return f==="bottom"?(j=l?p:`${g}px`,w=`${-d}px`):f==="top"?(j=l?p:`${g}px`,w=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,w=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,w=l?p:`${x}px`),{data:{x:j,y:w}}}});function oU(e){const[t,n="center"]=e.split("-");return[t,n]}var Vh=tU,Gh=rU,Vy=aU,Gy=sU;function lwe(e){const t=cwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(dwe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function cwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=hwe(a),u=fwe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var uwe=Symbol("radix.slottable");function dwe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===uwe}function fwe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function hwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var lU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),mwe="VisuallyHidden",Yy=y.forwardRef((e,t)=>i.jsx(Pe.span,{...e,ref:t,style:{...lU,...e.style}}));Yy.displayName=mwe;var pwe=Yy,vwe=[" ","Enter","ArrowUp","ArrowDown"],gwe=[" ","Enter"],yl="Select",[Ky,Xy,ywe]=Eh(yl),[Qu]=hr(yl,[ywe,co]),Zy=co(),[xwe,uo]=Qu(yl),[bwe,wwe]=Qu(yl),cU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,w=Zy(t),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),k=Bu(f),[T,M]=Na({prop:r,defaultProp:a??!1,onChange:s,caller:yl}),[R,L]=Na({prop:l,defaultProp:u,onChange:d,caller:yl}),$=y.useRef(null),H=b?j||!!b.closest("form"):!0,[V,F]=y.useState(new Set),G=Array.from(V).map(B=>B.props.value).join(";");return i.jsx(Vh,{...w,children:i.jsxs(xwe,{required:x,scope:t,trigger:b,onTriggerChange:N,valueNode:E,onValueNodeChange:O,valueNodeHasChildren:A,onValueNodeHasChildrenChange:C,contentId:Fn(),value:R,onValueChange:L,open:T,onOpenChange:M,dir:k,triggerPointerDownPosRef:$,disabled:g,children:[i.jsx(Ky.Provider,{scope:t,children:i.jsx(bwe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback(B=>{F(D=>new Set(D).add(B))},[]),onNativeOptionRemove:y.useCallback(B=>{F(D=>{const U=new Set(D);return U.delete(B),U})},[]),children:n})}),H?i.jsxs(PU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:R,onChange:B=>L(B.target.value),disabled:g,form:j,children:[R===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};cU.displayName=yl;var uU="SelectTrigger",dU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=Zy(n),l=uo(uU,n),u=l.disabled||r,d=qe(t,l.onTriggerChange),f=Xy(n),m=y.useRef("touch"),[p,g,x]=DU(w=>{const b=f().filter(O=>!O.disabled),N=b.find(O=>O.value===l.value),E=$U(b,w,N);E!==void 0&&l.onValueChange(E.value)}),j=w=>{u||(l.onOpenChange(!0),x()),w&&(l.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return i.jsx(Gh,{asChild:!0,...s,children:i.jsx(Pe.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":RU(l.value)?"":void 0,...a,ref:d,onClick:Se(a.onClick,w=>{w.currentTarget.focus(),m.current!=="mouse"&&j(w)}),onPointerDown:Se(a.onPointerDown,w=>{m.current=w.pointerType;const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(j(w),w.preventDefault())}),onKeyDown:Se(a.onKeyDown,w=>{const b=p.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(b&&w.key===" ")&&vwe.includes(w.key)&&(j(),w.preventDefault())})})})});dU.displayName=uU;var fU="SelectValue",hU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:l="",...u}=e,d=uo(fU,n),{onValueNodeHasChildrenChange:f}=d,m=s!==void 0,p=qe(t,d.onValueNodeChange);return Un(()=>{f(m)},[f,m]),i.jsx(Pe.span,{...u,ref:p,style:{pointerEvents:"none"},children:RU(d.value)?i.jsx(i.Fragment,{children:l}):s})});hU.displayName=fU;var jwe="SelectIcon",mU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx(Pe.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});mU.displayName=jwe;var Swe="SelectPortal",pU=e=>i.jsx(El,{asChild:!0,...e});pU.displayName=Swe;var xl="SelectContent",vU=y.forwardRef((e,t)=>{const n=uo(xl,e.__scopeSelect),[r,a]=y.useState();if(Un(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?wl.createPortal(i.jsx(gU,{scope:e.__scopeSelect,children:i.jsx(Ky.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),s):null}return i.jsx(yU,{...e,ref:t})});vU.displayName=xl;var $a=10,[gU,fo]=Qu(xl),_we="SelectContentImpl",Nwe=lwe("SelectContent.RemoveScroll"),yU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b,...N}=e,E=uo(xl,n),[O,A]=y.useState(null),[C,k]=y.useState(null),T=qe(t,ee=>A(ee)),[M,R]=y.useState(null),[L,$]=y.useState(null),H=Xy(n),[V,F]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(O)return Iy(O)},[O]),Dy();const B=y.useCallback(ee=>{const[ae,...Z]=H().map(le=>le.ref.current),[ve]=Z.slice(-1),je=document.activeElement;for(const le of ee)if(le===je||(le?.scrollIntoView({block:"nearest"}),le===ae&&C&&(C.scrollTop=0),le===ve&&C&&(C.scrollTop=C.scrollHeight),le?.focus(),document.activeElement!==je))return},[H,C]),D=y.useCallback(()=>B([M,O]),[B,M,O]);y.useEffect(()=>{V&&D()},[V,D]);const{onOpenChange:U,triggerPointerDownPosRef:K}=E;y.useEffect(()=>{if(O){let ee={x:0,y:0};const ae=ve=>{ee={x:Math.abs(Math.round(ve.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(ve.pageY)-(K.current?.y??0))}},Z=ve=>{ee.x<=10&&ee.y<=10?ve.preventDefault():O.contains(ve.target)||U(!1),document.removeEventListener("pointermove",ae),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",ae),document.addEventListener("pointerup",Z,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ae),document.removeEventListener("pointerup",Z,{capture:!0})}}},[O,U,K]),y.useEffect(()=>{const ee=()=>U(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[U]);const[te,I]=DU(ee=>{const ae=H().filter(je=>!je.disabled),Z=ae.find(je=>je.ref.current===document.activeElement),ve=$U(ae,ee,Z);ve&&setTimeout(()=>ve.ref.current.focus())}),z=y.useCallback((ee,ae,Z)=>{const ve=!G.current&&!Z;(E.value!==void 0&&E.value===ae||ve)&&(R(ee),ve&&(G.current=!0))},[E.value]),Y=y.useCallback(()=>O?.focus(),[O]),ne=y.useCallback((ee,ae,Z)=>{const ve=!G.current&&!Z;(E.value!==void 0&&E.value===ae||ve)&&$(ee)},[E.value]),se=r==="popper"?cC:xU,xe=se===cC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b}:{};return i.jsx(gU,{scope:n,content:O,viewport:C,onViewportChange:k,itemRefCallback:z,selectedItem:M,onItemLeave:Y,itemTextRefCallback:ne,focusSelectedItem:D,selectedItemText:L,position:r,isPositioned:V,searchRef:te,children:i.jsx(Hh,{as:Nwe,allowPinchZoom:!0,children:i.jsx(Uh,{asChild:!0,trapped:E.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:Se(a,ee=>{E.trigger?.focus({preventScroll:!0}),ee.preventDefault()}),children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:i.jsx(se,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:ee=>ee.preventDefault(),...N,...xe,onPlaced:()=>F(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:Se(N.onKeyDown,ee=>{const ae=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!ae&&ee.key.length===1&&I(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let ve=H().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(ve=ve.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const je=ee.target,le=ve.indexOf(je);ve=ve.slice(le+1)}setTimeout(()=>B(ve)),ee.preventDefault()}})})})})})})});yU.displayName=_we;var Cwe="SelectItemAlignedPosition",xU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=uo(xl,n),l=fo(xl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=qe(t,T=>m(T)),g=Xy(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:N,focusSelectedItem:E}=l,O=y.useCallback(()=>{if(s.trigger&&s.valueNode&&u&&f&&w&&b&&N){const T=s.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),L=N.getBoundingClientRect();if(s.dir!=="rtl"){const je=L.left-M.left,le=R.left-je,Re=T.left-le,_e=T.width+Re,fe=Math.max(_e,M.width),pe=window.innerWidth-$a,Le=Tf(le,[$a,Math.max($a,pe-fe)]);u.style.minWidth=_e+"px",u.style.left=Le+"px"}else{const je=M.right-L.right,le=window.innerWidth-R.right-je,Re=window.innerWidth-T.right-le,_e=T.width+Re,fe=Math.max(_e,M.width),pe=window.innerWidth-$a,Le=Tf(le,[$a,Math.max($a,pe-fe)]);u.style.minWidth=_e+"px",u.style.right=Le+"px"}const $=g(),H=window.innerHeight-$a*2,V=w.scrollHeight,F=window.getComputedStyle(f),G=parseInt(F.borderTopWidth,10),B=parseInt(F.paddingTop,10),D=parseInt(F.borderBottomWidth,10),U=parseInt(F.paddingBottom,10),K=G+B+V+U+D,te=Math.min(b.offsetHeight*5,K),I=window.getComputedStyle(w),z=parseInt(I.paddingTop,10),Y=parseInt(I.paddingBottom,10),ne=T.top+T.height/2-$a,se=H-ne,xe=b.offsetHeight/2,ee=b.offsetTop+xe,ae=G+B+ee,Z=K-ae;if(ae<=ne){const je=$.length>0&&b===$[$.length-1].ref.current;u.style.bottom="0px";const le=f.clientHeight-w.offsetTop-w.offsetHeight,Re=Math.max(se,xe+(je?Y:0)+le+D),_e=ae+Re;u.style.height=_e+"px"}else{const je=$.length>0&&b===$[0].ref.current;u.style.top="0px";const Re=Math.max(ne,G+w.offsetTop+(je?z:0)+xe)+Z;u.style.height=Re+"px",w.scrollTop=ae-ne+w.offsetTop}u.style.margin=`${$a}px 0`,u.style.minHeight=te+"px",u.style.maxHeight=H+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,s.trigger,s.valueNode,u,f,w,b,N,s.dir,r]);Un(()=>O(),[O]);const[A,C]=y.useState();Un(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(T=>{T&&j.current===!0&&(O(),E?.(),j.current=!1)},[O,E]);return i.jsx(Ewe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:i.jsx(Pe.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});xU.displayName=Cwe;var Owe="SelectPopperPosition",cC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=$a,...s}=e,l=Zy(n);return i.jsx(Vy,{...l,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.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)"}})});cC.displayName=Owe;var[Ewe,NE]=Qu(xl,{}),uC="SelectViewport",bU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=fo(uC,n),l=NE(uC,n),u=qe(t,s.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(Ky.Slot,{scope:n,children:i.jsx(Pe.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:Se(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-$a*2,w=parseFloat(p.style.minHeight),b=parseFloat(p.style.height),N=Math.max(w,b);if(N0?A:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});bU.displayName=uC;var wU="SelectGroup",[Awe,Twe]=Qu(wU),kwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Fn();return i.jsx(Awe,{scope:n,id:a,children:i.jsx(Pe.div,{role:"group","aria-labelledby":a,...r,ref:t})})});kwe.displayName=wU;var jU="SelectLabel",SU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Twe(jU,n);return i.jsx(Pe.div,{id:a.id,...r,ref:t})});SU.displayName=jU;var Mg="SelectItem",[Mwe,_U]=Qu(Mg),NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...l}=e,u=uo(Mg,n),d=fo(Mg,n),f=u.value===r,[m,p]=y.useState(s??""),[g,x]=y.useState(!1),j=qe(t,E=>d.itemRefCallback?.(E,r,a)),w=Fn(),b=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Mwe,{scope:n,value:r,disabled:a,textId:w,isSelected:f,onItemTextChange:y.useCallback(E=>{p(O=>O||(E?.textContent??"").trim())},[]),children:i.jsx(Ky.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx(Pe.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:Se(l.onFocus,()=>x(!0)),onBlur:Se(l.onBlur,()=>x(!1)),onClick:Se(l.onClick,()=>{b.current!=="mouse"&&N()}),onPointerUp:Se(l.onPointerUp,()=>{b.current==="mouse"&&N()}),onPointerDown:Se(l.onPointerDown,E=>{b.current=E.pointerType}),onPointerMove:Se(l.onPointerMove,E=>{b.current=E.pointerType,a?d.onItemLeave?.():b.current==="mouse"&&E.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Se(l.onPointerLeave,E=>{E.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:Se(l.onKeyDown,E=>{d.searchRef?.current!==""&&E.key===" "||(gwe.includes(E.key)&&N(),E.key===" "&&E.preventDefault())})})})})});NU.displayName=Mg;var pf="SelectItemText",CU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,l=uo(pf,n),u=fo(pf,n),d=_U(pf,n),f=wwe(pf,n),[m,p]=y.useState(null),g=qe(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return Un(()=>(w(j),()=>b(j)),[w,b,j]),i.jsxs(i.Fragment,{children:[i.jsx(Pe.span,{id:d.textId,...s,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?wl.createPortal(s.children,l.valueNode):null]})});CU.displayName=pf;var OU="SelectItemIndicator",EU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return _U(OU,n).isSelected?i.jsx(Pe.span,{"aria-hidden":!0,...r,ref:t}):null});EU.displayName=OU;var dC="SelectScrollUpButton",AU=y.forwardRef((e,t)=>{const n=fo(dC,e.__scopeSelect),r=NE(dC,e.__scopeSelect),[a,s]=y.useState(!1),l=qe(t,r.onScrollButtonChange);return Un(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;s(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(kU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});AU.displayName=dC;var fC="SelectScrollDownButton",TU=y.forwardRef((e,t)=>{const n=fo(fC,e.__scopeSelect),r=NE(fC,e.__scopeSelect),[a,s]=y.useState(!1),l=qe(t,r.onScrollButtonChange);return Un(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(kU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});TU.displayName=fC;var kU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=fo("SelectScrollButton",n),l=y.useRef(null),u=Xy(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Un(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx(Pe.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:Se(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:Se(a.onPointerMove,()=>{s.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:Se(a.onPointerLeave,()=>{d()})})}),Pwe="SelectSeparator",MU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx(Pe.div,{"aria-hidden":!0,...r,ref:t})});MU.displayName=Pwe;var hC="SelectArrow",Rwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Zy(n),s=uo(hC,n),l=fo(hC,n);return s.open&&l.position==="popper"?i.jsx(Gy,{...a,...r,ref:t}):null});Rwe.displayName=hC;var Dwe="SelectBubbleInput",PU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),s=qe(r,a),l=My(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx(Pe.select,{...n,style:{...lU,...n.style},ref:s,defaultValue:t})});PU.displayName=Dwe;function RU(e){return e===""||e===void 0}function DU(e){const t=nn(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),s=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}function $U(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=$we(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function $we(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Iwe=cU,IU=dU,Lwe=hU,Bwe=mU,zwe=pU,LU=vU,qwe=bU,BU=SU,zU=NU,Fwe=CU,Uwe=EU,qU=AU,FU=TU,UU=MU;const Et=Iwe,At=Lwe,wt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(IU,{ref:r,className:ce("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx(Bwe,{asChild:!0,children:i.jsx(fh,{className:"h-4 w-4 opacity-50"})})]}));wt.displayName=IU.displayName;const HU=y.forwardRef(({className:e,...t},n)=>i.jsx(qU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(VN,{className:"h-4 w-4"})}));HU.displayName=qU.displayName;const WU=y.forwardRef(({className:e,...t},n)=>i.jsx(FU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(fh,{className:"h-4 w-4"})}));WU.displayName=FU.displayName;const jt=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(zwe,{children:i.jsxs(LU,{ref:a,className:ce("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(HU,{}),i.jsx(qwe,{className:ce("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(WU,{})]})}));jt.displayName=LU.displayName;const Hwe=y.forwardRef(({className:e,...t},n)=>i.jsx(BU,{ref:n,className:ce("px-2 py-1.5 text-sm font-semibold",e),...t}));Hwe.displayName=BU.displayName;const Me=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(zU,{ref:r,className:ce("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Uwe,{children:i.jsx(il,{className:"h-4 w-4"})})}),i.jsx(Fwe,{children:t})]}));Me.displayName=zU.displayName;const Wwe=y.forwardRef(({className:e,...t},n)=>i.jsx(UU,{ref:n,className:ce("-mx-1 my-1 h-px bg-muted",e),...t}));Wwe.displayName=UU.displayName;function Vwe(e){const t=Gwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Kwe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function Gwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=Zwe(a),u=Xwe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ywe=Symbol("radix.slottable");function Kwe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ywe}function Xwe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function Zwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Qy="Popover",[VU]=hr(Qy,[co]),Yh=co(),[Qwe,ho]=VU(Qy),GU=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=Yh(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Na({prop:r,defaultProp:a??!1,onChange:s,caller:Qy});return i.jsx(Vh,{...u,children:i.jsx(Qwe,{scope:t,contentId:Fn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};GU.displayName=Qy;var YU="PopoverAnchor",Jwe=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=ho(YU,n),s=Yh(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(Gh,{...s,...r,ref:t})});Jwe.displayName=YU;var KU="PopoverTrigger",XU=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=ho(KU,n),s=Yh(n),l=qe(t,a.triggerRef),u=i.jsx(Pe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":tH(a.open),...r,ref:l,onClick:Se(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(Gh,{asChild:!0,...s,children:u})});XU.displayName=KU;var CE="PopoverPortal",[eje,tje]=VU(CE,{forceMount:void 0}),ZU=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,s=ho(CE,t);return i.jsx(eje,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||s.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};ZU.displayName=CE;var Pu="PopoverContent",QU=y.forwardRef((e,t)=>{const n=tje(Pu,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,s=ho(Pu,e.__scopePopover);return i.jsx(Rn,{present:r||s.open,children:s.modal?i.jsx(rje,{...a,ref:t}):i.jsx(aje,{...a,ref:t})})});QU.displayName=Pu;var nje=Vwe("PopoverContent.RemoveScroll"),rje=y.forwardRef((e,t)=>{const n=ho(Pu,e.__scopePopover),r=y.useRef(null),a=qe(t,r),s=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return Iy(l)},[]),i.jsx(Hh,{as:nje,allowPinchZoom:!0,children:i.jsx(JU,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Se(e.onCloseAutoFocus,l=>{l.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Se(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;s.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:Se(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),aje=y.forwardRef((e,t)=>{const n=ho(Pu,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(JU,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),JU=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=ho(Pu,n),x=Yh(n);return Dy(),i.jsx(Uh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Vy,{"data-state":tH(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),eH="PopoverClose",ije=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=ho(eH,n);return i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,()=>a.onOpenChange(!1))})});ije.displayName=eH;var sje="PopoverArrow",oje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=Yh(n);return i.jsx(Gy,{...a,...r,ref:t})});oje.displayName=sje;function tH(e){return e?"open":"closed"}var lje=GU,cje=XU,uje=ZU,nH=QU;const eo=lje,to=cje,os=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(uje,{children:i.jsx(nH,{ref:a,align:t,sideOffset:n,className:ce("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));os.displayName=nH.displayName;const Ju="/api/webui/config";async function dje(){const t=await(await Qe(`${Ju}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function Pg(){const t=await(await Qe(`${Ju}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function fje(e){const n=await(await Qe(`${Ju}/bot`,{method:"POST",headers:lt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function rH(e){const n=await(await Qe(`${Ju}/model`,{method:"POST",headers:lt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function hje(e,t){const r=await(await Qe(`${Ju}/bot/section/${e}`,{method:"POST",headers:lt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function mC(e,t){const r=await(await Qe(`${Ju}/model/section/${e}`,{method:"POST",headers:lt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}const mje=Yu("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),Jy=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx("div",{ref:r,role:"alert",className:ce(mje({variant:t}),e),...n}));Jy.displayName="Alert";const pje=y.forwardRef(({className:e,...t},n)=>i.jsx("h5",{ref:n,className:ce("mb-1 font-medium leading-none tracking-tight",e),...t}));pje.displayName="AlertTitle";const ex=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm [&_p]:leading-relaxed",e),...t}));ex.displayName="AlertDescription";function vje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,s]=y.useState(!1),[l,u]=y.useState(!1),{toast:d}=mr(),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[T,M]=y.useState(null),[R,L]=y.useState(null),[$,H]=y.useState(null),[V,F]=y.useState(null),[G,B]=y.useState(null),[D,U]=y.useState(null),[K,te]=y.useState(null),[I,z]=y.useState(null),[Y,ne]=y.useState(null),[se,xe]=y.useState(null),[ee,ae]=y.useState(null),Z=y.useRef(null),ve=y.useRef(!0),je=y.useRef({}),le=y.useCallback(async()=>{try{t(!0);const pe=await dje();je.current=pe,m(pe.bot),g(pe.personality);const Le=pe.chat;Le.talk_value_rules||(Le.talk_value_rules=[]),j(Le),b(pe.expression),E(pe.emoji),A(pe.memory),k(pe.tool),M(pe.mood),L(pe.voice),H(pe.lpmm_knowledge),F(pe.keyword_reaction),B(pe.response_post_process),U(pe.chinese_typo),te(pe.response_splitter),z(pe.log),ne(pe.debug),xe(pe.maim_message),ae(pe.telemetry),u(!1),ve.current=!1}catch(pe){console.error("加载配置失败:",pe),d({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[d]);y.useEffect(()=>{le()},[le]);const Re=y.useCallback(async(pe,Le)=>{if(!ve.current)try{s(!0),await hje(pe,Le),u(!1)}catch(It){console.error(`自动保存 ${pe} 失败:`,It),u(!0)}finally{s(!1)}},[]),_e=y.useCallback((pe,Le)=>{ve.current||(u(!0),Z.current&&clearTimeout(Z.current),Z.current=setTimeout(()=>{Re(pe,Le)},2e3))},[Re]);y.useEffect(()=>{f&&!ve.current&&_e("bot",f)},[f,_e]),y.useEffect(()=>{p&&!ve.current&&_e("personality",p)},[p,_e]),y.useEffect(()=>{x&&!ve.current&&_e("chat",x)},[x,_e]),y.useEffect(()=>{w&&!ve.current&&_e("expression",w)},[w,_e]),y.useEffect(()=>{N&&!ve.current&&_e("emoji",N)},[N,_e]),y.useEffect(()=>{O&&!ve.current&&_e("memory",O)},[O,_e]),y.useEffect(()=>{C&&!ve.current&&_e("tool",C)},[C,_e]),y.useEffect(()=>{T&&!ve.current&&_e("mood",T)},[T,_e]),y.useEffect(()=>{R&&!ve.current&&_e("voice",R)},[R,_e]),y.useEffect(()=>{$&&!ve.current&&_e("lpmm_knowledge",$)},[$,_e]),y.useEffect(()=>{V&&!ve.current&&_e("keyword_reaction",V)},[V,_e]),y.useEffect(()=>{G&&!ve.current&&_e("response_post_process",G)},[G,_e]),y.useEffect(()=>{D&&!ve.current&&_e("chinese_typo",D)},[D,_e]),y.useEffect(()=>{K&&!ve.current&&_e("response_splitter",K)},[K,_e]),y.useEffect(()=>{I&&!ve.current&&_e("log",I)},[I,_e]),y.useEffect(()=>{Y&&!ve.current&&_e("debug",Y)},[Y,_e]),y.useEffect(()=>{se&&!ve.current&&_e("maim_message",se)},[se,_e]),y.useEffect(()=>{ee&&!ve.current&&_e("telemetry",ee)},[ee,_e]);const fe=async()=>{try{r(!0),Z.current&&clearTimeout(Z.current);const pe={...je.current,bot:f,personality:p,chat:x,expression:w,emoji:N,memory:O,tool:C,mood:T,voice:R,lpmm_knowledge:$,keyword_reaction:V,response_post_process:G,chinese_typo:D,response_splitter:K,log:I,debug:Y,maim_message:se,telemetry:ee};await fje(pe),u(!1),d({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(pe){console.error("保存配置失败:",pe),d({title:"保存失败",description:pe.message,variant:"destructive"})}finally{r(!1)}};return e?i.jsx(Vt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs(de,{onClick:fe,disabled:n||a||!l,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(nE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]})]}),i.jsxs(Jy,{children:[i.jsx(Au,{className:"h-4 w-4"}),i.jsxs(ex,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),"才能生效"]})]}),i.jsxs(ul,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(Zs,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Ot,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Ot,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Ot,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Ot,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Ot,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Ot,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Ot,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Ot,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Ot,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Ot,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(en,{value:"bot",className:"space-y-4",children:f&&i.jsx(gje,{config:f,onChange:m})}),i.jsx(en,{value:"personality",className:"space-y-4",children:p&&i.jsx(yje,{config:p,onChange:g})}),i.jsx(en,{value:"chat",className:"space-y-4",children:x&&i.jsx(xje,{config:x,onChange:j})}),i.jsx(en,{value:"expression",className:"space-y-4",children:w&&i.jsx(bje,{config:w,onChange:b})}),i.jsx(en,{value:"features",className:"space-y-4",children:N&&O&&C&&i.jsx(wje,{emojiConfig:N,memoryConfig:O,toolConfig:C,onEmojiChange:E,onMemoryChange:A,onToolChange:k})}),i.jsx(en,{value:"processing",className:"space-y-4",children:V&&G&&D&&K&&i.jsx(jje,{keywordReactionConfig:V,responsePostProcessConfig:G,chineseTypoConfig:D,responseSplitterConfig:K,onKeywordReactionChange:F,onResponsePostProcessChange:B,onChineseTypoChange:U,onResponseSplitterChange:te})}),i.jsx(en,{value:"mood",className:"space-y-4",children:T&&i.jsx(Sje,{config:T,onChange:M})}),i.jsx(en,{value:"voice",className:"space-y-4",children:R&&i.jsx(_je,{config:R,onChange:L})}),i.jsx(en,{value:"lpmm",className:"space-y-4",children:$&&i.jsx(Nje,{config:$,onChange:H})}),i.jsxs(en,{value:"other",className:"space-y-4",children:[I&&i.jsx(Cje,{config:I,onChange:z}),Y&&i.jsx(Oje,{config:Y,onChange:ne}),se&&i.jsx(Eje,{config:se,onChange:xe}),ee&&i.jsx(Aje,{config:ee,onChange:ae})]})]})]})})}function gje({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},s=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"platform",children:"平台"}),i.jsx(Ne,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ne,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"其他平台账号"}),i.jsxs(de,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"别名"}),i.jsxs(de,{onClick:s,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function yje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=s=>{t({...e,states:e.states.filter((l,u)=>u!==s)})},a=(s,l)=>{const u=[...e.states];u[s]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"personality",children:"人格特质"}),i.jsx(Wt,{id:"personality",value:e.personality,onChange:s=>t({...e,personality:s.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Wt,{id:"reply_style",value:e.reply_style,onChange:s=>t({...e,reply_style:s.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"interest",children:"兴趣"}),i.jsx(Wt,{id:"interest",value:e.interest,onChange:s=>t({...e,interest:s.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Wt,{id:"plan_style",value:e.plan_style,onChange:s=>t({...e,plan_style:s.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Wt,{id:"visual_style",value:e.visual_style,onChange:s=>t({...e,visual_style:s.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Wt,{id:"private_plan_style",value:e.private_plan_style,onChange:s=>t({...e,private_plan_style:s.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"状态列表(人格多样性)"}),i.jsxs(de,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((s,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Wt,{value:s,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsx(jn,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ne,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:s=>t({...e,state_probability:parseFloat(s.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function xje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},s=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[w,b]=y.useState("59");y.useEffect(()=>{const E=u.split("-");if(E.length===2){const[O,A]=E,[C,k]=O.split(":"),[T,M]=A.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),T&&j(T.padStart(2,"0")),M&&b(M.padStart(2,"0"))}},[u]);const N=(E,O,A,C)=>{const k=`${E}:${O}-${A}:${C}`;d(k)};return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(sl,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(os,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"小时"}),i.jsxs(Et,{value:f,onValueChange:E=>{m(E),N(E,p,x,w)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(Me,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"分钟"}),i.jsxs(Et,{value:p,onValueChange:E=>{g(E),N(f,E,x,w)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(Me,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"小时"}),i.jsxs(Et,{value:x,onValueChange:E=>{j(E),N(f,p,E,w)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(Me,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"分钟"}),i.jsxs(Et,{value:w,onValueChange:E=>{b(E),N(f,p,x,E)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(Me,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(os,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ne,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ne,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ne,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ne,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(J,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(J,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(de,{onClick:n,size:"sm",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{variant:"ghost",size:"sm",children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Et,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"global",children:"全局配置"}),i.jsx(Me,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Et,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"qq",children:"QQ"}),i.jsx(Me,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Et,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"group",children:"群组(group)"}),i.jsx(Me,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(s,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ne,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(vE,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function bje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const w=[...e.learning_list];w[g][x]=j,t({...e,learning_list:w})},s=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(os,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:w})=>{const b=w.includes(g)||g==="*",[N,E]=y.useState(!b);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ne,{value:g,onChange:O=>p(x,j,O.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),w.length>0&&i.jsx(de,{size:"sm",variant:"outline",onClick:()=>E(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(Et,{value:g,onValueChange:O=>p(x,j,O),children:[i.jsx(wt,{className:"flex-1",children:i.jsx(At,{placeholder:"选择聊天流"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"*",children:"* (全局共享)"}),w.map((O,A)=>i.jsx(Me,{value:O,children:O},A))]})]}),i.jsx(de,{size:"sm",variant:"outline",onClick:()=>E(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((w,b)=>b!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const w=[...e.expression_groups];w[g][x]=j,t({...e,expression_groups:w})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(de,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((A,C)=>C!==x&&A[0]===""),w=g[0]==="",b=g[0].split(":"),N=b[0]||"qq",E=b[1]||"",O=b[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",w&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(s,{rule:g}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Et,{value:w?"global":"specific",onValueChange:A=>{A==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!w,children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"global",children:"全局配置"}),i.jsx(Me,{value:"specific",disabled:j&&!w,children:"详细配置"})]})]}),j&&!w&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!w&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Et,{value:N,onValueChange:A=>{a(x,0,`${A}:${E}:${O}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"qq",children:"QQ"}),i.jsx(Me,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:E,onChange:A=>{a(x,0,`${N}:${A.target.value}:${O}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Et,{value:O,onValueChange:A=>{a(x,0,`${N}:${E}:${A}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"group",children:"群组(group)"}),i.jsx(Me,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(at,{checked:g[1]==="enable",onCheckedChange:A=>a(x,1,A?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(at,{checked:g[2]==="enable",onCheckedChange:A=>a(x,2,A?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:A=>{const C=parseFloat(A.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(vE,{value:[parseFloat(g[3])||1],onValueChange:A=>a(x,3,A[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(de,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(w=>w[0]).filter(w=>w!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(de,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(tr,{className:"h-4 w-4"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((w,b)=>i.jsx(l,{member:w,groupIndex:x,memberIndex:b,availableChatIds:j},b))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function wje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:s}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>s({...n,enable_tool:l})}),i.jsx(J,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ne,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ne,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(J,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(J,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(J,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(J,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function jje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:s,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=A=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==A)})},m=(A,C,k)=>{const T=[...e.regex_rules];C==="regex"&&typeof k=="string"?T[A]={...T[A],regex:[k]}:C==="reaction"&&typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,regex_rules:T})},p=({regex:A,reaction:C,onRegexChange:k,onReactionChange:T})=>{const[M,R]=y.useState(!1),[L,$]=y.useState(""),[H,V]=y.useState(null),[F,G]=y.useState(""),[B,D]=y.useState({}),[U,K]=y.useState(""),te=y.useRef(null),[I,z]=y.useState("build"),Y=ee=>ee.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),ne=(ee,ae=0)=>{const Z=te.current;if(!Z)return;const ve=Z.selectionStart||0,je=Z.selectionEnd||0,le=A.substring(0,ve)+ee+A.substring(je);k(le),setTimeout(()=>{const Re=ve+ee.length+ae;Z.setSelectionRange(Re,Re),Z.focus()},0)};y.useEffect(()=>{if(!A||!L){V(null),D({}),K(C),G("");return}try{const ee=Y(A),ae=new RegExp(ee,"g"),Z=L.match(ae);V(Z),G("");const je=new RegExp(ee).exec(L);if(je&&je.groups){D(je.groups);let le=C;Object.entries(je.groups).forEach(([Re,_e])=>{le=le.replace(new RegExp(`\\[${Re}\\]`,"g"),_e||"")}),K(le)}else D({}),K(C)}catch(ee){G(ee.message),V(null),D({}),K(C)}},[A,L,C]);const se=()=>{if(!L||!H||H.length===0)return i.jsx("span",{className:"text-muted-foreground",children:L||"请输入测试文本"});try{const ee=Y(A),ae=new RegExp(ee,"g");let Z=0;const ve=[];let je;for(;(je=ae.exec(L))!==null;)je.index>Z&&ve.push(i.jsx("span",{children:L.substring(Z,je.index)},`text-${Z}`)),ve.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),Z=je.index+je[0].length;return Z)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(nr,{open:M,onOpenChange:R,children:[i.jsx(e8,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(_g,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"正则表达式编辑器"}),i.jsx(dr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Vt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(ul,{value:I,onValueChange:ee=>z(ee),className:"w-full",children:[i.jsxs(Zs,{className:"grid w-full grid-cols-2",children:[i.jsx(Ot,{value:"build",children:"🔧 构建器"}),i.jsx(Ot,{value:"test",children:"🧪 测试器"})]}),i.jsxs(en,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ne,{ref:te,value:A,onChange:ee=>k(ee.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Wt,{value:C,onChange:ee=>T(ee.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[xe.map(ee=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ee.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ee.items.map(ae=>i.jsx(de,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>ne(ae.pattern,ae.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:ae.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:ae.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:ae.desc})]})},ae.label))})]},ee.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(de,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(de,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(de,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(en,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:A||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Wt,{id:"test-text",value:L,onChange:ee=>$(ee.target.value),placeholder:`在此输入要测试的文本... +例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),F&&i.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[i.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),i.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:F})]}),!F&&L&&i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex items-center gap-2",children:H&&H.length>0?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),i.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",H.length," 处)"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),i.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"匹配高亮"}),i.jsx(Vt,{className:"h-40 rounded-md bg-muted p-3",children:i.jsx("div",{className:"text-sm break-words",children:se()})})]}),Object.keys(B).length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"命名捕获组"}),i.jsx(Vt,{className:"h-32 rounded-md border p-3",children:i.jsx("div",{className:"space-y-2",children:Object.entries(B).map(([ee,ae])=>i.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ee,"]"]}),i.jsx("span",{className:"text-muted-foreground",children:"="}),i.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:ae})]},ee))})})]}),Object.keys(B).length>0&&C&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"Reaction 替换预览"}),i.jsx(Vt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:i.jsx("div",{className:"text-sm break-words",children:U})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),i.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),i.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),i.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},g=()=>{a({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},x=A=>{a({...e,keyword_rules:e.keyword_rules.filter((C,k)=>k!==A)})},j=(A,C,k)=>{const T=[...e.keyword_rules];typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,keyword_rules:T})},w=A=>{const C=[...e.keyword_rules];C[A]={...C[A],keywords:[...C[A].keywords||[],""]},a({...e,keyword_rules:C})},b=(A,C)=>{const k=[...e.keyword_rules];k[A]={...k[A],keywords:(k[A].keywords||[]).filter((T,M)=>M!==C)},a({...e,keyword_rules:k})},N=(A,C,k)=>{const T=[...e.keyword_rules],M=[...T[A].keywords||[]];M[C]=k,T[A]={...T[A],keywords:M},a({...e,keyword_rules:T})},E=({rule:A})=>{const C=`{ regex = [${(A.regex||[]).map(k=>`"${k}"`).join(", ")}], reaction = "${A.reaction}" }`;return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(os,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Vt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},O=({rule:A})=>{const C=`[[keyword_reaction.keyword_rules]] +keywords = [${(A.keywords||[]).map(k=>`"${k}"`).join(", ")}] +reaction = "${A.reaction}"`;return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(os,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Vt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),i.jsxs(de,{onClick:d,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(p,{regex:A.regex&&A.regex[0]||"",reaction:A.reaction,onRegexChange:k=>m(C,"regex",k),onReactionChange:k=>m(C,"reaction",k)}),i.jsx(E,{rule:A}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除正则规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>f(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),i.jsx(Ne,{value:A.regex&&A.regex[0]||"",onChange:k=>m(C,"regex",k.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Wt,{value:A.reaction,onChange:k=>m(C,"reaction",k.target.value),placeholder:`触发后麦麦的反应... +可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(de,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(O,{rule:A}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(de,{onClick:()=>w(C),size:"sm",variant:"ghost",children:[i.jsx(tr,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(A.keywords||[]).map((k,T)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ne,{value:k,onChange:M=>N(C,T,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(de,{onClick:()=>b(C,T),size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})]},T)),(!A.keywords||A.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Wt,{value:A.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:A=>s({...t,enable_response_post_process:A})}),i.jsx(J,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(at,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:A=>l({...n,enable:A})}),i.jsx(J,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ne,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:A=>l({...n,error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ne,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:A=>l({...n,min_freq:parseInt(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ne,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:A=>l({...n,tone_error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ne,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:A=>l({...n,word_replace_rate:parseFloat(A.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(at,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:A=>u({...r,enable:A})}),i.jsx(J,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ne,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:A=>u({...r,max_length:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ne,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:A=>u({...r,max_sentence_num:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:A=>u({...r,enable_kaomoji_protection:A})}),i.jsx(J,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:A=>u({...r,enable_overflow_return_all:A})}),i.jsx(J,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function Sje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"情绪更新阈值"}),i.jsx(Ne,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"情感特征"}),i.jsx(Wt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function _je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function Nje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"LPMM 模式"}),i.jsxs(Et,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(wt,{children:i.jsx(At,{placeholder:"选择 LPMM 模式"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"classic",children:"经典模式"}),i.jsx(Me,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"同义词搜索 TopK"}),i.jsx(Ne,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"同义词阈值"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"实体提取线程数"}),i.jsx(Ne,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"嵌入向量维度"}),i.jsx(Ne,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function Cje({config:e,onChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),s("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日期格式"}),i.jsx(Ne,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日志级别样式"}),i.jsxs(Et,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:p.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日志文本颜色"}),i.jsxs(Et,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:g.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"全局日志级别"}),i.jsxs(Et,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"控制台日志级别"}),i.jsxs(Et,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"文件日志级别"}),i.jsxs(Et,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(de,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(de,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(Et,{value:a,onValueChange:s,children:[i.jsx(wt,{className:"w-32",children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]}),i.jsx(de,{onClick:d,size:"sm",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(de,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function Oje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(at,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(at,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(at,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(at,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function Eje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},s=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(at,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"主机地址"}),i.jsx(Ne,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"端口号"}),i.jsx(Ne,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"连接模式"}),i.jsxs(Et,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"ws",children:"WebSocket (ws)"}),i.jsx(Me,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(J,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"SSL 证书文件路径"}),i.jsx(Ne,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"SSL 密钥文件路径"}),i.jsx(Ne,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(de,{onClick:a,size:"sm",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(de,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>s(u),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function Aje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(at,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const Al=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:ce("w-full caption-bottom text-sm",e),...t})}));Al.displayName="Table";const Tl=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:ce("[&_tr]:border-b",e),...t}));Tl.displayName="TableHeader";const kl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:ce("[&_tr:last-child]:border-0",e),...t}));kl.displayName="TableBody";const Tje=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:ce("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Tje.displayName="TableFooter";const vn=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:ce("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));vn.displayName="TableRow";const Ze=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:ce("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ze.displayName="TableHead";const Ue=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:ce("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ue.displayName="TableCell";const kje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:ce("mt-4 text-sm text-muted-foreground",e),...t}));kje.displayName="TableCaption";var tx="Checkbox",[Mje]=hr(tx),[Pje,OE]=Mje(tx);function Rje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Na({prop:n,defaultProp:a??!1,onChange:d,caller:tx}),[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useRef(!1),O=j?!!l||!!j.closest("form"):!0,A={checked:g,disabled:s,setChecked:x,control:j,setControl:w,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:E,required:f,defaultChecked:Xs(a)?!1:a,isFormControl:O,bubbleInput:b,setBubbleInput:N};return i.jsx(Pje,{scope:t,...A,children:Dje(p)?p(A):r})}var aH="CheckboxTrigger",iH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:s,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=OE(aH,e),w=qe(a,m),b=y.useRef(d);return y.useEffect(()=>{const N=s?.form;if(N){const E=()=>p(b.current);return N.addEventListener("reset",E),()=>N.removeEventListener("reset",E)}},[s,p]),i.jsx(Pe.button,{type:"button",role:"checkbox","aria-checked":Xs(d)?"mixed":d,"aria-required":f,"data-state":uH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:w,onKeyDown:Se(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:Se(n,N=>{p(E=>Xs(E)?!0:!E),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});iH.displayName=aH;var EE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(Rje,{__scopeCheckbox:n,checked:a,defaultChecked:s,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(iH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(cH,{__scopeCheckbox:n})]})})});EE.displayName=tx;var sH="CheckboxIndicator",oH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,s=OE(sH,n);return i.jsx(Rn,{present:r||Xs(s.checked)||s.checked===!0,children:i.jsx(Pe.span,{"data-state":uH(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});oH.displayName=sH;var lH="CheckboxBubbleInput",cH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:s,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=OE(lH,e),j=qe(n,x),w=My(s),b=Py(r);y.useEffect(()=>{const E=g;if(!E)return;const O=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(O,"checked").set,k=!a.current;if(w!==s&&C){const T=new Event("click",{bubbles:k});E.indeterminate=Xs(s),C.call(E,Xs(s)?!1:s),E.dispatchEvent(T)}},[g,w,s,a]);const N=y.useRef(Xs(s)?!1:s);return i.jsx(Pe.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});cH.displayName=lH;function Dje(e){return typeof e=="function"}function Xs(e){return e==="indeterminate"}function uH(e){return Xs(e)?"indeterminate":e?"checked":"unchecked"}const no=y.forwardRef(({className:e,...t},n)=>i.jsx(EE,{ref:n,className:ce("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(oH,{className:ce("grid place-content-center text-current"),children:i.jsx(il,{className:"h-4 w-4"})})}));no.displayName=EE.displayName;function $je(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(null),[j,w]=y.useState(null),[b,N]=y.useState(!1),[E,O]=y.useState(null),[A,C]=y.useState(!1),[k,T]=y.useState(""),[M,R]=y.useState(new Set),[L,$]=y.useState(!1),{toast:H}=mr(),V=y.useRef(null),F=y.useRef(!0);y.useEffect(()=>{G()},[]);const G=async()=>{try{r(!0);const ae=await Pg();t(ae.api_providers||[]),f(!1),F.current=!1}catch(ae){console.error("加载配置失败:",ae)}finally{r(!1)}},B=y.useCallback(async ae=>{if(!F.current)try{u(!0),await mC("api_providers",ae),f(!1)}catch(Z){console.error("自动保存失败:",Z),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!F.current)return f(!0),V.current&&clearTimeout(V.current),V.current=setTimeout(()=>{B(e)},2e3),()=>{V.current&&clearTimeout(V.current)}},[e,B]);const D=async()=>{try{s(!0),V.current&&clearTimeout(V.current);const ae=await Pg();ae.api_providers=e,await rH(ae),f(!1),H({title:"保存成功",description:"模型提供商配置已保存"})}catch(ae){console.error("保存配置失败:",ae),H({title:"保存失败",description:ae.message,variant:"destructive"})}finally{s(!1)}},U=(ae,Z)=>{x(ae||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),w(Z),C(!1),p(!0)},K=async()=>{if(g?.api_key)try{await navigator.clipboard.writeText(g.api_key),H({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{H({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},te=()=>{if(g){if(j!==null){const ae=[...e];ae[j]=g,t(ae)}else t([...e,g]);p(!1),x(null),w(null)}},I=ae=>{O(ae),N(!0)},z=()=>{if(E!==null){const ae=e.filter((Z,ve)=>ve!==E);t(ae),H({title:"删除成功",description:"提供商已从列表中移除"})}N(!1),O(null)},Y=ae=>{const Z=new Set(M);Z.has(ae)?Z.delete(ae):Z.add(ae),R(Z)},ne=()=>{if(M.size===ee.length)R(new Set);else{const ae=ee.map((Z,ve)=>e.findIndex(je=>je===ee[ve]));R(new Set(ae))}},se=()=>{if(M.size===0){H({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}$(!0)},xe=()=>{const ae=e.filter((Z,ve)=>!M.has(ve));t(ae),R(new Set),$(!1),H({title:"批量删除成功",description:`已删除 ${M.size} 个提供商`})},ee=e.filter(ae=>{if(!k)return!0;const Z=k.toLowerCase();return ae.name.toLowerCase().includes(Z)||ae.base_url.toLowerCase().includes(Z)||ae.client_type.toLowerCase().includes(Z)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[M.size>0&&i.jsxs(de,{onClick:se,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Tt,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",M.size,")"]}),i.jsxs(de,{onClick:()=>U(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(tr,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(de,{onClick:D,disabled:a||l||!d,size:"sm",variant:"default",className:"w-full sm:w-auto",children:[i.jsx(nE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]})]})]}),i.jsxs(Jy,{children:[i.jsx(Au,{className:"h-4 w-4"}),i.jsxs(ex,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),"才能生效"]})]}),i.jsxs(Vt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索提供商名称、URL 或类型...",value:k,onChange:ae=>T(ae.target.value),className:"pl-9"})]}),k&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",ee.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:ee.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:k?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):ee.map((ae,Z)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:ae.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:ae.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>U(ae,Z),children:i.jsx(Tu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>I(Z),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:ae.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:ae.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:ae.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:ae.retry_interval})]})]})]},Z))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-12",children:i.jsx(no,{checked:M.size===ee.length&&ee.length>0,onCheckedChange:ne})}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"基础URL"}),i.jsx(Ze,{children:"客户端类型"}),i.jsx(Ze,{className:"text-right",children:"最大重试"}),i.jsx(Ze,{className:"text-right",children:"超时(秒)"}),i.jsx(Ze,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:ee.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:8,className:"text-center text-muted-foreground py-8",children:k?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):ee.map((ae,Z)=>{const ve=e.findIndex(je=>je===ae);return i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(no,{checked:M.has(ve),onCheckedChange:()=>Y(ve)})}),i.jsx(Ue,{className:"font-medium",children:ae.name}),i.jsx(Ue,{className:"max-w-xs truncate",title:ae.base_url,children:ae.base_url}),i.jsx(Ue,{children:ae.client_type}),i.jsx(Ue,{className:"text-right",children:ae.max_retry}),i.jsx(Ue,{className:"text-right",children:ae.timeout}),i.jsx(Ue,{className:"text-right",children:ae.retry_interval}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>U(ae,ve),children:i.jsx(Tu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>I(ve),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Z)})})]})})]}),i.jsx(nr,{open:m,onOpenChange:p,children:i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:j!==null?"编辑提供商":"添加提供商"}),i.jsx(dr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"name",children:"名称 *"}),i.jsx(Ne,{id:"name",value:g?.name||"",onChange:ae=>x(Z=>Z?{...Z,name:ae.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ne,{id:"base_url",value:g?.base_url||"",onChange:ae=>x(Z=>Z?{...Z,base_url:ae.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"api_key",type:A?"text":"password",value:g?.api_key||"",onChange:ae=>x(Z=>Z?{...Z,api_key:ae.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(de,{type:"button",variant:"outline",size:"icon",onClick:()=>C(!A),title:A?"隐藏密钥":"显示密钥",children:A?i.jsx(XN,{className:"h-4 w-4"}):i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(de,{type:"button",variant:"outline",size:"icon",onClick:K,title:"复制密钥",children:i.jsx(YN,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(Et,{value:g?.client_type||"openai",onValueChange:ae=>x(Z=>Z?{...Z,client_type:ae}:null),children:[i.jsx(wt,{id:"client_type",children:i.jsx(At,{placeholder:"选择客户端类型"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"openai",children:"OpenAI"}),i.jsx(Me,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ne,{id:"max_retry",type:"number",min:"0",value:g?.max_retry||2,onChange:ae=>x(Z=>Z?{...Z,max_retry:parseInt(ae.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ne,{id:"timeout",type:"number",min:"1",value:g?.timeout||30,onChange:ae=>x(Z=>Z?{...Z,timeout:parseInt(ae.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ne,{id:"retry_interval",type:"number",min:"1",value:g?.retry_interval||10,onChange:ae=>x(Z=>Z?{...Z,retry_interval:parseInt(ae.target.value)}:null)})]})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(de,{onClick:te,children:"保存"})]})]})}),i.jsx(Pn,{open:b,onOpenChange:N,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除提供商 "',E!==null?e[E]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:z,children:"删除"})]})]})}),i.jsx(Pn,{open:L,onOpenChange:$,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认批量删除"}),i.jsxs(jn,{children:["确定要删除选中的 ",M.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:xe,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})}var CL=1,Ije=.9,Lje=.8,Bje=.17,s_=.1,o_=.999,zje=.9999,qje=.99,Fje=/[\\\/_+.#"@\[\(\{&]/,Uje=/[\\\/_+.#"@\[\(\{&]/g,Hje=/[\s-]/,dH=/[\s-]/g;function pC(e,t,n,r,a,s,l){if(s===t.length)return a===e.length?CL:qje;var u=`${a},${s}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(s),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=pC(e,t,n,r,f+1,s+1,l),p>m&&(f===a?p*=CL:Fje.test(e.charAt(f-1))?(p*=Lje,x=e.slice(a,f-1).match(Uje),x&&a>0&&(p*=Math.pow(o_,x.length))):Hje.test(e.charAt(f-1))?(p*=Ije,j=e.slice(a,f-1).match(dH),j&&a>0&&(p*=Math.pow(o_,j.length))):(p*=Bje,a>0&&(p*=Math.pow(o_,f-a))),e.charAt(f)!==t.charAt(s)&&(p*=zje)),(pp&&(p=g*s_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function OL(e){return e.toLowerCase().replace(dH," ")}function Wje(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,pC(e,t,OL(e),OL(t),0,0,{})}var Vje=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],mo=Vje.reduce((e,t)=>{const n=Th(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),cf='[cmdk-group=""]',l_='[cmdk-group-items=""]',Gje='[cmdk-group-heading=""]',fH='[cmdk-item=""]',EL=`${fH}:not([aria-disabled="true"])`,vC="cmdk-item-select",Rc="data-value",Yje=(e,t,n)=>Wje(e,t,n),hH=y.createContext(void 0),Kh=()=>y.useContext(hH),mH=y.createContext(void 0),AE=()=>y.useContext(mH),pH=y.createContext(void 0),vH=y.forwardRef((e,t)=>{let n=Dc(()=>{var z,Y;return{search:"",value:(Y=(z=e.value)!=null?z:e.defaultValue)!=null?Y:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=Dc(()=>new Set),a=Dc(()=>new Map),s=Dc(()=>new Map),l=Dc(()=>new Set),u=gH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:w=!1,vimBindings:b=!0,...N}=e,E=Fn(),O=Fn(),A=Fn(),C=y.useRef(null),k=i1e();bl(()=>{if(m!==void 0){let z=m.trim();n.current.value=z,T.emit()}},[m]),bl(()=>{k(6,V)},[]);let T=y.useMemo(()=>({subscribe:z=>(l.current.add(z),()=>l.current.delete(z)),snapshot:()=>n.current,setState:(z,Y,ne)=>{var se,xe,ee,ae;if(!Object.is(n.current[z],Y)){if(n.current[z]=Y,z==="search")H(),L(),k(1,$);else if(z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Z=document.getElementById(A);Z?Z.focus():(se=document.getElementById(E))==null||se.focus()}if(k(7,()=>{var Z;n.current.selectedItemId=(Z=F())==null?void 0:Z.id,T.emit()}),ne||k(5,V),((xe=u.current)==null?void 0:xe.value)!==void 0){let Z=Y??"";(ae=(ee=u.current).onValueChange)==null||ae.call(ee,Z);return}}T.emit()}},emit:()=>{l.current.forEach(z=>z())}}),[]),M=y.useMemo(()=>({value:(z,Y,ne)=>{var se;Y!==((se=s.current.get(z))==null?void 0:se.value)&&(s.current.set(z,{value:Y,keywords:ne}),n.current.filtered.items.set(z,R(Y,ne)),k(2,()=>{L(),T.emit()}))},item:(z,Y)=>(r.current.add(z),Y&&(a.current.has(Y)?a.current.get(Y).add(z):a.current.set(Y,new Set([z]))),k(3,()=>{H(),L(),n.current.value||$(),T.emit()}),()=>{s.current.delete(z),r.current.delete(z),n.current.filtered.items.delete(z);let ne=F();k(4,()=>{H(),ne?.getAttribute("id")===z&&$(),T.emit()})}),group:z=>(a.current.has(z)||a.current.set(z,new Set),()=>{s.current.delete(z),a.current.delete(z)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:E,inputId:A,labelId:O,listInnerRef:C}),[]);function R(z,Y){var ne,se;let xe=(se=(ne=u.current)==null?void 0:ne.filter)!=null?se:Yje;return z?xe(z,n.current.search,Y):0}function L(){if(!n.current.search||u.current.shouldFilter===!1)return;let z=n.current.filtered.items,Y=[];n.current.filtered.groups.forEach(se=>{let xe=a.current.get(se),ee=0;xe.forEach(ae=>{let Z=z.get(ae);ee=Math.max(Z,ee)}),Y.push([se,ee])});let ne=C.current;G().sort((se,xe)=>{var ee,ae;let Z=se.getAttribute("id"),ve=xe.getAttribute("id");return((ee=z.get(ve))!=null?ee:0)-((ae=z.get(Z))!=null?ae:0)}).forEach(se=>{let xe=se.closest(l_);xe?xe.appendChild(se.parentElement===xe?se:se.closest(`${l_} > *`)):ne.appendChild(se.parentElement===ne?se:se.closest(`${l_} > *`))}),Y.sort((se,xe)=>xe[1]-se[1]).forEach(se=>{var xe;let ee=(xe=C.current)==null?void 0:xe.querySelector(`${cf}[${Rc}="${encodeURIComponent(se[0])}"]`);ee?.parentElement.appendChild(ee)})}function $(){let z=G().find(ne=>ne.getAttribute("aria-disabled")!=="true"),Y=z?.getAttribute(Rc);T.setState("value",Y||void 0)}function H(){var z,Y,ne,se;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let xe=0;for(let ee of r.current){let ae=(Y=(z=s.current.get(ee))==null?void 0:z.value)!=null?Y:"",Z=(se=(ne=s.current.get(ee))==null?void 0:ne.keywords)!=null?se:[],ve=R(ae,Z);n.current.filtered.items.set(ee,ve),ve>0&&xe++}for(let[ee,ae]of a.current)for(let Z of ae)if(n.current.filtered.items.get(Z)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=xe}function V(){var z,Y,ne;let se=F();se&&(((z=se.parentElement)==null?void 0:z.firstChild)===se&&((ne=(Y=se.closest(cf))==null?void 0:Y.querySelector(Gje))==null||ne.scrollIntoView({block:"nearest"})),se.scrollIntoView({block:"nearest"}))}function F(){var z;return(z=C.current)==null?void 0:z.querySelector(`${fH}[aria-selected="true"]`)}function G(){var z;return Array.from(((z=C.current)==null?void 0:z.querySelectorAll(EL))||[])}function B(z){let Y=G()[z];Y&&T.setState("value",Y.getAttribute(Rc))}function D(z){var Y;let ne=F(),se=G(),xe=se.findIndex(ae=>ae===ne),ee=se[xe+z];(Y=u.current)!=null&&Y.loop&&(ee=xe+z<0?se[se.length-1]:xe+z===se.length?se[0]:se[xe+z]),ee&&T.setState("value",ee.getAttribute(Rc))}function U(z){let Y=F(),ne=Y?.closest(cf),se;for(;ne&&!se;)ne=z>0?r1e(ne,cf):a1e(ne,cf),se=ne?.querySelector(EL);se?T.setState("value",se.getAttribute(Rc)):D(z)}let K=()=>B(G().length-1),te=z=>{z.preventDefault(),z.metaKey?K():z.altKey?U(1):D(1)},I=z=>{z.preventDefault(),z.metaKey?B(0):z.altKey?U(-1):D(-1)};return y.createElement(mo.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:z=>{var Y;(Y=N.onKeyDown)==null||Y.call(N,z);let ne=z.nativeEvent.isComposing||z.keyCode===229;if(!(z.defaultPrevented||ne))switch(z.key){case"n":case"j":{b&&z.ctrlKey&&te(z);break}case"ArrowDown":{te(z);break}case"p":case"k":{b&&z.ctrlKey&&I(z);break}case"ArrowUp":{I(z);break}case"Home":{z.preventDefault(),B(0);break}case"End":{z.preventDefault(),K();break}case"Enter":{z.preventDefault();let se=F();if(se){let xe=new Event(vC);se.dispatchEvent(xe)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:o1e},d),nx(e,z=>y.createElement(mH.Provider,{value:T},y.createElement(hH.Provider,{value:M},z))))}),Kje=y.forwardRef((e,t)=>{var n,r;let a=Fn(),s=y.useRef(null),l=y.useContext(pH),u=Kh(),d=gH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;bl(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=yH(a,s,[e.value,e.children,s],e.keywords),p=AE(),g=ro(k=>k.value&&k.value===m.current),x=ro(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=s.current;if(!(!k||e.disabled))return k.addEventListener(vC,j),()=>k.removeEventListener(vC,j)},[x,e.onSelect,e.disabled]);function j(){var k,T;w(),(T=(k=d.current).onSelect)==null||T.call(k,m.current)}function w(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:b,value:N,onSelect:E,forceMount:O,keywords:A,...C}=e;return y.createElement(mo.div,{ref:Rr(s,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!g,"data-disabled":!!b,"data-selected":!!g,onPointerMove:b||u.getDisablePointerSelection()?void 0:w,onClick:b?void 0:j},e.children)}),Xje=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,l=Fn(),u=y.useRef(null),d=y.useRef(null),f=Fn(),m=Kh(),p=ro(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);bl(()=>m.group(l),[]),yH(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(mo.div,{ref:Rr(u,t),...s,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),nx(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(pH.Provider,{value:g},x))))}),Zje=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),s=ro(l=>!l.search);return!n&&!s?null:y.createElement(mo.div,{ref:Rr(a,t),...r,"cmdk-separator":"",role:"separator"})}),Qje=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,s=AE(),l=ro(f=>f.search),u=ro(f=>f.selectedItemId),d=Kh();return y.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),y.createElement(mo.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||s.setState("search",f.target.value),n?.(f.target.value)}})}),Jje=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=y.useRef(null),l=y.useRef(null),u=ro(f=>f.selectedItemId),d=Kh();return y.useEffect(()=>{if(l.current&&s.current){let f=l.current,m=s.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(mo.div,{ref:Rr(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},nx(e,f=>y.createElement("div",{ref:Rr(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),e1e=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:l,...u}=e;return y.createElement(uE,{open:n,onOpenChange:r},y.createElement(dE,{container:l},y.createElement(By,{"cmdk-overlay":"",className:a}),y.createElement(zy,{"aria-label":e.label,"cmdk-dialog":"",className:s},y.createElement(vH,{ref:t,...u}))))}),t1e=y.forwardRef((e,t)=>ro(n=>n.filtered.count===0)?y.createElement(mo.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),n1e=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return y.createElement(mo.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},nx(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Br=Object.assign(vH,{List:Jje,Item:Kje,Input:Qje,Group:Xje,Separator:Zje,Dialog:e1e,Empty:t1e,Loading:n1e});function r1e(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function a1e(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function gH(e){let t=y.useRef(e);return bl(()=>{t.current=e}),t}var bl=typeof window>"u"?y.useEffect:y.useLayoutEffect;function Dc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function ro(e){let t=AE(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function yH(e,t,n,r=[]){let a=y.useRef(),s=Kh();return bl(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());s.value(e,u,d),(l=t.current)==null||l.setAttribute(Rc,u),a.current=u}),a}var i1e=()=>{let[e,t]=y.useState(),n=Dc(()=>new Map);return bl(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function s1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function nx({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(s1e(t),{ref:t.ref},n(t.props.children)):n(t)}var o1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const xH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br,{ref:n,className:ce("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));xH.displayName=Br.displayName;const bH=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Dr,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Br.Input,{ref:n,className:ce("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));bH.displayName=Br.Input.displayName;const wH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.List,{ref:n,className:ce("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));wH.displayName=Br.List.displayName;const jH=y.forwardRef((e,t)=>i.jsx(Br.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));jH.displayName=Br.Empty.displayName;const SH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Group,{ref:n,className:ce("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));SH.displayName=Br.Group.displayName;const l1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Separator,{ref:n,className:ce("-mx-1 h-px bg-border",e),...t}));l1e.displayName=Br.Separator.displayName;const _H=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Item,{ref:n,className:ce("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));_H.displayName=Br.Item.displayName;function c1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:s}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(eo,{open:l,onOpenChange:u,children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",role:"combobox","aria-expanded":l,className:ce("w-full justify-between min-h-10 h-auto",s),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Dt,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Fh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(kve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(os,{className:"w-full p-0",align:"start",children:i.jsxs(xH,{children:[i.jsx(bH,{placeholder:"搜索...",className:"h-9"}),i.jsxs(wH,{children:[i.jsx(jH,{children:a}),i.jsx(SH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(_H,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:ce("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(il,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function u1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,s]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(null),[A,C]=y.useState(null),[k,T]=y.useState(!1),[M,R]=y.useState(null),[L,$]=y.useState(""),[H,V]=y.useState(new Set),[F,G]=y.useState(!1),{toast:B}=mr(),D=y.useRef(null),U=y.useRef(null),K=y.useRef(!0);y.useEffect(()=>{te()},[]);const te=async()=>{try{f(!0);const fe=await Pg(),pe=fe.models||[];t(pe),s(pe.map(It=>It.name));const Le=fe.api_providers||[];r(Le.map(It=>It.name)),u(fe.model_task_config||null),w(!1),K.current=!1}catch(fe){console.error("加载配置失败:",fe)}finally{f(!1)}},I=y.useCallback(async fe=>{if(!K.current)try{x(!0),await mC("models",fe),w(!1)}catch(pe){console.error("自动保存模型列表失败:",pe),w(!0)}finally{x(!1)}},[]),z=y.useCallback(async fe=>{if(!K.current)try{x(!0),await mC("model_task_config",fe),w(!1)}catch(pe){console.error("自动保存任务配置失败:",pe),w(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!K.current)return w(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{I(e)},2e3),()=>{D.current&&clearTimeout(D.current)}},[e,I]),y.useEffect(()=>{if(!(K.current||!l))return w(!0),U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{z(l)},2e3),()=>{U.current&&clearTimeout(U.current)}},[l,z]);const Y=async()=>{try{p(!0),D.current&&clearTimeout(D.current),U.current&&clearTimeout(U.current);const fe=await Pg();fe.models=e,fe.model_task_config=l,await rH(fe),w(!1),B({title:"保存成功",description:"模型配置已保存"}),await te()}catch(fe){console.error("保存配置失败:",fe),B({title:"保存失败",description:fe.message,variant:"destructive"})}finally{p(!1)}},ne=(fe,pe)=>{O(fe||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),C(pe),N(!0)},se=()=>{if(!E)return;let fe;A!==null?(fe=[...e],fe[A]=E):fe=[...e,E],t(fe),s(fe.map(pe=>pe.name)),N(!1),O(null),C(null)},xe=fe=>{R(fe),T(!0)},ee=()=>{if(M!==null){const fe=e.filter((pe,Le)=>Le!==M);t(fe),s(fe.map(pe=>pe.name)),B({title:"删除成功",description:"模型已从列表中移除"})}T(!1),R(null)},ae=fe=>{const pe=new Set(H);pe.has(fe)?pe.delete(fe):pe.add(fe),V(pe)},Z=()=>{if(H.size===Re.length)V(new Set);else{const fe=Re.map((pe,Le)=>e.findIndex(It=>It===Re[Le]));V(new Set(fe))}},ve=()=>{if(H.size===0){B({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}G(!0)},je=()=>{const fe=e.filter((pe,Le)=>!H.has(Le));t(fe),s(fe.map(pe=>pe.name)),V(new Set),G(!1),B({title:"批量删除成功",description:`已删除 ${H.size} 个模型`})},le=(fe,pe,Le)=>{l&&u({...l,[fe]:{...l[fe],[pe]:Le}})},Re=e.filter(fe=>{if(!L)return!0;const pe=L.toLowerCase();return fe.name.toLowerCase().includes(pe)||fe.model_identifier.toLowerCase().includes(pe)||fe.api_provider.toLowerCase().includes(pe)}),_e=fe=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(Le=>Le.includes(fe)):!1;return d?i.jsx(Vt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs(de,{onClick:Y,disabled:m||g||!j,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(nE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]})]}),i.jsxs(Jy,{children:[i.jsx(Au,{className:"h-4 w-4"}),i.jsxs(ex,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),"才能生效"]})]}),i.jsxs(ul,{defaultValue:"models",className:"w-full",children:[i.jsxs(Zs,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Ot,{value:"models",children:"模型配置"}),i.jsx(Ot,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(en,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[H.size>0&&i.jsxs(de,{onClick:ve,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Tt,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",H.size,")"]}),i.jsxs(de,{onClick:()=>ne(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(tr,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索模型名称、标识符或提供商...",value:L,onChange:fe=>$(fe.target.value),className:"pl-9"})]}),L&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Re.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Re.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:L?"未找到匹配的模型":"暂无模型配置"}):Re.map((fe,pe)=>{const Le=_e(fe.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:fe.name}),i.jsx(Dt,{variant:Le?"default":"secondary",className:Le?"bg-green-600 hover:bg-green-700":"",children:Le?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:fe.model_identifier,children:fe.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>ne(fe,pe),children:i.jsx(Tu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>xe(pe),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:fe.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:fe.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",fe.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",fe.price_out,"/M"]})]})]})]},pe)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-12",children:i.jsx(no,{checked:H.size===Re.length&&Re.length>0,onCheckedChange:Z})}),i.jsx(Ze,{className:"w-24",children:"使用状态"}),i.jsx(Ze,{children:"模型名称"}),i.jsx(Ze,{children:"模型标识符"}),i.jsx(Ze,{children:"提供商"}),i.jsx(Ze,{className:"text-right",children:"输入价格"}),i.jsx(Ze,{className:"text-right",children:"输出价格"}),i.jsx(Ze,{className:"text-center",children:"强制流式"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:Re.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:9,className:"text-center text-muted-foreground py-8",children:L?"未找到匹配的模型":"暂无模型配置"})}):Re.map((fe,pe)=>{const Le=e.findIndex(Cn=>Cn===fe),It=_e(fe.name);return i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(no,{checked:H.has(Le),onCheckedChange:()=>ae(Le)})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:It?"default":"secondary",className:It?"bg-green-600 hover:bg-green-700":"",children:It?"已使用":"未使用"})}),i.jsx(Ue,{className:"font-medium",children:fe.name}),i.jsx(Ue,{className:"max-w-xs truncate",title:fe.model_identifier,children:fe.model_identifier}),i.jsx(Ue,{children:fe.api_provider}),i.jsxs(Ue,{className:"text-right",children:["¥",fe.price_in,"/M"]}),i.jsxs(Ue,{className:"text-right",children:["¥",fe.price_out,"/M"]}),i.jsx(Ue,{className:"text-center",children:fe.force_stream_mode?"是":"否"}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>ne(fe,Le),children:i.jsx(Tu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>xe(Le),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},pe)})})]})})]}),i.jsxs(en,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx(Ra,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(fe,pe)=>le("utils",fe,pe)}),i.jsx(Ra,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(fe,pe)=>le("utils_small",fe,pe)}),i.jsx(Ra,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(fe,pe)=>le("tool_use",fe,pe)}),i.jsx(Ra,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(fe,pe)=>le("replyer",fe,pe)}),i.jsx(Ra,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(fe,pe)=>le("planner",fe,pe)}),i.jsx(Ra,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(fe,pe)=>le("vlm",fe,pe),hideTemperature:!0}),i.jsx(Ra,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(fe,pe)=>le("voice",fe,pe),hideTemperature:!0,hideMaxTokens:!0}),i.jsx(Ra,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(fe,pe)=>le("embedding",fe,pe),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx(Ra,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(fe,pe)=>le("lpmm_entity_extract",fe,pe)}),i.jsx(Ra,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(fe,pe)=>le("lpmm_rdf_build",fe,pe)}),i.jsx(Ra,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(fe,pe)=>le("lpmm_qa",fe,pe)})]})]})]})]}),i.jsx(nr,{open:b,onOpenChange:N,children:i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:A!==null?"编辑模型":"添加模型"}),i.jsx(dr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ne,{id:"model_name",value:E?.name||"",onChange:fe=>O(pe=>pe?{...pe,name:fe.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ne,{id:"model_identifier",value:E?.model_identifier||"",onChange:fe=>O(pe=>pe?{...pe,model_identifier:fe.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(Et,{value:E?.api_provider||"",onValueChange:fe=>O(pe=>pe?{...pe,api_provider:fe}:null),children:[i.jsx(wt,{id:"api_provider",children:i.jsx(At,{placeholder:"选择提供商"})}),i.jsx(jt,{children:n.map(fe=>i.jsx(Me,{value:fe,children:fe},fe))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ne,{id:"price_in",type:"number",step:"0.1",min:"0",value:E?.price_in||0,onChange:fe=>O(pe=>pe?{...pe,price_in:parseFloat(fe.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ne,{id:"price_out",type:"number",step:"0.1",min:"0",value:E?.price_out||0,onChange:fe=>O(pe=>pe?{...pe,price_out:parseFloat(fe.target.value)}:null)})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"force_stream_mode",checked:E?.force_stream_mode||!1,onCheckedChange:fe=>O(pe=>pe?{...pe,force_stream_mode:fe}:null)}),i.jsx(J,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>N(!1),children:"取消"}),i.jsx(de,{onClick:se,children:"保存"})]})]})}),i.jsx(Pn,{open:k,onOpenChange:T,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除模型 "',M!==null?e[M]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:ee,children:"删除"})]})]})}),i.jsx(Pn,{open:F,onOpenChange:G,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认批量删除"}),i.jsxs(jn,{children:["确定要删除选中的 ",H.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:je,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})})}function Ra({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:s=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"模型列表"}),i.jsx(c1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!s&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"温度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"2",value:n.temperature||.3,onChange:d=>a("temperature",parseFloat(d.target.value))})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"最大 Token"}),i.jsx(Ne,{type:"number",step:"1",min:"1",value:n.max_tokens||1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const po="/api/webui/emoji";async function d1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await Qe(`${po}/list?${t}`,{headers:lt()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function f1e(e){const t=await Qe(`${po}/${e}`,{headers:lt()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function h1e(e,t){const n=await Qe(`${po}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function m1e(e){const t=await Qe(`${po}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function p1e(){const e=await Qe(`${po}/stats/summary`,{headers:lt()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function v1e(e){const t=await Qe(`${po}/${e}/register`,{method:"POST",headers:lt()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function g1e(e){const t=await Qe(`${po}/${e}/ban`,{method:"POST",headers:lt()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function gC(e){const t=localStorage.getItem("access-token");return`${po}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}function y1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,s]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m]=y.useState(20),[p,g]=y.useState(""),[x,j]=y.useState("all"),[w,b]=y.useState("all"),[N,E]=y.useState("all"),[O,A]=y.useState(null),[C,k]=y.useState(!1),[T,M]=y.useState(!1),[R,L]=y.useState(!1),{toast:$}=mr(),H=y.useCallback(async()=>{try{s(!0);const I=await d1e({page:l,page_size:m,search:p||void 0,is_registered:x==="all"?void 0:x==="registered",is_banned:w==="all"?void 0:w==="banned",format:N==="all"?void 0:N,sort_by:"usage_count",sort_order:"desc"});t(I.data),f(I.total)}catch(I){const z=I instanceof Error?I.message:"加载表情包列表失败";$({title:"错误",description:z,variant:"destructive"})}finally{s(!1)}},[l,m,p,x,w,N,$]),V=async()=>{try{const I=await p1e();r(I.data)}catch(I){console.error("加载统计数据失败:",I)}};y.useEffect(()=>{H()},[H]),y.useEffect(()=>{V()},[]);const F=async I=>{try{const z=await f1e(I.id);A(z.data),k(!0)}catch(z){const Y=z instanceof Error?z.message:"加载详情失败";$({title:"错误",description:Y,variant:"destructive"})}},G=I=>{A(I),M(!0)},B=I=>{A(I),L(!0)},D=async()=>{if(O)try{await m1e(O.id),$({title:"成功",description:"表情包已删除"}),L(!1),A(null),H(),V()}catch(I){const z=I instanceof Error?I.message:"删除失败";$({title:"错误",description:z,variant:"destructive"})}},U=async I=>{try{await v1e(I.id),$({title:"成功",description:"表情包已注册"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"注册失败";$({title:"错误",description:Y,variant:"destructive"})}},K=async I=>{try{await g1e(I.id),$({title:"成功",description:"表情包已封禁"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"封禁失败";$({title:"错误",description:Y,variant:"destructive"})}},te=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(ot,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"总数"}),i.jsx(Ft,{className:"text-2xl",children:n.total})]})}),i.jsx(ot,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"已注册"}),i.jsx(Ft,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(ot,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"已封禁"}),i.jsx(Ft,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(ot,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"未注册"}),i.jsx(Ft,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(ot,{children:[i.jsx(qt,{children:i.jsxs(Ft,{className:"flex items-center gap-2",children:[i.jsx(ZN,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(sn,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"描述或哈希值...",value:p,onChange:I=>{g(I.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"注册状态"}),i.jsxs(Et,{value:x,onValueChange:I=>{j(I),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"registered",children:"已注册"}),i.jsx(Me,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"封禁状态"}),i.jsxs(Et,{value:w,onValueChange:I=>{b(I),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"banned",children:"已封禁"}),i.jsx(Me,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"格式"}),i.jsxs(Et,{value:N,onValueChange:I=>{E(I),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),te.map(I=>i.jsxs(Me,{value:I,children:[I.toUpperCase()," (",n?.formats[I],")"]},I))]})]})]})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(de,{variant:"outline",size:"sm",onClick:H,disabled:a,children:[i.jsx(ol,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"表情包列表"}),i.jsxs(er,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(sn,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-16",children:"预览"}),i.jsx(Ze,{children:"描述"}),i.jsx(Ze,{children:"格式"}),i.jsx(Ze,{children:"情绪标签"}),i.jsx(Ze,{className:"text-center",children:"状态"}),i.jsx(Ze,{className:"text-right",children:"使用次数"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(I=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:gC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const ne=Y.parentElement;ne&&(ne.innerHTML='')}})})}),i.jsx(Ue,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[I.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:"outline",children:I.format.toUpperCase()})}),i.jsx(Ue,{children:i.jsx(AL,{emotions:I.emotion})}),i.jsx(Ue,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[I.is_registered&&i.jsxs(Dt,{variant:"default",className:"bg-green-600",children:[i.jsx(Ws,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Dt,{variant:"destructive",children:[i.jsx(GN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Ue,{className:"text-right font-mono",children:I.usage_count}),i.jsx(Ue,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>F(I),children:[i.jsx(Au,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>G(I),children:[i.jsx(ku,{className:"h-4 w-4 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>U(I),className:"text-green-600 hover:text-green-700",children:[i.jsx(Ws,{className:"h-4 w-4 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>K(I),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(VI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>B(I),className:"text-red-600 hover:text-red-700",children:[i.jsx(Tt,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},I.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(I=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:gC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const ne=Y.parentElement;ne&&(ne.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[I.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Dt,{variant:"outline",className:"text-xs flex-shrink-0",children:I.format.toUpperCase()}),I.is_registered&&i.jsxs(Dt,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Ws,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Dt,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(GN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",I.usage_count]})]}),I.emotion&&I.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(AL,{emotions:I.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>F(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Au,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>G(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(ku,{className:"h-3 w-3 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>U(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Ws,{className:"h-3 w-3 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>K(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(VI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>B(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},I.id))}),d>m&&i.jsxs("div",{className:"flex items-center justify-between mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>u(I=>Math.max(1,I-1)),disabled:l===1,children:[i.jsx(JO,{className:"h-4 w-4"}),"上一页"]}),i.jsxs("div",{className:"text-sm",children:["第 ",l," / ",Math.ceil(d/m)," 页"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>u(I=>I+1),disabled:l>=Math.ceil(d/m),children:["下一页",i.jsx(eE,{className:"h-4 w-4"})]})]})]})]})]}),i.jsx(x1e,{emoji:O,open:C,onOpenChange:k}),i.jsx(b1e,{emoji:O,open:T,onOpenChange:M,onSuccess:()=>{H(),V()}})]})}),i.jsx(nr,{open:R,onOpenChange:L,children:i.jsxs(Hn,{children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"确认删除"}),i.jsx(dr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>L(!1),children:"取消"}),i.jsx(de,{variant:"destructive",onClick:D,children:"删除"})]})]})})]})}function x1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl",children:[i.jsx(Wn,{children:i.jsx(Vn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:gC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const s=a.target;s.style.display="none";const l=s.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Dt,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.emotion&&e.emotion.length>0?e.emotion.map((a,s)=>i.jsx(Dt,{variant:"secondary",children:a},s)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Dt,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Dt,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Dt,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function b1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=mr();y.useEffect(()=>{e&&(s(e.description||""),u(e.emotion?e.emotion.join(", "):""),f(e.is_registered),p(e.is_banned))},[e]);const w=async()=>{if(e)try{x(!0);const b=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean);await h1e(e.id,{description:a||void 0,emotion:b.length>0?b:void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(b){const N=b instanceof Error?b.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑表情包"}),i.jsx(dr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(J,{children:"描述"}),i.jsx(Wt,{value:a,onChange:b=>s(b.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(J,{children:"情绪标签"}),i.jsx(Ne,{value:l,onChange:b=>u(b.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(no,{id:"is_registered",checked:d,onCheckedChange:b=>f(b===!0)}),i.jsx(J,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(no,{id:"is_banned",checked:m,onCheckedChange:b=>p(b===!0)}),i.jsx(J,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(de,{onClick:w,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function AL({emotions:e}){if(!e||e.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const t=(a,s=6)=>a.length<=s?a:a.slice(0,s)+"...",n=e.slice(0,3),r=e.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[n.map((a,s)=>i.jsx(Dt,{variant:"secondary",className:"text-xs flex-shrink-0",title:a,children:t(a)},s)),r>0&&i.jsxs(Dt,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${r} 个标签: ${e.slice(3).join(", ")}`,children:["+",r]})]})}const ed="/api/webui/expression";async function w1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await Qe(`${ed}/list?${t}`,{headers:lt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function j1e(e){const t=await Qe(`${ed}/${e}`,{headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function S1e(e){const t=await Qe(`${ed}/`,{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function _1e(e,t){const n=await Qe(`${ed}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function N1e(e){const t=await Qe(`${ed}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function C1e(){const e=await Qe(`${ed}/stats/summary`,{headers:lt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function O1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(null),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(!1),[O,A]=y.useState(null),[C,k]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:T}=mr(),M=async()=>{try{r(!0);const F=await w1e({page:l,page_size:d,search:f||void 0});t(F.data),s(F.total)}catch(F){T({title:"加载失败",description:F instanceof Error?F.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},R=async()=>{try{const F=await C1e();k(F.data)}catch(F){console.error("加载统计数据失败:",F)}};y.useEffect(()=>{M(),R()},[l,d,f]);const L=async F=>{try{const G=await j1e(F.id);g(G.data),j(!0)}catch(G){T({title:"加载详情失败",description:G instanceof Error?G.message:"无法加载表达方式详情",variant:"destructive"})}},$=F=>{g(F),b(!0)},H=async F=>{try{await N1e(F.id),T({title:"删除成功",description:`已删除表达方式: ${F.situation}`}),A(null),M(),R()}catch(G){T({title:"删除失败",description:G instanceof Error?G.message:"无法删除表达方式",variant:"destructive"})}},V=F=>F?new Date(F*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(qh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(de,{onClick:()=>E(!0),className:"gap-2",children:[i.jsx(tr,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:C.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:C.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:C.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(J,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索情境、风格或上下文...",value:f,onChange:F=>m(F.target.value),className:"pl-9"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"情境"}),i.jsx(Ze,{children:"风格"}),i.jsx(Ze,{children:"聊天ID"}),i.jsx(Ze,{children:"最后活跃"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n?i.jsx(vn,{children:i.jsx(Ue,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(F=>i.jsxs(vn,{children:[i.jsx(Ue,{className:"font-medium max-w-xs truncate",children:F.situation}),i.jsx(Ue,{className:"max-w-xs truncate",children:F.style}),i.jsx(Ue,{className:"font-mono text-sm",children:F.chat_id}),i.jsx(Ue,{className:"text-sm text-muted-foreground",children:V(F.last_active_time)}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>L(F),children:i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>$(F),children:i.jsx(ku,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>A(F),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},F.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(F=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:F.situation,children:F.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:F.style,children:F.style})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:F.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:V(F.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>L(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ua,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>$(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(ku,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>A(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},F.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(de,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(de,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(E1e,{expression:p,open:x,onOpenChange:j}),i.jsx(A1e,{open:N,onOpenChange:E,onSuccess:()=>{M(),R(),E(!1)}}),i.jsx(T1e,{expression:p,open:w,onOpenChange:b,onSuccess:()=>{M(),R(),b(!1)}}),i.jsx(Pn,{open:!!O,onOpenChange:()=>A(null),children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除表达方式 "',O?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>O&&H(O),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function E1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"表达方式详情"}),i.jsx(dr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Ac,{label:"情境",value:e.situation}),i.jsx(Ac,{label:"风格",value:e.style}),i.jsx(Ac,{icon:Ng,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Ac,{icon:Ng,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Ac,{icon:sl,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Ac,{icon:sl,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx($r,{children:i.jsx(de,{onClick:()=>n(!1),children:"关闭"})})]})})}function Ac({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(J,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function A1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[s,l]=y.useState(!1),{toast:u}=mr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await S1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(nr,{open:e,onOpenChange:t,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"新增表达方式"}),i.jsx(dr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"context",children:"上下文"}),i.jsx(Wt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Wt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(de,{onClick:d,disabled:s,children:s?"创建中...":"创建"})]})]})})}function T1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=mr();y.useEffect(()=>{e&&s({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await _1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑表达方式"}),i.jsx(dr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ne,{id:"edit_situation",value:a.situation||"",onChange:m=>s({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ne,{id:"edit_style",value:a.style||"",onChange:m=>s({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ne,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>s({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Wt,{id:"edit_context",value:a.context||"",onChange:m=>s({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Wt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>s({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(de,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}const Xh="/api/webui/person";async function k1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await Qe(`${Xh}/list?${t}`,{headers:lt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function M1e(e){const t=await Qe(`${Xh}/${e}`,{headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function P1e(e,t){const n=await Qe(`${Xh}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function R1e(e){const t=await Qe(`${Xh}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function D1e(){const e=await Qe(`${Xh}/stats/summary`,{headers:lt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function $1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(void 0),[x,j]=y.useState(void 0),[w,b]=y.useState(null),[N,E]=y.useState(!1),[O,A]=y.useState(!1),[C,k]=y.useState(null),[T,M]=y.useState({total:0,known:0,unknown:0,platforms:{}}),{toast:R}=mr(),L=async()=>{try{r(!0);const D=await k1e({page:l,page_size:d,search:f||void 0,is_known:p,platform:x});t(D.data),s(D.total)}catch(D){R({title:"加载失败",description:D instanceof Error?D.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},$=async()=>{try{const D=await D1e();M(D.data)}catch(D){console.error("加载统计数据失败:",D)}};y.useEffect(()=>{L(),$()},[l,d,f,p,x]);const H=async D=>{try{const U=await M1e(D.person_id);b(U.data),E(!0)}catch(U){R({title:"加载详情失败",description:U instanceof Error?U.message:"无法加载人物详情",variant:"destructive"})}},V=D=>{b(D),A(!0)},F=async D=>{try{await R1e(D.person_id),R({title:"删除成功",description:`已删除人物信息: ${D.person_name||D.nickname||D.user_id}`}),k(null),L(),$()}catch(U){R({title:"删除失败",description:U instanceof Error?U.message:"无法删除人物信息",variant:"destructive"})}},G=y.useMemo(()=>Object.keys(T.platforms),[T.platforms]),B=D=>D?new Date(D*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Yge,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:T.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:T.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:T.unknown})]})]}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(J,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:f,onChange:D=>m(D.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(J,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(Et,{value:p===void 0?"all":p.toString(),onValueChange:D=>{g(D==="all"?void 0:D==="true"),u(1)},children:[i.jsx(wt,{id:"filter-known",className:"mt-1.5",children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"true",children:"已认识"}),i.jsx(Me,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(Et,{value:x||"all",onValueChange:D=>{j(D==="all"?void 0:D),u(1)},children:[i.jsx(wt,{id:"filter-platform",className:"mt-1.5",children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部平台"}),G.map(D=>i.jsxs(Me,{value:D,children:[D," (",T.platforms[D],")"]},D))]})]})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"状态"}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"昵称"}),i.jsx(Ze,{children:"平台"}),i.jsx(Ze,{children:"用户ID"}),i.jsx(Ze,{children:"最后更新"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(D=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"})}),i.jsx(Ue,{className:"font-medium",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Ue,{children:D.nickname||"-"}),i.jsx(Ue,{children:D.platform}),i.jsx(Ue,{className:"font-mono text-sm",children:D.user_id}),i.jsx(Ue,{className:"text-sm text-muted-foreground",children:B(D.last_know)}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>H(D),children:i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>V(D),children:i.jsx(ku,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>k(D),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},D.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(D=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsx("div",{className:"flex items-start justify-between gap-2",children:i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),D.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",D.nickname]})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:D.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:D.user_id,children:D.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:B(D.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>H(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ua,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>V(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(ku,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>k(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},D.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(de,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(de,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(I1e,{person:w,open:N,onOpenChange:E}),i.jsx(L1e,{person:w,open:O,onOpenChange:A,onSuccess:()=>{L(),$(),A(!1)}}),i.jsx(Pn,{open:!!C,onOpenChange:()=>k(null),children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除人物信息 "',C?.person_name||C?.nickname||C?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>C&&F(C),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function I1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"人物详情"}),i.jsxs(dr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Hi,{icon:fF,label:"人物名称",value:e.person_name}),i.jsx(Hi,{icon:qh,label:"昵称",value:e.nickname}),i.jsx(Hi,{icon:Ng,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Hi,{icon:Ng,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Hi,{label:"平台",value:e.platform}),i.jsx(Hi,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,s)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},s))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Hi,{icon:sl,label:"认识时间",value:r(e.know_times)}),i.jsx(Hi,{icon:sl,label:"首次记录",value:r(e.know_since)}),i.jsx(Hi,{icon:sl,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx($r,{children:i.jsx(de,{onClick:()=>n(!1),children:"关闭"})})]})})}function Hi({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(J,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function L1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=mr();y.useEffect(()=>{e&&s({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await P1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑人物信息"}),i.jsxs(dr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ne,{id:"person_name",value:a.person_name||"",onChange:m=>s({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:a.nickname||"",onChange:m=>s({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Wt,{id:"name_reason",value:a.name_reason||"",onChange:m=>s({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Wt,{id:"memory_points",value:a.memory_points||"",onChange:m=>s({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(J,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(at,{id:"is_known",checked:a.is_known,onCheckedChange:m=>s({...a,is_known:m})})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(de,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function B1e(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const z1e={},vf={};function Zo(e,t){try{const r=(z1e[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in vf?vf[r]:TL(r,r.split(":"))}catch{if(e in vf)return vf[e];const n=e?.match(q1e);return n?TL(e,n.slice(1)):NaN}}const q1e=/([+-]\d\d):?(\d\d)?/;function TL(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return vf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class ui extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Zo(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),NH(this),yC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new ui(...n,t):new ui(Date.now(),t)}withTimeZone(t){return new ui(+this,t)}getTimezoneOffset(){const t=-Zo(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),yC(this),+this}[Symbol.for("constructDateFrom")](t){return new ui(+new Date(t),this.timeZone)}}const kL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!kL.test(e))return;const t=e.replace(kL,"$1UTC");ui.prototype[t]&&(e.startsWith("get")?ui.prototype[e]=function(){return this.internal[t]()}:(ui.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),F1e(this),+this},ui.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),yC(this),+this}))});function yC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Zo(e.timeZone,e)*60))}function F1e(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),NH(e)}function NH(e){const t=Zo(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),l=a-s,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(Zo(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=Zo(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),w=-new Date(+e).getTimezoneOffset()-x,b=x!==n,N=w-d;if(b&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const E=Zo(e.timeZone,e),O=E>0?Math.floor(E):Math.ceil(E),A=x-O;A&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+A),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+A))}}class or extends ui{static tz(t,...n){return n.length?new or(...n,t):new or(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${B1e(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new or(+this,t)}[Symbol.for("constructDateFrom")](t){return new or(+new Date(t),this.timeZone)}}const CH=6048e5,U1e=864e5,ML=Symbol.for("constructDateFrom");function Nn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&ML in e?e[ML](t):e instanceof Date?new e.constructor(t):new Date(t)}function $t(e,t){return Nn(t||e,e)}function OH(e,t,n){const r=$t(e,n?.in);return isNaN(t)?Nn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function EH(e,t,n){const r=$t(e,n?.in);if(isNaN(t))return Nn(e,NaN);if(!t)return r;const a=r.getDate(),s=Nn(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const l=s.getDate();return a>=l?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}let H1e={};function Zh(){return H1e}function ao(e,t){const n=Zh(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=$t(e,t?.in),s=a.getDay(),l=(s=s.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function PL(e){const t=$t(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Ml(e,...t){const n=Nn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function xh(e,t){const n=$t(e,t?.in);return n.setHours(0,0,0,0),n}function TH(e,t,n){const[r,a]=Ml(n?.in,e,t),s=xh(r),l=xh(a),u=+s-PL(s),d=+l-PL(l);return Math.round((u-d)/U1e)}function W1e(e,t){const n=AH(e,t),r=Nn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),yh(r)}function V1e(e,t,n){return OH(e,t*7,n)}function G1e(e,t,n){return EH(e,t*12,n)}function Y1e(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=Nn.bind(null,a));const s=$t(a,r);(!n||n{!r&&typeof a=="object"&&(r=Nn.bind(null,a));const s=$t(a,r);(!n||n>s||isNaN(+s))&&(n=s)}),Nn(r,n||NaN)}function X1e(e,t,n){const[r,a]=Ml(n?.in,e,t);return+xh(r)==+xh(a)}function kH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Z1e(e){return!(!kH(e)&&typeof e!="number"||isNaN(+$t(e)))}function Q1e(e,t,n){const[r,a]=Ml(n?.in,e,t),s=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return s*12+l}function J1e(e,t){const n=$t(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function MH(e,t){const[n,r]=Ml(e,t.start,t.end);return{start:n,end:r}}function eSe(e,t){const{start:n,end:r}=MH(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=s;)d.push(Nn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function tSe(e,t){const n=$t(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function nSe(e,t){const n=$t(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function PH(e,t){const n=$t(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function rSe(e,t){const{start:n,end:r}=MH(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=s;)d.push(Nn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function RH(e,t){const n=Zh(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=$t(e,t?.in),s=a.getDay(),l=(s{let r;const a=iSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Zc(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const oSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},lSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},cSe={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},uSe={date:Zc({formats:oSe,defaultWidth:"full"}),time:Zc({formats:lSe,defaultWidth:"full"}),dateTime:Zc({formats:cSe,defaultWidth:"full"})},dSe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},fSe=(e,t,n,r)=>dSe[e];function ai(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const hSe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},mSe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},pSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},vSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},gSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},ySe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},xSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},bSe={ordinalNumber:xSe,era:ai({values:hSe,defaultWidth:"wide"}),quarter:ai({values:mSe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ai({values:pSe,defaultWidth:"wide"}),day:ai({values:vSe,defaultWidth:"wide"}),dayPeriod:ai({values:gSe,defaultWidth:"wide",formattingValues:ySe,defaultFormattingWidth:"wide"})};function ii(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const l=s[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?jSe(u,p=>p.test(l)):wSe(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function wSe(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function jSe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const SSe=/^(\d+)(th|st|nd|rd)?/i,_Se=/\d+/i,NSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},CSe={any:[/^b/i,/^(a|c)/i]},OSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ESe={any:[/1/i,/2/i,/3/i,/4/i]},ASe={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},TSe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},kSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},MSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},PSe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},RSe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},DSe={ordinalNumber:DH({matchPattern:SSe,parsePattern:_Se,valueCallback:e=>parseInt(e,10)}),era:ii({matchPatterns:NSe,defaultMatchWidth:"wide",parsePatterns:CSe,defaultParseWidth:"any"}),quarter:ii({matchPatterns:OSe,defaultMatchWidth:"wide",parsePatterns:ESe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ii({matchPatterns:ASe,defaultMatchWidth:"wide",parsePatterns:TSe,defaultParseWidth:"any"}),day:ii({matchPatterns:kSe,defaultMatchWidth:"wide",parsePatterns:MSe,defaultParseWidth:"any"}),dayPeriod:ii({matchPatterns:PSe,defaultMatchWidth:"any",parsePatterns:RSe,defaultParseWidth:"any"})},TE={code:"en-US",formatDistance:sSe,formatLong:uSe,formatRelative:fSe,localize:bSe,match:DSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function $Se(e,t){const n=$t(e,t?.in);return TH(n,PH(n))+1}function $H(e,t){const n=$t(e,t?.in),r=+yh(n)-+W1e(n);return Math.round(r/CH)+1}function IH(e,t){const n=$t(e,t?.in),r=n.getFullYear(),a=Zh(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=Nn(t?.in||e,0);l.setFullYear(r+1,0,s),l.setHours(0,0,0,0);const u=ao(l,t),d=Nn(t?.in||e,0);d.setFullYear(r,0,s),d.setHours(0,0,0,0);const f=ao(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function ISe(e,t){const n=Zh(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=IH(e,t),s=Nn(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),ao(s,t)}function LH(e,t){const n=$t(e,t?.in),r=+ao(n,t)-+ISe(n,t);return Math.round(r/CH)+1}function Ct(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Ls={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Ct(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Ct(n+1,2)},d(e,t){return Ct(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Ct(e.getHours()%12||12,t.length)},H(e,t){return Ct(e.getHours(),t.length)},m(e,t){return Ct(e.getMinutes(),t.length)},s(e,t){return Ct(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return Ct(a,t.length)}},Tc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},RL={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Ls.y(e,t)},Y:function(e,t,n,r){const a=IH(e,r),s=a>0?a:1-a;if(t==="YY"){const l=s%100;return Ct(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):Ct(s,t.length)},R:function(e,t){const n=AH(e);return Ct(n,t.length)},u:function(e,t){const n=e.getFullYear();return Ct(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Ct(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Ct(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Ls.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Ct(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=LH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):Ct(a,t.length)},I:function(e,t,n){const r=$H(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Ct(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Ls.d(e,t)},D:function(e,t,n){const r=$Se(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Ct(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return Ct(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return Ct(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return Ct(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Tc.noon:r===0?a=Tc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Tc.evening:r>=12?a=Tc.afternoon:r>=4?a=Tc.morning:a=Tc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Ls.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Ls.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Ct(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Ct(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Ls.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Ls.s(e,t)},S:function(e,t){return Ls.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return $L(r);case"XXXX":case"XX":return Ho(r);case"XXXXX":case"XXX":default:return Ho(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return $L(r);case"xxxx":case"xx":return Ho(r);case"xxxxx":case"xxx":default:return Ho(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+DL(r,":");case"OOOO":default:return"GMT"+Ho(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+DL(r,":");case"zzzz":default:return"GMT"+Ho(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Ct(r,t.length)},T:function(e,t,n){return Ct(+e,t.length)}};function DL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+Ct(s,2)}function $L(e,t){return e%60===0?(e>0?"-":"+")+Ct(Math.abs(e)/60,2):Ho(e,t)}function Ho(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Ct(Math.trunc(r/60),2),s=Ct(r%60,2);return n+a+t+s}const IL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},BH=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},LSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return IL(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",IL(r,t)).replace("{{time}}",BH(a,t))},BSe={p:BH,P:LSe},zSe=/^D+$/,qSe=/^Y+$/,FSe=["D","DD","YY","YYYY"];function USe(e){return zSe.test(e)}function HSe(e){return qSe.test(e)}function WSe(e,t,n){const r=VSe(e,t,n);if(console.warn(r),FSe.includes(e))throw new RangeError(r)}function VSe(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const GSe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,YSe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,KSe=/^'([^]*?)'?$/,XSe=/''/g,ZSe=/[a-zA-Z]/;function dv(e,t,n){const r=Zh(),a=n?.locale??r.locale??TE,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=$t(e,n?.in);if(!Z1e(u))throw new RangeError("Invalid time value");let d=t.match(YSe).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=BSe[p];return g(m,a.formatLong)}return m}).join("").match(GSe).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:QSe(m)};if(RL[p])return{isToken:!0,value:m};if(p.match(ZSe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:s,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&HSe(p)||!n?.useAdditionalDayOfYearTokens&&USe(p))&&WSe(p,t,String(e));const g=RL[p[0]];return g(u,p,a.localize,f)}).join("")}function QSe(e){const t=e.match(KSe);return t?t[1].replace(XSe,"'"):e}function JSe(e,t){const n=$t(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=Nn(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function e_e(e,t){return $t(e,t?.in).getMonth()}function t_e(e,t){return $t(e,t?.in).getFullYear()}function n_e(e,t){return+$t(e)>+$t(t)}function r_e(e,t){return+$t(e)<+$t(t)}function a_e(e,t,n){const[r,a]=Ml(n?.in,e,t);return+ao(r,n)==+ao(a,n)}function i_e(e,t,n){const[r,a]=Ml(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function s_e(e,t,n){const[r,a]=Ml(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function o_e(e,t,n){const r=$t(e,n?.in),a=r.getFullYear(),s=r.getDate(),l=Nn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=JSe(l);return r.setMonth(t,Math.min(s,u)),r}function l_e(e,t,n){const r=$t(e,n?.in);return isNaN(+r)?Nn(e,NaN):(r.setFullYear(t),r)}const LL=5,c_e=4;function u_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),s=t.addDays(a,LL*7-1);return t.getMonth(e)===t.getMonth(s)?LL:c_e}function zH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function d_e(e,t){const n=zH(e,t),r=u_e(e,t);return t.addDays(n,r*7-1)}class ia{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?or.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,s)=>this.overrides?.newDate?this.overrides.newDate(r,a,s):this.options.timeZone?new or(r,a,s,this.options.timeZone):new Date(r,a,s),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):OH(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):EH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):V1e(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):G1e(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):TH(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):Q1e(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):eSe(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):rSe(r),s=new Set(a.map(u=>this.getYear(u)));if(s.size===a.length)return a;const l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):d_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):aSe(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):J1e(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):RH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):nSe(r),this.format=(r,a,s)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):dv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):$H(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):e_e(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):t_e(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):LH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):n_e(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):r_e(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):kH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):X1e(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):i_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):s_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):Y1e(r),this.min=r=>this.overrides?.min?this.overrides.min(r):K1e(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):o_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):l_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):zH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):xh(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):yh(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):tSe(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):ao(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):PH(r),this.options={locale:TE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&ia.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,s=n?.code;if(s&&ia.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}ia.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Si=new ia;class qH{constructor(t,n,r=Si){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class f_e{constructor(t,n){this.date=t,this.weeks=n}}class h_e{constructor(t,n){this.days=n,this.weekNumber=t}}function m_e(e){return W.createElement("button",{...e})}function p_e(e){return W.createElement("span",{...e})}function v_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function g_e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function y_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var $e;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})($e||($e={}));var tn;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(tn||(tn={}));var za;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(za||(za={}));var Xr;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(Xr||(Xr={}));function x_e(e){const{options:t,className:n,components:r,classNames:a,...s}=e,l=[a[$e.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===s.value);return W.createElement("span",{"data-disabled":s.disabled,className:a[$e.DropdownRoot]},W.createElement(r.Select,{className:l,...s},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[$e.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[$e.Chevron]})))}function b_e(e){return W.createElement("div",{...e})}function w_e(e){return W.createElement("div",{...e})}function j_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function S_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function __e(e){return W.createElement("table",{...e})}function N_e(e){return W.createElement("div",{...e})}const FH=y.createContext(void 0);function Qh(){const e=y.useContext(FH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function C_e(e){const{components:t}=Qh();return W.createElement(t.Dropdown,{...e})}function O_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...s}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=Qh(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...s},W.createElement(l.PreviousMonthButton,{type:"button",className:u[$e.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[$e.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[$e.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[$e.Chevron]})))}function E_e(e){const{components:t}=Qh();return W.createElement(t.Button,{...e})}function A_e(e){return W.createElement("option",{...e})}function T_e(e){const{components:t}=Qh();return W.createElement(t.Button,{...e})}function k_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function M_e(e){return W.createElement("select",{...e})}function P_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function R_e(e){return W.createElement("th",{...e})}function D_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function $_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function I_e(e){return W.createElement("th",{...e})}function L_e(e){return W.createElement("tbody",{...e})}function B_e(e){const{components:t}=Qh();return W.createElement(t.Dropdown,{...e})}const z_e=Object.freeze(Object.defineProperty({__proto__:null,Button:m_e,CaptionLabel:p_e,Chevron:v_e,Day:g_e,DayButton:y_e,Dropdown:x_e,DropdownNav:b_e,Footer:w_e,Month:j_e,MonthCaption:S_e,MonthGrid:__e,Months:N_e,MonthsDropdown:C_e,Nav:O_e,NextMonthButton:E_e,Option:A_e,PreviousMonthButton:T_e,Root:k_e,Select:M_e,Week:P_e,WeekNumber:$_e,WeekNumberHeader:I_e,Weekday:R_e,Weekdays:D_e,Weeks:L_e,YearsDropdown:B_e},Symbol.toStringTag,{value:"Module"}));function Xi(e,t,n=!1,r=Si){let{from:a,to:s}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&s?(l(s,a)<0&&([a,s]=[s,a]),l(t,a)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?u(s,t):!n&&a?u(a,t):!1}function UH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function kE(e){return!!(e&&typeof e=="object"&&"from"in e)}function HH(e){return!!(e&&typeof e=="object"&&"after"in e)}function WH(e){return!!(e&&typeof e=="object"&&"before"in e)}function VH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function GH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function Zi(e,t,n=Si){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:s,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(GH(u,n))return u.includes(e);if(kE(u))return Xi(u,e,!1,n);if(VH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(UH(u)){const d=s(u.before,e),f=s(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return HH(u)?s(e,u.after)>0:WH(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function q_e(e,t,n,r,a){const{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:w,isAfter:b}=a,N=n&&x(n),E=r&&w(r),O={[tn.focused]:[],[tn.outside]:[],[tn.disabled]:[],[tn.hidden]:[],[tn.today]:[]},A={};for(const C of e){const{date:k,displayMonth:T}=C,M=!!(T&&!g(k,T)),R=!!(N&&j(k,N)),L=!!(E&&b(k,E)),$=!!(s&&Zi(k,s,a)),H=!!(l&&Zi(k,l,a))||R||L||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&O.outside.push(C),$&&O.disabled.push(C),H&&O.hidden.push(C),V&&O.today.push(C),u&&Object.keys(u).forEach(F=>{const G=u?.[F];G&&Zi(k,G,a)&&(A[F]?A[F].push(C):A[F]=[C])})}return C=>{const k={[tn.focused]:!1,[tn.disabled]:!1,[tn.hidden]:!1,[tn.outside]:!1,[tn.today]:!1},T={};for(const M in O){const R=O[M];k[M]=R.some(L=>L===C)}for(const M in A)T[M]=A[M].some(R=>R===C);return{...k,...T}}}function F_e(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[s])=>(n[s]?a.push(n[s]):t[tn[s]]?a.push(t[tn[s]]):t[za[s]]&&a.push(t[za[s]]),a),[t[$e.Day]])}function U_e(e){return{...z_e,...e}}function H_e(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function ME(){const e={};for(const t in $e)e[$e[t]]=`rdp-${$e[t]}`;for(const t in tn)e[tn[t]]=`rdp-${tn[t]}`;for(const t in za)e[za[t]]=`rdp-${za[t]}`;for(const t in Xr)e[Xr[t]]=`rdp-${Xr[t]}`;return e}function YH(e,t,n){return(n??new ia(t)).formatMonthYear(e)}const W_e=YH;function V_e(e,t,n){return(n??new ia(t)).format(e,"d")}function G_e(e,t=Si){return t.format(e,"LLLL")}function Y_e(e,t,n){return(n??new ia(t)).format(e,"cccccc")}function K_e(e,t=Si){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function X_e(){return""}function KH(e,t=Si){return t.format(e,"yyyy")}const Z_e=KH,Q_e=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:YH,formatDay:V_e,formatMonthCaption:W_e,formatMonthDropdown:G_e,formatWeekNumber:K_e,formatWeekNumberHeader:X_e,formatWeekdayName:Y_e,formatYearCaption:Z_e,formatYearDropdown:KH},Symbol.toStringTag,{value:"Module"}));function J_e(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...Q_e,...e}}function eNe(e,t,n,r,a){const{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),w=t&&gs(n)||!1;return{value:j,label:x,disabled:w}})}function tNe(e,t={},n={}){let r={...t?.[$e.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function nNe(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),s=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);s.push(u)}return s}function rNe(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=s(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function XH(e,t,n,r){let a=(r??new ia(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const aNe=XH;function ZH(e,t,n){return(n??new ia(t)).formatMonthYear(e)}const iNe=ZH;function sNe(e,t,n,r){let a=(r??new ia(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function oNe(e){return"Choose the Month"}function lNe(){return""}function cNe(e){return"Go to the Next Month"}function uNe(e){return"Go to the Previous Month"}function dNe(e,t,n){return(n??new ia(t)).format(e,"cccc")}function fNe(e,t){return`Week ${e}`}function hNe(e){return"Week Number"}function mNe(e){return"Choose the Year"}const pNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:iNe,labelDay:aNe,labelDayButton:XH,labelGrid:ZH,labelGridcell:sNe,labelMonthDropdown:oNe,labelNav:lNe,labelNext:cNe,labelPrevious:uNe,labelWeekNumber:fNe,labelWeekNumberHeader:hNe,labelWeekday:dNe,labelYearDropdown:mNe},Symbol.toStringTag,{value:"Module"})),Jh=e=>e instanceof HTMLElement?e:null,c_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],vNe=e=>Jh(e.querySelector("[data-animated-month]")),u_=e=>Jh(e.querySelector("[data-animated-caption]")),d_=e=>Jh(e.querySelector("[data-animated-weeks]")),gNe=e=>Jh(e.querySelector("[data-animated-nav]")),yNe=e=>Jh(e.querySelector("[data-animated-weekdays]"));function xNe(e,t,{classNames:n,months:r,focused:a,dateLib:s}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=s.isSameMonth(r[0].date,f[0].date),p=s.isAfter(r[0].date,f[0].date),g=p?n[Xr.caption_after_enter]:n[Xr.caption_before_enter],x=p?n[Xr.weeks_after_enter]:n[Xr.weeks_before_enter],j=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(c_(w).forEach(O=>{if(!(O instanceof HTMLElement))return;const A=vNe(O);A&&O.contains(A)&&O.removeChild(A);const C=u_(O);C&&C.classList.remove(g);const k=d_(O);k&&k.classList.remove(x)}),l.current=w):l.current=null,d.current||m||a)return;const b=j instanceof HTMLElement?c_(j):[],N=c_(e.current);if(N?.every(E=>E instanceof HTMLElement)&&b&&b.every(E=>E instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const E=gNe(e.current);E&&(E.style.zIndex="1"),N.forEach((O,A)=>{const C=b[A];if(!C)return;O.style.position="relative",O.style.overflow="hidden";const k=u_(O);k&&k.classList.add(g);const T=d_(O);T&&T.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),E&&(E.style.zIndex=""),k&&k.classList.remove(g),T&&T.classList.remove(x),O.style.position="",O.style.overflow="",O.contains(C)&&O.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const R=yNe(C);R&&(R.style.opacity="0");const L=u_(C);L&&(L.classList.add(p?n[Xr.caption_before_exit]:n[Xr.caption_after_exit]),L.addEventListener("animationend",M));const $=d_(C);$&&$.classList.add(p?n[Xr.weeks_before_exit]:n[Xr.weeks_after_exit]),O.insertBefore(C,O.firstChild)})}})}function bNe(e,t,n,r){const a=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:w,isAfter:b,startOfBroadcastWeek:N,startOfISOWeek:E,startOfWeek:O}=r,A=d?N(a,r):l?E(a):O(a),C=d?g(s):l?x(j(s)):w(j(s)),k=m(C,A),T=p(s,a)+1,M=[];for(let $=0;$<=k;$++){const H=f(A,$);if(t&&b(H,t))break;M.push(H)}const L=(d?35:42)*T;if(u&&M.length{const a=r.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function jNe(e,t,n,r){const{numberOfMonths:a=1}=n,s=[];for(let l=0;lt)break;s.push(u)}return s}function BL(e,t,n,r){const{month:a,defaultMonth:s,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||s||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(b,r):n.ISOWeek?g(b):x(b),E=n.broadcastCalendar?s(b):n.ISOWeek?l(u(b)):d(u(b)),O=t.filter(T=>T>=N&&T<=E),A=n.broadcastCalendar?35:42;if(n.fixedWeeks&&O.length{const R=A-O.length;return M>E&&M<=a(E,R)});O.push(...T)}const C=O.reduce((T,M)=>{const R=n.ISOWeek?f(M):m(M),L=T.find(H=>H.weekNumber===R),$=new qH(M,b,r);return L?L.days.push($):T.push(new h_e(R,[$])),T},[]),k=new f_e(b,C);return w.push(k),w},[]);return n.reverseMonths?j.reverse():j}function _Ne(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:w}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&w&&(r=w),!r&&x&&(r=m(x,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&b&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&b&&(r=f(e.today??p())),[n&&s(n),r&&s(r)]}function NNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?s:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function rx(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function ENe(e,t){const[n,r]=_Ne(e,t),{startOfMonth:a,endOfMonth:s}=t,l=BL(e,n,r,t),[u,d]=rx(l,e.month?l:void 0);y.useEffect(()=>{const k=BL(e,n,r,t);d(k)},[e.timeZone]);const f=jNe(u,r,e,t),m=bNe(f,e.endMonth?s(e.endMonth):void 0,e,t),p=SNe(f,m,e,t),g=ONe(p),x=wNe(p),j=CNe(u,n,e,t),w=NNe(u,r,e,t),{disableNavigation:b,onMonthChange:N}=e,E=k=>g.some(T=>T.days.some(M=>M.isEqualTo(k))),O=k=>{if(b)return;let T=a(k);n&&Ta(r)&&(T=a(r)),d(T),N?.(T)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:w,goToMonth:O,goToDay:k=>{E(k)||O(k.date)}}}var ti;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ti||(ti={}));function zL(e){return!e[tn.disabled]&&!e[tn.hidden]&&!e[tn.outside]}function ANe(e,t,n,r){let a,s=-1;for(const l of e){const u=t(l);zL(u)&&(u[tn.focused]&&szL(t(l)))),a}function TNe(e,t,n,r,a,s,l){const{ISOWeek:u,broadcastCalendar:d}=s,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:w,max:b,min:N,startOfBroadcastWeek:E,startOfISOWeek:O,startOfWeek:A}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:T=>d?E(T,l):u?O(T):A(T),endOfWeek:T=>d?x(T):u?j(T):w(T)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=b([r,k]):t==="after"&&a&&(k=N([a,k])),k}function QH(e,t,n,r,a,s,l,u=0){if(u>365)return;const d=TNe(e,t,n.date,r,a,s,l),f=!!(s.disabled&&Zi(d,s.disabled,l)),m=!!(s.hidden&&Zi(d,s.hidden,l)),p=d,g=new qH(d,p,l);return!f&&!m?g:QH(e,t,g,r,a,s,l,u+1)}function kNe(e,t,n,r,a){const{autoFocus:s}=e,[l,u]=y.useState(),d=ANe(t.days,n,r||(()=>!1),l),[f,m]=y.useState(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(w,b)=>{if(!f)return;const N=QH(w,b,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(O=>O.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function MNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=rx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,w)=>{let b=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;b=u?.filter(N=>!d(N,x))}else u?.length===p?b=[x]:b=[...b,x];return a||l(b),a?.(b,x,j,w),b},isSelected:f}}function PNe(e,t,n=0,r=0,a=!1,s=Si){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=s;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=s.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?Xi(e,u,!1,n):GH(u,n)?u.some(d=>Xi(e,d,!1,n)):kE(u)?u.from&&u.to?qL(e,{from:u.from,to:u.to},n):!1:VH(u)?RNe(e,u.dayOfWeek,n):UH(u)?n.isAfter(u.before,u.after)?qL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):Zi(e.from,u,n)||Zi(e.to,u,n):HH(u)||WH(u)?Zi(e.from,u,n)||Zi(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function $Ne(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:s,onSelect:l}=e,[u,d]=rx(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:w,max:b}=e,N=g?PNe(g,f,w,b,s,t):void 0;return r&&n&&N?.from&&N.to&&DNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&Xi(f,g,!1,t)}}function INe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=rx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function LNe(e,t){const n=INe(e,t),r=MNe(e,t),a=$Ne(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function BNe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new or(t.today,t.timeZone)),t.month&&(t.month=new or(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new or(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new or(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new or(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new or(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(et=>new or(et,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new or(t.selected.from,t.timeZone):void 0,to:t.selected.to?new or(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:s,locale:l,classNames:u}=y.useMemo(()=>{const et={...TE,...t.locale};return{dateLib:new ia({locale:et,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:U_e(t.components),formatters:J_e(t.formatters),labels:{...pNe,...t.labels},locale:et,classNames:{...ME(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:w,onDayMouseEnter:b,onDayMouseLeave:N,onNextClick:E,onPrevClick:O,showWeekNumber:A,styles:C}=t,{formatCaption:k,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:L,formatWeekdayName:$,formatYearDropdown:H}=r,V=ENe(t,s),{days:F,months:G,navStart:B,navEnd:D,previousMonth:U,nextMonth:K,goToMonth:te}=V,I=q_e(F,t,B,D,s),{isSelected:z,select:Y,selected:ne}=LNe(t,s)??{},{blur:se,focused:xe,isFocusTarget:ee,moveFocus:ae,setFocused:Z}=kNe(t,V,I,z??(()=>!1),s),{labelDayButton:ve,labelGridcell:je,labelGrid:le,labelMonthDropdown:Re,labelNav:_e,labelPrevious:fe,labelNext:pe,labelWeekday:Le,labelWeekNumber:It,labelWeekNumberHeader:Cn,labelYearDropdown:vr}=a,rr=y.useMemo(()=>nNe(s,t.ISOWeek),[s,t.ISOWeek]),gr=f!==void 0||x!==void 0,ct=y.useCallback(()=>{U&&(te(U),O?.(U))},[U,te,O]),rt=y.useCallback(()=>{K&&(te(K),E?.(K))},[te,K,E]),$n=y.useCallback((et,zt)=>He=>{He.preventDefault(),He.stopPropagation(),Z(et),Y?.(et.date,zt,He),x?.(et.date,zt,He)},[Y,x,Z]),go=y.useCallback((et,zt)=>He=>{Z(et),j?.(et.date,zt,He)},[j,Z]),sm=y.useCallback((et,zt)=>He=>{se(),g?.(et.date,zt,He)},[se,g]),Rl=y.useCallback((et,zt)=>He=>{const gt={ArrowLeft:[He.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[He.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[He.shiftKey?"year":"week","after"],ArrowUp:[He.shiftKey?"year":"week","before"],PageUp:[He.shiftKey?"year":"month","before"],PageDown:[He.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(gt[He.key]){He.preventDefault(),He.stopPropagation();const[In,tt]=gt[He.key];ae(In,tt)}w?.(et.date,zt,He)},[ae,w,t.dir]),lx=y.useCallback((et,zt)=>He=>{b?.(et.date,zt,He)},[b]),om=y.useCallback((et,zt)=>He=>{N?.(et.date,zt,He)},[N]),cx=y.useCallback(et=>zt=>{const He=Number(zt.target.value),gt=s.setMonth(s.startOfMonth(et),He);te(gt)},[s,te]),ux=y.useCallback(et=>zt=>{const He=Number(zt.target.value),gt=s.setYear(s.startOfMonth(et),He);te(gt)},[s,te]),{className:yo,style:yr}=y.useMemo(()=>({className:[u[$e.Root],t.className].filter(Boolean).join(" "),style:{...C?.[$e.Root],...t.style}}),[u,t.className,t.style,C]),Ka=H_e(t),ar=y.useRef(null);xNe(ar,!!t.animate,{classNames:u,months:G,focused:xe,dateLib:s});const dx={dayPickerProps:t,selected:ne,select:Y,isSelected:z,months:G,nextMonth:K,previousMonth:U,goToMonth:te,getModifiers:I,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(FH.Provider,{value:dx},W.createElement(n.Root,{rootRef:t.animate?ar:void 0,className:yo,style:yr,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...Ka},W.createElement(n.Months,{className:u[$e.Months],style:C?.[$e.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[$e.Nav],style:C?.[$e.Nav],"aria-label":_e(),onPreviousClick:ct,onNextClick:rt,previousMonth:U,nextMonth:K}),G.map((et,zt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[$e.Month],style:C?.[$e.Month],key:zt,displayIndex:zt,calendarMonth:et},m==="around"&&!t.hideNavigation&&zt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[$e.PreviousMonthButton],tabIndex:U?void 0:-1,"aria-disabled":U?void 0:!0,"aria-label":fe(U),onClick:ct,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:U?void 0:!0,className:u[$e.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[$e.MonthCaption],style:C?.[$e.MonthCaption],calendarMonth:et,displayIndex:zt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[$e.Dropdowns],style:C?.[$e.Dropdowns]},(()=>{const He=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[$e.MonthsDropdown],"aria-label":Re(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:cx(et.date),options:eNe(et.date,B,D,r,s),style:C?.[$e.Dropdown],value:s.getMonth(et.date)}):W.createElement("span",{key:"month"},M(et.date,s)),gt=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[$e.YearsDropdown],"aria-label":vr(s.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:ux(et.date),options:rNe(B,D,r,s,!!t.reverseYears),style:C?.[$e.Dropdown],value:s.getYear(et.date)}):W.createElement("span",{key:"year"},H(et.date,s));return s.getMonthYearOrder()==="year-first"?[gt,He]:[He,gt]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(et.date,s.options,s))):W.createElement(n.CaptionLabel,{className:u[$e.CaptionLabel],role:"status","aria-live":"polite"},k(et.date,s.options,s))),m==="around"&&!t.hideNavigation&&zt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[$e.NextMonthButton],tabIndex:K?void 0:-1,"aria-disabled":K?void 0:!0,"aria-label":pe(K),onClick:rt,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:K?void 0:!0,className:u[$e.Chevron],orientation:t.dir==="rtl"?"left":"right"})),zt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[$e.Nav],style:C?.[$e.Nav],"aria-label":_e(),onPreviousClick:ct,onNextClick:rt,previousMonth:U,nextMonth:K}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":le(et.date,s.options,s)||void 0,className:u[$e.MonthGrid],style:C?.[$e.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[$e.Weekdays],style:C?.[$e.Weekdays]},A&&W.createElement(n.WeekNumberHeader,{"aria-label":Cn(s.options),className:u[$e.WeekNumberHeader],style:C?.[$e.WeekNumberHeader],scope:"col"},L()),rr.map(He=>W.createElement(n.Weekday,{"aria-label":Le(He,s.options,s),className:u[$e.Weekday],key:String(He),style:C?.[$e.Weekday],scope:"col"},$(He,s.options,s)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[$e.Weeks],style:C?.[$e.Weeks]},et.weeks.map(He=>W.createElement(n.Week,{className:u[$e.Week],key:He.weekNumber,style:C?.[$e.Week],week:He},A&&W.createElement(n.WeekNumber,{week:He,style:C?.[$e.WeekNumber],"aria-label":It(He.weekNumber,{locale:l}),className:u[$e.WeekNumber],scope:"row",role:"rowheader"},R(He.weekNumber,s)),He.days.map(gt=>{const{date:In}=gt,tt=I(gt);if(tt[tn.focused]=!tt.hidden&&!!xe?.isEqualTo(gt),tt[za.selected]=z?.(In)||tt.selected,kE(ne)){const{from:$l,to:bo}=ne;tt[za.range_start]=!!($l&&bo&&s.isSameDay(In,$l)),tt[za.range_end]=!!($l&&bo&&s.isSameDay(In,bo)),tt[za.range_middle]=Xi(ne,In,!0,s)}const Dl=tNe(tt,C,t.modifiersStyles),xo=F_e(tt,u,t.modifiersClassNames),fx=!gr&&!tt.hidden?je(In,tt,s.options,s):void 0;return W.createElement(n.Day,{key:`${s.format(In,"yyyy-MM-dd")}_${s.format(gt.displayMonth,"yyyy-MM")}`,day:gt,modifiers:tt,className:xo.join(" "),style:Dl,role:"gridcell","aria-selected":tt.selected||void 0,"aria-label":fx,"data-day":s.format(In,"yyyy-MM-dd"),"data-month":gt.outside?s.format(In,"yyyy-MM"):void 0,"data-selected":tt.selected||void 0,"data-disabled":tt.disabled||void 0,"data-hidden":tt.hidden||void 0,"data-outside":gt.outside||void 0,"data-focused":tt.focused||void 0,"data-today":tt.today||void 0},!tt.hidden&&gr?W.createElement(n.DayButton,{className:u[$e.DayButton],style:C?.[$e.DayButton],type:"button",day:gt,modifiers:tt,disabled:tt.disabled||void 0,tabIndex:ee(gt)?0:-1,"aria-label":ve(In,tt,s.options,s),onClick:$n(gt,tt),onBlur:sm(gt,tt),onFocus:go(gt,tt),onKeyDown:Rl(gt,tt),onMouseEnter:lx(gt,tt),onMouseLeave:om(gt,tt)},T(In,s.options,s)):!tt.hidden&&T(gt.date,s.options,s))})))))))),t.footer&&W.createElement(n.Footer,{className:u[$e.Footer],style:C?.[$e.Footer],role:"status","aria-live":"polite"},t.footer)))}function FL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:s,components:l,...u}){const d=ME();return i.jsx(BNe,{showOutsideDays:n,className:ce("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...s},classNames:{root:ce("w-fit",d.root),months:ce("relative flex flex-col gap-4 md:flex-row",d.months),month:ce("flex w-full flex-col gap-4",d.month),nav:ce("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:ce(mh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:ce(mh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:ce("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:ce("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:ce("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:ce("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:ce("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:ce("flex",d.weekdays),weekday:ce("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:ce("mt-2 flex w-full",d.week),week_number_header:ce("w-[--cell-size] select-none",d.week_number_header),week_number:ce("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:ce("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:ce("bg-accent rounded-l-md",d.range_start),range_middle:ce("rounded-none",d.range_middle),range_end:ce("bg-accent rounded-r-md",d.range_end),today:ce("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:ce("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:ce("text-muted-foreground opacity-50",d.disabled),hidden:ce("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:ce(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(JO,{className:ce("size-4",f),...p}):m==="right"?i.jsx(eE,{className:ce("size-4",f),...p}):i.jsx(fh,{className:ce("size-4",f),...p}),DayButton:zNe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function zNe({className:e,day:t,modifiers:n,...r}){const a=ME(),s=y.useRef(null);return y.useEffect(()=>{n.focused&&s.current?.focus()},[n.focused]),i.jsx(de,{ref:s,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:ce("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class qNe{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const $c=new qNe;typeof window<"u"&&$c.connect();const FNe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},UNe=(e,t,n)=>{let r;const a=FNe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},HNe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},WNe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},VNe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},GNe={date:Zc({formats:HNe,defaultWidth:"full"}),time:Zc({formats:WNe,defaultWidth:"full"}),dateTime:Zc({formats:VNe,defaultWidth:"full"})};function UL(e,t,n){const r="eeee p";return a_e(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const YNe={lastWeek:UL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:UL,other:"PP p"},KNe=(e,t,n,r)=>{const a=YNe[e];return typeof a=="function"?a(t,n,r):a},XNe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},ZNe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},QNe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},JNe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},tCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},nCe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},rCe={ordinalNumber:nCe,era:ai({values:XNe,defaultWidth:"wide"}),quarter:ai({values:ZNe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ai({values:QNe,defaultWidth:"wide"}),day:ai({values:JNe,defaultWidth:"wide"}),dayPeriod:ai({values:eCe,defaultWidth:"wide",formattingValues:tCe,defaultFormattingWidth:"wide"})},aCe=/^(第\s*)?\d+(日|时|分|秒)?/i,iCe=/\d+/i,sCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},oCe={any:[/^(前)/i,/^(公元)/i]},lCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},cCe={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},uCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},dCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},fCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},hCe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},mCe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},pCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},vCe={ordinalNumber:DH({matchPattern:aCe,parsePattern:iCe,valueCallback:e=>parseInt(e,10)}),era:ii({matchPatterns:sCe,defaultMatchWidth:"wide",parsePatterns:oCe,defaultParseWidth:"any"}),quarter:ii({matchPatterns:lCe,defaultMatchWidth:"wide",parsePatterns:cCe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ii({matchPatterns:uCe,defaultMatchWidth:"wide",parsePatterns:dCe,defaultParseWidth:"any"}),day:ii({matchPatterns:fCe,defaultMatchWidth:"wide",parsePatterns:hCe,defaultParseWidth:"any"}),dayPeriod:ii({matchPatterns:mCe,defaultMatchWidth:"any",parsePatterns:pCe,defaultParseWidth:"any"})},Gp={code:"zh-CN",formatDistance:UNe,formatLong:GNe,formatRelative:KNe,localize:rCe,match:vCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function gCe(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,s]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,w]=y.useState(!1),b=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const $=$c.getAllLogs();t($);const H=$c.onLog(()=>{t($c.getAllLogs())}),V=$c.onConnectionChange(F=>{w(F)});return()=>{H(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const E=y.useMemo(()=>{const $=new Set(e.map(H=>H.module));return Array.from($).sort()},[e]),O=$=>{switch($){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},A=$=>{switch($){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},C=()=>{window.location.reload()},k=()=>{$c.clearLogs(),t([])},T=()=>{const $=L.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` +`),H=new Blob([$],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(H),F=document.createElement("a");F.href=V,F.download=`logs-${dv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,F.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},R=()=>{f(void 0),p(void 0)},L=y.useMemo(()=>e.filter($=>{const H=n===""||$.message.toLowerCase().includes(n.toLowerCase())||$.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||$.level===a,F=l==="all"||$.module===l;let G=!0;if(d||m){const B=new Date($.timestamp);if(d){const D=new Date(d);D.setHours(0,0,0,0),G=G&&B>=D}if(m){const D=new Date(m);D.setHours(23,59,59,999),G=G&&B<=D}}return H&&V&&F&&G}),[e,n,a,l,d,m]);return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:ce("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(ot,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索日志...",value:n,onChange:$=>r($.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(Et,{value:a,onValueChange:s,children:[i.jsxs(wt,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(ZN,{className:"h-4 w-4 mr-2"}),i.jsx(At,{placeholder:"级别"})]}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部级别"}),i.jsx(Me,{value:"DEBUG",children:"DEBUG"}),i.jsx(Me,{value:"INFO",children:"INFO"}),i.jsx(Me,{value:"WARNING",children:"WARNING"}),i.jsx(Me,{value:"ERROR",children:"ERROR"}),i.jsx(Me,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(Et,{value:l,onValueChange:u,children:[i.jsxs(wt,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(ZN,{className:"h-4 w-4 mr-2"}),i.jsx(At,{placeholder:"模块"})]}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部模块"}),E.map($=>i.jsx(Me,{value:$,children:$},$))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(GI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?dv(d,"PPP",{locale:Gp}):"开始日期"})]})}),i.jsx(os,{className:"w-auto p-0",align:"start",children:i.jsx(FL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:Gp})})]}),i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(GI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?dv(m,"PPP",{locale:Gp}):"结束日期"})]})}),i.jsx(os,{className:"w-auto p-0",align:"start",children:i.jsx(FL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:Gp})})]}),(d||m)&&i.jsxs(de,{variant:"outline",size:"sm",onClick:R,className:"w-full sm:w-auto h-9",children:[i.jsx(Fh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(de,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(mge,{className:"h-4 w-4"}):i.jsx(gge,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(ol,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(Tt,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:T,className:"flex-1 sm:flex-none h-9",children:[i.jsx(KN,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[L.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(ot,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Vt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:b,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[L.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):L.map($=>i.jsxs("div",{className:ce("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",A($.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:$.timestamp}),i.jsxs("span",{className:ce("text-xs font-semibold",O($.level)),children:["[",$.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:$.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:$.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:$.timestamp}),i.jsxs("span",{className:ce("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",O($.level)),children:["[",$.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:$.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:$.message})]})]},$.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const yCe="Mai-with-u",xCe="plugin-repo",bCe="main",wCe="plugin_details.json";async function jCe(){try{const e=await Qe("/api/webui/plugins/fetch-raw",{method:"POST",headers:lt(),body:JSON.stringify({owner:yCe,repo:xCe,branch:bCe,file_path:wCe})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function SCe(){try{const e=await Qe("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function _Ce(){try{const e=await Qe("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function NCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,s=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function CCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const s=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(s)},3e4)},a.onmessage=s=>{try{if(s.data==="pong")return;const l=JSON.parse(s.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=s=>{console.error("Plugin progress WebSocket error:",s),t?.(s)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function Yp(){try{const e=await Qe("/api/webui/plugins/installed",{headers:lt()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function Kp(e,t){return t.some(n=>n.id===e)}function Xp(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function OCe(e,t,n="main"){const r=await Qe("/api/webui/plugins/install",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function ECe(e){const t=await Qe("/api/webui/plugins/uninstall",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function ACe(e,t,n="main"){const r=await Qe("/api/webui/plugins/update",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}const HL={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function TCe(){const e=sa(),[t,n]=y.useState(null),[r,a]=y.useState(""),[s,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[,T]=y.useState([]),{toast:M}=mr();y.useEffect(()=>{let D=null,U=!1;return(async()=>{if(D=CCe(te=>{U||(A(te),te.stage==="success"?setTimeout(()=>{U||A(null)},2e3):te.stage==="error"&&(j(!1),b(te.error||"加载失败")))},te=>{console.error("WebSocket error:",te),U||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(te=>{if(!D){te();return}const I=()=>{D&&D.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),te()):D&&D.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),te()):setTimeout(I,100)};I()}),!U){const te=await SCe();E(te),te.installed||M({title:"Git 未安装",description:te.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!U){const te=await _Ce();k(te)}if(!U)try{j(!0),b(null);const te=await jCe();if(!U){const I=await Yp();T(I);const z=te.map(Y=>{const ne=Kp(Y.id,I),se=Xp(Y.id,I);return{...Y,installed:ne,installed_version:se}});for(const Y of I)!z.some(se=>se.id===Y.id)&&Y.manifest&&z.push({id:Y.id,manifest:{manifest_version:Y.manifest.manifest_version||1,name:Y.manifest.name,version:Y.manifest.version,description:Y.manifest.description||"",author:Y.manifest.author,license:Y.manifest.license||"Unknown",host_application:Y.manifest.host_application,homepage_url:Y.manifest.homepage_url,repository_url:Y.manifest.repository_url,keywords:Y.manifest.keywords||[],categories:Y.manifest.categories||[],default_locale:Y.manifest.default_locale||"zh-CN",locales_path:Y.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:Y.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(z)}}catch(te){if(!U){const I=te instanceof Error?te.message:"加载插件列表失败";b(I),M({title:"加载失败",description:I,variant:"destructive"})}}finally{U||j(!1)}})(),()=>{U=!0,D&&D.close()}},[M]);const R=D=>{if(!D.installed&&C&&!L(D))return i.jsxs(Dt,{variant:"destructive",className:"gap-1",children:[i.jsx(Sg,{className:"h-3 w-3"}),"不兼容"]});if(D.installed){const U=D.installed_version?.trim(),K=D.manifest.version?.trim();if(U!==K){const te=U?.split(".").map(Number)||[0,0,0],I=K?.split(".").map(Number)||[0,0,0];for(let z=0;z<3;z++){if((I[z]||0)>(te[z]||0))return i.jsxs(Dt,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(Sg,{className:"h-3 w-3"}),"可更新"]});if((I[z]||0)<(te[z]||0))break}}return i.jsxs(Dt,{variant:"default",className:"gap-1",children:[i.jsx(Ws,{className:"h-3 w-3"}),"已安装"]})}return null},L=D=>!C||!D.manifest?.host_application?!0:NCe(D.manifest.host_application.min_version,D.manifest.host_application.max_version,C),$=D=>{if(!D.installed||!D.installed_version||!D.manifest?.version)return!1;const U=D.installed_version.trim(),K=D.manifest.version.trim();if(U===K)return!1;const te=U.split(".").map(Number),I=K.split(".").map(Number);for(let z=0;z<3;z++){if((I[z]||0)>(te[z]||0))return!0;if((I[z]||0)<(te[z]||0))return!1}return!1},H=p.filter(D=>{if(!D.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",D.id),!1;const U=r===""||D.manifest.name?.toLowerCase().includes(r.toLowerCase())||D.manifest.description?.toLowerCase().includes(r.toLowerCase())||D.manifest.keywords&&D.manifest.keywords.some(z=>z.toLowerCase().includes(r.toLowerCase())),K=s==="all"||D.manifest.categories&&D.manifest.categories.includes(s);let te=!0;u==="installed"?te=D.installed===!0:u==="updates"&&(te=D.installed===!0&&$(D));const I=!f||!C||L(D);return U&&K&&te&&I}),V=()=>{n(null)},F=async D=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!L(D)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await OCe(D.id,D.manifest.repository_url||"","main"),M({title:"安装成功",description:`${D.manifest.name} 已成功安装`});const U=await Yp();T(U),g(K=>K.map(te=>{if(te.id===D.id){const I=Kp(te.id,U),z=Xp(te.id,U);return{...te,installed:I,installed_version:z}}return te}))}catch(U){M({title:"安装失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},G=async D=>{try{await ECe(D.id),M({title:"卸载成功",description:`${D.manifest.name} 已成功卸载`});const U=await Yp();T(U),g(K=>K.map(te=>{if(te.id===D.id){const I=Kp(te.id,U),z=Xp(te.id,U);return{...te,installed:I,installed_version:z}}return te}))}catch(U){M({title:"卸载失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},B=async D=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const U=await ACe(D.id,D.manifest.repository_url||"","main");M({title:"更新成功",description:`${D.manifest.name} 已从 ${U.old_version} 更新到 ${U.new_version}`});const K=await Yp();T(K),g(te=>te.map(I=>{if(I.id===D.id){const z=Kp(I.id,K),Y=Xp(I.id,K);return{...I,installed:z,installed_version:Y}}return I}))}catch(U){M({title:"更新失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(de,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(Ege,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(ot,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(qt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Gc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(Ft,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(er,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(sn,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(ot,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索插件...",value:r,onChange:D=>a(D.target.value),className:"pl-9"})]}),i.jsxs(Et,{value:s,onValueChange:l,children:[i.jsx(wt,{className:"w-full sm:w-[200px]",children:i.jsx(At,{placeholder:"选择分类"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部分类"}),i.jsx(Me,{value:"Group Management",children:"群组管理"}),i.jsx(Me,{value:"Entertainment & Interaction",children:"娱乐互动"}),i.jsx(Me,{value:"Utility Tools",children:"实用工具"}),i.jsx(Me,{value:"Content Generation",children:"内容生成"}),i.jsx(Me,{value:"Multimedia",children:"多媒体"}),i.jsx(Me,{value:"External Integration",children:"外部集成"}),i.jsx(Me,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),i.jsx(Me,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(no,{id:"compatible-only",checked:f,onCheckedChange:D=>m(D===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(ul,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(Zs,{className:"grid w-full grid-cols-3",children:[i.jsxs(Ot,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Ot,{value:"installed",children:["已安装 (",p.filter(D=>D.installed).length,")"]}),i.jsxs(Ot,{value:"updates",children:["可更新 (",p.filter(D=>D.installed&&$(D)).length,")"]})]})}),O&&O.stage==="loading"&&i.jsx(ot,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(QN,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[O.operation==="fetch"&&"加载插件列表",O.operation==="install"&&`安装插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="uninstall"&&`卸载插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="update"&&`更新插件${O.plugin_id?`: ${O.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[O.progress,"%"]})]}),i.jsx(Yg,{value:O.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.message}),O.operation==="fetch"&&O.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",O.loaded_plugins," / ",O.total_plugins," 个插件"]})]})}),O&&O.stage==="error"&&O.error&&i.jsx(ot,{className:"border-destructive bg-destructive/10",children:i.jsx(qt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Gc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(Ft,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(er,{className:"text-destructive/80",children:O.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(QN,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):w?i.jsx(ot,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Gc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:w}),i.jsx(de,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):H.length===0?i.jsx(ot,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Dr,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||s!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:H.map(D=>i.jsxs(ot,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(qt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(Ft,{className:"text-xl",children:D.manifest?.name||D.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[D.manifest?.categories&&D.manifest.categories[0]&&i.jsx(Dt,{variant:"secondary",className:"text-xs whitespace-nowrap",children:HL[D.manifest.categories[0]]||D.manifest.categories[0]}),R(D)]})]}),i.jsx(er,{className:"line-clamp-2",children:D.manifest?.description||"无描述"})]}),i.jsx(sn,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(KN,{className:"h-4 w-4"}),i.jsx("span",{children:D.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(XI,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:D.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[D.manifest?.keywords&&D.manifest.keywords.slice(0,3).map(U=>i.jsx(Dt,{variant:"outline",className:"text-xs",children:U},U)),D.manifest?.keywords&&D.manifest.keywords.length>3&&i.jsxs(Dt,{variant:"outline",className:"text-xs",children:["+",D.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",D.manifest?.version||"unknown"," · ",D.manifest?.author?.name||"Unknown"]}),D.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[D.manifest.host_application.min_version,D.manifest.host_application.max_version?` - ${D.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(Y5,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(de,{variant:"outline",size:"sm",onClick:()=>n(D),children:"查看详情"}),D.installed?$(D)?i.jsxs(de,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>B(D),children:[i.jsx(ol,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(de,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(D),children:[i.jsx(Tt,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(de,{size:"sm",disabled:!N?.installed||O?.operation==="install"||C!==null&&!L(D),title:N?.installed?C!==null&&!L(D)?`不兼容当前版本 (需要 ${D.manifest?.host_application?.min_version||"未知"}${D.manifest?.host_application?.max_version?` - ${D.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>F(D),children:[i.jsx(KN,{className:"h-4 w-4 mr-1"}),O?.operation==="install"&&O?.plugin_id===D.id?"安装中...":"安装"]})]})})]},D.id))}),i.jsx(nr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Wn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Vn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(dr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(iv,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Dt,{variant:"secondary",children:HL[t.manifest.categories[0]]||t.manifest.categories[0]}),R(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(XI,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(D=>i.jsx(Dt,{variant:"outline",children:D},D))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs($r,{children:[t.manifest.homepage_url&&i.jsxs(de,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(iv,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(de,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(iv,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function kCe(){const e=sa(),{toast:t}=mr(),[n,r]=y.useState([]),[a,s]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b=y.useCallback(async()=>{try{s(!0),u(null);const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${T}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const R=await M.json();r(R.mirrors||[])}catch(T){const M=T instanceof Error?T.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{s(!1)}},[t]);y.useEffect(()=>{b()},[b]);const N=async()=>{try{const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const R=await M.json();throw new Error(R.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),w({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b()}catch(T){t({title:"添加失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},E=async()=>{if(d)try{const T=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),b()}catch(T){t({title:"更新失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},O=async T=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),b()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},A=async T=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!T.enabled})})).ok)throw new Error("更新状态失败");b()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=T=>{f(T),w({id:T.id,name:T.name,raw_prefix:T.raw_prefix,clone_prefix:T.clone_prefix,enabled:T.enabled,priority:T.priority}),x(!0)},k=async(T,M)=>{const R=M==="up"?T.priority-1:T.priority+1;if(!(R<1))try{const L=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${L}`,"Content-Type":"application/json"},body:JSON.stringify({priority:R})})).ok)throw new Error("更新优先级失败");b()}catch(L){t({title:"更新失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(de,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(sF,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(de,{onClick:()=>p(!0),children:[i.jsx(tr,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(ot,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(QN,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(ot,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Gc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(de,{onClick:b,children:"重新加载"})]})}):i.jsxs(ot,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"状态"}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"ID"}),i.jsx(Ze,{children:"优先级"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n.map(T=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(at,{checked:T.enabled,onCheckedChange:()=>A(T)})}),i.jsx(Ue,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:T.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",T.raw_prefix]})]})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:"outline",children:T.id})}),i.jsx(Ue,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:T.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(de,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(VN,{className:"h-3 w-3"})}),i.jsx(de,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"down"),children:i.jsx(fh,{className:"h-3 w-3"})})]})]})}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"icon",onClick:()=>C(T),children:i.jsx(Tu,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"icon",onClick:()=>O(T.id),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},T.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(T=>i.jsx(ot,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:T.name}),T.enabled&&i.jsx(Dt,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Dt,{variant:"outline",className:"mt-1 text-xs",children:T.id})]}),i.jsx(at,{checked:T.enabled,onCheckedChange:()=>A(T)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:T.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:T.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(de,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(T),children:[i.jsx(Tu,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(de,{variant:"outline",size:"sm",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(VN,{className:"h-4 w-4"})}),i.jsx(de,{variant:"outline",size:"sm",onClick:()=>k(T,"down"),children:i.jsx(fh,{className:"h-4 w-4"})}),i.jsx(de,{variant:"destructive",size:"sm",onClick:()=>O(T.id),children:i.jsx(Tt,{className:"h-4 w-4"})})]})]})},T.id))})]}),i.jsx(nr,{open:m,onOpenChange:p,children:i.jsxs(Hn,{className:"max-w-lg",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"添加镜像源"}),i.jsx(dr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ne,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:T=>w({...j,id:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ne,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ne,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"add-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(J,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(de,{onClick:N,children:"添加"})]})]})}),i.jsx(nr,{open:g,onOpenChange:x,children:i.jsxs(Hn,{className:"max-w-lg",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑镜像源"}),i.jsx(dr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"镜像源 ID"}),i.jsx(Ne,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ne,{id:"edit-name",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"edit-raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"edit-clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ne,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"edit-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(J,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(de,{onClick:E,children:"保存"})]})]})})]})})}const MCe=Yu("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),JH=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},s)=>i.jsx("kbd",{className:ce(MCe({size:t,className:e})),ref:s,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));JH.displayName="Kbd";const PCe=[{icon:Cg,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:tE,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:dF,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:oF,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:rE,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:qh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:lF,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:_ve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:cF,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:_g,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Vc,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function RCe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState(0),l=sa(),u=PCe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),s(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),s(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),s(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(nr,{open:e,onOpenChange:t,children:i.jsxs(Hn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Wn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Vn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ne,{value:n,onChange:m=>{r(m.target.value),s(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Vt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>s(p),className:ce("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Dr,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function DCe(e){const t=$Ce(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(LCe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function $Ce(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=zCe(a),u=BCe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ICe=Symbol("radix.slottable");function LCe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ICe}function BCe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function zCe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var xC=["Enter"," "],qCe=["ArrowDown","PageUp","Home"],e9=["ArrowUp","PageDown","End"],FCe=[...qCe,...e9],UCe={ltr:[...xC,"ArrowRight"],rtl:[...xC,"ArrowLeft"]},HCe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},em="Menu",[bh,WCe,VCe]=Eh(em),[Pl,t9]=hr(em,[VCe,co,Hg]),tm=co(),n9=Hg(),[r9,vo]=Pl(em),[GCe,nm]=Pl(em),a9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:s,modal:l=!0}=e,u=tm(t),[d,f]=y.useState(null),m=y.useRef(!1),p=nn(s),g=Bu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(Vh,{...u,children:i.jsx(r9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(GCe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};a9.displayName=em;var YCe="MenuAnchor",PE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=tm(n);return i.jsx(Gh,{...a,...r,ref:t})});PE.displayName=YCe;var RE="MenuPortal",[KCe,i9]=Pl(RE,{forceMount:void 0}),s9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,s=vo(RE,t);return i.jsx(KCe,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||s.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};s9.displayName=RE;var _a="MenuContent",[XCe,DE]=Pl(_a),o9=y.forwardRef((e,t)=>{const n=i9(_a,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=vo(_a,e.__scopeMenu),l=nm(_a,e.__scopeMenu);return i.jsx(bh.Provider,{scope:e.__scopeMenu,children:i.jsx(Rn,{present:r||s.open,children:i.jsx(bh.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(ZCe,{...a,ref:t}):i.jsx(QCe,{...a,ref:t})})})})}),ZCe=y.forwardRef((e,t)=>{const n=vo(_a,e.__scopeMenu),r=y.useRef(null),a=qe(t,r);return y.useEffect(()=>{const s=r.current;if(s)return Iy(s)},[]),i.jsx($E,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Se(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),QCe=y.forwardRef((e,t)=>{const n=vo(_a,e.__scopeMenu);return i.jsx($E,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),JCe=DCe("MenuContent.ScrollLock"),$E=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...w}=e,b=vo(_a,n),N=nm(_a,n),E=tm(n),O=n9(n),A=WCe(n),[C,k]=y.useState(null),T=y.useRef(null),M=qe(t,T,b.onContentChange),R=y.useRef(0),L=y.useRef(""),$=y.useRef(0),H=y.useRef(null),V=y.useRef("right"),F=y.useRef(0),G=j?Hh:y.Fragment,B=j?{as:JCe,allowPinchZoom:!0}:void 0,D=K=>{const te=L.current+K,I=A().filter(ee=>!ee.disabled),z=document.activeElement,Y=I.find(ee=>ee.ref.current===z)?.textValue,ne=I.map(ee=>ee.textValue),se=dOe(ne,te,Y),xe=I.find(ee=>ee.textValue===se)?.ref.current;(function ee(ae){L.current=ae,window.clearTimeout(R.current),ae!==""&&(R.current=window.setTimeout(()=>ee(""),1e3))})(te),xe&&setTimeout(()=>xe.focus())};y.useEffect(()=>()=>window.clearTimeout(R.current),[]),Dy();const U=y.useCallback(K=>V.current===H.current?.side&&hOe(K,H.current?.area),[]);return i.jsx(XCe,{scope:n,searchRef:L,onItemEnter:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),onItemLeave:y.useCallback(K=>{U(K)||(T.current?.focus(),k(null))},[U]),onTriggerLeave:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),pointerGraceTimerRef:$,onPointerGraceIntentChange:y.useCallback(K=>{H.current=K},[]),children:i.jsx(G,{...B,children:i.jsx(Uh,{asChild:!0,trapped:a,onMountAutoFocus:Se(s,K=>{K.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(eB,{asChild:!0,...O,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:Se(d,K=>{N.isUsingKeyboardRef.current||K.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Vy,{role:"menu","aria-orientation":"vertical","data-state":_9(b.open),"data-radix-menu-content":"",dir:N.dir,...E,...w,ref:M,style:{outline:"none",...w.style},onKeyDown:Se(w.onKeyDown,K=>{const I=K.target.closest("[data-radix-menu-content]")===K.currentTarget,z=K.ctrlKey||K.altKey||K.metaKey,Y=K.key.length===1;I&&(K.key==="Tab"&&K.preventDefault(),!z&&Y&&D(K.key));const ne=T.current;if(K.target!==ne||!FCe.includes(K.key))return;K.preventDefault();const xe=A().filter(ee=>!ee.disabled).map(ee=>ee.ref.current);e9.includes(K.key)&&xe.reverse(),cOe(xe)}),onBlur:Se(e.onBlur,K=>{K.currentTarget.contains(K.target)||(window.clearTimeout(R.current),L.current="")}),onPointerMove:Se(e.onPointerMove,wh(K=>{const te=K.target,I=F.current!==K.clientX;if(K.currentTarget.contains(te)&&I){const z=K.clientX>F.current?"right":"left";V.current=z,F.current=K.clientX}}))})})})})})})});o9.displayName=_a;var eOe="MenuGroup",IE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{role:"group",...r,ref:t})});IE.displayName=eOe;var tOe="MenuLabel",l9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});l9.displayName=tOe;var Rg="MenuItem",WL="menu.itemSelect",ax=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,s=y.useRef(null),l=nm(Rg,e.__scopeMenu),u=DE(Rg,e.__scopeMenu),d=qe(t,s),f=y.useRef(!1),m=()=>{const p=s.current;if(!n&&p){const g=new CustomEvent(WL,{bubbles:!0,cancelable:!0});p.addEventListener(WL,x=>r?.(x),{once:!0}),qC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(c9,{...a,ref:d,disabled:n,onClick:Se(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:Se(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:Se(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||xC.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});ax.displayName=Rg;var c9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...s}=e,l=DE(Rg,n),u=n9(n),d=y.useRef(null),f=qe(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[s.children]),i.jsx(bh.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(tB,{asChild:!0,...u,focusable:!r,children:i.jsx(Pe.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:f,onPointerMove:Se(e.onPointerMove,wh(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Se(e.onPointerLeave,wh(j=>l.onItemLeave(j))),onFocus:Se(e.onFocus,()=>p(!0)),onBlur:Se(e.onBlur,()=>p(!1))})})})}),nOe="MenuCheckboxItem",u9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(p9,{scope:e.__scopeMenu,checked:n,children:i.jsx(ax,{role:"menuitemcheckbox","aria-checked":Dg(n)?"mixed":n,...a,ref:t,"data-state":zE(n),onSelect:Se(a.onSelect,()=>r?.(Dg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});u9.displayName=nOe;var d9="MenuRadioGroup",[rOe,aOe]=Pl(d9,{value:void 0,onValueChange:()=>{}}),f9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,s=nn(r);return i.jsx(rOe,{scope:e.__scopeMenu,value:n,onValueChange:s,children:i.jsx(IE,{...a,ref:t})})});f9.displayName=d9;var h9="MenuRadioItem",m9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=aOe(h9,e.__scopeMenu),s=n===a.value;return i.jsx(p9,{scope:e.__scopeMenu,checked:s,children:i.jsx(ax,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":zE(s),onSelect:Se(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});m9.displayName=h9;var LE="MenuItemIndicator",[p9,iOe]=Pl(LE,{checked:!1}),v9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,s=iOe(LE,n);return i.jsx(Rn,{present:r||Dg(s.checked)||s.checked===!0,children:i.jsx(Pe.span,{...a,ref:t,"data-state":zE(s.checked)})})});v9.displayName=LE;var sOe="MenuSeparator",g9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});g9.displayName=sOe;var oOe="MenuArrow",y9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=tm(n);return i.jsx(Gy,{...a,...r,ref:t})});y9.displayName=oOe;var BE="MenuSub",[lOe,x9]=Pl(BE),b9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,s=vo(BE,t),l=tm(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=nn(a);return y.useEffect(()=>(s.open===!1&&p(!1),()=>p(!1)),[s.open,p]),i.jsx(Vh,{...l,children:i.jsx(r9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(lOe,{scope:t,contentId:Fn(),triggerId:Fn(),trigger:u,onTriggerChange:d,children:n})})})};b9.displayName=BE;var gf="MenuSubTrigger",w9=y.forwardRef((e,t)=>{const n=vo(gf,e.__scopeMenu),r=nm(gf,e.__scopeMenu),a=x9(gf,e.__scopeMenu),s=DE(gf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=s,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(PE,{asChild:!0,...f,children:i.jsx(c9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":_9(n.open),...e,ref:Rr(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Se(e.onPointerMove,wh(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(s.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:Se(e.onPointerLeave,wh(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",w=j?-5:5,b=g[j?"left":"right"],N=g[j?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:b,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:b,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:Se(e.onKeyDown,p=>{const g=s.searchRef.current!=="";e.disabled||g&&p.key===" "||UCe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});w9.displayName=gf;var j9="MenuSubContent",S9=y.forwardRef((e,t)=>{const n=i9(_a,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=vo(_a,e.__scopeMenu),l=nm(_a,e.__scopeMenu),u=x9(j9,e.__scopeMenu),d=y.useRef(null),f=qe(t,d);return i.jsx(bh.Provider,{scope:e.__scopeMenu,children:i.jsx(Rn,{present:r||s.open,children:i.jsx(bh.Slot,{scope:e.__scopeMenu,children:i.jsx($E,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:Se(e.onFocusOutside,m=>{m.target!==u.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:Se(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:Se(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=HCe[l.dir].includes(m.key);p&&g&&(s.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});S9.displayName=j9;function _9(e){return e?"open":"closed"}function Dg(e){return e==="indeterminate"}function zE(e){return Dg(e)?"indeterminate":e?"checked":"unchecked"}function cOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function uOe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function dOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=uOe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function fOe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function hOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return fOe(n,t)}function wh(e){return t=>t.pointerType==="mouse"?e(t):void 0}var mOe=a9,pOe=PE,vOe=s9,gOe=o9,yOe=IE,xOe=l9,bOe=ax,wOe=u9,jOe=f9,SOe=m9,_Oe=v9,NOe=g9,COe=y9,OOe=b9,EOe=w9,AOe=S9,qE="ContextMenu",[TOe]=hr(qE,[t9]),pr=t9(),[kOe,N9]=TOe(qE),C9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:s=!0}=e,[l,u]=y.useState(!1),d=pr(t),f=nn(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(kOe,{scope:t,open:l,onOpenChange:m,modal:s,children:i.jsx(mOe,{...d,dir:a,open:l,onOpenChange:m,modal:s,children:n})})};C9.displayName=qE;var O9="ContextMenuTrigger",E9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,s=N9(O9,n),l=pr(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},s.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(pOe,{...l,virtualRef:d}),i.jsx(Pe.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:Se(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:Se(e.onPointerDown,Zp(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:Se(e.onPointerMove,Zp(m)),onPointerCancel:r?e.onPointerCancel:Se(e.onPointerCancel,Zp(m)),onPointerUp:r?e.onPointerUp:Se(e.onPointerUp,Zp(m))})]})});E9.displayName=O9;var MOe="ContextMenuPortal",A9=e=>{const{__scopeContextMenu:t,...n}=e,r=pr(t);return i.jsx(vOe,{...r,...n})};A9.displayName=MOe;var T9="ContextMenuContent",k9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=N9(T9,n),s=pr(n),l=y.useRef(!1);return i.jsx(gOe,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});k9.displayName=T9;var POe="ContextMenuGroup",ROe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(yOe,{...a,...r,ref:t})});ROe.displayName=POe;var DOe="ContextMenuLabel",M9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(xOe,{...a,...r,ref:t})});M9.displayName=DOe;var $Oe="ContextMenuItem",P9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(bOe,{...a,...r,ref:t})});P9.displayName=$Oe;var IOe="ContextMenuCheckboxItem",R9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(wOe,{...a,...r,ref:t})});R9.displayName=IOe;var LOe="ContextMenuRadioGroup",BOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(jOe,{...a,...r,ref:t})});BOe.displayName=LOe;var zOe="ContextMenuRadioItem",D9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(SOe,{...a,...r,ref:t})});D9.displayName=zOe;var qOe="ContextMenuItemIndicator",$9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(_Oe,{...a,...r,ref:t})});$9.displayName=qOe;var FOe="ContextMenuSeparator",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(NOe,{...a,...r,ref:t})});I9.displayName=FOe;var UOe="ContextMenuArrow",HOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(COe,{...a,...r,ref:t})});HOe.displayName=UOe;var L9="ContextMenuSub",B9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:s}=e,l=pr(t),[u,d]=Na({prop:a,defaultProp:s??!1,onChange:r,caller:L9});return i.jsx(OOe,{...l,open:u,onOpenChange:d,children:n})};B9.displayName=L9;var WOe="ContextMenuSubTrigger",z9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(EOe,{...a,...r,ref:t})});z9.displayName=WOe;var VOe="ContextMenuSubContent",q9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(AOe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});q9.displayName=VOe;function Zp(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var GOe=C9,YOe=E9,KOe=A9,F9=k9,U9=M9,H9=P9,W9=R9,V9=D9,G9=$9,Y9=I9,XOe=B9,K9=z9,X9=q9;const ZOe=GOe,QOe=YOe,JOe=XOe,Z9=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(K9,{ref:a,className:ce("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(eE,{className:"ml-auto h-4 w-4"})]}));Z9.displayName=K9.displayName;const Q9=y.forwardRef(({className:e,...t},n)=>i.jsx(X9,{ref:n,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));Q9.displayName=X9.displayName;const J9=y.forwardRef(({className:e,...t},n)=>i.jsx(KOe,{children:i.jsx(F9,{ref:n,className:ce("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));J9.displayName=F9.displayName;const Da=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(H9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));Da.displayName=H9.displayName;const eEe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(W9,{ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(G9,{children:i.jsx(il,{className:"h-4 w-4"})})}),t]}));eEe.displayName=W9.displayName;const tEe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(V9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(G9,{children:i.jsx(Bve,{className:"h-2 w-2 fill-current"})})}),t]}));tEe.displayName=V9.displayName;const nEe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(U9,{ref:r,className:ce("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));nEe.displayName=U9.displayName;const yf=y.forwardRef(({className:e,...t},n)=>i.jsx(Y9,{ref:n,className:ce("-mx-1 my-1 h-px bg-border",e),...t}));yf.displayName=Y9.displayName;const Ic=({className:e,...t})=>i.jsx("span",{className:ce("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});Ic.displayName="ContextMenuShortcut";var rEe=Symbol("radix.slottable");function aEe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=rEe,t}var[ix]=hr("Tooltip",[co]),sx=co(),eW="TooltipProvider",iEe=700,bC="tooltip.open",[sEe,FE]=ix(eW),tW=e=>{const{__scopeTooltip:t,delayDuration:n=iEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(sEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:s})};tW.displayName=eW;var jh="Tooltip",[oEe,rm]=ix(jh),nW=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:s,disableHoverableContent:l,delayDuration:u}=e,d=FE(jh,e.__scopeTooltip),f=sx(t),[m,p]=y.useState(null),g=Fn(),x=y.useRef(0),j=l??d.disableHoverableContent,w=u??d.delayDuration,b=y.useRef(!1),[N,E]=Na({prop:r,defaultProp:a??!1,onChange:T=>{T?(d.onOpen(),document.dispatchEvent(new CustomEvent(bC))):d.onClose(),s?.(T)},caller:jh}),O=y.useMemo(()=>N?b.current?"delayed-open":"instant-open":"closed",[N]),A=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,b.current=!1,E(!0)},[E]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,E(!1)},[E]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{b.current=!0,E(!0),x.current=0},w)},[w,E]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(Vh,{...f,children:i.jsx(oEe,{scope:t,contentId:g,open:N,stateAttribute:O,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():A()},[d.isOpenDelayedRef,k,A]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:A,onClose:C,disableHoverableContent:j,children:n})})};nW.displayName=jh;var wC="TooltipTrigger",rW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=rm(wC,n),s=FE(wC,n),l=sx(n),u=y.useRef(null),d=qe(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(Gh,{asChild:!0,...l,children:i.jsx(Pe.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:Se(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:Se(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:Se(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:Se(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:Se(e.onBlur,a.onClose),onClick:Se(e.onClick,a.onClose)})})});rW.displayName=wC;var UE="TooltipPortal",[lEe,cEe]=ix(UE,{forceMount:void 0}),aW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,s=rm(UE,t);return i.jsx(lEe,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||s.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};aW.displayName=UE;var Ru="TooltipContent",iW=y.forwardRef((e,t)=>{const n=cEe(Ru,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,l=rm(Ru,e.__scopeTooltip);return i.jsx(Rn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(sW,{side:a,...s,ref:t}):i.jsx(uEe,{side:a,...s,ref:t})})}),uEe=y.forwardRef((e,t)=>{const n=rm(Ru,e.__scopeTooltip),r=FE(Ru,e.__scopeTooltip),a=y.useRef(null),s=qe(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,w)=>{const b=j.currentTarget,N={x:j.clientX,y:j.clientY},E=pEe(N,b.getBoundingClientRect()),O=vEe(N,E),A=gEe(w.getBoundingClientRect()),C=xEe([...O,...A]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=b=>x(b,m),w=b=>x(b,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",w)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=w=>{const b=w.target,N={x:w.clientX,y:w.clientY},E=d?.contains(b)||m?.contains(b),O=!yEe(N,l);E?g():O&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(sW,{...e,ref:s})}),[dEe,fEe]=ix(jh,{isInside:!1}),hEe=aEe("TooltipContent"),sW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:l,...u}=e,d=rm(Ru,n),f=sx(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(bC,m),()=>document.removeEventListener(bC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Vy,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(hEe,{children:r}),i.jsx(dEe,{scope:n,isInside:!0,children:i.jsx(pwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});iW.displayName=Ru;var oW="TooltipArrow",mEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=sx(n);return fEe(oW,n).isInside?null:i.jsx(Gy,{...a,...r,ref:t})});mEe.displayName=oW;function pEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function vEe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function gEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function yEe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function xEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),bEe(t)}function bEe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const s=t[t.length-1],l=t[t.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],l=n[n.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var wEe=tW,jEe=nW,SEe=rW,_Ee=aW,lW=iW;const NEe=wEe,CEe=jEe,OEe=SEe,cW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(_Ee,{children:i.jsx(lW,{ref:r,sideOffset:t,className:ce("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));cW.displayName=lW.displayName;function EEe({children:e}){ibe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[s,l]=y.useState(!1),{theme:u,setTheme:d}=aE(),f=FY(),m=sa();y.useEffect(()=>{const w=b=>{(b.metaKey||b.ctrlKey)&&b.key==="k"&&(b.preventDefault(),l(!0))};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);const p=[{title:"概览",items:[{icon:Cg,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:tE,label:"麦麦主程序配置",path:"/config/bot"},{icon:dF,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:oF,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:rE,label:"表情包管理",path:"/resource/emoji"},{icon:qh,label:"表达方式管理",path:"/resource/expression"},{icon:lF,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:cF,label:"插件市场",path:"/plugins"},{icon:_g,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Vc,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(NEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:ce("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:ce("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:ce("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:gye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:ce("space-y-6",!t&&"lg:space-y-3"),children:p.map((w,b)=>i.jsxs("li",{children:[i.jsx("div",{className:ce("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:w.title})}),!t&&b>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:w.items.map(N=>{const E=f({to:N.path}),O=N.icon,A=i.jsxs(i.Fragment,{children:[E&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:ce("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(O,{className:ce("h-5 w-5 flex-shrink-0",E&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:ce("text-sm font-medium whitespace-nowrap transition-all duration-300",E&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(CEe,{children:[i.jsx(OEe,{asChild:!0,children:i.jsx(RC,{to:N.path,className:ce("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",E?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:A})}),!t&&i.jsx(cW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},w.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(lge,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(JO,{className:ce("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(JH,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(RCe,{open:s,onOpenChange:l}),i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(yve,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:w=>{Jge(x==="dark"?"light":"dark",d,w)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(eC,{className:"h-5 w-5"}):i.jsx(JN,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(de,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(KI,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(ZOe,{children:[i.jsx(QOe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(J9,{className:"w-64",children:[i.jsxs(Da,{onClick:()=>m({to:"/"}),children:[i.jsx(Cg,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(Da,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Vc,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(Da,{onClick:()=>m({to:"/logs"}),children:[i.jsx(_g,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(yf,{}),i.jsxs(JOe,{children:[i.jsxs(Z9,{children:[i.jsx(uF,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(Q9,{className:"w-48",children:[i.jsxs(Da,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(eC,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(Ic,{children:"✓"})]}),i.jsxs(Da,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(JN,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(Ic,{children:"✓"})]}),i.jsxs(Da,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Vc,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(Ic,{children:"✓"})]})]})]}),i.jsx(yf,{}),i.jsxs(Da,{onClick:()=>window.location.reload(),children:[i.jsx(Sge,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(Ic,{children:"⌘R"})]}),i.jsxs(Da,{onClick:()=>l(!0),children:[i.jsx(Dr,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(Ic,{children:"⌘K"})]}),i.jsx(yf,{}),i.jsxs(Da,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(iv,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(yf,{}),i.jsxs(Da,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(KI,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const am=PY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(DC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!j8())throw ZL({to:"/auth"})}}),AEe=fr({getParentRoute:()=>am,path:"/auth",component:sbe}),TEe=fr({getParentRoute:()=>am,path:"/setup",component:Nbe}),Aa=fr({getParentRoute:()=>am,id:"protected",component:()=>i.jsx(EEe,{children:i.jsx(DC,{})})}),kEe=fr({getParentRoute:()=>Aa,path:"/",component:Zge}),MEe=fr({getParentRoute:()=>Aa,path:"/config/bot",component:vje}),PEe=fr({getParentRoute:()=>Aa,path:"/config/modelProvider",component:$je}),REe=fr({getParentRoute:()=>Aa,path:"/config/model",component:u1e}),DEe=fr({getParentRoute:()=>Aa,path:"/resource/emoji",component:y1e}),$Ee=fr({getParentRoute:()=>Aa,path:"/resource/expression",component:O1e}),IEe=fr({getParentRoute:()=>Aa,path:"/resource/person",component:$1e}),LEe=fr({getParentRoute:()=>Aa,path:"/logs",component:gCe}),BEe=fr({getParentRoute:()=>Aa,path:"/plugins",component:TCe}),zEe=fr({getParentRoute:()=>Aa,path:"/plugin-mirrors",component:kCe}),qEe=fr({getParentRoute:()=>Aa,path:"/settings",component:Qxe}),FEe=fr({getParentRoute:()=>am,path:"*",component:N8}),UEe=am.addChildren([AEe,TEe,Aa.addChildren([kEe,MEe,PEe,REe,DEe,$Ee,IEe,BEe,zEe,LEe,qEe]),FEe]),HEe=UY({routeTree:UEe,defaultNotFoundComponent:N8});function WEe({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,s]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%"},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%"},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%"},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%"},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%"}}[u];m&&d.style.setProperty("--primary",m.hsl)}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),s(u)}};return i.jsx(hF.Provider,{...r,value:l,children:e})}function VEe({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[s,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;s?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(s))},[s,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:s,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(mF.Provider,{value:f,children:e})}var HE="ToastProvider",[WE,GEe,YEe]=Eh("Toast"),[uW]=hr("Toast",[YEe]),[KEe,ox]=uW(HE),dW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${HE}\`. Expected non-empty \`string\`.`),i.jsx(WE.Provider,{scope:t,children:i.jsx(KEe,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};dW.displayName=HE;var fW="ToastViewport",XEe=["F8"],jC="toast.viewportPause",SC="toast.viewportResume",hW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=XEe,label:a="Notifications ({hotkey})",...s}=e,l=ox(fW,n),u=GEe(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=qe(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const b=N=>{r.length!==0&&r.every(O=>N[O]||N.code===O)&&p.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),y.useEffect(()=>{const b=d.current,N=p.current;if(j&&b&&N){const E=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(jC);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},O=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(SC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},A=k=>{!b.contains(k.relatedTarget)&&O()},C=()=>{b.contains(document.activeElement)||O()};return b.addEventListener("focusin",E),b.addEventListener("focusout",A),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",C),window.addEventListener("blur",E),window.addEventListener("focus",O),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",A),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",C),window.removeEventListener("blur",E),window.removeEventListener("focus",O)}}},[j,l.isClosePausedRef]);const w=y.useCallback(({tabbingDirection:b})=>{const E=u().map(O=>{const A=O.ref.current,C=[A,...cAe(A)];return b==="forwards"?C:C.reverse()});return(b==="forwards"?E.reverse():E).flat()},[u]);return y.useEffect(()=>{const b=p.current;if(b){const N=E=>{const O=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!O){const C=document.activeElement,k=E.shiftKey;if(E.target===b&&k){f.current?.focus();return}const R=w({tabbingDirection:k?"backwards":"forwards"}),L=R.findIndex($=>$===C);f_(R.slice(L+1))?E.preventDefault():k?f.current?.focus():m.current?.focus()}};return b.addEventListener("keydown",N),()=>b.removeEventListener("keydown",N)}},[u,w]),i.jsxs(Cye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(_C,{ref:f,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"forwards"});f_(b)}}),i.jsx(WE.Slot,{scope:n,children:i.jsx(Pe.ol,{tabIndex:-1,...s,ref:g})}),j&&i.jsx(_C,{ref:m,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"backwards"});f_(b)}})]})});hW.displayName=fW;var mW="ToastFocusProxy",_C=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=ox(mW,n);return i.jsx(Yy,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!s.viewport?.contains(u)&&r()}})});_C.displayName=mW;var im="Toast",ZEe="toast.swipeStart",QEe="toast.swipeMove",JEe="toast.swipeCancel",eAe="toast.swipeEnd",pW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...l}=e,[u,d]=Na({prop:r,defaultProp:a??!0,onChange:s,caller:im});return i.jsx(Rn,{present:n||u,children:i.jsx(rAe,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:nn(e.onPause),onResume:nn(e.onResume),onSwipeStart:Se(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Se(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:Se(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Se(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});pW.displayName=im;var[tAe,nAe]=uW(im,{onClose(){}}),rAe=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,w=ox(im,n),[b,N]=y.useState(null),E=qe(t,F=>N(F)),O=y.useRef(null),A=y.useRef(null),C=a||w.duration,k=y.useRef(0),T=y.useRef(C),M=y.useRef(0),{onToastAdd:R,onToastRemove:L}=w,$=nn(()=>{b?.contains(document.activeElement)&&w.viewport?.focus(),l()}),H=y.useCallback(F=>{!F||F===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout($,F))},[$]);y.useEffect(()=>{const F=w.viewport;if(F){const G=()=>{H(T.current),f?.()},B=()=>{const D=new Date().getTime()-k.current;T.current=T.current-D,window.clearTimeout(M.current),d?.()};return F.addEventListener(jC,B),F.addEventListener(SC,G),()=>{F.removeEventListener(jC,B),F.removeEventListener(SC,G)}}},[w.viewport,C,d,f,H]),y.useEffect(()=>{s&&!w.isClosePausedRef.current&&H(C)},[s,C,w.isClosePausedRef,H]),y.useEffect(()=>(R(),()=>L()),[R,L]);const V=y.useMemo(()=>b?jW(b):null,[b]);return w.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(aAe,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(tAe,{scope:n,onClose:$,children:wl.createPortal(i.jsx(WE.ItemSlot,{scope:n,children:i.jsx(Nye,{asChild:!0,onEscapeKeyDown:Se(u,()=>{w.isFocusedToastEscapeKeyDownRef.current||$(),w.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx(Pe.li,{tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":w.swipeDirection,...j,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Se(e.onKeyDown,F=>{F.key==="Escape"&&(u?.(F.nativeEvent),F.nativeEvent.defaultPrevented||(w.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:Se(e.onPointerDown,F=>{F.button===0&&(O.current={x:F.clientX,y:F.clientY})}),onPointerMove:Se(e.onPointerMove,F=>{if(!O.current)return;const G=F.clientX-O.current.x,B=F.clientY-O.current.y,D=!!A.current,U=["left","right"].includes(w.swipeDirection),K=["left","up"].includes(w.swipeDirection)?Math.min:Math.max,te=U?K(0,G):0,I=U?0:K(0,B),z=F.pointerType==="touch"?10:2,Y={x:te,y:I},ne={originalEvent:F,delta:Y};D?(A.current=Y,Qp(QEe,p,ne,{discrete:!1})):VL(Y,w.swipeDirection,z)?(A.current=Y,Qp(ZEe,m,ne,{discrete:!1}),F.target.setPointerCapture(F.pointerId)):(Math.abs(G)>z||Math.abs(B)>z)&&(O.current=null)}),onPointerUp:Se(e.onPointerUp,F=>{const G=A.current,B=F.target;if(B.hasPointerCapture(F.pointerId)&&B.releasePointerCapture(F.pointerId),A.current=null,O.current=null,G){const D=F.currentTarget,U={originalEvent:F,delta:G};VL(G,w.swipeDirection,w.swipeThreshold)?Qp(eAe,x,U,{discrete:!0}):Qp(JEe,g,U,{discrete:!0}),D.addEventListener("click",K=>K.preventDefault(),{once:!0})}})})})}),w.viewport)})]}):null}),aAe=e=>{const{__scopeToast:t,children:n,...r}=e,a=ox(im,t),[s,l]=y.useState(!1),[u,d]=y.useState(!1);return oAe(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(El,{asChild:!0,children:i.jsx(Yy,{...r,children:s&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},iAe="ToastTitle",vW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});vW.displayName=iAe;var sAe="ToastDescription",gW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});gW.displayName=sAe;var yW="ToastAction",xW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(wW,{altText:n,asChild:!0,children:i.jsx(VE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${yW}\`. Expected non-empty \`string\`.`),null)});xW.displayName=yW;var bW="ToastClose",VE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=nAe(bW,n);return i.jsx(wW,{asChild:!0,children:i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,a.onClose)})})});VE.displayName=bW;var wW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx(Pe.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function jW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),lAe(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...jW(r))}}),t}function Qp(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?qC(a,s):a.dispatchEvent(s)}var VL=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function oAe(e=()=>{}){const t=nn(e);Un(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function lAe(e){return e.nodeType===e.ELEMENT_NODE}function cAe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function f_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var uAe=dW,SW=hW,_W=pW,NW=vW,CW=gW,OW=xW,EW=VE;const dAe=uAe,AW=y.forwardRef(({className:e,...t},n)=>i.jsx(SW,{ref:n,className:ce("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));AW.displayName=SW.displayName;const fAe=Yu("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),TW=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(_W,{ref:r,className:ce(fAe({variant:t}),e),...n}));TW.displayName=_W.displayName;const hAe=y.forwardRef(({className:e,...t},n)=>i.jsx(OW,{ref:n,className:ce("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));hAe.displayName=OW.displayName;const kW=y.forwardRef(({className:e,...t},n)=>i.jsx(EW,{ref:n,className:ce("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Fh,{className:"h-4 w-4"})}));kW.displayName=EW.displayName;const MW=y.forwardRef(({className:e,...t},n)=>i.jsx(NW,{ref:n,className:ce("text-sm font-semibold [&+div]:text-xs",e),...t}));MW.displayName=NW.displayName;const PW=y.forwardRef(({className:e,...t},n)=>i.jsx(CW,{ref:n,className:ce("text-sm opacity-90",e),...t}));PW.displayName=CW.displayName;function mAe(){const{toasts:e}=mr();return i.jsxs(dAe,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return i.jsxs(TW,{...s,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx(MW,{children:n}),r&&i.jsx(PW,{children:r})]}),a,i.jsx(kW,{})]},t)}),i.jsx(AW,{})]})}tG.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(WEe,{defaultTheme:"system",children:i.jsxs(VEe,{children:[i.jsx(VY,{router:HEe}),i.jsx(mAe,{})]})})})); diff --git a/webui/dist/assets/index-Cp6kNbgY.css b/webui/dist/assets/index-Cp6kNbgY.css new file mode 100644 index 00000000..fcd6b8be --- /dev/null +++ b/webui/dist/assets/index-Cp6kNbgY.css @@ -0,0 +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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-orange-700:hover{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} diff --git a/webui/dist/assets/index-_H5_gB__.js b/webui/dist/assets/index-_H5_gB__.js deleted file mode 100644 index 33578d16..00000000 --- a/webui/dist/assets/index-_H5_gB__.js +++ /dev/null @@ -1,157 +0,0 @@ -function UV(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(a){if(a.ep)return;a.ep=!0;const o=n(a);fetch(a.href,o)}})();var xp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function St(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var b0={exports:{}},Ud={};var zk;function HV(){if(zk)return Ud;zk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,o){var l=null;if(o!==void 0&&(l=""+o),a.key!==void 0&&(l=""+a.key),"key"in a){o={};for(var u in a)u!=="key"&&(o[u]=a[u])}else o=a;return a=o.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:o}}return Ud.Fragment=t,Ud.jsx=n,Ud.jsxs=n,Ud}var qk;function WV(){return qk||(qk=1,b0.exports=HV()),b0.exports}var i=WV(),w0={exports:{}},Ve={};var Fk;function VV(){if(Fk)return Ve;Fk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x($){return $===null||typeof $!="object"?null:($=g&&$[g]||$["@@iterator"],typeof $=="function"?$:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,w={};function N($,B,Y){this.props=$,this.context=B,this.refs=w,this.updater=Y||j}N.prototype.isReactComponent={},N.prototype.setState=function($,B){if(typeof $!="object"&&typeof $!="function"&&$!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,$,B,"setState")},N.prototype.forceUpdate=function($){this.updater.enqueueForceUpdate(this,$,"forceUpdate")};function A(){}A.prototype=N.prototype;function E($,B,Y){this.props=$,this.context=B,this.refs=w,this.updater=Y||j}var T=E.prototype=new A;T.constructor=E,b(T,N.prototype),T.isPureReactComponent=!0;var C=Array.isArray;function k(){}var O={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function I($,B,Y){var ne=Y.ref;return{$$typeof:e,type:$,key:B,ref:ne!==void 0?ne:null,props:Y}}function z($,B){return I($.type,B,$.props)}function D($){return typeof $=="object"&&$!==null&&$.$$typeof===e}function H($){var B={"=":"=0",":":"=2"};return"$"+$.replace(/[=:]/g,function(Y){return B[Y]})}var V=/\/+/g;function F($,B){return typeof $=="object"&&$!==null&&$.key!=null?H(""+$.key):B.toString(36)}function G($){switch($.status){case"fulfilled":return $.value;case"rejected":throw $.reason;default:switch(typeof $.status=="string"?$.then(k,k):($.status="pending",$.then(function(B){$.status==="pending"&&($.status="fulfilled",$.value=B)},function(B){$.status==="pending"&&($.status="rejected",$.reason=B)})),$.status){case"fulfilled":return $.value;case"rejected":throw $.reason}}throw $}function L($,B,Y,ne,oe){var xe=typeof $;(xe==="undefined"||xe==="boolean")&&($=null);var ee=!1;if($===null)ee=!0;else switch(xe){case"bigint":case"string":case"number":ee=!0;break;case"object":switch($.$$typeof){case e:case t:ee=!0;break;case m:return ee=$._init,L(ee($._payload),B,Y,ne,oe)}}if(ee)return oe=oe($),ee=ne===""?"."+F($,0):ne,C(oe)?(Y="",ee!=null&&(Y=ee.replace(V,"$&/")+"/"),L(oe,B,Y,"",function(pe){return pe})):oe!=null&&(D(oe)&&(oe=z(oe,Y+(oe.key==null||$&&$.key===oe.key?"":(""+oe.key).replace(V,"$&/")+"/")+ee)),B.push(oe)),1;ee=0;var ae=ne===""?".":ne+":";if(C($))for(var Z=0;Z<$.length;Z++)ne=$[Z],xe=ae+F(ne,Z),ee+=L(ne,B,Y,xe,oe);else if(Z=x($),typeof Z=="function")for($=Z.call($),Z=0;!(ne=$.next()).done;)ne=ne.value,xe=ae+F(ne,Z++),ee+=L(ne,B,Y,xe,oe);else if(xe==="object"){if(typeof $.then=="function")return L(G($),B,Y,ne,oe);throw B=String($),Error("Objects are not valid as a React child (found: "+(B==="[object Object]"?"object with keys {"+Object.keys($).join(", ")+"}":B)+"). If you meant to render a collection of children, use an array instead.")}return ee}function R($,B,Y){if($==null)return $;var ne=[],oe=0;return L($,ne,"","",function(xe){return B.call(Y,xe,oe++)}),ne}function U($){if($._status===-1){var B=$._result;B=B(),B.then(function(Y){($._status===0||$._status===-1)&&($._status=1,$._result=Y)},function(Y){($._status===0||$._status===-1)&&($._status=2,$._result=Y)}),$._status===-1&&($._status=0,$._result=B)}if($._status===1)return $._result.default;throw $._result}var K=typeof reportError=="function"?reportError:function($){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var B=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof $=="object"&&$!==null&&typeof $.message=="string"?String($.message):String($),error:$});if(!window.dispatchEvent(B))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",$);return}console.error($)},te={map:R,forEach:function($,B,Y){R($,function(){B.apply(this,arguments)},Y)},count:function($){var B=0;return R($,function(){B++}),B},toArray:function($){return R($,function(B){return B})||[]},only:function($){if(!D($))throw Error("React.Children.only expected to receive a single React element child.");return $}};return Ve.Activity=p,Ve.Children=te,Ve.Component=N,Ve.Fragment=n,Ve.Profiler=a,Ve.PureComponent=E,Ve.StrictMode=r,Ve.Suspense=d,Ve.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=O,Ve.__COMPILER_RUNTIME={__proto__:null,c:function($){return O.H.useMemoCache($)}},Ve.cache=function($){return function(){return $.apply(null,arguments)}},Ve.cacheSignal=function(){return null},Ve.cloneElement=function($,B,Y){if($==null)throw Error("The argument must be a React element, but you passed "+$+".");var ne=b({},$.props),oe=$.key;if(B!=null)for(xe in B.key!==void 0&&(oe=""+B.key),B)!M.call(B,xe)||xe==="key"||xe==="__self"||xe==="__source"||xe==="ref"&&B.ref===void 0||(ne[xe]=B[xe]);var xe=arguments.length-2;if(xe===1)ne.children=Y;else if(1>>1,te=L[K];if(0>>1;K<$;){var B=2*(K+1)-1,Y=L[B],ne=B+1,oe=L[ne];if(0>a(Y,U))nea(oe,Y)?(L[K]=oe,L[ne]=U,K=ne):(L[K]=Y,L[B]=U,K=B);else if(nea(oe,U))L[K]=oe,L[ne]=U,K=ne;else break e}}return R}function a(L,R){var U=L.sortIndex-R.sortIndex;return U!==0?U:L.id-R.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,b=!1,w=!1,N=typeof setTimeout=="function"?setTimeout:null,A=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;function T(L){for(var R=n(f);R!==null;){if(R.callback===null)r(f);else if(R.startTime<=L)r(f),R.sortIndex=R.expirationTime,t(d,R);else break;R=n(f)}}function C(L){if(b=!1,T(L),!j)if(n(d)!==null)j=!0,k||(k=!0,H());else{var R=n(f);R!==null&&G(C,R.startTime-L)}}var k=!1,O=-1,M=5,I=-1;function z(){return w?!0:!(e.unstable_now()-IL&&z());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var te=K(p.expirationTime<=L);if(L=e.unstable_now(),typeof te=="function"){p.callback=te,T(L),R=!0;break t}p===n(d)&&r(d),T(L)}else r(d);p=n(d)}if(p!==null)R=!0;else{var $=n(f);$!==null&&G(C,$.startTime-L),R=!1}}break e}finally{p=null,g=U,x=!1}R=void 0}}finally{R?H():k=!1}}}var H;if(typeof E=="function")H=function(){E(D)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,F=V.port2;V.port1.onmessage=D,H=function(){F.postMessage(null)}}else H=function(){N(D,0)};function G(L,R){O=N(function(){L(e.unstable_now())},R)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(L){L.callback=null},e.unstable_forceFrameRate=function(L){0>L||125K?(L.sortIndex=U,t(f,L),n(d)===null&&L===n(f)&&(b?(A(O),O=-1):b=!0,G(C,U-K))):(L.sortIndex=te,t(d,L),j||x||(j=!0,k||(k=!0,H()))),L},e.unstable_shouldYield=z,e.unstable_wrapCallback=function(L){var R=g;return function(){var U=g;g=R;try{return L.apply(this,arguments)}finally{g=U}}}})(_0)),_0}var Wk;function YV(){return Wk||(Wk=1,S0.exports=GV()),S0.exports}var N0={exports:{}},ir={};var Vk;function KV(){if(Vk)return ir;Vk=1;var e=wh();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),N0.exports=KV(),N0.exports}var Yk;function XV(){if(Yk)return Hd;Yk=1;var e=YV(),t=wh(),n=HL();function r(s){var c="https://react.dev/errors/"+s;if(1te||(s.current=K[te],K[te]=null,te--)}function Y(s,c){te++,K[te]=s.current,s.current=c}var ne=$(null),oe=$(null),xe=$(null),ee=$(null);function ae(s,c){switch(Y(xe,c),Y(oe,s),Y(ne,null),c.nodeType){case 9:case 11:s=(s=c.documentElement)&&(s=s.namespaceURI)?ck(s):0;break;default:if(s=c.tagName,c=c.namespaceURI)c=ck(c),s=uk(c,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}B(ne),Y(ne,s)}function Z(){B(ne),B(oe),B(xe)}function pe(s){s.memoizedState!==null&&Y(ee,s);var c=ne.current,h=uk(c,s.type);c!==h&&(Y(oe,s),Y(ne,h))}function je(s){oe.current===s&&(B(ne),B(oe)),ee.current===s&&(B(ee),Bd._currentValue=U)}var le,Re;function _e(s){if(le===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);le=c&&c[1]||"",Re=-1)":-1S||X[v]!==se[S]){var ge=` -`+X[v].replace(" at new "," at ");return s.displayName&&ge.includes("")&&(ge=ge.replace("",s.displayName)),ge}while(1<=v&&0<=S);break}}}finally{me=!1,Error.prepareStackTrace=h}return(h=s?s.displayName||s.name:"")?_e(h):""}function Le(s,c){switch(s.tag){case 26:case 27:case 5:return _e(s.type);case 16:return _e("Lazy");case 13:return s.child!==c&&c!==null?_e("Suspense Fallback"):_e("Suspense");case 19:return _e("SuspenseList");case 0:case 15:return ve(s.type,!1);case 11:return ve(s.type.render,!1);case 1:return ve(s.type,!0);case 31:return _e("Activity");default:return""}}function It(s){try{var c="",h=null;do c+=Le(s,h),h=s,s=s.return;while(s);return c}catch(v){return` -Error generating stack: `+v.message+` -`+v.stack}}var Cn=Object.prototype.hasOwnProperty,vr=e.unstable_scheduleCallback,rr=e.unstable_cancelCallback,gr=e.unstable_shouldYield,ct=e.unstable_requestPaint,rt=e.unstable_now,$n=e.unstable_getCurrentPriorityLevel,gs=e.unstable_ImmediatePriority,im=e.unstable_UserBlockingPriority,Rl=e.unstable_NormalPriority,ax=e.unstable_LowPriority,om=e.unstable_IdlePriority,ix=e.log,ox=e.unstable_setDisableYieldValue,ys=null,yr=null;function Ka(s){if(typeof ix=="function"&&ox(s),yr&&typeof yr.setStrictMode=="function")try{yr.setStrictMode(ys,s)}catch{}}var ar=Math.clz32?Math.clz32:zt,sx=Math.log,et=Math.LN2;function zt(s){return s>>>=0,s===0?32:31-(sx(s)/et|0)|0}var He=256,gt=262144,In=4194304;function tt(s){var c=s&42;if(c!==0)return c;switch(s&-s){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return s&261888;case 262144:case 524288:case 1048576:case 2097152:return s&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return s&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return s}}function Dl(s,c,h){var v=s.pendingLanes;if(v===0)return 0;var S=0,_=s.suspendedLanes,P=s.pingedLanes;s=s.warmLanes;var q=v&134217727;return q!==0?(v=q&~_,v!==0?S=tt(v):(P&=q,P!==0?S=tt(P):h||(h=q&~s,h!==0&&(S=tt(h))))):(q=v&~_,q!==0?S=tt(q):P!==0?S=tt(P):h||(h=v&~s,h!==0&&(S=tt(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function xs(s,c){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&c)===0}function lx(s,c){switch(s){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function $l(){var s=In;return In<<=1,(In&62914560)===0&&(In=4194304),s}function bs(s){for(var c=[],h=0;31>h;h++)c.push(s);return c}function Ju(s,c){s.pendingLanes|=c,c!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function kW(s,c,h,v,S,_){var P=s.pendingLanes;s.pendingLanes=h,s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0,s.expiredLanes&=h,s.entangledLanes&=h,s.errorRecoveryDisabledLanes&=h,s.shellSuspendCounter=0;var q=s.entanglements,X=s.expirationTimes,se=s.hiddenUpdates;for(h=P&~h;0"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var IW=/[\n"\\]/g;function la(s){return s.replace(IW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function mx(s,c,h,v,S,_,P,q){s.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?s.type=P:s.removeAttribute("type"),c!=null?P==="number"?(c===0&&s.value===""||s.value!=c)&&(s.value=""+sa(c)):s.value!==""+sa(c)&&(s.value=""+sa(c)):P!=="submit"&&P!=="reset"||s.removeAttribute("value"),c!=null?px(s,P,sa(c)):h!=null?px(s,P,sa(h)):v!=null&&s.removeAttribute("value"),S==null&&_!=null&&(s.defaultChecked=!!_),S!=null&&(s.checked=S&&typeof S!="function"&&typeof S!="symbol"),q!=null&&typeof q!="function"&&typeof q!="symbol"&&typeof q!="boolean"?s.name=""+sa(q):s.removeAttribute("name")}function rA(s,c,h,v,S,_,P,q){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(s.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){hx(s);return}h=h!=null?""+sa(h):"",c=c!=null?""+sa(c):h,q||c===s.value||(s.value=c),s.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,s.checked=q?s.checked:!!v,s.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(s.name=P),hx(s)}function px(s,c,h){c==="number"&&cm(s.ownerDocument)===s||s.defaultValue===""+h||(s.defaultValue=""+h)}function Fl(s,c,h,v){if(s=s.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),bx=!1;if(Ci)try{var rd={};Object.defineProperty(rd,"passive",{get:function(){bx=!0}}),window.addEventListener("test",rd,rd),window.removeEventListener("test",rd,rd)}catch{bx=!1}var po=null,wx=null,dm=null;function uA(){if(dm)return dm;var s,c=wx,h=c.length,v,S="value"in po?po.value:po.textContent,_=S.length;for(s=0;s=od),vA=" ",gA=!1;function yA(s,c){switch(s){case"keyup":return d7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xA(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var Vl=!1;function h7(s,c){switch(s){case"compositionend":return xA(c);case"keypress":return c.which!==32?null:(gA=!0,vA);case"textInput":return s=c.data,s===vA&&gA?null:s;default:return null}}function m7(s,c){if(Vl)return s==="compositionend"||!Cx&&yA(s,c)?(s=uA(),dm=wx=po=null,Vl=!1,s):null;switch(s){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-s};s=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=OA(h)}}function AA(s,c){return s&&c?s===c?!0:s&&s.nodeType===3?!1:c&&c.nodeType===3?AA(s,c.parentNode):"contains"in s?s.contains(c):s.compareDocumentPosition?!!(s.compareDocumentPosition(c)&16):!1:!1}function TA(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var c=cm(s.document);c instanceof s.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)s=c.contentWindow;else break;c=cm(s.document)}return c}function Ax(s){var c=s&&s.nodeName&&s.nodeName.toLowerCase();return c&&(c==="input"&&(s.type==="text"||s.type==="search"||s.type==="tel"||s.type==="url"||s.type==="password")||c==="textarea"||s.contentEditable==="true")}var j7=Ci&&"documentMode"in document&&11>=document.documentMode,Gl=null,Tx=null,ud=null,kx=!1;function kA(s,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;kx||Gl==null||Gl!==cm(v)||(v=Gl,"selectionStart"in v&&Ax(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),ud&&cd(ud,v)||(ud=v,v=ap(Tx,"onSelect"),0>=P,S-=P,Xa=1<<32-ar(c)+S|h<Je?(dt=De,De=null):dt=De.sibling;var mt=ce(re,De,ie[Je],be);if(mt===null){De===null&&(De=dt);break}s&&De&&mt.alternate===null&&c(re,De),Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt,De=dt}if(Je===ie.length)return h(re,De),ft&&Ei(re,Je),Ie;if(De===null){for(;JeJe?(dt=De,De=null):dt=De.sibling;var Io=ce(re,De,mt.value,be);if(Io===null){De===null&&(De=dt);break}s&&De&&Io.alternate===null&&c(re,De),Q=_(Io,Q,Je),ht===null?Ie=Io:ht.sibling=Io,ht=Io,De=dt}if(mt.done)return h(re,De),ft&&Ei(re,Je),Ie;if(De===null){for(;!mt.done;Je++,mt=ie.next())mt=we(re,mt.value,be),mt!==null&&(Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt);return ft&&Ei(re,Je),Ie}for(De=v(De);!mt.done;Je++,mt=ie.next())mt=he(De,re,Je,mt.value,be),mt!==null&&(s&&mt.alternate!==null&&De.delete(mt.key===null?Je:mt.key),Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt);return s&&De.forEach(function(FV){return c(re,FV)}),ft&&Ei(re,Je),Ie}function Pt(re,Q,ie,be){if(typeof ie=="object"&&ie!==null&&ie.type===b&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case x:e:{for(var Ie=ie.key;Q!==null;){if(Q.key===Ie){if(Ie=ie.type,Ie===b){if(Q.tag===7){h(re,Q.sibling),be=S(Q,ie.props.children),be.return=re,re=be;break e}}else if(Q.elementType===Ie||typeof Ie=="object"&&Ie!==null&&Ie.$$typeof===M&&ks(Ie)===Q.type){h(re,Q.sibling),be=S(Q,ie.props),vd(be,ie),be.return=re,re=be;break e}h(re,Q);break}else c(re,Q);Q=Q.sibling}ie.type===b?(be=Cs(ie.props.children,re.mode,be,ie.key),be.return=re,re=be):(be=wm(ie.type,ie.key,ie.props,null,re.mode,be),vd(be,ie),be.return=re,re=be)}return P(re);case j:e:{for(Ie=ie.key;Q!==null;){if(Q.key===Ie)if(Q.tag===4&&Q.stateNode.containerInfo===ie.containerInfo&&Q.stateNode.implementation===ie.implementation){h(re,Q.sibling),be=S(Q,ie.children||[]),be.return=re,re=be;break e}else{h(re,Q);break}else c(re,Q);Q=Q.sibling}be=Lx(ie,re.mode,be),be.return=re,re=be}return P(re);case M:return ie=ks(ie),Pt(re,Q,ie,be)}if(G(ie))return Ae(re,Q,ie,be);if(H(ie)){if(Ie=H(ie),typeof Ie!="function")throw Error(r(150));return ie=Ie.call(ie),ze(re,Q,ie,be)}if(typeof ie.then=="function")return Pt(re,Q,Em(ie),be);if(ie.$$typeof===E)return Pt(re,Q,_m(re,ie),be);Am(re,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"||typeof ie=="bigint"?(ie=""+ie,Q!==null&&Q.tag===6?(h(re,Q.sibling),be=S(Q,ie),be.return=re,re=be):(h(re,Q),be=Ix(ie,re.mode,be),be.return=re,re=be),P(re)):h(re,Q)}return function(re,Q,ie,be){try{pd=0;var Ie=Pt(re,Q,ie,be);return ac=null,Ie}catch(De){if(De===rc||De===Cm)throw De;var ht=qr(29,De,null,re.mode);return ht.lanes=be,ht.return=re,ht}finally{}}}var Ps=eT(!0),tT=eT(!1),bo=!1;function Xx(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Zx(s,c){s=s.updateQueue,c.updateQueue===s&&(c.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,callbacks:null})}function wo(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function jo(s,c,h){var v=s.updateQueue;if(v===null)return null;if(v=v.shared,(yt&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=bm(s),LA(s,null,h),c}return xm(s,v,c,h),bm(s)}function gd(s,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=s.pendingLanes,h|=v,c.lanes=h,VE(s,h)}}function Qx(s,c){var h=s.updateQueue,v=s.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},s.updateQueue=h;return}s=h.lastBaseUpdate,s===null?h.firstBaseUpdate=c:s.next=c,h.lastBaseUpdate=c}var Jx=!1;function yd(){if(Jx){var s=nc;if(s!==null)throw s}}function xd(s,c,h,v){Jx=!1;var S=s.updateQueue;bo=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,q=S.shared.pending;if(q!==null){S.shared.pending=null;var X=q,se=X.next;X.next=null,P===null?_=se:P.next=se,P=X;var ge=s.alternate;ge!==null&&(ge=ge.updateQueue,q=ge.lastBaseUpdate,q!==P&&(q===null?ge.firstBaseUpdate=se:q.next=se,ge.lastBaseUpdate=X))}if(_!==null){var we=S.baseState;P=0,ge=se=X=null,q=_;do{var ce=q.lane&-536870913,he=ce!==q.lane;if(he?(ut&ce)===ce:(v&ce)===ce){ce!==0&&ce===tc&&(Jx=!0),ge!==null&&(ge=ge.next={lane:0,tag:q.tag,payload:q.payload,callback:null,next:null});e:{var Ae=s,ze=q;ce=c;var Pt=h;switch(ze.tag){case 1:if(Ae=ze.payload,typeof Ae=="function"){we=Ae.call(Pt,we,ce);break e}we=Ae;break e;case 3:Ae.flags=Ae.flags&-65537|128;case 0:if(Ae=ze.payload,ce=typeof Ae=="function"?Ae.call(Pt,we,ce):Ae,ce==null)break e;we=p({},we,ce);break e;case 2:bo=!0}}ce=q.callback,ce!==null&&(s.flags|=64,he&&(s.flags|=8192),he=S.callbacks,he===null?S.callbacks=[ce]:he.push(ce))}else he={lane:ce,tag:q.tag,payload:q.payload,callback:q.callback,next:null},ge===null?(se=ge=he,X=we):ge=ge.next=he,P|=ce;if(q=q.next,q===null){if(q=S.shared.pending,q===null)break;he=q,q=he.next,he.next=null,S.lastBaseUpdate=he,S.shared.pending=null}}while(!0);ge===null&&(X=we),S.baseState=X,S.firstBaseUpdate=se,S.lastBaseUpdate=ge,_===null&&(S.shared.lanes=0),Oo|=P,s.lanes=P,s.memoizedState=we}}function nT(s,c){if(typeof s!="function")throw Error(r(191,s));s.call(c)}function rT(s,c){var h=s.callbacks;if(h!==null)for(s.callbacks=null,s=0;s_?_:8;var P=L.T,q={};L.T=q,yb(s,!1,c,h);try{var X=S(),se=L.S;if(se!==null&&se(q,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var ge=k7(X,v);jd(s,c,ge,Vr(s))}else jd(s,c,v,Vr(s))}catch(we){jd(s,c,{then:function(){},status:"rejected",reason:we},Vr())}finally{R.p=_,P!==null&&q.types!==null&&(P.types=q.types),L.T=P}}function I7(){}function vb(s,c,h,v){if(s.tag!==5)throw Error(r(476));var S=DT(s).queue;RT(s,S,c,U,h===null?I7:function(){return $T(s),h(v)})}function DT(s){var c=s.memoizedState;if(c!==null)return c;c={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mi,lastRenderedState:U},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mi,lastRenderedState:h},next:null},s.memoizedState=c,s=s.alternate,s!==null&&(s.memoizedState=c),c}function $T(s){var c=DT(s);c.next===null&&(c=s.alternate.memoizedState),jd(s,c.next.queue,{},Vr())}function gb(){return Xn(Bd)}function IT(){return un().memoizedState}function LT(){return un().memoizedState}function L7(s){for(var c=s.return;c!==null;){switch(c.tag){case 24:case 3:var h=Vr();s=wo(h);var v=jo(c,s,h);v!==null&&(Tr(v,c,h),gd(v,c,h)),c={cache:Vx()},s.payload=c;return}c=c.return}}function B7(s,c,h){var v=Vr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Bm(s)?zT(c,h):(h=Dx(s,c,h,v),h!==null&&(Tr(h,s,v),qT(h,c,v)))}function BT(s,c,h){var v=Vr();jd(s,c,h,v)}function jd(s,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(Bm(s))zT(c,S);else{var _=s.alternate;if(s.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,q=_(P,h);if(S.hasEagerState=!0,S.eagerState=q,zr(q,P))return xm(s,c,S,0),Lt===null&&ym(),!1}catch{}finally{}if(h=Dx(s,c,S,v),h!==null)return Tr(h,s,v),qT(h,c,v),!0}return!1}function yb(s,c,h,v){if(v={lane:2,revertLane:Xb(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},Bm(s)){if(c)throw Error(r(479))}else c=Dx(s,h,v,2),c!==null&&Tr(c,s,2)}function Bm(s){var c=s.alternate;return s===Ke||c!==null&&c===Ke}function zT(s,c){oc=Mm=!0;var h=s.pending;h===null?c.next=c:(c.next=h.next,h.next=c),s.pending=c}function qT(s,c,h){if((h&4194048)!==0){var v=c.lanes;v&=s.pendingLanes,h|=v,c.lanes=h,VE(s,h)}}var Sd={readContext:Xn,use:Dm,useCallback:rn,useContext:rn,useEffect:rn,useImperativeHandle:rn,useLayoutEffect:rn,useInsertionEffect:rn,useMemo:rn,useReducer:rn,useRef:rn,useState:rn,useDebugValue:rn,useDeferredValue:rn,useTransition:rn,useSyncExternalStore:rn,useId:rn,useHostTransitionStatus:rn,useFormState:rn,useActionState:rn,useOptimistic:rn,useMemoCache:rn,useCacheRefresh:rn};Sd.useEffectEvent=rn;var FT={readContext:Xn,use:Dm,useCallback:function(s,c){return xr().memoizedState=[s,c===void 0?null:c],s},useContext:Xn,useEffect:NT,useImperativeHandle:function(s,c,h){h=h!=null?h.concat([s]):null,Im(4194308,4,AT.bind(null,c,s),h)},useLayoutEffect:function(s,c){return Im(4194308,4,s,c)},useInsertionEffect:function(s,c){Im(4,2,s,c)},useMemo:function(s,c){var h=xr();c=c===void 0?null:c;var v=s();if(Rs){Ka(!0);try{s()}finally{Ka(!1)}}return h.memoizedState=[v,c],v},useReducer:function(s,c,h){var v=xr();if(h!==void 0){var S=h(c);if(Rs){Ka(!0);try{h(c)}finally{Ka(!1)}}}else S=c;return v.memoizedState=v.baseState=S,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:S},v.queue=s,s=s.dispatch=B7.bind(null,Ke,s),[v.memoizedState,s]},useRef:function(s){var c=xr();return s={current:s},c.memoizedState=s},useState:function(s){s=db(s);var c=s.queue,h=BT.bind(null,Ke,c);return c.dispatch=h,[s.memoizedState,h]},useDebugValue:mb,useDeferredValue:function(s,c){var h=xr();return pb(h,s,c)},useTransition:function(){var s=db(!1);return s=RT.bind(null,Ke,s.queue,!0,!1),xr().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,c,h){var v=Ke,S=xr();if(ft){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Lt===null)throw Error(r(349));(ut&127)!==0||cT(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,NT(dT.bind(null,v,_,s),[s]),v.flags|=2048,lc(9,{destroy:void 0},uT.bind(null,v,_,h,c),null),h},useId:function(){var s=xr(),c=Lt.identifierPrefix;if(ft){var h=Za,v=Xa;h=(v&~(1<<32-ar(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=Pm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Yn]=c,_[_r]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(Qn(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&Ri(c)}}return Kt(c),Mb(c,c.type,s===null?null:s.memoizedProps,c.pendingProps,h),null;case 6:if(s&&c.stateNode!=null)s.memoizedProps!==v&&Ri(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(s=xe.current,Jl(c)){if(s=c.stateNode,h=c.memoizedProps,v=null,S=Kn,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}s[Yn]=c,s=!!(s.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||sk(s.nodeValue,h)),s||yo(c,!0)}else s=ip(s).createTextNode(v),s[Yn]=c,c.stateNode=s}return Kt(c),null;case 31:if(h=c.memoizedState,s===null||s.memoizedState!==null){if(v=Jl(c),h!==null){if(s===null){if(!v)throw Error(r(318));if(s=c.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(r(557));s[Yn]=c}else Os(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;Kt(c),s=!1}else h=Fx(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=h),s=!0;if(!s)return c.flags&256?(Ur(c),c):(Ur(c),null);if((c.flags&128)!==0)throw Error(r(558))}return Kt(c),null;case 13:if(v=c.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(S=Jl(c),v!==null&&v.dehydrated!==null){if(s===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Yn]=c}else Os(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;Kt(c),S=!1}else S=Fx(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Ur(c),c):(Ur(c),null)}return Ur(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,s=s!==null&&s.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==s&&h&&(c.child.flags|=8192),Hm(c,c.updateQueue),Kt(c),null);case 4:return Z(),s===null&&e0(c.stateNode.containerInfo),Kt(c),null;case 10:return Ti(c.type),Kt(c),null;case 19:if(B(cn),v=c.memoizedState,v===null)return Kt(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)Nd(v,!1);else{if(an!==0||s!==null&&(s.flags&128)!==0)for(s=c.child;s!==null;){if(_=km(s),_!==null){for(c.flags|=128,Nd(v,!1),s=_.updateQueue,c.updateQueue=s,Hm(c,s),c.subtreeFlags=0,s=h,h=c.child;h!==null;)BA(h,s),h=h.sibling;return Y(cn,cn.current&1|2),ft&&Ei(c,v.treeForkCount),c.child}s=s.sibling}v.tail!==null&&rt()>Km&&(c.flags|=128,S=!0,Nd(v,!1),c.lanes=4194304)}else{if(!S)if(s=km(_),s!==null){if(c.flags|=128,S=!0,s=s.updateQueue,c.updateQueue=s,Hm(c,s),Nd(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!ft)return Kt(c),null}else 2*rt()-v.renderingStartTime>Km&&h!==536870912&&(c.flags|=128,S=!0,Nd(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(s=v.last,s!==null?s.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(s=v.tail,v.rendering=s,v.tail=s.sibling,v.renderingStartTime=rt(),s.sibling=null,h=cn.current,Y(cn,S?h&1|2:h&1),ft&&Ei(c,v.treeForkCount),s):(Kt(c),null);case 22:case 23:return Ur(c),tb(),v=c.memoizedState!==null,s!==null?s.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(Kt(c),c.subtreeFlags&6&&(c.flags|=8192)):Kt(c),h=c.updateQueue,h!==null&&Hm(c,h.retryQueue),h=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(h=s.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),s!==null&&B(Ts),null;case 24:return h=null,s!==null&&(h=s.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Ti(dn),Kt(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function H7(s,c){switch(zx(c),c.tag){case 1:return s=c.flags,s&65536?(c.flags=s&-65537|128,c):null;case 3:return Ti(dn),Z(),s=c.flags,(s&65536)!==0&&(s&128)===0?(c.flags=s&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Ur(c),c.alternate===null)throw Error(r(340));Os()}return s=c.flags,s&65536?(c.flags=s&-65537|128,c):null;case 13:if(Ur(c),s=c.memoizedState,s!==null&&s.dehydrated!==null){if(c.alternate===null)throw Error(r(340));Os()}return s=c.flags,s&65536?(c.flags=s&-65537|128,c):null;case 19:return B(cn),null;case 4:return Z(),null;case 10:return Ti(c.type),null;case 22:case 23:return Ur(c),tb(),s!==null&&B(Ts),s=c.flags,s&65536?(c.flags=s&-65537|128,c):null;case 24:return Ti(dn),null;case 25:return null;default:return null}}function f2(s,c){switch(zx(c),c.tag){case 3:Ti(dn),Z();break;case 26:case 27:case 5:je(c);break;case 4:Z();break;case 31:c.memoizedState!==null&&Ur(c);break;case 13:Ur(c);break;case 19:B(cn);break;case 10:Ti(c.type);break;case 22:case 23:Ur(c),tb(),s!==null&&B(Ts);break;case 24:Ti(dn)}}function Cd(s,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&s)===s){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(q){Nt(c,c.return,q)}}function No(s,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&s)===s){var P=v.inst,q=P.destroy;if(q!==void 0){P.destroy=void 0,S=c;var X=h,se=q;try{se()}catch(ge){Nt(S,X,ge)}}}v=v.next}while(v!==_)}}catch(ge){Nt(c,c.return,ge)}}function h2(s){var c=s.updateQueue;if(c!==null){var h=s.stateNode;try{rT(c,h)}catch(v){Nt(s,s.return,v)}}}function m2(s,c,h){h.props=Ds(s.type,s.memoizedProps),h.state=s.memoizedState;try{h.componentWillUnmount()}catch(v){Nt(s,c,v)}}function Od(s,c){try{var h=s.ref;if(h!==null){switch(s.tag){case 26:case 27:case 5:var v=s.stateNode;break;case 30:v=s.stateNode;break;default:v=s.stateNode}typeof h=="function"?s.refCleanup=h(v):h.current=v}}catch(S){Nt(s,c,S)}}function Qa(s,c){var h=s.ref,v=s.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){Nt(s,c,S)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){Nt(s,c,S)}else h.current=null}function p2(s){var c=s.type,h=s.memoizedProps,v=s.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){Nt(s,s.return,S)}}function Pb(s,c,h){try{var v=s.stateNode;fV(v,s.type,h,c),v[_r]=c}catch(S){Nt(s,s.return,S)}}function v2(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&Mo(s.type)||s.tag===4}function Rb(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||v2(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.tag===27&&Mo(s.type)||s.flags&2||s.child===null||s.tag===4)continue e;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function Db(s,c,h){var v=s.tag;if(v===5||v===6)s=s.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(s,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(s),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ni));else if(v!==4&&(v===27&&Mo(s.type)&&(h=s.stateNode,c=null),s=s.child,s!==null))for(Db(s,c,h),s=s.sibling;s!==null;)Db(s,c,h),s=s.sibling}function Wm(s,c,h){var v=s.tag;if(v===5||v===6)s=s.stateNode,c?h.insertBefore(s,c):h.appendChild(s);else if(v!==4&&(v===27&&Mo(s.type)&&(h=s.stateNode),s=s.child,s!==null))for(Wm(s,c,h),s=s.sibling;s!==null;)Wm(s,c,h),s=s.sibling}function g2(s){var c=s.stateNode,h=s.memoizedProps;try{for(var v=s.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);Qn(c,v,h),c[Yn]=s,c[_r]=h}catch(_){Nt(s,s.return,_)}}var Di=!1,mn=!1,$b=!1,y2=typeof WeakSet=="function"?WeakSet:Set,Bn=null;function W7(s,c){if(s=s.containerInfo,r0=fp,s=TA(s),Ax(s)){if("selectionStart"in s)var h={start:s.selectionStart,end:s.selectionEnd};else e:{h=(h=s.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,q=-1,X=-1,se=0,ge=0,we=s,ce=null;t:for(;;){for(var he;we!==h||S!==0&&we.nodeType!==3||(q=P+S),we!==_||v!==0&&we.nodeType!==3||(X=P+v),we.nodeType===3&&(P+=we.nodeValue.length),(he=we.firstChild)!==null;)ce=we,we=he;for(;;){if(we===s)break t;if(ce===h&&++se===S&&(q=P),ce===_&&++ge===v&&(X=P),(he=we.nextSibling)!==null)break;we=ce,ce=we.parentNode}we=he}h=q===-1||X===-1?null:{start:q,end:X}}else h=null}h=h||{start:0,end:0}}else h=null;for(a0={focusedElem:s,selectionRange:h},fp=!1,Bn=c;Bn!==null;)if(c=Bn,s=c.child,(c.subtreeFlags&1028)!==0&&s!==null)s.return=c,Bn=s;else for(;Bn!==null;){switch(c=Bn,_=c.alternate,s=c.flags,c.tag){case 0:if((s&4)!==0&&(s=c.updateQueue,s=s!==null?s.events:null,s!==null))for(h=0;h title"))),Qn(_,v,h),_[Yn]=s,Ln(_),v=_;break e;case"link":var P=_k("link","href",S).get(v+(h.href||""));if(P){for(var q=0;qPt&&(P=Pt,Pt=ze,ze=P);var re=EA(q,ze),Q=EA(q,Pt);if(re&&Q&&(he.rangeCount!==1||he.anchorNode!==re.node||he.anchorOffset!==re.offset||he.focusNode!==Q.node||he.focusOffset!==Q.offset)){var ie=we.createRange();ie.setStart(re.node,re.offset),he.removeAllRanges(),ze>Pt?(he.addRange(ie),he.extend(Q.node,Q.offset)):(ie.setEnd(Q.node,Q.offset),he.addRange(ie))}}}}for(we=[],he=q;he=he.parentNode;)he.nodeType===1&&we.push({element:he,left:he.scrollLeft,top:he.scrollTop});for(typeof q.focus=="function"&&q.focus(),q=0;qh?32:h,L.T=null,h=Ub,Ub=null;var _=Ao,P=zi;if(On=0,hc=Ao=null,zi=0,(yt&6)!==0)throw Error(r(331));var q=yt;if(yt|=4,A2(_.current),C2(_,_.current,P,h),yt=q,Pd(0,!1),yr&&typeof yr.onPostCommitFiberRoot=="function")try{yr.onPostCommitFiberRoot(ys,_)}catch{}return!0}finally{R.p=S,L.T=v,G2(s,c)}}function K2(s,c,h){c=ua(h,c),c=jb(s.stateNode,c,2),s=jo(s,c,2),s!==null&&(Ju(s,2),Ja(s))}function Nt(s,c,h){if(s.tag===3)K2(s,s,h);else for(;c!==null;){if(c.tag===3){K2(c,s,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(Eo===null||!Eo.has(v))){s=ua(h,s),h=XT(2),v=jo(c,h,2),v!==null&&(ZT(h,v,c,s),Ju(v,2),Ja(v));break}}c=c.return}}function Gb(s,c,h){var v=s.pingCache;if(v===null){v=s.pingCache=new Y7;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Bb=!0,S.add(h),s=J7.bind(null,s,c,h),c.then(s,s))}function J7(s,c,h){var v=s.pingCache;v!==null&&v.delete(c),s.pingedLanes|=s.suspendedLanes&h,s.warmLanes&=~h,Lt===s&&(ut&h)===h&&(an===4||an===3&&(ut&62914560)===ut&&300>rt()-Ym?(yt&2)===0&&mc(s,0):zb|=h,fc===ut&&(fc=0)),Ja(s)}function X2(s,c){c===0&&(c=$l()),s=Ns(s,c),s!==null&&(Ju(s,c),Ja(s))}function eV(s){var c=s.memoizedState,h=0;c!==null&&(h=c.retryLane),X2(s,h)}function tV(s,c){var h=0;switch(s.tag){case 31:case 13:var v=s.stateNode,S=s.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=s.stateNode;break;case 22:v=s.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),X2(s,h)}function nV(s,c){return vr(s,c)}var tp=null,vc=null,Yb=!1,np=!1,Kb=!1,ko=0;function Ja(s){s!==vc&&s.next===null&&(vc===null?tp=vc=s:vc=vc.next=s),np=!0,Yb||(Yb=!0,aV())}function Pd(s,c){if(!Kb&&np){Kb=!0;do for(var h=!1,v=tp;v!==null;){if(s!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,q=v.pingedLanes;_=(1<<31-ar(42|s)+1)-1,_&=S&~(P&~q),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,ek(v,_))}else _=ut,_=Dl(v,v===Lt?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||xs(v,_)||(h=!0,ek(v,_));v=v.next}while(h);Kb=!1}}function rV(){Z2()}function Z2(){np=Yb=!1;var s=0;ko!==0&&mV()&&(s=ko);for(var c=rt(),h=null,v=tp;v!==null;){var S=v.next,_=Q2(v,c);_===0?(v.next=null,h===null?tp=S:h.next=S,S===null&&(vc=h)):(h=v,(s!==0||(_&3)!==0)&&(np=!0)),v=S}On!==0&&On!==5||Pd(s),ko!==0&&(ko=0)}function Q2(s,c){for(var h=s.suspendedLanes,v=s.pingedLanes,S=s.expirationTimes,_=s.pendingLanes&-62914561;0<_;){var P=31-ar(_),q=1<q)break;var ge=X.transferSize,we=X.initiatorType;ge&&lk(we)&&(X=X.responseEnd,P+=ge*(X"u"?null:document;function bk(s,c,h){var v=gc;if(v&&typeof c=="string"&&c){var S=la(c);S='link[rel="'+s+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),xk.has(S)||(xk.add(S),s={rel:s,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),Qn(c,"link",s),Ln(c),v.head.appendChild(c)))}}function SV(s){qi.D(s),bk("dns-prefetch",s,null)}function _V(s,c){qi.C(s,c),bk("preconnect",s,c)}function NV(s,c,h){qi.L(s,c,h);var v=gc;if(v&&s&&c){var S='link[rel="preload"][as="'+la(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+la(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+la(h.imageSizes)+'"]')):S+='[href="'+la(s)+'"]';var _=S;switch(c){case"style":_=yc(s);break;case"script":_=xc(s)}va.has(_)||(s=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:s,as:c},h),va.set(_,s),v.querySelector(S)!==null||c==="style"&&v.querySelector(Id(_))||c==="script"&&v.querySelector(Ld(_))||(c=v.createElement("link"),Qn(c,"link",s),Ln(c),v.head.appendChild(c)))}}function CV(s,c){qi.m(s,c);var h=gc;if(h&&s){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+la(v)+'"][href="'+la(s)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=xc(s)}if(!va.has(_)&&(s=p({rel:"modulepreload",href:s},c),va.set(_,s),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(Ld(_)))return}v=h.createElement("link"),Qn(v,"link",s),Ln(v),h.head.appendChild(v)}}}function OV(s,c,h){qi.S(s,c,h);var v=gc;if(v&&s){var S=zl(v).hoistableStyles,_=yc(s);c=c||"default";var P=S.get(_);if(!P){var q={loading:0,preload:null};if(P=v.querySelector(Id(_)))q.loading=5;else{s=p({rel:"stylesheet",href:s,"data-precedence":c},h),(h=va.get(_))&&d0(s,h);var X=P=v.createElement("link");Ln(X),Qn(X,"link",s),X._p=new Promise(function(se,ge){X.onload=se,X.onerror=ge}),X.addEventListener("load",function(){q.loading|=1}),X.addEventListener("error",function(){q.loading|=2}),q.loading|=4,sp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:q},S.set(_,P)}}}function EV(s,c){qi.X(s,c);var h=gc;if(h&&s){var v=zl(h).hoistableScripts,S=xc(s),_=v.get(S);_||(_=h.querySelector(Ld(S)),_||(s=p({src:s,async:!0},c),(c=va.get(S))&&f0(s,c),_=h.createElement("script"),Ln(_),Qn(_,"link",s),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function AV(s,c){qi.M(s,c);var h=gc;if(h&&s){var v=zl(h).hoistableScripts,S=xc(s),_=v.get(S);_||(_=h.querySelector(Ld(S)),_||(s=p({src:s,async:!0,type:"module"},c),(c=va.get(S))&&f0(s,c),_=h.createElement("script"),Ln(_),Qn(_,"link",s),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function wk(s,c,h,v){var S=(S=xe.current)?op(S):null;if(!S)throw Error(r(446));switch(s){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=yc(h.href),h=zl(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){s=yc(h.href);var _=zl(S).hoistableStyles,P=_.get(s);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(s,P),(_=S.querySelector(Id(s)))&&!_._p&&(P.instance=_,P.state.loading=5),va.has(s)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},va.set(s,h),_||TV(S,s,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=xc(h),h=zl(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,s))}}function yc(s){return'href="'+la(s)+'"'}function Id(s){return'link[rel="stylesheet"]['+s+"]"}function jk(s){return p({},s,{"data-precedence":s.precedence,precedence:null})}function TV(s,c,h,v){s.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=s.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),Qn(c,"link",h),Ln(c),s.head.appendChild(c))}function xc(s){return'[src="'+la(s)+'"]'}function Ld(s){return"script[async]"+s}function Sk(s,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=s.querySelector('style[data-href~="'+la(h.href)+'"]');if(v)return c.instance=v,Ln(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(s.ownerDocument||s).createElement("style"),Ln(v),Qn(v,"style",S),sp(v,h.precedence,s),c.instance=v;case"stylesheet":S=yc(h.href);var _=s.querySelector(Id(S));if(_)return c.state.loading|=4,c.instance=_,Ln(_),_;v=jk(h),(S=va.get(S))&&d0(v,S),_=(s.ownerDocument||s).createElement("link"),Ln(_);var P=_;return P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),Qn(_,"link",v),c.state.loading|=4,sp(_,h.precedence,s),c.instance=_;case"script":return _=xc(h.src),(S=s.querySelector(Ld(_)))?(c.instance=S,Ln(S),S):(v=h,(S=va.get(_))&&(v=p({},h),f0(v,S)),s=s.ownerDocument||s,S=s.createElement("script"),Ln(S),Qn(S,"link",v),s.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,sp(v,h.precedence,s));return c.instance}function sp(s,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function kV(s,c,h){if(h===1||c.itemProp!=null)return!1;switch(s){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return s=c.disabled,typeof c.precedence=="string"&&s==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Ck(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function MV(s,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=yc(v.href),_=c.querySelector(Id(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(s.count++,s=cp.bind(s),c.then(s,s)),h.state.loading|=4,h.instance=_,Ln(_);return}_=c.ownerDocument||c,v=jk(v),(S=va.get(S))&&d0(v,S),_=_.createElement("link"),Ln(_);var P=_;P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),Qn(_,"link",v),h.instance=_}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(s.count++,h=cp.bind(s),c.addEventListener("load",h),c.addEventListener("error",h))}}var h0=0;function PV(s,c){return s.stylesheets&&s.count===0&&dp(s,s.stylesheets),0h0?50:800)+c);return s.unsuspend=h,function(){s.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function cp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)dp(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var up=null;function dp(s,c){s.stylesheets=null,s.unsuspend!==null&&(s.count++,up=new Map,c.forEach(RV,s),up=null,cp.call(s))}function RV(s,c){if(!(c.state.loading&4)){var h=up.get(s);if(h)var v=h.get(null);else{h=new Map,up.set(s,h);for(var S=s.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),j0.exports=XV(),j0.exports}var QV=ZV();const c_=new WeakMap,JV=new WeakMap,dv={current:[]};let C0=!1,gf=0;const lf=new Set,bp=new Map;function WL(e){for(const t of e){if(dv.current.includes(t))continue;dv.current.push(t),t.recompute();const n=JV.get(t);if(n)for(const r of n){const a=c_.get(r);a?.length&&WL(a)}}}function eG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function tG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function VL(e){if(gf>0&&!bp.has(e)&&bp.set(e,e.prevState),lf.add(e),!(gf>0)&&!C0)try{for(C0=!0;lf.size>0;){const t=Array.from(lf);lf.clear();for(const n of t){const r=bp.get(n)??n.prevState;n.prevState=r,eG(n)}for(const n of t){const r=c_.get(n);r&&(dv.current.push(n),WL(r))}for(const n of t){const r=c_.get(n);if(r)for(const a of r)tG(a)}}}finally{C0=!1,dv.current=[],bp.clear()}}function yf(e){gf++;try{e()}finally{if(gf--,gf===0){const t=lf.values().next().value;t&&VL(t)}}}function nG(e){return typeof e=="function"}class rG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,o;this.listeners.add(r);const l=(o=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:o.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):nG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),VL(this)}}const Go="__TSR_index",Xk="popstate",Zk="beforeunload";function aG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},o=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=fv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Go];u=Qk(f+1,u),o({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Go];u=Qk(f,u),o({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{o({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{o({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{o({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Go]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function Qk(e,t){t||(t={});const n=SC();return{...t,key:n,__TSR_key:n,[Go]:e}}function iG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const o=()=>a,l=M=>a=M,u=(M=>M),d=(()=>fv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=SC();t.history.replaceState({[Go]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const b=()=>f;let w,N;const A=()=>{w&&(O._ignoreSubscribers=!0,(w.isPush?t.history.pushState:t.history.replaceState)(w.state,"",w.href),O._ignoreSubscribers=!1,w=void 0,N=void 0,m=void 0)},E=(M,I,z)=>{const D=u(I);N||(m=f),f=fv(I,z),w={href:D,state:z,isPush:w?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>A()))},T=M=>{f=d(),O.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),I=M.state[Go]-f.state[Go],z=I===1,D=I===-1,H=!z&&!D||p;p=!1;const V=H?"GO":D?"BACK":"FORWARD",F=H?{type:"GO",index:I}:{type:D?"BACK":"FORWARD"};if(x)x=!1;else{const G=o();if(typeof document<"u"&&G.length){for(const L of G)if(await L.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),O.notify(F);return}}}f=d(),O.notify(F)},k=M=>{if(j){j=!1;return}let I=!1;const z=o();if(typeof document<"u"&&z.length)for(const D of z){const H=D.enableBeforeUnload??!0;if(H===!0){I=!0;break}if(typeof H=="function"&&H()===!0){I=!0;break}}if(I)return M.preventDefault(),M.returnValue=""},O=aG({getLocation:b,getLength:()=>t.history.length,pushState:(M,I)=>E("push",M,I),replaceState:(M,I)=>E("replace",M,I),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:A,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Zk,k,{capture:!0}),t.removeEventListener(Xk,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:o,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(Zk,k,{capture:!0}),t.addEventListener(Xk,C),t.history.pushState=function(...M){const I=n.apply(t.history,M);return O._ignoreSubscribers||T("PUSH"),I},t.history.replaceState=function(...M){const I=r.apply(t.history,M);return O._ignoreSubscribers||T("REPLACE"),I},O}function fv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=SC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Go]:0,key:a,__TSR_key:a}}}function SC(){return(Math.random()+1).toString(36).substring(7)}function u_(e){return e[e.length-1]}function oG(e){return typeof e=="function"}function Qs(e,t){return oG(e)?e(t):e}const sG=Object.prototype.hasOwnProperty;function wa(e,t){if(e===t)return e;const n=t,r=tM(e)&&tM(n);if(!r&&!(hv(e)&&hv(n)))return n;const a=r?e:Jk(e);if(!a)return n;const o=r?n:Jk(n);if(!o)return n;const l=a.length,u=o.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!eM(n)||!n.hasOwnProperty("isPrototypeOf"))}function eM(e){return Object.prototype.toString.call(e)==="[object Object]"}function tM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Js(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!Js(e[l],t[l],n)))return!1;return a===o}return!1}function Qc(e){let t,n;const r=new Promise((a,o)=>{t=a,n=o});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function Yo(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const lG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function nM(e,t=lG){function n(a,o,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var cG="Invariant failed";function ur(e,t){if(!e)throw new Error(cG)}const di=0,ll=1,Jc=2,eu=3;function Qi(e){return _C(e.filter(t=>t!==void 0).join("/"))}function _C(e){return e.replace(/\/{2,}/g,"/")}function NC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Ko(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function Qp(e){return Ko(NC(e))}function mv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function uG(e,t,n){return mv(e,n)===mv(t,n)}function dG(e){const{type:t,value:n}=e;if(t===di)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===ll){const o=n.substring(1);if(r&&a)return`${r}{$${o}}${a}`;if(r)return`${r}{$${o}}`;if(a)return`{$${o}}${a}`}if(t===eu){const o=n.substring(1);return r&&a?`${r}{-$${o}}${a}`:r?`${r}{-$${o}}`:a?`{-$${o}}${a}`:`{-$${o}}`}if(t===Jc){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function fG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=tu(e,r).slice();const o=tu(t,r);a.length>1&&u_(a)?.value==="/"&&a.pop();for(let d=0,f=o.length;d1&&(u_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:di,value:"/"}));const l=a.map(dG);return Qi(l)}const tu=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=yG(e);return t?.set(e,r),r},hG=/^\$.{1,}$/,mG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,pG=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,vG=/^\$$/,gG=/^(.*?)\{\$\}(.*)$/;function yG(e){e=_C(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:di,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(gG);if(a){const u=a[1],d=a[2];return{type:Jc,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const o=r.match(pG);if(o){const u=o[1],d=o[2],f=o[3];return{type:eu,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(mG);if(l){const u=l[1],d=l[2],f=l[3];return{type:ll,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(hG.test(r)){const u=r.substring(1);return{type:ll,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return vG.test(r)?{type:Jc,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:di,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:di,value:"/"})),t}function O0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=tu(e,r);function o(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?xG(m,n):m}let l=!1;const u={},d=Qi(a.map(f=>{if(f.type===di)return f.value;if(f.type===Jc){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=o("_splat");return`${m}${g}${p}`}if(f.type===ll){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${o(m)??"undefined"}${g}`}if(f.type===eu){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${o(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function xG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function d_(e,t,n){const r=bG(e,t,n);if(!(t.to&&!r))return r??{}}function bG(e,{to:t,fuzzy:n,caseSensitive:r},a){const o=t,l=tu(e.startsWith("/")?e:`/${e}`,a),u=tu(o.startsWith("/")?o:`/${o}`,a),d={};return wG(l,u,d,n,r)?d:void 0}function wG(e,t,n,r,a){let o=0,l=0;for(;ob.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(Qi(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===di){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;o++,l++;continue}else return!1}if(d.type===ll){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,o++),l++;continue}if(d.type===eu){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=Qi(e.slice(o).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const o=NC(r.fullPath);let l=tu(o),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return jG;if(p.type===di)return SG;let x;p.type===ll?x=_G:p.type===eu?(x=NG,d++):x=CG;for(let j=g+1;j{const o=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function MG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(ur(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=Ko(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const o=kG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:o}}function Fa(e){return!!e?.isNotFound}function PG(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const pv="tsr-scroll-restoration-v1_3",RG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function DG(){const e=PG();if(!e)return null;const t=e.getItem(pv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=Qs(r,n)||n,e.setItem(pv,JSON.stringify(n)))}}const wp=DG(),f_=e=>e.state.__TSR_key||e.href;function $G(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let vv=!1;function GL({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:o}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];vv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(o??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}vv=!1}function IG(e,t){if(!wp&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!wp))return;e.isScrollRestorationSetup=!0,vv=!1;const r=e.options.getScrollRestorationKey||f_;window.history.scrollRestoration="manual";const a=o=>{if(vv||!e.isScrollRestoring)return;let l="";if(o.target===document||o.target===window)l="window";else{const d=o.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=$G(o.target)}const u=r(e.state.location);wp.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",RG(a,100),!0),e.subscribe("onRendered",o=>{const l=r(o.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(GL({storageKey:pv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&wp.set(u=>(u[l]||={},u)))})}function LG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function BG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function E0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function zG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const o=n[r];o==null?n[r]=E0(a):Array.isArray(o)?o.push(E0(a)):n[r]=[o,E0(a)]}return n}const qG=UG(JSON.parse),FG=HG(JSON.stringify,JSON.parse);function UG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=zG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function HG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const o=BG(a,r);return o?`?${o}`:""}}const Zr="__root__";function YL(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function oi(e){return e instanceof Response&&!!e.options}function WG(e){const t=new Map;let n,r;const a=o=>{o.next&&(o.prev?(o.prev.next=o.next,o.next.prev=o.prev,o.next=void 0,r&&(r.next=o,o.prev=r)):(o.next.prev=void 0,n=o.next,o.next=void 0,r&&(o.prev=r,r.next=o)),r=o)};return{get(o){const l=t.get(o);if(l)return a(l),l.value},set(o,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(o);if(u)u.value=l,a(u);else{const d={key:o,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(o,d)}}}}const Jp=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},Dg=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),KL=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),ur(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);ur(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,KL(e,t))},Uo=(e,t,n)=>{if(!(!oi(n)&&!Fa(n))){if(oi(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=oi(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Fa(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw oi(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(KL(e,n),n)}},XL=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Wd=(e,t,n,r)=>{const{id:a,routeId:o}=e.matches[t],l=e.router.looseRoutesById[o];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Uo(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Uo(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},VG=(e,t,n,r)=>{const a=e.router.getMatch(t),o=e.matches[n-1]?.id,l=o?e.router.getMatch(o):void 0;if(e.router.isShell()){a.ssr=r.id===Zr;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:jp(f,a.searchError),params:jp(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:jp(x.search,x.searchError),params:jp(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(Yo(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},ZL=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!Dg(e,t)&&(n.options.loader||n.options.beforeLoad||e5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{Jp(e)},a);r._nonReactive.pendingTimeout=l}},GG=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;ZL(e,t,n,r);const a=()=>{const o=e.router.getMatch(t);o.preload&&(o.status==="redirected"||o.status==="notFound")&&Uo(e,o,o.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},YG=(e,t,n,r)=>{const a=e.router.getMatch(t),o=a._nonReactive.loadPromise;a._nonReactive.loadPromise=Qc(()=>{o?.resolve()});const{paramsError:l,searchError:u}=a;l&&Wd(e,n,l,"PARSE_PARAMS"),u&&Wd(e,n,u,"VALIDATE_SEARCH"),ZL(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,O=>({...O,isFetching:"beforeLoad",fetchCount:O.fetchCount+1,abortController:d,context:g})))},b=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,O=>({...O,isFetching:!1}))};if(!r.options.beforeLoad){yf(()=>{j(),b()});return}a._nonReactive.beforeLoadPromise=Qc();const{search:w,params:N,cause:A}=a,E=Dg(e,t),T={search:w,abortController:d,params:N,preload:E,context:g,location:e.location,navigate:O=>e.router.navigate({...O,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:E?"preload":A,matches:e.matches,...e.router.options.additionalContext},C=O=>{if(O===void 0){yf(()=>{j(),b()});return}(oi(O)||Fa(O))&&(j(),Wd(e,n,O,"BEFORE_LOAD")),yf(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:O,context:{...M.context,...O}})),b()})};let k;try{if(k=r.options.beforeLoad(T),Yo(k))return j(),k.catch(O=>{Wd(e,n,O,"BEFORE_LOAD")}).then(C)}catch(O){j(),Wd(e,n,O,"BEFORE_LOAD")}C(k)},KG=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],o=()=>{if(e.router.isServer){const d=VG(e,n,t,a);if(Yo(d))return d.then(u)}return u()},l=()=>YG(e,n,t,a),u=()=>{if(XL(e,n))return;const d=GG(e,n,a);return Yo(d)?d.then(l):l()};return o()},xf=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([o,l,u])=>{const d=o?.meta,f=o?.links,m=o?.scripts,p=o?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},QL=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:o,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=Dg(e,t);return{params:o,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},oM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&JL(r);const o=r.options.loader?.(QL(e,t,n,r)),l=r.options.loader&&Yo(o);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await o:o;Uo(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=xf(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(o){let l=o;const u=a._nonReactive.minPendingPromise;u&&await u,Fa(o)&&await r.options.notFoundComponent?.preload?.(),Uo(e,e.router.getMatch(t),o);try{r.options.onError?.(o)}catch(m){l=m,Uo(e,e.router.getMatch(t),m)}const d=xf(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const o=e.router.getMatch(t);if(o){const l=xf(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}o._nonReactive.loaderPromise=void 0}Uo(e,o,a)}},XG=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,o=!1;const l=e.router.looseRoutesById[r];if(XL(e,n)){if(e.router.isServer){const f=xf(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Uo(e,m,p)}else{const m=Date.now()-f.updatedAt,p=Dg(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(QL(e,n,t,l)):x,b=!!p&&!e.router.state.matches.some(E=>E.id===n),w=e.router.getMatch(n);w._nonReactive.loaderPromise=Qc(),b!==w.preload&&e.updateMatch(n,E=>({...E,preload:b}));const{status:N,invalid:A}=w;if(a=N==="success"&&(A||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)o=!0,(async()=>{try{await oM(e,n,t,l);const E=e.router.getMatch(n);E._nonReactive.loaderPromise?.resolve(),E._nonReactive.loadPromise?.resolve(),E._nonReactive.loaderPromise=void 0}catch(E){oi(E)&&await e.router.navigate(E.options)}})();else if(N!=="success"||a&&e.sync)await oM(e,n,t,l);else{const E=xf(e,n,l);if(E){const T=await E;e.updateMatch(n,C=>({...C,...T}))}}}}const u=e.router.getMatch(n);o||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,o||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=o?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function sM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&Jp(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of t5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function jp(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function e5(e){for(const t of t5)if(e.options[t]?.preload)return!0;return!1}const t5=["component","errorComponent","pendingComponent","notFoundComponent"];function ZG(e){return{input:({url:t})=>{for(const n of e)t=n5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=r5(e[n],t);return t}}}function QG(e){const t=Qp(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),o=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(o)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=Qi(["/",t,l.pathname]),l)}}function n5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function r5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function el(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,o=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:o}}class JG{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",o=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=iG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new rG(tY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),IG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(o||a!==d||l!==f){this.basepath=d;const g=[];Qp(d)!==""&&g.push(QG({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:ZG(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=MG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const o=this.options.notFoundRoute;o&&(o.init({originalIndex:99999999999}),this.routesById[o.id]=o)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=n5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:b,hash:w}=p;return{href:j,publicHref:d,url:p.href,pathname:nM(b),searchStr:x,search:wa(r?.search,g),hash:w.split("#").reverse()[0]??"",state:wa(r?.state,f)}},o=a(n),{__tempLocation:l,__tempKey:u}=o.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=o.state.key,d.state.__TSR_key=o.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:o}}return o},this.resolvePathWithBase=(n,r)=>fG({base:n,to:_C(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=WG(1e3),this.getMatchedRoutes=(n,r)=>nY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(o=>o.status==="pending"),r=this.state.matches.filter(o=>o.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(o=>{this.cancelMatch(o.id)})},this.buildLocation=n=>{const r=(o={})=>{const l=o._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=u_(u);o.from;const f=o.unsafeRelative==="path"?l.pathname:o.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=o.to?this.resolvePathWithBase(m,`${o.to}`):this.resolvePathWithBase(m,"."),j=o.params===!1||o.params===null?{}:(o.params??!0)===!0?g:Object.assign(g,Qs(o.params,g)),b=O0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,w=this.matchRoutes(b,void 0,{_buildLocation:!0}).map(z=>this.looseRoutesById[z.routeId]);if(Object.keys(j).length>0)for(const z of w){const D=z.options.params?.stringify??z.options.stringifyParams;D&&Object.assign(j,D(j))}const N=n.leaveParams?x:nM(O0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let A=p;if(n._includeValidateSearch&&this.options.search?.strict){const z={};w.forEach(D=>{if(D.options.validateSearch)try{Object.assign(z,h_(D.options.validateSearch,{...z,...A}))}catch{}}),A=z}A=rY({search:A,dest:o,destRoutes:w,_includeValidateSearch:n._includeValidateSearch}),A=wa(p,A);const E=this.options.stringifySearch(A),T=o.hash===!0?l.hash:o.hash?Qs(o.hash,l.hash):void 0,C=T?`#${T}`:"";let k=o.state===!0?l.state:o.state?Qs(o.state,l.state):{};k=wa(l.state,k);const O=`${N}${E}${C}`,M=new URL(O,this.origin),I=r5(this.rewrite,M);return{publicHref:I.pathname+I.search+I.hash,href:O,url:I.href,pathname:N,search:A,searchStr:E,state:k,hash:T??"",unmaskOnReload:o.unmaskOnReload}},a=(o={},l)=>{const u=r(o);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=d_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const o=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=Js(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=Ko(this.latestLocation.href)===Ko(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=Qc(()=>{u?.resolve()}),l&&o())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:o,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=fv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:o,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...o})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...o}).url),o.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...o,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=o=>{try{return encodeURI(decodeURI(o))}catch{return o}};if(Qp(a(this.latestLocation.href))!==Qp(a(r.href))){let o=r.url;throw this.origin&&o.startsWith(this.origin)&&(o=o.replace(this.origin,"")||"/"),YL({href:o})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(o=>o.id===a.id))}))},this.load=async n=>{let r,a,o;for(o=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...el({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...el({resolvedLocation:f,location:d})}),await sM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];yf(()=>{this.__store.setState(x=>{const j=x.matches,b=x.pendingMatches||x.matches;return m=j.filter(w=>!b.some(N=>N.id===w.id)),p=b.filter(w=>!j.some(N=>N.id===w.id)),g=b.filter(w=>j.some(N=>N.id===w.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:b,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(w=>w.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(b=>{this.looseRoutesById[b.routeId].options[j]?.(b)})})})})}})}catch(d){oi(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Fa(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===o&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=o,await o;this.latestLoadPromise&&o!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const o=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(el({resolvedLocation:l,location:o})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(o=>o.id===n)?"pendingMatches":this.state.matches.some(o=>o.id===n)?"matches":this.state.cachedMatches.some(o=>o.id===n)?"cachedMatches":"";a&&this.__store.setState(o=>({...o,[a]:o[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(o=>!r(o))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const o=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=o};this.clearCache({filter:n})},this.loadRouteChunk=JL,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const o=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...o,...this.state.cachedMatches.map(u=>u.id)]);yf(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await sM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{o.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(oi(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Fa(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},o=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=d_(u.pathname,{...r,to:o.pathname},this.parsePathnameCache);return!d||n.params&&!Js(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?Js(u.search,o.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??FG,parseSearch:t.parseSearch??qG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:o}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&o["**"]:Ko(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return Zr}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,b]=(()=>{const H=g?.search??t.search,V=g?._strictSearch??void 0;try{const F=h_(m.options.validateSearch,{...H})??void 0;return[{...H,...F},{...V,...F},void 0]}catch(F){let G=F;if(F instanceof gv||(G=new gv(F.message,{cause:F})),n?.throwOnError)throw G;return[H,{},G]}})(),w=m.options.loaderDeps?.({search:x})??"",N=w?JSON.stringify(w):"",{interpolatedPath:A,usedParams:E}=O0({path:m.fullPath,params:o,decodeCharMap:this.pathParamsDecodeCharMap}),T=m.id+A+N,C=this.getMatch(T),k=this.state.matches.find(H=>H.routeId===m.id),O=C?._strictParams??E;let M;if(!C){const H=m.options.params?.parse??m.options.parseParams;if(H)try{Object.assign(O,H(O))}catch(V){if(M=new eY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(o,O);const I=k?"stay":"enter";let z;if(C)z={...C,cause:I,params:k?wa(k.params,o):o,_strictParams:O,search:wa(k?k.search:C.search,x),_strictSearch:j};else{const H=m.options.loader||m.options.beforeLoad||m.lazyFn||e5(m)?"pending":"success";z={id:T,index:p,routeId:m.id,params:k?wa(k.params,o):o,_strictParams:O,pathname:A,updatedAt:Date.now(),search:k?wa(k.search,x):x,_strictSearch:j,searchError:void 0,status:H,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:Qc()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:I,loaderDeps:k?wa(k.loaderDeps,w):w,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(z.globalNotFound=u===m.id),z.searchError=b;const D=f(g);z.context={...D,...z.__routeContext,...z.__beforeLoadContext},d.push(z)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],b=f(j);if(g.options.context){const w={deps:m.loaderDeps,params:m.params,context:b??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(w)??void 0}m.context={...b,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class gv extends Error{}class eY extends Error{}function tY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function h_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new gv("Async validation not supported");if(n.issues)throw new gv(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function nY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:o,parseCache:l}){let u={};const d=Ko(e),f=x=>d_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of o){const b=f(j);if(b)if(j.path!=="/"&&b["**"])x||(x={foundRoute:j,routeParams:b});else{m=j,u=b;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[Zr];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function rY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((b,w)=>w(b),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((b,w)=>w(b),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...h_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],o=({search:u})=>t.search?t.search===!0?u:Qs(t.search,u):{};a.push(o);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const aY="Error preloading route! ☝️";class a5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=Zr:this.parentRoute||ur(!1);let o=a?Zr:r?.path;o&&o!=="/"&&(o=NC(o));const l=r?.id||o;let u=a?Zr:Qi([this.parentRoute.id===Zr?"":this.parentRoute.id,l]);o===Zr&&(o="/"),u!==Zr&&(u=Qi(["/",u]));const d=u===Zr?"/":Qi([this.parentRoute.fullPath,o]);this._path=o,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class iY extends a5{constructor(t){super(t)}}function CC(e){const t=e.errorComponent??$g;return i.jsx(oY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class oY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function $g({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function sY({children:e,fallback:t=null}){return lY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function lY(){return W.useSyncExternalStore(cY,()=>!0,()=>!1)}function cY(){return()=>{}}var A0={exports:{}},T0={},k0={exports:{}},M0={};var lM;function uY(){if(lM)return M0;lM=1;var e=wh();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,o=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),b=j[0].inst,w=j[1];return o(function(){b.value=x,b.getSnapshot=g,d(b)&&w({inst:b})},[p,x,g]),a(function(){return d(b)&&w({inst:b}),p(function(){d(b)&&w({inst:b})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return M0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,M0}var cM;function dY(){return cM||(cM=1,k0.exports=uY()),k0.exports}var uM;function fY(){if(uM)return T0;uM=1;var e=wh(),t=dY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,o=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return T0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=o(null);if(j.current===null){var b={hasValue:!1,value:null};j.current=b}else b=j.current;j=u(function(){function N(k){if(!A){if(A=!0,E=k,k=g(k),x!==void 0&&b.hasValue){var O=b.value;if(x(O,k))return T=O}return T=k}if(O=T,r(E,k))return O;var M=g(k);return x!==void 0&&x(O,M)?(E=k,O):(E=k,T=M)}var A=!1,E,T,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var w=a(f,j[0],j[1]);return l(function(){b.hasValue=!0,b.value=w},[w]),d(w),w},T0}var dM;function hY(){return dM||(dM=1,A0.exports=fY()),A0.exports}var mY=hY();function pY(e,t=r=>r,n={}){const r=n.equal??vY;return mY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function vY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=fM(e);if(n.length!==fM(t).length)return!1;for(let r=0;r"u"?P0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=P0,P0)}function Ir(e){const t=y.useContext(i5());return e?.warn,t}function Sr(e){const t=Ir({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return pY(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const o=wa(r.current,e.select(a));return r.current=o,o}return e.select(a)}return a})}const Ig=y.createContext(void 0),gY=y.createContext(void 0);function pi(e){const t=y.useContext(e.from?gY:Ig);return Sr({select:r=>{const a=r.matches.find(o=>e.from?e.from===o.routeId:o.id===t);if(ur(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function OC(e){return pi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function EC(e){const{select:t,...n}=e;return pi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function AC(e){return pi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function TC(e){return pi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function oa(e){const t=Ir();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var wl=HL();const yY=St(wl),Sp=typeof window<"u"?y.useLayoutEffect:y.useEffect;function R0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function xY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([o])=>{t(o)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function bY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function wY(e,t){const n=Ir(),[r,a]=y.useState(!1),o=y.useRef(!1),l=bY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:b,resetScroll:w,viewTransition:N,children:A,target:E,disabled:T,style:C,className:k,onClick:O,onFocus:M,onMouseEnter:I,onMouseLeave:z,onTouchStart:D,ignoreBlocker:H,params:V,search:F,hash:G,state:L,mask:R,reloadDocument:U,unsafeRelative:K,from:te,_fromLocation:$,...B}=e,Y=Sr({select:ct=>ct.location.search,structuralSharing:!0}),ne=e.from,oe=y.useMemo(()=>({...e,from:ne}),[n,Y,ne,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),xe=y.useMemo(()=>n.buildLocation({...oe}),[n,oe]),ee=y.useMemo(()=>{if(T)return;let ct=xe.maskedLocation?xe.maskedLocation.url:xe.url,rt=!1;return n.origin&&(ct.startsWith(n.origin)?ct=n.history.createHref(ct.replace(n.origin,""))||"/":rt=!0),{href:ct,external:rt}},[T,xe.maskedLocation,xe.url,n.origin,n.history]),ae=y.useMemo(()=>{if(ee?.external)return ee.href;try{return new URL(m),m}catch{}},[m,ee]),Z=e.reloadDocument||ae?!1:p??n.options.defaultPreload,pe=g??n.options.defaultPreloadDelay??0,je=Sr({select:ct=>{if(ae)return!1;if(f?.exact){if(!uG(ct.location.pathname,xe.pathname,n.basepath))return!1}else{const rt=mv(ct.location.pathname,n.basepath),$n=mv(xe.pathname,n.basepath);if(!(rt.startsWith($n)&&(rt.length===$n.length||rt[$n.length]==="/")))return!1}return(f?.includeSearch??!0)&&!Js(ct.location.search,xe.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?ct.location.hash===xe.hash:!0}}),le=y.useCallback(()=>{n.preloadRoute({...oe}).catch(ct=>{console.warn(ct),console.warn(aY)})},[n,oe]),Re=y.useCallback(ct=>{ct?.isIntersecting&&le()},[le]);xY(l,Re,CY,{disabled:!!T||Z!=="viewport"}),y.useEffect(()=>{o.current||!T&&Z==="render"&&(le(),o.current=!0)},[T,le,Z]);const _e=ct=>{const rt=ct.currentTarget.getAttribute("target"),$n=E!==void 0?E:rt;if(!T&&!OY(ct)&&!ct.defaultPrevented&&(!$n||$n==="_self")&&ct.button===0){ct.preventDefault(),wl.flushSync(()=>{a(!0)});const gs=n.subscribe("onResolved",()=>{gs(),a(!1)});n.navigate({...oe,replace:j,resetScroll:w,hashScrollIntoView:x,startTransition:b,viewTransition:N,ignoreBlocker:H})}};if(ae)return{...B,ref:l,href:ae,...A&&{children:A},...E&&{target:E},...T&&{disabled:T},...C&&{style:C},...k&&{className:k},...O&&{onClick:O},...M&&{onFocus:M},...I&&{onMouseEnter:I},...z&&{onMouseLeave:z},...D&&{onTouchStart:D}};const me=ct=>{T||Z&&le()},ve=me,Le=ct=>{if(!(T||!Z))if(!pe)le();else{const rt=ct.target;if(Vd.has(rt))return;const $n=setTimeout(()=>{Vd.delete(rt),le()},pe);Vd.set(rt,$n)}},It=ct=>{if(T||!Z||!pe)return;const rt=ct.target,$n=Vd.get(rt);$n&&(clearTimeout($n),Vd.delete(rt))},Cn=je?Qs(u,{})??jY:D0,vr=je?D0:Qs(d,{})??D0,rr=[k,Cn.className,vr.className].filter(Boolean).join(" "),gr=(C||Cn.style||vr.style)&&{...C,...Cn.style,...vr.style};return{...B,...Cn,...vr,href:ee?.href,ref:l,onClick:Gd([O,_e]),onFocus:Gd([M,me]),onMouseEnter:Gd([I,Le]),onMouseLeave:Gd([z,It]),onTouchStart:Gd([D,ve]),disabled:!!T,target:E,...gr&&{style:gr},...rr&&{className:rr},...T&&SY,...je&&_Y,...r&&NY}}const D0={},jY={className:"active"},SY={role:"link","aria-disabled":!0},_Y={"data-status":"active","aria-current":"page"},NY={"data-transitioning":"transitioning"},Vd=new WeakMap,CY={rootMargin:"100px"},Gd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},kC=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:o,...l}=wY(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:o},u)});function OY(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class EY extends a5{constructor(t){super(t),this.useMatch=n=>pi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>TC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>AC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>EC({...n,from:this.id}),this.useLoaderData=n=>OC({...n,from:this.id}),this.useNavigate=()=>oa({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(kC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function fr(e){return new EY(e)}class AY extends iY{constructor(t){super(t),this.useMatch=n=>pi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>TC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>AC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>EC({...n,from:this.id}),this.useLoaderData=n=>OC({...n,from:this.id}),this.useNavigate=()=>oa({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(kC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function TY(e){return new AY(e)}function hM(e){return typeof e=="object"?new mM(e,{silent:!0}).createRoute(e):new mM(e,{silent:!0}).createRoute}class mM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=fr(r);return a.isRoot=!1,a},this.silent=n?.silent}}class pM{constructor(t){this.useMatch=n=>pi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>TC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>AC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>EC({...n,from:this.options.id}),this.useLoaderData=n=>OC({...n,from:this.options.id}),this.useNavigate=()=>{const n=Ir();return oa({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function vM(e){return typeof e=="object"?new pM(e):t=>new pM({id:e,...t})}function kY(){const e=Ir(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:o}=Sr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=R0(o),u=o||n||a,d=R0(u),f=o||a,m=R0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Ko(e.latestLocation.href)!==Ko(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),Sp(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),Sp(()=>{l&&!o&&e.emit({type:"onLoad",...el(e.state)})},[l,e,o]),Sp(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...el(e.state)})},[f,m,e]),Sp(()=>{d&&!u&&(e.emit({type:"onResolved",...el(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),LG(e))},[u,d,e]),null}function MY(e){const t=Sr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(CC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Fa(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Fa(n))return e.fallback?.(n);throw n},children:e.children})}function PY(){return i.jsx("p",{children:"Not Found"})}function kc(e){return i.jsx(i.Fragment,{children:e.children})}function o5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx(PY,{})}function RY({children:e}){const t=Ir();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function DY(){const e=Ir();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||f_)(e.latestLocation),r=n!==f_(e.latestLocation)?n:void 0,a={storageKey:pv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(RY,{children:`(${GL.toString()})(${JSON.stringify(a)})`})}const s5=y.memo(function({matchId:t}){const n=Ir(),r=Sr({select:N=>{const A=N.matches.find(E=>E.id===t);return ur(A),{routeId:A.routeId,ssr:A.ssr,_displayPending:A._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],o=a.options.pendingComponent??n.options.defaultPendingComponent,l=o?i.jsx(o,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??o??(a.options.errorComponent?.preload||m))?y.Suspense:kc,g=u?CC:kc,x=f?MY:kc,j=Sr({select:N=>N.loadedAt}),b=Sr({select:N=>{const A=N.matches.findIndex(E=>E.id===t);return N.matches[A-1]?.routeId}}),w=a.isRoot?a.options.shellComponent??kc:kc;return i.jsxs(w,{children:[i.jsx(Ig.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||$g,onCatch:(N,A)=>{if(Fa(N))throw N;d?.(N,A)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(sY,{fallback:l,children:i.jsx(gM,{matchId:t})}):i.jsx(gM,{matchId:t})})})})}),b===Zr&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx($Y,{}),i.jsx(DY,{})]}):null]})});function $Y(){const e=Ir(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...el(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const gM=y.memo(function({matchId:t}){const n=Ir(),{match:r,key:a,routeId:o}=Sr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[o],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(MC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=Qc();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return ur(Fa(r.error)),o5(n,l,r.error);if(r.status==="redirected")throw ur(oi(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||$g;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),MC=y.memo(function(){const t=Ir(),n=y.useContext(Ig),r=Sr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],o=Sr({select:f=>{const p=f.matches.find(g=>g.id===n);return ur(p),p.globalNotFound}}),l=Sr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(o)return o5(t,a,void 0);if(!l)return null;const d=i.jsx(s5,{matchId:l});return r===Zr?i.jsx(y.Suspense,{fallback:u,children:d}):d});function IY(){const e=Ir(),n=e.routesById[Zr].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?kc:y.Suspense,o=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(kY,{}),i.jsx(LY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:o}):o}function LY(){const e=Ir(),t=Sr({select:a=>a.matches[0]?.id}),n=Sr({select:a=>a.loadedAt}),r=t?i.jsx(s5,{matchId:t}):null;return i.jsx(Ig.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(CC,{getResetKey:()=>n,errorComponent:$g,onCatch:a=>{a.message||a.toString()},children:r})})}function BY(){const e=Ir();return Sr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:o,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:o})},[e])}const zY=e=>new qY(e);class qY extends JG{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=hM,globalThis.createLazyFileRoute=vM):typeof window<"u"&&(window.createFileRoute=hM,window.createLazyFileRoute=vM);function FY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=i5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function UY({router:e,...t}){return i.jsx(FY,{router:e,...t,children:i.jsx(IY,{})})}function l5(e,t){return function(){return e.apply(t,arguments)}}const{toString:HY}=Object.prototype,{getPrototypeOf:PC}=Object,{iterator:Lg,toStringTag:c5}=Symbol,Bg=(e=>t=>{const n=HY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Va=e=>(e=e.toLowerCase(),t=>Bg(t)===e),zg=e=>t=>typeof t===e,{isArray:Ru}=Array,nu=zg("undefined");function jh(e){return e!==null&&!nu(e)&&e.constructor!==null&&!nu(e.constructor)&&Mr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const u5=Va("ArrayBuffer");function WY(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&u5(e.buffer),t}const VY=zg("string"),Mr=zg("function"),d5=zg("number"),Sh=e=>e!==null&&typeof e=="object",GY=e=>e===!0||e===!1,ev=e=>{if(Bg(e)!=="object")return!1;const t=PC(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(c5 in e)&&!(Lg in e)},YY=e=>{if(!Sh(e)||jh(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},KY=Va("Date"),XY=Va("File"),ZY=Va("Blob"),QY=Va("FileList"),JY=e=>Sh(e)&&Mr(e.pipe),eK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Mr(e.append)&&((t=Bg(e))==="formdata"||t==="object"&&Mr(e.toString)&&e.toString()==="[object FormData]"))},tK=Va("URLSearchParams"),[nK,rK,aK,iK]=["ReadableStream","Request","Response","Headers"].map(Va),oK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function _h(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),Ru(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Vs=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,h5=e=>!nu(e)&&e!==Vs;function m_(){const{caseless:e,skipUndefined:t}=h5(this)&&this||{},n={},r=(a,o)=>{const l=e&&f5(n,o)||o;ev(n[l])&&ev(a)?n[l]=m_(n[l],a):ev(a)?n[l]=m_({},a):Ru(a)?n[l]=a.slice():(!t||!nu(a))&&(n[l]=a)};for(let a=0,o=arguments.length;a(_h(t,(a,o)=>{n&&Mr(a)?e[o]=l5(a,n):e[o]=a},{allOwnKeys:r}),e),lK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),cK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},uK=(e,t,n,r)=>{let a,o,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),o=a.length;o-- >0;)l=a[o],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&PC(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},dK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},fK=e=>{if(!e)return null;if(Ru(e))return e;let t=e.length;if(!d5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},hK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&PC(Uint8Array)),mK=(e,t)=>{const r=(e&&e[Lg]).call(e);let a;for(;(a=r.next())&&!a.done;){const o=a.value;t.call(e,o[0],o[1])}},pK=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},vK=Va("HTMLFormElement"),gK=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),yM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),yK=Va("RegExp"),m5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};_h(n,(a,o)=>{let l;(l=t(a,o,e))!==!1&&(r[o]=l||a)}),Object.defineProperties(e,r)},xK=e=>{m5(e,(t,n)=>{if(Mr(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Mr(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},bK=(e,t)=>{const n={},r=a=>{a.forEach(o=>{n[o]=!0})};return Ru(e)?r(e):r(String(e).split(t)),n},wK=()=>{},jK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function SK(e){return!!(e&&Mr(e.append)&&e[c5]==="FormData"&&e[Lg])}const _K=e=>{const t=new Array(10),n=(r,a)=>{if(Sh(r)){if(t.indexOf(r)>=0)return;if(jh(r))return r;if(!("toJSON"in r)){t[a]=r;const o=Ru(r)?[]:{};return _h(r,(l,u)=>{const d=n(l,a+1);!nu(d)&&(o[u]=d)}),t[a]=void 0,o}}return r};return n(e,0)},NK=Va("AsyncFunction"),CK=e=>e&&(Sh(e)||Mr(e))&&Mr(e.then)&&Mr(e.catch),p5=((e,t)=>e?setImmediate:t?((n,r)=>(Vs.addEventListener("message",({source:a,data:o})=>{a===Vs&&o===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Vs.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Mr(Vs.postMessage)),OK=typeof queueMicrotask<"u"?queueMicrotask.bind(Vs):typeof process<"u"&&process.nextTick||p5,EK=e=>e!=null&&Mr(e[Lg]),fe={isArray:Ru,isArrayBuffer:u5,isBuffer:jh,isFormData:eK,isArrayBufferView:WY,isString:VY,isNumber:d5,isBoolean:GY,isObject:Sh,isPlainObject:ev,isEmptyObject:YY,isReadableStream:nK,isRequest:rK,isResponse:aK,isHeaders:iK,isUndefined:nu,isDate:KY,isFile:XY,isBlob:ZY,isRegExp:yK,isFunction:Mr,isStream:JY,isURLSearchParams:tK,isTypedArray:hK,isFileList:QY,forEach:_h,merge:m_,extend:sK,trim:oK,stripBOM:lK,inherits:cK,toFlatObject:uK,kindOf:Bg,kindOfTest:Va,endsWith:dK,toArray:fK,forEachEntry:mK,matchAll:pK,isHTMLForm:vK,hasOwnProperty:yM,hasOwnProp:yM,reduceDescriptors:m5,freezeMethods:xK,toObjectSet:bK,toCamelCase:gK,noop:wK,toFiniteNumber:jK,findKey:f5,global:Vs,isContextDefined:h5,isSpecCompliantForm:SK,toJSONObject:_K,isAsyncFn:NK,isThenable:CK,setImmediate:p5,asap:OK,isIterable:EK};function Xe(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}fe.inherits(Xe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:fe.toJSONObject(this.config),code:this.code,status:this.status}}});const v5=Xe.prototype,g5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{g5[e]={value:e}});Object.defineProperties(Xe,g5);Object.defineProperty(v5,"isAxiosError",{value:!0});Xe.from=(e,t,n,r,a,o)=>{const l=Object.create(v5);fe.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return Xe.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",o&&Object.assign(l,o),l};const AK=null;function p_(e){return fe.isPlainObject(e)||fe.isArray(e)}function y5(e){return fe.endsWith(e,"[]")?e.slice(0,-2):e}function xM(e,t,n){return e?e.concat(t).map(function(a,o){return a=y5(a),!n&&o?"["+a+"]":a}).join(n?".":""):t}function TK(e){return fe.isArray(e)&&!e.some(p_)}const kK=fe.toFlatObject(fe,{},null,function(t){return/^is[A-Z]/.test(t)});function qg(e,t,n){if(!fe.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=fe.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(b,w){return!fe.isUndefined(w[b])});const r=n.metaTokens,a=n.visitor||m,o=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&fe.isSpecCompliantForm(t);if(!fe.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(fe.isDate(j))return j.toISOString();if(fe.isBoolean(j))return j.toString();if(!d&&fe.isBlob(j))throw new Xe("Blob is not supported. Use a Buffer instead.");return fe.isArrayBuffer(j)||fe.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,b,w){let N=j;if(j&&!w&&typeof j=="object"){if(fe.endsWith(b,"{}"))b=r?b:b.slice(0,-2),j=JSON.stringify(j);else if(fe.isArray(j)&&TK(j)||(fe.isFileList(j)||fe.endsWith(b,"[]"))&&(N=fe.toArray(j)))return b=y5(b),N.forEach(function(E,T){!(fe.isUndefined(E)||E===null)&&t.append(l===!0?xM([b],T,o):l===null?b:b+"[]",f(E))}),!1}return p_(j)?!0:(t.append(xM(w,b,o),f(j)),!1)}const p=[],g=Object.assign(kK,{defaultVisitor:m,convertValue:f,isVisitable:p_});function x(j,b){if(!fe.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+b.join("."));p.push(j),fe.forEach(j,function(N,A){(!(fe.isUndefined(N)||N===null)&&a.call(t,N,fe.isString(A)?A.trim():A,b,g))===!0&&x(N,b?b.concat(A):[A])}),p.pop()}}if(!fe.isObject(e))throw new TypeError("data must be an object");return x(e),t}function bM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function RC(e,t){this._pairs=[],e&&qg(e,this,t)}const x5=RC.prototype;x5.append=function(t,n){this._pairs.push([t,n])};x5.toString=function(t){const n=t?function(r){return t.call(this,r,bM)}:bM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function MK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function b5(e,t,n){if(!t)return e;const r=n&&n.encode||MK;fe.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let o;if(a?o=a(t,n):o=fe.isURLSearchParams(t)?t.toString():new RC(t,n).toString(r),o){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class wM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){fe.forEach(this.handlers,function(r){r!==null&&t(r)})}}const w5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},PK=typeof URLSearchParams<"u"?URLSearchParams:RC,RK=typeof FormData<"u"?FormData:null,DK=typeof Blob<"u"?Blob:null,$K={isBrowser:!0,classes:{URLSearchParams:PK,FormData:RK,Blob:DK},protocols:["http","https","file","blob","url","data"]},DC=typeof window<"u"&&typeof document<"u",v_=typeof navigator=="object"&&navigator||void 0,IK=DC&&(!v_||["ReactNative","NativeScript","NS"].indexOf(v_.product)<0),LK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",BK=DC&&window.location.href||"http://localhost",zK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:DC,hasStandardBrowserEnv:IK,hasStandardBrowserWebWorkerEnv:LK,navigator:v_,origin:BK},Symbol.toStringTag,{value:"Module"})),cr={...zK,...$K};function qK(e,t){return qg(e,new cr.classes.URLSearchParams,{visitor:function(n,r,a,o){return cr.isNode&&fe.isBuffer(n)?(this.append(r,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function FK(e){return fe.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function UK(e){const t={},n=Object.keys(e);let r;const a=n.length;let o;for(r=0;r=n.length;return l=!l&&fe.isArray(a)?a.length:l,d?(fe.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!fe.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],o)&&fe.isArray(a[l])&&(a[l]=UK(a[l])),!u)}if(fe.isFormData(e)&&fe.isFunction(e.entries)){const n={};return fe.forEachEntry(e,(r,a)=>{t(FK(r),a,n,0)}),n}return null}function HK(e,t,n){if(fe.isString(e))try{return(t||JSON.parse)(e),fe.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Nh={transitional:w5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,o=fe.isObject(t);if(o&&fe.isHTMLForm(t)&&(t=new FormData(t)),fe.isFormData(t))return a?JSON.stringify(j5(t)):t;if(fe.isArrayBuffer(t)||fe.isBuffer(t)||fe.isStream(t)||fe.isFile(t)||fe.isBlob(t)||fe.isReadableStream(t))return t;if(fe.isArrayBufferView(t))return t.buffer;if(fe.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(o){if(r.indexOf("application/x-www-form-urlencoded")>-1)return qK(t,this.formSerializer).toString();if((u=fe.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return qg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return o||a?(n.setContentType("application/json",!1),HK(t)):t}],transformResponse:[function(t){const n=this.transitional||Nh.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(fe.isResponse(t)||fe.isReadableStream(t))return t;if(t&&fe.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?Xe.from(u,Xe.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:cr.classes.FormData,Blob:cr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};fe.forEach(["delete","get","head","post","put","patch"],e=>{Nh.headers[e]={}});const WK=fe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),VK=e=>{const t={};let n,r,a;return e&&e.split(` -`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&WK[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},jM=Symbol("internals");function Yd(e){return e&&String(e).trim().toLowerCase()}function tv(e){return e===!1||e==null?e:fe.isArray(e)?e.map(tv):String(e)}function GK(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const YK=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function $0(e,t,n,r,a){if(fe.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!fe.isString(t)){if(fe.isString(r))return t.indexOf(r)!==-1;if(fe.isRegExp(r))return r.test(t)}}function KK(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function XK(e,t){const n=fe.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,o,l){return this[r].call(this,t,a,o,l)},configurable:!0})})}let Pr=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function o(u,d,f){const m=Yd(d);if(!m)throw new Error("header name must be a non-empty string");const p=fe.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=tv(u))}const l=(u,d)=>fe.forEach(u,(f,m)=>o(f,m,d));if(fe.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(fe.isString(t)&&(t=t.trim())&&!YK(t))l(VK(t),n);else if(fe.isObject(t)&&fe.isIterable(t)){let u={},d,f;for(const m of t){if(!fe.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?fe.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&o(n,t,r);return this}get(t,n){if(t=Yd(t),t){const r=fe.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return GK(a);if(fe.isFunction(n))return n.call(this,a,r);if(fe.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Yd(t),t){const r=fe.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||$0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function o(l){if(l=Yd(l),l){const u=fe.findKey(r,l);u&&(!n||$0(r,r[u],u,n))&&(delete r[u],a=!0)}}return fe.isArray(t)?t.forEach(o):o(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const o=n[r];(!t||$0(this,this[o],o,t,!0))&&(delete this[o],a=!0)}return a}normalize(t){const n=this,r={};return fe.forEach(this,(a,o)=>{const l=fe.findKey(r,o);if(l){n[l]=tv(a),delete n[o];return}const u=t?KK(o):String(o).trim();u!==o&&delete n[o],n[u]=tv(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return fe.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&fe.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[jM]=this[jM]={accessors:{}}).accessors,a=this.prototype;function o(l){const u=Yd(l);r[u]||(XK(a,l),r[u]=!0)}return fe.isArray(t)?t.forEach(o):o(t),this}};Pr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);fe.reduceDescriptors(Pr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});fe.freezeMethods(Pr);function I0(e,t){const n=this||Nh,r=t||n,a=Pr.from(r.headers);let o=r.data;return fe.forEach(e,function(u){o=u.call(n,o,a.normalize(),t?t.status:void 0)}),a.normalize(),o}function S5(e){return!!(e&&e.__CANCEL__)}function Du(e,t,n){Xe.call(this,e??"canceled",Xe.ERR_CANCELED,t,n),this.name="CanceledError"}fe.inherits(Du,Xe,{__CANCEL__:!0});function _5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Xe("Request failed with status code "+n.status,[Xe.ERR_BAD_REQUEST,Xe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function ZK(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function QK(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,o=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[o];l||(l=f),n[a]=d,r[a]=f;let p=o,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===o&&(o=(o+1)%e),f-l{n=m,a=null,o&&(clearTimeout(o),o=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,o||(o=setTimeout(()=>{o=null,l(a)},r-p)))},()=>a&&l(a)]}const yv=(e,t,n=3)=>{let r=0;const a=QK(50,250);return JK(o=>{const l=o.loaded,u=o.lengthComputable?o.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:o,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},SM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},_M=e=>(...t)=>fe.asap(()=>e(...t)),eX=cr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,cr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(cr.origin),cr.navigator&&/(msie|trident)/i.test(cr.navigator.userAgent)):()=>!0,tX=cr.hasStandardBrowserEnv?{write(e,t,n,r,a,o,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];fe.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),fe.isString(r)&&u.push(`path=${r}`),fe.isString(a)&&u.push(`domain=${a}`),o===!0&&u.push("secure"),fe.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function nX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function rX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function N5(e,t,n){let r=!nX(t);return e&&(r||n==!1)?rX(e,t):t}const NM=e=>e instanceof Pr?{...e}:e;function cl(e,t){t=t||{};const n={};function r(f,m,p,g){return fe.isPlainObject(f)&&fe.isPlainObject(m)?fe.merge.call({caseless:g},f,m):fe.isPlainObject(m)?fe.merge({},m):fe.isArray(m)?m.slice():m}function a(f,m,p,g){if(fe.isUndefined(m)){if(!fe.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function o(f,m){if(!fe.isUndefined(m))return r(void 0,m)}function l(f,m){if(fe.isUndefined(m)){if(!fe.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:o,method:o,data:o,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(NM(f),NM(m),p,!0)};return fe.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);fe.isUndefined(g)&&p!==u||(n[m]=g)}),n}const C5=e=>{const t=cl({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:o,headers:l,auth:u}=t;if(t.headers=l=Pr.from(l),t.url=b5(N5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),fe.isFormData(n)){if(cr.hasStandardBrowserEnv||cr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(fe.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(cr.hasStandardBrowserEnv&&(r&&fe.isFunction(r)&&(r=r(t)),r||r!==!1&&eX(t.url))){const d=a&&o&&tX.read(o);d&&l.set(a,d)}return t},aX=typeof XMLHttpRequest<"u",iX=aX&&function(e){return new Promise(function(n,r){const a=C5(e);let o=a.data;const l=Pr.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function b(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let w=new XMLHttpRequest;w.open(a.method.toUpperCase(),a.url,!0),w.timeout=a.timeout;function N(){if(!w)return;const E=Pr.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:E,config:e,request:w};_5(function(O){n(O),b()},function(O){r(O),b()},C),w=null}"onloadend"in w?w.onloadend=N:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(N)},w.onabort=function(){w&&(r(new Xe("Request aborted",Xe.ECONNABORTED,e,w)),w=null)},w.onerror=function(T){const C=T&&T.message?T.message:"Network Error",k=new Xe(C,Xe.ERR_NETWORK,e,w);k.event=T||null,r(k),w=null},w.ontimeout=function(){let T=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||w5;a.timeoutErrorMessage&&(T=a.timeoutErrorMessage),r(new Xe(T,C.clarifyTimeoutError?Xe.ETIMEDOUT:Xe.ECONNABORTED,e,w)),w=null},o===void 0&&l.setContentType(null),"setRequestHeader"in w&&fe.forEach(l.toJSON(),function(T,C){w.setRequestHeader(C,T)}),fe.isUndefined(a.withCredentials)||(w.withCredentials=!!a.withCredentials),u&&u!=="json"&&(w.responseType=a.responseType),f&&([g,j]=yv(f,!0),w.addEventListener("progress",g)),d&&w.upload&&([p,x]=yv(d),w.upload.addEventListener("progress",p),w.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=E=>{w&&(r(!E||E.type?new Du(null,e,w):E),w.abort(),w=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const A=ZK(a.url);if(A&&cr.protocols.indexOf(A)===-1){r(new Xe("Unsupported protocol "+A+":",Xe.ERR_BAD_REQUEST,e));return}w.send(o||null)})},oX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const o=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof Xe?m:new Du(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,o(new Xe(`timeout ${t} of ms exceeded`,Xe.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(o):f.removeEventListener("abort",o)}),e=null)};e.forEach(f=>f.addEventListener("abort",o));const{signal:d}=r;return d.unsubscribe=()=>fe.asap(u),d}},sX=function*(e,t){let n=e.byteLength;if(n{const a=lX(e,t);let o=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=o+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},OM=64*1024,{isFunction:_p}=fe,uX=(({Request:e,Response:t})=>({Request:e,Response:t}))(fe.global),{ReadableStream:EM,TextEncoder:AM}=fe.global,TM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},dX=e=>{e=fe.merge.call({skipUndefined:!0},uX,e);const{fetch:t,Request:n,Response:r}=e,a=t?_p(t):typeof fetch=="function",o=_p(n),l=_p(r);if(!a)return!1;const u=a&&_p(EM),d=a&&(typeof AM=="function"?(j=>b=>j.encode(b))(new AM):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=o&&u&&TM(()=>{let j=!1;const b=new n(cr.origin,{body:new EM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!b}),m=l&&u&&TM(()=>fe.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(b,w)=>{let N=b&&b[j];if(N)return N.call(b);throw new Xe(`Response type '${j}' is not supported`,Xe.ERR_NOT_SUPPORT,w)})});const g=async j=>{if(j==null)return 0;if(fe.isBlob(j))return j.size;if(fe.isSpecCompliantForm(j))return(await new n(cr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(fe.isArrayBufferView(j)||fe.isArrayBuffer(j))return j.byteLength;if(fe.isURLSearchParams(j)&&(j=j+""),fe.isString(j))return(await d(j)).byteLength},x=async(j,b)=>{const w=fe.toFiniteNumber(j.getContentLength());return w??g(b)};return async j=>{let{url:b,method:w,data:N,signal:A,cancelToken:E,timeout:T,onDownloadProgress:C,onUploadProgress:k,responseType:O,headers:M,withCredentials:I="same-origin",fetchOptions:z}=C5(j),D=t||fetch;O=O?(O+"").toLowerCase():"text";let H=oX([A,E&&E.toAbortSignal()],T),V=null;const F=H&&H.unsubscribe&&(()=>{H.unsubscribe()});let G;try{if(k&&f&&w!=="get"&&w!=="head"&&(G=await x(M,N))!==0){let $=new n(b,{method:"POST",body:N,duplex:"half"}),B;if(fe.isFormData(N)&&(B=$.headers.get("content-type"))&&M.setContentType(B),$.body){const[Y,ne]=SM(G,yv(_M(k)));N=CM($.body,OM,Y,ne)}}fe.isString(I)||(I=I?"include":"omit");const L=o&&"credentials"in n.prototype,R={...z,signal:H,method:w.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:L?I:void 0};V=o&&new n(b,R);let U=await(o?D(V,z):D(b,R));const K=m&&(O==="stream"||O==="response");if(m&&(C||K&&F)){const $={};["status","statusText","headers"].forEach(oe=>{$[oe]=U[oe]});const B=fe.toFiniteNumber(U.headers.get("content-length")),[Y,ne]=C&&SM(B,yv(_M(C),!0))||[];U=new r(CM(U.body,OM,Y,()=>{ne&&ne(),F&&F()}),$)}O=O||"text";let te=await p[fe.findKey(p,O)||"text"](U,j);return!K&&F&&F(),await new Promise(($,B)=>{_5($,B,{data:te,headers:Pr.from(U.headers),status:U.status,statusText:U.statusText,config:j,request:V})})}catch(L){throw F&&F(),L&&L.name==="TypeError"&&/Load failed|fetch/i.test(L.message)?Object.assign(new Xe("Network Error",Xe.ERR_NETWORK,j,V),{cause:L.cause||L}):Xe.from(L,L&&L.code,j,V)}}},fX=new Map,O5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,o=[r,a,n];let l=o.length,u=l,d,f,m=fX;for(;u--;)d=o[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:dX(t)),m=f;return f};O5();const $C={http:AK,xhr:iX,fetch:{get:O5}};fe.forEach($C,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const kM=e=>`- ${e}`,hX=e=>fe.isFunction(e)||e===null||e===!1;function mX(e,t){e=fe.isArray(e)?e:[e];const{length:n}=e;let r,a;const o={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : -`+l.map(kM).join(` -`):" "+kM(l[0]):"as no adapter specified";throw new Xe("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const E5={getAdapter:mX,adapters:$C};function L0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Du(null,e)}function MM(e){return L0(e),e.headers=Pr.from(e.headers),e.data=I0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),E5.getAdapter(e.adapter||Nh.adapter,e)(e).then(function(r){return L0(e),r.data=I0.call(e,e.transformResponse,r),r.headers=Pr.from(r.headers),r},function(r){return S5(r)||(L0(e),r&&r.response&&(r.response.data=I0.call(e,e.transformResponse,r.response),r.response.headers=Pr.from(r.response.headers))),Promise.reject(r)})}const A5="1.13.2",Fg={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Fg[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const PM={};Fg.transitional=function(t,n,r){function a(o,l){return"[Axios v"+A5+"] Transitional option '"+o+"'"+l+(r?". "+r:"")}return(o,l,u)=>{if(t===!1)throw new Xe(a(l," has been removed"+(n?" in "+n:"")),Xe.ERR_DEPRECATED);return n&&!PM[l]&&(PM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,l,u):!0}};Fg.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function pX(e,t,n){if(typeof e!="object")throw new Xe("options must be an object",Xe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const o=r[a],l=t[o];if(l){const u=e[o],d=u===void 0||l(u,o,e);if(d!==!0)throw new Xe("option "+o+" must be "+d,Xe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Xe("Unknown option "+o,Xe.ERR_BAD_OPTION)}}const nv={assertOptions:pX,validators:Fg},ei=nv.validators;let tl=class{constructor(t){this.defaults=t||{},this.interceptors={request:new wM,response:new wM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const o=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=cl(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:o}=n;r!==void 0&&nv.assertOptions(r,{silentJSONParsing:ei.transitional(ei.boolean),forcedJSONParsing:ei.transitional(ei.boolean),clarifyTimeoutError:ei.transitional(ei.boolean)},!1),a!=null&&(fe.isFunction(a)?n.paramsSerializer={serialize:a}:nv.assertOptions(a,{encode:ei.function,serialize:ei.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),nv.assertOptions(n,{baseUrl:ei.spelling("baseURL"),withXsrfToken:ei.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=o&&fe.merge(o.common,o[n.method]);o&&fe.forEach(["delete","get","head","post","put","patch","common"],j=>{delete o[j]}),n.headers=Pr.concat(l,o);const u=[];let d=!0;this.interceptors.request.forEach(function(b){typeof b.runWhen=="function"&&b.runWhen(n)===!1||(d=d&&b.synchronous,u.unshift(b.fulfilled,b.rejected))});const f=[];this.interceptors.response.forEach(function(b){f.push(b.fulfilled,b.rejected)});let m,p=0,g;if(!d){const j=[MM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](a);r._listeners=null}),this.promise.then=a=>{let o;const l=new Promise(u=>{r.subscribe(u),o=u}).then(a);return l.cancel=function(){r.unsubscribe(o)},l},t(function(o,l,u){r.reason||(r.reason=new Du(o,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new T5(function(a){t=a}),cancel:t}}};function gX(e){return function(n){return e.apply(null,n)}}function yX(e){return fe.isObject(e)&&e.isAxiosError===!0}const g_={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(g_).forEach(([e,t])=>{g_[t]=e});function k5(e){const t=new tl(e),n=l5(tl.prototype.request,t);return fe.extend(n,tl.prototype,t,{allOwnKeys:!0}),fe.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return k5(cl(e,a))},n}const ln=k5(Nh);ln.Axios=tl;ln.CanceledError=Du;ln.CancelToken=vX;ln.isCancel=S5;ln.VERSION=A5;ln.toFormData=qg;ln.AxiosError=Xe;ln.Cancel=ln.CanceledError;ln.all=function(t){return Promise.all(t)};ln.spread=gX;ln.isAxiosError=yX;ln.mergeConfig=cl;ln.AxiosHeaders=Pr;ln.formToJSON=e=>j5(fe.isHTMLForm(e)?new FormData(e):e);ln.getAdapter=E5.getAdapter;ln.HttpStatusCode=g_;ln.default=ln;const{Axios:fAe,AxiosError:hAe,CanceledError:mAe,isCancel:pAe,CancelToken:vAe,VERSION:gAe,all:yAe,Cancel:xAe,isAxiosError:bAe,spread:wAe,toFormData:jAe,AxiosHeaders:SAe,HttpStatusCode:_Ae,formToJSON:NAe,getAdapter:CAe,mergeConfig:OAe}=ln;function M5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),P5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),xv="-",RM=[],wX="arbitrary..",jX=e=>{const t=_X(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return SX(l);const u=l.split(xv),d=u[0]===""&&u.length>1?1:0;return R5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?xX(f,d):d:f||RM}return n[l]||RM}}},R5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],o=n.nextPart.get(a);if(o){const f=R5(e,t+1,o);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(xv):e.slice(t).join(xv),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?wX+r:void 0})(),_X=e=>{const{theme:t,classGroups:n}=e;return NX(n,t)},NX=(e,t)=>{const n=P5();for(const r in e){const a=e[r];IC(a,n,r,t)}return n},IC=(e,t,n,r)=>{const a=e.length;for(let o=0;o{if(typeof e=="string"){OX(e,t,n);return}if(typeof e=="function"){EX(e,t,n,r);return}AX(e,t,n,r)},OX=(e,t,n)=>{const r=e===""?t:D5(t,e);r.classGroupId=n},EX=(e,t,n,r)=>{if(TX(e)){IC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(bX(n,e))},AX=(e,t,n,r)=>{const a=Object.entries(e),o=a.length;for(let l=0;l{let n=e;const r=t.split(xv),a=r.length;for(let o=0;o"isThemeGetter"in e&&e.isThemeGetter===!0,kX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(o,l)=>{n[o]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(o){let l=n[o];if(l!==void 0)return l;if((l=r[o])!==void 0)return a(o,l),l},set(o,l){o in n?n[o]=l:a(o,l)}}},y_="!",DM=":",MX=[],$M=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),PX=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const o=[];let l=0,u=0,d=0,f;const m=a.length;for(let b=0;bd?f-d:void 0;return $M(o,x,g,j)};if(t){const a=t+DM,o=r;r=l=>l.startsWith(a)?o(l.slice(a.length)):$M(MX,!1,l,void 0,!0)}if(n){const a=r;r=o=>n({className:o,parseClassName:a})}return r},RX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let o=0;o0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},DX=e=>({cache:kX(e.cacheSize),parseClassName:PX(e),sortModifiers:RX(e),...jX(e)}),$X=/\s+/,IX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:o}=t,l=[],u=e.trim().split($X);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:b}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let w=!!b,N=r(w?j.substring(0,b):j);if(!N){if(!w){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}w=!1}const A=g.length===0?"":g.length===1?g[0]:o(g).join(":"),E=x?A+y_:A,T=E+N;if(l.indexOf(T)>-1)continue;l.push(T);const C=a(N,w);for(let k=0;k0?" "+d:d)}return d},LX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,o;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=DX(f),r=n.cache.get,a=n.cache.set,o=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=IX(d,n);return a(d,m),m};return o=l,(...d)=>o(LX(...d))},zX=[],En=e=>{const t=n=>n[e]||zX;return t.isThemeGetter=!0,t},I5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,L5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,qX=/^\d+\/\d+$/,FX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,UX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,HX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,WX=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,VX=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,wc=e=>qX.test(e),nt=e=>!!e&&!Number.isNaN(Number(e)),Lo=e=>!!e&&Number.isInteger(Number(e)),B0=e=>e.endsWith("%")&&nt(e.slice(0,-1)),Fi=e=>FX.test(e),GX=()=>!0,YX=e=>UX.test(e)&&!HX.test(e),B5=()=>!1,KX=e=>WX.test(e),XX=e=>VX.test(e),ZX=e=>!Te(e)&&!ke(e),QX=e=>$u(e,F5,B5),Te=e=>I5.test(e),Ls=e=>$u(e,U5,YX),z0=e=>$u(e,rZ,nt),IM=e=>$u(e,z5,B5),JX=e=>$u(e,q5,XX),Np=e=>$u(e,H5,KX),ke=e=>L5.test(e),Kd=e=>Iu(e,U5),eZ=e=>Iu(e,aZ),LM=e=>Iu(e,z5),tZ=e=>Iu(e,F5),nZ=e=>Iu(e,q5),Cp=e=>Iu(e,H5,!0),$u=(e,t,n)=>{const r=I5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Iu=(e,t,n=!1)=>{const r=L5.exec(e);return r?r[1]?t(r[1]):n:!1},z5=e=>e==="position"||e==="percentage",q5=e=>e==="image"||e==="url",F5=e=>e==="length"||e==="size"||e==="bg-size",U5=e=>e==="length",rZ=e=>e==="number",aZ=e=>e==="family-name",H5=e=>e==="shadow",iZ=()=>{const e=En("color"),t=En("font"),n=En("text"),r=En("font-weight"),a=En("tracking"),o=En("leading"),l=En("breakpoint"),u=En("container"),d=En("spacing"),f=En("radius"),m=En("shadow"),p=En("inset-shadow"),g=En("text-shadow"),x=En("drop-shadow"),j=En("blur"),b=En("perspective"),w=En("aspect"),N=En("ease"),A=En("animate"),E=()=>["auto","avoid","all","avoid-page","page","left","right","column"],T=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...T(),ke,Te],k=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto","contain","none"],M=()=>[ke,Te,d],I=()=>[wc,"full","auto",...M()],z=()=>[Lo,"none","subgrid",ke,Te],D=()=>["auto",{span:["full",Lo,ke,Te]},Lo,ke,Te],H=()=>[Lo,"auto",ke,Te],V=()=>["auto","min","max","fr",ke,Te],F=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...M()],R=()=>[wc,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],U=()=>[e,ke,Te],K=()=>[...T(),LM,IM,{position:[ke,Te]}],te=()=>["no-repeat",{repeat:["","x","y","space","round"]}],$=()=>["auto","cover","contain",tZ,QX,{size:[ke,Te]}],B=()=>[B0,Kd,Ls],Y=()=>["","none","full",f,ke,Te],ne=()=>["",nt,Kd,Ls],oe=()=>["solid","dashed","dotted","double"],xe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[nt,B0,LM,IM],ae=()=>["","none",j,ke,Te],Z=()=>["none",nt,ke,Te],pe=()=>["none",nt,ke,Te],je=()=>[nt,ke,Te],le=()=>[wc,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fi],breakpoint:[Fi],color:[GX],container:[Fi],"drop-shadow":[Fi],ease:["in","out","in-out"],font:[ZX],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fi],shadow:[Fi],spacing:["px",nt],text:[Fi],"text-shadow":[Fi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",wc,Te,ke,w]}],container:["container"],columns:[{columns:[nt,Te,ke,u]}],"break-after":[{"break-after":E()}],"break-before":[{"break-before":E()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:O()}],"overscroll-x":[{"overscroll-x":O()}],"overscroll-y":[{"overscroll-y":O()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:I()}],"inset-x":[{"inset-x":I()}],"inset-y":[{"inset-y":I()}],start:[{start:I()}],end:[{end:I()}],top:[{top:I()}],right:[{right:I()}],bottom:[{bottom:I()}],left:[{left:I()}],visibility:["visible","invisible","collapse"],z:[{z:[Lo,"auto",ke,Te]}],basis:[{basis:[wc,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[nt,wc,"auto","initial","none",Te]}],grow:[{grow:["",nt,ke,Te]}],shrink:[{shrink:["",nt,ke,Te]}],order:[{order:[Lo,"first","last","none",ke,Te]}],"grid-cols":[{"grid-cols":z()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":z()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...F(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...F()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":F()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:R()}],w:[{w:[u,"screen",...R()]}],"min-w":[{"min-w":[u,"screen","none",...R()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...R()]}],h:[{h:["screen","lh",...R()]}],"min-h":[{"min-h":["screen","lh","none",...R()]}],"max-h":[{"max-h":["screen","lh",...R()]}],"font-size":[{text:["base",n,Kd,Ls]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,ke,z0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",B0,Te]}],"font-family":[{font:[eZ,Te,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,ke,Te]}],"line-clamp":[{"line-clamp":[nt,"none",ke,z0]}],leading:[{leading:[o,...M()]}],"list-image":[{"list-image":["none",ke,Te]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ke,Te]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:U()}],"text-color":[{text:U()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...oe(),"wavy"]}],"text-decoration-thickness":[{decoration:[nt,"from-font","auto",ke,Ls]}],"text-decoration-color":[{decoration:U()}],"underline-offset":[{"underline-offset":[nt,"auto",ke,Te]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ke,Te]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ke,Te]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:K()}],"bg-repeat":[{bg:te()}],"bg-size":[{bg:$()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Lo,ke,Te],radial:["",ke,Te],conic:[Lo,ke,Te]},nZ,JX]}],"bg-color":[{bg:U()}],"gradient-from-pos":[{from:B()}],"gradient-via-pos":[{via:B()}],"gradient-to-pos":[{to:B()}],"gradient-from":[{from:U()}],"gradient-via":[{via:U()}],"gradient-to":[{to:U()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:ne()}],"border-w-x":[{"border-x":ne()}],"border-w-y":[{"border-y":ne()}],"border-w-s":[{"border-s":ne()}],"border-w-e":[{"border-e":ne()}],"border-w-t":[{"border-t":ne()}],"border-w-r":[{"border-r":ne()}],"border-w-b":[{"border-b":ne()}],"border-w-l":[{"border-l":ne()}],"divide-x":[{"divide-x":ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...oe(),"hidden","none"]}],"divide-style":[{divide:[...oe(),"hidden","none"]}],"border-color":[{border:U()}],"border-color-x":[{"border-x":U()}],"border-color-y":[{"border-y":U()}],"border-color-s":[{"border-s":U()}],"border-color-e":[{"border-e":U()}],"border-color-t":[{"border-t":U()}],"border-color-r":[{"border-r":U()}],"border-color-b":[{"border-b":U()}],"border-color-l":[{"border-l":U()}],"divide-color":[{divide:U()}],"outline-style":[{outline:[...oe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[nt,ke,Te]}],"outline-w":[{outline:["",nt,Kd,Ls]}],"outline-color":[{outline:U()}],shadow:[{shadow:["","none",m,Cp,Np]}],"shadow-color":[{shadow:U()}],"inset-shadow":[{"inset-shadow":["none",p,Cp,Np]}],"inset-shadow-color":[{"inset-shadow":U()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:U()}],"ring-offset-w":[{"ring-offset":[nt,Ls]}],"ring-offset-color":[{"ring-offset":U()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":U()}],"text-shadow":[{"text-shadow":["none",g,Cp,Np]}],"text-shadow-color":[{"text-shadow":U()}],opacity:[{opacity:[nt,ke,Te]}],"mix-blend":[{"mix-blend":[...xe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":xe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[nt]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":U()}],"mask-image-linear-to-color":[{"mask-linear-to":U()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":U()}],"mask-image-t-to-color":[{"mask-t-to":U()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":U()}],"mask-image-r-to-color":[{"mask-r-to":U()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":U()}],"mask-image-b-to-color":[{"mask-b-to":U()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":U()}],"mask-image-l-to-color":[{"mask-l-to":U()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":U()}],"mask-image-x-to-color":[{"mask-x-to":U()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":U()}],"mask-image-y-to-color":[{"mask-y-to":U()}],"mask-image-radial":[{"mask-radial":[ke,Te]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":U()}],"mask-image-radial-to-color":[{"mask-radial-to":U()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":T()}],"mask-image-conic-pos":[{"mask-conic":[nt]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":U()}],"mask-image-conic-to-color":[{"mask-conic-to":U()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:K()}],"mask-repeat":[{mask:te()}],"mask-size":[{mask:$()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ke,Te]}],filter:[{filter:["","none",ke,Te]}],blur:[{blur:ae()}],brightness:[{brightness:[nt,ke,Te]}],contrast:[{contrast:[nt,ke,Te]}],"drop-shadow":[{"drop-shadow":["","none",x,Cp,Np]}],"drop-shadow-color":[{"drop-shadow":U()}],grayscale:[{grayscale:["",nt,ke,Te]}],"hue-rotate":[{"hue-rotate":[nt,ke,Te]}],invert:[{invert:["",nt,ke,Te]}],saturate:[{saturate:[nt,ke,Te]}],sepia:[{sepia:["",nt,ke,Te]}],"backdrop-filter":[{"backdrop-filter":["","none",ke,Te]}],"backdrop-blur":[{"backdrop-blur":ae()}],"backdrop-brightness":[{"backdrop-brightness":[nt,ke,Te]}],"backdrop-contrast":[{"backdrop-contrast":[nt,ke,Te]}],"backdrop-grayscale":[{"backdrop-grayscale":["",nt,ke,Te]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[nt,ke,Te]}],"backdrop-invert":[{"backdrop-invert":["",nt,ke,Te]}],"backdrop-opacity":[{"backdrop-opacity":[nt,ke,Te]}],"backdrop-saturate":[{"backdrop-saturate":[nt,ke,Te]}],"backdrop-sepia":[{"backdrop-sepia":["",nt,ke,Te]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ke,Te]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[nt,"initial",ke,Te]}],ease:[{ease:["linear","initial",N,ke,Te]}],delay:[{delay:[nt,ke,Te]}],animate:[{animate:["none",A,ke,Te]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,ke,Te]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:Z()}],"rotate-x":[{"rotate-x":Z()}],"rotate-y":[{"rotate-y":Z()}],"rotate-z":[{"rotate-z":Z()}],scale:[{scale:pe()}],"scale-x":[{"scale-x":pe()}],"scale-y":[{"scale-y":pe()}],"scale-z":[{"scale-z":pe()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[ke,Te,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:le()}],"translate-x":[{"translate-x":le()}],"translate-y":[{"translate-y":le()}],"translate-z":[{"translate-z":le()}],"translate-none":["translate-none"],accent:[{accent:U()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:U()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ke,Te]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ke,Te]}],fill:[{fill:["none",...U()]}],"stroke-w":[{stroke:[nt,Kd,Ls,z0]}],stroke:[{stroke:["none",...U()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},oZ=BX(iZ);function de(...e){return oZ(Ye(e))}const st=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:de("rounded-xl border bg-card text-card-foreground shadow",e),...t}));st.displayName="Card";const qt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:de("flex flex-col space-y-1.5 p-6",e),...t}));qt.displayName="CardHeader";const Ft=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:de("font-semibold leading-none tracking-tight",e),...t}));Ft.displayName="CardTitle";const er=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:de("text-sm text-muted-foreground",e),...t}));er.displayName="CardDescription";const on=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:de("p-6 pt-0",e),...t}));on.displayName="CardContent";const W5=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:de("flex items-center p-6 pt-0",e),...t}));W5.displayName="CardFooter";function Se(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function sZ(e,t){const n=y.createContext(t),r=o=>{const{children:l,...u}=o,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(o){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${o}\` must be used within \`${e}\``)}return[r,a]}function hr(e,t=[]){let n=[];function r(o,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,b=g?.[e]?.[d]||u,w=y.useMemo(()=>j,Object.values(j));return i.jsx(b.Provider,{value:w,children:x})};f.displayName=o+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${o}\``)}return[f,m]}const a=()=>{const o=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||o;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,lZ(a,...t)]}function lZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(o){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(o)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function BM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Rr(...e){return t=>{let n=!1;const r=e.map(a=>{const o=BM(a,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let a=0;a{const{children:o,...l}=r,u=y.Children.toArray(o),d=u.find(dZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function cZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...o}=n;if(y.isValidElement(a)){const l=hZ(a),u=fZ(o,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var uZ=Symbol("radix.slottable");function dZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===uZ}function fZ(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...u)=>{const d=o(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function hZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Ch(e){const t=e+"CollectionProvider",[n,r]=hr(t),[a,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=b=>{const{scope:w,children:N}=b,A=W.useRef(null),E=W.useRef(new Map).current;return i.jsx(a,{scope:w,itemMap:E,collectionRef:A,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=zM(u),f=W.forwardRef((b,w)=>{const{scope:N,children:A}=b,E=o(u,N),T=qe(w,E.collectionRef);return i.jsx(d,{ref:T,children:A})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=zM(m),x=W.forwardRef((b,w)=>{const{scope:N,children:A,...E}=b,T=W.useRef(null),C=qe(w,T),k=o(m,N);return W.useEffect(()=>(k.itemMap.set(T,{ref:T,...E}),()=>void k.itemMap.delete(T))),i.jsx(g,{[p]:"",ref:C,children:A})});x.displayName=m;function j(b){const w=o(e+"CollectionConsumer",b);return W.useCallback(()=>{const A=w.collectionRef.current;if(!A)return[];const E=Array.from(A.querySelectorAll(`[${p}]`));return Array.from(w.itemMap.values()).sort((k,O)=>E.indexOf(k.ref.current)-E.indexOf(O.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Un=globalThis?.document?y.useLayoutEffect:()=>{},mZ=jC[" useId ".trim().toString()]||(()=>{}),pZ=0;function Fn(e){const[t,n]=y.useState(mZ());return Un(()=>{n(r=>r??String(pZ++))},[e]),t?`radix-${t}`:""}function vZ(e){const t=gZ(e),n=y.forwardRef((r,a)=>{const{children:o,...l}=r,u=y.Children.toArray(o),d=u.find(xZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function gZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...o}=n;if(y.isValidElement(a)){const l=wZ(a),u=bZ(o,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var yZ=Symbol("radix.slottable");function xZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===yZ}function bZ(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...u)=>{const d=o(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function wZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var jZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Pe=jZ.reduce((e,t)=>{const n=vZ(`Primitive.${t}`),r=y.forwardRef((a,o)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function LC(e,t){e&&wl.flushSync(()=>e.dispatchEvent(t))}function nn(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var SZ=jC[" useInsertionEffect ".trim().toString()]||Un;function Na({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,o,l]=_Z({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=NZ(m)?m(e):m;p!==e&&l.current?.(p)}else o(m)},[u,e,o,l]);return[d,f]}function _Z({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),o=y.useRef(t);return SZ(()=>{o.current=t},[t]),y.useEffect(()=>{a.current!==n&&(o.current?.(n),a.current=n)},[n,a]),[n,r,o]}function NZ(e){return typeof e=="function"}var CZ=y.createContext(void 0);function Lu(e){const t=y.useContext(CZ);return e||t||"ltr"}var q0="rovingFocusGroup.onEntryFocus",OZ={bubbles:!1,cancelable:!0},Oh="RovingFocusGroup",[x_,V5,EZ]=Ch(Oh),[AZ,Ug]=hr(Oh,[EZ]),[TZ,kZ]=AZ(Oh),G5=y.forwardRef((e,t)=>i.jsx(x_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(x_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(MZ,{...e,ref:t})})}));G5.displayName=Oh;var MZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:o,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=qe(t,g),j=Lu(o),[b,w]=Na({prop:l,defaultProp:u??null,onChange:d,caller:Oh}),[N,A]=y.useState(!1),E=nn(f),T=V5(n),C=y.useRef(!1),[k,O]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(q0,E),()=>M.removeEventListener(q0,E)},[E]),i.jsx(TZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:b,onItemFocus:y.useCallback(M=>w(M),[w]),onItemShiftTab:y.useCallback(()=>A(!0),[]),onFocusableItemAdd:y.useCallback(()=>O(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>O(M=>M-1),[]),children:i.jsx(Pe.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:Se(e.onMouseDown,()=>{C.current=!0}),onFocus:Se(e.onFocus,M=>{const I=!C.current;if(M.target===M.currentTarget&&I&&!N){const z=new CustomEvent(q0,OZ);if(M.currentTarget.dispatchEvent(z),!z.defaultPrevented){const D=T().filter(L=>L.focusable),H=D.find(L=>L.active),V=D.find(L=>L.id===b),G=[H,V,...D].filter(Boolean).map(L=>L.ref.current);X5(G,m)}}C.current=!1}),onBlur:Se(e.onBlur,()=>A(!1))})})}),Y5="RovingFocusGroupItem",K5=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:o,children:l,...u}=e,d=Fn(),f=o||d,m=kZ(Y5,n),p=m.currentTabStopId===f,g=V5(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:b}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(x_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx(Pe.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:Se(e.onMouseDown,w=>{r?m.onItemFocus(f):w.preventDefault()}),onFocus:Se(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:Se(e.onKeyDown,w=>{if(w.key==="Tab"&&w.shiftKey){m.onItemShiftTab();return}if(w.target!==w.currentTarget)return;const N=DZ(w,m.orientation,m.dir);if(N!==void 0){if(w.metaKey||w.ctrlKey||w.altKey||w.shiftKey)return;w.preventDefault();let E=g().filter(T=>T.focusable).map(T=>T.ref.current);if(N==="last")E.reverse();else if(N==="prev"||N==="next"){N==="prev"&&E.reverse();const T=E.indexOf(w.currentTarget);E=m.loop?$Z(E,T+1):E.slice(T+1)}setTimeout(()=>X5(E))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:b!=null}):l})})});K5.displayName=Y5;var PZ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function RZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function DZ(e,t,n){const r=RZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return PZ[r]}function X5(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function $Z(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Z5=G5,Q5=K5;function IZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Rn=e=>{const{present:t,children:n}=e,r=LZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),o=qe(r.ref,BZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:o}):null};Rn.displayName="Presence";function LZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),o=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=IZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Op(r.current);o.current=u==="mounted"?f:"none"},[u]),Un(()=>{const f=r.current,m=a.current;if(m!==e){const g=o.current,x=Op(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Un(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const b=Op(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&b&&(d("ANIMATION_END"),!a.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},g=x=>{x.target===t&&(o.current=Op(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Op(e){return e?.animationName||"none"}function BZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Hg="Tabs",[zZ]=hr(Hg,[Ug]),J5=Ug(),[qZ,BC]=zZ(Hg),eB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:o,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Lu(u),[p,g]=Na({prop:r,onChange:a,defaultProp:o??"",caller:Hg});return i.jsx(qZ,{scope:n,baseId:Fn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx(Pe.div,{dir:m,"data-orientation":l,...f,ref:t})})});eB.displayName=Hg;var tB="TabsList",nB=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,o=BC(tB,n),l=J5(n);return i.jsx(Z5,{asChild:!0,...l,orientation:o.orientation,dir:o.dir,loop:r,children:i.jsx(Pe.div,{role:"tablist","aria-orientation":o.orientation,...a,ref:t})})});nB.displayName=tB;var rB="TabsTrigger",aB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...o}=e,l=BC(rB,n),u=J5(n),d=sB(l.baseId,r),f=lB(l.baseId,r),m=r===l.value;return i.jsx(Q5,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx(Pe.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...o,ref:t,onMouseDown:Se(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:Se(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:Se(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});aB.displayName=rB;var iB="TabsContent",oB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:o,...l}=e,u=BC(iB,n),d=sB(u.baseId,r),f=lB(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(Rn,{present:a||m,children:({present:g})=>i.jsx(Pe.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&o})})});oB.displayName=iB;function sB(e,t){return`${e}-trigger-${t}`}function lB(e,t){return`${e}-content-${t}`}var FZ=eB,cB=nB,uB=aB,dB=oB;const ul=FZ,Qo=y.forwardRef(({className:e,...t},n)=>i.jsx(cB,{ref:n,className:de("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Qo.displayName=cB.displayName;const Ot=y.forwardRef(({className:e,...t},n)=>i.jsx(uB,{ref:n,className:de("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Ot.displayName=uB.displayName;const en=y.forwardRef(({className:e,...t},n)=>i.jsx(dB,{ref:n,className:de("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));en.displayName=dB.displayName;function Ef(e,[t,n]){return Math.min(n,Math.max(t,e))}function UZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var zC="ScrollArea",[fB]=hr(zC),[HZ,Oa]=fB(zC),hB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:o=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[b,w]=y.useState(null),[N,A]=y.useState(0),[E,T]=y.useState(0),[C,k]=y.useState(!1),[O,M]=y.useState(!1),I=qe(t,D=>d(D)),z=Lu(a);return i.jsx(HZ,{scope:n,type:r,dir:z,scrollHideDelay:o,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:b,onScrollbarYChange:w,scrollbarYEnabled:O,onScrollbarYEnabledChange:M,onCornerWidthChange:A,onCornerHeightChange:T,children:i.jsx(Pe.div,{dir:z,...l,ref:I,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":E+"px",...e.style}})})});hB.displayName=zC;var mB="ScrollAreaViewport",pB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...o}=e,l=Oa(mB,n),u=y.useRef(null),d=qe(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx(Pe.div,{"data-radix-scroll-area-viewport":"",...o,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});pB.displayName=mB;var xi="ScrollAreaScrollbar",qC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?o(!0):l(!0),()=>{u?o(!1):l(!1)}),[u,o,l]),a.type==="hover"?i.jsx(WZ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(VZ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(vB,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(FC,{...r,ref:t}):null});qC.displayName=xi;var WZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),[o,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(Rn,{present:n||o,children:i.jsx(vB,{"data-state":o?"visible":"hidden",...r,ref:t})})}),VZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),o=e.orientation==="horizontal",l=Vg(()=>d("SCROLL_END"),100),[u,d]=UZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=o?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,o,d,l]),i.jsx(Rn,{present:n||u!=="hidden",children:i.jsx(FC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Se(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:Se(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),vB=y.forwardRef((e,t)=>{const n=Oa(xi,e.__scopeScrollArea),{forceMount:r,...a}=e,[o,l]=y.useState(!1),u=e.orientation==="horizontal",d=Vg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Oa(xi,e.__scopeScrollArea),o=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=wB(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>o.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return QZ(g,l.current,u,x)}return n==="horizontal"?i.jsx(GZ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&o.current){const g=a.viewport.scrollLeft,x=qM(g,u,a.dir);o.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(YZ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&o.current){const g=a.viewport.scrollTop,x=qM(g,u);o.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),GZ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,o=Oa(xi,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=qe(t,d,o.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(yB,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Wg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(o.viewport){const g=o.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),SB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&o.viewport&&l&&r({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:wv(l.paddingLeft),paddingEnd:wv(l.paddingRight)}})}})}),YZ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,o=Oa(xi,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=qe(t,d,o.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(yB,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Wg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(o.viewport){const g=o.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),SB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&o.viewport&&l&&r({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:wv(l.paddingTop),paddingEnd:wv(l.paddingBottom)}})}})}),[KZ,gB]=fB(xi),yB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:o,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Oa(xi,n),[j,b]=y.useState(null),w=qe(t,I=>b(I)),N=y.useRef(null),A=y.useRef(""),E=x.viewport,T=r.content-r.viewport,C=nn(m),k=nn(d),O=Vg(p,10);function M(I){if(N.current){const z=I.clientX-N.current.left,D=I.clientY-N.current.top;f({x:z,y:D})}}return y.useEffect(()=>{const I=z=>{const D=z.target;j?.contains(D)&&C(z,T)};return document.addEventListener("wheel",I,{passive:!1}),()=>document.removeEventListener("wheel",I,{passive:!1})},[E,j,T,C]),y.useEffect(k,[r,k]),ru(j,O),ru(x.content,O),i.jsx(KZ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:nn(o),onThumbPointerUp:nn(l),onThumbPositionChange:k,onThumbPointerDown:nn(u),children:i.jsx(Pe.div,{...g,ref:w,style:{position:"absolute",...g.style},onPointerDown:Se(e.onPointerDown,I=>{I.button===0&&(I.target.setPointerCapture(I.pointerId),N.current=j.getBoundingClientRect(),A.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(I))}),onPointerMove:Se(e.onPointerMove,M),onPointerUp:Se(e.onPointerUp,I=>{const z=I.target;z.hasPointerCapture(I.pointerId)&&z.releasePointerCapture(I.pointerId),document.body.style.webkitUserSelect=A.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),bv="ScrollAreaThumb",xB=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=gB(bv,e.__scopeScrollArea);return i.jsx(Rn,{present:n||a.hasThumb,children:i.jsx(XZ,{ref:t,...r})})}),XZ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,o=Oa(bv,n),l=gB(bv,n),{onThumbPositionChange:u}=l,d=qe(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Vg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=o.viewport;if(p){const g=()=>{if(m(),!f.current){const x=JZ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[o.viewport,m,u]),i.jsx(Pe.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Se(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,b=p.clientY-x.top;l.onThumbPointerDown({x:j,y:b})}),onPointerUp:Se(e.onPointerUp,l.onThumbPointerUp)})});xB.displayName=bv;var UC="ScrollAreaCorner",bB=y.forwardRef((e,t)=>{const n=Oa(UC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(ZZ,{...e,ref:t}):null});bB.displayName=UC;var ZZ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Oa(UC,n),[o,l]=y.useState(0),[u,d]=y.useState(0),f=!!(o&&u);return ru(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),ru(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx(Pe.div,{...r,ref:t,style:{width:o,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function wv(e){return e?parseInt(e,10):0}function wB(e,t){const n=e/t;return isNaN(n)?0:n}function Wg(e){const t=wB(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function QZ(e,t,n,r="ltr"){const a=Wg(n),o=a/2,l=t||o,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return jB([d,f],p)(e)}function qM(e,t,n="ltr"){const r=Wg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-a,l=t.content-t.viewport,u=o-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Ef(e,d);return jB([0,l],[0,u])(f)}function jB(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function SB(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const o={left:e.scrollLeft,top:e.scrollTop},l=n.left!==o.left,u=n.top!==o.top;(l||u)&&t(),n=o,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Vg(e,t){const n=nn(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function ru(e,t){const n=nn(t);Un(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var _B=hB,eQ=pB,tQ=bB;const Vt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(_B,{ref:r,className:de("relative overflow-hidden",e),...n,children:[i.jsx(eQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(NB,{}),i.jsx(tQ,{})]}));Vt.displayName=_B.displayName;const NB=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(qC,{ref:r,orientation:t,className:de("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(xB,{className:"relative flex-1 rounded-full bg-border"})}));NB.displayName=qC.displayName;function FM({className:e,...t}){return i.jsx("div",{className:de("animate-pulse rounded-md bg-primary/10",e),...t})}var F0,UM;function Lr(){if(UM)return F0;UM=1;var e=Array.isArray;return F0=e,F0}var U0,HM;function CB(){if(HM)return U0;HM=1;var e=typeof xp=="object"&&xp&&xp.Object===Object&&xp;return U0=e,U0}var H0,WM;function bi(){if(WM)return H0;WM=1;var e=CB(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return H0=n,H0}var W0,VM;function Eh(){if(VM)return W0;VM=1;var e=bi(),t=e.Symbol;return W0=t,W0}var V0,GM;function nQ(){if(GM)return V0;GM=1;var e=Eh(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function o(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return V0=o,V0}var G0,YM;function rQ(){if(YM)return G0;YM=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return G0=n,G0}var Y0,KM;function lo(){if(KM)return Y0;KM=1;var e=Eh(),t=nQ(),n=rQ(),r="[object Null]",a="[object Undefined]",o=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:o&&o in Object(u)?t(u):n(u)}return Y0=l,Y0}var K0,XM;function co(){if(XM)return K0;XM=1;function e(t){return t!=null&&typeof t=="object"}return K0=e,K0}var X0,ZM;function Bu(){if(ZM)return X0;ZM=1;var e=lo(),t=co(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return X0=r,X0}var Z0,QM;function HC(){if(QM)return Z0;QM=1;var e=Lr(),t=Bu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(o,l){if(e(o))return!1;var u=typeof o;return u=="number"||u=="symbol"||u=="boolean"||o==null||t(o)?!0:r.test(o)||!n.test(o)||l!=null&&o in Object(l)}return Z0=a,Z0}var Q0,JM;function os(){if(JM)return Q0;JM=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return Q0=e,Q0}var J0,eP;function WC(){if(eP)return J0;eP=1;var e=lo(),t=os(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",o="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==o}return J0=l,J0}var ew,tP;function aQ(){if(tP)return ew;tP=1;var e=bi(),t=e["__core-js_shared__"];return ew=t,ew}var tw,nP;function iQ(){if(nP)return tw;nP=1;var e=aQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return tw=n,tw}var nw,rP;function OB(){if(rP)return nw;rP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return nw=n,nw}var rw,aP;function oQ(){if(aP)return rw;aP=1;var e=WC(),t=iQ(),n=os(),r=OB(),a=/[\\^$.*+?()[\]{}|]/g,o=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:o;return x.test(r(g))}return rw=p,rw}var aw,iP;function sQ(){if(iP)return aw;iP=1;function e(t,n){return t?.[n]}return aw=e,aw}var iw,oP;function jl(){if(oP)return iw;oP=1;var e=oQ(),t=sQ();function n(r,a){var o=t(r,a);return e(o)?o:void 0}return iw=n,iw}var ow,sP;function Gg(){if(sP)return ow;sP=1;var e=jl(),t=e(Object,"create");return ow=t,ow}var sw,lP;function lQ(){if(lP)return sw;lP=1;var e=Gg();function t(){this.__data__=e?e(null):{},this.size=0}return sw=t,sw}var lw,cP;function cQ(){if(cP)return lw;cP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return lw=e,lw}var cw,uP;function uQ(){if(uP)return cw;uP=1;var e=Gg(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(o){var l=this.__data__;if(e){var u=l[o];return u===t?void 0:u}return r.call(l,o)?l[o]:void 0}return cw=a,cw}var uw,dP;function dQ(){if(dP)return uw;dP=1;var e=Gg(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var o=this.__data__;return e?o[a]!==void 0:n.call(o,a)}return uw=r,uw}var dw,fP;function fQ(){if(fP)return dw;fP=1;var e=Gg(),t="__lodash_hash_undefined__";function n(r,a){var o=this.__data__;return this.size+=this.has(r)?0:1,o[r]=e&&a===void 0?t:a,this}return dw=n,dw}var fw,hP;function hQ(){if(hP)return fw;hP=1;var e=lQ(),t=cQ(),n=uQ(),r=dQ(),a=fQ();function o(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return yw=t,yw}var xw,bP;function yQ(){if(bP)return xw;bP=1;var e=Yg();function t(n,r){var a=this.__data__,o=e(a,n);return o<0?(++this.size,a.push([n,r])):a[o][1]=r,this}return xw=t,xw}var bw,wP;function Kg(){if(wP)return bw;wP=1;var e=mQ(),t=pQ(),n=vQ(),r=gQ(),a=yQ();function o(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Gs=function(t){return dl(t)&&t.indexOf("%")===t.length-1},Ce=function(t){return qQ(t)&&!Ah(t)},FQ=function(t){return Ge(t)},Mn=function(t){return Ce(t)||dl(t)},UQ=0,qu=function(t){var n=++UQ;return"".concat(t||"").concat(n)},wr=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ce(t)&&!dl(t))return r;var o;if(Gs(t)){var l=t.indexOf("%");o=n*parseFloat(t.slice(0,l))/100}else o=+t;return Ah(o)&&(o=r),a&&o>n&&(o=n),o},Fo=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},HQ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ZQ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function w_(e){"@babel/helpers - typeof";return w_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},w_(e)}var KP={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Ji=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},XP=null,Vw=null,QC=function e(t){if(t===XP&&Array.isArray(Vw))return Vw;var n=[];return y.Children.forEach(t,function(r){Ge(r)||(IQ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),Vw=n,XP=t,n};function na(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return Ji(a)}):r=[Ji(t)],QC(e).forEach(function(a){var o=ta(a,"type.displayName")||ta(a,"type.name");r.indexOf(o)!==-1&&n.push(a)}),n}function Kr(e,t){var n=na(e,t);return n&&n[0]}var ZP=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ce(r)||r<=0||!Ce(a)||a<=0)},QQ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],JQ=function(t){return t&&t.type&&dl(t.type)&&QQ.indexOf(t.type)>=0},eJ=function(t){return t&&w_(t)==="object"&&"clipDot"in t},tJ=function(t,n,r,a){var o,l=(o=Ww?.[a])!==null&&o!==void 0?o:[];return n.startsWith("data-")||!We(t)&&(a&&l.includes(n)||GQ.includes(n))||r&&ZC.includes(n)},Be=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!zu(a))return null;var o={};return Object.keys(a).forEach(function(l){var u;tJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(o[l]=a[l])}),o},j_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return QP(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function oJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function __(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,o=e.className,l=e.style,u=e.title,d=e.desc,f=iJ(e,aJ),m=a||{width:n,height:r,x:0,y:0},p=Ye("recharts-surface",o);return W.createElement("svg",S_({},Be(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var sJ=["children","className"];function N_(){return N_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function cJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var pt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=lJ(e,sJ),o=Ye("recharts-layer",r);return W.createElement("g",N_({className:o},Be(a,!0),{ref:t}),n)}),qa=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),o=2;oo?0:o+n),r=r>o?o:r,r<0&&(r+=o),o=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(o);++a=o?n:e(n,r,a)}return Yw=t,Yw}var Kw,nR;function PB(){if(nR)return Kw;nR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,o="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+o+"]");function d(f){return u.test(f)}return Kw=d,Kw}var Xw,rR;function fJ(){if(rR)return Xw;rR=1;function e(t){return t.split("")}return Xw=e,Xw}var Zw,aR;function hJ(){if(aR)return Zw;aR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,o="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",b="["+o+"]?",w="(?:"+x+"(?:"+[m,p,g].join("|")+")"+b+j+")*",N=b+j+w,A="(?:"+[m+u+"?",u,p,g,l].join("|")+")",E=RegExp(d+"(?="+d+")|"+A+N,"g");function T(C){return C.match(E)||[]}return Zw=T,Zw}var Qw,iR;function mJ(){if(iR)return Qw;iR=1;var e=fJ(),t=PB(),n=hJ();function r(a){return t(a)?n(a):e(a)}return Qw=r,Qw}var Jw,oR;function pJ(){if(oR)return Jw;oR=1;var e=dJ(),t=PB(),n=mJ(),r=AB();function a(o){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[o]()+f}}return Jw=a,Jw}var ej,sR;function vJ(){if(sR)return ej;sR=1;var e=pJ(),t=e("toUpperCase");return ej=t,ej}var gJ=vJ();const Qg=St(gJ);function Ht(e){return function(){return e}}const RB=Math.cos,_v=Math.sin,Ga=Math.sqrt,Nv=Math.PI,Jg=2*Nv,C_=Math.PI,O_=2*C_,Fs=1e-6,yJ=O_-Fs;function DB(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return DB;const n=10**t;return function(r){this._+=r[0];for(let a=1,o=r.length;aFs)if(!(Math.abs(p*d-f*m)>Fs)||!o)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,b=d*d+f*f,w=x*x+j*j,N=Math.sqrt(b),A=Math.sqrt(g),E=o*Math.tan((C_-Math.acos((b+g-w)/(2*N*A)))/2),T=E/A,C=E/N;Math.abs(T-1)>Fs&&this._append`L${t+T*m},${n+T*p}`,this._append`A${o},${o},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,o,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-o:o-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Fs||Math.abs(this._y1-m)>Fs)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%O_+O_),g>yJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Fs&&this._append`A${r},${r},0,${+(g>=C_)},${p},${this._x1=t+r*Math.cos(o)},${this._y1=n+r*Math.sin(o)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function JC(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new bJ(t)}function eO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function $B(e){this._context=e}$B.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function ey(e){return new $B(e)}function IB(e){return e[0]}function LB(e){return e[1]}function BB(e,t){var n=Ht(!0),r=null,a=ey,o=null,l=JC(u);e=typeof e=="function"?e:e===void 0?IB:Ht(e),t=typeof t=="function"?t:t===void 0?LB:Ht(t);function u(d){var f,m=(d=eO(d)).length,p,g=!1,x;for(r==null&&(o=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(E[j],T[j]);u.lineEnd(),u.areaEnd()}N&&(E[g]=+e(w,g,p),T[g]=+t(w,g,p),u.point(r?+r(w,g,p):E[g],n?+n(w,g,p):T[g]))}if(A)return u=null,A+""||null}function m(){return BB().defined(a).curve(l).context(o)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Ht(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Ht(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Ht(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Ht(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Ht(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Ht(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Ht(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,o!=null&&(u=l(o)),f):l},f.context=function(p){return arguments.length?(p==null?o=u=null:u=l(o=p),f):o},f}class zB{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function wJ(e){return new zB(e,!0)}function jJ(e){return new zB(e,!1)}const tO={draw(e,t){const n=Ga(t/Nv);e.moveTo(n,0),e.arc(0,0,n,0,Jg)}},SJ={draw(e,t){const n=Ga(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},qB=Ga(1/3),_J=qB*2,NJ={draw(e,t){const n=Ga(t/_J),r=n*qB;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},CJ={draw(e,t){const n=Ga(t),r=-n/2;e.rect(r,r,n,n)}},OJ=.8908130915292852,FB=_v(Nv/10)/_v(7*Nv/10),EJ=_v(Jg/10)*FB,AJ=-RB(Jg/10)*FB,TJ={draw(e,t){const n=Ga(t*OJ),r=EJ*n,a=AJ*n;e.moveTo(0,-n),e.lineTo(r,a);for(let o=1;o<5;++o){const l=Jg*o/5,u=RB(l),d=_v(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},tj=Ga(3),kJ={draw(e,t){const n=-Ga(t/(tj*3));e.moveTo(0,n*2),e.lineTo(-tj*n,-n),e.lineTo(tj*n,-n),e.closePath()}},ga=-.5,ya=Ga(3)/2,E_=1/Ga(12),MJ=(E_/2+1)*3,PJ={draw(e,t){const n=Ga(t/MJ),r=n/2,a=n*E_,o=r,l=n*E_+n,u=-o,d=l;e.moveTo(r,a),e.lineTo(o,l),e.lineTo(u,d),e.lineTo(ga*r-ya*a,ya*r+ga*a),e.lineTo(ga*o-ya*l,ya*o+ga*l),e.lineTo(ga*u-ya*d,ya*u+ga*d),e.lineTo(ga*r+ya*a,ga*a-ya*r),e.lineTo(ga*o+ya*l,ga*l-ya*o),e.lineTo(ga*u+ya*d,ga*d-ya*u),e.closePath()}};function RJ(e,t){let n=null,r=JC(a);e=typeof e=="function"?e:Ht(e||tO),t=typeof t=="function"?t:Ht(t===void 0?64:+t);function a(){let o;if(n||(n=o=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),o)return n=null,o+""||null}return a.type=function(o){return arguments.length?(e=typeof o=="function"?o:Ht(o),a):e},a.size=function(o){return arguments.length?(t=typeof o=="function"?o:Ht(+o),a):t},a.context=function(o){return arguments.length?(n=o??null,a):n},a}function Cv(){}function Ov(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function UB(e){this._context=e}UB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ov(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ov(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function DJ(e){return new UB(e)}function HB(e){this._context=e}HB.prototype={areaStart:Cv,areaEnd:Cv,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Ov(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function $J(e){return new HB(e)}function WB(e){this._context=e}WB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Ov(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function IJ(e){return new WB(e)}function VB(e){this._context=e}VB.prototype={areaStart:Cv,areaEnd:Cv,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function LJ(e){return new VB(e)}function lR(e){return e<0?-1:1}function cR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,o=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(o*a+l*r)/(r+a);return(lR(o)+lR(l))*Math.min(Math.abs(o),Math.abs(l),.5*Math.abs(u))||0}function uR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function nj(e,t,n){var r=e._x0,a=e._y0,o=e._x1,l=e._y1,u=(o-r)/3;e._context.bezierCurveTo(r+u,a+u*t,o-u,l-u*n,o,l)}function Ev(e){this._context=e}Ev.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:nj(this,this._t0,uR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,nj(this,uR(this,n=cR(this,e,t)),n);break;default:nj(this,this._t0,n=cR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function GB(e){this._context=new YB(e)}(GB.prototype=Object.create(Ev.prototype)).point=function(e,t){Ev.prototype.point.call(this,t,e)};function YB(e){this._context=e}YB.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,o){this._context.bezierCurveTo(t,e,r,n,o,a)}};function BJ(e){return new Ev(e)}function zJ(e){return new GB(e)}function KB(e){this._context=e}KB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=dR(e),a=dR(t),o=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/o[t];for(o[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function FJ(e){return new ty(e,.5)}function UJ(e){return new ty(e,0)}function HJ(e){return new ty(e,1)}function au(e,t){if((l=e.length)>1)for(var n=1,r,a,o=e[t[0]],l,u=o.length;n=0;)n[t]=t;return n}function WJ(e,t){return e[t]}function VJ(e){const t=[];return t.key=e,t}function GJ(){var e=Ht([]),t=A_,n=au,r=WJ;function a(o){var l=Array.from(e.apply(this,arguments),VJ),u,d=l.length,f=-1,m;for(const p of o)for(u=0,++f;u0){for(var n,r,a=0,o=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,o=r.length;n0)||!((o=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,o,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function nee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var XB={symbolCircle:tO,symbolCross:SJ,symbolDiamond:NJ,symbolSquare:CJ,symbolStar:TJ,symbolTriangle:kJ,symbolWye:PJ},ree=Math.PI/180,aee=function(t){var n="symbol".concat(Qg(t));return XB[n]||tO},iee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*ree;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},oee=function(t,n){XB["symbol".concat(Qg(t))]=n},nO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,o=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=tee(t,ZJ),f=hR(hR({},d),{},{type:r,size:o,sizeType:u}),m=function(){var w=aee(r),N=RJ().type(w).size(iee(o,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=Be(f,!0);return g===+g&&x===+x&&o===+o?W.createElement("path",T_({},j,{className:Ye("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};nO.registerSymbol=oee;function iu(e){"@babel/helpers - typeof";return iu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},iu(e)}function k_(){return k_=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var A=x.inactive?f:x.color;return W.createElement("li",k_({className:w,style:p,key:"legend-item-".concat(j)},fl(r.props,x,j)),W.createElement(__,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:A}},b?b(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,o=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:o==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);Tf(rO,"displayName","Legend");Tf(rO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var rj,pR;function vee(){if(pR)return rj;pR=1;var e=Kg();function t(){this.__data__=new e,this.size=0}return rj=t,rj}var aj,vR;function gee(){if(vR)return aj;vR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return aj=e,aj}var ij,gR;function yee(){if(gR)return ij;gR=1;function e(t){return this.__data__.get(t)}return ij=e,ij}var oj,yR;function xee(){if(yR)return oj;yR=1;function e(t){return this.__data__.has(t)}return oj=e,oj}var sj,xR;function bee(){if(xR)return sj;xR=1;var e=Kg(),t=GC(),n=YC(),r=200;function a(o,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var b=p.get(l),w=p.get(u);if(b&&w)return b==u&&w==l;var N=-1,A=!0,E=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return Aj=t,Aj}var Tj,UR;function Pee(){if(UR)return Tj;UR=1;var e=lo(),t=sO(),n=co(),r="[object Arguments]",a="[object Array]",o="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",b="[object WeakMap]",w="[object ArrayBuffer]",N="[object DataView]",A="[object Float32Array]",E="[object Float64Array]",T="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",O="[object Uint8Array]",M="[object Uint8ClampedArray]",I="[object Uint16Array]",z="[object Uint32Array]",D={};D[A]=D[E]=D[T]=D[C]=D[k]=D[O]=D[M]=D[I]=D[z]=!0,D[r]=D[a]=D[w]=D[o]=D[N]=D[l]=D[u]=D[d]=D[f]=D[m]=D[p]=D[g]=D[x]=D[j]=D[b]=!1;function H(V){return n(V)&&t(V.length)&&!!D[e(V)]}return Tj=H,Tj}var kj,HR;function oz(){if(HR)return kj;HR=1;function e(t){return function(n){return t(n)}}return kj=e,kj}var uf={exports:{}};uf.exports;var WR;function Ree(){return WR||(WR=1,(function(e,t){var n=CB(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,o=a&&a.exports===r,l=o&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(uf,uf.exports)),uf.exports}var Mj,VR;function sz(){if(VR)return Mj;VR=1;var e=Pee(),t=oz(),n=Ree(),r=n&&n.isTypedArray,a=r?t(r):e;return Mj=a,Mj}var Pj,GR;function Dee(){if(GR)return Pj;GR=1;var e=Tee(),t=iO(),n=Lr(),r=iz(),a=oO(),o=sz(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&o(f),b=p||g||x||j,w=b?e(f.length,String):[],N=w.length;for(var A in f)(m||u.call(f,A))&&!(b&&(A=="length"||x&&(A=="offset"||A=="parent")||j&&(A=="buffer"||A=="byteLength"||A=="byteOffset")||a(A,N)))&&w.push(A);return w}return Pj=d,Pj}var Rj,YR;function $ee(){if(YR)return Rj;YR=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return Rj=t,Rj}var Dj,KR;function lz(){if(KR)return Dj;KR=1;function e(t,n){return function(r){return t(n(r))}}return Dj=e,Dj}var $j,XR;function Iee(){if(XR)return $j;XR=1;var e=lz(),t=e(Object.keys,Object);return $j=t,$j}var Ij,ZR;function Lee(){if(ZR)return Ij;ZR=1;var e=$ee(),t=Iee(),n=Object.prototype,r=n.hasOwnProperty;function a(o){if(!e(o))return t(o);var l=[];for(var u in Object(o))r.call(o,u)&&u!="constructor"&&l.push(u);return l}return Ij=a,Ij}var Lj,QR;function Th(){if(QR)return Lj;QR=1;var e=WC(),t=sO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Lj=n,Lj}var Bj,JR;function ny(){if(JR)return Bj;JR=1;var e=Dee(),t=Lee(),n=Th();function r(a){return n(a)?e(a):t(a)}return Bj=r,Bj}var zj,eD;function Bee(){if(eD)return zj;eD=1;var e=Cee(),t=Aee(),n=ny();function r(a){return e(a,n,t)}return zj=r,zj}var qj,tD;function zee(){if(tD)return qj;tD=1;var e=Bee(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(o,l,u,d,f,m){var p=u&t,g=e(o),x=g.length,j=e(l),b=j.length;if(x!=b&&!p)return!1;for(var w=x;w--;){var N=g[w];if(!(p?N in l:r.call(l,N)))return!1}var A=m.get(o),E=m.get(l);if(A&&E)return A==l&&E==o;var T=!0;m.set(o,l),m.set(l,o);for(var C=p;++w-1}return h1=t,h1}var m1,ED;function ote(){if(ED)return m1;ED=1;function e(t,n,r){for(var a=-1,o=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return o(N);j=!1,g=r,w=new e}else w=f?[]:b;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function wte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function jte(e){return e.value}function Ste(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=bte(t,fte);return W.createElement(rO,n)}var $D=1,nl=(function(e){function t(){var n;hte(this,t);for(var r=arguments.length,a=new Array(r),o=0;o$D||Math.abs(a.height-this.lastBoundingBox.height)>$D)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Ui({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,o=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&o==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Ui(Ui({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,o=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Ui(Ui({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Ste(o,Ui(Ui({},this.props),{},{payload:hz(m,f,jte)})))}}],[{key:"getWithHeight",value:function(r,a){var o=Ui(Ui({},this.defaultProps),r.props),l=o.layout;return l==="vertical"&&Ce(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);ry(nl,"displayName","Legend");ry(nl,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var x1,ID;function _te(){if(ID)return x1;ID=1;var e=Eh(),t=iO(),n=Lr(),r=e?e.isConcatSpreadable:void 0;function a(o){return n(o)||t(o)||!!(r&&o&&o[r])}return x1=a,x1}var b1,LD;function vz(){if(LD)return b1;LD=1;var e=az(),t=_te();function n(r,a,o,l,u){var d=-1,f=r.length;for(o||(o=t),u||(u=[]);++d0&&o(m)?a>1?n(m,a-1,o,l,u):e(u,m):l||(u[u.length]=m)}return u}return b1=n,b1}var w1,BD;function Nte(){if(BD)return w1;BD=1;function e(t){return function(n,r,a){for(var o=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++o];if(r(l[f],f,l)===!1)break}return n}}return w1=e,w1}var j1,zD;function Cte(){if(zD)return j1;zD=1;var e=Nte(),t=e();return j1=t,j1}var S1,qD;function gz(){if(qD)return S1;qD=1;var e=Cte(),t=ny();function n(r,a){return r&&e(r,a,t)}return S1=n,S1}var _1,FD;function Ote(){if(FD)return _1;FD=1;var e=Th();function t(n,r){return function(a,o){if(a==null)return a;if(!e(a))return n(a,o);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||o&&d&&m||!a&&m||!l)return 1;if(!o&&!u&&!p&&n=f)return m;var p=a[o];return m*(p=="desc"?-1:1)}}return n.index-r.index}return A1=t,A1}var T1,YD;function kte(){if(YD)return T1;YD=1;var e=KC(),t=XC(),n=wi(),r=yz(),a=Ete(),o=oz(),l=Tte(),u=Fu(),d=Lr();function f(m,p,g){p.length?p=e(p,function(b){return d(b)?function(w){return t(w,b.length===1?b[0]:b)}:b}):p=[u];var x=-1;p=e(p,o(n));var j=r(m,function(b,w,N){var A=e(p,function(E){return E(b)});return{criteria:A,index:++x,value:b}});return a(j,function(b,w){return l(b,w,g)})}return T1=f,T1}var k1,KD;function Mte(){if(KD)return k1;KD=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return k1=e,k1}var M1,XD;function Pte(){if(XD)return M1;XD=1;var e=Mte(),t=Math.max;function n(r,a,o){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++o>=e)return arguments[0]}else o=0;return a.apply(void 0,arguments)}}return $1=r,$1}var I1,t4;function Ite(){if(t4)return I1;t4=1;var e=Dte(),t=$te(),n=t(e);return I1=n,I1}var L1,n4;function Lte(){if(n4)return L1;n4=1;var e=Fu(),t=Pte(),n=Ite();function r(a,o){return n(t(a,o,e),a+"")}return L1=r,L1}var B1,r4;function ay(){if(r4)return B1;r4=1;var e=VC(),t=Th(),n=oO(),r=os();function a(o,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],o):!1}return B1=a,B1}var z1,a4;function Bte(){if(a4)return z1;a4=1;var e=vz(),t=kte(),n=Lte(),r=ay(),a=n(function(o,l){if(o==null)return[];var u=l.length;return u>1&&r(o,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(o,e(l,1),[])});return z1=a,z1}var zte=Bte();const uO=St(zte);function kf(e){"@babel/helpers - typeof";return kf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},kf(e)}function R_(){return R_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(Xd,"-left"),Ce(n)&&t&&Ce(t.x)&&n=t.y),"".concat(Xd,"-top"),Ce(r)&&t&&Ce(t.y)&&rb?Math.max(m,d[r]):Math.max(p,d[r])}function tne(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function nne(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,o=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=s4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:o,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=s4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:o,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=tne({translateX:m,translateY:p,useTranslate3d:u})):f=Jte,{cssProperties:f,cssClasses:ene({translateX:m,translateY:p,coordinate:n})}}function su(e){"@babel/helpers - typeof";return su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},su(e)}function l4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function c4(e){for(var t=1;tu4||Math.abs(r.height-this.state.lastBoundingBox.height)>u4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,o=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,b=a.reverseDirection,w=a.useTranslate3d,N=a.viewBox,A=a.wrapperStyle,E=nne({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:b,tooltipBox:this.state.lastBoundingBox,useTranslate3d:w,viewBox:N}),T=E.cssClasses,C=E.cssProperties,k=c4(c4({transition:g&&o?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&o&&p?"visible":"hidden",position:"absolute",top:0,left:0},A);return W.createElement("div",{tabIndex:-1,className:T,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),fne=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Sl={isSsr:fne()};function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function d4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function f4(e){for(var t=1;t0;return W.createElement(dne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:o,coordinate:m,hasPayload:k,offset:x,position:w,reverseDirection:N,useTranslate3d:A,viewBox:E,wrapperStyle:T},jne(f,f4(f4({},this.props),{},{payload:C})))}}])})(y.PureComponent);dO(ni,"displayName","Tooltip");dO(ni,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Sl.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var F1,h4;function Sne(){if(h4)return F1;h4=1;var e=bi(),t=function(){return e.Date.now()};return F1=t,F1}var U1,m4;function _ne(){if(m4)return U1;m4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return U1=t,U1}var H1,p4;function Nne(){if(p4)return H1;p4=1;var e=_ne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return H1=n,H1}var W1,v4;function _z(){if(v4)return W1;v4=1;var e=Nne(),t=os(),n=Bu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=o.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return W1=d,W1}var V1,g4;function Cne(){if(g4)return V1;g4=1;var e=os(),t=Sne(),n=_z(),r="Expected a function",a=Math.max,o=Math.min;function l(u,d,f){var m,p,g,x,j,b,w=0,N=!1,A=!1,E=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,A="maxWait"in f,g=A?a(n(f.maxWait)||0,d):g,E="trailing"in f?!!f.trailing:E);function T(V){var F=m,G=p;return m=p=void 0,w=V,x=u.apply(G,F),x}function C(V){return w=V,j=setTimeout(M,d),N?T(V):x}function k(V){var F=V-b,G=V-w,L=d-F;return A?o(L,g-G):L}function O(V){var F=V-b,G=V-w;return b===void 0||F>=d||F<0||A&&G>=g}function M(){var V=t();if(O(V))return I(V);j=setTimeout(M,k(V))}function I(V){return j=void 0,E&&m?T(V):(m=p=void 0,x)}function z(){j!==void 0&&clearTimeout(j),w=0,m=b=p=j=void 0}function D(){return j===void 0?x:I(t())}function H(){var V=t(),F=O(V);if(m=arguments,p=this,b=V,F){if(j===void 0)return C(b);if(A)return clearTimeout(j),j=setTimeout(M,d),T(b)}return j===void 0&&(j=setTimeout(M,d)),x}return H.cancel=z,H.flush=D,H}return V1=l,V1}var G1,y4;function One(){if(y4)return G1;y4=1;var e=Cne(),t=os(),n="Expected a function";function r(a,o,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,o,{leading:u,maxWait:o,trailing:d})}return G1=r,G1}var Ene=One();const Nz=St(Ene);function Pf(e){"@babel/helpers - typeof";return Pf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pf(e)}function x4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Tp(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(V=Nz(V,b,{trailing:!0,leading:!1}));var F=new ResizeObserver(V),G=C.current.getBoundingClientRect(),L=G.width,R=G.height;return D(L,R),F.observe(C.current),function(){F.disconnect()}},[D,b]);var H=y.useMemo(function(){var V=I.containerWidth,F=I.containerHeight;if(V<0||F<0)return null;qa(Gs(l)||Gs(d),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,l,d),qa(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Gs(l)?V:l,L=Gs(d)?F:d;n&&n>0&&(G?L=G/n:L&&(G=L*n),g&&L>g&&(L=g)),qa(G>0||L>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,G,L,l,d,m,p,n);var R=!Array.isArray(x)&&Ji(x.type).endsWith("Chart");return W.Children.map(x,function(U){return W.isValidElement(U)?y.cloneElement(U,Tp({width:G,height:L},R?{style:Tp({height:"100%",width:"100%",maxHeight:L,maxWidth:G},U.props.style)}:{})):U})},[n,x,d,g,p,m,I,l]);return W.createElement("div",{id:w?"".concat(w):void 0,className:Ye("recharts-responsive-container",N),style:Tp(Tp({},T),{},{width:l,height:d,minWidth:m,minHeight:p,maxHeight:g}),ref:C},H)}),iy=function(t){return null};iy.displayName="Cell";function Rf(e){"@babel/helpers - typeof";return Rf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Rf(e)}function w4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function L_(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Sl.isSsr)return{width:0,height:0};var r=Une(n),a=JSON.stringify({text:t,copyStyle:r});if(jc.widthCache[a])return jc.widthCache[a];try{var o=document.getElementById(j4);o||(o=document.createElement("span"),o.setAttribute("id",j4),o.setAttribute("aria-hidden","true"),document.body.appendChild(o));var l=L_(L_({},Fne),r);Object.assign(o.style,l),o.textContent="".concat(t);var u=o.getBoundingClientRect(),d={width:u.width,height:u.height};return jc.widthCache[a]=d,++jc.cacheCount>qne&&(jc.cacheCount=0,jc.widthCache={}),d}catch{return{width:0,height:0}}},Hne=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function Df(e){"@babel/helpers - typeof";return Df=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Df(e)}function Pv(e,t){return Yne(e)||Gne(e,t)||Vne(e,t)||Wne()}function Wne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Vne(e,t){if(e){if(typeof e=="string")return S4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return S4(e,t)}}function S4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function lre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function A4(e,t){return fre(e)||dre(e,t)||ure(e,t)||cre()}function cre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ure(e,t){if(e){if(typeof e=="string")return T4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return T4(e,t)}}function T4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function(L,R){var U=R.word,K=R.width,te=L[L.length-1];if(te&&(a==null||o||te.width+K+rR.width?L:R})};if(!m)return x;for(var b="…",w=function(G){var L=p.slice(0,G),R=Az({breakAll:f,style:d,children:L+b}).wordsWithComputedWidth,U=g(R),K=U.length>l||j(U).width>Number(a);return[K,U]},N=0,A=p.length-1,E=0,T;N<=A&&E<=p.length-1;){var C=Math.floor((N+A)/2),k=C-1,O=w(k),M=A4(O,2),I=M[0],z=M[1],D=w(C),H=A4(D,1),V=H[0];if(!I&&!V&&(N=C+1),I&&V&&(A=C-1),!I&&V){T=z;break}E++}return T||x},k4=function(t){var n=Ge(t)?[]:t.toString().split(Ez);return[{words:n}]},mre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,o=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Sl.isSsr){var d,f,m=Az({breakAll:l,children:a,style:o});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return k4(a);return hre({breakAll:l,children:a,maxLines:u,style:o},d,f,n,r)}return k4(a)},M4="#808080",hl=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,o=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,b=j===void 0?"end":j,w=t.fill,N=w===void 0?M4:w,A=E4(t,ore),E=y.useMemo(function(){return mre({breakAll:A.breakAll,children:A.children,maxLines:A.maxLines,scaleToFit:p,style:A.style,width:A.width})},[A.breakAll,A.children,A.maxLines,p,A.style,A.width]),T=A.dx,C=A.dy,k=A.angle,O=A.className,M=A.breakAll,I=E4(A,sre);if(!Mn(r)||!Mn(o))return null;var z=r+(Ce(T)?T:0),D=o+(Ce(C)?C:0),H;switch(b){case"start":H=Y1("calc(".concat(f,")"));break;case"middle":H=Y1("calc(".concat((E.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:H=Y1("calc(".concat(E.length-1," * -").concat(u,")"));break}var V=[];if(p){var F=E[0].width,G=A.width;V.push("scale(".concat((Ce(G)?G/F:1)/F,")"))}return k&&V.push("rotate(".concat(k,", ").concat(z,", ").concat(D,")")),V.length&&(I.transform=V.join(" ")),W.createElement("text",B_({},Be(I,!0),{x:z,y:D,className:Ye("recharts-text",O),textAnchor:x,fill:N.includes("url")?M4:N}),E.map(function(L,R){var U=L.words.join(M?"":" ");return W.createElement("tspan",{x:z,dy:R===0?H:u,key:"".concat(U,"-").concat(R)},U)}))};function Xo(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function pre(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function fO(e){let t,n,r;e.length!==2?(t=Xo,n=(u,d)=>Xo(e(u),d),r=(u,d)=>e(u)-d):(t=e===Xo||e===pre?e:vre,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:o}}function vre(){return 0}function Tz(e){return e===null?NaN:+e}function*gre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const yre=fO(Xo),kh=yre.right;fO(Tz).center;class P4 extends Map{constructor(t,n=wre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(R4(this,t))}has(t){return super.has(R4(this,t))}set(t,n){return super.set(xre(this,t),n)}delete(t){return super.delete(bre(this,t))}}function R4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function xre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function bre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function wre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function jre(e=Xo){if(e===Xo)return kz;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function kz(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Sre=Math.sqrt(50),_re=Math.sqrt(10),Nre=Math.sqrt(2);function Rv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),o=r/Math.pow(10,a),l=o>=Sre?10:o>=_re?5:o>=Nre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=o-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function $4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function Mz(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?kz:jre(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));Mz(e,t,x,j,a)}const o=e[t];let l=n,u=r;for(Zd(e,n,t),a(e[r],o)>0&&Zd(e,n,r);l0;)--u}a(e[n],o)===0?Zd(e,n,u):(++u,Zd(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function Zd(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Cre(e,t,n){if(e=Float64Array.from(gre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return $4(e);if(t>=1)return D4(e);var r,a=(r-1)*t,o=Math.floor(a),l=D4(Mz(e,o).subarray(0,o+1)),u=$4(e.subarray(o+1));return l+(u-l)*(a-o)}}function Ore(e,t,n=Tz){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,o=Math.floor(a),l=+n(e[o],o,e),u=+n(e[o+1],o+1,e);return l+(u-l)*(a-o)}}function Ere(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Mp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Mp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Tre.exec(e))?new kr(t[1],t[2],t[3],1):(t=kre.exec(e))?new kr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Mre.exec(e))?Mp(t[1],t[2],t[3],t[4]):(t=Pre.exec(e))?Mp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Rre.exec(e))?U4(t[1],t[2]/100,t[3]/100,1):(t=Dre.exec(e))?U4(t[1],t[2]/100,t[3]/100,t[4]):I4.hasOwnProperty(e)?z4(I4[e]):e==="transparent"?new kr(NaN,NaN,NaN,0):null}function z4(e){return new kr(e>>16&255,e>>8&255,e&255,1)}function Mp(e,t,n,r){return r<=0&&(e=t=n=NaN),new kr(e,t,n,r)}function Lre(e){return e instanceof Mh||(e=Bf(e)),e?(e=e.rgb(),new kr(e.r,e.g,e.b,e.opacity)):new kr}function H_(e,t,n,r){return arguments.length===1?Lre(e):new kr(e,t,n,r??1)}function kr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}mO(kr,H_,Rz(Mh,{brighter(e){return e=e==null?Dv:Math.pow(Dv,e),new kr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?If:Math.pow(If,e),new kr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new kr(rl(this.r),rl(this.g),rl(this.b),$v(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:q4,formatHex:q4,formatHex8:Bre,formatRgb:F4,toString:F4}));function q4(){return`#${Ys(this.r)}${Ys(this.g)}${Ys(this.b)}`}function Bre(){return`#${Ys(this.r)}${Ys(this.g)}${Ys(this.b)}${Ys((isNaN(this.opacity)?1:this.opacity)*255)}`}function F4(){const e=$v(this.opacity);return`${e===1?"rgb(":"rgba("}${rl(this.r)}, ${rl(this.g)}, ${rl(this.b)}${e===1?")":`, ${e})`}`}function $v(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function rl(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ys(e){return e=rl(e),(e<16?"0":"")+e.toString(16)}function U4(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ba(e,t,n,r)}function Dz(e){if(e instanceof Ba)return new Ba(e.h,e.s,e.l,e.opacity);if(e instanceof Mh||(e=Bf(e)),!e)return new Ba;if(e instanceof Ba)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),o=Math.max(t,n,r),l=NaN,u=o-a,d=(o+a)/2;return u?(t===o?l=(n-r)/u+(n0&&d<1?0:l,new Ba(l,u,d,e.opacity)}function zre(e,t,n,r){return arguments.length===1?Dz(e):new Ba(e,t,n,r??1)}function Ba(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}mO(Ba,zre,Rz(Mh,{brighter(e){return e=e==null?Dv:Math.pow(Dv,e),new Ba(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?If:Math.pow(If,e),new Ba(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new kr(K1(e>=240?e-240:e+120,a,r),K1(e,a,r),K1(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new Ba(H4(this.h),Pp(this.s),Pp(this.l),$v(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=$v(this.opacity);return`${e===1?"hsl(":"hsla("}${H4(this.h)}, ${Pp(this.s)*100}%, ${Pp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function H4(e){return e=(e||0)%360,e<0?e+360:e}function Pp(e){return Math.max(0,Math.min(1,e||0))}function K1(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const pO=e=>()=>e;function qre(e,t){return function(n){return e+n*t}}function Fre(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Ure(e){return(e=+e)==1?$z:function(t,n){return n-t?Fre(t,n,e):pO(isNaN(t)?n:t)}}function $z(e,t){var n=t-e;return n?qre(e,n):pO(isNaN(e)?t:e)}const W4=(function e(t){var n=Ure(t);function r(a,o){var l=n((a=H_(a)).r,(o=H_(o)).r),u=n(a.g,o.g),d=n(a.b,o.b),f=$z(a.opacity,o.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function Hre(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(o){for(a=0;an&&(o=t.slice(n,o),u[l]?u[l]+=o:u[++l]=o),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:Iv(r,a)})),n=X1.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function tae(e,t,n){var r=e[0],a=e[1],o=t[0],l=t[1];return a2?nae:tae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?o:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),Iv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,Lv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=vO,m()},p.clamp=function(g){return arguments.length?(l=g?!0:jr,m()):l!==jr},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(o=g,p):o},function(g,x){return r=g,a=x,m()}}function gO(){return oy()(jr,jr)}function rae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Bv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function cu(e){return e=Bv(Math.abs(e)),e?e[1]:NaN}function aae(e,t){return function(n,r){for(var a=n.length,o=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),o.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return o.reverse().join(t)}}function iae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var oae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function zf(e){if(!(t=oae.exec(e)))throw new Error("invalid format: "+e);var t;return new yO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}zf.prototype=yO.prototype;function yO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}yO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function sae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var Iz;function lae(e,t){var n=Bv(e,t);if(!n)return e+"";var r=n[0],a=n[1],o=a-(Iz=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return o===l?r:o>l?r+new Array(o-l+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Bv(e,Math.max(0,t+o-1))[0]}function G4(e,t){var n=Bv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const Y4={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:rae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>G4(e*100,t),r:G4,s:lae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function K4(e){return e}var X4=Array.prototype.map,Z4=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function cae(e){var t=e.grouping===void 0||e.thousands===void 0?K4:aae(X4.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",o=e.numerals===void 0?K4:iae(X4.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=zf(p);var g=p.fill,x=p.align,j=p.sign,b=p.symbol,w=p.zero,N=p.width,A=p.comma,E=p.precision,T=p.trim,C=p.type;C==="n"?(A=!0,C="g"):Y4[C]||(E===void 0&&(E=12),T=!0,C="g"),(w||g==="0"&&x==="=")&&(w=!0,g="0",x="=");var k=b==="$"?n:b==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",O=b==="$"?r:/[%p]/.test(C)?l:"",M=Y4[C],I=/[defgprs%]/.test(C);E=E===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,E)):Math.max(0,Math.min(20,E));function z(D){var H=k,V=O,F,G,L;if(C==="c")V=M(D)+V,D="";else{D=+D;var R=D<0||1/D<0;if(D=isNaN(D)?d:M(Math.abs(D),E),T&&(D=sae(D)),R&&+D==0&&j!=="+"&&(R=!1),H=(R?j==="("?j:u:j==="-"||j==="("?"":j)+H,V=(C==="s"?Z4[8+Iz/3]:"")+V+(R&&j==="("?")":""),I){for(F=-1,G=D.length;++FL||L>57){V=(L===46?a+D.slice(F+1):D.slice(F))+V,D=D.slice(0,F);break}}}A&&!w&&(D=t(D,1/0));var U=H.length+D.length+V.length,K=U>1)+H+D+V+K.slice(U);break;default:D=K+H+D+V;break}return o(D)}return z.toString=function(){return p+""},z}function m(p,g){var x=f((p=zf(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(cu(g)/3)))*3,b=Math.pow(10,-j),w=Z4[8+j/3];return function(N){return x(b*N)+w}}return{format:f,formatPrefix:m}}var Rp,xO,Lz;uae({thousands:",",grouping:[3],currency:["$",""]});function uae(e){return Rp=cae(e),xO=Rp.format,Lz=Rp.formatPrefix,Rp}function dae(e){return Math.max(0,-cu(Math.abs(e)))}function fae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(cu(t)/3)))*3-cu(Math.abs(e)))}function hae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,cu(t)-cu(e))+1}function Bz(e,t,n,r){var a=F_(e,t,n),o;switch(r=zf(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(o=fae(a,l))&&(r.precision=o),Lz(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(o=hae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=o-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(o=dae(a))&&(r.precision=o-(r.type==="%")*2);break}}return xO(r)}function ss(e){var t=e.domain;return e.ticks=function(n){var r=t();return z_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return Bz(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,o=r.length-1,l=r[a],u=r[o],d,f,m=10;for(u0;){if(f=q_(l,u,n),f===d)return r[a]=l,r[o]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function zv(){var e=gO();return e.copy=function(){return Ph(e,zv())},Ea.apply(e,arguments),ss(e)}function zz(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Lv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return zz(e).unknown(t)},e=arguments.length?Array.from(e,Lv):[0,1],ss(n)}function qz(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],o=e[r],l;return oMath.pow(e,t)}function yae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function e$(e){return(t,n)=>-e(-t,n)}function bO(e){const t=e(Q4,J4),n=t.domain;let r=10,a,o;function l(){return a=yae(r),o=gae(r),n()[0]<0?(a=e$(a),o=e$(o),e(mae,pae)):e(Q4,J4),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(b)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(b=g>0?j/o(-g):j*o(g),!(bm)break;N.push(b)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=zf(d)).precision==null&&(d.trim=!0),d=xO(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/o(Math.round(a(m)));return p*rn(qz(n(),{floor:u=>o(Math.floor(a(u))),ceil:u=>o(Math.ceil(a(u)))})),t}function Fz(){const e=bO(oy()).domain([1,10]);return e.copy=()=>Ph(e,Fz()).base(e.base()),Ea.apply(e,arguments),e}function t$(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function n$(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function wO(e){var t=1,n=e(t$(t),n$(t));return n.constant=function(r){return arguments.length?e(t$(t=+r),n$(t)):t},ss(n)}function Uz(){var e=wO(oy());return e.copy=function(){return Ph(e,Uz()).constant(e.constant())},Ea.apply(e,arguments)}function r$(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function xae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function bae(e){return e<0?-e*e:e*e}function jO(e){var t=e(jr,jr),n=1;function r(){return n===1?e(jr,jr):n===.5?e(xae,bae):e(r$(n),r$(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},ss(t)}function SO(){var e=jO(oy());return e.copy=function(){return Ph(e,SO()).exponent(e.exponent())},Ea.apply(e,arguments),e}function wae(){return SO.apply(null,arguments).exponent(.5)}function a$(e){return Math.sign(e)*e*e}function jae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function Hz(){var e=gO(),t=[0,1],n=!1,r;function a(o){var l=jae(e(o));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(o){return e.invert(a$(o))},a.domain=function(o){return arguments.length?(e.domain(o),a):e.domain()},a.range=function(o){return arguments.length?(e.range((t=Array.from(o,Lv)).map(a$)),a):t.slice()},a.rangeRound=function(o){return a.range(o).round(!0)},a.round=function(o){return arguments.length?(n=!!o,a):n},a.clamp=function(o){return arguments.length?(e.clamp(o),a):e.clamp()},a.unknown=function(o){return arguments.length?(r=o,a):r},a.copy=function(){return Hz(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Ea.apply(a,arguments),ss(a)}function Wz(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(o=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return Vz().domain([e,t]).range(a).unknown(o)},Ea.apply(ss(l),arguments)}function Gz(){var e=[.5],t=[0,1],n,r=1;function a(o){return o!=null&&o<=o?t[kh(e,o,0,r)]:n}return a.domain=function(o){return arguments.length?(e=Array.from(o),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(o){return arguments.length?(t=Array.from(o),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(o){var l=t.indexOf(o);return[e[l-1],e[l]]},a.unknown=function(o){return arguments.length?(n=o,a):n},a.copy=function(){return Gz().domain(e).range(t).unknown(n)},Ea.apply(a,arguments)}const Z1=new Date,Q1=new Date;function Dn(e,t,n,r){function a(o){return e(o=arguments.length===0?new Date:new Date(+o)),o}return a.floor=o=>(e(o=new Date(+o)),o),a.ceil=o=>(e(o=new Date(o-1)),t(o,1),e(o),o),a.round=o=>{const l=a(o),u=a.ceil(o);return o-l(t(o=new Date(+o),l==null?1:Math.floor(l)),o),a.range=(o,l,u)=>{const d=[];if(o=a.ceil(o),u=u==null?1:Math.floor(u),!(o0))return d;let f;do d.push(f=new Date(+o)),t(o,u),e(o);while(fDn(l=>{if(l>=l)for(;e(l),!o(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!o(l););else for(;--u>=0;)for(;t(l,1),!o(l););}),n&&(a.count=(o,l)=>(Z1.setTime(+o),Q1.setTime(+l),e(Z1),e(Q1),Math.floor(n(Z1,Q1))),a.every=o=>(o=Math.floor(o),!isFinite(o)||!(o>0)?null:o>1?a.filter(r?l=>r(l)%o===0:l=>a.count(0,l)%o===0):a)),a}const qv=Dn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);qv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Dn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):qv);qv.range;const Gi=1e3,Sa=Gi*60,Yi=Sa*60,no=Yi*24,_O=no*7,i$=no*30,J1=no*365,Ks=Dn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Gi)},(e,t)=>(t-e)/Gi,e=>e.getUTCSeconds());Ks.range;const NO=Dn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Gi)},(e,t)=>{e.setTime(+e+t*Sa)},(e,t)=>(t-e)/Sa,e=>e.getMinutes());NO.range;const CO=Dn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Sa)},(e,t)=>(t-e)/Sa,e=>e.getUTCMinutes());CO.range;const OO=Dn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Gi-e.getMinutes()*Sa)},(e,t)=>{e.setTime(+e+t*Yi)},(e,t)=>(t-e)/Yi,e=>e.getHours());OO.range;const EO=Dn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Yi)},(e,t)=>(t-e)/Yi,e=>e.getUTCHours());EO.range;const Rh=Dn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Sa)/no,e=>e.getDate()-1);Rh.range;const sy=Dn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/no,e=>e.getUTCDate()-1);sy.range;const Yz=Dn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/no,e=>Math.floor(e/no));Yz.range;function _l(e){return Dn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Sa)/_O)}const ly=_l(0),Fv=_l(1),Sae=_l(2),_ae=_l(3),uu=_l(4),Nae=_l(5),Cae=_l(6);ly.range;Fv.range;Sae.range;_ae.range;uu.range;Nae.range;Cae.range;function Nl(e){return Dn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/_O)}const cy=Nl(0),Uv=Nl(1),Oae=Nl(2),Eae=Nl(3),du=Nl(4),Aae=Nl(5),Tae=Nl(6);cy.range;Uv.range;Oae.range;Eae.range;du.range;Aae.range;Tae.range;const AO=Dn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());AO.range;const TO=Dn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());TO.range;const ro=Dn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());ro.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Dn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});ro.range;const ao=Dn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ao.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Dn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});ao.range;function Kz(e,t,n,r,a,o){const l=[[Ks,1,Gi],[Ks,5,5*Gi],[Ks,15,15*Gi],[Ks,30,30*Gi],[o,1,Sa],[o,5,5*Sa],[o,15,15*Sa],[o,30,30*Sa],[a,1,Yi],[a,3,3*Yi],[a,6,6*Yi],[a,12,12*Yi],[r,1,no],[r,2,2*no],[n,1,_O],[t,1,i$],[t,3,3*i$],[e,1,J1]];function u(f,m,p){const g=mw).right(l,g);if(x===l.length)return e.every(F_(f/J1,m/J1,p));if(x===0)return qv.every(Math.max(F_(f,m,p),1));const[j,b]=l[g/l[x-1][2]53)return null;"w"in le||(le.w=1),"Z"in le?(_e=tS(Qd(le.y,0,1)),me=_e.getUTCDay(),_e=me>4||me===0?Uv.ceil(_e):Uv(_e),_e=sy.offset(_e,(le.V-1)*7),le.y=_e.getUTCFullYear(),le.m=_e.getUTCMonth(),le.d=_e.getUTCDate()+(le.w+6)%7):(_e=eS(Qd(le.y,0,1)),me=_e.getDay(),_e=me>4||me===0?Fv.ceil(_e):Fv(_e),_e=Rh.offset(_e,(le.V-1)*7),le.y=_e.getFullYear(),le.m=_e.getMonth(),le.d=_e.getDate()+(le.w+6)%7)}else("W"in le||"U"in le)&&("w"in le||(le.w="u"in le?le.u%7:"W"in le?1:0),me="Z"in le?tS(Qd(le.y,0,1)).getUTCDay():eS(Qd(le.y,0,1)).getDay(),le.m=0,le.d="W"in le?(le.w+6)%7+le.W*7-(me+5)%7:le.w+le.U*7-(me+6)%7);return"Z"in le?(le.H+=le.Z/100|0,le.M+=le.Z%100,tS(le)):eS(le)}}function M(Z,pe,je,le){for(var Re=0,_e=pe.length,me=je.length,ve,Le;Re<_e;){if(le>=me)return-1;if(ve=pe.charCodeAt(Re++),ve===37){if(ve=pe.charAt(Re++),Le=C[ve in o$?pe.charAt(Re++):ve],!Le||(le=Le(Z,je,le))<0)return-1}else if(ve!=je.charCodeAt(le++))return-1}return le}function I(Z,pe,je){var le=f.exec(pe.slice(je));return le?(Z.p=m.get(le[0].toLowerCase()),je+le[0].length):-1}function z(Z,pe,je){var le=x.exec(pe.slice(je));return le?(Z.w=j.get(le[0].toLowerCase()),je+le[0].length):-1}function D(Z,pe,je){var le=p.exec(pe.slice(je));return le?(Z.w=g.get(le[0].toLowerCase()),je+le[0].length):-1}function H(Z,pe,je){var le=N.exec(pe.slice(je));return le?(Z.m=A.get(le[0].toLowerCase()),je+le[0].length):-1}function V(Z,pe,je){var le=b.exec(pe.slice(je));return le?(Z.m=w.get(le[0].toLowerCase()),je+le[0].length):-1}function F(Z,pe,je){return M(Z,t,pe,je)}function G(Z,pe,je){return M(Z,n,pe,je)}function L(Z,pe,je){return M(Z,r,pe,je)}function R(Z){return l[Z.getDay()]}function U(Z){return o[Z.getDay()]}function K(Z){return d[Z.getMonth()]}function te(Z){return u[Z.getMonth()]}function $(Z){return a[+(Z.getHours()>=12)]}function B(Z){return 1+~~(Z.getMonth()/3)}function Y(Z){return l[Z.getUTCDay()]}function ne(Z){return o[Z.getUTCDay()]}function oe(Z){return d[Z.getUTCMonth()]}function xe(Z){return u[Z.getUTCMonth()]}function ee(Z){return a[+(Z.getUTCHours()>=12)]}function ae(Z){return 1+~~(Z.getUTCMonth()/3)}return{format:function(Z){var pe=k(Z+="",E);return pe.toString=function(){return Z},pe},parse:function(Z){var pe=O(Z+="",!1);return pe.toString=function(){return Z},pe},utcFormat:function(Z){var pe=k(Z+="",T);return pe.toString=function(){return Z},pe},utcParse:function(Z){var pe=O(Z+="",!0);return pe.toString=function(){return Z},pe}}}var o$={"-":"",_:" ",0:"0"},Gn=/^\s*\d+/,$ae=/^%/,Iae=/[\\^$*+?|[\]().{}]/g;function vt(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",o=a.length;return r+(o[t.toLowerCase(),n]))}function Bae(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function zae(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function qae(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Fae(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Uae(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function s$(e,t,n){var r=Gn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function l$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Hae(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function Wae(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Vae(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function c$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Gae(e,t,n){var r=Gn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function u$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Yae(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Kae(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Xae(e,t,n){var r=Gn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function Zae(e,t,n){var r=Gn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Qae(e,t,n){var r=$ae.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Jae(e,t,n){var r=Gn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function eie(e,t,n){var r=Gn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function d$(e,t){return vt(e.getDate(),t,2)}function tie(e,t){return vt(e.getHours(),t,2)}function nie(e,t){return vt(e.getHours()%12||12,t,2)}function rie(e,t){return vt(1+Rh.count(ro(e),e),t,3)}function Xz(e,t){return vt(e.getMilliseconds(),t,3)}function aie(e,t){return Xz(e,t)+"000"}function iie(e,t){return vt(e.getMonth()+1,t,2)}function oie(e,t){return vt(e.getMinutes(),t,2)}function sie(e,t){return vt(e.getSeconds(),t,2)}function lie(e){var t=e.getDay();return t===0?7:t}function cie(e,t){return vt(ly.count(ro(e)-1,e),t,2)}function Zz(e){var t=e.getDay();return t>=4||t===0?uu(e):uu.ceil(e)}function uie(e,t){return e=Zz(e),vt(uu.count(ro(e),e)+(ro(e).getDay()===4),t,2)}function die(e){return e.getDay()}function fie(e,t){return vt(Fv.count(ro(e)-1,e),t,2)}function hie(e,t){return vt(e.getFullYear()%100,t,2)}function mie(e,t){return e=Zz(e),vt(e.getFullYear()%100,t,2)}function pie(e,t){return vt(e.getFullYear()%1e4,t,4)}function vie(e,t){var n=e.getDay();return e=n>=4||n===0?uu(e):uu.ceil(e),vt(e.getFullYear()%1e4,t,4)}function gie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+vt(t/60|0,"0",2)+vt(t%60,"0",2)}function f$(e,t){return vt(e.getUTCDate(),t,2)}function yie(e,t){return vt(e.getUTCHours(),t,2)}function xie(e,t){return vt(e.getUTCHours()%12||12,t,2)}function bie(e,t){return vt(1+sy.count(ao(e),e),t,3)}function Qz(e,t){return vt(e.getUTCMilliseconds(),t,3)}function wie(e,t){return Qz(e,t)+"000"}function jie(e,t){return vt(e.getUTCMonth()+1,t,2)}function Sie(e,t){return vt(e.getUTCMinutes(),t,2)}function _ie(e,t){return vt(e.getUTCSeconds(),t,2)}function Nie(e){var t=e.getUTCDay();return t===0?7:t}function Cie(e,t){return vt(cy.count(ao(e)-1,e),t,2)}function Jz(e){var t=e.getUTCDay();return t>=4||t===0?du(e):du.ceil(e)}function Oie(e,t){return e=Jz(e),vt(du.count(ao(e),e)+(ao(e).getUTCDay()===4),t,2)}function Eie(e){return e.getUTCDay()}function Aie(e,t){return vt(Uv.count(ao(e)-1,e),t,2)}function Tie(e,t){return vt(e.getUTCFullYear()%100,t,2)}function kie(e,t){return e=Jz(e),vt(e.getUTCFullYear()%100,t,2)}function Mie(e,t){return vt(e.getUTCFullYear()%1e4,t,4)}function Pie(e,t){var n=e.getUTCDay();return e=n>=4||n===0?du(e):du.ceil(e),vt(e.getUTCFullYear()%1e4,t,4)}function Rie(){return"+0000"}function h$(){return"%"}function m$(e){return+e}function p$(e){return Math.floor(+e/1e3)}var Sc,e6,t6;Die({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function Die(e){return Sc=Dae(e),e6=Sc.format,Sc.parse,t6=Sc.utcFormat,Sc.utcParse,Sc}function $ie(e){return new Date(e)}function Iie(e){return e instanceof Date?+e:+new Date(+e)}function kO(e,t,n,r,a,o,l,u,d,f){var m=gO(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),b=f("%I:%M"),w=f("%I %p"),N=f("%a %d"),A=f("%b %d"),E=f("%B"),T=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,o)=>Cre(e,o/r))},n.copy=function(){return i6(t).domain(e)},uo.apply(n,arguments)}function dy(){var e=0,t=.5,n=1,r=1,a,o,l,u,d,f=jr,m,p=!1,g;function x(b){return isNaN(b=+b)?g:(b=.5+((b=+m(b))-o)*(r*bn}return rS=e,rS}var aS,x$;function Fie(){if(x$)return aS;x$=1;var e=fy(),t=c6(),n=Fu();function r(a){return a&&a.length?e(a,n,t):void 0}return aS=r,aS}var Uie=Fie();const hy=St(Uie);var iS,b$;function u6(){if(b$)return iS;b$=1;function e(t,n){return te.e^o.s<0?1:-1;for(r=o.d.length,a=e.d.length,t=0,n=re.d[t]^o.s<0?1:-1;return r===a?0:r>a^o.s<0?1:-1};Ee.decimalPlaces=Ee.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*Xt;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Ee.dividedBy=Ee.div=function(e){return eo(this,new this.constructor(e))};Ee.dividedToIntegerBy=Ee.idiv=function(e){var t=this,n=t.constructor;return Bt(eo(t,new n(e),0,1),n.precision)};Ee.equals=Ee.eq=function(e){return!this.cmp(e)};Ee.exponent=function(){return gn(this)};Ee.greaterThan=Ee.gt=function(e){return this.cmp(e)>0};Ee.greaterThanOrEqualTo=Ee.gte=function(e){return this.cmp(e)>=0};Ee.isInteger=Ee.isint=function(){return this.e>this.d.length-2};Ee.isNegative=Ee.isneg=function(){return this.s<0};Ee.isPositive=Ee.ispos=function(){return this.s>0};Ee.isZero=function(){return this.s===0};Ee.lessThan=Ee.lt=function(e){return this.cmp(e)<0};Ee.lessThanOrEqualTo=Ee.lte=function(e){return this.cmp(e)<1};Ee.logarithm=Ee.log=function(e){var t,n=this,r=n.constructor,a=r.precision,o=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ea))throw Error(Ca+"NaN");if(n.s<1)throw Error(Ca+(n.s?"NaN":"-Infinity"));return n.eq(ea)?new r(0):(Qt=!1,t=eo(qf(n,o),qf(e,o),o),Qt=!0,Bt(t,a))};Ee.minus=Ee.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?m6(t,e):f6(t,(e.s=-e.s,e))};Ee.modulo=Ee.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(Ca+"NaN");return n.s?(Qt=!1,t=eo(n,e,0,1).times(e),Qt=!0,n.minus(t)):Bt(new r(n),a)};Ee.naturalExponential=Ee.exp=function(){return h6(this)};Ee.naturalLogarithm=Ee.ln=function(){return qf(this)};Ee.negated=Ee.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Ee.plus=Ee.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?f6(t,e):m6(t,(e.s=-e.s,e))};Ee.precision=Ee.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(al+e);if(t=gn(a)+1,r=a.d.length-1,n=r*Xt+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Ee.squareRoot=Ee.sqrt=function(){var e,t,n,r,a,o,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Ca+"NaN")}for(e=gn(u),Qt=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=si(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Wu((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(o=r,r=o.plus(eo(u,o,l+2)).times(.5),si(o.d).slice(0,l)===(t=si(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Bt(o,n+1,0),o.times(o).eq(u)){r=o;break}}else if(t!="9999")break;l+=4}return Qt=!0,Bt(r,n)};Ee.times=Ee.mul=function(e){var t,n,r,a,o,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=o[a]+x[r]*g[a-r-1]+t,o[a--]=u%zn|0,t=u/zn|0;o[a]=(o[a]+t)%zn|0}for(;!o[--l];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,Qt?Bt(e,p.precision):e};Ee.toDecimalPlaces=Ee.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(vi(e,0,Hu),t===void 0?t=r.rounding:vi(t,0,8),Bt(n,e+gn(n)+1,t))};Ee.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=ml(r,!0):(vi(e,0,Hu),t===void 0?t=a.rounding:vi(t,0,8),r=Bt(new a(r),e+1,t),n=ml(r,!0,e+1)),n};Ee.toFixed=function(e,t){var n,r,a=this,o=a.constructor;return e===void 0?ml(a):(vi(e,0,Hu),t===void 0?t=o.rounding:vi(t,0,8),r=Bt(new o(a),e+gn(a)+1,t),n=ml(r.abs(),!1,e+gn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Ee.toInteger=Ee.toint=function(){var e=this,t=e.constructor;return Bt(new t(e),gn(e)+1,t.rounding)};Ee.toNumber=function(){return+this};Ee.toPower=Ee.pow=function(e){var t,n,r,a,o,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ea);if(u=new d(u),!u.s){if(e.s<1)throw Error(Ca+"Infinity");return u}if(u.eq(ea))return u;if(r=d.precision,e.eq(ea))return Bt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,o=u.s,l){if((n=m<0?-m:m)<=d6){for(a=new d(ea),t=Math.ceil(r/Xt+4),Qt=!1;n%2&&(a=a.times(u),C$(a.d,t)),n=Wu(n/2),n!==0;)u=u.times(u),C$(u.d,t);return Qt=!0,e.s<0?new d(ea).div(a):Bt(a,r)}}else if(o<0)throw Error(Ca+"NaN");return o=o<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,Qt=!1,a=e.times(qf(u,r+f)),Qt=!0,a=h6(a),a.s=o,a};Ee.toPrecision=function(e,t){var n,r,a=this,o=a.constructor;return e===void 0?(n=gn(a),r=ml(a,n<=o.toExpNeg||n>=o.toExpPos)):(vi(e,1,Hu),t===void 0?t=o.rounding:vi(t,0,8),a=Bt(new o(a),e,t),n=gn(a),r=ml(a,e<=n||n<=o.toExpNeg,e)),r};Ee.toSignificantDigits=Ee.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(vi(e,1,Hu),t===void 0?t=r.rounding:vi(t,0,8)),Bt(new r(n),e,t)};Ee.toString=Ee.valueOf=Ee.val=Ee.toJSON=Ee[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=gn(e),n=e.constructor;return ml(e,t<=n.toExpNeg||t>=n.toExpPos)};function f6(e,t){var n,r,a,o,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),Qt?Bt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),o=l-a,o){for(o<0?(r=d,o=-o,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/Xt),u=l>u?l+1:u+1,o>u&&(o=u,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(u=d.length,o=f.length,u-o<0&&(o=u,r=f,f=d,d=r),n=0;o;)n=(d[--o]=d[o]+f[o]+n)/zn|0,d[o]%=zn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,Qt?Bt(t,p):t}function vi(e,t,n){if(e!==~~e||en)throw Error(al+e)}function si(e){var t,n,r,a=e.length-1,o="",l=e[0];if(a>0){for(o+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,o){for(var l=0;o--;)r[o]-=l,l=r[o]1;)r.shift()}return function(r,a,o,l){var u,d,f,m,p,g,x,j,b,w,N,A,E,T,C,k,O,M,I=r.constructor,z=r.s==a.s?1:-1,D=r.d,H=a.d;if(!r.s)return new I(r);if(!a.s)throw Error(Ca+"Division by zero");for(d=r.e-a.e,O=H.length,C=D.length,x=new I(z),j=x.d=[],f=0;H[f]==(D[f]||0);)++f;if(H[f]>(D[f]||0)&&--d,o==null?A=o=I.precision:l?A=o+(gn(r)-gn(a))+1:A=o,A<0)return new I(0);if(A=A/Xt+2|0,f=0,O==1)for(m=0,H=H[0],A++;(f1&&(H=e(H,m),D=e(D,m),O=H.length,C=D.length),T=O,b=D.slice(0,O),w=b.length;w=zn/2&&++k;do m=0,u=t(H,b,O,w),u<0?(N=b[0],O!=w&&(N=N*zn+(b[1]||0)),m=N/k|0,m>1?(m>=zn&&(m=zn-1),p=e(H,m),g=p.length,w=b.length,u=t(p,b,g,w),u==1&&(m--,n(p,O16)throw Error(RO+gn(e));if(!e.s)return new m(ea);for(Qt=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Us(2,f))/Math.LN10*2+5|0,u+=r,n=a=o=new m(ea),m.precision=u;;){if(a=Bt(a.times(e),u),n=n.times(++d),l=o.plus(eo(a,n,u)),si(l.d).slice(0,u)===si(o.d).slice(0,u)){for(;f--;)o=Bt(o.times(o),u);return m.precision=p,t==null?(Qt=!0,Bt(o,p)):o}o=l}}function gn(e){for(var t=e.e*Xt,n=e.d[0];n>=10;n/=10)t++;return t}function uS(e,t,n){if(t>e.LN10.sd())throw Qt=!0,n&&(e.precision=n),Error(Ca+"LN10 precision limit exceeded");return Bt(new e(e.LN10),t)}function qo(e){for(var t="";e--;)t+="0";return t}function qf(e,t){var n,r,a,o,l,u,d,f,m,p=1,g=10,x=e,j=x.d,b=x.constructor,w=b.precision;if(x.s<1)throw Error(Ca+(x.s?"NaN":"-Infinity"));if(x.eq(ea))return new b(0);if(t==null?(Qt=!1,f=w):f=t,x.eq(10))return t==null&&(Qt=!0),uS(b,f);if(f+=g,b.precision=f,n=si(j),r=n.charAt(0),o=gn(x),Math.abs(o)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=si(x.d),r=n.charAt(0),p++;o=gn(x),r>1?(x=new b("0."+n),o++):x=new b(r+"."+n.slice(1))}else return d=uS(b,f+2,w).times(o+""),x=qf(new b(r+"."+n.slice(1)),f-g).plus(d),b.precision=w,t==null?(Qt=!0,Bt(x,w)):x;for(u=l=x=eo(x.minus(ea),x.plus(ea),f),m=Bt(x.times(x),f),a=3;;){if(l=Bt(l.times(m),f),d=u.plus(eo(l,new b(a),f)),si(d.d).slice(0,f)===si(u.d).slice(0,f))return u=u.times(2),o!==0&&(u=u.plus(uS(b,f+2,w).times(o+""))),u=eo(u,new b(p),f),b.precision=w,t==null?(Qt=!0,Bt(u,w)):u;u=d,a+=2}}function N$(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Wu(n/Xt),e.d=[],r=(n+1)%Xt,n<0&&(r+=Xt),rHv||e.e<-Hv))throw Error(RO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Bt(e,t,n){var r,a,o,l,u,d,f,m,p=e.d;for(l=1,o=p[0];o>=10;o/=10)l++;if(r=t-l,r<0)r+=Xt,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/Xt),o=p.length,m>=o)return e;for(f=o=p[m],l=1;o>=10;o/=10)l++;r%=Xt,a=r-Xt+l}if(n!==void 0&&(o=Us(10,l-a-1),u=f/o%10|0,d=t<0||p[m+1]!==void 0||f%o,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Us(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(o=gn(e),p.length=1,t=t-o-1,p[0]=Us(10,(Xt-t%Xt)%Xt),e.e=Wu(-t/Xt)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,o=1,m--):(p.length=m+1,o=Us(10,Xt-r),p[m]=a>0?(f/Us(10,l-a)%Us(10,a)|0)*o:0),d)for(;;)if(m==0){(p[0]+=o)==zn&&(p[0]=1,++e.e);break}else{if(p[m]+=o,p[m]!=zn)break;p[m--]=0,o=1}for(r=p.length;p[--r]===0;)p.pop();if(Qt&&(e.e>Hv||e.e<-Hv))throw Error(RO+gn(e));return e}function m6(e,t){var n,r,a,o,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),Qt?Bt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/Xt),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?o=o.charAt(0)+"."+o.slice(1)+qo(r):l>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(a<0?"e":"e+")+a):a<0?(o="0."+qo(-a-1)+o,n&&(r=n-l)>0&&(o+=qo(r))):a>=l?(o+=qo(a+1-l),n&&(r=n-a-1)>0&&(o=o+"."+qo(r))):((r=a+1)0&&(a+1===l&&(o+="."),o+=qo(r))),e.s<0?"-"+o:o}function C$(e,t){if(e.length>t)return e.length=t,!0}function p6(e){var t,n,r;function a(o){var l=this;if(!(l instanceof a))return new a(o);if(l.constructor=a,o instanceof a){l.s=o.s,l.e=o.e,l.d=(o=o.d)?o.slice():o;return}if(typeof o=="number"){if(o*0!==0)throw Error(al+o);if(o>0)l.s=1;else if(o<0)o=-o,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(o===~~o&&o<1e7){l.e=0,l.d=[o];return}return N$(l,o.toString())}else if(typeof o!="string")throw Error(al+o);if(o.charCodeAt(0)===45?(o=o.slice(1),l.s=-1):l.s=1,Jie.test(o))N$(l,o);else throw Error(al+o)}if(a.prototype=Ee,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=p6,a.config=a.set=eoe,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(al+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(al+n+": "+r);return this}var DO=p6(Qie);ea=new DO(1);const Rt=DO;function toe(e){return ioe(e)||aoe(e)||roe(e)||noe()}function noe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function roe(e,t){if(e){if(typeof e=="string")return G_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return G_(e,t)}}function aoe(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function ioe(e){if(Array.isArray(e))return G_(e)}function G_(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,O$(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,o=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,o=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw o}}return n}}function boe(e){if(Array.isArray(e))return e}function b6(e){var t=Ff(e,2),n=t[0],r=t[1],a=n,o=r;return n>r&&(a=r,o=n),[a,o]}function w6(e,t,n){if(e.lte(0))return new Rt(0);var r=vy.getDigitCount(e.toNumber()),a=new Rt(10).pow(r),o=e.div(a),l=r!==1?.05:.1,u=new Rt(Math.ceil(o.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new Rt(Math.ceil(d))}function woe(e,t,n){var r=1,a=new Rt(e);if(!a.isint()&&n){var o=Math.abs(e);o<1?(r=new Rt(10).pow(vy.getDigitCount(e)-1),a=new Rt(Math.floor(a.div(r).toNumber())).mul(r)):o>1&&(a=new Rt(Math.floor(e)))}else e===0?a=new Rt(Math.floor((t-1)/2)):n||(a=new Rt(Math.floor(e)));var l=Math.floor((t-1)/2),u=coe(loe(function(d){return a.add(new Rt(d-l).mul(r)).toNumber()}),Y_);return u(0,t)}function j6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new Rt(0),tickMin:new Rt(0),tickMax:new Rt(0)};var o=w6(new Rt(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new Rt(0):(l=new Rt(e).add(t).div(2),l=l.sub(new Rt(l).mod(o)));var u=Math.ceil(l.sub(e).div(o).toNumber()),d=Math.ceil(new Rt(t).sub(l).div(o).toNumber()),f=u+d+1;return f>n?j6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:o,tickMin:l.sub(new Rt(u).mul(o)),tickMax:l.add(new Rt(d).mul(o))})}function joe(e){var t=Ff(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=b6([n,r]),d=Ff(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(X_(Y_(0,a-1).map(function(){return 1/0}))):[].concat(X_(Y_(0,a-1).map(function(){return-1/0})),[m]);return n>r?K_(p):p}if(f===m)return woe(f,a,o);var g=j6(f,m,l,o),x=g.step,j=g.tickMin,b=g.tickMax,w=vy.rangeStep(j,b.add(new Rt(.1).mul(x)),x);return n>r?K_(w):w}function Soe(e,t){var n=Ff(e,2),r=n[0],a=n[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=b6([r,a]),u=Ff(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=w6(new Rt(f).sub(d).div(m-1),o,0),g=[].concat(X_(vy.rangeStep(new Rt(d),new Rt(f).sub(new Rt(.99).mul(p)),p)),[f]);return r>a?K_(g):g}var _oe=y6(joe),Noe=y6(Soe),Coe=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function fu(e){"@babel/helpers - typeof";return fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fu(e)}function Wv(){return Wv=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Poe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Roe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Doe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(o&&o.axisType==="angleAxis"&&Math.abs(Math.abs(o.range[1]-o.range[0])-360)<=1e-6)for(var d=o.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(br(p-m)!==br(g-p)){var j=[];if(br(g-p)===br(d[1]-d[0])){x=g;var b=p+d[1]-d[0];j[0]=Math.min(b,(b+m)/2),j[1]=Math.max(b,(b+m)/2)}else{x=m;var w=g+d[1]-d[0];j[0]=Math.min(p,(w+p)/2),j[1]=Math.max(p,(w+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var A=Math.min(m,g),E=Math.max(m,g);if(t>(A+p)/2&&t<=(E+p)/2){l=a[f].index;break}}}else for(var T=0;T0&&T(r[T].coordinate+r[T-1].coordinate)/2&&t<=(r[T].coordinate+r[T+1].coordinate)/2||T===u-1&&t>(r[T].coordinate+r[T-1].coordinate)/2){l=r[T].index;break}return l},$O=function(t){var n,r=t,a=r.type.displayName,o=(n=t.type)!==null&&n!==void 0&&n.defaultProps?sn(sn({},t.type.defaultProps),t.props):t.props,l=o.stroke,u=o.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},Qoe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,o=a===void 0?{}:a;if(!o)return{};for(var l={},u=Object.keys(o),d=0,f=u.length;d=0});if(N&&N.length){var A=N[0].type.defaultProps,E=A!==void 0?sn(sn({},A),N[0].props):N[0].props,T=E.barSize,C=E[w];l[C]||(l[C]=[]);var k=Ge(T)?n:T;l[C].push({item:N[0],stackList:N.slice(1),barSize:Ge(k)?void 0:wr(k,r,0)})}}return l},Joe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,o=t.sizeList,l=o===void 0?[]:o,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=wr(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(T,C){return T+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var b=(a-j)/2>>0,w={offset:b-f,size:0};m=l.reduce(function(T,C){var k={item:C.item,position:{offset:w.offset+w.size+f,size:g?x:C.barSize}},O=[].concat(T$(T),[k]);return w=O[O.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){O.push({item:M,position:w})}),O},p)}else{var N=wr(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var A=(a-2*N-(d-1)*f)/d;A>1&&(A>>=0);var E=u===+u?Math.min(A,u):A;m=l.reduce(function(T,C,k){var O=[].concat(T$(T),[{item:C.item,position:{offset:N+(A+f)*k+(A-E)/2,size:E}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){O.push({item:M,position:O[O.length-1].position})}),O},p)}return m},ese=function(t,n,r,a){var o=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=C6({children:o,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,b=f.layout;if((b==="vertical"||b==="horizontal"&&j==="middle")&&x!=="center"&&Ce(t[x]))return sn(sn({},t),{},Wc({},x,t[x]+(p||0)));if((b==="horizontal"||b==="vertical"&&x==="center")&&j!=="middle"&&Ce(t[j]))return sn(sn({},t),{},Wc({},j,t[j]+(g||0)))}return t},tse=function(t,n,r){return Ge(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},O6=function(t,n,r,a,o){var l=n.props.children,u=na(l,$h).filter(function(f){return tse(a,o,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=kn(m,r);if(Ge(p))return f;var g=Array.isArray(p)?[my(p),hy(p)]:[p,p],x=d.reduce(function(j,b){var w=kn(m,b,0),N=g[0]-Math.abs(Array.isArray(w)?w[0]:w),A=g[1]+Math.abs(Array.isArray(w)?w[1]:w);return[Math.min(N,j[0]),Math.max(A,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},nse=function(t,n,r,a,o){var l=n.map(function(u){return O6(t,u,r,o,a)}).filter(function(u){return!Ge(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},E6=function(t,n,r,a,o){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&O6(t,d,f,a)||jf(t,f,r,o)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?br(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=o?o.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!Ah(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:o?o[p]:p,index:g,offset:f}})},dS=new WeakMap,Dp=function(t,n){if(typeof n!="function")return t;dS.has(t)||dS.set(t,new WeakMap);var r=dS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},k6=function(t,n,r){var a=t.scale,o=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:$f(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:zv(),realScaleType:"linear"}:o==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:wf(),realScaleType:"point"}:o==="category"?{scale:$f(),realScaleType:"band"}:{scale:zv(),realScaleType:"linear"};if(dl(a)){var d="scale".concat(Qg(a));return{scale:(v$[d]||wf)(),realScaleType:v$[d]?d:"point"}}return We(a)?{scale:a}:{scale:wf(),realScaleType:"point"}},M$=1e-4,M6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),o=Math.min(a[0],a[1])-M$,l=Math.max(a[0],a[1])+M$,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},rse=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(o[1]=a),o[0]>a&&(o[0]=a),o[1]=0?(t[u][r][0]=o,t[u][r][1]=o+d,o=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},ose=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=o,t[l][r][1]=o+u,o=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},sse={sign:ise,expand:YJ,none:au,silhouette:KJ,wiggle:XJ,positive:ose},lse=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),o=sse[r],l=GJ().keys(a).value(function(u,d){return+kn(u,d,0)}).order(A_).offset(o);return l(t)},cse=function(t,n,r,a,o,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?sn(sn({},g.type.defaultProps),g.props):g.props,b=j.stackId,w=j.hide;if(w)return p;var N=j[r],A=p[N]||{hasStack:!1,stackGroups:{}};if(Mn(b)){var E=A.stackGroups[b]||{numericAxisId:r,cateAxisId:a,items:[]};E.items.push(g),A.hasStack=!0,A.stackGroups[b]=E}else A.stackGroups[qu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return sn(sn({},p),{},Wc({},N,A))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(b,w){var N=x.stackGroups[w];return sn(sn({},b),{},Wc({},w,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:lse(t,N.items,o)}))},j)}return sn(sn({},p),{},Wc({},g,x))},m)},P6=function(t,n){var r=n.realScaleType,a=n.type,o=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(o&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=_oe(f,o,u);return t.domain([my(m),hy(m)]),{niceTicks:m}}if(o&&a==="number"){var p=t.domain(),g=Noe(p,o,u);return{niceTicks:g}}return null};function P$(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,o=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Ge(a[t.dataKey])){var u=jv(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[o]?n[o].coordinate+r/2:null}var d=kn(a,Ge(l)?t.dataKey:l);return Ge(d)?null:t.scale(d)}var R$=function(t){var n=t.axis,r=t.ticks,a=t.offset,o=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=kn(l,n.dataKey,n.domain[u]);return Ge(d)?null:n.scale(d)-o/2+a},use=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),o=Math.max(r[0],r[1]);return a<=0&&o>=0?0:o<0?o:a}return r[0]},dse=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?sn(sn({},t.type.defaultProps),t.props):t.props,o=a.stackId;if(Mn(o)){var l=n[o];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},fse=function(t){return t.reduce(function(n,r){return[my(r.concat([n[0]]).filter(Ce)),hy(r.concat([n[1]]).filter(Ce))]},[1/0,-1/0])},R6=function(t,n,r){return Object.keys(t).reduce(function(a,o){var l=t[o],u=l.stackedData,d=u.reduce(function(f,m){var p=fse(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},D$=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,$$=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,eN=function(t,n,r){if(We(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ce(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(D$.test(t[0])){var o=+D$.exec(t[0])[1];a[0]=n[0]-o}else We(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ce(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if($$.test(t[1])){var l=+$$.exec(t[1])[1];a[1]=n[1]+l}else We(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},Gv=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var o=uO(n,function(p){return p.coordinate}),l=1/0,u=1,d=o.length;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},wse=function(t,n,r,a,o){var l=t.width,u=t.height,d=t.startAngle,f=t.endAngle,m=wr(t.cx,l,l/2),p=wr(t.cy,u,u/2),g=I6(l,u,r),x=wr(t.innerRadius,g,0),j=wr(t.outerRadius,g,g*.8),b=Object.keys(n);return b.reduce(function(w,N){var A=n[N],E=A.domain,T=A.reversed,C;if(Ge(A.range))a==="angleAxis"?C=[d,f]:a==="radiusAxis"&&(C=[x,j]),T&&(C=[C[1],C[0]]);else{C=A.range;var k=C,O=pse(k,2);d=O[0],f=O[1]}var M=k6(A,o),I=M.realScaleType,z=M.scale;z.domain(E).range(C),M6(z);var D=P6(z,Wi(Wi({},A),{},{realScaleType:I})),H=Wi(Wi(Wi({},A),D),{},{range:C,radius:j,realScaleType:I,scale:z,cx:m,cy:p,innerRadius:x,outerRadius:j,startAngle:d,endAngle:f});return Wi(Wi({},w),{},$6({},N,H))},{})},jse=function(t,n){var r=t.x,a=t.y,o=n.x,l=n.y;return Math.sqrt(Math.pow(r-o,2)+Math.pow(a-l,2))},Sse=function(t,n){var r=t.x,a=t.y,o=n.cx,l=n.cy,u=jse({x:r,y:a},{x:o,y:l});if(u<=0)return{radius:u};var d=(r-o)/u,f=Math.acos(d);return a>l&&(f=2*Math.PI-f),{radius:u,angle:bse(f),angleInRadian:f}},_se=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),o=Math.floor(r/360),l=Math.min(a,o);return{startAngle:n-l*360,endAngle:r-l*360}},Nse=function(t,n){var r=n.startAngle,a=n.endAngle,o=Math.floor(r/360),l=Math.floor(a/360),u=Math.min(o,l);return t+u*360},z$=function(t,n){var r=t.x,a=t.y,o=Sse({x:r,y:a},n),l=o.radius,u=o.angle,d=n.innerRadius,f=n.outerRadius;if(lf)return!1;if(l===0)return!0;var m=_se(n),p=m.startAngle,g=m.endAngle,x=u,j;if(p<=g){for(;x>g;)x-=360;for(;x=p&&x<=g}else{for(;x>p;)x-=360;for(;x=g&&x<=p}return j?Wi(Wi({},n),{},{radius:l,angle:Nse(x,n)}):null},L6=function(t){return!y.isValidElement(t)&&!We(t)&&typeof t!="boolean"?t.className:""};function Vf(e){"@babel/helpers - typeof";return Vf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vf(e)}var Cse=["offset"];function Ose(e){return kse(e)||Tse(e)||Ase(e)||Ese()}function Ese(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ase(e,t){if(e){if(typeof e=="string")return tN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tN(e,t)}}function Tse(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function kse(e){if(Array.isArray(e))return tN(e)}function tN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Pse(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function q$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Tn(e){for(var t=1;t=0?1:-1,E,T;a==="insideStart"?(E=x+A*l,T=b):a==="insideEnd"?(E=j-A*l,T=!b):a==="end"&&(E=j+A*l,T=b),T=N<=0?T:!T;var C=Gt(f,m,w,E),k=Gt(f,m,w,E+(T?1:-1)*359),O="M".concat(C.x,",").concat(C.y,` - A`).concat(w,",").concat(w,",0,1,").concat(T?0:1,`, - `).concat(k.x,",").concat(k.y),M=Ge(t.id)?qu("recharts-radial-line-"):t.id;return W.createElement("text",Gf({},r,{dominantBaseline:"central",className:Ye("recharts-radial-bar-label",u)}),W.createElement("defs",null,W.createElement("path",{id:M,d:O})),W.createElement("textPath",{xlinkHref:"#".concat(M)},n))},zse=function(t){var n=t.viewBox,r=t.offset,a=t.position,o=n,l=o.cx,u=o.cy,d=o.innerRadius,f=o.outerRadius,m=o.startAngle,p=o.endAngle,g=(m+p)/2;if(a==="outside"){var x=Gt(l,u,f+r,g),j=x.x,b=x.y;return{x:j,y:b,textAnchor:j>=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var w=(d+f)/2,N=Gt(l,u,w,g),A=N.x,E=N.y;return{x:A,y:E,textAnchor:"middle",verticalAnchor:"middle"}},qse=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,o=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",b=f>=0?1:-1,w=b*a,N=b>0?"end":"start",A=b>0?"start":"end";if(o==="top"){var E={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return Tn(Tn({},E),r?{height:Math.max(d-r.y,0),width:f}:{})}if(o==="bottom"){var T={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return Tn(Tn({},T),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(o==="left"){var C={x:u-w,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return Tn(Tn({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(o==="right"){var k={x:u+f+w,y:d+m/2,textAnchor:A,verticalAnchor:"middle"};return Tn(Tn({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var O=r?{width:f,height:m}:{};return o==="insideLeft"?Tn({x:u+w,y:d+m/2,textAnchor:A,verticalAnchor:"middle"},O):o==="insideRight"?Tn({x:u+f-w,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},O):o==="insideTop"?Tn({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},O):o==="insideBottom"?Tn({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},O):o==="insideTopLeft"?Tn({x:u+w,y:d+g,textAnchor:A,verticalAnchor:j},O):o==="insideTopRight"?Tn({x:u+f-w,y:d+g,textAnchor:N,verticalAnchor:j},O):o==="insideBottomLeft"?Tn({x:u+w,y:d+m-g,textAnchor:A,verticalAnchor:x},O):o==="insideBottomRight"?Tn({x:u+f-w,y:d+m-g,textAnchor:N,verticalAnchor:x},O):zu(o)&&(Ce(o.x)||Gs(o.x))&&(Ce(o.y)||Gs(o.y))?Tn({x:u+wr(o.x,f),y:d+wr(o.y,m),textAnchor:"end",verticalAnchor:"end"},O):Tn({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},O)},Fse=function(t){return"cx"in t&&Ce(t.cx)};function qn(e){var t=e.offset,n=t===void 0?5:t,r=Mse(e,Cse),a=Tn({offset:n},r),o=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!o||Ge(u)&&Ge(d)&&!y.isValidElement(f)&&!We(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(We(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=Ise(a);var j=Fse(o),b=Be(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return Bse(a,x,b);var w=j?zse(a):qse(a);return W.createElement(hl,Gf({className:Ye("recharts-label",p)},b,w,{breakAll:g}),x)}qn.displayName="Label";var B6=function(t){var n=t.cx,r=t.cy,a=t.angle,o=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,b=t.width,w=t.height,N=t.clockWise,A=t.labelViewBox;if(A)return A;if(Ce(b)&&Ce(w)){if(Ce(p)&&Ce(g))return{x:p,y:g,width:b,height:w};if(Ce(x)&&Ce(j))return{x,y:j,width:b,height:w}}return Ce(p)&&Ce(g)?{x:p,y:g,width:0,height:0}:Ce(n)&&Ce(r)?{cx:n,cy:r,startAngle:o||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},Use=function(t,n){return t?t===!0?W.createElement(qn,{key:"label-implicit",viewBox:n}):Mn(t)?W.createElement(qn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===qn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(qn,{key:"label-implicit",content:t,viewBox:n}):We(t)?W.createElement(qn,{key:"label-implicit",content:t,viewBox:n}):zu(t)?W.createElement(qn,Gf({viewBox:n},t,{key:"label-implicit"})):null:null},Hse=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,o=B6(t),l=na(a,qn).map(function(d,f){return y.cloneElement(d,{viewBox:n||o,key:"label-".concat(f)})});if(!r)return l;var u=Use(t.label,n||o);return[u].concat(Ose(l))};qn.parseViewBox=B6;qn.renderCallByParent=Hse;var fS,F$;function Wse(){if(F$)return fS;F$=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return fS=e,fS}var Vse=Wse();const Gse=St(Vse);function Yf(e){"@babel/helpers - typeof";return Yf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yf(e)}var Yse=["valueAccessor"],Kse=["data","dataKey","clockWise","id","textBreakAll"];function Xse(e){return ele(e)||Jse(e)||Qse(e)||Zse()}function Zse(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qse(e,t){if(e){if(typeof e=="string")return nN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nN(e,t)}}function Jse(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ele(e){if(Array.isArray(e))return nN(e)}function nN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var ile=function(t){return Array.isArray(t.value)?Gse(t.value):t.value};function to(e){var t=e.valueAccessor,n=t===void 0?ile:t,r=W$(e,Yse),a=r.data,o=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=W$(r,Kse);return!a||!a.length?null:W.createElement(pt,{className:"recharts-label-list"},a.map(function(m,p){var g=Ge(o)?n(m,p):kn(m&&m.payload,o),x=Ge(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(qn,Kv({},Be(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:qn.parseViewBox(Ge(l)?m:H$(H$({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}to.displayName="LabelList";function ole(e,t){return e?e===!0?W.createElement(to,{key:"labelList-implicit",data:t}):W.isValidElement(e)||We(e)?W.createElement(to,{key:"labelList-implicit",data:t,content:e}):zu(e)?W.createElement(to,Kv({data:t},e,{key:"labelList-implicit"})):null:null}function sle(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=na(r,to).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var o=ole(e.label,t);return[o].concat(Xse(a))}to.renderCallByParent=sle;function Kf(e){"@babel/helpers - typeof";return Kf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Kf(e)}function rN(){return rN=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(l>f),`, - `).concat(p.x,",").concat(p.y,` - `);if(a>0){var x=Gt(n,r,a,l),j=Gt(n,r,a,f);g+="L ".concat(j.x,",").concat(j.y,` - A `).concat(a,",").concat(a,`,0, - `).concat(+(Math.abs(d)>180),",").concat(+(l<=f),`, - `).concat(x.x,",").concat(x.y," Z")}else g+="L ".concat(n,",").concat(r," Z");return g},fle=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,o=t.outerRadius,l=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,m=t.endAngle,p=br(m-f),g=$p({cx:n,cy:r,radius:o,angle:f,sign:p,cornerRadius:l,cornerIsExternal:d}),x=g.circleTangency,j=g.lineTangency,b=g.theta,w=$p({cx:n,cy:r,radius:o,angle:m,sign:-p,cornerRadius:l,cornerIsExternal:d}),N=w.circleTangency,A=w.lineTangency,E=w.theta,T=d?Math.abs(f-m):Math.abs(f-m)-b-E;if(T<0)return u?"M ".concat(j.x,",").concat(j.y,` - a`).concat(l,",").concat(l,",0,0,1,").concat(l*2,`,0 - a`).concat(l,",").concat(l,",0,0,1,").concat(-l*2,`,0 - `):z6({cx:n,cy:r,innerRadius:a,outerRadius:o,startAngle:f,endAngle:m});var C="M ".concat(j.x,",").concat(j.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(x.x,",").concat(x.y,` - A`).concat(o,",").concat(o,",0,").concat(+(T>180),",").concat(+(p<0),",").concat(N.x,",").concat(N.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(A.x,",").concat(A.y,` - `);if(a>0){var k=$p({cx:n,cy:r,radius:a,angle:f,sign:p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),O=k.circleTangency,M=k.lineTangency,I=k.theta,z=$p({cx:n,cy:r,radius:a,angle:m,sign:-p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),D=z.circleTangency,H=z.lineTangency,V=z.theta,F=d?Math.abs(f-m):Math.abs(f-m)-I-V;if(F<0&&l===0)return"".concat(C,"L").concat(n,",").concat(r,"Z");C+="L".concat(H.x,",").concat(H.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(D.x,",").concat(D.y,` - A`).concat(a,",").concat(a,",0,").concat(+(F>180),",").concat(+(p>0),",").concat(O.x,",").concat(O.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(M.x,",").concat(M.y,"Z")}else C+="L".concat(n,",").concat(r,"Z");return C},hle={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},q6=function(t){var n=G$(G$({},hle),t),r=n.cx,a=n.cy,o=n.innerRadius,l=n.outerRadius,u=n.cornerRadius,d=n.forceCornerRadius,f=n.cornerIsExternal,m=n.startAngle,p=n.endAngle,g=n.className;if(l0&&Math.abs(m-p)<360?w=fle({cx:r,cy:a,innerRadius:o,outerRadius:l,cornerRadius:Math.min(b,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):w=z6({cx:r,cy:a,innerRadius:o,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",rN({},Be(n,!0),{className:x,d:w,role:"img"}))};function Xf(e){"@babel/helpers - typeof";return Xf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xf(e)}function aN(){return aN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function Mle(e,t){return Cl(e.getTime(),t.getTime())}function Ple(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function Rle(e,t){return e===t}function a3(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),o=e.entries(),l,u,d=0;(l=o.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var Dle=Cl;function $le(e,t,n){var r=r3(e),a=r.length;if(r3(t).length!==a)return!1;for(;a-- >0;)if(!F6(e,t,n,r[a]))return!1;return!0}function rf(e,t,n){var r=t3(e),a=r.length;if(t3(t).length!==a)return!1;for(var o,l,u;a-- >0;)if(o=r[a],!F6(e,t,n,o)||(l=n3(e,o),u=n3(t,o),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function Ile(e,t){return Cl(e.valueOf(),t.valueOf())}function Lle(e,t){return e.source===t.source&&e.flags===t.flags}function i3(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),o=e.values(),l,u;(l=o.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function Ble(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function zle(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function F6(e,t,n,r){return(r===Tle||r===Ale||r===Ele)&&(e.$$typeof||t.$$typeof)?!0:Ole(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var qle="[object Arguments]",Fle="[object Boolean]",Ule="[object Date]",Hle="[object Error]",Wle="[object Map]",Vle="[object Number]",Gle="[object Object]",Yle="[object RegExp]",Kle="[object Set]",Xle="[object String]",Zle="[object URL]",Qle=Array.isArray,o3=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,s3=Object.assign,Jle=Object.prototype.toString.call.bind(Object.prototype.toString);function ece(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,o=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(b,w,N){if(b===w)return!0;if(b==null||w==null)return!1;var A=typeof b;if(A!==typeof w)return!1;if(A!=="object")return A==="number"?l(b,w,N):A==="function"?a(b,w,N):!1;var E=b.constructor;if(E!==w.constructor)return!1;if(E===Object)return u(b,w,N);if(Qle(b))return t(b,w,N);if(o3!=null&&o3(b))return p(b,w,N);if(E===Date)return n(b,w,N);if(E===RegExp)return f(b,w,N);if(E===Map)return o(b,w,N);if(E===Set)return m(b,w,N);var T=Jle(b);if(T===Ule)return n(b,w,N);if(T===Yle)return f(b,w,N);if(T===Wle)return o(b,w,N);if(T===Kle)return m(b,w,N);if(T===Gle)return typeof b.then!="function"&&typeof w.then!="function"&&u(b,w,N);if(T===Zle)return g(b,w,N);if(T===Hle)return r(b,w,N);if(T===qle)return u(b,w,N);if(T===Fle||T===Vle||T===Xle)return d(b,w,N);if(x){var C=x[T];if(!C){var k=Cle(b);k&&(C=x[k])}if(C)return C(b,w,N)}return!1}}function tce(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?rf:kle,areDatesEqual:Mle,areErrorsEqual:Ple,areFunctionsEqual:Rle,areMapsEqual:r?e3(a3,rf):a3,areNumbersEqual:Dle,areObjectsEqual:r?rf:$le,arePrimitiveWrappersEqual:Ile,areRegExpsEqual:Lle,areSetsEqual:r?e3(i3,rf):i3,areTypedArraysEqual:r?rf:Ble,areUrlsEqual:zle,unknownTagComparators:void 0};if(n&&(a=s3({},a,n(a))),t){var o=Lp(a.areArraysEqual),l=Lp(a.areMapsEqual),u=Lp(a.areObjectsEqual),d=Lp(a.areSetsEqual);a=s3({},a,{areArraysEqual:o,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function nce(e){return function(t,n,r,a,o,l,u){return e(t,n,u)}}function rce(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,o=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:o})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:o})};var l={cache:void 0,equals:a,meta:void 0,strict:o};return function(d,f){return n(d,f,l)}}var ace=cs();cs({strict:!0});cs({circular:!0});cs({circular:!0,strict:!0});cs({createInternalComparator:function(){return Cl}});cs({strict:!0,createInternalComparator:function(){return Cl}});cs({circular:!0,createInternalComparator:function(){return Cl}});cs({circular:!0,createInternalComparator:function(){return Cl},strict:!0});function cs(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,o=e.strict,l=o===void 0?!1:o,u=tce(e),d=ece(u),f=r?r(d):nce(d);return rce({circular:n,comparator:d,createState:a,equals:f,strict:l})}function ice(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function l3(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(o){n<0&&(n=o),o-n>t?(e(o),n=-1):ice(a)};requestAnimationFrame(r)}function iN(e){"@babel/helpers - typeof";return iN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},iN(e)}function oce(e){return uce(e)||cce(e)||lce(e)||sce()}function sce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lce(e,t){if(e){if(typeof e=="string")return c3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return c3(e,t)}}function c3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},b=function(N){for(var A=N>1?1:N,E=A,T=0;T<8;++T){var C=p(E)-A,k=x(E);if(Math.abs(C-A)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,o=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*o,b=g+(x-j)*u/1e3,w=g*u/1e3+m;return Math.abs(w-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function qce(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,o;for(o=0;o=0)&&(n[a]=e[a]);return n}function vS(e){return Wce(e)||Hce(e)||Uce(e)||Fce()}function Fce(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Uce(e,t){if(e){if(typeof e=="string")return uN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return uN(e,t)}}function Hce(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Wce(e){if(Array.isArray(e))return uN(e)}function uN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Jv(e){return Jv=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Jv(e)}var gi=(function(e){Xce(n,e);var t=Zce(n);function n(r,a){var o;Vce(this,n),o=t.call(this,r,a);var l=o.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(o.handleStyleChange=o.handleStyleChange.bind(hN(o)),o.changeStyle=o.changeStyle.bind(hN(o)),!u||x<=0)return o.state={style:{}},typeof g=="function"&&(o.state={style:m}),fN(o);if(p&&p.length)o.state={style:p[0].style};else if(f){if(typeof g=="function")return o.state={style:f},fN(o);o.state={style:d?df({},d,f):f}}else o.state={style:{}};return o}return Yce(n,[{key:"componentDidMount",value:function(){var a=this.props,o=a.isActive,l=a.canBegin;this.mounted=!0,!(!o||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var o=this.props,l=o.isActive,u=o.canBegin,d=o.attributeName,f=o.shouldReAnimate,m=o.to,p=o.from,g=this.state.style;if(u){if(!l){var x={style:d?df({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(ace(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var b=j||f?p:a.to;if(this.state&&g){var w={style:d?df({},d,b):b};(d&&g[d]!==b||!d&&g!==b)&&this.setState(w)}this.runAnimation(Pa(Pa({},this.props),{},{from:b,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var o=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=Lce(l,u,Oce(f),d,this.changeStyle),j=function(){o.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var o=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(b,w,N){if(N===0)return b;var A=w.duration,E=w.easing,T=E===void 0?"ease":E,C=w.style,k=w.properties,O=w.onAnimationEnd,M=N>0?l[N-1]:w,I=k||Object.keys(C);if(typeof T=="function"||T==="spring")return[].concat(vS(b),[o.runJSAnimation.bind(o,{from:M.style,to:C,duration:A,easing:T}),A]);var z=f3(I,A,T),D=Pa(Pa(Pa({},M.style),C),{},{transition:z});return[].concat(vS(b),[D,A,O]).filter(pce)};return this.manager.start([d].concat(vS(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=dce());var o=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var b=u?df({},u,d):d,w=f3(Object.keys(b),l,f);j.start([m,o,Pa(Pa({},b),{},{transition:w}),l,p])}},{key:"render",value:function(){var a=this.props,o=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=zce(a,Bce),f=y.Children.count(o),m=this.state.style;if(typeof o=="function")return o(m);if(!u||f===0||l<=0)return o;var p=function(x){var j=x.props,b=j.style,w=b===void 0?{}:b,N=j.className,A=y.cloneElement(x,Pa(Pa({},d),{},{style:Pa(Pa({},w),m),className:N}));return A};return f===1?p(y.Children.only(o)):W.createElement("div",null,y.Children.map(o,function(g){return p(g)}))}}]),n})(y.PureComponent);gi.displayName="Animate";gi.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};gi.propTypes={from:bt.oneOfType([bt.object,bt.string]),to:bt.oneOfType([bt.object,bt.string]),attributeName:bt.string,duration:bt.number,begin:bt.number,easing:bt.oneOfType([bt.string,bt.func]),steps:bt.arrayOf(bt.shape({duration:bt.number.isRequired,style:bt.object.isRequired,easing:bt.oneOfType([bt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),bt.func]),properties:bt.arrayOf("string"),onAnimationEnd:bt.func})),children:bt.oneOfType([bt.node,bt.func]),isActive:bt.bool,canBegin:bt.bool,onAnimationEnd:bt.func,shouldReAnimate:bt.bool,onAnimationStart:bt.func,onAnimationReStart:bt.func};function Jf(e){"@babel/helpers - typeof";return Jf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jf(e)}function eg(){return eg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,d=r>=0?1:-1,f=a>=0&&r>=0||a<0&&r<0?1:0,m;if(l>0&&o instanceof Array){for(var p=[0,0,0,0],g=0,x=4;gl?l:o[g];m="M".concat(t,",").concat(n+u*p[0]),p[0]>0&&(m+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(f,",").concat(t+d*p[0],",").concat(n)),m+="L ".concat(t+r-d*p[1],",").concat(n),p[1]>0&&(m+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(f,`, - `).concat(t+r,",").concat(n+u*p[1])),m+="L ".concat(t+r,",").concat(n+a-u*p[2]),p[2]>0&&(m+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(f,`, - `).concat(t+r-d*p[2],",").concat(n+a)),m+="L ".concat(t+d*p[3],",").concat(n+a),p[3]>0&&(m+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(f,`, - `).concat(t,",").concat(n+a-u*p[3])),m+="Z"}else if(l>0&&o===+o&&o>0){var j=Math.min(l,o);m="M ".concat(t,",").concat(n+u*j,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+d*j,",").concat(n,` - L `).concat(t+r-d*j,",").concat(n,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r,",").concat(n+u*j,` - L `).concat(t+r,",").concat(n+a-u*j,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r-d*j,",").concat(n+a,` - L `).concat(t+d*j,",").concat(n+a,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t,",").concat(n+a-u*j," Z")}else m="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return m},sue=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,o=n.x,l=n.y,u=n.width,d=n.height;if(Math.abs(u)>0&&Math.abs(d)>0){var f=Math.min(o,o+u),m=Math.max(o,o+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},lue={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},IO=function(t){var n=b3(b3({},lue),t),r=y.useRef(),a=y.useState(-1),o=Jce(a,2),l=o[0],u=o[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var T=r.current.getTotalLength();T&&u(T)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,b=n.animationDuration,w=n.animationBegin,N=n.isAnimationActive,A=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var E=Ye("recharts-rectangle",x);return A?W.createElement(gi,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:b,animationEasing:j,isActive:A},function(T){var C=T.width,k=T.height,O=T.x,M=T.y;return W.createElement(gi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:w,duration:b,isActive:N,easing:j},W.createElement("path",eg({},Be(n,!0),{className:E,d:w3(O,M,C,k,g),ref:r})))}):W.createElement("path",eg({},Be(n,!0),{className:E,d:w3(d,f,m,p,g)}))},cue=["points","className","baseLinePoints","connectNulls"];function Bc(){return Bc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function due(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function j3(e){return pue(e)||mue(e)||hue(e)||fue()}function fue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hue(e,t){if(e){if(typeof e=="string")return mN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mN(e,t)}}function mue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function pue(e){if(Array.isArray(e))return mN(e)}function mN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){S3(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),S3(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},_f=function(t,n){var r=vue(t);n&&(r=[r.reduce(function(o,l){return[].concat(j3(o),j3(l))},[])]);var a=r.map(function(o){return o.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},gue=function(t,n,r){var a=_f(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(_f(n.reverse(),r).slice(1))},yue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,o=t.connectNulls,l=uue(t,cue);if(!n||!n.length)return null;var u=Ye("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=gue(n,a,o);return W.createElement("g",{className:u},W.createElement("path",Bc({},Be(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Bc({},Be(l,!0),{fill:"none",d:_f(n,o)})):null,d?W.createElement("path",Bc({},Be(l,!0),{fill:"none",d:_f(a,o)})):null)}var m=_f(n,o);return W.createElement("path",Bc({},Be(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function pN(){return pN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Nue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Cue=function(t,n,r,a,o,l){return"M".concat(t,",").concat(o,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},Oue=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,o=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,b=_ue(t,xue),w=bue({x:r,y:o,top:u,left:f,width:p,height:x},b);return!Ce(r)||!Ce(o)||!Ce(p)||!Ce(x)||!Ce(u)||!Ce(f)?null:W.createElement("path",vN({},Be(w,!0),{className:Ye("recharts-cross",j),d:Cue(r,o,p,x,u,f)}))},gS,N3;function Eue(){if(N3)return gS;N3=1;var e=fy(),t=c6(),n=wi();function r(a,o){return a&&a.length?e(a,n(o,2),t):void 0}return gS=r,gS}var Aue=Eue();const Tue=St(Aue);var yS,C3;function kue(){if(C3)return yS;C3=1;var e=fy(),t=wi(),n=u6();function r(a,o){return a&&a.length?e(a,t(o,2),n):void 0}return yS=r,yS}var Mue=kue();const Pue=St(Mue);var Rue=["cx","cy","angle","ticks","axisLine"],Due=["ticks","tick","angle","tickFormatter","stroke"];function mu(e){"@babel/helpers - typeof";return mu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mu(e)}function Nf(){return Nf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $ue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Iue(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function A3(e,t){for(var n=0;nM3?l=a==="outer"?"start":"end":o<-M3?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,o=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=qs(qs({},Be(this.props,!1)),{},{fill:"none"},Be(u,!1));if(d==="circle")return W.createElement(gy,Ws({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:o,r:l}));var m=this.props.ticks,p=m.map(function(g){return Gt(a,o,l,g.coordinate)});return W.createElement(yue,Ws({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,o=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=Be(this.props,!1),p=Be(l,!1),g=qs(qs({},m),{},{fill:"none"},Be(u,!1)),x=o.map(function(j,b){var w=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),A=qs(qs(qs({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:b,payload:j,x:w.x2,y:w.y2});return W.createElement(pt,Ws({className:Ye("recharts-polar-angle-axis-tick",L6(l)),key:"tick-".concat(j.coordinate)},fl(r.props,j,b)),u&&W.createElement("line",Ws({className:"recharts-polar-angle-axis-tick-line"},g,w)),l&&t.renderTickItem(l,A,d?d(j.value,b):j.value))});return W.createElement(pt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,o=r.radius,l=r.axisLine;return o<=0||!a||!a.length?null:W.createElement(pt,{className:Ye("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,o){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):We(r)?l=r(a):l=W.createElement(hl,Ws({},a,{className:"recharts-polar-angle-axis-tick-value"}),o),l}}])})(y.PureComponent);by(wy,"displayName","PolarAngleAxis");by(wy,"axisType","angleAxis");by(wy,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var xS,P3;function Que(){if(P3)return xS;P3=1;var e=lz(),t=e(Object.getPrototypeOf,Object);return xS=t,xS}var bS,R3;function Jue(){if(R3)return bS;R3=1;var e=lo(),t=Que(),n=co(),r="[object Object]",a=Function.prototype,o=Object.prototype,l=a.toString,u=o.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return bS=f,bS}var ede=Jue();const tde=St(ede);var wS,D3;function nde(){if(D3)return wS;D3=1;var e=lo(),t=co(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return wS=r,wS}var rde=nde();const ade=St(rde);function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function rg(){return rg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:b,animationEasing:j,isActive:N},function(E){var T=E.upperWidth,C=E.lowerWidth,k=E.height,O=E.x,M=E.y;return W.createElement(gi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:w,duration:b,easing:j},W.createElement("path",rg({},Be(n,!0),{className:A,d:B3(O,M,T,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",rg({},Be(n,!0),{className:A,d:B3(d,f,m,p,g)})))},pde=["option","shapeType","propTransformer","activeClassName","isActive"];function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function vde(e,t){if(e==null)return{};var n=gde(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function gde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function z3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function ag(e){for(var t=1;t0?ta(E,"paddingAngle",0):0;if(C){var O=Qr(C.endAngle-C.startAngle,E.endAngle-E.startAngle),M=Ut(Ut({},E),{},{startAngle:A+k,endAngle:A+O(b)+k});w.push(M),A=M.endAngle}else{var I=E.endAngle,z=E.startAngle,D=Qr(0,I-z),H=D(b),V=Ut(Ut({},E),{},{startAngle:A+k,endAngle:A+H+k});w.push(V),A=V.endAngle}}),W.createElement(pt,null,r.renderSectorsStatically(w))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(o){if(!o.altKey)switch(o.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,o=r.isAnimationActive,l=this.state.prevSectors;return o&&a&&a.length&&(!l||!Dh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,o=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(o||!l||!l.length||!Ce(f)||!Ce(m)||!Ce(p)||!Ce(g))return null;var b=Ye("recharts-pie",u);return W.createElement(pt,{tabIndex:this.props.rootTabIndex,className:b,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),qn.renderCallByParent(this.props,null,!1),(!x||j)&&to.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r=360?A:A-1)*d,T=w-A*x-E,C=a.reduce(function(M,I){var z=kn(I,N,0);return M+(Ce(z)?z:0)},0),k;if(C>0){var O;k=a.map(function(M,I){var z=kn(M,N,0),D=kn(M,m,I),H=(Ce(z)?z:0)/C,V;I?V=O.endAngle+br(b)*d*(z!==0?1:0):V=l;var F=V+br(b)*((z!==0?x:0)+H*T),G=(V+F)/2,L=(j.innerRadius+j.outerRadius)/2,R=[{name:D,value:z,payload:M,dataKey:N,type:g}],U=Gt(j.cx,j.cy,L,G);return O=Ut(Ut(Ut({percent:H,cornerRadius:o,name:D,tooltipPayload:R,midAngle:G,middleRadius:L,tooltipPosition:U},M),j),{},{value:kn(M,N),startAngle:V,endAngle:F,payload:M,paddingAngle:br(b)*d}),O})}return Ut(Ut({},j),{},{sectors:k,data:a})});var jS,H3;function Lde(){if(H3)return jS;H3=1;var e=Math.ceil,t=Math.max;function n(r,a,o,l){for(var u=-1,d=t(e((a-r)/(o||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=o;return f}return jS=n,jS}var SS,W3;function nq(){if(W3)return SS;W3=1;var e=_z(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var o=a<0?-1:1;return o*n}return a===a?a:0}return SS=r,SS}var _S,V3;function Bde(){if(V3)return _S;V3=1;var e=Lde(),t=ay(),n=nq();function r(a){return function(o,l,u){return u&&typeof u!="number"&&t(o,l,u)&&(l=u=void 0),o=n(o),l===void 0?(l=o,o=0):l=n(l),u=u===void 0?o0&&r.handleDrag(a.changedTouches[0])}),Yr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,o=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:o,startIndex:u})}),r.detachDragEndListener()}),Yr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Yr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Yr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Yr(r,"handleSlideDragStart",function(a){var o=Q3(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:o.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return Zde(t,e),Gde(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,o=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,o),g=Math.max(a,o),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,o=a.data,l=a.tickFormatter,u=a.dataKey,d=kn(o[r],u,r);return We(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,o=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,b=r.pageX-o;b>0?b=Math.min(b,f+m-p-u,f+m-p-l):b<0&&(b=Math.max(b,f-l,f-u));var w=this.getIndex({startX:l+b,endX:u+b});(w.startIndex!==g||w.endIndex!==x)&&j&&j(w),this.setState({startX:l+b,endX:u+b,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var o=Q3(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:o.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,o=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,b=m.gap,w=m.data,N={startX:this.state.startX,endX:this.state.endX},A=r.pageX-o;A>0?A=Math.min(A,p+g-x-f):A<0&&(A=Math.max(A,p-f)),N[l]=f+A;var E=this.getIndex(N),T=E.startIndex,C=E.endIndex,k=function(){var M=w.length-1;return l==="startX"&&(u>d?T%b===0:C%b===0)||ud?C%b===0:T%b===0)||u>d&&C===M};this.setState(Yr(Yr({},l,f+A),"brushMoveStartX",r.pageX),function(){j&&k()&&j(E)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var o=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Yr({},a,x),function(){o.props.onChange(o.getIndex({startX:o.state.startX,endX:o.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,o=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:o,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,o=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:o,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var o,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,b=d.startIndex,w=d.endIndex,N=Math.max(r,this.props.x),A=CS(CS({},Be(this.props,!1)),{},{x:N,y:f,width:m,height:p}),E=x||"Min value: ".concat((o=j[b])===null||o===void 0?void 0:o.name,", Max value: ").concat((l=j[w])===null||l===void 0?void 0:l.name);return W.createElement(pt,{tabIndex:0,role:"slider","aria-label":E,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,A))}},{key:"renderSlide",value:function(r,a){var o=this.props,l=o.y,u=o.height,d=o.stroke,f=o.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,o=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(pt,{className:"recharts-brush-texts"},W.createElement(hl,sg({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(hl,sg({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(o)))}},{key:"render",value:function(){var r=this.props,a=r.data,o=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,b=g.isTextActive,w=g.isSlideMoving,N=g.isTravellerMoving,A=g.isTravellerFocused;if(!a||!a.length||!Ce(u)||!Ce(d)||!Ce(f)||!Ce(m)||f<=0||m<=0)return null;var E=Ye("recharts-brush",o),T=W.Children.count(l)===1,C=Wde("userSelect","none");return W.createElement(pt,{className:E,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),T&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(b||w||N||A||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,o=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(o+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:o,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var o;return W.isValidElement(r)?o=W.cloneElement(r,a):We(r)?o=r(a):o=t.renderDefaultTraveller(a),o}},{key:"getDerivedStateFromProps",value:function(r,a){var o=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(o!==a.prevData||f!==a.prevUpdateId)return CS({prevData:o,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},o&&o.length?Jde({data:o,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:o,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var o=r.length,l=0,u=o-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Yr(yu,"displayName","Brush");Yr(yu,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var OS,J3;function efe(){if(J3)return OS;J3=1;var e=cO();function t(n,r){var a;return e(n,function(o,l,u){return a=r(o,l,u),!a}),!!a}return OS=t,OS}var ES,eI;function tfe(){if(eI)return ES;eI=1;var e=tz(),t=wi(),n=efe(),r=Lr(),a=ay();function o(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return ES=o,ES}var nfe=tfe();const rfe=St(nfe);var hi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},AS,tI;function afe(){if(tI)return AS;tI=1;var e=xz();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return AS=t,AS}var TS,nI;function ife(){if(nI)return TS;nI=1;var e=afe(),t=gz(),n=wi();function r(a,o){var l={};return o=n(o,3),t(a,function(u,d,f){e(l,d,o(u,d,f))}),l}return TS=r,TS}var ofe=ife();const sfe=St(ofe);var kS,rI;function lfe(){if(rI)return kS;rI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function gfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function yfe(e,t){var n=e.x,r=e.y,a=vfe(e,ffe),o="".concat(n),l=parseInt(o,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return af(af(af(af(af({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function sI(e){return W.createElement(J6,wN({shapeType:"rectangle",propTransformer:yfe,activeClassName:"recharts-active-bar"},e))}var xfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var o=Ce(r)||FQ(r);return o?t(r,a):(o||ur(!1),n)}},bfe=["value","background"],sq;function xu(e){"@babel/helpers - typeof";return xu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xu(e)}function wfe(e,t){if(e==null)return{};var n=jfe(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function cg(){return cg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(F)0&&(V=Math.min((ne||0)-(F[oe-1]||0),V))}),Number.isFinite(V)){var G=V/H,L=b.layout==="vertical"?r.height:r.width;if(b.padding==="gap"&&(O=G*L/2),b.padding==="no-gap"){var R=wr(t.barCategoryGap,G*L),U=G*L/2;O=U-R-(U-R)/L*R}}}a==="xAxis"?M=[r.left+(E.left||0)+(O||0),r.left+r.width-(E.right||0)-(O||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(E.bottom||0),r.top+(E.top||0)]:[r.top+(E.top||0)+(O||0),r.top+r.height-(E.bottom||0)-(O||0)]:M=b.range,C&&(M=[M[1],M[0]]);var K=k6(b,o,g),te=K.scale,$=K.realScaleType;te.domain(N).range(M),M6(te);var B=P6(te,Ia(Ia({},b),{},{realScaleType:$}));a==="xAxis"?(D=w==="top"&&!T||w==="bottom"&&T,I=r.left,z=p[k]-D*b.height):a==="yAxis"&&(D=w==="left"&&!T||w==="right"&&T,I=p[k]-D*b.width,z=r.top);var Y=Ia(Ia(Ia({},b),B),{},{realScaleType:$,x:I,y:z,scale:te,width:a==="xAxis"?r.width:b.width,height:a==="yAxis"?r.height:b.height});return Y.bandSize=Gv(Y,B),!b.hide&&a==="xAxis"?p[k]+=(D?-1:1)*Y.height:b.hide||(p[k]+=(D?-1:1)*Y.width),Ia(Ia({},x),{},_y({},j,Y))},{})},fq=function(t,n){var r=t.x,a=t.y,o=n.x,l=n.y;return{x:Math.min(r,o),y:Math.min(a,l),width:Math.abs(o-r),height:Math.abs(l-a)}},Pfe=function(t){var n=t.x1,r=t.y1,a=t.x2,o=t.y2;return fq({x:n,y:r},{x:a,y:o})},hq=(function(){function e(t){Tfe(this,e),this.scale=t}return kfe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,o=r.position;if(n!==void 0){if(o)switch(o){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],o=r[r.length-1];return a<=o?n>=a&&n<=o:n>=o&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();_y(hq,"EPS",1e-4);var LO=function(t){var n=Object.keys(t).reduce(function(r,a){return Ia(Ia({},r),{},_y({},a,hq.create(t[a])))},{});return Ia(Ia({},n),{},{apply:function(a){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=o.bandAware,u=o.position;return sfe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return oq(a,function(o,l){return n[l].isInRange(o)})}})};function Rfe(e){return(e%180+180)%180}var Dfe=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,o=Rfe(a),l=o*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?o[m]:m]:void 0}}return RS=r,RS}var DS,hI;function Ife(){if(hI)return DS;hI=1;var e=nq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return DS=t,DS}var $S,mI;function Lfe(){if(mI)return $S;mI=1;var e=fz(),t=wi(),n=Ife(),r=Math.max;function a(o,l,u){var d=o==null?0:o.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(o,t(l,3),f)}return $S=a,$S}var IS,pI;function Bfe(){if(pI)return IS;pI=1;var e=$fe(),t=Lfe(),n=e(t);return IS=n,IS}var zfe=Bfe();const qfe=St(zfe);var Ffe=EB();const Ufe=St(Ffe);var Hfe=Ufe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),BO=y.createContext(void 0),zO=y.createContext(void 0),mq=y.createContext(void 0),pq=y.createContext({}),vq=y.createContext(void 0),gq=y.createContext(0),yq=y.createContext(0),vI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,o=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=Hfe(o);return W.createElement(BO.Provider,{value:r},W.createElement(zO.Provider,{value:a},W.createElement(pq.Provider,{value:o},W.createElement(mq.Provider,{value:m},W.createElement(vq.Provider,{value:l},W.createElement(gq.Provider,{value:f},W.createElement(yq.Provider,{value:d},u)))))))},Wfe=function(){return y.useContext(vq)},xq=function(t){var n=y.useContext(BO);n==null&&ur(!1);var r=n[t];return r==null&&ur(!1),r},Vfe=function(){var t=y.useContext(BO);return Fo(t)},Gfe=function(){var t=y.useContext(zO),n=qfe(t,function(r){return oq(r.domain,Number.isFinite)});return n||Fo(t)},bq=function(t){var n=y.useContext(zO);n==null&&ur(!1);var r=n[t];return r==null&&ur(!1),r},Yfe=function(){var t=y.useContext(mq);return t},Kfe=function(){return y.useContext(pq)},qO=function(){return y.useContext(yq)},FO=function(){return y.useContext(gq)};function bu(e){"@babel/helpers - typeof";return bu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bu(e)}function Xfe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Zfe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var o=n();return e*(t-e*o/2-r)>=0&&e*(t+e*o/2-a)<=0}function Mhe(e,t){return Oq(e,t+1)}function Phe(e,t,n,r,a){for(var o=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Oq(r,f)};var b=d,w,N=function(){return w===void 0&&(w=n(j,b)),w},A=j.coordinate,E=d===0||mg(e,A,N,m,u);E||(d=0,m=l,f+=1),E&&(m=A+e*(N()/2+a),d+=f)},g;f<=o.length;)if(g=p(),g)return g.v;return[]}function sh(e){"@babel/helpers - typeof";return sh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sh(e)}function _I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function or(e){for(var t=1;t0?x.coordinate-w*e:x.coordinate})}else o[g]=x=or(or({},x),{},{tickCoord:x.coordinate});var N=mg(e,x.tickCoord,b,u,d);N&&(d=x.tickCoord-e*(b()/2+a),o[g]=or(or({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return o}function Lhe(e,t,n,r,a,o){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(o){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=or(or({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=mg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=or(or({},m),{},{isShow:!0}))}for(var j=o?u-1:u,b=function(A){var E=l[A],T,C=function(){return T===void 0&&(T=n(E,A)),T};if(A===0){var k=e*(E.coordinate-e*C()/2-d);l[A]=E=or(or({},E),{},{tickCoord:k<0?E.coordinate-k*e:E.coordinate})}else l[A]=E=or(or({},E),{},{tickCoord:E.coordinate});var O=mg(e,E.tickCoord,C,d,f);O&&(d=E.tickCoord+e*(C()/2+a),l[A]=or(or({},E),{},{isShow:!0}))},w=0;w=2?br(a[1].coordinate-a[0].coordinate):1,N=khe(o,w,x);return d==="equidistantPreserveStart"?Phe(w,N,b,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=Lhe(w,N,b,a,l,d==="preserveStartEnd"):g=Ihe(w,N,b,a,l),g.filter(function(A){return A.isShow}))}var Bhe=["viewBox"],zhe=["viewBox"],qhe=["ticks"];function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function qc(){return qc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fhe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Uhe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function CI(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(pt,{className:Ye("recharts-cartesian-axis",f),ref:function(w){r.layerReference=w}},o&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),qn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,o){var l,u=Ye(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,An(An({},a),{},{className:u})):We(r)?l=r(An(An({},a),{},{className:u})):l=W.createElement(hl,qc({},a,{className:"recharts-cartesian-axis-tick-value"}),o),l}}])})(y.Component);VO(Vu,"displayName","CartesianAxis");VO(Vu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var Xhe=["x1","y1","x2","y2","key"],Zhe=["offset"];function pl(e){"@babel/helpers - typeof";return pl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pl(e)}function OI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function lr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function tme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var nme=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,o=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:o,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function Tq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(We(e))n=e(t);else{var r=t.x1,a=t.y1,o=t.x2,l=t.y2,u=t.key,d=EI(t,Xhe),f=Be(d,!1);f.offset;var m=EI(f,Zhe);n=W.createElement("line",Xs({},m,{x1:r,y1:a,x2:o,y2:l,fill:"none",key:u}))}return n}function rme(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,o=e.horizontalPoints;if(!a||!o||!o.length)return null;var l=o.map(function(u,d){var f=lr(lr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return Tq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function ame(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,o=e.verticalPoints;if(!a||!o||!o.length)return null;var l=o.map(function(u,d){var f=lr(lr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return Tq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function ime(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,o=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],b=j?a+l-g:m[x+1]-g;if(b<=0)return null;var w=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:b,width:o,stroke:"none",fill:t[w],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function ome(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,o=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+o-o)}).sort(function(g,x){return g-x});o!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],b=j?o+u-g:m[x+1]-g;if(b<=0)return null;var w=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:b,height:d,stroke:"none",fill:r[w],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var sme=function(t,n){var r=t.xAxis,a=t.width,o=t.height,l=t.offset;return T6(WO(lr(lr(lr({},Vu.defaultProps),r),{},{ticks:Ki(r,!0),viewBox:{x:0,y:0,width:a,height:o}})),l.left,l.left+l.width,n)},lme=function(t,n){var r=t.yAxis,a=t.width,o=t.height,l=t.offset;return T6(WO(lr(lr(lr({},Vu.defaultProps),r),{},{ticks:Ki(r,!0),viewBox:{x:0,y:0,width:a,height:o}})),l.top,l.top+l.height,n)},_c={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function ff(e){var t,n,r,a,o,l,u=qO(),d=FO(),f=Kfe(),m=lr(lr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:_c.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:_c.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:_c.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:_c.horizontalFill,vertical:(o=e.vertical)!==null&&o!==void 0?o:_c.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:_c.verticalFill,x:Ce(e.x)?e.x:f.left,y:Ce(e.y)?e.y:f.top,width:Ce(e.width)?e.width:f.width,height:Ce(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,b=m.syncWithTicks,w=m.horizontalValues,N=m.verticalValues,A=Vfe(),E=Gfe();if(!Ce(x)||x<=0||!Ce(j)||j<=0||!Ce(p)||p!==+p||!Ce(g)||g!==+g)return null;var T=m.verticalCoordinatesGenerator||sme,C=m.horizontalCoordinatesGenerator||lme,k=m.horizontalPoints,O=m.verticalPoints;if((!k||!k.length)&&We(C)){var M=w&&w.length,I=C({yAxis:E?lr(lr({},E),{},{ticks:M?w:E.ticks}):void 0,width:u,height:d,offset:f},M?!0:b);qa(Array.isArray(I),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(pl(I),"]")),Array.isArray(I)&&(k=I)}if((!O||!O.length)&&We(T)){var z=N&&N.length,D=T({xAxis:A?lr(lr({},A),{},{ticks:z?N:A.ticks}):void 0,width:u,height:d,offset:f},z?!0:b);qa(Array.isArray(D),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(pl(D),"]")),Array.isArray(D)&&(O=D)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(nme,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(rme,Xs({},m,{offset:f,horizontalPoints:k,xAxis:A,yAxis:E})),W.createElement(ame,Xs({},m,{offset:f,verticalPoints:O,xAxis:A,yAxis:E})),W.createElement(ime,Xs({},m,{horizontalPoints:k})),W.createElement(ome,Xs({},m,{verticalPoints:O})))}ff.displayName="CartesianGrid";var cme=["type","layout","connectNulls","ref"],ume=["key"];function _u(e){"@babel/helpers - typeof";return _u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_u(e)}function AI(e,t){if(e==null)return{};var n=dme(e,t),r,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function dme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Cf(){return Cf=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Nc(d.slice(0,j)),[p-b]);break}var w=x.length%2===0?[0,g]:[g];return[].concat(Nc(t.repeat(d,m)),Nc(x),w).map(function(N){return"".concat(N,"px")}).join(", ")}),La(n,"id",qu("recharts-line-")),La(n,"pathRef",function(l){n.mainCurve=l}),La(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),La(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return wme(t,e),gme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var o=this.props,l=o.points,u=o.xAxis,d=o.yAxis,f=o.layout,m=o.children,p=na(m,$h);if(!p)return null;var g=function(b,w){return{x:b.x,y:b.y,value:b.value,errorVal:kn(b.payload,w)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(pt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,o){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=Be(this.props,!1),g=Be(d,!0),x=f.map(function(b,w){var N=Gr(Gr(Gr({key:"dot-".concat(w),r:3},p),g),{},{index:w,cx:b.x,cy:b.y,value:b.value,dataKey:m,payload:b.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(o,")"):null};return W.createElement(pt,Cf({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,o,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=AI(u,cme),g=Gr(Gr(Gr({},Be(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(o,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(Xv,Cf({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var o=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,b=l.width,w=l.height,N=this.state,A=N.prevPoints,E=N.totalLength;return W.createElement(gi,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(T){var C=T.t;if(A){var k=A.length/u.length,O=u.map(function(H,V){var F=Math.floor(V*k);if(A[F]){var G=A[F],L=Qr(G.x,H.x),R=Qr(G.y,H.y);return Gr(Gr({},H),{},{x:L(C),y:R(C)})}if(j){var U=Qr(b*2,H.x),K=Qr(w/2,H.y);return Gr(Gr({},H),{},{x:U(C),y:K(C)})}return Gr(Gr({},H),{},{x:H.x,y:H.y})});return o.renderCurveStatically(O,r,a)}var M=Qr(0,E),I=M(C),z;if(d){var D="".concat(d).split(/[,\s]+/gim).map(function(H){return parseFloat(H)});z=o.getStrokeDasharray(I,E,D)}else z=o.generateSimpleStrokeDasharray(E,I);return o.renderCurveStatically(u,r,a,{strokeDasharray:z})})}},{key:"renderCurve",value:function(r,a){var o=this.props,l=o.points,u=o.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Dh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,o=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,b=a.isAnimationActive,w=a.id;if(o||!u||!u.length)return null;var N=this.state.isAnimationFinished,A=u.length===1,E=Ye("recharts-line",d),T=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=T||C,O=Ge(w)?this.id:w,M=(r=Be(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},I=M.r,z=I===void 0?3:I,D=M.strokeWidth,H=D===void 0?2:D,V=eJ(l)?l:{},F=V.clipDot,G=F===void 0?!0:F,L=z*2+H;return W.createElement(pt,{className:E},T||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(O)},W.createElement("rect",{x:T?g:g-x/2,y:C?p:p-j/2,width:T?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(O)},W.createElement("rect",{x:g-L/2,y:p-L/2,width:x+L,height:j+L}))):null,!A&&this.renderCurve(k,O),this.renderErrorBar(k,O),(A||l)&&this.renderDots(k,G,O),(!b||N)&&to.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var o=r.length%2!==0?[].concat(Nc(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function dpe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function fpe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ce(a)&&Ce(o)?t.slice(a,o+1):[]};function Wq(e){return e==="number"?[0,"auto"]:void 0}var zN=function(t,n,r,a){var o=t.graphicalItems,l=t.tooltipAxis,u=Ay(n,t);return r<0||!o||!o.length||r>=u.length?null:o.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=jv(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(Eu(d),[D6(f,g)]):d},[])},LI=function(t,n,r,a){var o=a||{x:t.chartX,y:t.chartY},l=Npe(o,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=Zoe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=zN(t,n,m,p),x=Cpe(r,u,m,o);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},Ope=function(t,n){var r=n.axes,a=n.graphicalItems,o=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=A6(m,o);return r.reduce(function(j,b){var w,N=b.type.defaultProps!==void 0?ye(ye({},b.type.defaultProps),b.props):b.props,A=N.type,E=N.dataKey,T=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,O=N.ticks,M=N.includeHidden,I=N[l];if(j[I])return j;var z=Ay(t.data,{graphicalItems:a.filter(function(B){var Y,ne=l in B.props?B.props[l]:(Y=B.type.defaultProps)===null||Y===void 0?void 0:Y[l];return ne===I}),dataStartIndex:d,dataEndIndex:f}),D=z.length,H,V,F;Jme(N.domain,T,A)&&(H=eN(N.domain,null,T),x&&(A==="number"||k!=="auto")&&(F=jf(z,E,"category")));var G=Wq(A);if(!H||H.length===0){var L,R=(L=N.domain)!==null&&L!==void 0?L:G;if(E){if(H=jf(z,E,A),A==="category"&&x){var U=HQ(H);C&&U?(V=H,H=og(0,D)):C||(H=I$(R,H,b).reduce(function(B,Y){return B.indexOf(Y)>=0?B:[].concat(Eu(B),[Y])},[]))}else if(A==="category")C?H=H.filter(function(B){return B!==""&&!Ge(B)}):H=I$(R,H,b).reduce(function(B,Y){return B.indexOf(Y)>=0||Y===""||Ge(Y)?B:[].concat(Eu(B),[Y])},[]);else if(A==="number"){var K=nse(z,a.filter(function(B){var Y,ne,oe=l in B.props?B.props[l]:(Y=B.type.defaultProps)===null||Y===void 0?void 0:Y[l],xe="hide"in B.props?B.props.hide:(ne=B.type.defaultProps)===null||ne===void 0?void 0:ne.hide;return oe===I&&(M||!xe)}),E,o,m);K&&(H=K)}x&&(A==="number"||k!=="auto")&&(F=jf(z,E,"category"))}else x?H=og(0,D):u&&u[I]&&u[I].hasStack&&A==="number"?H=g==="expand"?[0,1]:R6(u[I].stackGroups,d,f):H=E6(z,a.filter(function(B){var Y=l in B.props?B.props[l]:B.type.defaultProps[l],ne="hide"in B.props?B.props.hide:B.type.defaultProps.hide;return Y===I&&(M||!ne)}),A,m,!0);if(A==="number")H=IN(p,H,I,o,O),R&&(H=eN(R,H,T));else if(A==="category"&&R){var te=R,$=H.every(function(B){return te.indexOf(B)>=0});$&&(H=te)}}return ye(ye({},j),{},Fe({},I,ye(ye({},N),{},{axisType:o,domain:H,categoricalDomain:F,duplicateDomain:V,originalDomain:(w=N.domain)!==null&&w!==void 0?w:G,isCategorical:x,layout:m})))},{})},Epe=function(t,n){var r=n.graphicalItems,a=n.Axis,o=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=Ay(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=A6(m,o),b=-1;return r.reduce(function(w,N){var A=N.type.defaultProps!==void 0?ye(ye({},N.type.defaultProps),N.props):N.props,E=A[l],T=Wq("number");if(!w[E]){b++;var C;return j?C=og(0,x):u&&u[E]&&u[E].hasStack?(C=R6(u[E].stackGroups,d,f),C=IN(p,C,E,o)):(C=eN(T,E6(g,r.filter(function(k){var O,M,I=l in k.props?k.props[l]:(O=k.type.defaultProps)===null||O===void 0?void 0:O[l],z="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return I===E&&!z}),"number",m),a.defaultProps.allowDataOverflow),C=IN(p,C,E,o)),ye(ye({},w),{},Fe({},E,ye(ye({axisType:o},a.defaultProps),{},{hide:!0,orientation:ta(Spe,"".concat(o,".").concat(b%2),null),domain:C,originalDomain:T,isCategorical:j,layout:m})))}return w},{})},Ape=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,o=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=na(m,o),x={};return g&&g.length?x=Ope(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=Epe(t,{Axis:o,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},Tpe=function(t){var n=Fo(t),r=Ki(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:uO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Gv(n,r)}},BI=function(t){var n=t.children,r=t.defaultShowTooltip,a=Kr(n,yu),o=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(o=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:o,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},kpe=function(t){return!t||!t.length?!1:t.some(function(n){var r=Ji(n&&n.type);return r&&r.indexOf("Bar")>=0})},zI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},Mpe=function(t,n){var r=t.props,a=t.graphicalItems,o=t.xAxisMap,l=o===void 0?{}:o,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=Kr(p,yu),j=Kr(p,nl),b=Object.keys(d).reduce(function(C,k){var O=d[k],M=O.orientation;return!O.mirror&&!O.hide?ye(ye({},C),{},Fe({},M,C[M]+O.width)):C},{left:g.left||0,right:g.right||0}),w=Object.keys(l).reduce(function(C,k){var O=l[k],M=O.orientation;return!O.mirror&&!O.hide?ye(ye({},C),{},Fe({},M,ta(C,"".concat(M))+O.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ye(ye({},w),b),A=N.bottom;x&&(N.bottom+=x.props.height||yu.defaultProps.height),j&&n&&(N=ese(N,a,r,n));var E=f-N.left-N.right,T=m-N.top-N.bottom;return ye(ye({brushBottom:A},N),{},{width:Math.max(E,0),height:Math.max(T,0)})},Ppe=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},GO=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,o=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,A){var E=A.graphicalItems,T=A.stackGroups,C=A.offset,k=A.updateId,O=A.dataStartIndex,M=A.dataEndIndex,I=N.barSize,z=N.layout,D=N.barGap,H=N.barCategoryGap,V=N.maxBarSize,F=zI(z),G=F.numericAxisName,L=F.cateAxisName,R=kpe(E),U=[];return E.forEach(function(K,te){var $=Ay(N.data,{graphicalItems:[K],dataStartIndex:O,dataEndIndex:M}),B=K.type.defaultProps!==void 0?ye(ye({},K.type.defaultProps),K.props):K.props,Y=B.dataKey,ne=B.maxBarSize,oe=B["".concat(G,"Id")],xe=B["".concat(L,"Id")],ee={},ae=d.reduce(function(rr,gr){var ct=A["".concat(gr.axisType,"Map")],rt=B["".concat(gr.axisType,"Id")];ct&&ct[rt]||gr.axisType==="zAxis"||ur(!1);var $n=ct[rt];return ye(ye({},rr),{},Fe(Fe({},gr.axisType,$n),"".concat(gr.axisType,"Ticks"),Ki($n)))},ee),Z=ae[L],pe=ae["".concat(L,"Ticks")],je=T&&T[oe]&&T[oe].hasStack&&dse(K,T[oe].stackGroups),le=Ji(K.type).indexOf("Bar")>=0,Re=Gv(Z,pe),_e=[],me=R&&Qoe({barSize:I,stackGroups:T,totalSize:Ppe(ae,L)});if(le){var ve,Le,It=Ge(ne)?V:ne,Cn=(ve=(Le=Gv(Z,pe,!0))!==null&&Le!==void 0?Le:It)!==null&&ve!==void 0?ve:0;_e=Joe({barGap:D,barCategoryGap:H,bandSize:Cn!==Re?Cn:Re,sizeList:me[xe],maxBarSize:It}),Cn!==Re&&(_e=_e.map(function(rr){return ye(ye({},rr),{},{position:ye(ye({},rr.position),{},{offset:rr.position.offset-Cn/2})})}))}var vr=K&&K.type&&K.type.getComposedData;vr&&U.push({props:ye(ye({},vr(ye(ye({},ae),{},{displayedData:$,props:N,dataKey:Y,item:K,bandSize:Re,barPosition:_e,offset:C,stackedData:je,layout:z,dataStartIndex:O,dataEndIndex:M}))),{},Fe(Fe(Fe({key:K.key||"item-".concat(te)},G,ae[G]),L,ae[L]),"animationId",k)),childIndex:rJ(K,N.children),item:K})}),U},x=function(N,A){var E=N.props,T=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!ZP({props:E}))return null;var O=E.children,M=E.layout,I=E.stackOffset,z=E.data,D=E.reverseStackOrder,H=zI(M),V=H.numericAxisName,F=H.cateAxisName,G=na(O,r),L=cse(z,G,"".concat(V,"Id"),"".concat(F,"Id"),I,D),R=d.reduce(function(B,Y){var ne="".concat(Y.axisType,"Map");return ye(ye({},B),{},Fe({},ne,Ape(E,ye(ye({},Y),{},{graphicalItems:G,stackGroups:Y.axisType===V&&L,dataStartIndex:T,dataEndIndex:C}))))},{}),U=Mpe(ye(ye({},R),{},{props:E,graphicalItems:G}),A?.legendBBox);Object.keys(R).forEach(function(B){R[B]=m(E,R[B],U,B.replace("Map",""),n)});var K=R["".concat(F,"Map")],te=Tpe(K),$=g(E,ye(ye({},R),{},{dataStartIndex:T,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:L,offset:U}));return ye(ye({formattedGraphicalItems:$,graphicalItems:G,offset:U,stackGroups:L},te),R)},j=(function(w){function N(A){var E,T,C;return fpe(this,N),C=ppe(this,N,[A]),Fe(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Fe(C,"accessibilityManager",new Qme),Fe(C,"handleLegendBBoxUpdate",function(k){if(k){var O=C.state,M=O.dataStartIndex,I=O.dataEndIndex,z=O.updateId;C.setState(ye({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:I,updateId:z},ye(ye({},C.state),{},{legendBBox:k}))))}}),Fe(C,"handleReceiveSyncEvent",function(k,O,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(O)}}),Fe(C,"handleBrushChange",function(k){var O=k.startIndex,M=k.endIndex;if(O!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var I=C.state.updateId;C.setState(function(){return ye({dataStartIndex:O,dataEndIndex:M},x({props:C.props,dataStartIndex:O,dataEndIndex:M,updateId:I},C.state))}),C.triggerSyncEvent({dataStartIndex:O,dataEndIndex:M})}}),Fe(C,"handleMouseEnter",function(k){var O=C.getMouseInfo(k);if(O){var M=ye(ye({},O),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var I=C.props.onMouseEnter;We(I)&&I(M,k)}}),Fe(C,"triggeredAfterMouseMove",function(k){var O=C.getMouseInfo(k),M=O?ye(ye({},O),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var I=C.props.onMouseMove;We(I)&&I(M,k)}),Fe(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),Fe(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),Fe(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),Fe(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var O={isTooltipActive:!1};C.setState(O),C.triggerSyncEvent(O);var M=C.props.onMouseLeave;We(M)&&M(O,k)}),Fe(C,"handleOuterEvent",function(k){var O=nJ(k),M=ta(C.props,"".concat(O));if(O&&We(M)){var I,z;/.*touch.*/i.test(O)?z=C.getMouseInfo(k.changedTouches[0]):z=C.getMouseInfo(k),M((I=z)!==null&&I!==void 0?I:{},k)}}),Fe(C,"handleClick",function(k){var O=C.getMouseInfo(k);if(O){var M=ye(ye({},O),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var I=C.props.onClick;We(I)&&I(M,k)}}),Fe(C,"handleMouseDown",function(k){var O=C.props.onMouseDown;if(We(O)){var M=C.getMouseInfo(k);O(M,k)}}),Fe(C,"handleMouseUp",function(k){var O=C.props.onMouseUp;if(We(O)){var M=C.getMouseInfo(k);O(M,k)}}),Fe(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),Fe(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),Fe(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),Fe(C,"handleDoubleClick",function(k){var O=C.props.onDoubleClick;if(We(O)){var M=C.getMouseInfo(k);O(M,k)}}),Fe(C,"handleContextMenu",function(k){var O=C.props.onContextMenu;if(We(O)){var M=C.getMouseInfo(k);O(M,k)}}),Fe(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&zS.emit(qS,C.props.syncId,k,C.eventEmitterSymbol)}),Fe(C,"applySyncEvent",function(k){var O=C.props,M=O.layout,I=O.syncMethod,z=C.state.updateId,D=k.dataStartIndex,H=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ye({dataStartIndex:D,dataEndIndex:H},x({props:C.props,dataStartIndex:D,dataEndIndex:H,updateId:z},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,F=k.chartY,G=k.activeTooltipIndex,L=C.state,R=L.offset,U=L.tooltipTicks;if(!R)return;if(typeof I=="function")G=I(U,k);else if(I==="value"){G=-1;for(var K=0;K=0){var je,le;if(V.dataKey&&!V.allowDuplicatedCategory){var Re=typeof V.dataKey=="function"?pe:"payload.".concat(V.dataKey.toString());je=jv(K,Re,G),le=te&&$&&jv($,Re,G)}else je=K?.[F],le=te&&$&&$[F];if(xe||oe){var _e=k.props.activeIndex!==void 0?k.props.activeIndex:F;return[y.cloneElement(k,ye(ye(ye({},I.props),ae),{},{activeIndex:_e})),null,null]}if(!Ge(je))return[Z].concat(Eu(C.renderActivePoints({item:I,activePoint:je,basePoint:le,childIndex:F,isRange:te})))}else{var me,ve=(me=C.getItemByXY(C.state.activeCoordinate))!==null&&me!==void 0?me:{graphicalItem:Z},Le=ve.graphicalItem,It=Le.item,Cn=It===void 0?k:It,vr=Le.childIndex,rr=ye(ye(ye({},I.props),ae),{},{activeIndex:vr});return[y.cloneElement(Cn,rr),null,null]}return te?[Z,null,null]:[Z,null]}),Fe(C,"renderCustomized",function(k,O,M){return y.cloneElement(k,ye(ye({key:"recharts-customized-".concat(M)},C.props),C.state))}),Fe(C,"renderMap",{CartesianGrid:{handler:zp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:zp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:zp},YAxis:{handler:zp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((E=A.id)!==null&&E!==void 0?E:qu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=Nz(C.triggeredAfterMouseMove,(T=A.throttleDelay)!==null&&T!==void 0?T:1e3/60),C.state={},C}return ype(N,w),mpe(N,[{key:"componentDidMount",value:function(){var E,T;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(E=this.props.margin.left)!==null&&E!==void 0?E:0,top:(T=this.props.margin.top)!==null&&T!==void 0?T:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var E=this.props,T=E.children,C=E.data,k=E.height,O=E.layout,M=Kr(T,ni);if(M){var I=M.props.defaultIndex;if(!(typeof I!="number"||I<0||I>this.state.tooltipTicks.length-1)){var z=this.state.tooltipTicks[I]&&this.state.tooltipTicks[I].value,D=zN(this.state,C,I,z),H=this.state.tooltipTicks[I].coordinate,V=(this.state.offset.top+k)/2,F=O==="horizontal",G=F?{x:H,y:V}:{y:H,x:V},L=this.state.formattedGraphicalItems.find(function(U){var K=U.item;return K.type.name==="Scatter"});L&&(G=ye(ye({},G),L.props.points[I].tooltipPosition),D=L.props.points[I].tooltipPayload);var R={activeTooltipIndex:I,isTooltipActive:!0,activeLabel:z,activePayload:D,activeCoordinate:G};this.setState(R),this.renderCursor(M),this.accessibilityManager.setIndex(I)}}}},{key:"getSnapshotBeforeUpdate",value:function(E,T){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==T.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==E.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==E.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(E){j_([Kr(E.children,ni)],[Kr(this.props.children,ni)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var E=Kr(this.props.children,ni);if(E&&typeof E.props.shared=="boolean"){var T=E.props.shared?"axis":"item";return u.indexOf(T)>=0?T:o}return o}},{key:"getMouseInfo",value:function(E){if(!this.container)return null;var T=this.container,C=T.getBoundingClientRect(),k=Hne(C),O={chartX:Math.round(E.pageX-k.left),chartY:Math.round(E.pageY-k.top)},M=C.width/T.offsetWidth||1,I=this.inRange(O.chartX,O.chartY,M);if(!I)return null;var z=this.state,D=z.xAxisMap,H=z.yAxisMap,V=this.getTooltipEventType(),F=LI(this.state,this.props.data,this.props.layout,I);if(V!=="axis"&&D&&H){var G=Fo(D).scale,L=Fo(H).scale,R=G&&G.invert?G.invert(O.chartX):null,U=L&&L.invert?L.invert(O.chartY):null;return ye(ye({},O),{},{xValue:R,yValue:U},F)}return F?ye(ye({},O),F):null}},{key:"inRange",value:function(E,T){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,O=E/C,M=T/C;if(k==="horizontal"||k==="vertical"){var I=this.state.offset,z=O>=I.left&&O<=I.left+I.width&&M>=I.top&&M<=I.top+I.height;return z?{x:O,y:M}:null}var D=this.state,H=D.angleAxisMap,V=D.radiusAxisMap;if(H&&V){var F=Fo(H);return z$({x:O,y:M},F)}return null}},{key:"parseEventsOfWrapper",value:function(){var E=this.props.children,T=this.getTooltipEventType(),C=Kr(E,ni),k={};C&&T==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var O=Sv(this.props,this.handleOuterEvent);return ye(ye({},O),k)}},{key:"addListener",value:function(){zS.on(qS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){zS.removeListener(qS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(E,T,C){for(var k=this.state.formattedGraphicalItems,O=0,M=k.length;O");return e}const Mc=y.forwardRef(({id:e,className:t,children:n,config:r,...a},o)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(Vq.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:o,className:de("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(Ipe,{id:u,config:r}),i.jsx(Ine,{children:n})]})})});Mc.displayName="Chart";const Ipe=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries($pe).map(([r,a])=>` -${a} [data-chart=${e}] { -${n.map(([o,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${o}: ${u};`:null}).join(` -`)} -} -`).join(` -`)}}):null},of=ni,Pc=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:o=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=Gq(),b=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,A=`${g||N?.dataKey||N?.name||"value"}`,E=qN(j,N,A),T=!g&&typeof l=="string"?j[l]?.label||l:E?.label;return u?i.jsx("div",{className:de("font-medium",d),children:u(T,t)}):T?i.jsx("div",{className:de("font-medium",d),children:T}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const w=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:de("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[w?null:b,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,A)=>{const E=`${p||N.name||N.dataKey||"value"}`,T=qN(j,N,E),C=m||N.payload.fill||N.color;return i.jsx("div",{className:de("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,A,N.payload):i.jsxs(i.Fragment,{children:[T?.icon?i.jsx(T.icon,{}):!o&&i.jsx("div",{className:de("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":w&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:de("flex flex-1 justify-between leading-none",w?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[w?b:null,i.jsx("span",{className:"text-muted-foreground",children:T?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});Pc.displayName="ChartTooltip";const Lpe=nl,Yq=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},o)=>{const{config:l}=Gq();return n?.length?i.jsx("div",{ref:o,className:de("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=qN(l,u,d);return i.jsxs("div",{className:de("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});Yq.displayName="ChartLegend";function qN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const Bpe=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),zpe=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),qI=e=>{const t=zpe(e);return t.charAt(0).toUpperCase()+t.slice(1)},Kq=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),qpe=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var Fpe={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Upe=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:o,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...Fpe,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:Kq("lucide",a),...!o&&!qpe(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(o)?o:[o]]));const Oe=(e,t)=>{const n=y.forwardRef(({className:r,...a},o)=>y.createElement(Upe,{ref:o,iconNode:t,className:Kq(`lucide-${Bpe(qI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=qI(e),n};const Hpe=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],Wpe=Oe("activity",Hpe);const Vpe=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],Xq=Oe("arrow-left",Vpe);const Gpe=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],Ype=Oe("arrow-right",Gpe);const Kpe=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],FI=Oe("ban",Kpe);const Xpe=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],Zpe=Oe("book-open",Xpe);const Qpe=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Jpe=Oe("bot",Qpe);const eve=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],Zq=Oe("boxes",eve);const tve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],UI=Oe("calendar",tve);const nve=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],rve=Oe("chart-column",nve);const ave=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],il=Oe("check",ave);const ive=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],uh=Oe("chevron-down",ive);const ove=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],YO=Oe("chevron-left",ove);const sve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],KO=Oe("chevron-right",sve);const lve=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],FN=Oe("chevron-up",lve);const cve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],uve=Oe("chevrons-up-down",cve);const dve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],bg=Oe("circle-alert",dve);const fve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Vo=Oe("circle-check",fve);const hve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],mve=Oe("circle-question-mark",hve);const pve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],Qq=Oe("circle-user",pve);const vve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],UN=Oe("circle-x",vve);const gve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],yve=Oe("circle",gve);const xve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ol=Oe("clock",xve);const bve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],HN=Oe("copy",bve);const wve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],jve=Oe("database",wve);const Sve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],_ve=Oe("dollar-sign",Sve);const Nve=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],WN=Oe("download",Nve);const Cve=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],av=Oe("external-link",Cve);const Ove=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],VN=Oe("eye-off",Ove);const Eve=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ua=Oe("eye",Eve);const Ave=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],wg=Oe("file-search",Ave);const Tve=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],XO=Oe("file-text",Tve);const kve=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],GN=Oe("funnel",kve);const Mve=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],jg=Oe("hash",Mve);const Pve=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Sg=Oe("house",Pve);const Rve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],YN=Oe("info",Rve);const Dve=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],$ve=Oe("key",Dve);const Ive=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],KN=Oe("loader-circle",Ive);const Lve=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],HI=Oe("lock",Lve);const Bve=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],WI=Oe("log-out",Bve);const zve=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],qve=Oe("menu",zve);const Fve=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Lh=Oe("message-square",Fve);const Uve=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],XN=Oe("moon",Uve);const Hve=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Jq=Oe("package",Hve);const Wve=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],eF=Oe("palette",Wve);const Vve=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],Gve=Oe("pause",Vve);const Yve=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Au=Oe("pencil",Yve);const Kve=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Xve=Oe("play",Kve);const Zve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],tr=Oe("plus",Zve);const Qve=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],sl=Oe("refresh-cw",Qve);const Jve=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],ege=Oe("rotate-ccw",Jve);const tge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],nge=Oe("rotate-cw",tge);const rge=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],ZO=Oe("save",rge);const age=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Dr=Oe("search",age);const ige=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],tF=Oe("server",ige);const oge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],sge=Oe("settings-2",oge);const lge=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Vc=Oe("settings",lge);const cge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],uge=Oe("shield",cge);const dge=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],fge=Oe("skip-forward",dge);const hge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],QO=Oe("smile",hge);const mge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],pge=Oe("sparkles",mge);const vge=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Tu=Oe("square-pen",vge);const gge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],VI=Oe("star",gge);const yge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],ZN=Oe("sun",yge);const xge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],bge=Oe("terminal",xge);const wge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Tt=Oe("trash-2",wge);const jge=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Sge=Oe("trending-up",jge);const _ge=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Gc=Oe("triangle-alert",_ge);const Nge=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],nF=Oe("user",Nge);const Cge=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Oge=Oe("users",Cge);const Ege=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Bh=Oe("x",Ege);const Age=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],dh=Oe("zap",Age);var Tge=Symbol.for("react.lazy"),_g=jC[" use ".trim().toString()];function kge(e){return typeof e=="object"&&e!==null&&"then"in e}function rF(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Tge&&"_payload"in e&&kge(e._payload)}function zh(e){const t=Pge(e),n=y.forwardRef((r,a)=>{let{children:o,...l}=r;rF(o)&&typeof _g=="function"&&(o=_g(o._payload));const u=y.Children.toArray(o),d=u.find(Dge);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}var Mge=zh("Slot");function Pge(e){const t=y.forwardRef((n,r)=>{let{children:a,...o}=n;if(rF(a)&&typeof _g=="function"&&(a=_g(a._payload)),y.isValidElement(a)){const l=Ige(a),u=$ge(o,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Rge=Symbol("radix.slottable");function Dge(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Rge}function $ge(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...u)=>{const d=o(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function Ige(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}const GI=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,YI=Ye,qh=(e,t)=>n=>{var r;if(t?.variants==null)return YI(e,n?.class,n?.className);const{variants:a,defaultVariants:o}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=o?.[f];if(m===null)return null;const g=GI(m)||GI(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[b,w]=j;return Array.isArray(w)?w.includes({...o,...u}[b]):{...o,...u}[b]===w})?[...f,p,g]:f},[]);return YI(e,l,d,n?.class,n?.className)},fh=qh("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),ue=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},o)=>{const l=r?Mge:"button";return i.jsx(l,{className:de(fh({variant:t,size:n,className:e})),ref:o,...a})});ue.displayName="Button";function Lge(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,o]=y.useState(24),[l,u]=y.useState(!0),[d,f]=y.useState(null),[m,p]=y.useState(!0),g=y.useCallback(async()=>{try{p(!0);const O=await ln.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");f({hitokoto:O.data.hitokoto,from:O.data.from||O.data.from_who||"未知"})}catch(O){console.error("获取一言失败:",O),f({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{p(!1)}},[]),x=y.useCallback(async()=>{try{const O=localStorage.getItem("token"),M=await ln.get(`/api/webui/statistics/dashboard?hours=${a}`,{headers:{Authorization:`Bearer ${O}`}});t(M.data),r(!1)}catch(O){console.error("Failed to fetch dashboard data:",O),r(!1)}},[a]);if(y.useEffect(()=>{x(),g()},[x,g]),y.useEffect(()=>{if(!l)return;const O=setInterval(()=>{x()},3e4);return()=>clearInterval(O)},[l,x]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-4",children:[i.jsx(sl,{className:"h-12 w-12 animate-spin mx-auto text-muted-foreground"}),i.jsx("p",{className:"text-muted-foreground",children:"加载统计数据中..."})]})});const{summary:j,model_stats:b,hourly_data:w,daily_data:N,recent_activity:A}=e,E=O=>{const M=Math.floor(O/3600),I=Math.floor(O%3600/60);return`${M}小时${I}分钟`},T=O=>new Date(O).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),C=b.slice(0,6).map(O=>({name:O.model_name,value:O.request_count,fill:`hsl(var(--chart-${b.indexOf(O)%5+1}))`})),k={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(ul,{value:a.toString(),onValueChange:O=>o(Number(O)),children:i.jsxs(Qo,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Ot,{value:"24",children:"24小时"}),i.jsx(Ot,{value:"168",children:"7天"}),i.jsx(Ot,{value:"720",children:"30天"})]})}),i.jsxs(ue,{variant:l?"default":"outline",size:"sm",onClick:()=>u(!l),className:"gap-2",children:[i.jsx(sl,{className:`h-4 w-4 ${l?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(ue,{variant:"outline",size:"sm",onClick:x,children:i.jsx(sl,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(st,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(Wpe,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(on,{children:[i.jsx("div",{className:"text-2xl font-bold",children:j.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",a<48?a+"小时":Math.floor(a/24)+"天"]})]})]}),i.jsxs(st,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"总花费"}),i.jsx(_ve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(on,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",j.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:j.cost_per_hour>0?`¥${j.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(st,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(jve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(on,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(j.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:j.tokens_per_hour>0?`${(j.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(st,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(dh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(on,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[j.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(st,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(ol,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(on,{children:i.jsx("div",{className:"text-xl font-bold",children:E(j.online_time)})})]}),i.jsxs(st,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(Lh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(on,{children:[i.jsx("div",{className:"text-xl font-bold",children:j.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",j.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(st,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(Sge,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(on,{children:[i.jsx("div",{className:"text-xl font-bold",children:j.total_messages>0?`¥${(j.total_cost/j.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(ul,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(Qo,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Ot,{value:"trends",children:"趋势"}),i.jsx(Ot,{value:"models",children:"模型"}),i.jsx(Ot,{value:"activity",children:"活动"}),i.jsx(Ot,{value:"daily",children:"日统计"})]}),i.jsxs(en,{value:"trends",className:"space-y-4",children:[i.jsxs(st,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"请求趋势"}),i.jsxs(er,{children:["最近",a,"小时的请求量变化"]})]}),i.jsx(on,{children:i.jsx(Mc,{config:k,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(Rpe,{data:w,children:[i.jsx(ff,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Wo,{dataKey:"timestamp",tickFormatter:O=>T(O),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(of,{content:i.jsx(Pc,{labelFormatter:O=>T(O)})}),i.jsx(Ih,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(st,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"花费趋势"}),i.jsx(er,{children:"API调用成本变化"})]}),i.jsx(on,{children:i.jsx(Mc,{config:k,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(US,{data:w,children:[i.jsx(ff,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Wo,{dataKey:"timestamp",tickFormatter:O=>T(O),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(of,{content:i.jsx(Pc,{labelFormatter:O=>T(O)})}),i.jsx(li,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(st,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"Token消耗"}),i.jsx(er,{children:"Token使用量变化"})]}),i.jsx(on,{children:i.jsx(Mc,{config:k,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(US,{data:w,children:[i.jsx(ff,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Wo,{dataKey:"timestamp",tickFormatter:O=>T(O),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(of,{content:i.jsx(Pc,{labelFormatter:O=>T(O)})}),i.jsx(li,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(en,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(st,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"模型请求分布"}),i.jsx(er,{children:"各模型使用占比"})]}),i.jsx(on,{children:i.jsx(Mc,{config:Object.fromEntries(b.slice(0,6).map((O,M)=>[O.model_name,{label:O.model_name,color:`hsl(var(--chart-${M%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(Dpe,{children:[i.jsx(of,{content:i.jsx(Pc,{})}),i.jsx(fo,{data:C,cx:"50%",cy:"50%",labelLine:!1,label:({name:O,percent:M})=>`${O} ${M?(M*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:C.map((O,M)=>i.jsx(iy,{fill:O.fill},`cell-${M}`))})]})})})]}),i.jsxs(st,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"模型详细统计"}),i.jsx(er,{children:"请求数、花费和性能"})]}),i.jsx(on,{children:i.jsx(Vt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:b.map((O,M)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:O.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${M%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:O.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",O.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(O.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[O.avg_response_time.toFixed(2),"s"]})]})]})]},M))})})})]})]})}),i.jsx(en,{value:"activity",children:i.jsxs(st,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"最近活动"}),i.jsx(er,{children:"最新的API调用记录"})]}),i.jsx(on,{children:i.jsx(Vt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((O,M)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:O.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:T(O.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:O.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",O.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[O.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${O.status==="success"?"text-green-600":"text-red-600"}`,children:O.status})]})]})]},M))})})})]})}),i.jsx(en,{value:"daily",children:i.jsxs(st,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"每日统计"}),i.jsx(er,{children:"最近7天的数据汇总"})]}),i.jsx(on,{children:i.jsx(Mc,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(US,{data:N,children:[i.jsx(ff,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Wo,{dataKey:"timestamp",tickFormatter:O=>{const M=new Date(O);return`${M.getMonth()+1}/${M.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(of,{content:i.jsx(Pc,{labelFormatter:O=>new Date(O).toLocaleDateString("zh-CN")})}),i.jsx(Lpe,{content:i.jsx(Yq,{})}),i.jsx(li,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(li,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(st,{className:"border-2 border-primary/20",children:[i.jsx(qt,{className:"pb-3",children:i.jsx(Ft,{className:"text-lg",children:"每日一言"})}),i.jsx(on,{children:m?i.jsxs("div",{className:"space-y-2",children:[i.jsx(FM,{className:"h-6 w-3/4"}),i.jsx(FM,{className:"h-4 w-1/4"})]}):d?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',d.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",d.from]})]}):null})]})]})})}const Bge={theme:"system",setTheme:()=>null},aF=y.createContext(Bge),JO=()=>{const e=y.useContext(aF);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},zge=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,o=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(o,innerHeight-o));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${o}px)`,`circle(${l}px at ${a}px ${o}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},iF=y.createContext(void 0),oF=()=>{const e=y.useContext(iF);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function Ty(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function ky(e){const[t,n]=y.useState(void 0);return Un(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const o=a[0];let l,u;if("borderBoxSize"in o){const d=o.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var My="Switch",[qge]=hr(My),[Fge,Uge]=qge(My),sF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:o,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=qe(t,E=>x(E)),b=y.useRef(!1),w=g?m||!!g.closest("form"):!0,[N,A]=Na({prop:a,defaultProp:o??!1,onChange:f,caller:My});return i.jsxs(Fge,{scope:n,checked:N,disabled:u,children:[i.jsx(Pe.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":dF(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:Se(e.onClick,E=>{A(T=>!T),w&&(b.current=E.isPropagationStopped(),b.current||E.stopPropagation())})}),w&&i.jsx(uF,{control:g,bubbles:!b.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});sF.displayName=My;var lF="SwitchThumb",cF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=Uge(lF,n);return i.jsx(Pe.span,{"data-state":dF(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});cF.displayName=lF;var Hge="SwitchBubbleInput",uF=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},o)=>{const l=y.useRef(null),u=qe(l,o),d=Ty(n),f=ky(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});uF.displayName=Hge;function dF(e){return e?"checked":"unchecked"}var fF=sF,Wge=cF;const at=y.forwardRef(({className:e,...t},n)=>i.jsx(fF,{className:de("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(Wge,{className:de("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));at.displayName=fF.displayName;var Vge=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Gge=Vge.reduce((e,t)=>{const n=zh(`Primitive.${t}`),r=y.forwardRef((a,o)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Yge="Label",hF=y.forwardRef((e,t)=>i.jsx(Gge.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));hF.displayName=Yge;var mF=hF;const Kge=qh("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),J=y.forwardRef(({className:e,...t},n)=>i.jsx(mF,{ref:n,className:de(Kge(),e),...t}));J.displayName=mF.displayName;const Ne=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:de("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ne.displayName="Input";const Xge=1,Zge=1e6;let HS=0;function Qge(){return HS=(HS+1)%Number.MAX_SAFE_INTEGER,HS.toString()}const WS=new Map,KI=e=>{if(WS.has(e))return;const t=setTimeout(()=>{WS.delete(e),Of({type:"REMOVE_TOAST",toastId:e})},Zge);WS.set(e,t)},Jge=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,Xge)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?KI(n):e.toasts.forEach(r=>{KI(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},iv=[];let ov={toasts:[]};function Of(e){ov=Jge(ov,e),iv.forEach(t=>{t(ov)})}function eye({...e}){const t=Qge(),n=a=>Of({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Of({type:"DISMISS_TOAST",toastId:t});return Of({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function mr(){const[e,t]=y.useState(ov);return y.useEffect(()=>(iv.push(t),()=>{const n=iv.indexOf(t);n>-1&&iv.splice(n,1)}),[e]),{...e,toast:eye,dismiss:n=>Of({type:"DISMISS_TOAST",toastId:n})}}const tye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function nye(e){const t=tye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const eE="0.11.5 Beta",tE="MaiBot Dashboard",rye=`${tE} v${eE}`,aye=(e="v")=>`${e}${eE}`;function iye(e,t=globalThis?.document){const n=nn(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var oye="DismissableLayer",QN="dismissableLayer.update",sye="dismissableLayer.pointerDownOutside",lye="dismissableLayer.focusOutside",XI,pF=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ol=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(pF),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=qe(t,O=>p(O)),b=Array.from(f.layers),[w]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=b.indexOf(w),A=m?b.indexOf(m):-1,E=f.layersWithOutsidePointerEventsDisabled.size>0,T=A>=N,C=uye(O=>{const M=O.target,I=[...f.branches].some(z=>z.contains(M));!T||I||(a?.(O),l?.(O),O.defaultPrevented||u?.())},g),k=dye(O=>{const M=O.target;[...f.branches].some(z=>z.contains(M))||(o?.(O),l?.(O),O.defaultPrevented||u?.())},g);return iye(O=>{A===f.layers.size-1&&(r?.(O),!O.defaultPrevented&&u&&(O.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(XI=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),ZI(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=XI)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),ZI())},[m,f]),y.useEffect(()=>{const O=()=>x({});return document.addEventListener(QN,O),()=>document.removeEventListener(QN,O)},[]),i.jsx(Pe.div,{...d,ref:j,style:{pointerEvents:E?T?"auto":"none":void 0,...e.style},onFocusCapture:Se(e.onFocusCapture,k.onFocusCapture),onBlurCapture:Se(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:Se(e.onPointerDownCapture,C.onPointerDownCapture)})});Ol.displayName=oye;var cye="DismissableLayerBranch",vF=y.forwardRef((e,t)=>{const n=y.useContext(pF),r=y.useRef(null),a=qe(t,r);return y.useEffect(()=>{const o=r.current;if(o)return n.branches.add(o),()=>{n.branches.delete(o)}},[n.branches]),i.jsx(Pe.div,{...e,ref:a})});vF.displayName=cye;function uye(e,t=globalThis?.document){const n=nn(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const o=u=>{if(u.target&&!r.current){let d=function(){gF(sye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",o)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",o),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function dye(e,t=globalThis?.document){const n=nn(e),r=y.useRef(!1);return y.useEffect(()=>{const a=o=>{o.target&&!r.current&&gF(lye,n,{originalEvent:o},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function ZI(){const e=new CustomEvent(QN);document.dispatchEvent(e)}function gF(e,t,n,{discrete:r}){const a=n.originalEvent.target,o=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?LC(a,o):a.dispatchEvent(o)}var fye=Ol,hye=vF,VS="focusScope.autoFocusOnMount",GS="focusScope.autoFocusOnUnmount",QI={bubbles:!1,cancelable:!0},mye="FocusScope",Fh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:o,...l}=e,[u,d]=y.useState(null),f=nn(a),m=nn(o),p=y.useRef(null),g=qe(t,b=>d(b)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let b=function(E){if(x.paused||!u)return;const T=E.target;u.contains(T)?p.current=T:zo(p.current,{select:!0})},w=function(E){if(x.paused||!u)return;const T=E.relatedTarget;T!==null&&(u.contains(T)||zo(p.current,{select:!0}))},N=function(E){if(document.activeElement===document.body)for(const C of E)C.removedNodes.length>0&&zo(u)};document.addEventListener("focusin",b),document.addEventListener("focusout",w);const A=new MutationObserver(N);return u&&A.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",b),document.removeEventListener("focusout",w),A.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){eL.add(x);const b=document.activeElement;if(!u.contains(b)){const N=new CustomEvent(VS,QI);u.addEventListener(VS,f),u.dispatchEvent(N),N.defaultPrevented||(pye(bye(yF(u)),{select:!0}),document.activeElement===b&&zo(u))}return()=>{u.removeEventListener(VS,f),setTimeout(()=>{const N=new CustomEvent(GS,QI);u.addEventListener(GS,m),u.dispatchEvent(N),N.defaultPrevented||zo(b??document.body,{select:!0}),u.removeEventListener(GS,m),eL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(b=>{if(!n&&!r||x.paused)return;const w=b.key==="Tab"&&!b.altKey&&!b.ctrlKey&&!b.metaKey,N=document.activeElement;if(w&&N){const A=b.currentTarget,[E,T]=vye(A);E&&T?!b.shiftKey&&N===T?(b.preventDefault(),n&&zo(E,{select:!0})):b.shiftKey&&N===E&&(b.preventDefault(),n&&zo(T,{select:!0})):N===A&&b.preventDefault()}},[n,r,x.paused]);return i.jsx(Pe.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Fh.displayName=mye;function pye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(zo(r,{select:t}),document.activeElement!==n)return}function vye(e){const t=yF(e),n=JI(t,e),r=JI(t.reverse(),e);return[n,r]}function yF(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function JI(e,t){for(const n of e)if(!gye(n,{upTo:t}))return n}function gye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function yye(e){return e instanceof HTMLInputElement&&"select"in e}function zo(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&yye(e)&&t&&e.select()}}var eL=xye();function xye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=tL(e,t),e.unshift(t)},remove(t){e=tL(e,t),e[0]?.resume()}}}function tL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function bye(e){return e.filter(t=>t.tagName!=="A")}var wye="Portal",El=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,o]=y.useState(!1);Un(()=>o(!0),[]);const l=n||a&&globalThis?.document?.body;return l?yY.createPortal(i.jsx(Pe.div,{...r,ref:t}),l):null});El.displayName=wye;var YS=0;function Py(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??nL()),document.body.insertAdjacentElement("beforeend",e[1]??nL()),YS++,()=>{YS===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),YS--}},[])}function nL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ri=function(){return ri=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return Lye;var t=Bye(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},qye=jF(),Yc="data-scroll-locked",Fye=function(e,t,n,r){var a=e.left,o=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` - .`.concat(Sye,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(u,"px ").concat(r,`; - } - body[`).concat(Yc,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(a,`px; - padding-top: `).concat(o,`px; - padding-right: `).concat(l,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(u,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(sv,` { - right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(lv,` { - margin-right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(sv," .").concat(sv,` { - right: 0 `).concat(r,`; - } - - .`).concat(lv," .").concat(lv,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(Yc,`] { - `).concat(_ye,": ").concat(u,`px; - } -`)},aL=function(){var e=parseInt(document.body.getAttribute(Yc)||"0",10);return isFinite(e)?e:0},Uye=function(){y.useEffect(function(){return document.body.setAttribute(Yc,(aL()+1).toString()),function(){var e=aL()-1;e<=0?document.body.removeAttribute(Yc):document.body.setAttribute(Yc,e.toString())}},[])},Hye=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;Uye();var o=y.useMemo(function(){return zye(a)},[a]);return y.createElement(qye,{styles:Fye(o,!t,a,n?"":"!important")})},JN=!1;if(typeof window<"u")try{var qp=Object.defineProperty({},"passive",{get:function(){return JN=!0,!0}});window.addEventListener("test",qp,qp),window.removeEventListener("test",qp,qp)}catch{JN=!1}var Cc=JN?{passive:!1}:!1,Wye=function(e){return e.tagName==="TEXTAREA"},SF=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Wye(e)&&n[t]==="visible")},Vye=function(e){return SF(e,"overflowY")},Gye=function(e){return SF(e,"overflowX")},iL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=_F(e,r);if(a){var o=NF(e,r),l=o[1],u=o[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Yye=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},Kye=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},_F=function(e,t){return e==="v"?Vye(t):Gye(t)},NF=function(e,t){return e==="v"?Yye(t):Kye(t)},Xye=function(e,t){return e==="h"&&t==="rtl"?-1:1},Zye=function(e,t,n,r,a){var o=Xye(e,window.getComputedStyle(t).direction),l=o*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=NF(e,u),j=x[0],b=x[1],w=x[2],N=b-w-o*j;(j||N)&&_F(e,u)&&(p+=N,g+=j);var A=u.parentNode;u=A&&A.nodeType===Node.DOCUMENT_FRAGMENT_NODE?A.host:A}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Fp=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},oL=function(e){return[e.deltaX,e.deltaY]},sL=function(e){return e&&"current"in e?e.current:e},Qye=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Jye=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},exe=0,Oc=[];function txe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(exe++)[0],o=y.useState(jF)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var b=jye([e.lockRef.current],(e.shards||[]).map(sL),!0).filter(Boolean);return b.forEach(function(w){return w.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),b.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(b,w){if("touches"in b&&b.touches.length===2||b.type==="wheel"&&b.ctrlKey)return!l.current.allowPinchZoom;var N=Fp(b),A=n.current,E="deltaX"in b?b.deltaX:A[0]-N[0],T="deltaY"in b?b.deltaY:A[1]-N[1],C,k=b.target,O=Math.abs(E)>Math.abs(T)?"h":"v";if("touches"in b&&O==="h"&&k.type==="range")return!1;var M=iL(O,k);if(!M)return!0;if(M?C=O:(C=O==="v"?"h":"v",M=iL(O,k)),!M)return!1;if(!r.current&&"changedTouches"in b&&(E||T)&&(r.current=C),!C)return!0;var I=r.current||C;return Zye(I,w,b,I==="h"?E:T)},[]),d=y.useCallback(function(b){var w=b;if(!(!Oc.length||Oc[Oc.length-1]!==o)){var N="deltaY"in w?oL(w):Fp(w),A=t.current.filter(function(C){return C.name===w.type&&(C.target===w.target||w.target===C.shadowParent)&&Qye(C.delta,N)})[0];if(A&&A.should){w.cancelable&&w.preventDefault();return}if(!A){var E=(l.current.shards||[]).map(sL).filter(Boolean).filter(function(C){return C.contains(w.target)}),T=E.length>0?u(w,E[0]):!l.current.noIsolation;T&&w.cancelable&&w.preventDefault()}}},[]),f=y.useCallback(function(b,w,N,A){var E={name:b,delta:w,target:N,should:A,shadowParent:nxe(N)};t.current.push(E),setTimeout(function(){t.current=t.current.filter(function(T){return T!==E})},1)},[]),m=y.useCallback(function(b){n.current=Fp(b),r.current=void 0},[]),p=y.useCallback(function(b){f(b.type,oL(b),b.target,u(b,e.lockRef.current))},[]),g=y.useCallback(function(b){f(b.type,Fp(b),b.target,u(b,e.lockRef.current))},[]);y.useEffect(function(){return Oc.push(o),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Cc),document.addEventListener("touchmove",d,Cc),document.addEventListener("touchstart",m,Cc),function(){Oc=Oc.filter(function(b){return b!==o}),document.removeEventListener("wheel",d,Cc),document.removeEventListener("touchmove",d,Cc),document.removeEventListener("touchstart",m,Cc)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(o,{styles:Jye(a)}):null,x?y.createElement(Hye,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function nxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const rxe=kye(wF,txe);var Uh=y.forwardRef(function(e,t){return y.createElement(Ry,ri({},e,{ref:t,sideCar:rxe}))});Uh.classNames=Ry.classNames;var axe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ec=new WeakMap,Up=new WeakMap,Hp={},QS=0,CF=function(e){return e&&(e.host||CF(e.parentNode))},ixe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=CF(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},oxe=function(e,t,n,r){var a=ixe(t,Array.isArray(e)?e:[e]);Hp[n]||(Hp[n]=new WeakMap);var o=Hp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",b=(Ec.get(g)||0)+1,w=(o.get(g)||0)+1;Ec.set(g,b),o.set(g,w),l.push(g),b===1&&j&&Up.set(g,!0),w===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),QS++,function(){l.forEach(function(p){var g=Ec.get(p)-1,x=o.get(p)-1;Ec.set(p,g),o.set(p,x),g||(Up.has(p)||p.removeAttribute(r),Up.delete(p)),x||p.removeAttribute(n)}),QS--,QS||(Ec=new WeakMap,Ec=new WeakMap,Up=new WeakMap,Hp={})}},Dy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=axe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),oxe(r,a,n,"aria-hidden")):function(){return null}};function sxe(e){const t=lxe(e),n=y.forwardRef((r,a)=>{const{children:o,...l}=r,u=y.Children.toArray(o),d=u.find(uxe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function lxe(e){const t=y.forwardRef((n,r)=>{const{children:a,...o}=n;if(y.isValidElement(a)){const l=fxe(a),u=dxe(o,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var cxe=Symbol("radix.slottable");function uxe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===cxe}function dxe(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...u)=>{const d=o(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function fxe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var $y="Dialog",[OF,EF]=hr($y),[hxe,Ya]=OF($y),AF=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:o,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Na({prop:r,defaultProp:a??!1,onChange:o,caller:$y});return i.jsx(hxe,{scope:t,triggerRef:u,contentRef:d,contentId:Fn(),titleId:Fn(),descriptionId:Fn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};AF.displayName=$y;var TF="DialogTrigger",kF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(TF,n),o=qe(t,a.triggerRef);return i.jsx(Pe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":aE(a.open),...r,ref:o,onClick:Se(e.onClick,a.onOpenToggle)})});kF.displayName=TF;var nE="DialogPortal",[mxe,MF]=OF(nE,{forceMount:void 0}),PF=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,o=Ya(nE,t);return i.jsx(mxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(Rn,{present:n||o.open,children:i.jsx(El,{asChild:!0,container:a,children:l})}))})};PF.displayName=nE;var Ng="DialogOverlay",RF=y.forwardRef((e,t)=>{const n=MF(Ng,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,o=Ya(Ng,e.__scopeDialog);return o.modal?i.jsx(Rn,{present:r||o.open,children:i.jsx(vxe,{...a,ref:t})}):null});RF.displayName=Ng;var pxe=sxe("DialogOverlay.RemoveScroll"),vxe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(Ng,n);return i.jsx(Uh,{as:pxe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx(Pe.div,{"data-state":aE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),vl="DialogContent",DF=y.forwardRef((e,t)=>{const n=MF(vl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,o=Ya(vl,e.__scopeDialog);return i.jsx(Rn,{present:r||o.open,children:o.modal?i.jsx(gxe,{...a,ref:t}):i.jsx(yxe,{...a,ref:t})})});DF.displayName=vl;var gxe=y.forwardRef((e,t)=>{const n=Ya(vl,e.__scopeDialog),r=y.useRef(null),a=qe(t,n.contentRef,r);return y.useEffect(()=>{const o=r.current;if(o)return Dy(o)},[]),i.jsx($F,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Se(e.onCloseAutoFocus,o=>{o.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Se(e.onPointerDownOutside,o=>{const l=o.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&o.preventDefault()}),onFocusOutside:Se(e.onFocusOutside,o=>o.preventDefault())})}),yxe=y.forwardRef((e,t)=>{const n=Ya(vl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx($F,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{e.onCloseAutoFocus?.(o),o.defaultPrevented||(r.current||n.triggerRef.current?.focus(),o.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:o=>{e.onInteractOutside?.(o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=o.target;n.triggerRef.current?.contains(l)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&a.current&&o.preventDefault()}})}),$F=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:o,...l}=e,u=Ya(vl,n),d=y.useRef(null),f=qe(t,d);return Py(),i.jsxs(i.Fragment,{children:[i.jsx(Fh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:o,children:i.jsx(Ol,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":aE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(bxe,{titleId:u.titleId}),i.jsx(jxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),rE="DialogTitle",IF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(rE,n);return i.jsx(Pe.h2,{id:a.titleId,...r,ref:t})});IF.displayName=rE;var LF="DialogDescription",BF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(LF,n);return i.jsx(Pe.p,{id:a.descriptionId,...r,ref:t})});BF.displayName=LF;var zF="DialogClose",qF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(zF,n);return i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,()=>a.onOpenChange(!1))})});qF.displayName=zF;function aE(e){return e?"open":"closed"}var FF="DialogTitleWarning",[xxe,UF]=sZ(FF,{contentName:vl,titleName:rE,docsSlug:"dialog"}),bxe=({titleId:e})=>{const t=UF(FF),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},wxe="DialogDescriptionWarning",jxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${UF(wxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},iE=AF,HF=kF,oE=PF,Iy=RF,Ly=DF,sE=IF,lE=BF,cE=qF;const nr=iE,WF=HF,Sxe=oE,VF=y.forwardRef(({className:e,...t},n)=>i.jsx(Iy,{ref:n,className:de("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));VF.displayName=Iy.displayName;const Hn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Sxe,{children:[i.jsx(VF,{}),i.jsxs(Ly,{ref:r,className:de("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(cE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Bh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Hn.displayName=Ly.displayName;const Wn=({className:e,...t})=>i.jsx("div",{className:de("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Wn.displayName="DialogHeader";const $r=({className:e,...t})=>i.jsx("div",{className:de("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});$r.displayName="DialogFooter";const Vn=y.forwardRef(({className:e,...t},n)=>i.jsx(sE,{ref:n,className:de("text-lg font-semibold leading-none tracking-tight",e),...t}));Vn.displayName=sE.displayName;const dr=y.forwardRef(({className:e,...t},n)=>i.jsx(lE,{ref:n,className:de("text-sm text-muted-foreground",e),...t}));dr.displayName=lE.displayName;var _xe=Symbol("radix.slottable");function Nxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=_xe,t}var GF="AlertDialog",[Cxe]=hr(GF,[EF]),ho=EF(),YF=e=>{const{__scopeAlertDialog:t,...n}=e,r=ho(t);return i.jsx(iE,{...r,...n,modal:!0})};YF.displayName=GF;var Oxe="AlertDialogTrigger",KF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ho(n);return i.jsx(HF,{...a,...r,ref:t})});KF.displayName=Oxe;var Exe="AlertDialogPortal",XF=e=>{const{__scopeAlertDialog:t,...n}=e,r=ho(t);return i.jsx(oE,{...r,...n})};XF.displayName=Exe;var Axe="AlertDialogOverlay",ZF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ho(n);return i.jsx(Iy,{...a,...r,ref:t})});ZF.displayName=Axe;var Kc="AlertDialogContent",[Txe,kxe]=Cxe(Kc),Mxe=Nxe("AlertDialogContent"),QF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,o=ho(n),l=y.useRef(null),u=qe(t,l),d=y.useRef(null);return i.jsx(xxe,{contentName:Kc,titleName:JF,docsSlug:"alert-dialog",children:i.jsx(Txe,{scope:n,cancelRef:d,children:i.jsxs(Ly,{role:"alertdialog",...o,...a,ref:u,onOpenAutoFocus:Se(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(Mxe,{children:r}),i.jsx(Rxe,{contentRef:l})]})})})});QF.displayName=Kc;var JF="AlertDialogTitle",e8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ho(n);return i.jsx(sE,{...a,...r,ref:t})});e8.displayName=JF;var t8="AlertDialogDescription",n8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ho(n);return i.jsx(lE,{...a,...r,ref:t})});n8.displayName=t8;var Pxe="AlertDialogAction",r8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ho(n);return i.jsx(cE,{...a,...r,ref:t})});r8.displayName=Pxe;var a8="AlertDialogCancel",i8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=kxe(a8,n),o=ho(n),l=qe(t,a);return i.jsx(cE,{...o,...r,ref:l})});i8.displayName=a8;var Rxe=({contentRef:e})=>{const t=`\`${Kc}\` requires a description for the component to be accessible for screen reader users. - -You can add a description to the \`${Kc}\` by passing a \`${t8}\` component as a child, which also benefits sighted users by adding visible context to the dialog. - -Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Kc}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. - -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},Dxe=YF,$xe=KF,Ixe=XF,o8=ZF,s8=QF,l8=r8,c8=i8,u8=e8,d8=n8;const Pn=Dxe,ra=$xe,Lxe=Ixe,f8=y.forwardRef(({className:e,...t},n)=>i.jsx(o8,{className:de("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));f8.displayName=o8.displayName;const yn=y.forwardRef(({className:e,...t},n)=>i.jsxs(Lxe,{children:[i.jsx(f8,{}),i.jsx(s8,{ref:n,className:de("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));yn.displayName=s8.displayName;const xn=({className:e,...t})=>i.jsx("div",{className:de("flex flex-col space-y-2 text-center sm:text-left",e),...t});xn.displayName="AlertDialogHeader";const bn=({className:e,...t})=>i.jsx("div",{className:de("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});bn.displayName="AlertDialogFooter";const wn=y.forwardRef(({className:e,...t},n)=>i.jsx(u8,{ref:n,className:de("text-lg font-semibold",e),...t}));wn.displayName=u8.displayName;const jn=y.forwardRef(({className:e,...t},n)=>i.jsx(d8,{ref:n,className:de("text-sm text-muted-foreground",e),...t}));jn.displayName=d8.displayName;const Sn=y.forwardRef(({className:e,...t},n)=>i.jsx(l8,{ref:n,className:de(fh(),e),...t}));Sn.displayName=l8.displayName;const _n=y.forwardRef(({className:e,...t},n)=>i.jsx(c8,{ref:n,className:de(fh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));_n.displayName=c8.displayName;function Bxe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(ul,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(Qo,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Ot,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(eF,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Ot,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(uge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Ot,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Vc,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Ot,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(YN,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Vt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(en,{value:"appearance",className:"mt-0",children:i.jsx(zxe,{})}),i.jsx(en,{value:"security",className:"mt-0",children:i.jsx(qxe,{})}),i.jsx(en,{value:"other",className:"mt-0",children:i.jsx(Fxe,{})}),i.jsx(en,{value:"about",className:"mt-0",children:i.jsx(Uxe,{})})]})]})]})}function lL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=o=>{o=o.replace("#","");const l=parseInt(o.substring(0,2),16)/255,u=parseInt(o.substring(2,4),16)/255,d=parseInt(o.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";lL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),lL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(JS,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(JS,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(JS,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(ba,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(ba,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(ba,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(ba,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(ba,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(ba,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(ba,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(ba,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(ba,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(ba,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(ba,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(ba,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ne,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(J,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(at,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(J,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(at,{id:"waves-background",checked:a,onCheckedChange:o})]})})]})]})]})}function qxe(){const e=oa(),[t,n]=y.useState(""),[r,a]=y.useState(""),[o,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[b,w]=y.useState(!1),[N,A]=y.useState(""),[E,T]=y.useState(!1),{toast:C}=mr(),k=y.useMemo(()=>nye(r),[r]),O=()=>localStorage.getItem("access-token")||"",M=async F=>{try{await navigator.clipboard.writeText(F),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},I=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const F=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${F}`,variant:"destructive"});return}m(!0);try{const F=O(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`},body:JSON.stringify({new_token:r.trim()})}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:L.message||"无法更新 Token",variant:"destructive"})}catch(F){console.error("更新 Token 错误:",F),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},z=async()=>{g(!0);try{const F=O(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`}}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",L.token),n(L.token),A(L.token),w(!0),T(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:L.message||"无法生成新 Token",variant:"destructive"})}catch(F){console.error("生成 Token 错误:",F),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},D=async()=>{try{await navigator.clipboard.writeText(N),T(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},H=()=>{w(!1),setTimeout(()=>{A(""),T(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=F=>{F||H()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(nr,{open:b,onOpenChange:V,children:i.jsxs(Hn,{className:"sm:max-w-md",children:[i.jsxs(Wn,{children:[i.jsxs(Vn,{className:"flex items-center gap-2",children:[i.jsx(Gc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(dr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(J,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Gc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs($r,{className:"gap-2 sm:gap-0",children:[i.jsx(ue,{variant:"outline",onClick:D,className:"gap-2",children:E?i.jsxs(i.Fragment,{children:[i.jsx(il,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(HN,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(ue,{onClick:H,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ne,{id:"current-token",type:o?"text":"password",value:t||O(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(O()),l(!o)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:o?"隐藏":"显示",children:o?i.jsx(VN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ua,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(ue,{variant:"outline",size:"icon",onClick:()=>M(O()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(il,{className:"h-4 w-4 text-green-500"}):i.jsx(HN,{className:"h-4 w-4"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs(ue,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(sl,{className:de("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认重新生成 Token"}),i.jsx(jn,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:z,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ne,{id:"new-token",type:u?"text":"password",value:r,onChange:F=>a(F.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(VN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ua,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(F=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[F.passed?i.jsx(Vo,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(UN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:de(F.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:F.label})]},F.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(il,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(ue,{onClick:I,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function Fxe(){const e=oa(),{toast:t}=mr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const o=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${o}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(o){console.error("重置配置状态错误:",o),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs(ue,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(ege,{className:de("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认重新配置"}),i.jsx(jn,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function Uxe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",tE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",eE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Vt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(Jt,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(Jt,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(Jt,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(Jt,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(Jt,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(Jt,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(Jt,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(Jt,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(Jt,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(Jt,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(Jt,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(Jt,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(Jt,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(Jt,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(Jt,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(Jt,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function Jt({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function JS({value:e,current:t,onChange:n,label:r,description:a}){const o=t===e;return i.jsxs("button",{onClick:()=>n(e),className:de("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",o?"border-primary bg-accent":"border-border"),children:[o&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function ba({value:e,current:t,onChange:n,label:r,colorClass:a}){const o=t===e;return i.jsxs("button",{onClick:()=>n(e),className:de("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",o?"border-primary bg-accent":"border-border"),children:[o&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:de("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class Hxe{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const o=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),o),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),o),l)}}function Wxe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new Hxe(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,o=e.current;if(!a||!o)return;const l=r.current,u=()=>{const b=a.getBoundingClientRect();l.bounding=b,o.style.width=`${b.width}px`,o.style.height=`${b.height}px`},d=()=>{if(!l.bounding)return;const{width:b,height:w}=l.bounding;l.lines=[],l.paths.forEach(I=>I.remove()),l.paths=[];const N=10,A=32,E=b+200,T=w+30,C=Math.ceil(E/N),k=Math.ceil(T/A),O=(b-N*C)/2,M=(w-A*k)/2;for(let I=0;I<=C;I++){const z=[];for(let H=0;H<=k;H++){const V={x:O+N*I,y:M+A*H,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};z.push(V)}const D=document.createElementNS("http://www.w3.org/2000/svg","path");o.appendChild(D),l.paths.push(D),l.lines.push(z)}},f=b=>{const{lines:w,mouse:N,noise:A}=l;w.forEach(E=>{E.forEach(T=>{const C=A.perlin2((T.x+b*.0125)*.002,(T.y+b*.005)*.0015)*12;T.wave.x=Math.cos(C)*32,T.wave.y=Math.sin(C)*16;const k=T.x-N.sx,O=T.y-N.sy,M=Math.hypot(k,O),I=Math.max(175,N.vs);if(M{const N={x:b.x+b.wave.x+(w?b.cursor.x:0),y:b.y+b.wave.y+(w?b.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:b,paths:w}=l;b.forEach((N,A)=>{let E=m(N[0],!1),T=`M ${E.x} ${E.y}`;N.forEach((C,k)=>{const O=k===N.length-1;E=m(C,!O),T+=`L ${E.x} ${E.y}`}),w[A].setAttribute("d",T)})},g=b=>{const{mouse:w}=l;w.sx+=(w.x-w.sx)*.1,w.sy+=(w.y-w.sy)*.1;const N=w.x-w.lx,A=w.y-w.ly,E=Math.hypot(N,A);w.v=E,w.vs+=(E-w.vs)*.1,w.vs=Math.min(100,w.vs),w.lx=w.x,w.ly=w.y,w.a=Math.atan2(A,N),a&&(a.style.setProperty("--x",`${w.sx}px`),a.style.setProperty("--y",`${w.sy}px`)),f(b),p(),n.current=requestAnimationFrame(g)},x=b=>{if(!l.bounding)return;const{mouse:w}=l;w.x=b.pageX-l.bounding.left,w.y=b.pageY-l.bounding.top+window.scrollY,w.set||(w.sx=w.x,w.sy=w.y,w.lx=w.x,w.ly=w.y,w.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` - path { - fill: none; - stroke: hsl(var(--primary) / 0.20); - stroke-width: 1px; - } - `})})]})}function Vxe(){const e=oa();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function h8(){return!!localStorage.getItem("access-token")}function Gxe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,o]=y.useState(""),l=oa(),{enableWavesBackground:u,setEnableWavesBackground:d}=oF(),{theme:f,setTheme:m}=JO();y.useEffect(()=>{h8()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async b=>{if(b.preventDefault(),o(""),!e.trim()){o("请输入 Access Token");return}r(!0);try{const w=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await w.json();if(w.ok&&N.valid){localStorage.setItem("access-token",e.trim());const A=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),E=await A.json();A.ok&&E.is_first_setup?l({to:"/setup"}):l({to:"/"})}else o(N.message||"Token 验证失败,请检查后重试")}catch(w){console.error("Token 验证错误:",w),o("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(Wxe,{}),i.jsxs(st,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(ZN,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(XN,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(qt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(HI,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Ft,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(er,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(on,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx($ve,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ne,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:b=>t(b.target.value),className:de("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(bg,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(ue,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(nr,{children:[i.jsx(WF,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(mve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Hn,{className:"sm:max-w-md",children:[i.jsxs(Wn,{children:[i.jsxs(Vn,{className:"flex items-center gap-2",children:[i.jsx(HI,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(dr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(bge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(XO,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(bg,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(dh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsxs(wn,{className:"flex items-center gap-2",children:[i.jsx(dh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(jn,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:rye})})]})}function Yxe(e,t=[]){let n=[];function r(o,l){const u=y.createContext(l);u.displayName=o+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,b=g?.[e]?.[d]||u,w=y.useMemo(()=>j,Object.values(j));return i.jsx(b.Provider,{value:w,children:x})};f.displayName=o+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${o}\``)}return[f,m]}const a=()=>{const o=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||o;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,Kxe(a,...t)]}function Kxe(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(o){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(o)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var Xxe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],m8=Xxe.reduce((e,t)=>{const n=zh(`Primitive.${t}`),r=y.forwardRef((a,o)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),uE="Progress",dE=100,[Zxe]=Yxe(uE),[Qxe,Jxe]=Zxe(uE),p8=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:o=ebe,...l}=e;(a||a===0)&&!cL(a)&&console.error(tbe(`${a}`,"Progress"));const u=cL(a)?a:dE;r!==null&&!uL(r,u)&&console.error(nbe(`${r}`,"Progress"));const d=uL(r,u)?r:null,f=Cg(d)?o(d,u):void 0;return i.jsx(Qxe,{scope:n,value:d,max:u,children:i.jsx(m8.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":Cg(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":y8(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});p8.displayName=uE;var v8="ProgressIndicator",g8=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=Jxe(v8,n);return i.jsx(m8.div,{"data-state":y8(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});g8.displayName=v8;function ebe(e,t){return`${Math.round(e/t*100)}%`}function y8(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Cg(e){return typeof e=="number"}function cL(e){return Cg(e)&&!isNaN(e)&&e>0}function uL(e,t){return Cg(e)&&!isNaN(e)&&e<=t&&e>=0}function tbe(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${dE}\`.`}function nbe(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${dE} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var x8=p8,rbe=g8;const fE=y.forwardRef(({className:e,value:t,...n},r)=>i.jsx(x8,{ref:r,className:de("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(rbe,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));fE.displayName=x8.displayName;const Wt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:de("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Wt.displayName="Textarea";var abe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ibe=abe.reduce((e,t)=>{const n=zh(`Primitive.${t}`),r=y.forwardRef((a,o)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),obe="Separator",dL="horizontal",sbe=["horizontal","vertical"],b8=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=dL,...a}=e,o=lbe(r)?r:dL,u=n?{role:"none"}:{"aria-orientation":o==="vertical"?o:void 0,role:"separator"};return i.jsx(ibe.div,{"data-orientation":o,...u,...a,ref:t})});b8.displayName=obe;function lbe(e){return sbe.includes(e)}var w8=b8;const hh=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(w8,{ref:a,decorative:n,orientation:t,className:de("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));hh.displayName=w8.displayName;const cbe=qh("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Dt({className:e,variant:t,...n}){return i.jsx("div",{className:de(cbe({variant:t}),e),...n})}function ube({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((o,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ne,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ne,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,o)=>i.jsxs(Dt,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(o),className:"ml-1 hover:text-destructive",children:i.jsx(Bh,{className:"h-3 w-3"})})]},o))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(ue,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function dbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Wt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Wt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Wt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(hh,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Wt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Wt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function fbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ne,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(at,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(hh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(at,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(at,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function hbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(at,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(hh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(at,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ne,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Wt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(hh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(at,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function Qe(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function lt(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function mbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function pbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function vbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function gbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},o=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:o.all_global??!0}}async function ybe(e){const t=await Qe("/api/webui/config/bot/section/bot",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function xbe(e){const t=await Qe("/api/webui/config/bot/section/personality",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function bbe(e){const t=await Qe("/api/webui/config/bot/section/emoji",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function wbe(e){const t=[];t.push(Qe("/api/webui/config/bot/section/tool",{method:"POST",headers:lt(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(Qe("/api/webui/config/bot/section/jargon",{method:"POST",headers:lt(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(Qe("/api/webui/config/bot/section/mood",{method:"POST",headers:lt(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const o=await a.json();throw new Error(o.detail||"保存其他配置失败")}return{success:!0}}async function fL(){const e=localStorage.getItem("access-token"),t=await Qe("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function jbe(){const e=oa(),{toast:t}=mr(),[n,r]=y.useState(0),[a,o]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.请控制你的发言频率,不要太过频繁的发言 -4.如果有人对你感到厌烦,请减少回复 -5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.某句话如果已经被回复过,不要重复回复`}),[j,b]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[w,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),A=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:Jpe},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:nF},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:QO},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Vc},{id:"complete",title:"完成设置",description:"后续配置提示",icon:dh}],E=(n+1)/A.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[D,H,V,F]=await Promise.all([mbe(),pbe(),vbe(),gbe()]);p(D),x(H),b(V),N(F)}catch(D){t({title:"加载配置失败",description:D instanceof Error?D.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const T=async()=>{u(!0);try{switch(n){case 0:await ybe(m);break;case 1:await xbe(g);break;case 2:await bbe(j);break;case 3:await wbe(w);break}return t({title:"保存成功",description:`${A[n].title}配置已保存`}),!0}catch(z){return t({title:"保存失败",description:z instanceof Error?z.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await T()&&n{n>0&&r(n-1)},O=async()=>{o(!0);try{if(!await T()){o(!1);return}await fL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(z){t({title:"完成失败",description:z instanceof Error?z.message:"未知错误",variant:"destructive"})}finally{o(!1)}},M=async()=>{try{await fL(),e({to:"/"})}catch(z){t({title:"跳过失败",description:z instanceof Error?z.message:"未知错误",variant:"destructive"})}},I=()=>{switch(n){case 0:return i.jsx(ube,{config:m,onChange:p});case 1:return i.jsx(dbe,{config:g,onChange:x});case 2:return i.jsx(fbe,{config:j,onChange:b});case 3:return i.jsx(hbe,{config:w,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(dh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(pge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",tE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",A.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(E),"%"]})]}),i.jsx(fE,{value:E,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:A.map((z,D)=>{const H=z.icon;return i.jsxs("div",{className:de("flex flex-1 flex-col items-center gap-1 md:gap-2",De({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(Sg,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(ue,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(Xq,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var S8=["PageUp","PageDown"],_8=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],N8={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Gu="Slider",[eC,Sbe,_be]=Ch(Gu),[C8]=hr(Gu,[_be]),[Nbe,By]=C8(Gu),O8=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:o=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...b}=e,w=y.useRef(new Set),N=y.useRef(0),E=l==="horizontal"?Cbe:Obe,[T=[],C]=Na({prop:m,defaultProp:f,onChange:D=>{[...w.current][N.current]?.focus(),p(D)}}),k=y.useRef(T);function O(D){const H=Mbe(T,D);z(D,H)}function M(D){z(D,N.current)}function I(){const D=k.current[N.current];T[N.current]!==D&&g(T)}function z(D,H,{commit:V}={commit:!1}){const F=$be(o),G=Ibe(Math.round((D-r)/o)*o+r,F),L=Ef(G,[r,a]);C((R=[])=>{const U=Tbe(R,L,H);if(Dbe(U,d*o)){N.current=U.indexOf(L);const K=String(U)!==String(R);return K&&V&&g(U),K?U:R}else return R})}return i.jsx(Nbe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:w.current,values:T,orientation:l,form:j,children:i.jsx(eC.Provider,{scope:e.__scopeSlider,children:i.jsx(eC.Slot,{scope:e.__scopeSlider,children:i.jsx(E,{"aria-disabled":u,"data-disabled":u?"":void 0,...b,ref:t,onPointerDown:Se(b.onPointerDown,()=>{u||(k.current=T)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:O,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:I,onHomeKeyDown:()=>!u&&z(r,0,{commit:!0}),onEndKeyDown:()=>!u&&z(a,T.length-1,{commit:!0}),onStepKeyDown:({event:D,direction:H})=>{if(!u){const G=S8.includes(D.key)||D.shiftKey&&_8.includes(D.key)?10:1,L=N.current,R=T[L],U=o*G*H;z(R+U,L,{commit:!0})}}})})})})});O8.displayName=Gu;var[E8,A8]=C8(Gu,{startEdge:"left",endEdge:"right",size:"width",direction:1}),Cbe=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:o,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=qe(t,E=>g(E)),j=y.useRef(void 0),b=Lu(a),w=b==="ltr",N=w&&!o||!w&&o;function A(E){const T=j.current||p.getBoundingClientRect(),C=[0,T.width],O=hE(C,N?[n,r]:[r,n]);return j.current=T,O(E-T.left)}return i.jsx(E8,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(T8,{dir:b,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:E=>{const T=A(E.clientX);l?.(T)},onSlideMove:E=>{const T=A(E.clientX);u?.(T)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:E=>{const C=N8[N?"from-left":"from-right"].includes(E.key);f?.({event:E,direction:C?-1:1})}})})}),Obe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:o,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=qe(t,m),g=y.useRef(void 0),x=!a;function j(b){const w=g.current||m.current.getBoundingClientRect(),N=[0,w.height],E=hE(N,x?[r,n]:[n,r]);return g.current=w,E(b-w.top)}return i.jsx(E8,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(T8,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:b=>{const w=j(b.clientY);o?.(w)},onSlideMove:b=>{const w=j(b.clientY);l?.(w)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:b=>{const N=N8[x?"from-bottom":"from-top"].includes(b.key);d?.({event:b,direction:N?-1:1})}})})}),T8=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:o,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=By(Gu,n);return i.jsx(Pe.span,{...f,ref:t,onKeyDown:Se(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):S8.concat(_8).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:Se(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:Se(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:Se(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),o(p))})})}),k8="SliderTrack",M8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=By(k8,n);return i.jsx(Pe.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});M8.displayName=k8;var tC="SliderRange",P8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=By(tC,n),o=A8(tC,n),l=y.useRef(null),u=qe(t,l),d=a.values.length,f=a.values.map(g=>$8(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx(Pe.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[o.startEdge]:m+"%",[o.endEdge]:p+"%"}})});P8.displayName=tC;var nC="SliderThumb",R8=y.forwardRef((e,t)=>{const n=Sbe(e.__scopeSlider),[r,a]=y.useState(null),o=qe(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(Ebe,{...e,ref:o,index:l})}),Ebe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...o}=e,l=By(nC,n),u=A8(nC,n),[d,f]=y.useState(null),m=qe(t,A=>f(A)),p=d?l.form||!!d.closest("form"):!0,g=ky(d),x=l.values[r],j=x===void 0?0:$8(x,l.min,l.max),b=kbe(r,l.values.length),w=g?.[u.size],N=w?Pbe(w,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(eC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx(Pe.span,{role:"slider","aria-label":e["aria-label"]||b,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...o,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:Se(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(D8,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});R8.displayName=nC;var Abe="RadioBubbleInput",D8=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),o=qe(a,r),l=Ty(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx(Pe.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});D8.displayName=Abe;function Tbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,o)=>a-o)}function $8(e,t,n){const o=100/(n-t)*(e-t);return Ef(o,[0,100])}function kbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Mbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function Pbe(e,t,n){const r=e/2,o=hE([0,50],[0,r]);return(r-o(t)*n)*n}function Rbe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Dbe(e,t){if(t>0){const n=Rbe(e);return Math.min(...n)>=t}return!0}function hE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function $be(e){return(String(e).split(".")[1]||"").length}function Ibe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var I8=O8,Lbe=M8,Bbe=P8,zbe=R8;const mE=y.forwardRef(({className:e,...t},n)=>i.jsxs(I8,{ref:n,className:de("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(Lbe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Bbe,{className:"absolute h-full bg-primary"})}),i.jsx(zbe,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));mE.displayName=I8.displayName;const qbe=["top","right","bottom","left"],Jo=Math.min,Jr=Math.max,Og=Math.round,Wp=Math.floor,mi=e=>({x:e,y:e}),Fbe={left:"right",right:"left",bottom:"top",top:"bottom"},Ube={start:"end",end:"start"};function rC(e,t,n){return Jr(e,Jo(t,n))}function io(e,t){return typeof e=="function"?e(t):e}function oo(e){return e.split("-")[0]}function Yu(e){return e.split("-")[1]}function pE(e){return e==="x"?"y":"x"}function vE(e){return e==="y"?"height":"width"}const Hbe=new Set(["top","bottom"]);function ci(e){return Hbe.has(oo(e))?"y":"x"}function gE(e){return pE(ci(e))}function Wbe(e,t,n){n===void 0&&(n=!1);const r=Yu(e),a=gE(e),o=vE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[o]>t.floating[o]&&(l=Eg(l)),[l,Eg(l)]}function Vbe(e){const t=Eg(e);return[aC(e),t,aC(t)]}function aC(e){return e.replace(/start|end/g,t=>Ube[t])}const hL=["left","right"],mL=["right","left"],Gbe=["top","bottom"],Ybe=["bottom","top"];function Kbe(e,t,n){switch(e){case"top":case"bottom":return n?t?mL:hL:t?hL:mL;case"left":case"right":return t?Gbe:Ybe;default:return[]}}function Xbe(e,t,n,r){const a=Yu(e);let o=Kbe(oo(e),n==="start",r);return a&&(o=o.map(l=>l+"-"+a),t&&(o=o.concat(o.map(aC)))),o}function Eg(e){return e.replace(/left|right|bottom|top/g,t=>Fbe[t])}function Zbe(e){return{top:0,right:0,bottom:0,left:0,...e}}function L8(e){return typeof e!="number"?Zbe(e):{top:e,right:e,bottom:e,left:e}}function Ag(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function pL(e,t,n){let{reference:r,floating:a}=e;const o=ci(t),l=gE(t),u=vE(l),d=oo(t),f=o==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(Yu(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const Qbe=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:o=[],platform:l}=n,u=o.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=pL(f,r,d),g=r,x={},j=0;for(let b=0;b({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:o,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=io(e,t)||{};if(f==null)return{};const p=L8(m),g={x:n,y:r},x=gE(a),j=vE(x),b=await l.getDimensions(f),w=x==="y",N=w?"top":"left",A=w?"bottom":"right",E=w?"clientHeight":"clientWidth",T=o.reference[j]+o.reference[x]-g[x]-o.floating[j],C=g[x]-o.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let O=k?k[E]:0;(!O||!await(l.isElement==null?void 0:l.isElement(k)))&&(O=u.floating[E]||o.floating[j]);const M=T/2-C/2,I=O/2-b[j]/2-1,z=Jo(p[N],I),D=Jo(p[A],I),H=z,V=O-b[j]-D,F=O/2-b[j]/2+M,G=rC(H,F,V),L=!d.arrow&&Yu(a)!=null&&F!==G&&o.reference[j]/2-(FF<=0)){var D,H;const F=(((D=o.flip)==null?void 0:D.index)||0)+1,G=O[F];if(G&&(!(p==="alignment"?A!==ci(G):!1)||z.every(U=>ci(U.placement)===A?U.overflows[0]>0:!0)))return{data:{index:F,overflows:z},reset:{placement:G}};let L=(H=z.filter(R=>R.overflows[0]<=0).sort((R,U)=>R.overflows[1]-U.overflows[1])[0])==null?void 0:H.placement;if(!L)switch(x){case"bestFit":{var V;const R=(V=z.filter(U=>{if(k){const K=ci(U.placement);return K===A||K==="y"}return!0}).map(U=>[U.placement,U.overflows.filter(K=>K>0).reduce((K,te)=>K+te,0)]).sort((U,K)=>U[1]-K[1])[0])==null?void 0:V[0];R&&(L=R);break}case"initialPlacement":L=u;break}if(a!==L)return{reset:{placement:L}}}return{}}}};function vL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function gL(e){return qbe.some(t=>e[t]>=0)}const t0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=io(e,t);switch(r){case"referenceHidden":{const o=await mh(t,{...a,elementContext:"reference"}),l=vL(o,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:gL(l)}}}case"escaped":{const o=await mh(t,{...a,altBoundary:!0}),l=vL(o,n.floating);return{data:{escapedOffsets:l,escaped:gL(l)}}}default:return{}}}}},B8=new Set(["left","top"]);async function n0e(e,t){const{placement:n,platform:r,elements:a}=e,o=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=oo(n),u=Yu(n),d=ci(n)==="y",f=B8.has(l)?-1:1,m=o&&d?-1:1,p=io(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const r0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:o,placement:l,middlewareData:u}=t,d=await n0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:o+d.y,data:{...d,placement:l}}}}},a0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:o=!0,crossAxis:l=!1,limiter:u={fn:w=>{let{x:N,y:A}=w;return{x:N,y:A}}},...d}=io(e,t),f={x:n,y:r},m=await mh(t,d),p=ci(oo(a)),g=pE(p);let x=f[g],j=f[p];if(o){const w=g==="y"?"top":"left",N=g==="y"?"bottom":"right",A=x+m[w],E=x-m[N];x=rC(A,x,E)}if(l){const w=p==="y"?"top":"left",N=p==="y"?"bottom":"right",A=j+m[w],E=j-m[N];j=rC(A,j,E)}const b=u.fn({...t,[g]:x,[p]:j});return{...b,data:{x:b.x-n,y:b.y-r,enabled:{[g]:o,[p]:l}}}}}},i0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:o,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=io(e,t),m={x:n,y:r},p=ci(a),g=pE(p);let x=m[g],j=m[p];const b=io(u,t),w=typeof b=="number"?{mainAxis:b,crossAxis:0}:{mainAxis:0,crossAxis:0,...b};if(d){const E=g==="y"?"height":"width",T=o.reference[g]-o.floating[E]+w.mainAxis,C=o.reference[g]+o.reference[E]-w.mainAxis;xC&&(x=C)}if(f){var N,A;const E=g==="y"?"width":"height",T=B8.has(oo(a)),C=o.reference[p]-o.floating[E]+(T&&((N=l.offset)==null?void 0:N[p])||0)+(T?0:w.crossAxis),k=o.reference[p]+o.reference[E]+(T?0:((A=l.offset)==null?void 0:A[p])||0)-(T?w.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},o0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:o,platform:l,elements:u}=t,{apply:d=()=>{},...f}=io(e,t),m=await mh(t,f),p=oo(a),g=Yu(a),x=ci(a)==="y",{width:j,height:b}=o.floating;let w,N;p==="top"||p==="bottom"?(w=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,w=g==="end"?"top":"bottom");const A=b-m.top-m.bottom,E=j-m.left-m.right,T=Jo(b-m[w],A),C=Jo(j-m[N],E),k=!t.middlewareData.shift;let O=T,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=E),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(O=A),k&&!g){const z=Jr(m.left,0),D=Jr(m.right,0),H=Jr(m.top,0),V=Jr(m.bottom,0);x?M=j-2*(z!==0||D!==0?z+D:Jr(m.left,m.right)):O=b-2*(H!==0||V!==0?H+V:Jr(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:O});const I=await l.getDimensions(u.floating);return j!==I.width||b!==I.height?{reset:{rects:!0}}:{}}}};function zy(){return typeof window<"u"}function Ku(e){return z8(e)?(e.nodeName||"").toLowerCase():"#document"}function aa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ji(e){var t;return(t=(z8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function z8(e){return zy()?e instanceof Node||e instanceof aa(e).Node:!1}function Ha(e){return zy()?e instanceof Element||e instanceof aa(e).Element:!1}function yi(e){return zy()?e instanceof HTMLElement||e instanceof aa(e).HTMLElement:!1}function yL(e){return!zy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof aa(e).ShadowRoot}const s0e=new Set(["inline","contents"]);function Hh(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Wa(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!s0e.has(a)}const l0e=new Set(["table","td","th"]);function c0e(e){return l0e.has(Ku(e))}const u0e=[":popover-open",":modal"];function qy(e){return u0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const d0e=["transform","translate","scale","rotate","perspective"],f0e=["transform","translate","scale","rotate","perspective","filter"],h0e=["paint","layout","strict","content"];function yE(e){const t=xE(),n=Ha(e)?Wa(e):e;return d0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||f0e.some(r=>(n.willChange||"").includes(r))||h0e.some(r=>(n.contain||"").includes(r))}function m0e(e){let t=es(e);for(;yi(t)&&!ku(t);){if(yE(t))return t;if(qy(t))return null;t=es(t)}return null}function xE(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const p0e=new Set(["html","body","#document"]);function ku(e){return p0e.has(Ku(e))}function Wa(e){return aa(e).getComputedStyle(e)}function Fy(e){return Ha(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function es(e){if(Ku(e)==="html")return e;const t=e.assignedSlot||e.parentNode||yL(e)&&e.host||ji(e);return yL(t)?t.host:t}function q8(e){const t=es(e);return ku(t)?e.ownerDocument?e.ownerDocument.body:e.body:yi(t)&&Hh(t)?t:q8(t)}function ph(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=q8(e),o=a===((r=e.ownerDocument)==null?void 0:r.body),l=aa(a);if(o){const u=iC(l);return t.concat(l,l.visualViewport||[],Hh(a)?a:[],u&&n?ph(u):[])}return t.concat(a,ph(a,[],n))}function iC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function F8(e){const t=Wa(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=yi(e),o=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Og(n)!==o||Og(r)!==l;return u&&(n=o,r=l),{width:n,height:r,$:u}}function bE(e){return Ha(e)?e:e.contextElement}function Xc(e){const t=bE(e);if(!yi(t))return mi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:o}=F8(t);let l=(o?Og(n.width):n.width)/r,u=(o?Og(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const v0e=mi(0);function U8(e){const t=aa(e);return!xE()||!t.visualViewport?v0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function g0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==aa(e)?!1:t}function gl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),o=bE(e);let l=mi(1);t&&(r?Ha(r)&&(l=Xc(r)):l=Xc(e));const u=g0e(o,n,r)?U8(o):mi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(o){const g=aa(o),x=r&&Ha(r)?aa(r):r;let j=g,b=iC(j);for(;b&&r&&x!==j;){const w=Xc(b),N=b.getBoundingClientRect(),A=Wa(b),E=N.left+(b.clientLeft+parseFloat(A.paddingLeft))*w.x,T=N.top+(b.clientTop+parseFloat(A.paddingTop))*w.y;d*=w.x,f*=w.y,m*=w.x,p*=w.y,d+=E,f+=T,j=aa(b),b=iC(j)}}return Ag({width:m,height:p,x:d,y:f})}function Uy(e,t){const n=Fy(e).scrollLeft;return t?t.left+n:gl(ji(e)).left+n}function H8(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Uy(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function y0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const o=a==="fixed",l=ji(r),u=t?qy(t.floating):!1;if(r===l||u&&o)return n;let d={scrollLeft:0,scrollTop:0},f=mi(1);const m=mi(0),p=yi(r);if((p||!p&&!o)&&((Ku(r)!=="body"||Hh(l))&&(d=Fy(r)),yi(r))){const x=gl(r);f=Xc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!o?H8(l,d):mi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function x0e(e){return Array.from(e.getClientRects())}function b0e(e){const t=ji(e),n=Fy(e),r=e.ownerDocument.body,a=Jr(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),o=Jr(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Uy(e);const u=-n.scrollTop;return Wa(r).direction==="rtl"&&(l+=Jr(t.clientWidth,r.clientWidth)-a),{width:a,height:o,x:l,y:u}}const xL=25;function w0e(e,t){const n=aa(e),r=ji(e),a=n.visualViewport;let o=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){o=a.width,l=a.height;const m=xE();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Uy(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=xL&&(o-=j)}else f<=xL&&(o+=f);return{width:o,height:l,x:u,y:d}}const j0e=new Set(["absolute","fixed"]);function S0e(e,t){const n=gl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,o=yi(e)?Xc(e):mi(1),l=e.clientWidth*o.x,u=e.clientHeight*o.y,d=a*o.x,f=r*o.y;return{width:l,height:u,x:d,y:f}}function bL(e,t,n){let r;if(t==="viewport")r=w0e(e,n);else if(t==="document")r=b0e(ji(e));else if(Ha(t))r=S0e(t,n);else{const a=U8(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return Ag(r)}function W8(e,t){const n=es(e);return n===t||!Ha(n)||ku(n)?!1:Wa(n).position==="fixed"||W8(n,t)}function _0e(e,t){const n=t.get(e);if(n)return n;let r=ph(e,[],!1).filter(u=>Ha(u)&&Ku(u)!=="body"),a=null;const o=Wa(e).position==="fixed";let l=o?es(e):e;for(;Ha(l)&&!ku(l);){const u=Wa(l),d=yE(l);!d&&u.position==="fixed"&&(a=null),(o?!d&&!a:!d&&u.position==="static"&&!!a&&j0e.has(a.position)||Hh(l)&&!d&&W8(e,l))?r=r.filter(m=>m!==l):a=u,l=es(l)}return t.set(e,r),r}function N0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?qy(t)?[]:_0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=bL(t,m,a);return f.top=Jr(p.top,f.top),f.right=Jo(p.right,f.right),f.bottom=Jo(p.bottom,f.bottom),f.left=Jr(p.left,f.left),f},bL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function C0e(e){const{width:t,height:n}=F8(e);return{width:t,height:n}}function O0e(e,t,n){const r=yi(t),a=ji(t),o=n==="fixed",l=gl(e,!0,o,t);let u={scrollLeft:0,scrollTop:0};const d=mi(0);function f(){d.x=Uy(a)}if(r||!r&&!o)if((Ku(t)!=="body"||Hh(a))&&(u=Fy(t)),r){const x=gl(t,!0,o,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();o&&!r&&a&&f();const m=a&&!r&&!o?H8(a,u):mi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function e_(e){return Wa(e).position==="static"}function wL(e,t){if(!yi(e)||Wa(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return ji(e)===n&&(n=n.ownerDocument.body),n}function V8(e,t){const n=aa(e);if(qy(e))return n;if(!yi(e)){let a=es(e);for(;a&&!ku(a);){if(Ha(a)&&!e_(a))return a;a=es(a)}return n}let r=wL(e,t);for(;r&&c0e(r)&&e_(r);)r=wL(r,t);return r&&ku(r)&&e_(r)&&!yE(r)?n:r||m0e(e)||n}const E0e=async function(e){const t=this.getOffsetParent||V8,n=this.getDimensions,r=await n(e.floating);return{reference:O0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function A0e(e){return Wa(e).direction==="rtl"}const T0e={convertOffsetParentRelativeRectToViewportRelativeRect:y0e,getDocumentElement:ji,getClippingRect:N0e,getOffsetParent:V8,getElementRects:E0e,getClientRects:x0e,getDimensions:C0e,getScale:Xc,isElement:Ha,isRTL:A0e};function G8(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function k0e(e,t){let n=null,r;const a=ji(e);function o(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),o();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Wp(p),b=Wp(a.clientWidth-(m+g)),w=Wp(a.clientHeight-(p+x)),N=Wp(m),E={rootMargin:-j+"px "+-b+"px "+-w+"px "+-N+"px",threshold:Jr(0,Jo(1,d))||1};let T=!0;function C(k){const O=k[0].intersectionRatio;if(O!==d){if(!T)return l();O?l(!1,O):r=setTimeout(()=>{l(!1,1e-7)},1e3)}O===1&&!G8(f,e.getBoundingClientRect())&&l(),T=!1}try{n=new IntersectionObserver(C,{...E,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,E)}n.observe(e)}return l(!0),o}function M0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:o=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=bE(e),m=a||o?[...f?ph(f):[],...ph(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),o&&N.addEventListener("resize",n)});const p=f&&u?k0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[A]=N;A&&A.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var E;(E=x)==null||E.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,b=d?gl(e):null;d&&w();function w(){const N=gl(e);b&&!G8(b,N)&&n(),b=N,j=requestAnimationFrame(w)}return n(),()=>{var N;m.forEach(A=>{a&&A.removeEventListener("scroll",n),o&&A.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const P0e=r0e,R0e=a0e,D0e=e0e,$0e=o0e,I0e=t0e,jL=Jbe,L0e=i0e,B0e=(e,t,n)=>{const r=new Map,a={platform:T0e,...n},o={...a.platform,_c:r};return Qbe(e,t,{...a,platform:o})};var z0e=typeof document<"u",q0e=function(){},cv=z0e?y.useLayoutEffect:q0e;function Tg(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Tg(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const o=a[r];if(!(o==="_owner"&&e.$$typeof)&&!Tg(e[o],t[o]))return!1}return!0}return e!==e&&t!==t}function Y8(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function SL(e,t){const n=Y8(e);return Math.round(t*n)/n}function t_(e){const t=y.useRef(e);return cv(()=>{t.current=e}),t}function F0e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:o,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);Tg(g,r)||x(r);const[j,b]=y.useState(null),[w,N]=y.useState(null),A=y.useCallback(U=>{U!==k.current&&(k.current=U,b(U))},[]),E=y.useCallback(U=>{U!==O.current&&(O.current=U,N(U))},[]),T=o||j,C=l||w,k=y.useRef(null),O=y.useRef(null),M=y.useRef(m),I=d!=null,z=t_(d),D=t_(a),H=t_(f),V=y.useCallback(()=>{if(!k.current||!O.current)return;const U={placement:t,strategy:n,middleware:g};D.current&&(U.platform=D.current),B0e(k.current,O.current,U).then(K=>{const te={...K,isPositioned:H.current!==!1};F.current&&!Tg(M.current,te)&&(M.current=te,wl.flushSync(()=>{p(te)}))})},[g,t,n,D,H]);cv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(U=>({...U,isPositioned:!1})))},[f]);const F=y.useRef(!1);cv(()=>(F.current=!0,()=>{F.current=!1}),[]),cv(()=>{if(T&&(k.current=T),C&&(O.current=C),T&&C){if(z.current)return z.current(T,C,V);V()}},[T,C,V,z,I]);const G=y.useMemo(()=>({reference:k,floating:O,setReference:A,setFloating:E}),[A,E]),L=y.useMemo(()=>({reference:T,floating:C}),[T,C]),R=y.useMemo(()=>{const U={position:n,left:0,top:0};if(!L.floating)return U;const K=SL(L.floating,m.x),te=SL(L.floating,m.y);return u?{...U,transform:"translate("+K+"px, "+te+"px)",...Y8(L.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:K,top:te}},[n,u,L.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:L,floatingStyles:R}),[m,V,G,L,R])}const U0e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?jL({element:r.current,padding:a}).fn(n):{}:r?jL({element:r,padding:a}).fn(n):{}}}},H0e=(e,t)=>({...P0e(e),options:[e,t]}),W0e=(e,t)=>({...R0e(e),options:[e,t]}),V0e=(e,t)=>({...L0e(e),options:[e,t]}),G0e=(e,t)=>({...D0e(e),options:[e,t]}),Y0e=(e,t)=>({...$0e(e),options:[e,t]}),K0e=(e,t)=>({...I0e(e),options:[e,t]}),X0e=(e,t)=>({...U0e(e),options:[e,t]});var Z0e="Arrow",K8=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...o}=e;return i.jsx(Pe.svg,{...o,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});K8.displayName=Z0e;var Q0e=K8,wE="Popper",[X8,us]=hr(wE),[J0e,Z8]=X8(wE),Q8=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(J0e,{scope:t,anchor:r,onAnchorChange:a,children:n})};Q8.displayName=wE;var J8="PopperAnchor",eU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,o=Z8(J8,n),l=y.useRef(null),u=qe(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&o.onAnchorChange(d.current)}),r?null:i.jsx(Pe.div,{...a,ref:u})});eU.displayName=J8;var jE="PopperContent",[ewe,twe]=X8(jE),tU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:o="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...b}=e,w=Z8(jE,n),[N,A]=y.useState(null),E=qe(t,ee=>A(ee)),[T,C]=y.useState(null),k=ky(T),O=k?.width??0,M=k?.height??0,I=r+(o!=="center"?"-"+o:""),z=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},D=Array.isArray(f)?f:[f],H=D.length>0,V={padding:z,boundary:D.filter(rwe),altBoundary:H},{refs:F,floatingStyles:G,placement:L,isPositioned:R,middlewareData:U}=F0e({strategy:"fixed",placement:I,whileElementsMounted:(...ee)=>M0e(...ee,{animationFrame:x==="always"}),elements:{reference:w.anchor},middleware:[H0e({mainAxis:a+M,alignmentAxis:l}),d&&W0e({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?V0e():void 0,...V}),d&&G0e({...V}),Y0e({...V,apply:({elements:ee,rects:ae,availableWidth:Z,availableHeight:pe})=>{const{width:je,height:le}=ae.reference,Re=ee.floating.style;Re.setProperty("--radix-popper-available-width",`${Z}px`),Re.setProperty("--radix-popper-available-height",`${pe}px`),Re.setProperty("--radix-popper-anchor-width",`${je}px`),Re.setProperty("--radix-popper-anchor-height",`${le}px`)}}),T&&X0e({element:T,padding:u}),awe({arrowWidth:O,arrowHeight:M}),g&&K0e({strategy:"referenceHidden",...V})]}),[K,te]=aU(L),$=nn(j);Un(()=>{R&&$?.()},[R,$]);const B=U.arrow?.x,Y=U.arrow?.y,ne=U.arrow?.centerOffset!==0,[oe,xe]=y.useState();return Un(()=>{N&&xe(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:F.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:R?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:oe,"--radix-popper-transform-origin":[U.transformOrigin?.x,U.transformOrigin?.y].join(" "),...U.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(ewe,{scope:n,placedSide:K,onArrowChange:C,arrowX:B,arrowY:Y,shouldHideArrow:ne,children:i.jsx(Pe.div,{"data-side":K,"data-align":te,...b,ref:E,style:{...b.style,animation:R?void 0:"none"}})})})});tU.displayName=jE;var nU="PopperArrow",nwe={top:"bottom",right:"left",bottom:"top",left:"right"},rU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,o=twe(nU,r),l=nwe[o.placedSide];return i.jsx("span",{ref:o.onArrowChange,style:{position:"absolute",left:o.arrowX,top:o.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[o.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[o.placedSide],visibility:o.shouldHideArrow?"hidden":void 0},children:i.jsx(Q0e,{...a,ref:n,style:{...a.style,display:"block"}})})});rU.displayName=nU;function rwe(e){return e!==null}var awe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=aU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",b="";return f==="bottom"?(j=l?p:`${g}px`,b=`${-d}px`):f==="top"?(j=l?p:`${g}px`,b=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,b=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,b=l?p:`${x}px`),{data:{x:j,y:b}}}});function aU(e){const[t,n="center"]=e.split("-");return[t,n]}var Wh=Q8,Vh=eU,Hy=tU,Wy=rU;function iwe(e){const t=owe(e),n=y.forwardRef((r,a)=>{const{children:o,...l}=r,u=y.Children.toArray(o),d=u.find(lwe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function owe(e){const t=y.forwardRef((n,r)=>{const{children:a,...o}=n;if(y.isValidElement(a)){const l=uwe(a),u=cwe(o,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var swe=Symbol("radix.slottable");function lwe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===swe}function cwe(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...u)=>{const d=o(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function uwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var iU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),dwe="VisuallyHidden",Vy=y.forwardRef((e,t)=>i.jsx(Pe.span,{...e,ref:t,style:{...iU,...e.style}}));Vy.displayName=dwe;var fwe=Vy,hwe=[" ","Enter","ArrowUp","ArrowDown"],mwe=[" ","Enter"],yl="Select",[Gy,Yy,pwe]=Ch(yl),[Xu]=hr(yl,[pwe,us]),Ky=us(),[vwe,ds]=Xu(yl),[gwe,ywe]=Xu(yl),oU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:o,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,b=Ky(t),[w,N]=y.useState(null),[A,E]=y.useState(null),[T,C]=y.useState(!1),k=Lu(f),[O,M]=Na({prop:r,defaultProp:a??!1,onChange:o,caller:yl}),[I,z]=Na({prop:l,defaultProp:u,onChange:d,caller:yl}),D=y.useRef(null),H=w?j||!!w.closest("form"):!0,[V,F]=y.useState(new Set),G=Array.from(V).map(L=>L.props.value).join(";");return i.jsx(Wh,{...b,children:i.jsxs(vwe,{required:x,scope:t,trigger:w,onTriggerChange:N,valueNode:A,onValueNodeChange:E,valueNodeHasChildren:T,onValueNodeHasChildrenChange:C,contentId:Fn(),value:I,onValueChange:z,open:O,onOpenChange:M,dir:k,triggerPointerDownPosRef:D,disabled:g,children:[i.jsx(Gy.Provider,{scope:t,children:i.jsx(gwe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback(L=>{F(R=>new Set(R).add(L))},[]),onNativeOptionRemove:y.useCallback(L=>{F(R=>{const U=new Set(R);return U.delete(L),U})},[]),children:n})}),H?i.jsxs(TU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:I,onChange:L=>z(L.target.value),disabled:g,form:j,children:[I===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};oU.displayName=yl;var sU="SelectTrigger",lU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,o=Ky(n),l=ds(sU,n),u=l.disabled||r,d=qe(t,l.onTriggerChange),f=Yy(n),m=y.useRef("touch"),[p,g,x]=MU(b=>{const w=f().filter(E=>!E.disabled),N=w.find(E=>E.value===l.value),A=PU(w,b,N);A!==void 0&&l.onValueChange(A.value)}),j=b=>{u||(l.onOpenChange(!0),x()),b&&(l.triggerPointerDownPosRef.current={x:Math.round(b.pageX),y:Math.round(b.pageY)})};return i.jsx(Vh,{asChild:!0,...o,children:i.jsx(Pe.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":kU(l.value)?"":void 0,...a,ref:d,onClick:Se(a.onClick,b=>{b.currentTarget.focus(),m.current!=="mouse"&&j(b)}),onPointerDown:Se(a.onPointerDown,b=>{m.current=b.pointerType;const w=b.target;w.hasPointerCapture(b.pointerId)&&w.releasePointerCapture(b.pointerId),b.button===0&&b.ctrlKey===!1&&b.pointerType==="mouse"&&(j(b),b.preventDefault())}),onKeyDown:Se(a.onKeyDown,b=>{const w=p.current!=="";!(b.ctrlKey||b.altKey||b.metaKey)&&b.key.length===1&&g(b.key),!(w&&b.key===" ")&&hwe.includes(b.key)&&(j(),b.preventDefault())})})})});lU.displayName=sU;var cU="SelectValue",uU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:o,placeholder:l="",...u}=e,d=ds(cU,n),{onValueNodeHasChildrenChange:f}=d,m=o!==void 0,p=qe(t,d.onValueNodeChange);return Un(()=>{f(m)},[f,m]),i.jsx(Pe.span,{...u,ref:p,style:{pointerEvents:"none"},children:kU(d.value)?i.jsx(i.Fragment,{children:l}):o})});uU.displayName=cU;var xwe="SelectIcon",dU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx(Pe.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});dU.displayName=xwe;var bwe="SelectPortal",fU=e=>i.jsx(El,{asChild:!0,...e});fU.displayName=bwe;var xl="SelectContent",hU=y.forwardRef((e,t)=>{const n=ds(xl,e.__scopeSelect),[r,a]=y.useState();if(Un(()=>{a(new DocumentFragment)},[]),!n.open){const o=r;return o?wl.createPortal(i.jsx(mU,{scope:e.__scopeSelect,children:i.jsx(Gy.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),o):null}return i.jsx(pU,{...e,ref:t})});hU.displayName=xl;var $a=10,[mU,fs]=Xu(xl),wwe="SelectContentImpl",jwe=iwe("SelectContent.RemoveScroll"),pU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:o,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:b,avoidCollisions:w,...N}=e,A=ds(xl,n),[E,T]=y.useState(null),[C,k]=y.useState(null),O=qe(t,ee=>T(ee)),[M,I]=y.useState(null),[z,D]=y.useState(null),H=Yy(n),[V,F]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(E)return Dy(E)},[E]),Py();const L=y.useCallback(ee=>{const[ae,...Z]=H().map(le=>le.ref.current),[pe]=Z.slice(-1),je=document.activeElement;for(const le of ee)if(le===je||(le?.scrollIntoView({block:"nearest"}),le===ae&&C&&(C.scrollTop=0),le===pe&&C&&(C.scrollTop=C.scrollHeight),le?.focus(),document.activeElement!==je))return},[H,C]),R=y.useCallback(()=>L([M,E]),[L,M,E]);y.useEffect(()=>{V&&R()},[V,R]);const{onOpenChange:U,triggerPointerDownPosRef:K}=A;y.useEffect(()=>{if(E){let ee={x:0,y:0};const ae=pe=>{ee={x:Math.abs(Math.round(pe.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(pe.pageY)-(K.current?.y??0))}},Z=pe=>{ee.x<=10&&ee.y<=10?pe.preventDefault():E.contains(pe.target)||U(!1),document.removeEventListener("pointermove",ae),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",ae),document.addEventListener("pointerup",Z,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ae),document.removeEventListener("pointerup",Z,{capture:!0})}}},[E,U,K]),y.useEffect(()=>{const ee=()=>U(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[U]);const[te,$]=MU(ee=>{const ae=H().filter(je=>!je.disabled),Z=ae.find(je=>je.ref.current===document.activeElement),pe=PU(ae,ee,Z);pe&&setTimeout(()=>pe.ref.current.focus())}),B=y.useCallback((ee,ae,Z)=>{const pe=!G.current&&!Z;(A.value!==void 0&&A.value===ae||pe)&&(I(ee),pe&&(G.current=!0))},[A.value]),Y=y.useCallback(()=>E?.focus(),[E]),ne=y.useCallback((ee,ae,Z)=>{const pe=!G.current&&!Z;(A.value!==void 0&&A.value===ae||pe)&&D(ee)},[A.value]),oe=r==="popper"?oC:vU,xe=oe===oC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:b,avoidCollisions:w}:{};return i.jsx(mU,{scope:n,content:E,viewport:C,onViewportChange:k,itemRefCallback:B,selectedItem:M,onItemLeave:Y,itemTextRefCallback:ne,focusSelectedItem:R,selectedItemText:z,position:r,isPositioned:V,searchRef:te,children:i.jsx(Uh,{as:jwe,allowPinchZoom:!0,children:i.jsx(Fh,{asChild:!0,trapped:A.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:Se(a,ee=>{A.trigger?.focus({preventScroll:!0}),ee.preventDefault()}),children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>A.onOpenChange(!1),children:i.jsx(oe,{role:"listbox",id:A.contentId,"data-state":A.open?"open":"closed",dir:A.dir,onContextMenu:ee=>ee.preventDefault(),...N,...xe,onPlaced:()=>F(!0),ref:O,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:Se(N.onKeyDown,ee=>{const ae=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!ae&&ee.key.length===1&&$(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let pe=H().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(pe=pe.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const je=ee.target,le=pe.indexOf(je);pe=pe.slice(le+1)}setTimeout(()=>L(pe)),ee.preventDefault()}})})})})})})});pU.displayName=wwe;var Swe="SelectItemAlignedPosition",vU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,o=ds(xl,n),l=fs(xl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=qe(t,O=>m(O)),g=Yy(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:b,selectedItem:w,selectedItemText:N,focusSelectedItem:A}=l,E=y.useCallback(()=>{if(o.trigger&&o.valueNode&&u&&f&&b&&w&&N){const O=o.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),I=o.valueNode.getBoundingClientRect(),z=N.getBoundingClientRect();if(o.dir!=="rtl"){const je=z.left-M.left,le=I.left-je,Re=O.left-le,_e=O.width+Re,me=Math.max(_e,M.width),ve=window.innerWidth-$a,Le=Ef(le,[$a,Math.max($a,ve-me)]);u.style.minWidth=_e+"px",u.style.left=Le+"px"}else{const je=M.right-z.right,le=window.innerWidth-I.right-je,Re=window.innerWidth-O.right-le,_e=O.width+Re,me=Math.max(_e,M.width),ve=window.innerWidth-$a,Le=Ef(le,[$a,Math.max($a,ve-me)]);u.style.minWidth=_e+"px",u.style.right=Le+"px"}const D=g(),H=window.innerHeight-$a*2,V=b.scrollHeight,F=window.getComputedStyle(f),G=parseInt(F.borderTopWidth,10),L=parseInt(F.paddingTop,10),R=parseInt(F.borderBottomWidth,10),U=parseInt(F.paddingBottom,10),K=G+L+V+U+R,te=Math.min(w.offsetHeight*5,K),$=window.getComputedStyle(b),B=parseInt($.paddingTop,10),Y=parseInt($.paddingBottom,10),ne=O.top+O.height/2-$a,oe=H-ne,xe=w.offsetHeight/2,ee=w.offsetTop+xe,ae=G+L+ee,Z=K-ae;if(ae<=ne){const je=D.length>0&&w===D[D.length-1].ref.current;u.style.bottom="0px";const le=f.clientHeight-b.offsetTop-b.offsetHeight,Re=Math.max(oe,xe+(je?Y:0)+le+R),_e=ae+Re;u.style.height=_e+"px"}else{const je=D.length>0&&w===D[0].ref.current;u.style.top="0px";const Re=Math.max(ne,G+b.offsetTop+(je?B:0)+xe)+Z;u.style.height=Re+"px",b.scrollTop=ae-ne+b.offsetTop}u.style.margin=`${$a}px 0`,u.style.minHeight=te+"px",u.style.maxHeight=H+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,o.trigger,o.valueNode,u,f,b,w,N,o.dir,r]);Un(()=>E(),[E]);const[T,C]=y.useState();Un(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(O=>{O&&j.current===!0&&(E(),A?.(),j.current=!1)},[E,A]);return i.jsx(Nwe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:T},children:i.jsx(Pe.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});vU.displayName=Swe;var _we="SelectPopperPosition",oC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=$a,...o}=e,l=Ky(n);return i.jsx(Hy,{...l,...o,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...o.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)"}})});oC.displayName=_we;var[Nwe,SE]=Xu(xl,{}),sC="SelectViewport",gU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,o=fs(sC,n),l=SE(sC,n),u=qe(t,o.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(Gy.Slot,{scope:n,children:i.jsx(Pe.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:Se(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-$a*2,b=parseFloat(p.style.minHeight),w=parseFloat(p.style.height),N=Math.max(b,w);if(N0?T:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});gU.displayName=sC;var yU="SelectGroup",[Cwe,Owe]=Xu(yU),Ewe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Fn();return i.jsx(Cwe,{scope:n,id:a,children:i.jsx(Pe.div,{role:"group","aria-labelledby":a,...r,ref:t})})});Ewe.displayName=yU;var xU="SelectLabel",bU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Owe(xU,n);return i.jsx(Pe.div,{id:a.id,...r,ref:t})});bU.displayName=xU;var kg="SelectItem",[Awe,wU]=Xu(kg),jU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:o,...l}=e,u=ds(kg,n),d=fs(kg,n),f=u.value===r,[m,p]=y.useState(o??""),[g,x]=y.useState(!1),j=qe(t,A=>d.itemRefCallback?.(A,r,a)),b=Fn(),w=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Awe,{scope:n,value:r,disabled:a,textId:b,isSelected:f,onItemTextChange:y.useCallback(A=>{p(E=>E||(A?.textContent??"").trim())},[]),children:i.jsx(Gy.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx(Pe.div,{role:"option","aria-labelledby":b,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:Se(l.onFocus,()=>x(!0)),onBlur:Se(l.onBlur,()=>x(!1)),onClick:Se(l.onClick,()=>{w.current!=="mouse"&&N()}),onPointerUp:Se(l.onPointerUp,()=>{w.current==="mouse"&&N()}),onPointerDown:Se(l.onPointerDown,A=>{w.current=A.pointerType}),onPointerMove:Se(l.onPointerMove,A=>{w.current=A.pointerType,a?d.onItemLeave?.():w.current==="mouse"&&A.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Se(l.onPointerLeave,A=>{A.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:Se(l.onKeyDown,A=>{d.searchRef?.current!==""&&A.key===" "||(mwe.includes(A.key)&&N(),A.key===" "&&A.preventDefault())})})})})});jU.displayName=kg;var hf="SelectItemText",SU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...o}=e,l=ds(hf,n),u=fs(hf,n),d=wU(hf,n),f=ywe(hf,n),[m,p]=y.useState(null),g=qe(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:b,onNativeOptionRemove:w}=f;return Un(()=>(b(j),()=>w(j)),[b,w,j]),i.jsxs(i.Fragment,{children:[i.jsx(Pe.span,{id:d.textId,...o,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?wl.createPortal(o.children,l.valueNode):null]})});SU.displayName=hf;var _U="SelectItemIndicator",NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return wU(_U,n).isSelected?i.jsx(Pe.span,{"aria-hidden":!0,...r,ref:t}):null});NU.displayName=_U;var lC="SelectScrollUpButton",CU=y.forwardRef((e,t)=>{const n=fs(lC,e.__scopeSelect),r=SE(lC,e.__scopeSelect),[a,o]=y.useState(!1),l=qe(t,r.onScrollButtonChange);return Un(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;o(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(EU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});CU.displayName=lC;var cC="SelectScrollDownButton",OU=y.forwardRef((e,t)=>{const n=fs(cC,e.__scopeSelect),r=SE(cC,e.__scopeSelect),[a,o]=y.useState(!1),l=qe(t,r.onScrollButtonChange);return Un(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(EU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});OU.displayName=cC;var EU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,o=fs("SelectScrollButton",n),l=y.useRef(null),u=Yy(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Un(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx(Pe.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:Se(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:Se(a.onPointerMove,()=>{o.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:Se(a.onPointerLeave,()=>{d()})})}),Twe="SelectSeparator",AU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx(Pe.div,{"aria-hidden":!0,...r,ref:t})});AU.displayName=Twe;var uC="SelectArrow",kwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Ky(n),o=ds(uC,n),l=fs(uC,n);return o.open&&l.position==="popper"?i.jsx(Wy,{...a,...r,ref:t}):null});kwe.displayName=uC;var Mwe="SelectBubbleInput",TU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),o=qe(r,a),l=Ty(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx(Pe.select,{...n,style:{...iU,...n.style},ref:o,defaultValue:t})});TU.displayName=Mwe;function kU(e){return e===""||e===void 0}function MU(e){const t=nn(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),o=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,o]}function PU(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let l=Pwe(e,Math.max(o,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function Pwe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Rwe=oU,RU=lU,Dwe=uU,$we=dU,Iwe=fU,DU=hU,Lwe=gU,$U=bU,IU=jU,Bwe=SU,zwe=NU,LU=CU,BU=OU,zU=AU;const Et=Rwe,At=Dwe,wt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(RU,{ref:r,className:de("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx($we,{asChild:!0,children:i.jsx(uh,{className:"h-4 w-4 opacity-50"})})]}));wt.displayName=RU.displayName;const qU=y.forwardRef(({className:e,...t},n)=>i.jsx(LU,{ref:n,className:de("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(FN,{className:"h-4 w-4"})}));qU.displayName=LU.displayName;const FU=y.forwardRef(({className:e,...t},n)=>i.jsx(BU,{ref:n,className:de("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(uh,{className:"h-4 w-4"})}));FU.displayName=BU.displayName;const jt=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(Iwe,{children:i.jsxs(DU,{ref:a,className:de("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(qU,{}),i.jsx(Lwe,{className:de("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(FU,{})]})}));jt.displayName=DU.displayName;const qwe=y.forwardRef(({className:e,...t},n)=>i.jsx($U,{ref:n,className:de("px-2 py-1.5 text-sm font-semibold",e),...t}));qwe.displayName=$U.displayName;const Me=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(IU,{ref:r,className:de("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(zwe,{children:i.jsx(il,{className:"h-4 w-4"})})}),i.jsx(Bwe,{children:t})]}));Me.displayName=IU.displayName;const Fwe=y.forwardRef(({className:e,...t},n)=>i.jsx(zU,{ref:n,className:de("-mx-1 my-1 h-px bg-muted",e),...t}));Fwe.displayName=zU.displayName;function Uwe(e){const t=Hwe(e),n=y.forwardRef((r,a)=>{const{children:o,...l}=r,u=y.Children.toArray(o),d=u.find(Vwe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function Hwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...o}=n;if(y.isValidElement(a)){const l=Ywe(a),u=Gwe(o,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Wwe=Symbol("radix.slottable");function Vwe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Wwe}function Gwe(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...u)=>{const d=o(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function Ywe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Xy="Popover",[UU]=hr(Xy,[us]),Gh=us(),[Kwe,hs]=UU(Xy),HU=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:o,modal:l=!1}=e,u=Gh(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Na({prop:r,defaultProp:a??!1,onChange:o,caller:Xy});return i.jsx(Wh,{...u,children:i.jsx(Kwe,{scope:t,contentId:Fn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};HU.displayName=Xy;var WU="PopoverAnchor",Xwe=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=hs(WU,n),o=Gh(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(Vh,{...o,...r,ref:t})});Xwe.displayName=WU;var VU="PopoverTrigger",GU=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=hs(VU,n),o=Gh(n),l=qe(t,a.triggerRef),u=i.jsx(Pe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":QU(a.open),...r,ref:l,onClick:Se(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(Vh,{asChild:!0,...o,children:u})});GU.displayName=VU;var _E="PopoverPortal",[Zwe,Qwe]=UU(_E,{forceMount:void 0}),YU=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,o=hs(_E,t);return i.jsx(Zwe,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||o.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};YU.displayName=_E;var Mu="PopoverContent",KU=y.forwardRef((e,t)=>{const n=Qwe(Mu,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,o=hs(Mu,e.__scopePopover);return i.jsx(Rn,{present:r||o.open,children:o.modal?i.jsx(eje,{...a,ref:t}):i.jsx(tje,{...a,ref:t})})});KU.displayName=Mu;var Jwe=Uwe("PopoverContent.RemoveScroll"),eje=y.forwardRef((e,t)=>{const n=hs(Mu,e.__scopePopover),r=y.useRef(null),a=qe(t,r),o=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return Dy(l)},[]),i.jsx(Uh,{as:Jwe,allowPinchZoom:!0,children:i.jsx(XU,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Se(e.onCloseAutoFocus,l=>{l.preventDefault(),o.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Se(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;o.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:Se(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),tje=y.forwardRef((e,t)=>{const n=hs(Mu,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(XU,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{e.onCloseAutoFocus?.(o),o.defaultPrevented||(r.current||n.triggerRef.current?.focus(),o.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:o=>{e.onInteractOutside?.(o),o.defaultPrevented||(r.current=!0,o.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=o.target;n.triggerRef.current?.contains(l)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&a.current&&o.preventDefault()}})}),XU=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:o,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=hs(Mu,n),x=Gh(n);return Py(),i.jsx(Fh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:o,children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Hy,{"data-state":QU(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),ZU="PopoverClose",nje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=hs(ZU,n);return i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,()=>a.onOpenChange(!1))})});nje.displayName=ZU;var rje="PopoverArrow",aje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=Gh(n);return i.jsx(Wy,{...a,...r,ref:t})});aje.displayName=rje;function QU(e){return e?"open":"closed"}var ije=HU,oje=GU,sje=YU,JU=KU;const ts=ije,ns=oje,so=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(sje,{children:i.jsx(JU,{ref:a,align:t,sideOffset:n,className:de("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));so.displayName=JU.displayName;const Zu="/api/webui/config";async function lje(){const t=await(await Qe(`${Zu}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function Mg(){const t=await(await Qe(`${Zu}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function cje(e){const n=await(await Qe(`${Zu}/bot`,{method:"POST",headers:lt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function eH(e){const n=await(await Qe(`${Zu}/model`,{method:"POST",headers:lt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function uje(e,t){const r=await(await Qe(`${Zu}/bot/section/${e}`,{method:"POST",headers:lt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function dC(e,t){const r=await(await Qe(`${Zu}/model/section/${e}`,{method:"POST",headers:lt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}function dje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,o]=y.useState(!1),[l,u]=y.useState(!1),{toast:d}=mr(),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[b,w]=y.useState(null),[N,A]=y.useState(null),[E,T]=y.useState(null),[C,k]=y.useState(null),[O,M]=y.useState(null),[I,z]=y.useState(null),[D,H]=y.useState(null),[V,F]=y.useState(null),[G,L]=y.useState(null),[R,U]=y.useState(null),[K,te]=y.useState(null),[$,B]=y.useState(null),[Y,ne]=y.useState(null),[oe,xe]=y.useState(null),[ee,ae]=y.useState(null),Z=y.useRef(null),pe=y.useRef(!0),je=y.useRef({}),le=y.useCallback(async()=>{try{t(!0);const ve=await lje();je.current=ve,m(ve.bot),g(ve.personality);const Le=ve.chat;Le.talk_value_rules||(Le.talk_value_rules=[]),j(Le),w(ve.expression),A(ve.emoji),T(ve.memory),k(ve.tool),M(ve.mood),z(ve.voice),H(ve.lpmm_knowledge),F(ve.keyword_reaction),L(ve.response_post_process),U(ve.chinese_typo),te(ve.response_splitter),B(ve.log),ne(ve.debug),xe(ve.maim_message),ae(ve.telemetry),u(!1),pe.current=!1}catch(ve){console.error("加载配置失败:",ve),d({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[d]);y.useEffect(()=>{le()},[le]);const Re=y.useCallback(async(ve,Le)=>{if(!pe.current)try{o(!0),await uje(ve,Le),u(!1)}catch(It){console.error(`自动保存 ${ve} 失败:`,It),u(!0)}finally{o(!1)}},[]),_e=y.useCallback((ve,Le)=>{pe.current||(u(!0),Z.current&&clearTimeout(Z.current),Z.current=setTimeout(()=>{Re(ve,Le)},2e3))},[Re]);y.useEffect(()=>{f&&!pe.current&&_e("bot",f)},[f,_e]),y.useEffect(()=>{p&&!pe.current&&_e("personality",p)},[p,_e]),y.useEffect(()=>{x&&!pe.current&&_e("chat",x)},[x,_e]),y.useEffect(()=>{b&&!pe.current&&_e("expression",b)},[b,_e]),y.useEffect(()=>{N&&!pe.current&&_e("emoji",N)},[N,_e]),y.useEffect(()=>{E&&!pe.current&&_e("memory",E)},[E,_e]),y.useEffect(()=>{C&&!pe.current&&_e("tool",C)},[C,_e]),y.useEffect(()=>{O&&!pe.current&&_e("mood",O)},[O,_e]),y.useEffect(()=>{I&&!pe.current&&_e("voice",I)},[I,_e]),y.useEffect(()=>{D&&!pe.current&&_e("lpmm_knowledge",D)},[D,_e]),y.useEffect(()=>{V&&!pe.current&&_e("keyword_reaction",V)},[V,_e]),y.useEffect(()=>{G&&!pe.current&&_e("response_post_process",G)},[G,_e]),y.useEffect(()=>{R&&!pe.current&&_e("chinese_typo",R)},[R,_e]),y.useEffect(()=>{K&&!pe.current&&_e("response_splitter",K)},[K,_e]),y.useEffect(()=>{$&&!pe.current&&_e("log",$)},[$,_e]),y.useEffect(()=>{Y&&!pe.current&&_e("debug",Y)},[Y,_e]),y.useEffect(()=>{oe&&!pe.current&&_e("maim_message",oe)},[oe,_e]),y.useEffect(()=>{ee&&!pe.current&&_e("telemetry",ee)},[ee,_e]);const me=async()=>{try{r(!0),Z.current&&clearTimeout(Z.current);const ve={...je.current,bot:f,personality:p,chat:x,expression:b,emoji:N,memory:E,tool:C,mood:O,voice:I,lpmm_knowledge:D,keyword_reaction:V,response_post_process:G,chinese_typo:R,response_splitter:K,log:$,debug:Y,maim_message:oe,telemetry:ee};await cje(ve),u(!1),d({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(ve){console.error("保存配置失败:",ve),d({title:"保存失败",description:ve.message,variant:"destructive"})}finally{r(!1)}};return e?i.jsx(Vt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs(ue,{onClick:me,disabled:n||a||!l,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(ZO,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]})]}),i.jsxs(ul,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(Qo,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Ot,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Ot,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Ot,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Ot,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Ot,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Ot,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Ot,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Ot,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Ot,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Ot,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(en,{value:"bot",className:"space-y-4",children:f&&i.jsx(fje,{config:f,onChange:m})}),i.jsx(en,{value:"personality",className:"space-y-4",children:p&&i.jsx(hje,{config:p,onChange:g})}),i.jsx(en,{value:"chat",className:"space-y-4",children:x&&i.jsx(mje,{config:x,onChange:j})}),i.jsx(en,{value:"expression",className:"space-y-4",children:b&&i.jsx(pje,{config:b,onChange:w})}),i.jsx(en,{value:"features",className:"space-y-4",children:N&&E&&C&&i.jsx(vje,{emojiConfig:N,memoryConfig:E,toolConfig:C,onEmojiChange:A,onMemoryChange:T,onToolChange:k})}),i.jsx(en,{value:"processing",className:"space-y-4",children:V&&G&&R&&K&&i.jsx(gje,{keywordReactionConfig:V,responsePostProcessConfig:G,chineseTypoConfig:R,responseSplitterConfig:K,onKeywordReactionChange:F,onResponsePostProcessChange:L,onChineseTypoChange:U,onResponseSplitterChange:te})}),i.jsx(en,{value:"mood",className:"space-y-4",children:O&&i.jsx(yje,{config:O,onChange:M})}),i.jsx(en,{value:"voice",className:"space-y-4",children:I&&i.jsx(xje,{config:I,onChange:z})}),i.jsx(en,{value:"lpmm",className:"space-y-4",children:D&&i.jsx(bje,{config:D,onChange:H})}),i.jsxs(en,{value:"other",className:"space-y-4",children:[$&&i.jsx(wje,{config:$,onChange:B}),Y&&i.jsx(jje,{config:Y,onChange:ne}),oe&&i.jsx(Sje,{config:oe,onChange:xe}),ee&&i.jsx(_je,{config:ee,onChange:ae})]})]})]})})}function fje({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},o=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"platform",children:"平台"}),i.jsx(Ne,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ne,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"其他平台账号"}),i.jsxs(ue,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"别名"}),i.jsxs(ue,{onClick:o,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function hje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=o=>{t({...e,states:e.states.filter((l,u)=>u!==o)})},a=(o,l)=>{const u=[...e.states];u[o]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"personality",children:"人格特质"}),i.jsx(Wt,{id:"personality",value:e.personality,onChange:o=>t({...e,personality:o.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Wt,{id:"reply_style",value:e.reply_style,onChange:o=>t({...e,reply_style:o.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"interest",children:"兴趣"}),i.jsx(Wt,{id:"interest",value:e.interest,onChange:o=>t({...e,interest:o.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Wt,{id:"plan_style",value:e.plan_style,onChange:o=>t({...e,plan_style:o.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Wt,{id:"visual_style",value:e.visual_style,onChange:o=>t({...e,visual_style:o.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Wt,{id:"private_plan_style",value:e.private_plan_style,onChange:o=>t({...e,private_plan_style:o.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"状态列表(人格多样性)"}),i.jsxs(ue,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((o,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Wt,{value:o,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsx(jn,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ne,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:o=>t({...e,state_probability:parseFloat(o.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function mje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},o=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[b,w]=y.useState("59");y.useEffect(()=>{const A=u.split("-");if(A.length===2){const[E,T]=A,[C,k]=E.split(":"),[O,M]=T.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),O&&j(O.padStart(2,"0")),M&&w(M.padStart(2,"0"))}},[u]);const N=(A,E,T,C)=>{const k=`${A}:${E}-${T}:${C}`;d(k)};return i.jsxs(ts,{children:[i.jsx(ns,{asChild:!0,children:i.jsxs(ue,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(ol,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(so,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"小时"}),i.jsxs(Et,{value:f,onValueChange:A=>{m(A),N(A,p,x,b)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:24},(A,E)=>E).map(A=>i.jsx(Me,{value:A.toString().padStart(2,"0"),children:A.toString().padStart(2,"0")},A))})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"分钟"}),i.jsxs(Et,{value:p,onValueChange:A=>{g(A),N(f,A,x,b)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:60},(A,E)=>E).map(A=>i.jsx(Me,{value:A.toString().padStart(2,"0"),children:A.toString().padStart(2,"0")},A))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"小时"}),i.jsxs(Et,{value:x,onValueChange:A=>{j(A),N(f,p,A,b)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:24},(A,E)=>E).map(A=>i.jsx(Me,{value:A.toString().padStart(2,"0"),children:A.toString().padStart(2,"0")},A))})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"分钟"}),i.jsxs(Et,{value:b,onValueChange:A=>{w(A),N(f,p,x,A)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:60},(A,E)=>E).map(A=>i.jsx(Me,{value:A.toString().padStart(2,"0"),children:A.toString().padStart(2,"0")},A))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(ts,{children:[i.jsx(ns,{asChild:!0,children:i.jsxs(ue,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(so,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ne,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ne,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ne,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ne,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(J,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(J,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(ue,{onClick:n,size:"sm",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{variant:"ghost",size:"sm",children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Et,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"global",children:"全局配置"}),i.jsx(Me,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Et,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"qq",children:"QQ"}),i.jsx(Me,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Et,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"group",children:"群组(group)"}),i.jsx(Me,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(o,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ne,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(mE,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function pje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const b=[...e.learning_list];b[g][x]=j,t({...e,learning_list:b})},o=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(ts,{children:[i.jsx(ns,{asChild:!0,children:i.jsxs(ue,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(so,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:b})=>{const w=b.includes(g)||g==="*",[N,A]=y.useState(!w);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ne,{value:g,onChange:E=>p(x,j,E.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),b.length>0&&i.jsx(ue,{size:"sm",variant:"outline",onClick:()=>A(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(Et,{value:g,onValueChange:E=>p(x,j,E),children:[i.jsx(wt,{className:"flex-1",children:i.jsx(At,{placeholder:"选择聊天流"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"*",children:"* (全局共享)"}),b.map((E,T)=>i.jsx(Me,{value:E,children:E},T))]})]}),i.jsx(ue,{size:"sm",variant:"outline",onClick:()=>A(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((b,w)=>w!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const b=[...e.expression_groups];b[g][x]=j,t({...e,expression_groups:b})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(ue,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((T,C)=>C!==x&&T[0]===""),b=g[0]==="",w=g[0].split(":"),N=w[0]||"qq",A=w[1]||"",E=w[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",b&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(o,{rule:g}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Et,{value:b?"global":"specific",onValueChange:T=>{T==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!b,children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"global",children:"全局配置"}),i.jsx(Me,{value:"specific",disabled:j&&!b,children:"详细配置"})]})]}),j&&!b&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!b&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Et,{value:N,onValueChange:T=>{a(x,0,`${T}:${A}:${E}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"qq",children:"QQ"}),i.jsx(Me,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:A,onChange:T=>{a(x,0,`${N}:${T.target.value}:${E}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Et,{value:E,onValueChange:T=>{a(x,0,`${N}:${A}:${T}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"group",children:"群组(group)"}),i.jsx(Me,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(at,{checked:g[1]==="enable",onCheckedChange:T=>a(x,1,T?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(at,{checked:g[2]==="enable",onCheckedChange:T=>a(x,2,T?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:T=>{const C=parseFloat(T.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(mE,{value:[parseFloat(g[3])||1],onValueChange:T=>a(x,3,T[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(ue,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(b=>b[0]).filter(b=>b!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(ue,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(tr,{className:"h-4 w-4"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((b,w)=>i.jsx(l,{member:b,groupIndex:x,memberIndex:w,availableChatIds:j},w))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function vje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:o}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>o({...n,enable_tool:l})}),i.jsx(J,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ne,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ne,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(J,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(J,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(J,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(J,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function gje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:o,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=T=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==T)})},m=(T,C,k)=>{const O=[...e.regex_rules];C==="regex"&&typeof k=="string"?O[T]={...O[T],regex:[k]}:C==="reaction"&&typeof k=="string"&&(O[T]={...O[T],reaction:k}),a({...e,regex_rules:O})},p=({regex:T,reaction:C,onRegexChange:k,onReactionChange:O})=>{const[M,I]=y.useState(!1),[z,D]=y.useState(""),[H,V]=y.useState(null),[F,G]=y.useState(""),[L,R]=y.useState({}),[U,K]=y.useState(""),te=y.useRef(null),[$,B]=y.useState("build"),Y=ee=>ee.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),ne=(ee,ae=0)=>{const Z=te.current;if(!Z)return;const pe=Z.selectionStart||0,je=Z.selectionEnd||0,le=T.substring(0,pe)+ee+T.substring(je);k(le),setTimeout(()=>{const Re=pe+ee.length+ae;Z.setSelectionRange(Re,Re),Z.focus()},0)};y.useEffect(()=>{if(!T||!z){V(null),R({}),K(C),G("");return}try{const ee=Y(T),ae=new RegExp(ee,"g"),Z=z.match(ae);V(Z),G("");const je=new RegExp(ee).exec(z);if(je&&je.groups){R(je.groups);let le=C;Object.entries(je.groups).forEach(([Re,_e])=>{le=le.replace(new RegExp(`\\[${Re}\\]`,"g"),_e||"")}),K(le)}else R({}),K(C)}catch(ee){G(ee.message),V(null),R({}),K(C)}},[T,z,C]);const oe=()=>{if(!z||!H||H.length===0)return i.jsx("span",{className:"text-muted-foreground",children:z||"请输入测试文本"});try{const ee=Y(T),ae=new RegExp(ee,"g");let Z=0;const pe=[];let je;for(;(je=ae.exec(z))!==null;)je.index>Z&&pe.push(i.jsx("span",{children:z.substring(Z,je.index)},`text-${Z}`)),pe.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),Z=je.index+je[0].length;return Z)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(nr,{open:M,onOpenChange:I,children:[i.jsx(WF,{asChild:!0,children:i.jsxs(ue,{variant:"outline",size:"sm",children:[i.jsx(wg,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"正则表达式编辑器"}),i.jsx(dr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Vt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(ul,{value:$,onValueChange:ee=>B(ee),className:"w-full",children:[i.jsxs(Qo,{className:"grid w-full grid-cols-2",children:[i.jsx(Ot,{value:"build",children:"🔧 构建器"}),i.jsx(Ot,{value:"test",children:"🧪 测试器"})]}),i.jsxs(en,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ne,{ref:te,value:T,onChange:ee=>k(ee.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Wt,{value:C,onChange:ee=>O(ee.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[xe.map(ee=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ee.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ee.items.map(ae=>i.jsx(ue,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>ne(ae.pattern,ae.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:ae.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:ae.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:ae.desc})]})},ae.label))})]},ee.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ue,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(ue,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(ue,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(en,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:T||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Wt,{id:"test-text",value:z,onChange:ee=>D(ee.target.value),placeholder:`在此输入要测试的文本... -例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),F&&i.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[i.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),i.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:F})]}),!F&&z&&i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex items-center gap-2",children:H&&H.length>0?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),i.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",H.length," 处)"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),i.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"匹配高亮"}),i.jsx(Vt,{className:"h-40 rounded-md bg-muted p-3",children:i.jsx("div",{className:"text-sm break-words",children:oe()})})]}),Object.keys(L).length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"命名捕获组"}),i.jsx(Vt,{className:"h-32 rounded-md border p-3",children:i.jsx("div",{className:"space-y-2",children:Object.entries(L).map(([ee,ae])=>i.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ee,"]"]}),i.jsx("span",{className:"text-muted-foreground",children:"="}),i.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:ae})]},ee))})})]}),Object.keys(L).length>0&&C&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"Reaction 替换预览"}),i.jsx(Vt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:i.jsx("div",{className:"text-sm break-words",children:U})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),i.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),i.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),i.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},g=()=>{a({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},x=T=>{a({...e,keyword_rules:e.keyword_rules.filter((C,k)=>k!==T)})},j=(T,C,k)=>{const O=[...e.keyword_rules];typeof k=="string"&&(O[T]={...O[T],reaction:k}),a({...e,keyword_rules:O})},b=T=>{const C=[...e.keyword_rules];C[T]={...C[T],keywords:[...C[T].keywords||[],""]},a({...e,keyword_rules:C})},w=(T,C)=>{const k=[...e.keyword_rules];k[T]={...k[T],keywords:(k[T].keywords||[]).filter((O,M)=>M!==C)},a({...e,keyword_rules:k})},N=(T,C,k)=>{const O=[...e.keyword_rules],M=[...O[T].keywords||[]];M[C]=k,O[T]={...O[T],keywords:M},a({...e,keyword_rules:O})},A=({rule:T})=>{const C=`{ regex = [${(T.regex||[]).map(k=>`"${k}"`).join(", ")}], reaction = "${T.reaction}" }`;return i.jsxs(ts,{children:[i.jsx(ns,{asChild:!0,children:i.jsxs(ue,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(so,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Vt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},E=({rule:T})=>{const C=`[[keyword_reaction.keyword_rules]] -keywords = [${(T.keywords||[]).map(k=>`"${k}"`).join(", ")}] -reaction = "${T.reaction}"`;return i.jsxs(ts,{children:[i.jsx(ns,{asChild:!0,children:i.jsxs(ue,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(so,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Vt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),i.jsxs(ue,{onClick:d,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((T,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(p,{regex:T.regex&&T.regex[0]||"",reaction:T.reaction,onRegexChange:k=>m(C,"regex",k),onReactionChange:k=>m(C,"reaction",k)}),i.jsx(A,{rule:T}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除正则规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>f(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),i.jsx(Ne,{value:T.regex&&T.regex[0]||"",onChange:k=>m(C,"regex",k.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Wt,{value:T.reaction,onChange:k=>m(C,"reaction",k.target.value),placeholder:`触发后麦麦的反应... -可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(ue,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((T,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(E,{rule:T}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(ue,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(ue,{onClick:()=>b(C),size:"sm",variant:"ghost",children:[i.jsx(tr,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(T.keywords||[]).map((k,O)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ne,{value:k,onChange:M=>N(C,O,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(ue,{onClick:()=>w(C,O),size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})]},O)),(!T.keywords||T.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Wt,{value:T.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:T=>o({...t,enable_response_post_process:T})}),i.jsx(J,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(at,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:T=>l({...n,enable:T})}),i.jsx(J,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ne,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:T=>l({...n,error_rate:parseFloat(T.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ne,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:T=>l({...n,min_freq:parseInt(T.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ne,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:T=>l({...n,tone_error_rate:parseFloat(T.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ne,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:T=>l({...n,word_replace_rate:parseFloat(T.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(at,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:T=>u({...r,enable:T})}),i.jsx(J,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ne,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:T=>u({...r,max_length:parseInt(T.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ne,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:T=>u({...r,max_sentence_num:parseInt(T.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:T=>u({...r,enable_kaomoji_protection:T})}),i.jsx(J,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:T=>u({...r,enable_overflow_return_all:T})}),i.jsx(J,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function yje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"情绪更新阈值"}),i.jsx(Ne,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"情感特征"}),i.jsx(Wt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function xje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function bje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"LPMM 模式"}),i.jsxs(Et,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(wt,{children:i.jsx(At,{placeholder:"选择 LPMM 模式"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"classic",children:"经典模式"}),i.jsx(Me,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"同义词搜索 TopK"}),i.jsx(Ne,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"同义词阈值"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"实体提取线程数"}),i.jsx(Ne,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"嵌入向量维度"}),i.jsx(Ne,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function wje({config:e,onChange:t}){const[n,r]=y.useState(""),[a,o]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),o("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日期格式"}),i.jsx(Ne,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日志级别样式"}),i.jsxs(Et,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:p.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日志文本颜色"}),i.jsxs(Et,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:g.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"全局日志级别"}),i.jsxs(Et,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"控制台日志级别"}),i.jsxs(Et,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"文件日志级别"}),i.jsxs(Et,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(ue,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(ue,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(Et,{value:a,onValueChange:o,children:[i.jsx(wt,{className:"w-32",children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]}),i.jsx(ue,{onClick:d,size:"sm",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(ue,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function jje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(at,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(at,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(at,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(at,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function Sje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},o=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(at,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"主机地址"}),i.jsx(Ne,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"端口号"}),i.jsx(Ne,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"连接模式"}),i.jsxs(Et,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"ws",children:"WebSocket (ws)"}),i.jsx(Me,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(J,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"SSL 证书文件路径"}),i.jsx(Ne,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"SSL 密钥文件路径"}),i.jsx(Ne,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(ue,{onClick:a,size:"sm",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(ue,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>o(u),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function _je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(at,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const Al=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:de("w-full caption-bottom text-sm",e),...t})}));Al.displayName="Table";const Tl=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:de("[&_tr]:border-b",e),...t}));Tl.displayName="TableHeader";const kl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:de("[&_tr:last-child]:border-0",e),...t}));kl.displayName="TableBody";const Nje=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:de("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Nje.displayName="TableFooter";const vn=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:de("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));vn.displayName="TableRow";const Ze=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:de("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ze.displayName="TableHead";const Ue=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:de("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ue.displayName="TableCell";const Cje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:de("mt-4 text-sm text-muted-foreground",e),...t}));Cje.displayName="TableCaption";var Zy="Checkbox",[Oje]=hr(Zy),[Eje,NE]=Oje(Zy);function Aje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:o,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Na({prop:n,defaultProp:a??!1,onChange:d,caller:Zy}),[j,b]=y.useState(null),[w,N]=y.useState(null),A=y.useRef(!1),E=j?!!l||!!j.closest("form"):!0,T={checked:g,disabled:o,setChecked:x,control:j,setControl:b,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:A,required:f,defaultChecked:Zo(a)?!1:a,isFormControl:E,bubbleInput:w,setBubbleInput:N};return i.jsx(Eje,{scope:t,...T,children:Tje(p)?p(T):r})}var tH="CheckboxTrigger",nH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:o,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=NE(tH,e),b=qe(a,m),w=y.useRef(d);return y.useEffect(()=>{const N=o?.form;if(N){const A=()=>p(w.current);return N.addEventListener("reset",A),()=>N.removeEventListener("reset",A)}},[o,p]),i.jsx(Pe.button,{type:"button",role:"checkbox","aria-checked":Zo(d)?"mixed":d,"aria-required":f,"data-state":sH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:b,onKeyDown:Se(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:Se(n,N=>{p(A=>Zo(A)?!0:!A),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});nH.displayName=tH;var CE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:o,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(Aje,{__scopeCheckbox:n,checked:a,defaultChecked:o,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(nH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(oH,{__scopeCheckbox:n})]})})});CE.displayName=Zy;var rH="CheckboxIndicator",aH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,o=NE(rH,n);return i.jsx(Rn,{present:r||Zo(o.checked)||o.checked===!0,children:i.jsx(Pe.span,{"data-state":sH(o.checked),"data-disabled":o.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});aH.displayName=rH;var iH="CheckboxBubbleInput",oH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:o,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=NE(iH,e),j=qe(n,x),b=Ty(o),w=ky(r);y.useEffect(()=>{const A=g;if(!A)return;const E=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(E,"checked").set,k=!a.current;if(b!==o&&C){const O=new Event("click",{bubbles:k});A.indeterminate=Zo(o),C.call(A,Zo(o)?!1:o),A.dispatchEvent(O)}},[g,b,o,a]);const N=y.useRef(Zo(o)?!1:o);return i.jsx(Pe.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...w,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});oH.displayName=iH;function Tje(e){return typeof e=="function"}function Zo(e){return e==="indeterminate"}function sH(e){return Zo(e)?"indeterminate":e?"checked":"unchecked"}const rs=y.forwardRef(({className:e,...t},n)=>i.jsx(CE,{ref:n,className:de("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(aH,{className:de("grid place-content-center text-current"),children:i.jsx(il,{className:"h-4 w-4"})})}));rs.displayName=CE.displayName;function kje(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,o]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(null),[j,b]=y.useState(null),[w,N]=y.useState(!1),[A,E]=y.useState(null),[T,C]=y.useState(!1),[k,O]=y.useState(""),[M,I]=y.useState(new Set),[z,D]=y.useState(!1),{toast:H}=mr(),V=y.useRef(null),F=y.useRef(!0);y.useEffect(()=>{G()},[]);const G=async()=>{try{r(!0);const ae=await Mg();t(ae.api_providers||[]),f(!1),F.current=!1}catch(ae){console.error("加载配置失败:",ae)}finally{r(!1)}},L=y.useCallback(async ae=>{if(!F.current)try{u(!0),await dC("api_providers",ae),f(!1)}catch(Z){console.error("自动保存失败:",Z),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!F.current)return f(!0),V.current&&clearTimeout(V.current),V.current=setTimeout(()=>{L(e)},2e3),()=>{V.current&&clearTimeout(V.current)}},[e,L]);const R=async()=>{try{o(!0),V.current&&clearTimeout(V.current);const ae=await Mg();ae.api_providers=e,await eH(ae),f(!1),H({title:"保存成功",description:"模型提供商配置已保存"})}catch(ae){console.error("保存配置失败:",ae),H({title:"保存失败",description:ae.message,variant:"destructive"})}finally{o(!1)}},U=(ae,Z)=>{x(ae||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),b(Z),C(!1),p(!0)},K=async()=>{if(g?.api_key)try{await navigator.clipboard.writeText(g.api_key),H({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{H({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},te=()=>{if(g){if(j!==null){const ae=[...e];ae[j]=g,t(ae)}else t([...e,g]);p(!1),x(null),b(null)}},$=ae=>{E(ae),N(!0)},B=()=>{if(A!==null){const ae=e.filter((Z,pe)=>pe!==A);t(ae),H({title:"删除成功",description:"提供商已从列表中移除"})}N(!1),E(null)},Y=ae=>{const Z=new Set(M);Z.has(ae)?Z.delete(ae):Z.add(ae),I(Z)},ne=()=>{if(M.size===ee.length)I(new Set);else{const ae=ee.map((Z,pe)=>e.findIndex(je=>je===ee[pe]));I(new Set(ae))}},oe=()=>{if(M.size===0){H({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}D(!0)},xe=()=>{const ae=e.filter((Z,pe)=>!M.has(pe));t(ae),I(new Set),D(!1),H({title:"批量删除成功",description:`已删除 ${M.size} 个提供商`})},ee=e.filter(ae=>{if(!k)return!0;const Z=k.toLowerCase();return ae.name.toLowerCase().includes(Z)||ae.base_url.toLowerCase().includes(Z)||ae.client_type.toLowerCase().includes(Z)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[M.size>0&&i.jsxs(ue,{onClick:oe,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Tt,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",M.size,")"]}),i.jsxs(ue,{onClick:()=>U(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(tr,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(ue,{onClick:R,disabled:a||l||!d,size:"sm",variant:"default",className:"w-full sm:w-auto",children:[i.jsx(ZO,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]})]})]}),i.jsxs(Vt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索提供商名称、URL 或类型...",value:k,onChange:ae=>O(ae.target.value),className:"pl-9"})]}),k&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",ee.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:ee.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:k?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):ee.map((ae,Z)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:ae.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:ae.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>U(ae,Z),children:i.jsx(Au,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>$(Z),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:ae.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:ae.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:ae.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:ae.retry_interval})]})]})]},Z))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-12",children:i.jsx(rs,{checked:M.size===ee.length&&ee.length>0,onCheckedChange:ne})}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"基础URL"}),i.jsx(Ze,{children:"客户端类型"}),i.jsx(Ze,{className:"text-right",children:"最大重试"}),i.jsx(Ze,{className:"text-right",children:"超时(秒)"}),i.jsx(Ze,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:ee.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:8,className:"text-center text-muted-foreground py-8",children:k?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):ee.map((ae,Z)=>{const pe=e.findIndex(je=>je===ae);return i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(rs,{checked:M.has(pe),onCheckedChange:()=>Y(pe)})}),i.jsx(Ue,{className:"font-medium",children:ae.name}),i.jsx(Ue,{className:"max-w-xs truncate",title:ae.base_url,children:ae.base_url}),i.jsx(Ue,{children:ae.client_type}),i.jsx(Ue,{className:"text-right",children:ae.max_retry}),i.jsx(Ue,{className:"text-right",children:ae.timeout}),i.jsx(Ue,{className:"text-right",children:ae.retry_interval}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>U(ae,pe),children:i.jsx(Au,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>$(pe),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Z)})})]})})]}),i.jsx(nr,{open:m,onOpenChange:p,children:i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:j!==null?"编辑提供商":"添加提供商"}),i.jsx(dr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"name",children:"名称 *"}),i.jsx(Ne,{id:"name",value:g?.name||"",onChange:ae=>x(Z=>Z?{...Z,name:ae.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ne,{id:"base_url",value:g?.base_url||"",onChange:ae=>x(Z=>Z?{...Z,base_url:ae.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"api_key",type:T?"text":"password",value:g?.api_key||"",onChange:ae=>x(Z=>Z?{...Z,api_key:ae.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(ue,{type:"button",variant:"outline",size:"icon",onClick:()=>C(!T),title:T?"隐藏密钥":"显示密钥",children:T?i.jsx(VN,{className:"h-4 w-4"}):i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(ue,{type:"button",variant:"outline",size:"icon",onClick:K,title:"复制密钥",children:i.jsx(HN,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(Et,{value:g?.client_type||"openai",onValueChange:ae=>x(Z=>Z?{...Z,client_type:ae}:null),children:[i.jsx(wt,{id:"client_type",children:i.jsx(At,{placeholder:"选择客户端类型"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"openai",children:"OpenAI"}),i.jsx(Me,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ne,{id:"max_retry",type:"number",min:"0",value:g?.max_retry||2,onChange:ae=>x(Z=>Z?{...Z,max_retry:parseInt(ae.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ne,{id:"timeout",type:"number",min:"1",value:g?.timeout||30,onChange:ae=>x(Z=>Z?{...Z,timeout:parseInt(ae.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ne,{id:"retry_interval",type:"number",min:"1",value:g?.retry_interval||10,onChange:ae=>x(Z=>Z?{...Z,retry_interval:parseInt(ae.target.value)}:null)})]})]})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(ue,{onClick:te,children:"保存"})]})]})}),i.jsx(Pn,{open:w,onOpenChange:N,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除提供商 "',A!==null?e[A]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:B,children:"删除"})]})]})}),i.jsx(Pn,{open:z,onOpenChange:D,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认批量删除"}),i.jsxs(jn,{children:["确定要删除选中的 ",M.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:xe,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})}var _L=1,Mje=.9,Pje=.8,Rje=.17,n_=.1,r_=.999,Dje=.9999,$je=.99,Ije=/[\\\/_+.#"@\[\(\{&]/,Lje=/[\\\/_+.#"@\[\(\{&]/g,Bje=/[\s-]/,lH=/[\s-]/g;function fC(e,t,n,r,a,o,l){if(o===t.length)return a===e.length?_L:$je;var u=`${a},${o}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(o),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=fC(e,t,n,r,f+1,o+1,l),p>m&&(f===a?p*=_L:Ije.test(e.charAt(f-1))?(p*=Pje,x=e.slice(a,f-1).match(Lje),x&&a>0&&(p*=Math.pow(r_,x.length))):Bje.test(e.charAt(f-1))?(p*=Mje,j=e.slice(a,f-1).match(lH),j&&a>0&&(p*=Math.pow(r_,j.length))):(p*=Rje,a>0&&(p*=Math.pow(r_,f-a))),e.charAt(f)!==t.charAt(o)&&(p*=Dje)),(pp&&(p=g*n_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function NL(e){return e.toLowerCase().replace(lH," ")}function zje(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,fC(e,t,NL(e),NL(t),0,0,{})}var qje=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ms=qje.reduce((e,t)=>{const n=zh(`Primitive.${t}`),r=y.forwardRef((a,o)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:o})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),sf='[cmdk-group=""]',a_='[cmdk-group-items=""]',Fje='[cmdk-group-heading=""]',cH='[cmdk-item=""]',CL=`${cH}:not([aria-disabled="true"])`,hC="cmdk-item-select",Rc="data-value",Uje=(e,t,n)=>zje(e,t,n),uH=y.createContext(void 0),Yh=()=>y.useContext(uH),dH=y.createContext(void 0),OE=()=>y.useContext(dH),fH=y.createContext(void 0),hH=y.forwardRef((e,t)=>{let n=Dc(()=>{var B,Y;return{search:"",value:(Y=(B=e.value)!=null?B:e.defaultValue)!=null?Y:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=Dc(()=>new Set),a=Dc(()=>new Map),o=Dc(()=>new Map),l=Dc(()=>new Set),u=mH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:b=!1,vimBindings:w=!0,...N}=e,A=Fn(),E=Fn(),T=Fn(),C=y.useRef(null),k=e1e();bl(()=>{if(m!==void 0){let B=m.trim();n.current.value=B,O.emit()}},[m]),bl(()=>{k(6,V)},[]);let O=y.useMemo(()=>({subscribe:B=>(l.current.add(B),()=>l.current.delete(B)),snapshot:()=>n.current,setState:(B,Y,ne)=>{var oe,xe,ee,ae;if(!Object.is(n.current[B],Y)){if(n.current[B]=Y,B==="search")H(),z(),k(1,D);else if(B==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Z=document.getElementById(T);Z?Z.focus():(oe=document.getElementById(A))==null||oe.focus()}if(k(7,()=>{var Z;n.current.selectedItemId=(Z=F())==null?void 0:Z.id,O.emit()}),ne||k(5,V),((xe=u.current)==null?void 0:xe.value)!==void 0){let Z=Y??"";(ae=(ee=u.current).onValueChange)==null||ae.call(ee,Z);return}}O.emit()}},emit:()=>{l.current.forEach(B=>B())}}),[]),M=y.useMemo(()=>({value:(B,Y,ne)=>{var oe;Y!==((oe=o.current.get(B))==null?void 0:oe.value)&&(o.current.set(B,{value:Y,keywords:ne}),n.current.filtered.items.set(B,I(Y,ne)),k(2,()=>{z(),O.emit()}))},item:(B,Y)=>(r.current.add(B),Y&&(a.current.has(Y)?a.current.get(Y).add(B):a.current.set(Y,new Set([B]))),k(3,()=>{H(),z(),n.current.value||D(),O.emit()}),()=>{o.current.delete(B),r.current.delete(B),n.current.filtered.items.delete(B);let ne=F();k(4,()=>{H(),ne?.getAttribute("id")===B&&D(),O.emit()})}),group:B=>(a.current.has(B)||a.current.set(B,new Set),()=>{o.current.delete(B),a.current.delete(B)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:A,inputId:T,labelId:E,listInnerRef:C}),[]);function I(B,Y){var ne,oe;let xe=(oe=(ne=u.current)==null?void 0:ne.filter)!=null?oe:Uje;return B?xe(B,n.current.search,Y):0}function z(){if(!n.current.search||u.current.shouldFilter===!1)return;let B=n.current.filtered.items,Y=[];n.current.filtered.groups.forEach(oe=>{let xe=a.current.get(oe),ee=0;xe.forEach(ae=>{let Z=B.get(ae);ee=Math.max(Z,ee)}),Y.push([oe,ee])});let ne=C.current;G().sort((oe,xe)=>{var ee,ae;let Z=oe.getAttribute("id"),pe=xe.getAttribute("id");return((ee=B.get(pe))!=null?ee:0)-((ae=B.get(Z))!=null?ae:0)}).forEach(oe=>{let xe=oe.closest(a_);xe?xe.appendChild(oe.parentElement===xe?oe:oe.closest(`${a_} > *`)):ne.appendChild(oe.parentElement===ne?oe:oe.closest(`${a_} > *`))}),Y.sort((oe,xe)=>xe[1]-oe[1]).forEach(oe=>{var xe;let ee=(xe=C.current)==null?void 0:xe.querySelector(`${sf}[${Rc}="${encodeURIComponent(oe[0])}"]`);ee?.parentElement.appendChild(ee)})}function D(){let B=G().find(ne=>ne.getAttribute("aria-disabled")!=="true"),Y=B?.getAttribute(Rc);O.setState("value",Y||void 0)}function H(){var B,Y,ne,oe;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let xe=0;for(let ee of r.current){let ae=(Y=(B=o.current.get(ee))==null?void 0:B.value)!=null?Y:"",Z=(oe=(ne=o.current.get(ee))==null?void 0:ne.keywords)!=null?oe:[],pe=I(ae,Z);n.current.filtered.items.set(ee,pe),pe>0&&xe++}for(let[ee,ae]of a.current)for(let Z of ae)if(n.current.filtered.items.get(Z)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=xe}function V(){var B,Y,ne;let oe=F();oe&&(((B=oe.parentElement)==null?void 0:B.firstChild)===oe&&((ne=(Y=oe.closest(sf))==null?void 0:Y.querySelector(Fje))==null||ne.scrollIntoView({block:"nearest"})),oe.scrollIntoView({block:"nearest"}))}function F(){var B;return(B=C.current)==null?void 0:B.querySelector(`${cH}[aria-selected="true"]`)}function G(){var B;return Array.from(((B=C.current)==null?void 0:B.querySelectorAll(CL))||[])}function L(B){let Y=G()[B];Y&&O.setState("value",Y.getAttribute(Rc))}function R(B){var Y;let ne=F(),oe=G(),xe=oe.findIndex(ae=>ae===ne),ee=oe[xe+B];(Y=u.current)!=null&&Y.loop&&(ee=xe+B<0?oe[oe.length-1]:xe+B===oe.length?oe[0]:oe[xe+B]),ee&&O.setState("value",ee.getAttribute(Rc))}function U(B){let Y=F(),ne=Y?.closest(sf),oe;for(;ne&&!oe;)ne=B>0?Qje(ne,sf):Jje(ne,sf),oe=ne?.querySelector(CL);oe?O.setState("value",oe.getAttribute(Rc)):R(B)}let K=()=>L(G().length-1),te=B=>{B.preventDefault(),B.metaKey?K():B.altKey?U(1):R(1)},$=B=>{B.preventDefault(),B.metaKey?L(0):B.altKey?U(-1):R(-1)};return y.createElement(ms.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:B=>{var Y;(Y=N.onKeyDown)==null||Y.call(N,B);let ne=B.nativeEvent.isComposing||B.keyCode===229;if(!(B.defaultPrevented||ne))switch(B.key){case"n":case"j":{w&&B.ctrlKey&&te(B);break}case"ArrowDown":{te(B);break}case"p":case"k":{w&&B.ctrlKey&&$(B);break}case"ArrowUp":{$(B);break}case"Home":{B.preventDefault(),L(0);break}case"End":{B.preventDefault(),K();break}case"Enter":{B.preventDefault();let oe=F();if(oe){let xe=new Event(hC);oe.dispatchEvent(xe)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:n1e},d),Qy(e,B=>y.createElement(dH.Provider,{value:O},y.createElement(uH.Provider,{value:M},B))))}),Hje=y.forwardRef((e,t)=>{var n,r;let a=Fn(),o=y.useRef(null),l=y.useContext(fH),u=Yh(),d=mH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;bl(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=pH(a,o,[e.value,e.children,o],e.keywords),p=OE(),g=as(k=>k.value&&k.value===m.current),x=as(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=o.current;if(!(!k||e.disabled))return k.addEventListener(hC,j),()=>k.removeEventListener(hC,j)},[x,e.onSelect,e.disabled]);function j(){var k,O;b(),(O=(k=d.current).onSelect)==null||O.call(k,m.current)}function b(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:w,value:N,onSelect:A,forceMount:E,keywords:T,...C}=e;return y.createElement(ms.div,{ref:Rr(o,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!w,"aria-selected":!!g,"data-disabled":!!w,"data-selected":!!g,onPointerMove:w||u.getDisablePointerSelection()?void 0:b,onClick:w?void 0:j},e.children)}),Wje=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...o}=e,l=Fn(),u=y.useRef(null),d=y.useRef(null),f=Fn(),m=Yh(),p=as(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);bl(()=>m.group(l),[]),pH(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(ms.div,{ref:Rr(u,t),...o,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),Qy(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(fH.Provider,{value:g},x))))}),Vje=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),o=as(l=>!l.search);return!n&&!o?null:y.createElement(ms.div,{ref:Rr(a,t),...r,"cmdk-separator":"",role:"separator"})}),Gje=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,o=OE(),l=as(f=>f.search),u=as(f=>f.selectedItemId),d=Yh();return y.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),y.createElement(ms.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||o.setState("search",f.target.value),n?.(f.target.value)}})}),Yje=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,o=y.useRef(null),l=y.useRef(null),u=as(f=>f.selectedItemId),d=Yh();return y.useEffect(()=>{if(l.current&&o.current){let f=l.current,m=o.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(ms.div,{ref:Rr(o,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},Qy(e,f=>y.createElement("div",{ref:Rr(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),Kje=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:o,container:l,...u}=e;return y.createElement(iE,{open:n,onOpenChange:r},y.createElement(oE,{container:l},y.createElement(Iy,{"cmdk-overlay":"",className:a}),y.createElement(Ly,{"aria-label":e.label,"cmdk-dialog":"",className:o},y.createElement(hH,{ref:t,...u}))))}),Xje=y.forwardRef((e,t)=>as(n=>n.filtered.count===0)?y.createElement(ms.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),Zje=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...o}=e;return y.createElement(ms.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},Qy(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Br=Object.assign(hH,{List:Yje,Item:Hje,Input:Gje,Group:Wje,Separator:Vje,Dialog:Kje,Empty:Xje,Loading:Zje});function Qje(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function Jje(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function mH(e){let t=y.useRef(e);return bl(()=>{t.current=e}),t}var bl=typeof window>"u"?y.useEffect:y.useLayoutEffect;function Dc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function as(e){let t=OE(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function pH(e,t,n,r=[]){let a=y.useRef(),o=Yh();return bl(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());o.value(e,u,d),(l=t.current)==null||l.setAttribute(Rc,u),a.current=u}),a}var e1e=()=>{let[e,t]=y.useState(),n=Dc(()=>new Map);return bl(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function t1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function Qy({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(t1e(t),{ref:t.ref},n(t.props.children)):n(t)}var n1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const vH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br,{ref:n,className:de("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));vH.displayName=Br.displayName;const gH=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Dr,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Br.Input,{ref:n,className:de("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));gH.displayName=Br.Input.displayName;const yH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.List,{ref:n,className:de("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));yH.displayName=Br.List.displayName;const xH=y.forwardRef((e,t)=>i.jsx(Br.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));xH.displayName=Br.Empty.displayName;const bH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Group,{ref:n,className:de("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));bH.displayName=Br.Group.displayName;const r1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Separator,{ref:n,className:de("-mx-1 h-px bg-border",e),...t}));r1e.displayName=Br.Separator.displayName;const wH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Item,{ref:n,className:de("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));wH.displayName=Br.Item.displayName;function a1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:o}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(ts,{open:l,onOpenChange:u,children:[i.jsx(ns,{asChild:!0,children:i.jsxs(ue,{variant:"outline",role:"combobox","aria-expanded":l,className:de("w-full justify-between min-h-10 h-auto",o),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Dt,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Bh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(uve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(so,{className:"w-full p-0",align:"start",children:i.jsxs(vH,{children:[i.jsx(gH,{placeholder:"搜索...",className:"h-9"}),i.jsxs(yH,{children:[i.jsx(xH,{children:a}),i.jsx(bH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(wH,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:de("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(il,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function i1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,o]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,b]=y.useState(!1),[w,N]=y.useState(!1),[A,E]=y.useState(null),[T,C]=y.useState(null),[k,O]=y.useState(!1),[M,I]=y.useState(null),[z,D]=y.useState(""),[H,V]=y.useState(new Set),[F,G]=y.useState(!1),{toast:L}=mr(),R=y.useRef(null),U=y.useRef(null),K=y.useRef(!0);y.useEffect(()=>{te()},[]);const te=async()=>{try{f(!0);const me=await Mg(),ve=me.models||[];t(ve),o(ve.map(It=>It.name));const Le=me.api_providers||[];r(Le.map(It=>It.name)),u(me.model_task_config||null),b(!1),K.current=!1}catch(me){console.error("加载配置失败:",me)}finally{f(!1)}},$=y.useCallback(async me=>{if(!K.current)try{x(!0),await dC("models",me),b(!1)}catch(ve){console.error("自动保存模型列表失败:",ve),b(!0)}finally{x(!1)}},[]),B=y.useCallback(async me=>{if(!K.current)try{x(!0),await dC("model_task_config",me),b(!1)}catch(ve){console.error("自动保存任务配置失败:",ve),b(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!K.current)return b(!0),R.current&&clearTimeout(R.current),R.current=setTimeout(()=>{$(e)},2e3),()=>{R.current&&clearTimeout(R.current)}},[e,$]),y.useEffect(()=>{if(!(K.current||!l))return b(!0),U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{B(l)},2e3),()=>{U.current&&clearTimeout(U.current)}},[l,B]);const Y=async()=>{try{p(!0),R.current&&clearTimeout(R.current),U.current&&clearTimeout(U.current);const me=await Mg();me.models=e,me.model_task_config=l,await eH(me),b(!1),L({title:"保存成功",description:"模型配置已保存"}),await te()}catch(me){console.error("保存配置失败:",me),L({title:"保存失败",description:me.message,variant:"destructive"})}finally{p(!1)}},ne=(me,ve)=>{E(me||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),C(ve),N(!0)},oe=()=>{if(A){if(T!==null){const me=[...e];me[T]=A,t(me)}else t([...e,A]);N(!1),E(null),C(null)}},xe=me=>{I(me),O(!0)},ee=()=>{if(M!==null){const me=e.filter((ve,Le)=>Le!==M);t(me),L({title:"删除成功",description:"模型已从列表中移除"})}O(!1),I(null)},ae=me=>{const ve=new Set(H);ve.has(me)?ve.delete(me):ve.add(me),V(ve)},Z=()=>{if(H.size===Re.length)V(new Set);else{const me=Re.map((ve,Le)=>e.findIndex(It=>It===Re[Le]));V(new Set(me))}},pe=()=>{if(H.size===0){L({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}G(!0)},je=()=>{const me=e.filter((ve,Le)=>!H.has(Le));t(me),V(new Set),G(!1),L({title:"批量删除成功",description:`已删除 ${H.size} 个模型`})},le=(me,ve,Le)=>{l&&u({...l,[me]:{...l[me],[ve]:Le}})},Re=e.filter(me=>{if(!z)return!0;const ve=z.toLowerCase();return me.name.toLowerCase().includes(ve)||me.model_identifier.toLowerCase().includes(ve)||me.api_provider.toLowerCase().includes(ve)}),_e=me=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(Le=>Le.includes(me)):!1;return d?i.jsx(Vt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs(ue,{onClick:Y,disabled:m||g||!j,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(ZO,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]})]}),i.jsxs(ul,{defaultValue:"models",className:"w-full",children:[i.jsxs(Qo,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Ot,{value:"models",children:"模型配置"}),i.jsx(Ot,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(en,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[H.size>0&&i.jsxs(ue,{onClick:pe,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Tt,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",H.size,")"]}),i.jsxs(ue,{onClick:()=>ne(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(tr,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索模型名称、标识符或提供商...",value:z,onChange:me=>D(me.target.value),className:"pl-9"})]}),z&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Re.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Re.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:z?"未找到匹配的模型":"暂无模型配置"}):Re.map((me,ve)=>{const Le=_e(me.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:me.name}),i.jsx(Dt,{variant:Le?"default":"secondary",className:Le?"bg-green-600 hover:bg-green-700":"",children:Le?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:me.model_identifier,children:me.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>ne(me,ve),children:i.jsx(Au,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>xe(ve),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:me.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:me.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",me.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",me.price_out,"/M"]})]})]})]},ve)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-12",children:i.jsx(rs,{checked:H.size===Re.length&&Re.length>0,onCheckedChange:Z})}),i.jsx(Ze,{className:"w-24",children:"使用状态"}),i.jsx(Ze,{children:"模型名称"}),i.jsx(Ze,{children:"模型标识符"}),i.jsx(Ze,{children:"提供商"}),i.jsx(Ze,{className:"text-right",children:"输入价格"}),i.jsx(Ze,{className:"text-right",children:"输出价格"}),i.jsx(Ze,{className:"text-center",children:"强制流式"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:Re.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:9,className:"text-center text-muted-foreground py-8",children:z?"未找到匹配的模型":"暂无模型配置"})}):Re.map((me,ve)=>{const Le=e.findIndex(Cn=>Cn===me),It=_e(me.name);return i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(rs,{checked:H.has(Le),onCheckedChange:()=>ae(Le)})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:It?"default":"secondary",className:It?"bg-green-600 hover:bg-green-700":"",children:It?"已使用":"未使用"})}),i.jsx(Ue,{className:"font-medium",children:me.name}),i.jsx(Ue,{className:"max-w-xs truncate",title:me.model_identifier,children:me.model_identifier}),i.jsx(Ue,{children:me.api_provider}),i.jsxs(Ue,{className:"text-right",children:["¥",me.price_in,"/M"]}),i.jsxs(Ue,{className:"text-right",children:["¥",me.price_out,"/M"]}),i.jsx(Ue,{className:"text-center",children:me.force_stream_mode?"是":"否"}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>ne(me,Le),children:i.jsx(Au,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>xe(Le),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},ve)})})]})})]}),i.jsxs(en,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx(Ra,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(me,ve)=>le("utils",me,ve)}),i.jsx(Ra,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(me,ve)=>le("utils_small",me,ve)}),i.jsx(Ra,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(me,ve)=>le("tool_use",me,ve)}),i.jsx(Ra,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(me,ve)=>le("replyer",me,ve)}),i.jsx(Ra,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(me,ve)=>le("planner",me,ve)}),i.jsx(Ra,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(me,ve)=>le("vlm",me,ve),hideTemperature:!0}),i.jsx(Ra,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(me,ve)=>le("voice",me,ve),hideTemperature:!0,hideMaxTokens:!0}),i.jsx(Ra,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(me,ve)=>le("embedding",me,ve),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx(Ra,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(me,ve)=>le("lpmm_entity_extract",me,ve)}),i.jsx(Ra,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(me,ve)=>le("lpmm_rdf_build",me,ve)}),i.jsx(Ra,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(me,ve)=>le("lpmm_qa",me,ve)})]})]})]})]}),i.jsx(nr,{open:w,onOpenChange:N,children:i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:T!==null?"编辑模型":"添加模型"}),i.jsx(dr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ne,{id:"model_name",value:A?.name||"",onChange:me=>E(ve=>ve?{...ve,name:me.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ne,{id:"model_identifier",value:A?.model_identifier||"",onChange:me=>E(ve=>ve?{...ve,model_identifier:me.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(Et,{value:A?.api_provider||"",onValueChange:me=>E(ve=>ve?{...ve,api_provider:me}:null),children:[i.jsx(wt,{id:"api_provider",children:i.jsx(At,{placeholder:"选择提供商"})}),i.jsx(jt,{children:n.map(me=>i.jsx(Me,{value:me,children:me},me))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ne,{id:"price_in",type:"number",step:"0.1",min:"0",value:A?.price_in||0,onChange:me=>E(ve=>ve?{...ve,price_in:parseFloat(me.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ne,{id:"price_out",type:"number",step:"0.1",min:"0",value:A?.price_out||0,onChange:me=>E(ve=>ve?{...ve,price_out:parseFloat(me.target.value)}:null)})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"force_stream_mode",checked:A?.force_stream_mode||!1,onCheckedChange:me=>E(ve=>ve?{...ve,force_stream_mode:me}:null)}),i.jsx(J,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>N(!1),children:"取消"}),i.jsx(ue,{onClick:oe,children:"保存"})]})]})}),i.jsx(Pn,{open:k,onOpenChange:O,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除模型 "',M!==null?e[M]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:ee,children:"删除"})]})]})}),i.jsx(Pn,{open:F,onOpenChange:G,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认批量删除"}),i.jsxs(jn,{children:["确定要删除选中的 ",H.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:je,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})})}function Ra({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:o=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"模型列表"}),i.jsx(a1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!o&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"温度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"2",value:n.temperature||.3,onChange:d=>a("temperature",parseFloat(d.target.value))})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"最大 Token"}),i.jsx(Ne,{type:"number",step:"1",min:"1",value:n.max_tokens||1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const ps="/api/webui/emoji";async function o1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await Qe(`${ps}/list?${t}`,{headers:lt()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function s1e(e){const t=await Qe(`${ps}/${e}`,{headers:lt()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function l1e(e,t){const n=await Qe(`${ps}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function c1e(e){const t=await Qe(`${ps}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function u1e(){const e=await Qe(`${ps}/stats/summary`,{headers:lt()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function d1e(e){const t=await Qe(`${ps}/${e}/register`,{method:"POST",headers:lt()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function f1e(e){const t=await Qe(`${ps}/${e}/ban`,{method:"POST",headers:lt()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function mC(e){const t=localStorage.getItem("access-token");return`${ps}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}function h1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,o]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m]=y.useState(20),[p,g]=y.useState(""),[x,j]=y.useState("all"),[b,w]=y.useState("all"),[N,A]=y.useState("all"),[E,T]=y.useState(null),[C,k]=y.useState(!1),[O,M]=y.useState(!1),[I,z]=y.useState(!1),{toast:D}=mr(),H=y.useCallback(async()=>{try{o(!0);const $=await o1e({page:l,page_size:m,search:p||void 0,is_registered:x==="all"?void 0:x==="registered",is_banned:b==="all"?void 0:b==="banned",format:N==="all"?void 0:N,sort_by:"usage_count",sort_order:"desc"});t($.data),f($.total)}catch($){const B=$ instanceof Error?$.message:"加载表情包列表失败";D({title:"错误",description:B,variant:"destructive"})}finally{o(!1)}},[l,m,p,x,b,N,D]),V=async()=>{try{const $=await u1e();r($.data)}catch($){console.error("加载统计数据失败:",$)}};y.useEffect(()=>{H()},[H]),y.useEffect(()=>{V()},[]);const F=async $=>{try{const B=await s1e($.id);T(B.data),k(!0)}catch(B){const Y=B instanceof Error?B.message:"加载详情失败";D({title:"错误",description:Y,variant:"destructive"})}},G=$=>{T($),M(!0)},L=$=>{T($),z(!0)},R=async()=>{if(E)try{await c1e(E.id),D({title:"成功",description:"表情包已删除"}),z(!1),T(null),H(),V()}catch($){const B=$ instanceof Error?$.message:"删除失败";D({title:"错误",description:B,variant:"destructive"})}},U=async $=>{try{await d1e($.id),D({title:"成功",description:"表情包已注册"}),H(),V()}catch(B){const Y=B instanceof Error?B.message:"注册失败";D({title:"错误",description:Y,variant:"destructive"})}},K=async $=>{try{await f1e($.id),D({title:"成功",description:"表情包已封禁"}),H(),V()}catch(B){const Y=B instanceof Error?B.message:"封禁失败";D({title:"错误",description:Y,variant:"destructive"})}},te=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(st,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"总数"}),i.jsx(Ft,{className:"text-2xl",children:n.total})]})}),i.jsx(st,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"已注册"}),i.jsx(Ft,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(st,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"已封禁"}),i.jsx(Ft,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(st,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"未注册"}),i.jsx(Ft,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(st,{children:[i.jsx(qt,{children:i.jsxs(Ft,{className:"flex items-center gap-2",children:[i.jsx(GN,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(on,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"描述或哈希值...",value:p,onChange:$=>{g($.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"注册状态"}),i.jsxs(Et,{value:x,onValueChange:$=>{j($),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"registered",children:"已注册"}),i.jsx(Me,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"封禁状态"}),i.jsxs(Et,{value:b,onValueChange:$=>{w($),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"banned",children:"已封禁"}),i.jsx(Me,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"格式"}),i.jsxs(Et,{value:N,onValueChange:$=>{A($),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),te.map($=>i.jsxs(Me,{value:$,children:[$.toUpperCase()," (",n?.formats[$],")"]},$))]})]})]})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(ue,{variant:"outline",size:"sm",onClick:H,disabled:a,children:[i.jsx(sl,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(st,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"表情包列表"}),i.jsxs(er,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(on,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-16",children:"预览"}),i.jsx(Ze,{children:"描述"}),i.jsx(Ze,{children:"格式"}),i.jsx(Ze,{children:"情绪标签"}),i.jsx(Ze,{className:"text-center",children:"状态"}),i.jsx(Ze,{className:"text-right",children:"使用次数"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map($=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:mC($.id),alt:$.description||"表情包",className:"w-full h-full object-cover",onError:B=>{const Y=B.target;Y.style.display="none";const ne=Y.parentElement;ne&&(ne.innerHTML='')}})})}),i.jsx(Ue,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:$.description||"无描述",children:$.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[$.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:"outline",children:$.format.toUpperCase()})}),i.jsx(Ue,{children:i.jsx(OL,{emotions:$.emotion})}),i.jsx(Ue,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[$.is_registered&&i.jsxs(Dt,{variant:"default",className:"bg-green-600",children:[i.jsx(Vo,{className:"h-3 w-3 mr-1"}),"已注册"]}),$.is_banned&&i.jsxs(Dt,{variant:"destructive",children:[i.jsx(UN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Ue,{className:"text-right font-mono",children:$.usage_count}),i.jsx(Ue,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(ue,{variant:"ghost",size:"sm",onClick:()=>F($),children:[i.jsx(YN,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(ue,{variant:"ghost",size:"sm",onClick:()=>G($),children:[i.jsx(Tu,{className:"h-4 w-4 mr-1"}),"编辑"]}),!$.is_registered&&i.jsxs(ue,{variant:"ghost",size:"sm",onClick:()=>U($),className:"text-green-600 hover:text-green-700",children:[i.jsx(Vo,{className:"h-4 w-4 mr-1"}),"注册"]}),!$.is_banned&&i.jsxs(ue,{variant:"ghost",size:"sm",onClick:()=>K($),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(FI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(ue,{variant:"ghost",size:"sm",onClick:()=>L($),className:"text-red-600 hover:text-red-700",children:[i.jsx(Tt,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},$.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map($=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:mC($.id),alt:$.description||"表情包",className:"w-full h-full object-cover",onError:B=>{const Y=B.target;Y.style.display="none";const ne=Y.parentElement;ne&&(ne.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:$.description||"无描述",children:$.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[$.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Dt,{variant:"outline",className:"text-xs flex-shrink-0",children:$.format.toUpperCase()}),$.is_registered&&i.jsxs(Dt,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Vo,{className:"h-3 w-3 mr-1"}),"已注册"]}),$.is_banned&&i.jsxs(Dt,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(UN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",$.usage_count]})]}),$.emotion&&$.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(OL,{emotions:$.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>F($),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(YN,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>G($),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Tu,{className:"h-3 w-3 mr-1"}),"编辑"]}),!$.is_registered&&i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>U($),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Vo,{className:"h-3 w-3 mr-1"}),"注册"]}),!$.is_banned&&i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>K($),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(FI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>L($),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},$.id))}),d>m&&i.jsxs("div",{className:"flex items-center justify-between mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>u($=>Math.max(1,$-1)),disabled:l===1,children:[i.jsx(YO,{className:"h-4 w-4"}),"上一页"]}),i.jsxs("div",{className:"text-sm",children:["第 ",l," / ",Math.ceil(d/m)," 页"]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>u($=>$+1),disabled:l>=Math.ceil(d/m),children:["下一页",i.jsx(KO,{className:"h-4 w-4"})]})]})]})]})]}),i.jsx(m1e,{emoji:E,open:C,onOpenChange:k}),i.jsx(p1e,{emoji:E,open:O,onOpenChange:M,onSuccess:()=>{H(),V()}})]})}),i.jsx(nr,{open:I,onOpenChange:z,children:i.jsxs(Hn,{children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"确认删除"}),i.jsx(dr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>z(!1),children:"取消"}),i.jsx(ue,{variant:"destructive",onClick:R,children:"删除"})]})]})})]})}function m1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl",children:[i.jsx(Wn,{children:i.jsx(Vn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:mC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const o=a.target;o.style.display="none";const l=o.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Dt,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.emotion&&e.emotion.length>0?e.emotion.map((a,o)=>i.jsx(Dt,{variant:"secondary",children:a},o)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Dt,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Dt,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Dt,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function p1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,o]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=mr();y.useEffect(()=>{e&&(o(e.description||""),u(e.emotion?e.emotion.join(", "):""),f(e.is_registered),p(e.is_banned))},[e]);const b=async()=>{if(e)try{x(!0);const w=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean);await l1e(e.id,{description:a||void 0,emotion:w.length>0?w:void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(w){const N=w instanceof Error?w.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑表情包"}),i.jsx(dr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(J,{children:"描述"}),i.jsx(Wt,{value:a,onChange:w=>o(w.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(J,{children:"情绪标签"}),i.jsx(Ne,{value:l,onChange:w=>u(w.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(rs,{id:"is_registered",checked:d,onCheckedChange:w=>f(w===!0)}),i.jsx(J,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(rs,{id:"is_banned",checked:m,onCheckedChange:w=>p(w===!0)}),i.jsx(J,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(ue,{onClick:b,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function OL({emotions:e}){if(!e||e.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const t=(a,o=6)=>a.length<=o?a:a.slice(0,o)+"...",n=e.slice(0,3),r=e.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[n.map((a,o)=>i.jsx(Dt,{variant:"secondary",className:"text-xs flex-shrink-0",title:a,children:t(a)},o)),r>0&&i.jsxs(Dt,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${r} 个标签: ${e.slice(3).join(", ")}`,children:["+",r]})]})}const Qu="/api/webui/expression";async function v1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await Qe(`${Qu}/list?${t}`,{headers:lt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function g1e(e){const t=await Qe(`${Qu}/${e}`,{headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function y1e(e){const t=await Qe(`${Qu}/`,{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function x1e(e,t){const n=await Qe(`${Qu}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function b1e(e){const t=await Qe(`${Qu}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function w1e(){const e=await Qe(`${Qu}/stats/summary`,{headers:lt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function j1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,o]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(null),[x,j]=y.useState(!1),[b,w]=y.useState(!1),[N,A]=y.useState(!1),[E,T]=y.useState(null),[C,k]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:O}=mr(),M=async()=>{try{r(!0);const F=await v1e({page:l,page_size:d,search:f||void 0});t(F.data),o(F.total)}catch(F){O({title:"加载失败",description:F instanceof Error?F.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},I=async()=>{try{const F=await w1e();k(F.data)}catch(F){console.error("加载统计数据失败:",F)}};y.useEffect(()=>{M(),I()},[l,d,f]);const z=async F=>{try{const G=await g1e(F.id);g(G.data),j(!0)}catch(G){O({title:"加载详情失败",description:G instanceof Error?G.message:"无法加载表达方式详情",variant:"destructive"})}},D=F=>{g(F),w(!0)},H=async F=>{try{await b1e(F.id),O({title:"删除成功",description:`已删除表达方式: ${F.situation}`}),T(null),M(),I()}catch(G){O({title:"删除失败",description:G instanceof Error?G.message:"无法删除表达方式",variant:"destructive"})}},V=F=>F?new Date(F*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Lh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(ue,{onClick:()=>A(!0),className:"gap-2",children:[i.jsx(tr,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:C.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:C.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:C.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(J,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索情境、风格或上下文...",value:f,onChange:F=>m(F.target.value),className:"pl-9"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"情境"}),i.jsx(Ze,{children:"风格"}),i.jsx(Ze,{children:"聊天ID"}),i.jsx(Ze,{children:"最后活跃"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n?i.jsx(vn,{children:i.jsx(Ue,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(F=>i.jsxs(vn,{children:[i.jsx(Ue,{className:"font-medium max-w-xs truncate",children:F.situation}),i.jsx(Ue,{className:"max-w-xs truncate",children:F.style}),i.jsx(Ue,{className:"font-mono text-sm",children:F.chat_id}),i.jsx(Ue,{className:"text-sm text-muted-foreground",children:V(F.last_active_time)}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>z(F),children:i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>D(F),children:i.jsx(Tu,{className:"h-4 w-4"})}),i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>T(F),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},F.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(F=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:F.situation,children:F.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:F.style,children:F.style})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:F.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:V(F.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>z(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ua,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>D(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Tu,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>T(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},F.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(ue,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(ue,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(S1e,{expression:p,open:x,onOpenChange:j}),i.jsx(_1e,{open:N,onOpenChange:A,onSuccess:()=>{M(),I(),A(!1)}}),i.jsx(N1e,{expression:p,open:b,onOpenChange:w,onSuccess:()=>{M(),I(),w(!1)}}),i.jsx(Pn,{open:!!E,onOpenChange:()=>T(null),children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除表达方式 "',E?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>E&&H(E),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function S1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"表达方式详情"}),i.jsx(dr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Ac,{label:"情境",value:e.situation}),i.jsx(Ac,{label:"风格",value:e.style}),i.jsx(Ac,{icon:jg,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Ac,{icon:jg,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Ac,{icon:ol,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Ac,{icon:ol,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx($r,{children:i.jsx(ue,{onClick:()=>n(!1),children:"关闭"})})]})})}function Ac({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(J,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:de("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function _1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[o,l]=y.useState(!1),{toast:u}=mr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await y1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(nr,{open:e,onOpenChange:t,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"新增表达方式"}),i.jsx(dr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"context",children:"上下文"}),i.jsx(Wt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Wt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(ue,{onClick:d,disabled:o,children:o?"创建中...":"创建"})]})]})})}function N1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,o]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=mr();y.useEffect(()=>{e&&o({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await x1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑表达方式"}),i.jsx(dr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ne,{id:"edit_situation",value:a.situation||"",onChange:m=>o({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ne,{id:"edit_style",value:a.style||"",onChange:m=>o({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ne,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>o({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Wt,{id:"edit_context",value:a.context||"",onChange:m=>o({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Wt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>o({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(ue,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}const Kh="/api/webui/person";async function C1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await Qe(`${Kh}/list?${t}`,{headers:lt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function O1e(e){const t=await Qe(`${Kh}/${e}`,{headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function E1e(e,t){const n=await Qe(`${Kh}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function A1e(e){const t=await Qe(`${Kh}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function T1e(){const e=await Qe(`${Kh}/stats/summary`,{headers:lt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function k1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,o]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(void 0),[x,j]=y.useState(void 0),[b,w]=y.useState(null),[N,A]=y.useState(!1),[E,T]=y.useState(!1),[C,k]=y.useState(null),[O,M]=y.useState({total:0,known:0,unknown:0,platforms:{}}),{toast:I}=mr(),z=async()=>{try{r(!0);const R=await C1e({page:l,page_size:d,search:f||void 0,is_known:p,platform:x});t(R.data),o(R.total)}catch(R){I({title:"加载失败",description:R instanceof Error?R.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},D=async()=>{try{const R=await T1e();M(R.data)}catch(R){console.error("加载统计数据失败:",R)}};y.useEffect(()=>{z(),D()},[l,d,f,p,x]);const H=async R=>{try{const U=await O1e(R.person_id);w(U.data),A(!0)}catch(U){I({title:"加载详情失败",description:U instanceof Error?U.message:"无法加载人物详情",variant:"destructive"})}},V=R=>{w(R),T(!0)},F=async R=>{try{await A1e(R.person_id),I({title:"删除成功",description:`已删除人物信息: ${R.person_name||R.nickname||R.user_id}`}),k(null),z(),D()}catch(U){I({title:"删除失败",description:U instanceof Error?U.message:"无法删除人物信息",variant:"destructive"})}},G=y.useMemo(()=>Object.keys(O.platforms),[O.platforms]),L=R=>R?new Date(R*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Oge,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:O.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:O.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:O.unknown})]})]}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(J,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:f,onChange:R=>m(R.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(J,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(Et,{value:p===void 0?"all":p.toString(),onValueChange:R=>{g(R==="all"?void 0:R==="true"),u(1)},children:[i.jsx(wt,{id:"filter-known",className:"mt-1.5",children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"true",children:"已认识"}),i.jsx(Me,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(Et,{value:x||"all",onValueChange:R=>{j(R==="all"?void 0:R),u(1)},children:[i.jsx(wt,{id:"filter-platform",className:"mt-1.5",children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部平台"}),G.map(R=>i.jsxs(Me,{value:R,children:[R," (",O.platforms[R],")"]},R))]})]})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"状态"}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"昵称"}),i.jsx(Ze,{children:"平台"}),i.jsx(Ze,{children:"用户ID"}),i.jsx(Ze,{children:"最后更新"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(R=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx("div",{className:de("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",R.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:R.is_known?"已认识":"未认识"})}),i.jsx(Ue,{className:"font-medium",children:R.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Ue,{children:R.nickname||"-"}),i.jsx(Ue,{children:R.platform}),i.jsx(Ue,{className:"font-mono text-sm",children:R.user_id}),i.jsx(Ue,{className:"text-sm text-muted-foreground",children:L(R.last_know)}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>H(R),children:i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>V(R),children:i.jsx(Tu,{className:"h-4 w-4"})}),i.jsx(ue,{variant:"ghost",size:"sm",onClick:()=>k(R),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},R.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(R=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsx("div",{className:"flex items-start justify-between gap-2",children:i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:de("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",R.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:R.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:R.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),R.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",R.nickname]})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:R.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:R.user_id,children:R.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:L(R.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>H(R),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ua,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>V(R),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Tu,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:()=>k(R),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},R.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(ue,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(ue,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(M1e,{person:b,open:N,onOpenChange:A}),i.jsx(P1e,{person:b,open:E,onOpenChange:T,onSuccess:()=>{z(),D(),T(!1)}}),i.jsx(Pn,{open:!!C,onOpenChange:()=>k(null),children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除人物信息 "',C?.person_name||C?.nickname||C?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>C&&F(C),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function M1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"人物详情"}),i.jsxs(dr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Hi,{icon:nF,label:"人物名称",value:e.person_name}),i.jsx(Hi,{icon:Lh,label:"昵称",value:e.nickname}),i.jsx(Hi,{icon:jg,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Hi,{icon:jg,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Hi,{label:"平台",value:e.platform}),i.jsx(Hi,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,o)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},o))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Hi,{icon:ol,label:"认识时间",value:r(e.know_times)}),i.jsx(Hi,{icon:ol,label:"首次记录",value:r(e.know_since)}),i.jsx(Hi,{icon:ol,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx($r,{children:i.jsx(ue,{onClick:()=>n(!1),children:"关闭"})})]})})}function Hi({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(J,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:de("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function P1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,o]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=mr();y.useEffect(()=>{e&&o({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await E1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑人物信息"}),i.jsxs(dr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ne,{id:"person_name",value:a.person_name||"",onChange:m=>o({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:a.nickname||"",onChange:m=>o({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Wt,{id:"name_reason",value:a.name_reason||"",onChange:m=>o({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Wt,{id:"memory_points",value:a.memory_points||"",onChange:m=>o({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(J,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(at,{id:"is_known",checked:a.is_known,onCheckedChange:m=>o({...a,is_known:m})})]})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(ue,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function R1e(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const D1e={},mf={};function Zs(e,t){try{const r=(D1e[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in mf?mf[r]:EL(r,r.split(":"))}catch{if(e in mf)return mf[e];const n=e?.match($1e);return n?EL(e,n.slice(1)):NaN}}const $1e=/([+-]\d\d):?(\d\d)?/;function EL(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return mf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class ui extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Zs(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),jH(this),pC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new ui(...n,t):new ui(Date.now(),t)}withTimeZone(t){return new ui(+this,t)}getTimezoneOffset(){const t=-Zs(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),pC(this),+this}[Symbol.for("constructDateFrom")](t){return new ui(+new Date(t),this.timeZone)}}const AL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!AL.test(e))return;const t=e.replace(AL,"$1UTC");ui.prototype[t]&&(e.startsWith("get")?ui.prototype[e]=function(){return this.internal[t]()}:(ui.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),I1e(this),+this},ui.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),pC(this),+this}))});function pC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Zs(e.timeZone,e)*60))}function I1e(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),jH(e)}function jH(e){const t=Zs(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),o=-new Date(+r).getTimezoneOffset(),l=a-o,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(Zs(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=Zs(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),b=-new Date(+e).getTimezoneOffset()-x,w=x!==n,N=b-d;if(w&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const A=Zs(e.timeZone,e),E=A>0?Math.floor(A):Math.ceil(A),T=x-E;T&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+T),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+T))}}class sr extends ui{static tz(t,...n){return n.length?new sr(...n,t):new sr(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${R1e(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new sr(+this,t)}[Symbol.for("constructDateFrom")](t){return new sr(+new Date(t),this.timeZone)}}const SH=6048e5,L1e=864e5,TL=Symbol.for("constructDateFrom");function Nn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&TL in e?e[TL](t):e instanceof Date?new e.constructor(t):new Date(t)}function $t(e,t){return Nn(t||e,e)}function _H(e,t,n){const r=$t(e,n?.in);return isNaN(t)?Nn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function NH(e,t,n){const r=$t(e,n?.in);if(isNaN(t))return Nn(e,NaN);if(!t)return r;const a=r.getDate(),o=Nn(e,r.getTime());o.setMonth(r.getMonth()+t+1,0);const l=o.getDate();return a>=l?o:(r.setFullYear(o.getFullYear(),o.getMonth(),a),r)}let B1e={};function Xh(){return B1e}function is(e,t){const n=Xh(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=$t(e,t?.in),o=a.getDay(),l=(o=o.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function kL(e){const t=$t(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Ml(e,...t){const n=Nn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function gh(e,t){const n=$t(e,t?.in);return n.setHours(0,0,0,0),n}function OH(e,t,n){const[r,a]=Ml(n?.in,e,t),o=gh(r),l=gh(a),u=+o-kL(o),d=+l-kL(l);return Math.round((u-d)/L1e)}function z1e(e,t){const n=CH(e,t),r=Nn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),vh(r)}function q1e(e,t,n){return _H(e,t*7,n)}function F1e(e,t,n){return NH(e,t*12,n)}function U1e(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=Nn.bind(null,a));const o=$t(a,r);(!n||n{!r&&typeof a=="object"&&(r=Nn.bind(null,a));const o=$t(a,r);(!n||n>o||isNaN(+o))&&(n=o)}),Nn(r,n||NaN)}function W1e(e,t,n){const[r,a]=Ml(n?.in,e,t);return+gh(r)==+gh(a)}function EH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function V1e(e){return!(!EH(e)&&typeof e!="number"||isNaN(+$t(e)))}function G1e(e,t,n){const[r,a]=Ml(n?.in,e,t),o=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return o*12+l}function Y1e(e,t){const n=$t(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function AH(e,t){const[n,r]=Ml(e,t.start,t.end);return{start:n,end:r}}function K1e(e,t){const{start:n,end:r}=AH(t?.in,e);let a=+n>+r;const o=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=o;)d.push(Nn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function X1e(e,t){const n=$t(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function Z1e(e,t){const n=$t(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function TH(e,t){const n=$t(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Q1e(e,t){const{start:n,end:r}=AH(t?.in,e);let a=+n>+r;const o=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=o;)d.push(Nn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function kH(e,t){const n=Xh(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=$t(e,t?.in),o=a.getDay(),l=(o{let r;const a=eSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Zc(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const nSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},rSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},aSe={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},iSe={date:Zc({formats:nSe,defaultWidth:"full"}),time:Zc({formats:rSe,defaultWidth:"full"}),dateTime:Zc({formats:aSe,defaultWidth:"full"})},oSe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},sSe=(e,t,n,r)=>oSe[e];function ai(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const o=e.argumentCallback?e.argumentCallback(t):t;return a[o]}}const lSe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},cSe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},uSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},dSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},fSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},hSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},mSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},pSe={ordinalNumber:mSe,era:ai({values:lSe,defaultWidth:"wide"}),quarter:ai({values:cSe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ai({values:uSe,defaultWidth:"wide"}),day:ai({values:dSe,defaultWidth:"wide"}),dayPeriod:ai({values:fSe,defaultWidth:"wide",formattingValues:hSe,defaultFormattingWidth:"wide"})};function ii(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],o=t.match(a);if(!o)return null;const l=o[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?gSe(u,p=>p.test(l)):vSe(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function vSe(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function gSe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],o=t.match(e.parsePattern);if(!o)return null;let l=e.valueCallback?e.valueCallback(o[0]):o[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const ySe=/^(\d+)(th|st|nd|rd)?/i,xSe=/\d+/i,bSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},wSe={any:[/^b/i,/^(a|c)/i]},jSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},SSe={any:[/1/i,/2/i,/3/i,/4/i]},_Se={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},NSe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},CSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},OSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},ESe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},ASe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},TSe={ordinalNumber:MH({matchPattern:ySe,parsePattern:xSe,valueCallback:e=>parseInt(e,10)}),era:ii({matchPatterns:bSe,defaultMatchWidth:"wide",parsePatterns:wSe,defaultParseWidth:"any"}),quarter:ii({matchPatterns:jSe,defaultMatchWidth:"wide",parsePatterns:SSe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ii({matchPatterns:_Se,defaultMatchWidth:"wide",parsePatterns:NSe,defaultParseWidth:"any"}),day:ii({matchPatterns:CSe,defaultMatchWidth:"wide",parsePatterns:OSe,defaultParseWidth:"any"}),dayPeriod:ii({matchPatterns:ESe,defaultMatchWidth:"any",parsePatterns:ASe,defaultParseWidth:"any"})},EE={code:"en-US",formatDistance:tSe,formatLong:iSe,formatRelative:sSe,localize:pSe,match:TSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function kSe(e,t){const n=$t(e,t?.in);return OH(n,TH(n))+1}function PH(e,t){const n=$t(e,t?.in),r=+vh(n)-+z1e(n);return Math.round(r/SH)+1}function RH(e,t){const n=$t(e,t?.in),r=n.getFullYear(),a=Xh(),o=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=Nn(t?.in||e,0);l.setFullYear(r+1,0,o),l.setHours(0,0,0,0);const u=is(l,t),d=Nn(t?.in||e,0);d.setFullYear(r,0,o),d.setHours(0,0,0,0);const f=is(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function MSe(e,t){const n=Xh(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=RH(e,t),o=Nn(t?.in||e,0);return o.setFullYear(a,0,r),o.setHours(0,0,0,0),is(o,t)}function DH(e,t){const n=$t(e,t?.in),r=+is(n,t)-+MSe(n,t);return Math.round(r/SH)+1}function Ct(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Bo={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Ct(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Ct(n+1,2)},d(e,t){return Ct(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Ct(e.getHours()%12||12,t.length)},H(e,t){return Ct(e.getHours(),t.length)},m(e,t){return Ct(e.getMinutes(),t.length)},s(e,t){return Ct(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return Ct(a,t.length)}},Tc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},ML={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Bo.y(e,t)},Y:function(e,t,n,r){const a=RH(e,r),o=a>0?a:1-a;if(t==="YY"){const l=o%100;return Ct(l,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):Ct(o,t.length)},R:function(e,t){const n=CH(e);return Ct(n,t.length)},u:function(e,t){const n=e.getFullYear();return Ct(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Ct(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Ct(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Bo.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Ct(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=DH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):Ct(a,t.length)},I:function(e,t,n){const r=PH(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Ct(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Bo.d(e,t)},D:function(e,t,n){const r=kSe(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Ct(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return Ct(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),o=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return Ct(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return Ct(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Tc.noon:r===0?a=Tc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Tc.evening:r>=12?a=Tc.afternoon:r>=4?a=Tc.morning:a=Tc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Bo.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Bo.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Ct(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Ct(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Bo.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Bo.s(e,t)},S:function(e,t){return Bo.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return RL(r);case"XXXX":case"XX":return Hs(r);case"XXXXX":case"XXX":default:return Hs(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return RL(r);case"xxxx":case"xx":return Hs(r);case"xxxxx":case"xxx":default:return Hs(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+PL(r,":");case"OOOO":default:return"GMT"+Hs(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+PL(r,":");case"zzzz":default:return"GMT"+Hs(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Ct(r,t.length)},T:function(e,t,n){return Ct(+e,t.length)}};function PL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),o=r%60;return o===0?n+String(a):n+String(a)+t+Ct(o,2)}function RL(e,t){return e%60===0?(e>0?"-":"+")+Ct(Math.abs(e)/60,2):Hs(e,t)}function Hs(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Ct(Math.trunc(r/60),2),o=Ct(r%60,2);return n+a+t+o}const DL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},$H=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},PSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return DL(e,t);let o;switch(r){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",DL(r,t)).replace("{{time}}",$H(a,t))},RSe={p:$H,P:PSe},DSe=/^D+$/,$Se=/^Y+$/,ISe=["D","DD","YY","YYYY"];function LSe(e){return DSe.test(e)}function BSe(e){return $Se.test(e)}function zSe(e,t,n){const r=qSe(e,t,n);if(console.warn(r),ISe.includes(e))throw new RangeError(r)}function qSe(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const FSe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,USe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,HSe=/^'([^]*?)'?$/,WSe=/''/g,VSe=/[a-zA-Z]/;function uv(e,t,n){const r=Xh(),a=n?.locale??r.locale??EE,o=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=$t(e,n?.in);if(!V1e(u))throw new RangeError("Invalid time value");let d=t.match(USe).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=RSe[p];return g(m,a.formatLong)}return m}).join("").match(FSe).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:GSe(m)};if(ML[p])return{isToken:!0,value:m};if(p.match(VSe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:o,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&BSe(p)||!n?.useAdditionalDayOfYearTokens&&LSe(p))&&zSe(p,t,String(e));const g=ML[p[0]];return g(u,p,a.localize,f)}).join("")}function GSe(e){const t=e.match(HSe);return t?t[1].replace(WSe,"'"):e}function YSe(e,t){const n=$t(e,t?.in),r=n.getFullYear(),a=n.getMonth(),o=Nn(n,0);return o.setFullYear(r,a+1,0),o.setHours(0,0,0,0),o.getDate()}function KSe(e,t){return $t(e,t?.in).getMonth()}function XSe(e,t){return $t(e,t?.in).getFullYear()}function ZSe(e,t){return+$t(e)>+$t(t)}function QSe(e,t){return+$t(e)<+$t(t)}function JSe(e,t,n){const[r,a]=Ml(n?.in,e,t);return+is(r,n)==+is(a,n)}function e_e(e,t,n){const[r,a]=Ml(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function t_e(e,t,n){const[r,a]=Ml(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function n_e(e,t,n){const r=$t(e,n?.in),a=r.getFullYear(),o=r.getDate(),l=Nn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=YSe(l);return r.setMonth(t,Math.min(o,u)),r}function r_e(e,t,n){const r=$t(e,n?.in);return isNaN(+r)?Nn(e,NaN):(r.setFullYear(t),r)}const $L=5,a_e=4;function i_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),o=t.addDays(a,$L*7-1);return t.getMonth(e)===t.getMonth(o)?$L:a_e}function IH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function o_e(e,t){const n=IH(e,t),r=i_e(e,t);return t.addDays(n,r*7-1)}class ia{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?sr.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,o)=>this.overrides?.newDate?this.overrides.newDate(r,a,o):this.options.timeZone?new sr(r,a,o,this.options.timeZone):new Date(r,a,o),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):_H(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):NH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):q1e(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):F1e(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):OH(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):G1e(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):K1e(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):Q1e(r),o=new Set(a.map(u=>this.getYear(u)));if(o.size===a.length)return a;const l=[];return o.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):o_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):J1e(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):Y1e(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):kH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):Z1e(r),this.format=(r,a,o)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):uv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):PH(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):KSe(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):XSe(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):DH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):ZSe(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):QSe(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):EH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):W1e(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):e_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):t_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):U1e(r),this.min=r=>this.overrides?.min?this.overrides.min(r):H1e(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):n_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):r_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):IH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):gh(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):vh(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):X1e(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):is(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):TH(r),this.options={locale:EE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&ia.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,o=n?.code;if(o&&ia.yearFirstLocales.has(o))try{return new Intl.DateTimeFormat(o,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}ia.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Si=new ia;class LH{constructor(t,n,r=Si){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class s_e{constructor(t,n){this.date=t,this.weeks=n}}class l_e{constructor(t,n){this.days=n,this.weekNumber=t}}function c_e(e){return W.createElement("button",{...e})}function u_e(e){return W.createElement("span",{...e})}function d_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function f_e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function h_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var $e;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})($e||($e={}));var tn;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(tn||(tn={}));var za;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(za||(za={}));var Xr;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(Xr||(Xr={}));function m_e(e){const{options:t,className:n,components:r,classNames:a,...o}=e,l=[a[$e.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===o.value);return W.createElement("span",{"data-disabled":o.disabled,className:a[$e.DropdownRoot]},W.createElement(r.Select,{className:l,...o},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[$e.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[$e.Chevron]})))}function p_e(e){return W.createElement("div",{...e})}function v_e(e){return W.createElement("div",{...e})}function g_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function y_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function x_e(e){return W.createElement("table",{...e})}function b_e(e){return W.createElement("div",{...e})}const BH=y.createContext(void 0);function Zh(){const e=y.useContext(BH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function w_e(e){const{components:t}=Zh();return W.createElement(t.Dropdown,{...e})}function j_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...o}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=Zh(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...o},W.createElement(l.PreviousMonthButton,{type:"button",className:u[$e.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[$e.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[$e.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[$e.Chevron]})))}function S_e(e){const{components:t}=Zh();return W.createElement(t.Button,{...e})}function __e(e){return W.createElement("option",{...e})}function N_e(e){const{components:t}=Zh();return W.createElement(t.Button,{...e})}function C_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function O_e(e){return W.createElement("select",{...e})}function E_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function A_e(e){return W.createElement("th",{...e})}function T_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function k_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function M_e(e){return W.createElement("th",{...e})}function P_e(e){return W.createElement("tbody",{...e})}function R_e(e){const{components:t}=Zh();return W.createElement(t.Dropdown,{...e})}const D_e=Object.freeze(Object.defineProperty({__proto__:null,Button:c_e,CaptionLabel:u_e,Chevron:d_e,Day:f_e,DayButton:h_e,Dropdown:m_e,DropdownNav:p_e,Footer:v_e,Month:g_e,MonthCaption:y_e,MonthGrid:x_e,Months:b_e,MonthsDropdown:w_e,Nav:j_e,NextMonthButton:S_e,Option:__e,PreviousMonthButton:N_e,Root:C_e,Select:O_e,Week:E_e,WeekNumber:k_e,WeekNumberHeader:M_e,Weekday:A_e,Weekdays:T_e,Weeks:P_e,YearsDropdown:R_e},Symbol.toStringTag,{value:"Module"}));function Xi(e,t,n=!1,r=Si){let{from:a,to:o}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&o?(l(o,a)<0&&([a,o]=[o,a]),l(t,a)>=(n?1:0)&&l(o,t)>=(n?1:0)):!n&&o?u(o,t):!n&&a?u(a,t):!1}function zH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function AE(e){return!!(e&&typeof e=="object"&&"from"in e)}function qH(e){return!!(e&&typeof e=="object"&&"after"in e)}function FH(e){return!!(e&&typeof e=="object"&&"before"in e)}function UH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function HH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function Zi(e,t,n=Si){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:o,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(HH(u,n))return u.includes(e);if(AE(u))return Xi(u,e,!1,n);if(UH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(zH(u)){const d=o(u.before,e),f=o(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return qH(u)?o(e,u.after)>0:FH(u)?o(u.before,e)>0:typeof u=="function"?u(e):!1})}function $_e(e,t,n,r,a){const{disabled:o,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:b,isAfter:w}=a,N=n&&x(n),A=r&&b(r),E={[tn.focused]:[],[tn.outside]:[],[tn.disabled]:[],[tn.hidden]:[],[tn.today]:[]},T={};for(const C of e){const{date:k,displayMonth:O}=C,M=!!(O&&!g(k,O)),I=!!(N&&j(k,N)),z=!!(A&&w(k,A)),D=!!(o&&Zi(k,o,a)),H=!!(l&&Zi(k,l,a))||I||z||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&E.outside.push(C),D&&E.disabled.push(C),H&&E.hidden.push(C),V&&E.today.push(C),u&&Object.keys(u).forEach(F=>{const G=u?.[F];G&&Zi(k,G,a)&&(T[F]?T[F].push(C):T[F]=[C])})}return C=>{const k={[tn.focused]:!1,[tn.disabled]:!1,[tn.hidden]:!1,[tn.outside]:!1,[tn.today]:!1},O={};for(const M in E){const I=E[M];k[M]=I.some(z=>z===C)}for(const M in T)O[M]=T[M].some(I=>I===C);return{...k,...O}}}function I_e(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[o])=>(n[o]?a.push(n[o]):t[tn[o]]?a.push(t[tn[o]]):t[za[o]]&&a.push(t[za[o]]),a),[t[$e.Day]])}function L_e(e){return{...D_e,...e}}function B_e(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function TE(){const e={};for(const t in $e)e[$e[t]]=`rdp-${$e[t]}`;for(const t in tn)e[tn[t]]=`rdp-${tn[t]}`;for(const t in za)e[za[t]]=`rdp-${za[t]}`;for(const t in Xr)e[Xr[t]]=`rdp-${Xr[t]}`;return e}function WH(e,t,n){return(n??new ia(t)).formatMonthYear(e)}const z_e=WH;function q_e(e,t,n){return(n??new ia(t)).format(e,"d")}function F_e(e,t=Si){return t.format(e,"LLLL")}function U_e(e,t,n){return(n??new ia(t)).format(e,"cccccc")}function H_e(e,t=Si){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function W_e(){return""}function VH(e,t=Si){return t.format(e,"yyyy")}const V_e=VH,G_e=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:WH,formatDay:q_e,formatMonthCaption:z_e,formatMonthDropdown:F_e,formatWeekNumber:H_e,formatWeekNumberHeader:W_e,formatWeekdayName:U_e,formatYearCaption:V_e,formatYearDropdown:VH},Symbol.toStringTag,{value:"Module"}));function Y_e(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...G_e,...e}}function K_e(e,t,n,r,a){const{startOfMonth:o,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),b=t&&go(n)||!1;return{value:j,label:x,disabled:b}})}function X_e(e,t={},n={}){let r={...t?.[$e.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function Z_e(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),o=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);o.push(u)}return o}function Q_e(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:o,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=o(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function GH(e,t,n,r){let a=(r??new ia(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const J_e=GH;function YH(e,t,n){return(n??new ia(t)).formatMonthYear(e)}const eNe=YH;function tNe(e,t,n,r){let a=(r??new ia(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function nNe(e){return"Choose the Month"}function rNe(){return""}function aNe(e){return"Go to the Next Month"}function iNe(e){return"Go to the Previous Month"}function oNe(e,t,n){return(n??new ia(t)).format(e,"cccc")}function sNe(e,t){return`Week ${e}`}function lNe(e){return"Week Number"}function cNe(e){return"Choose the Year"}const uNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:eNe,labelDay:J_e,labelDayButton:GH,labelGrid:YH,labelGridcell:tNe,labelMonthDropdown:nNe,labelNav:rNe,labelNext:aNe,labelPrevious:iNe,labelWeekNumber:sNe,labelWeekNumberHeader:lNe,labelWeekday:oNe,labelYearDropdown:cNe},Symbol.toStringTag,{value:"Module"})),Qh=e=>e instanceof HTMLElement?e:null,i_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],dNe=e=>Qh(e.querySelector("[data-animated-month]")),o_=e=>Qh(e.querySelector("[data-animated-caption]")),s_=e=>Qh(e.querySelector("[data-animated-weeks]")),fNe=e=>Qh(e.querySelector("[data-animated-nav]")),hNe=e=>Qh(e.querySelector("[data-animated-weekdays]"));function mNe(e,t,{classNames:n,months:r,focused:a,dateLib:o}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=o.isSameMonth(r[0].date,f[0].date),p=o.isAfter(r[0].date,f[0].date),g=p?n[Xr.caption_after_enter]:n[Xr.caption_before_enter],x=p?n[Xr.weeks_after_enter]:n[Xr.weeks_before_enter],j=l.current,b=e.current.cloneNode(!0);if(b instanceof HTMLElement?(i_(b).forEach(E=>{if(!(E instanceof HTMLElement))return;const T=dNe(E);T&&E.contains(T)&&E.removeChild(T);const C=o_(E);C&&C.classList.remove(g);const k=s_(E);k&&k.classList.remove(x)}),l.current=b):l.current=null,d.current||m||a)return;const w=j instanceof HTMLElement?i_(j):[],N=i_(e.current);if(N?.every(A=>A instanceof HTMLElement)&&w&&w.every(A=>A instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const A=fNe(e.current);A&&(A.style.zIndex="1"),N.forEach((E,T)=>{const C=w[T];if(!C)return;E.style.position="relative",E.style.overflow="hidden";const k=o_(E);k&&k.classList.add(g);const O=s_(E);O&&O.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),A&&(A.style.zIndex=""),k&&k.classList.remove(g),O&&O.classList.remove(x),E.style.position="",E.style.overflow="",E.contains(C)&&E.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const I=hNe(C);I&&(I.style.opacity="0");const z=o_(C);z&&(z.classList.add(p?n[Xr.caption_before_exit]:n[Xr.caption_after_exit]),z.addEventListener("animationend",M));const D=s_(C);D&&D.classList.add(p?n[Xr.weeks_before_exit]:n[Xr.weeks_after_exit]),E.insertBefore(C,E.firstChild)})}})}function pNe(e,t,n,r){const a=e[0],o=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:b,isAfter:w,startOfBroadcastWeek:N,startOfISOWeek:A,startOfWeek:E}=r,T=d?N(a,r):l?A(a):E(a),C=d?g(o):l?x(j(o)):b(j(o)),k=m(C,T),O=p(o,a)+1,M=[];for(let D=0;D<=k;D++){const H=f(T,D);if(t&&w(H,t))break;M.push(H)}const z=(d?35:42)*O;if(u&&M.length{const a=r.weeks.reduce((o,l)=>o.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function gNe(e,t,n,r){const{numberOfMonths:a=1}=n,o=[];for(let l=0;lt)break;o.push(u)}return o}function IL(e,t,n,r){const{month:a,defaultMonth:o,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||o||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(w,r):n.ISOWeek?g(w):x(w),A=n.broadcastCalendar?o(w):n.ISOWeek?l(u(w)):d(u(w)),E=t.filter(O=>O>=N&&O<=A),T=n.broadcastCalendar?35:42;if(n.fixedWeeks&&E.length{const I=T-E.length;return M>A&&M<=a(A,I)});E.push(...O)}const C=E.reduce((O,M)=>{const I=n.ISOWeek?f(M):m(M),z=O.find(H=>H.weekNumber===I),D=new LH(M,w,r);return z?z.days.push(D):O.push(new l_e(I,[D])),O},[]),k=new s_e(w,C);return b.push(k),b},[]);return n.reverseMonths?j.reverse():j}function xNe(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:o,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:b}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&b&&(r=b),!r&&x&&(r=m(x,11,31));const w=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&w&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&w&&(r=f(e.today??p())),[n&&o(n),r&&o(r)]}function bNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:o=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?o:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function Jy(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function SNe(e,t){const[n,r]=xNe(e,t),{startOfMonth:a,endOfMonth:o}=t,l=IL(e,n,r,t),[u,d]=Jy(l,e.month?l:void 0);y.useEffect(()=>{const k=IL(e,n,r,t);d(k)},[e.timeZone]);const f=gNe(u,r,e,t),m=pNe(f,e.endMonth?o(e.endMonth):void 0,e,t),p=yNe(f,m,e,t),g=jNe(p),x=vNe(p),j=wNe(u,n,e,t),b=bNe(u,r,e,t),{disableNavigation:w,onMonthChange:N}=e,A=k=>g.some(O=>O.days.some(M=>M.isEqualTo(k))),E=k=>{if(w)return;let O=a(k);n&&Oa(r)&&(O=a(r)),d(O),N?.(O)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:b,goToMonth:E,goToDay:k=>{A(k)||E(k.date)}}}var ti;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ti||(ti={}));function LL(e){return!e[tn.disabled]&&!e[tn.hidden]&&!e[tn.outside]}function _Ne(e,t,n,r){let a,o=-1;for(const l of e){const u=t(l);LL(u)&&(u[tn.focused]&&oLL(t(l)))),a}function NNe(e,t,n,r,a,o,l){const{ISOWeek:u,broadcastCalendar:d}=o,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:b,max:w,min:N,startOfBroadcastWeek:A,startOfISOWeek:E,startOfWeek:T}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:O=>d?A(O,l):u?E(O):T(O),endOfWeek:O=>d?x(O):u?j(O):b(O)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=w([r,k]):t==="after"&&a&&(k=N([a,k])),k}function KH(e,t,n,r,a,o,l,u=0){if(u>365)return;const d=NNe(e,t,n.date,r,a,o,l),f=!!(o.disabled&&Zi(d,o.disabled,l)),m=!!(o.hidden&&Zi(d,o.hidden,l)),p=d,g=new LH(d,p,l);return!f&&!m?g:KH(e,t,g,r,a,o,l,u+1)}function CNe(e,t,n,r,a){const{autoFocus:o}=e,[l,u]=y.useState(),d=_Ne(t.days,n,r||(()=>!1),l),[f,m]=y.useState(o?d:void 0);return{isFocusTarget:b=>!!d?.isEqualTo(b),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(b,w)=>{if(!f)return;const N=KH(b,w,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(E=>E.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function ONe(e,t){const{selected:n,required:r,onSelect:a}=e,[o,l]=Jy(n,a?n:void 0),u=a?n:o,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,b)=>{let w=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;w=u?.filter(N=>!d(N,x))}else u?.length===p?w=[x]:w=[...w,x];return a||l(w),a?.(w,x,j,b),w},isSelected:f}}function ENe(e,t,n=0,r=0,a=!1,o=Si){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=o;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=o.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?Xi(e,u,!1,n):HH(u,n)?u.some(d=>Xi(e,d,!1,n)):AE(u)?u.from&&u.to?BL(e,{from:u.from,to:u.to},n):!1:UH(u)?ANe(e,u.dayOfWeek,n):zH(u)?n.isAfter(u.before,u.after)?BL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):Zi(e.from,u,n)||Zi(e.to,u,n):qH(u)||FH(u)?Zi(e.from,u,n)||Zi(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function kNe(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:o,onSelect:l}=e,[u,d]=Jy(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:b,max:w}=e,N=g?ENe(g,f,b,w,o,t):void 0;return r&&n&&N?.from&&N.to&&TNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&Xi(f,g,!1,t)}}function MNe(e,t){const{selected:n,required:r,onSelect:a}=e,[o,l]=Jy(n,a?n:void 0),u=a?n:o,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function PNe(e,t){const n=MNe(e,t),r=ONe(e,t),a=kNe(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function RNe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new sr(t.today,t.timeZone)),t.month&&(t.month=new sr(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new sr(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new sr(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new sr(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new sr(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(et=>new sr(et,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new sr(t.selected.from,t.timeZone):void 0,to:t.selected.to?new sr(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:o,locale:l,classNames:u}=y.useMemo(()=>{const et={...EE,...t.locale};return{dateLib:new ia({locale:et,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:L_e(t.components),formatters:Y_e(t.formatters),labels:{...uNe,...t.labels},locale:et,classNames:{...TE(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:b,onDayMouseEnter:w,onDayMouseLeave:N,onNextClick:A,onPrevClick:E,showWeekNumber:T,styles:C}=t,{formatCaption:k,formatDay:O,formatMonthDropdown:M,formatWeekNumber:I,formatWeekNumberHeader:z,formatWeekdayName:D,formatYearDropdown:H}=r,V=SNe(t,o),{days:F,months:G,navStart:L,navEnd:R,previousMonth:U,nextMonth:K,goToMonth:te}=V,$=$_e(F,t,L,R,o),{isSelected:B,select:Y,selected:ne}=PNe(t,o)??{},{blur:oe,focused:xe,isFocusTarget:ee,moveFocus:ae,setFocused:Z}=CNe(t,V,$,B??(()=>!1),o),{labelDayButton:pe,labelGridcell:je,labelGrid:le,labelMonthDropdown:Re,labelNav:_e,labelPrevious:me,labelNext:ve,labelWeekday:Le,labelWeekNumber:It,labelWeekNumberHeader:Cn,labelYearDropdown:vr}=a,rr=y.useMemo(()=>Z_e(o,t.ISOWeek),[o,t.ISOWeek]),gr=f!==void 0||x!==void 0,ct=y.useCallback(()=>{U&&(te(U),E?.(U))},[U,te,E]),rt=y.useCallback(()=>{K&&(te(K),A?.(K))},[te,K,A]),$n=y.useCallback((et,zt)=>He=>{He.preventDefault(),He.stopPropagation(),Z(et),Y?.(et.date,zt,He),x?.(et.date,zt,He)},[Y,x,Z]),gs=y.useCallback((et,zt)=>He=>{Z(et),j?.(et.date,zt,He)},[j,Z]),im=y.useCallback((et,zt)=>He=>{oe(),g?.(et.date,zt,He)},[oe,g]),Rl=y.useCallback((et,zt)=>He=>{const gt={ArrowLeft:[He.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[He.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[He.shiftKey?"year":"week","after"],ArrowUp:[He.shiftKey?"year":"week","before"],PageUp:[He.shiftKey?"year":"month","before"],PageDown:[He.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(gt[He.key]){He.preventDefault(),He.stopPropagation();const[In,tt]=gt[He.key];ae(In,tt)}b?.(et.date,zt,He)},[ae,b,t.dir]),ax=y.useCallback((et,zt)=>He=>{w?.(et.date,zt,He)},[w]),om=y.useCallback((et,zt)=>He=>{N?.(et.date,zt,He)},[N]),ix=y.useCallback(et=>zt=>{const He=Number(zt.target.value),gt=o.setMonth(o.startOfMonth(et),He);te(gt)},[o,te]),ox=y.useCallback(et=>zt=>{const He=Number(zt.target.value),gt=o.setYear(o.startOfMonth(et),He);te(gt)},[o,te]),{className:ys,style:yr}=y.useMemo(()=>({className:[u[$e.Root],t.className].filter(Boolean).join(" "),style:{...C?.[$e.Root],...t.style}}),[u,t.className,t.style,C]),Ka=B_e(t),ar=y.useRef(null);mNe(ar,!!t.animate,{classNames:u,months:G,focused:xe,dateLib:o});const sx={dayPickerProps:t,selected:ne,select:Y,isSelected:B,months:G,nextMonth:K,previousMonth:U,goToMonth:te,getModifiers:$,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(BH.Provider,{value:sx},W.createElement(n.Root,{rootRef:t.animate?ar:void 0,className:ys,style:yr,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...Ka},W.createElement(n.Months,{className:u[$e.Months],style:C?.[$e.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[$e.Nav],style:C?.[$e.Nav],"aria-label":_e(),onPreviousClick:ct,onNextClick:rt,previousMonth:U,nextMonth:K}),G.map((et,zt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[$e.Month],style:C?.[$e.Month],key:zt,displayIndex:zt,calendarMonth:et},m==="around"&&!t.hideNavigation&&zt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[$e.PreviousMonthButton],tabIndex:U?void 0:-1,"aria-disabled":U?void 0:!0,"aria-label":me(U),onClick:ct,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:U?void 0:!0,className:u[$e.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[$e.MonthCaption],style:C?.[$e.MonthCaption],calendarMonth:et,displayIndex:zt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[$e.Dropdowns],style:C?.[$e.Dropdowns]},(()=>{const He=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[$e.MonthsDropdown],"aria-label":Re(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:ix(et.date),options:K_e(et.date,L,R,r,o),style:C?.[$e.Dropdown],value:o.getMonth(et.date)}):W.createElement("span",{key:"month"},M(et.date,o)),gt=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[$e.YearsDropdown],"aria-label":vr(o.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:ox(et.date),options:Q_e(L,R,r,o,!!t.reverseYears),style:C?.[$e.Dropdown],value:o.getYear(et.date)}):W.createElement("span",{key:"year"},H(et.date,o));return o.getMonthYearOrder()==="year-first"?[gt,He]:[He,gt]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(et.date,o.options,o))):W.createElement(n.CaptionLabel,{className:u[$e.CaptionLabel],role:"status","aria-live":"polite"},k(et.date,o.options,o))),m==="around"&&!t.hideNavigation&&zt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[$e.NextMonthButton],tabIndex:K?void 0:-1,"aria-disabled":K?void 0:!0,"aria-label":ve(K),onClick:rt,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:K?void 0:!0,className:u[$e.Chevron],orientation:t.dir==="rtl"?"left":"right"})),zt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[$e.Nav],style:C?.[$e.Nav],"aria-label":_e(),onPreviousClick:ct,onNextClick:rt,previousMonth:U,nextMonth:K}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":le(et.date,o.options,o)||void 0,className:u[$e.MonthGrid],style:C?.[$e.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[$e.Weekdays],style:C?.[$e.Weekdays]},T&&W.createElement(n.WeekNumberHeader,{"aria-label":Cn(o.options),className:u[$e.WeekNumberHeader],style:C?.[$e.WeekNumberHeader],scope:"col"},z()),rr.map(He=>W.createElement(n.Weekday,{"aria-label":Le(He,o.options,o),className:u[$e.Weekday],key:String(He),style:C?.[$e.Weekday],scope:"col"},D(He,o.options,o)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[$e.Weeks],style:C?.[$e.Weeks]},et.weeks.map(He=>W.createElement(n.Week,{className:u[$e.Week],key:He.weekNumber,style:C?.[$e.Week],week:He},T&&W.createElement(n.WeekNumber,{week:He,style:C?.[$e.WeekNumber],"aria-label":It(He.weekNumber,{locale:l}),className:u[$e.WeekNumber],scope:"row",role:"rowheader"},I(He.weekNumber,o)),He.days.map(gt=>{const{date:In}=gt,tt=$(gt);if(tt[tn.focused]=!tt.hidden&&!!xe?.isEqualTo(gt),tt[za.selected]=B?.(In)||tt.selected,AE(ne)){const{from:$l,to:bs}=ne;tt[za.range_start]=!!($l&&bs&&o.isSameDay(In,$l)),tt[za.range_end]=!!($l&&bs&&o.isSameDay(In,bs)),tt[za.range_middle]=Xi(ne,In,!0,o)}const Dl=X_e(tt,C,t.modifiersStyles),xs=I_e(tt,u,t.modifiersClassNames),lx=!gr&&!tt.hidden?je(In,tt,o.options,o):void 0;return W.createElement(n.Day,{key:`${o.format(In,"yyyy-MM-dd")}_${o.format(gt.displayMonth,"yyyy-MM")}`,day:gt,modifiers:tt,className:xs.join(" "),style:Dl,role:"gridcell","aria-selected":tt.selected||void 0,"aria-label":lx,"data-day":o.format(In,"yyyy-MM-dd"),"data-month":gt.outside?o.format(In,"yyyy-MM"):void 0,"data-selected":tt.selected||void 0,"data-disabled":tt.disabled||void 0,"data-hidden":tt.hidden||void 0,"data-outside":gt.outside||void 0,"data-focused":tt.focused||void 0,"data-today":tt.today||void 0},!tt.hidden&&gr?W.createElement(n.DayButton,{className:u[$e.DayButton],style:C?.[$e.DayButton],type:"button",day:gt,modifiers:tt,disabled:tt.disabled||void 0,tabIndex:ee(gt)?0:-1,"aria-label":pe(In,tt,o.options,o),onClick:$n(gt,tt),onBlur:im(gt,tt),onFocus:gs(gt,tt),onKeyDown:Rl(gt,tt),onMouseEnter:ax(gt,tt),onMouseLeave:om(gt,tt)},O(In,o.options,o)):!tt.hidden&&O(gt.date,o.options,o))})))))))),t.footer&&W.createElement(n.Footer,{className:u[$e.Footer],style:C?.[$e.Footer],role:"status","aria-live":"polite"},t.footer)))}function zL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:o,components:l,...u}){const d=TE();return i.jsx(RNe,{showOutsideDays:n,className:de("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...o},classNames:{root:de("w-fit",d.root),months:de("relative flex flex-col gap-4 md:flex-row",d.months),month:de("flex w-full flex-col gap-4",d.month),nav:de("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:de(fh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:de(fh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:de("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:de("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:de("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:de("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:de("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:de("flex",d.weekdays),weekday:de("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:de("mt-2 flex w-full",d.week),week_number_header:de("w-[--cell-size] select-none",d.week_number_header),week_number:de("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:de("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:de("bg-accent rounded-l-md",d.range_start),range_middle:de("rounded-none",d.range_middle),range_end:de("bg-accent rounded-r-md",d.range_end),today:de("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:de("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:de("text-muted-foreground opacity-50",d.disabled),hidden:de("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:de(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(YO,{className:de("size-4",f),...p}):m==="right"?i.jsx(KO,{className:de("size-4",f),...p}):i.jsx(uh,{className:de("size-4",f),...p}),DayButton:DNe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function DNe({className:e,day:t,modifiers:n,...r}){const a=TE(),o=y.useRef(null);return y.useEffect(()=>{n.focused&&o.current?.focus()},[n.focused]),i.jsx(ue,{ref:o,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:de("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class $Ne{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const $c=new $Ne;typeof window<"u"&&$c.connect();const INe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},LNe=(e,t,n)=>{let r;const a=INe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},BNe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},zNe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},qNe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},FNe={date:Zc({formats:BNe,defaultWidth:"full"}),time:Zc({formats:zNe,defaultWidth:"full"}),dateTime:Zc({formats:qNe,defaultWidth:"full"})};function qL(e,t,n){const r="eeee p";return JSe(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const UNe={lastWeek:qL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:qL,other:"PP p"},HNe=(e,t,n,r)=>{const a=UNe[e];return typeof a=="function"?a(t,n,r):a},WNe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},VNe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},GNe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},YNe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},KNe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},XNe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},ZNe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},QNe={ordinalNumber:ZNe,era:ai({values:WNe,defaultWidth:"wide"}),quarter:ai({values:VNe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ai({values:GNe,defaultWidth:"wide"}),day:ai({values:YNe,defaultWidth:"wide"}),dayPeriod:ai({values:KNe,defaultWidth:"wide",formattingValues:XNe,defaultFormattingWidth:"wide"})},JNe=/^(第\s*)?\d+(日|时|分|秒)?/i,eCe=/\d+/i,tCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},nCe={any:[/^(前)/i,/^(公元)/i]},rCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},aCe={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},iCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},oCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},sCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},lCe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},cCe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},uCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},dCe={ordinalNumber:MH({matchPattern:JNe,parsePattern:eCe,valueCallback:e=>parseInt(e,10)}),era:ii({matchPatterns:tCe,defaultMatchWidth:"wide",parsePatterns:nCe,defaultParseWidth:"any"}),quarter:ii({matchPatterns:rCe,defaultMatchWidth:"wide",parsePatterns:aCe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ii({matchPatterns:iCe,defaultMatchWidth:"wide",parsePatterns:oCe,defaultParseWidth:"any"}),day:ii({matchPatterns:sCe,defaultMatchWidth:"wide",parsePatterns:lCe,defaultParseWidth:"any"}),dayPeriod:ii({matchPatterns:cCe,defaultMatchWidth:"any",parsePatterns:uCe,defaultParseWidth:"any"})},Vp={code:"zh-CN",formatDistance:LNe,formatLong:FNe,formatRelative:HNe,localize:QNe,match:dCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function fCe(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,o]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,b]=y.useState(!1),w=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const D=$c.getAllLogs();t(D);const H=$c.onLog(()=>{t($c.getAllLogs())}),V=$c.onConnectionChange(F=>{b(F)});return()=>{H(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const A=y.useMemo(()=>{const D=new Set(e.map(H=>H.module));return Array.from(D).sort()},[e]),E=D=>{switch(D){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},T=D=>{switch(D){case"DEBUG":return"bg-secondary/50";case"INFO":return"bg-blue-500/10 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-500/10 dark:bg-yellow-500/20";case"ERROR":return"bg-red-500/10 dark:bg-red-500/20";case"CRITICAL":return"bg-red-600/20 dark:bg-red-600/30";default:return"bg-muted/50"}},C=()=>{window.location.reload()},k=()=>{$c.clearLogs(),t([])},O=()=>{const D=z.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` -`),H=new Blob([D],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(H),F=document.createElement("a");F.href=V,F.download=`logs-${uv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,F.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},I=()=>{f(void 0),p(void 0)},z=y.useMemo(()=>e.filter(D=>{const H=n===""||D.message.toLowerCase().includes(n.toLowerCase())||D.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||D.level===a,F=l==="all"||D.module===l;let G=!0;if(d||m){const L=new Date(D.timestamp);if(d){const R=new Date(d);R.setHours(0,0,0,0),G=G&&L>=R}if(m){const R=new Date(m);R.setHours(23,59,59,999),G=G&&L<=R}}return H&&V&&F&&G}),[e,n,a,l,d,m]);return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:de("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(st,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索日志...",value:n,onChange:D=>r(D.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(Et,{value:a,onValueChange:o,children:[i.jsxs(wt,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(GN,{className:"h-4 w-4 mr-2"}),i.jsx(At,{placeholder:"级别"})]}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部级别"}),i.jsx(Me,{value:"DEBUG",children:"DEBUG"}),i.jsx(Me,{value:"INFO",children:"INFO"}),i.jsx(Me,{value:"WARNING",children:"WARNING"}),i.jsx(Me,{value:"ERROR",children:"ERROR"}),i.jsx(Me,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(Et,{value:l,onValueChange:u,children:[i.jsxs(wt,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(GN,{className:"h-4 w-4 mr-2"}),i.jsx(At,{placeholder:"模块"})]}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部模块"}),A.map(D=>i.jsx(Me,{value:D,children:D},D))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(ts,{children:[i.jsx(ns,{asChild:!0,children:i.jsxs(ue,{variant:"outline",size:"sm",className:de("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(UI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?uv(d,"PPP",{locale:Vp}):"开始日期"})]})}),i.jsx(so,{className:"w-auto p-0",align:"start",children:i.jsx(zL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:Vp})})]}),i.jsxs(ts,{children:[i.jsx(ns,{asChild:!0,children:i.jsxs(ue,{variant:"outline",size:"sm",className:de("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(UI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?uv(m,"PPP",{locale:Vp}):"结束日期"})]})}),i.jsx(so,{className:"w-auto p-0",align:"start",children:i.jsx(zL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:Vp})})]}),(d||m)&&i.jsxs(ue,{variant:"outline",size:"sm",onClick:I,className:"w-full sm:w-auto h-9",children:[i.jsx(Bh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(ue,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(Gve,{className:"h-4 w-4"}):i.jsx(Xve,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(sl,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(Tt,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(ue,{variant:"outline",size:"sm",onClick:O,className:"flex-1 sm:flex-none h-9",children:[i.jsx(WN,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[z.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(st,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Vt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:w,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[z.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):z.map(D=>i.jsxs("div",{className:de("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",T(D.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:D.timestamp}),i.jsxs("span",{className:de("text-xs font-semibold",E(D.level)),children:["[",D.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:D.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:D.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:D.timestamp}),i.jsxs("span",{className:de("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",E(D.level)),children:["[",D.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:D.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:D.message})]})]},D.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const hCe="Mai-with-u",mCe="plugin-repo",pCe="main",vCe="plugin_details.json";async function gCe(){try{const e=await Qe("/api/webui/plugins/fetch-raw",{method:"POST",headers:lt(),body:JSON.stringify({owner:hCe,repo:mCe,branch:pCe,file_path:vCe})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function yCe(){try{const e=await Qe("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function xCe(){try{const e=await Qe("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function bCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,o=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function wCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const o=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(o)},3e4)},a.onmessage=o=>{try{if(o.data==="pong")return;const l=JSON.parse(o.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=o=>{console.error("Plugin progress WebSocket error:",o),t?.(o)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function Gp(){try{const e=await Qe("/api/webui/plugins/installed",{headers:lt()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function Yp(e,t){return t.some(n=>n.id===e)}function Kp(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function jCe(e,t,n="main"){const r=await Qe("/api/webui/plugins/install",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function SCe(e){const t=await Qe("/api/webui/plugins/uninstall",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function _Ce(e,t,n="main"){const r=await Qe("/api/webui/plugins/update",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}function NCe(){const e=oa(),[t,n]=y.useState(null),[r,a]=y.useState(""),[o,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[b,w]=y.useState(null),[N,A]=y.useState(null),[E,T]=y.useState(null),[C,k]=y.useState(null),[,O]=y.useState([]),{toast:M}=mr();y.useEffect(()=>{let R=null,U=!1;return(async()=>{if(R=wCe(te=>{U||(T(te),te.stage==="success"?setTimeout(()=>{U||T(null)},2e3):te.stage==="error"&&(j(!1),w(te.error||"加载失败")))},te=>{console.error("WebSocket error:",te),U||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(te=>{if(!R){te();return}const $=()=>{R&&R.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),te()):R&&R.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),te()):setTimeout($,100)};$()}),!U){const te=await yCe();A(te),te.installed||M({title:"Git 未安装",description:te.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!U){const te=await xCe();k(te)}if(!U)try{j(!0),w(null);const te=await gCe();if(!U){const $=await Gp();O($);const B=te.map(Y=>{const ne=Yp(Y.id,$),oe=Kp(Y.id,$);return{...Y,installed:ne,installed_version:oe}});for(const Y of $)!B.some(oe=>oe.id===Y.id)&&Y.manifest&&B.push({id:Y.id,manifest:{manifest_version:Y.manifest.manifest_version||1,name:Y.manifest.name,version:Y.manifest.version,description:Y.manifest.description||"",author:Y.manifest.author,license:Y.manifest.license||"Unknown",host_application:Y.manifest.host_application,homepage_url:Y.manifest.homepage_url,repository_url:Y.manifest.repository_url,keywords:Y.manifest.keywords||[],categories:Y.manifest.categories||[],default_locale:Y.manifest.default_locale||"zh-CN",locales_path:Y.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:Y.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(B)}}catch(te){if(!U){const $=te instanceof Error?te.message:"加载插件列表失败";w($),M({title:"加载失败",description:$,variant:"destructive"})}}finally{U||j(!1)}})(),()=>{U=!0,R&&R.close()}},[M]);const I=R=>{if(!R.installed&&C&&!z(R))return i.jsxs(Dt,{variant:"destructive",className:"gap-1",children:[i.jsx(bg,{className:"h-3 w-3"}),"不兼容"]});if(R.installed){const U=R.installed_version?.trim(),K=R.manifest.version?.trim();if(U!==K){const te=U?.split(".").map(Number)||[0,0,0],$=K?.split(".").map(Number)||[0,0,0];for(let B=0;B<3;B++){if(($[B]||0)>(te[B]||0))return i.jsxs(Dt,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(bg,{className:"h-3 w-3"}),"可更新"]});if(($[B]||0)<(te[B]||0))break}}return i.jsxs(Dt,{variant:"default",className:"gap-1",children:[i.jsx(Vo,{className:"h-3 w-3"}),"已安装"]})}return null},z=R=>!C||!R.manifest?.host_application?!0:bCe(R.manifest.host_application.min_version,R.manifest.host_application.max_version,C),D=R=>{if(!R.installed||!R.installed_version||!R.manifest?.version)return!1;const U=R.installed_version.trim(),K=R.manifest.version.trim();if(U===K)return!1;const te=U.split(".").map(Number),$=K.split(".").map(Number);for(let B=0;B<3;B++){if(($[B]||0)>(te[B]||0))return!0;if(($[B]||0)<(te[B]||0))return!1}return!1},H=p.filter(R=>{if(!R.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",R.id),!1;const U=r===""||R.manifest.name?.toLowerCase().includes(r.toLowerCase())||R.manifest.description?.toLowerCase().includes(r.toLowerCase())||R.manifest.keywords&&R.manifest.keywords.some(B=>B.toLowerCase().includes(r.toLowerCase())),K=o==="all"||R.manifest.categories&&R.manifest.categories.includes(o);let te=!0;u==="installed"?te=R.installed===!0:u==="updates"&&(te=R.installed===!0&&D(R));const $=!f||!C||z(R);return U&&K&&te&&$}),V=()=>{n(null)},F=async R=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!z(R)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await jCe(R.id,R.manifest.repository_url||"","main"),M({title:"安装成功",description:`${R.manifest.name} 已成功安装`});const U=await Gp();O(U),g(K=>K.map(te=>{if(te.id===R.id){const $=Yp(te.id,U),B=Kp(te.id,U);return{...te,installed:$,installed_version:B}}return te}))}catch(U){M({title:"安装失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},G=async R=>{try{await SCe(R.id),M({title:"卸载成功",description:`${R.manifest.name} 已成功卸载`});const U=await Gp();O(U),g(K=>K.map(te=>{if(te.id===R.id){const $=Yp(te.id,U),B=Kp(te.id,U);return{...te,installed:$,installed_version:B}}return te}))}catch(U){M({title:"卸载失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},L=async R=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const U=await _Ce(R.id,R.manifest.repository_url||"","main");M({title:"更新成功",description:`${R.manifest.name} 已从 ${U.old_version} 更新到 ${U.new_version}`});const K=await Gp();O(K),g(te=>te.map($=>{if($.id===R.id){const B=Yp($.id,K),Y=Kp($.id,K);return{...$,installed:B,installed_version:Y}}return $}))}catch(U){M({title:"更新失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(ue,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(sge,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(st,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(qt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Gc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(Ft,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(er,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(on,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(st,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索插件...",value:r,onChange:R=>a(R.target.value),className:"pl-9"})]}),i.jsxs(Et,{value:o,onValueChange:l,children:[i.jsx(wt,{className:"w-full sm:w-[200px]",children:i.jsx(At,{placeholder:"选择分类"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部分类"}),i.jsx(Me,{value:"Developer Tools",children:"开发工具"}),i.jsx(Me,{value:"AI Enhancement",children:"AI 增强"}),i.jsx(Me,{value:"Utility",children:"工具类"}),i.jsx(Me,{value:"Entertainment",children:"娱乐"}),i.jsx(Me,{value:"Integration",children:"集成"}),i.jsx(Me,{value:"Data Analysis",children:"数据分析"}),i.jsx(Me,{value:"Automation",children:"自动化"}),i.jsx(Me,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(rs,{id:"compatible-only",checked:f,onCheckedChange:R=>m(R===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(ul,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(Qo,{className:"grid w-full grid-cols-3",children:[i.jsxs(Ot,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Ot,{value:"installed",children:["已安装 (",p.filter(R=>R.installed).length,")"]}),i.jsxs(Ot,{value:"updates",children:["可更新 (",p.filter(R=>R.installed&&D(R)).length,")"]})]})}),E&&E.stage==="loading"&&i.jsx(st,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(KN,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[E.operation==="fetch"&&"加载插件列表",E.operation==="install"&&`安装插件${E.plugin_id?`: ${E.plugin_id}`:""}`,E.operation==="uninstall"&&`卸载插件${E.plugin_id?`: ${E.plugin_id}`:""}`,E.operation==="update"&&`更新插件${E.plugin_id?`: ${E.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[E.progress,"%"]})]}),i.jsx(fE,{value:E.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:E.message}),E.operation==="fetch"&&E.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",E.loaded_plugins," / ",E.total_plugins," 个插件"]})]})}),E&&E.stage==="error"&&E.error&&i.jsx(st,{className:"border-destructive bg-destructive/10",children:i.jsx(qt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Gc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(Ft,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(er,{className:"text-destructive/80",children:E.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(KN,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):b?i.jsx(st,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Gc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:b}),i.jsx(ue,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):H.length===0?i.jsx(st,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Dr,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||o!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:H.map(R=>i.jsxs(st,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(qt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(Ft,{className:"text-xl",children:R.manifest?.name||R.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[R.manifest?.categories&&R.manifest.categories[0]&&i.jsx(Dt,{variant:"secondary",className:"text-xs whitespace-nowrap",children:R.manifest.categories[0]}),I(R)]})]}),i.jsx(er,{className:"line-clamp-2",children:R.manifest?.description||"无描述"})]}),i.jsx(on,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(WN,{className:"h-4 w-4"}),i.jsx("span",{children:R.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(VI,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:R.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[R.manifest?.keywords&&R.manifest.keywords.slice(0,3).map(U=>i.jsx(Dt,{variant:"outline",className:"text-xs",children:U},U)),R.manifest?.keywords&&R.manifest.keywords.length>3&&i.jsxs(Dt,{variant:"outline",className:"text-xs",children:["+",R.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",R.manifest?.version||"unknown"," · ",R.manifest?.author?.name||"Unknown"]}),R.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[R.manifest.host_application.min_version,R.manifest.host_application.max_version?` - ${R.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(W5,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(ue,{variant:"outline",size:"sm",onClick:()=>n(R),children:"查看详情"}),R.installed?D(R)?i.jsxs(ue,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>L(R),children:[i.jsx(sl,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(ue,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(R),children:[i.jsx(Tt,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(ue,{size:"sm",disabled:!N?.installed||E?.operation==="install"||C!==null&&!z(R),title:N?.installed?C!==null&&!z(R)?`不兼容当前版本 (需要 ${R.manifest?.host_application?.min_version||"未知"}${R.manifest?.host_application?.max_version?` - ${R.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>F(R),children:[i.jsx(WN,{className:"h-4 w-4 mr-1"}),E?.operation==="install"&&E?.plugin_id===R.id?"安装中...":"安装"]})]})})]},R.id))}),i.jsx(nr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Wn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Vn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(dr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(av,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Dt,{variant:"secondary",children:t.manifest.categories[0]}),I(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(VI,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(R=>i.jsx(Dt,{variant:"outline",children:R},R))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs($r,{children:[t.manifest.homepage_url&&i.jsxs(ue,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(av,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(ue,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(av,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function CCe(){const e=oa(),{toast:t}=mr(),[n,r]=y.useState([]),[a,o]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,b]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),w=y.useCallback(async()=>{try{o(!0),u(null);const O=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${O}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const I=await M.json();r(I.mirrors||[])}catch(O){const M=O instanceof Error?O.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{o(!1)}},[t]);y.useEffect(()=>{w()},[w]);const N=async()=>{try{const O=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${O}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const I=await M.json();throw new Error(I.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),b({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),w()}catch(O){t({title:"添加失败",description:O instanceof Error?O.message:"未知错误",variant:"destructive"})}},A=async()=>{if(d)try{const O=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${O}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),w()}catch(O){t({title:"更新失败",description:O instanceof Error?O.message:"未知错误",variant:"destructive"})}},E=async O=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${O}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),w()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},T=async O=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${O.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!O.enabled})})).ok)throw new Error("更新状态失败");w()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=O=>{f(O),b({id:O.id,name:O.name,raw_prefix:O.raw_prefix,clone_prefix:O.clone_prefix,enabled:O.enabled,priority:O.priority}),x(!0)},k=async(O,M)=>{const I=M==="up"?O.priority-1:O.priority+1;if(!(I<1))try{const z=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${O.id}`,{method:"PUT",headers:{Authorization:`Bearer ${z}`,"Content-Type":"application/json"},body:JSON.stringify({priority:I})})).ok)throw new Error("更新优先级失败");w()}catch(z){t({title:"更新失败",description:z instanceof Error?z.message:"未知错误",variant:"destructive"})}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(ue,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(Xq,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(ue,{onClick:()=>p(!0),children:[i.jsx(tr,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(st,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(KN,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(st,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Gc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(ue,{onClick:w,children:"重新加载"})]})}):i.jsxs(st,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"状态"}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"ID"}),i.jsx(Ze,{children:"优先级"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n.map(O=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(at,{checked:O.enabled,onCheckedChange:()=>T(O)})}),i.jsx(Ue,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:O.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",O.raw_prefix]})]})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:"outline",children:O.id})}),i.jsx(Ue,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:O.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(ue,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(O,"up"),disabled:O.priority===1,children:i.jsx(FN,{className:"h-3 w-3"})}),i.jsx(ue,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(O,"down"),children:i.jsx(uh,{className:"h-3 w-3"})})]})]})}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(ue,{variant:"ghost",size:"icon",onClick:()=>C(O),children:i.jsx(Au,{className:"h-4 w-4"})}),i.jsx(ue,{variant:"ghost",size:"icon",onClick:()=>E(O.id),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},O.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(O=>i.jsx(st,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:O.name}),O.enabled&&i.jsx(Dt,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Dt,{variant:"outline",className:"mt-1 text-xs",children:O.id})]}),i.jsx(at,{checked:O.enabled,onCheckedChange:()=>T(O)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:O.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:O.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(ue,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(O),children:[i.jsx(Au,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(ue,{variant:"outline",size:"sm",onClick:()=>k(O,"up"),disabled:O.priority===1,children:i.jsx(FN,{className:"h-4 w-4"})}),i.jsx(ue,{variant:"outline",size:"sm",onClick:()=>k(O,"down"),children:i.jsx(uh,{className:"h-4 w-4"})}),i.jsx(ue,{variant:"destructive",size:"sm",onClick:()=>E(O.id),children:i.jsx(Tt,{className:"h-4 w-4"})})]})]})},O.id))})]}),i.jsx(nr,{open:m,onOpenChange:p,children:i.jsxs(Hn,{className:"max-w-lg",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"添加镜像源"}),i.jsx(dr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ne,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:O=>b({...j,id:O.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ne,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:O=>b({...j,name:O.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:O=>b({...j,raw_prefix:O.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:O=>b({...j,clone_prefix:O.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ne,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:O=>b({...j,priority:parseInt(O.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"add-enabled",checked:j.enabled,onCheckedChange:O=>b({...j,enabled:O})}),i.jsx(J,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(ue,{onClick:N,children:"添加"})]})]})}),i.jsx(nr,{open:g,onOpenChange:x,children:i.jsxs(Hn,{className:"max-w-lg",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑镜像源"}),i.jsx(dr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"镜像源 ID"}),i.jsx(Ne,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ne,{id:"edit-name",value:j.name,onChange:O=>b({...j,name:O.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"edit-raw",value:j.raw_prefix,onChange:O=>b({...j,raw_prefix:O.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"edit-clone",value:j.clone_prefix,onChange:O=>b({...j,clone_prefix:O.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ne,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:O=>b({...j,priority:parseInt(O.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"edit-enabled",checked:j.enabled,onCheckedChange:O=>b({...j,enabled:O})}),i.jsx(J,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs($r,{children:[i.jsx(ue,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(ue,{onClick:A,children:"保存"})]})]})})]})})}const OCe=qh("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),XH=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},o)=>i.jsx("kbd",{className:de(OCe({size:t,className:e})),ref:o,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));XH.displayName="Kbd";const ECe=[{icon:Sg,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:XO,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:tF,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:Zq,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:QO,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:Lh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:Qq,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:rve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:Jq,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:wg,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Vc,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function ACe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,o]=y.useState(0),l=oa(),u=ECe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),o(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),o(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),o(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(nr,{open:e,onOpenChange:t,children:i.jsxs(Hn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Wn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Vn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ne,{value:n,onChange:m=>{r(m.target.value),o(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Vt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>o(p),className:de("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Dr,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function TCe(e){const t=kCe(e),n=y.forwardRef((r,a)=>{const{children:o,...l}=r,u=y.Children.toArray(o),d=u.find(PCe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:o})});return n.displayName=`${e}.Slot`,n}function kCe(e){const t=y.forwardRef((n,r)=>{const{children:a,...o}=n;if(y.isValidElement(a)){const l=DCe(a),u=RCe(o,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var MCe=Symbol("radix.slottable");function PCe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===MCe}function RCe(e,t){const n={...t};for(const r in t){const a=e[r],o=t[r];/^on[A-Z]/.test(r)?a&&o?n[r]=(...u)=>{const d=o(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...o}:r==="className"&&(n[r]=[a,o].filter(Boolean).join(" "))}return{...e,...n}}function DCe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var vC=["Enter"," "],$Ce=["ArrowDown","PageUp","Home"],ZH=["ArrowUp","PageDown","End"],ICe=[...$Ce,...ZH],LCe={ltr:[...vC,"ArrowRight"],rtl:[...vC,"ArrowLeft"]},BCe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Jh="Menu",[yh,zCe,qCe]=Ch(Jh),[Pl,QH]=hr(Jh,[qCe,us,Ug]),em=us(),JH=Ug(),[e9,vs]=Pl(Jh),[FCe,tm]=Pl(Jh),t9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:o,modal:l=!0}=e,u=em(t),[d,f]=y.useState(null),m=y.useRef(!1),p=nn(o),g=Lu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(Wh,{...u,children:i.jsx(e9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(FCe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};t9.displayName=Jh;var UCe="MenuAnchor",kE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=em(n);return i.jsx(Vh,{...a,...r,ref:t})});kE.displayName=UCe;var ME="MenuPortal",[HCe,n9]=Pl(ME,{forceMount:void 0}),r9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,o=vs(ME,t);return i.jsx(HCe,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||o.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};r9.displayName=ME;var _a="MenuContent",[WCe,PE]=Pl(_a),a9=y.forwardRef((e,t)=>{const n=n9(_a,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,o=vs(_a,e.__scopeMenu),l=tm(_a,e.__scopeMenu);return i.jsx(yh.Provider,{scope:e.__scopeMenu,children:i.jsx(Rn,{present:r||o.open,children:i.jsx(yh.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(VCe,{...a,ref:t}):i.jsx(GCe,{...a,ref:t})})})})}),VCe=y.forwardRef((e,t)=>{const n=vs(_a,e.__scopeMenu),r=y.useRef(null),a=qe(t,r);return y.useEffect(()=>{const o=r.current;if(o)return Dy(o)},[]),i.jsx(RE,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Se(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),GCe=y.forwardRef((e,t)=>{const n=vs(_a,e.__scopeMenu);return i.jsx(RE,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),YCe=TCe("MenuContent.ScrollLock"),RE=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...b}=e,w=vs(_a,n),N=tm(_a,n),A=em(n),E=JH(n),T=zCe(n),[C,k]=y.useState(null),O=y.useRef(null),M=qe(t,O,w.onContentChange),I=y.useRef(0),z=y.useRef(""),D=y.useRef(0),H=y.useRef(null),V=y.useRef("right"),F=y.useRef(0),G=j?Uh:y.Fragment,L=j?{as:YCe,allowPinchZoom:!0}:void 0,R=K=>{const te=z.current+K,$=T().filter(ee=>!ee.disabled),B=document.activeElement,Y=$.find(ee=>ee.ref.current===B)?.textValue,ne=$.map(ee=>ee.textValue),oe=oOe(ne,te,Y),xe=$.find(ee=>ee.textValue===oe)?.ref.current;(function ee(ae){z.current=ae,window.clearTimeout(I.current),ae!==""&&(I.current=window.setTimeout(()=>ee(""),1e3))})(te),xe&&setTimeout(()=>xe.focus())};y.useEffect(()=>()=>window.clearTimeout(I.current),[]),Py();const U=y.useCallback(K=>V.current===H.current?.side&&lOe(K,H.current?.area),[]);return i.jsx(WCe,{scope:n,searchRef:z,onItemEnter:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),onItemLeave:y.useCallback(K=>{U(K)||(O.current?.focus(),k(null))},[U]),onTriggerLeave:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),pointerGraceTimerRef:D,onPointerGraceIntentChange:y.useCallback(K=>{H.current=K},[]),children:i.jsx(G,{...L,children:i.jsx(Fh,{asChild:!0,trapped:a,onMountAutoFocus:Se(o,K=>{K.preventDefault(),O.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(Z5,{asChild:!0,...E,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:Se(d,K=>{N.isUsingKeyboardRef.current||K.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Hy,{role:"menu","aria-orientation":"vertical","data-state":w9(w.open),"data-radix-menu-content":"",dir:N.dir,...A,...b,ref:M,style:{outline:"none",...b.style},onKeyDown:Se(b.onKeyDown,K=>{const $=K.target.closest("[data-radix-menu-content]")===K.currentTarget,B=K.ctrlKey||K.altKey||K.metaKey,Y=K.key.length===1;$&&(K.key==="Tab"&&K.preventDefault(),!B&&Y&&R(K.key));const ne=O.current;if(K.target!==ne||!ICe.includes(K.key))return;K.preventDefault();const xe=T().filter(ee=>!ee.disabled).map(ee=>ee.ref.current);ZH.includes(K.key)&&xe.reverse(),aOe(xe)}),onBlur:Se(e.onBlur,K=>{K.currentTarget.contains(K.target)||(window.clearTimeout(I.current),z.current="")}),onPointerMove:Se(e.onPointerMove,xh(K=>{const te=K.target,$=F.current!==K.clientX;if(K.currentTarget.contains(te)&&$){const B=K.clientX>F.current?"right":"left";V.current=B,F.current=K.clientX}}))})})})})})})});a9.displayName=_a;var KCe="MenuGroup",DE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{role:"group",...r,ref:t})});DE.displayName=KCe;var XCe="MenuLabel",i9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});i9.displayName=XCe;var Pg="MenuItem",FL="menu.itemSelect",ex=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,o=y.useRef(null),l=tm(Pg,e.__scopeMenu),u=PE(Pg,e.__scopeMenu),d=qe(t,o),f=y.useRef(!1),m=()=>{const p=o.current;if(!n&&p){const g=new CustomEvent(FL,{bubbles:!0,cancelable:!0});p.addEventListener(FL,x=>r?.(x),{once:!0}),LC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(o9,{...a,ref:d,disabled:n,onClick:Se(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:Se(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:Se(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||vC.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});ex.displayName=Pg;var o9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...o}=e,l=PE(Pg,n),u=JH(n),d=y.useRef(null),f=qe(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[o.children]),i.jsx(yh.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(Q5,{asChild:!0,...u,focusable:!r,children:i.jsx(Pe.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...o,ref:f,onPointerMove:Se(e.onPointerMove,xh(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Se(e.onPointerLeave,xh(j=>l.onItemLeave(j))),onFocus:Se(e.onFocus,()=>p(!0)),onBlur:Se(e.onBlur,()=>p(!1))})})})}),ZCe="MenuCheckboxItem",s9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(f9,{scope:e.__scopeMenu,checked:n,children:i.jsx(ex,{role:"menuitemcheckbox","aria-checked":Rg(n)?"mixed":n,...a,ref:t,"data-state":LE(n),onSelect:Se(a.onSelect,()=>r?.(Rg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});s9.displayName=ZCe;var l9="MenuRadioGroup",[QCe,JCe]=Pl(l9,{value:void 0,onValueChange:()=>{}}),c9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,o=nn(r);return i.jsx(QCe,{scope:e.__scopeMenu,value:n,onValueChange:o,children:i.jsx(DE,{...a,ref:t})})});c9.displayName=l9;var u9="MenuRadioItem",d9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=JCe(u9,e.__scopeMenu),o=n===a.value;return i.jsx(f9,{scope:e.__scopeMenu,checked:o,children:i.jsx(ex,{role:"menuitemradio","aria-checked":o,...r,ref:t,"data-state":LE(o),onSelect:Se(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});d9.displayName=u9;var $E="MenuItemIndicator",[f9,eOe]=Pl($E,{checked:!1}),h9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,o=eOe($E,n);return i.jsx(Rn,{present:r||Rg(o.checked)||o.checked===!0,children:i.jsx(Pe.span,{...a,ref:t,"data-state":LE(o.checked)})})});h9.displayName=$E;var tOe="MenuSeparator",m9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});m9.displayName=tOe;var nOe="MenuArrow",p9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=em(n);return i.jsx(Wy,{...a,...r,ref:t})});p9.displayName=nOe;var IE="MenuSub",[rOe,v9]=Pl(IE),g9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,o=vs(IE,t),l=em(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=nn(a);return y.useEffect(()=>(o.open===!1&&p(!1),()=>p(!1)),[o.open,p]),i.jsx(Wh,{...l,children:i.jsx(e9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(rOe,{scope:t,contentId:Fn(),triggerId:Fn(),trigger:u,onTriggerChange:d,children:n})})})};g9.displayName=IE;var pf="MenuSubTrigger",y9=y.forwardRef((e,t)=>{const n=vs(pf,e.__scopeMenu),r=tm(pf,e.__scopeMenu),a=v9(pf,e.__scopeMenu),o=PE(pf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=o,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(kE,{asChild:!0,...f,children:i.jsx(o9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":w9(n.open),...e,ref:Rr(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Se(e.onPointerMove,xh(p=>{o.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(o.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:Se(e.onPointerLeave,xh(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",b=j?-5:5,w=g[j?"left":"right"],N=g[j?"right":"left"];o.onPointerGraceIntentChange({area:[{x:p.clientX+b,y:p.clientY},{x:w,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:w,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(p),p.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Se(e.onKeyDown,p=>{const g=o.searchRef.current!=="";e.disabled||g&&p.key===" "||LCe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});y9.displayName=pf;var x9="MenuSubContent",b9=y.forwardRef((e,t)=>{const n=n9(_a,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,o=vs(_a,e.__scopeMenu),l=tm(_a,e.__scopeMenu),u=v9(x9,e.__scopeMenu),d=y.useRef(null),f=qe(t,d);return i.jsx(yh.Provider,{scope:e.__scopeMenu,children:i.jsx(Rn,{present:r||o.open,children:i.jsx(yh.Slot,{scope:e.__scopeMenu,children:i.jsx(RE,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:Se(e.onFocusOutside,m=>{m.target!==u.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Se(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:Se(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=BCe[l.dir].includes(m.key);p&&g&&(o.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});b9.displayName=x9;function w9(e){return e?"open":"closed"}function Rg(e){return e==="indeterminate"}function LE(e){return Rg(e)?"indeterminate":e?"checked":"unchecked"}function aOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function iOe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function oOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let l=iOe(e,Math.max(o,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function sOe(e,t){const{x:n,y:r}=e;let a=!1;for(let o=0,l=t.length-1;or!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function lOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return sOe(n,t)}function xh(e){return t=>t.pointerType==="mouse"?e(t):void 0}var cOe=t9,uOe=kE,dOe=r9,fOe=a9,hOe=DE,mOe=i9,pOe=ex,vOe=s9,gOe=c9,yOe=d9,xOe=h9,bOe=m9,wOe=p9,jOe=g9,SOe=y9,_Oe=b9,BE="ContextMenu",[NOe]=hr(BE,[QH]),pr=QH(),[COe,j9]=NOe(BE),S9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:o=!0}=e,[l,u]=y.useState(!1),d=pr(t),f=nn(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(COe,{scope:t,open:l,onOpenChange:m,modal:o,children:i.jsx(cOe,{...d,dir:a,open:l,onOpenChange:m,modal:o,children:n})})};S9.displayName=BE;var _9="ContextMenuTrigger",N9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,o=j9(_9,n),l=pr(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},o.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(uOe,{...l,virtualRef:d}),i.jsx(Pe.span,{"data-state":o.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:Se(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:Se(e.onPointerDown,Xp(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:Se(e.onPointerMove,Xp(m)),onPointerCancel:r?e.onPointerCancel:Se(e.onPointerCancel,Xp(m)),onPointerUp:r?e.onPointerUp:Se(e.onPointerUp,Xp(m))})]})});N9.displayName=_9;var OOe="ContextMenuPortal",C9=e=>{const{__scopeContextMenu:t,...n}=e,r=pr(t);return i.jsx(dOe,{...r,...n})};C9.displayName=OOe;var O9="ContextMenuContent",E9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=j9(O9,n),o=pr(n),l=y.useRef(!1);return i.jsx(fOe,{...o,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});E9.displayName=O9;var EOe="ContextMenuGroup",AOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(hOe,{...a,...r,ref:t})});AOe.displayName=EOe;var TOe="ContextMenuLabel",A9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(mOe,{...a,...r,ref:t})});A9.displayName=TOe;var kOe="ContextMenuItem",T9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(pOe,{...a,...r,ref:t})});T9.displayName=kOe;var MOe="ContextMenuCheckboxItem",k9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(vOe,{...a,...r,ref:t})});k9.displayName=MOe;var POe="ContextMenuRadioGroup",ROe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(gOe,{...a,...r,ref:t})});ROe.displayName=POe;var DOe="ContextMenuRadioItem",M9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(yOe,{...a,...r,ref:t})});M9.displayName=DOe;var $Oe="ContextMenuItemIndicator",P9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(xOe,{...a,...r,ref:t})});P9.displayName=$Oe;var IOe="ContextMenuSeparator",R9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(bOe,{...a,...r,ref:t})});R9.displayName=IOe;var LOe="ContextMenuArrow",BOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(wOe,{...a,...r,ref:t})});BOe.displayName=LOe;var D9="ContextMenuSub",$9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:o}=e,l=pr(t),[u,d]=Na({prop:a,defaultProp:o??!1,onChange:r,caller:D9});return i.jsx(jOe,{...l,open:u,onOpenChange:d,children:n})};$9.displayName=D9;var zOe="ContextMenuSubTrigger",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(SOe,{...a,...r,ref:t})});I9.displayName=zOe;var qOe="ContextMenuSubContent",L9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(_Oe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});L9.displayName=qOe;function Xp(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var FOe=S9,UOe=N9,HOe=C9,B9=E9,z9=A9,q9=T9,F9=k9,U9=M9,H9=P9,W9=R9,WOe=$9,V9=I9,G9=L9;const VOe=FOe,GOe=UOe,YOe=WOe,Y9=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(V9,{ref:a,className:de("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(KO,{className:"ml-auto h-4 w-4"})]}));Y9.displayName=V9.displayName;const K9=y.forwardRef(({className:e,...t},n)=>i.jsx(G9,{ref:n,className:de("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));K9.displayName=G9.displayName;const X9=y.forwardRef(({className:e,...t},n)=>i.jsx(HOe,{children:i.jsx(B9,{ref:n,className:de("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));X9.displayName=B9.displayName;const Da=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(q9,{ref:r,className:de("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));Da.displayName=q9.displayName;const KOe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(F9,{ref:a,className:de("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(H9,{children:i.jsx(il,{className:"h-4 w-4"})})}),t]}));KOe.displayName=F9.displayName;const XOe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(U9,{ref:r,className:de("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(H9,{children:i.jsx(yve,{className:"h-2 w-2 fill-current"})})}),t]}));XOe.displayName=U9.displayName;const ZOe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(z9,{ref:r,className:de("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));ZOe.displayName=z9.displayName;const vf=y.forwardRef(({className:e,...t},n)=>i.jsx(W9,{ref:n,className:de("-mx-1 my-1 h-px bg-border",e),...t}));vf.displayName=W9.displayName;const Ic=({className:e,...t})=>i.jsx("span",{className:de("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});Ic.displayName="ContextMenuShortcut";var QOe=Symbol("radix.slottable");function JOe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=QOe,t}var[tx]=hr("Tooltip",[us]),nx=us(),Z9="TooltipProvider",eEe=700,gC="tooltip.open",[tEe,zE]=tx(Z9),Q9=e=>{const{__scopeTooltip:t,delayDuration:n=eEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:o}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(tEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:o})};Q9.displayName=Z9;var bh="Tooltip",[nEe,nm]=tx(bh),J9=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:o,disableHoverableContent:l,delayDuration:u}=e,d=zE(bh,e.__scopeTooltip),f=nx(t),[m,p]=y.useState(null),g=Fn(),x=y.useRef(0),j=l??d.disableHoverableContent,b=u??d.delayDuration,w=y.useRef(!1),[N,A]=Na({prop:r,defaultProp:a??!1,onChange:O=>{O?(d.onOpen(),document.dispatchEvent(new CustomEvent(gC))):d.onClose(),o?.(O)},caller:bh}),E=y.useMemo(()=>N?w.current?"delayed-open":"instant-open":"closed",[N]),T=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,w.current=!1,A(!0)},[A]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,A(!1)},[A]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{w.current=!0,A(!0),x.current=0},b)},[b,A]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(Wh,{...f,children:i.jsx(nEe,{scope:t,contentId:g,open:N,stateAttribute:E,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():T()},[d.isOpenDelayedRef,k,T]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:T,onClose:C,disableHoverableContent:j,children:n})})};J9.displayName=bh;var yC="TooltipTrigger",eW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=nm(yC,n),o=zE(yC,n),l=nx(n),u=y.useRef(null),d=qe(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(Vh,{asChild:!0,...l,children:i.jsx(Pe.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:Se(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!o.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:Se(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:Se(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:Se(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:Se(e.onBlur,a.onClose),onClick:Se(e.onClick,a.onClose)})})});eW.displayName=yC;var qE="TooltipPortal",[rEe,aEe]=tx(qE,{forceMount:void 0}),tW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,o=nm(qE,t);return i.jsx(rEe,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||o.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};tW.displayName=qE;var Pu="TooltipContent",nW=y.forwardRef((e,t)=>{const n=aEe(Pu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...o}=e,l=nm(Pu,e.__scopeTooltip);return i.jsx(Rn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(rW,{side:a,...o,ref:t}):i.jsx(iEe,{side:a,...o,ref:t})})}),iEe=y.forwardRef((e,t)=>{const n=nm(Pu,e.__scopeTooltip),r=zE(Pu,e.__scopeTooltip),a=y.useRef(null),o=qe(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,b)=>{const w=j.currentTarget,N={x:j.clientX,y:j.clientY},A=uEe(N,w.getBoundingClientRect()),E=dEe(N,A),T=fEe(b.getBoundingClientRect()),C=mEe([...E,...T]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=w=>x(w,m),b=w=>x(w,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",b),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",b)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=b=>{const w=b.target,N={x:b.clientX,y:b.clientY},A=d?.contains(w)||m?.contains(w),E=!hEe(N,l);A?g():E&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(rW,{...e,ref:o})}),[oEe,sEe]=tx(bh,{isInside:!1}),lEe=JOe("TooltipContent"),rW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:o,onPointerDownOutside:l,...u}=e,d=nm(Pu,n),f=nx(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(gC,m),()=>document.removeEventListener(gC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Hy,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(lEe,{children:r}),i.jsx(oEe,{scope:n,isInside:!0,children:i.jsx(fwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});nW.displayName=Pu;var aW="TooltipArrow",cEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=nx(n);return sEe(aW,n).isInside?null:i.jsx(Wy,{...a,...r,ref:t})});cEe.displayName=aW;function uEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,r,a,o)){case o:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function dEe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function fEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function hEe(e,t){const{x:n,y:r}=e;let a=!1;for(let o=0,l=t.length-1;or!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function mEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),pEe(t)}function pEe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const o=t[t.length-1],l=t[t.length-2];if((o.x-l.x)*(a.y-l.y)>=(o.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const o=n[n.length-1],l=n[n.length-2];if((o.x-l.x)*(a.y-l.y)>=(o.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var vEe=Q9,gEe=J9,yEe=eW,xEe=tW,iW=nW;const bEe=vEe,wEe=gEe,jEe=yEe,oW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(xEe,{children:i.jsx(iW,{ref:r,sideOffset:t,className:de("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));oW.displayName=iW.displayName;function SEe({children:e}){Vxe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[o,l]=y.useState(!1),{theme:u,setTheme:d}=JO(),f=BY(),m=oa();y.useEffect(()=>{const b=w=>{(w.metaKey||w.ctrlKey)&&w.key==="k"&&(w.preventDefault(),l(!0))};return window.addEventListener("keydown",b),()=>window.removeEventListener("keydown",b)},[]);const p=[{title:"概览",items:[{icon:Sg,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:XO,label:"麦麦主程序配置",path:"/config/bot"},{icon:tF,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:Zq,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:QO,label:"表情包管理",path:"/resource/emoji"},{icon:Lh,label:"表达方式管理",path:"/resource/expression"},{icon:Qq,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:Jq,label:"插件市场",path:"/plugins"},{icon:wg,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Vc,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(bEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:de("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:de("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:de("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:aye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:de("space-y-6",!t&&"lg:space-y-3"),children:p.map((b,w)=>i.jsxs("li",{children:[i.jsx("div",{className:de("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:b.title})}),!t&&w>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:b.items.map(N=>{const A=f({to:N.path}),E=N.icon,T=i.jsxs(i.Fragment,{children:[A&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:de("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(E,{className:de("h-5 w-5 flex-shrink-0",A&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:de("text-sm font-medium whitespace-nowrap transition-all duration-300",A&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(wEe,{children:[i.jsx(jEe,{asChild:!0,children:i.jsx(kC,{to:N.path,className:de("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",A?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:T})}),!t&&i.jsx(oW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},b.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(qve,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(YO,{className:de("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(XH,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(ACe,{open:o,onOpenChange:l}),i.jsxs(ue,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(Zpe,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:b=>{zge(x==="dark"?"light":"dark",d,b)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(ZN,{className:"h-5 w-5"}):i.jsx(XN,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(ue,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(WI,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(VOe,{children:[i.jsx(GOe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(X9,{className:"w-64",children:[i.jsxs(Da,{onClick:()=>m({to:"/"}),children:[i.jsx(Sg,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(Da,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Vc,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(Da,{onClick:()=>m({to:"/logs"}),children:[i.jsx(wg,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(vf,{}),i.jsxs(YOe,{children:[i.jsxs(Y9,{children:[i.jsx(eF,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(K9,{className:"w-48",children:[i.jsxs(Da,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(ZN,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(Ic,{children:"✓"})]}),i.jsxs(Da,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(XN,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(Ic,{children:"✓"})]}),i.jsxs(Da,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Vc,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(Ic,{children:"✓"})]})]})]}),i.jsx(vf,{}),i.jsxs(Da,{onClick:()=>window.location.reload(),children:[i.jsx(nge,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(Ic,{children:"⌘R"})]}),i.jsxs(Da,{onClick:()=>l(!0),children:[i.jsx(Dr,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(Ic,{children:"⌘K"})]}),i.jsx(vf,{}),i.jsxs(Da,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(av,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(vf,{}),i.jsxs(Da,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(WI,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const rm=TY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(MC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!h8())throw YL({to:"/auth"})}}),_Ee=fr({getParentRoute:()=>rm,path:"/auth",component:Gxe}),NEe=fr({getParentRoute:()=>rm,path:"/setup",component:jbe}),Aa=fr({getParentRoute:()=>rm,id:"protected",component:()=>i.jsx(SEe,{children:i.jsx(MC,{})})}),CEe=fr({getParentRoute:()=>Aa,path:"/",component:Lge}),OEe=fr({getParentRoute:()=>Aa,path:"/config/bot",component:dje}),EEe=fr({getParentRoute:()=>Aa,path:"/config/modelProvider",component:kje}),AEe=fr({getParentRoute:()=>Aa,path:"/config/model",component:i1e}),TEe=fr({getParentRoute:()=>Aa,path:"/resource/emoji",component:h1e}),kEe=fr({getParentRoute:()=>Aa,path:"/resource/expression",component:j1e}),MEe=fr({getParentRoute:()=>Aa,path:"/resource/person",component:k1e}),PEe=fr({getParentRoute:()=>Aa,path:"/logs",component:fCe}),REe=fr({getParentRoute:()=>Aa,path:"/plugins",component:NCe}),DEe=fr({getParentRoute:()=>Aa,path:"/plugin-mirrors",component:CCe}),$Ee=fr({getParentRoute:()=>Aa,path:"/settings",component:Bxe}),IEe=fr({getParentRoute:()=>rm,path:"*",component:j8}),LEe=rm.addChildren([_Ee,NEe,Aa.addChildren([CEe,OEe,EEe,AEe,TEe,kEe,MEe,REe,DEe,PEe,$Ee]),IEe]),BEe=zY({routeTree:LEe,defaultNotFoundComponent:j8});function zEe({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,o]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%"},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%"},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%"},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%"},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%"}}[u];m&&d.style.setProperty("--primary",m.hsl)}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),o(u)}};return i.jsx(aF.Provider,{...r,value:l,children:e})}function qEe({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[o,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;o?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(o))},[o,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:o,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(iF.Provider,{value:f,children:e})}var FE="ToastProvider",[UE,FEe,UEe]=Ch("Toast"),[sW]=hr("Toast",[UEe]),[HEe,rx]=sW(FE),lW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:o=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${FE}\`. Expected non-empty \`string\`.`),i.jsx(UE.Provider,{scope:t,children:i.jsx(HEe,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:o,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};lW.displayName=FE;var cW="ToastViewport",WEe=["F8"],xC="toast.viewportPause",bC="toast.viewportResume",uW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=WEe,label:a="Notifications ({hotkey})",...o}=e,l=rx(cW,n),u=FEe(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=qe(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const w=N=>{r.length!==0&&r.every(E=>N[E]||N.code===E)&&p.current?.focus()};return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[r]),y.useEffect(()=>{const w=d.current,N=p.current;if(j&&w&&N){const A=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(xC);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},E=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(bC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},T=k=>{!w.contains(k.relatedTarget)&&E()},C=()=>{w.contains(document.activeElement)||E()};return w.addEventListener("focusin",A),w.addEventListener("focusout",T),w.addEventListener("pointermove",A),w.addEventListener("pointerleave",C),window.addEventListener("blur",A),window.addEventListener("focus",E),()=>{w.removeEventListener("focusin",A),w.removeEventListener("focusout",T),w.removeEventListener("pointermove",A),w.removeEventListener("pointerleave",C),window.removeEventListener("blur",A),window.removeEventListener("focus",E)}}},[j,l.isClosePausedRef]);const b=y.useCallback(({tabbingDirection:w})=>{const A=u().map(E=>{const T=E.ref.current,C=[T,...aAe(T)];return w==="forwards"?C:C.reverse()});return(w==="forwards"?A.reverse():A).flat()},[u]);return y.useEffect(()=>{const w=p.current;if(w){const N=A=>{const E=A.altKey||A.ctrlKey||A.metaKey;if(A.key==="Tab"&&!E){const C=document.activeElement,k=A.shiftKey;if(A.target===w&&k){f.current?.focus();return}const I=b({tabbingDirection:k?"backwards":"forwards"}),z=I.findIndex(D=>D===C);l_(I.slice(z+1))?A.preventDefault():k?f.current?.focus():m.current?.focus()}};return w.addEventListener("keydown",N),()=>w.removeEventListener("keydown",N)}},[u,b]),i.jsxs(hye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(wC,{ref:f,onFocusFromOutsideViewport:()=>{const w=b({tabbingDirection:"forwards"});l_(w)}}),i.jsx(UE.Slot,{scope:n,children:i.jsx(Pe.ol,{tabIndex:-1,...o,ref:g})}),j&&i.jsx(wC,{ref:m,onFocusFromOutsideViewport:()=>{const w=b({tabbingDirection:"backwards"});l_(w)}})]})});uW.displayName=cW;var dW="ToastFocusProxy",wC=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,o=rx(dW,n);return i.jsx(Vy,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!o.viewport?.contains(u)&&r()}})});wC.displayName=dW;var am="Toast",VEe="toast.swipeStart",GEe="toast.swipeMove",YEe="toast.swipeCancel",KEe="toast.swipeEnd",fW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:o,...l}=e,[u,d]=Na({prop:r,defaultProp:a??!0,onChange:o,caller:am});return i.jsx(Rn,{present:n||u,children:i.jsx(QEe,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:nn(e.onPause),onResume:nn(e.onResume),onSwipeStart:Se(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Se(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:Se(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Se(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});fW.displayName=am;var[XEe,ZEe]=sW(am,{onClose(){}}),QEe=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:o,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,b=rx(am,n),[w,N]=y.useState(null),A=qe(t,F=>N(F)),E=y.useRef(null),T=y.useRef(null),C=a||b.duration,k=y.useRef(0),O=y.useRef(C),M=y.useRef(0),{onToastAdd:I,onToastRemove:z}=b,D=nn(()=>{w?.contains(document.activeElement)&&b.viewport?.focus(),l()}),H=y.useCallback(F=>{!F||F===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout(D,F))},[D]);y.useEffect(()=>{const F=b.viewport;if(F){const G=()=>{H(O.current),f?.()},L=()=>{const R=new Date().getTime()-k.current;O.current=O.current-R,window.clearTimeout(M.current),d?.()};return F.addEventListener(xC,L),F.addEventListener(bC,G),()=>{F.removeEventListener(xC,L),F.removeEventListener(bC,G)}}},[b.viewport,C,d,f,H]),y.useEffect(()=>{o&&!b.isClosePausedRef.current&&H(C)},[o,C,b.isClosePausedRef,H]),y.useEffect(()=>(I(),()=>z()),[I,z]);const V=y.useMemo(()=>w?xW(w):null,[w]);return b.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(JEe,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(XEe,{scope:n,onClose:D,children:wl.createPortal(i.jsx(UE.ItemSlot,{scope:n,children:i.jsx(fye,{asChild:!0,onEscapeKeyDown:Se(u,()=>{b.isFocusedToastEscapeKeyDownRef.current||D(),b.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx(Pe.li,{tabIndex:0,"data-state":o?"open":"closed","data-swipe-direction":b.swipeDirection,...j,ref:A,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Se(e.onKeyDown,F=>{F.key==="Escape"&&(u?.(F.nativeEvent),F.nativeEvent.defaultPrevented||(b.isFocusedToastEscapeKeyDownRef.current=!0,D()))}),onPointerDown:Se(e.onPointerDown,F=>{F.button===0&&(E.current={x:F.clientX,y:F.clientY})}),onPointerMove:Se(e.onPointerMove,F=>{if(!E.current)return;const G=F.clientX-E.current.x,L=F.clientY-E.current.y,R=!!T.current,U=["left","right"].includes(b.swipeDirection),K=["left","up"].includes(b.swipeDirection)?Math.min:Math.max,te=U?K(0,G):0,$=U?0:K(0,L),B=F.pointerType==="touch"?10:2,Y={x:te,y:$},ne={originalEvent:F,delta:Y};R?(T.current=Y,Zp(GEe,p,ne,{discrete:!1})):UL(Y,b.swipeDirection,B)?(T.current=Y,Zp(VEe,m,ne,{discrete:!1}),F.target.setPointerCapture(F.pointerId)):(Math.abs(G)>B||Math.abs(L)>B)&&(E.current=null)}),onPointerUp:Se(e.onPointerUp,F=>{const G=T.current,L=F.target;if(L.hasPointerCapture(F.pointerId)&&L.releasePointerCapture(F.pointerId),T.current=null,E.current=null,G){const R=F.currentTarget,U={originalEvent:F,delta:G};UL(G,b.swipeDirection,b.swipeThreshold)?Zp(KEe,x,U,{discrete:!0}):Zp(YEe,g,U,{discrete:!0}),R.addEventListener("click",K=>K.preventDefault(),{once:!0})}})})})}),b.viewport)})]}):null}),JEe=e=>{const{__scopeToast:t,children:n,...r}=e,a=rx(am,t),[o,l]=y.useState(!1),[u,d]=y.useState(!1);return nAe(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(El,{asChild:!0,children:i.jsx(Vy,{...r,children:o&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},eAe="ToastTitle",hW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});hW.displayName=eAe;var tAe="ToastDescription",mW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});mW.displayName=tAe;var pW="ToastAction",vW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(yW,{altText:n,asChild:!0,children:i.jsx(HE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${pW}\`. Expected non-empty \`string\`.`),null)});vW.displayName=pW;var gW="ToastClose",HE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=ZEe(gW,n);return i.jsx(yW,{asChild:!0,children:i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,a.onClose)})})});HE.displayName=gW;var yW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx(Pe.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function xW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),rAe(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",o=r.dataset.radixToastAnnounceExclude==="";if(!a)if(o){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...xW(r))}}),t}function Zp(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,o=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?LC(a,o):a.dispatchEvent(o)}var UL=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),o=r>a;return t==="left"||t==="right"?o&&r>n:!o&&a>n};function nAe(e=()=>{}){const t=nn(e);Un(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function rAe(e){return e.nodeType===e.ELEMENT_NODE}function aAe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function l_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var iAe=lW,bW=uW,wW=fW,jW=hW,SW=mW,_W=vW,NW=HE;const oAe=iAe,CW=y.forwardRef(({className:e,...t},n)=>i.jsx(bW,{ref:n,className:de("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));CW.displayName=bW.displayName;const sAe=qh("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),OW=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(wW,{ref:r,className:de(sAe({variant:t}),e),...n}));OW.displayName=wW.displayName;const lAe=y.forwardRef(({className:e,...t},n)=>i.jsx(_W,{ref:n,className:de("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));lAe.displayName=_W.displayName;const EW=y.forwardRef(({className:e,...t},n)=>i.jsx(NW,{ref:n,className:de("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Bh,{className:"h-4 w-4"})}));EW.displayName=NW.displayName;const AW=y.forwardRef(({className:e,...t},n)=>i.jsx(jW,{ref:n,className:de("text-sm font-semibold [&+div]:text-xs",e),...t}));AW.displayName=jW.displayName;const TW=y.forwardRef(({className:e,...t},n)=>i.jsx(SW,{ref:n,className:de("text-sm opacity-90",e),...t}));TW.displayName=SW.displayName;function cAe(){const{toasts:e}=mr();return i.jsxs(oAe,{children:[e.map(function({id:t,title:n,description:r,action:a,...o}){return i.jsxs(OW,{...o,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx(AW,{children:n}),r&&i.jsx(TW,{children:r})]}),a,i.jsx(EW,{})]},t)}),i.jsx(CW,{})]})}QV.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(zEe,{defaultTheme:"system",children:i.jsxs(qEe,{children:[i.jsx(UY,{router:BEe}),i.jsx(cAe,{})]})})})); diff --git a/webui/dist/index.html b/webui/dist/index.html index cbf4716b..0ecfe0da 100644 --- a/webui/dist/index.html +++ b/webui/dist/index.html @@ -5,8 +5,8 @@ MaiBot Dashboard - - + +
From 9eb893e831aa74b268b672ca79a7b99bd2ec0aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Wed, 19 Nov 2025 22:58:53 +0800 Subject: [PATCH 02/12] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=8E=A7=E5=88=B6=E8=B7=AF=E7=94=B1=EF=BC=8C=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=87=8D=E5=90=AF=E5=92=8C=E7=8A=B6=E6=80=81=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/webui/routers/system.py | 108 ++++++++++++++++++++++++++++++++++++ src/webui/routes.py | 3 + 2 files changed, 111 insertions(+) create mode 100644 src/webui/routers/system.py diff --git a/src/webui/routers/system.py b/src/webui/routers/system.py new file mode 100644 index 00000000..743da5b9 --- /dev/null +++ b/src/webui/routers/system.py @@ -0,0 +1,108 @@ +""" +系统控制路由 + +提供系统重启、状态查询等功能 +""" +import os +import sys +import time +from datetime import datetime +from fastapi import APIRouter, HTTPException +from pydantic import BaseModel +from src.config.config import MMC_VERSION + +router = APIRouter(prefix="/system", tags=["system"]) + +# 记录启动时间 +_start_time = time.time() + + +class RestartResponse(BaseModel): + """重启响应""" + success: bool + message: str + + +class StatusResponse(BaseModel): + """状态响应""" + running: bool + uptime: float + version: str + start_time: str + + +@router.post("/restart", response_model=RestartResponse) +async def restart_maibot(): + """ + 重启麦麦主程序 + + 使用 os.execv 重启当前进程,配置更改将在重启后生效。 + 注意:此操作会使麦麦暂时离线。 + """ + try: + # 记录重启操作 + print(f"[{datetime.now()}] WebUI 触发重启操作") + + # 使用 os.execv 重启当前进程 + # 这会替换当前进程,保持相同的 PID + python = sys.executable + args = [python] + sys.argv + + # 返回成功响应(实际上这个响应可能不会发送,因为进程会立即重启) + # 但我们仍然返回它以保持 API 一致性 + os.execv(python, args) + + return RestartResponse( + success=True, + message="麦麦正在重启中..." + ) + except Exception as e: + raise HTTPException( + status_code=500, + detail=f"重启失败: {str(e)}" + ) from e + + +@router.get("/status", response_model=StatusResponse) +async def get_maibot_status(): + """ + 获取麦麦运行状态 + + 返回麦麦的运行状态、运行时长和版本信息。 + """ + try: + uptime = time.time() - _start_time + + # 尝试获取版本信息(需要根据实际情况调整) + version = MMC_VERSION # 可以从配置或常量中读取 + + return StatusResponse( + running=True, + uptime=uptime, + version=version, + start_time=datetime.fromtimestamp(_start_time).isoformat() + ) + except Exception as e: + raise HTTPException( + status_code=500, + detail=f"获取状态失败: {str(e)}" + ) from e + + +# 可选:添加更多系统控制功能 + +@router.post("/reload-config") +async def reload_config(): + """ + 热重载配置(不重启进程) + + 仅重新加载配置文件,某些配置可能需要重启才能生效。 + 此功能需要在主程序中实现配置热重载逻辑。 + """ + # 这里需要调用主程序的配置重载函数 + # 示例:await app_instance.reload_config() + + return { + "success": True, + "message": "配置重载功能待实现" + } diff --git a/src/webui/routes.py b/src/webui/routes.py index b52dede6..b71619ed 100644 --- a/src/webui/routes.py +++ b/src/webui/routes.py @@ -11,6 +11,7 @@ from .expression_routes import router as expression_router from .emoji_routes import router as emoji_router from .plugin_routes import router as plugin_router from .plugin_progress_ws import get_progress_router +from .routers.system import router as system_router logger = get_logger("webui.api") @@ -31,6 +32,8 @@ router.include_router(emoji_router) router.include_router(plugin_router) # 注册插件进度 WebSocket 路由 router.include_router(get_progress_router()) +# 注册系统控制路由 +router.include_router(system_router) class TokenVerifyRequest(BaseModel): From 021af3db9577a5c07fd738be5b8936ba590f9ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Wed, 19 Nov 2025 23:00:06 +0800 Subject: [PATCH 03/12] upload WebUI 0.11.5 Beta.b7b0e4c DashBoard after Build Files commit hash : b7b0e4c3bdaefa7176e75391f76c2e56b4af1c6f --- webui/dist/assets/index-7uxip_BT.css | 1 + webui/dist/assets/index-APyqA5yn.js | 157 +++++++++++++++++++++++++++ webui/dist/assets/index-Br56hjqL.js | 157 --------------------------- webui/dist/assets/index-Cp6kNbgY.css | 1 - webui/dist/index.html | 4 +- 5 files changed, 160 insertions(+), 160 deletions(-) create mode 100644 webui/dist/assets/index-7uxip_BT.css create mode 100644 webui/dist/assets/index-APyqA5yn.js delete mode 100644 webui/dist/assets/index-Br56hjqL.js delete mode 100644 webui/dist/assets/index-Cp6kNbgY.css diff --git a/webui/dist/assets/index-7uxip_BT.css b/webui/dist/assets/index-7uxip_BT.css new file mode 100644 index 00000000..98fc3936 --- /dev/null +++ b/webui/dist/assets/index-7uxip_BT.css @@ -0,0 +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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-orange-700:hover{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-blue-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 58 138 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} diff --git a/webui/dist/assets/index-APyqA5yn.js b/webui/dist/assets/index-APyqA5yn.js new file mode 100644 index 00000000..ca377b6b --- /dev/null +++ b/webui/dist/assets/index-APyqA5yn.js @@ -0,0 +1,157 @@ +function XV(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function At(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var O0={exports:{}},Yd={};var Gk;function ZV(){if(Gk)return Yd;Gk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var l=null;if(s!==void 0&&(l=""+s),a.key!==void 0&&(l=""+a.key),"key"in a){s={};for(var u in a)u!=="key"&&(s[u]=a[u])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:s}}return Yd.Fragment=t,Yd.jsx=n,Yd.jsxs=n,Yd}var Yk;function QV(){return Yk||(Yk=1,O0.exports=ZV()),O0.exports}var i=QV(),E0={exports:{}},Ze={};var Kk;function JV(){if(Kk)return Ze;Kk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(I){return I===null||typeof I!="object"?null:(I=g&&I[g]||I["@@iterator"],typeof I=="function"?I:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function N(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}N.prototype.isReactComponent={},N.prototype.setState=function(I,z){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,z,"setState")},N.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function E(){}E.prototype=N.prototype;function O(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}var A=O.prototype=new E;A.constructor=O,w(A,N.prototype),A.isPureReactComponent=!0;var C=Array.isArray;function k(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function R(I,z,Y){var te=Y.ref;return{$$typeof:e,type:I,key:z,ref:te!==void 0?te:null,props:Y}}function B(I,z){return R(I.type,z,I.props)}function $(I){return typeof I=="object"&&I!==null&&I.$$typeof===e}function H(I){var z={"=":"=0",":":"=2"};return"$"+I.replace(/[=:]/g,function(Y){return z[Y]})}var V=/\/+/g;function q(I,z){return typeof I=="object"&&I!==null&&I.key!=null?H(""+I.key):z.toString(36)}function G(I){switch(I.status){case"fulfilled":return I.value;case"rejected":throw I.reason;default:switch(typeof I.status=="string"?I.then(k,k):(I.status="pending",I.then(function(z){I.status==="pending"&&(I.status="fulfilled",I.value=z)},function(z){I.status==="pending"&&(I.status="rejected",I.reason=z)})),I.status){case"fulfilled":return I.value;case"rejected":throw I.reason}}throw I}function L(I,z,Y,te,ae){var ge=typeof I;(ge==="undefined"||ge==="boolean")&&(I=null);var ee=!1;if(I===null)ee=!0;else switch(ge){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(I.$$typeof){case e:case t:ee=!0;break;case m:return ee=I._init,L(ee(I._payload),z,Y,te,ae)}}if(ee)return ae=ae(I),ee=te===""?"."+q(I,0):te,C(ae)?(Y="",ee!=null&&(Y=ee.replace(V,"$&/")+"/"),L(ae,z,Y,"",function(we){return we})):ae!=null&&($(ae)&&(ae=B(ae,Y+(ae.key==null||I&&I.key===ae.key?"":(""+ae.key).replace(V,"$&/")+"/")+ee)),z.push(ae)),1;ee=0;var Se=te===""?".":te+":";if(C(I))for(var re=0;re>>1,J=L[K];if(0>>1;Ka(Y,U))tea(ae,Y)?(L[K]=ae,L[te]=U,K=te):(L[K]=Y,L[z]=U,K=z);else if(tea(ae,U))L[K]=ae,L[te]=U,K=te;else break e}}return D}function a(L,D){var U=L.sortIndex-D.sortIndex;return U!==0?U:L.id-D.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,w=!1,b=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function A(L){for(var D=n(f);D!==null;){if(D.callback===null)r(f);else if(D.startTime<=L)r(f),D.sortIndex=D.expirationTime,t(d,D);else break;D=n(f)}}function C(L){if(w=!1,A(L),!j)if(n(d)!==null)j=!0,k||(k=!0,H());else{var D=n(f);D!==null&&G(C,D.startTime-L)}}var k=!1,T=-1,M=5,R=-1;function B(){return b?!0:!(e.unstable_now()-RL&&B());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var J=K(p.expirationTime<=L);if(L=e.unstable_now(),typeof J=="function"){p.callback=J,A(L),D=!0;break t}p===n(d)&&r(d),A(L)}else r(d);p=n(d)}if(p!==null)D=!0;else{var I=n(f);I!==null&&G(C,I.startTime-L),D=!1}}break e}finally{p=null,g=U,x=!1}D=void 0}}finally{D?H():k=!1}}}var H;if(typeof O=="function")H=function(){O($)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,q=V.port2;V.port1.onmessage=$,H=function(){q.postMessage(null)}}else H=function(){N($,0)};function G(L,D){T=N(function(){L(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(L){L.callback=null},e.unstable_forceFrameRate=function(L){0>L||125K?(L.sortIndex=U,t(f,L),n(d)===null&&L===n(f)&&(w?(E(T),T=-1):w=!0,G(C,U-K))):(L.sortIndex=J,t(d,L),j||x||(j=!0,k||(k=!0,H()))),L},e.unstable_shouldYield=B,e.unstable_wrapCallback=function(L){var D=g;return function(){var U=g;g=D;try{return L.apply(this,arguments)}finally{g=U}}}})(k0)),k0}var Qk;function tG(){return Qk||(Qk=1,T0.exports=eG()),T0.exports}var M0={exports:{}},cr={};var Jk;function nG(){if(Jk)return cr;Jk=1;var e=Eh();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),M0.exports=nG(),M0.exports}var tM;function rG(){if(tM)return Kd;tM=1;var e=tG(),t=Eh(),n=JL();function r(o){var c="https://react.dev/errors/"+o;if(1J||(o.current=K[J],K[J]=null,J--)}function Y(o,c){J++,K[J]=o.current,o.current=c}var te=I(null),ae=I(null),ge=I(null),ee=I(null);function Se(o,c){switch(Y(ge,c),Y(ae,o),Y(te,null),c.nodeType){case 9:case 11:o=(o=c.documentElement)&&(o=o.namespaceURI)?vk(o):0;break;default:if(o=c.tagName,c=c.namespaceURI)c=vk(c),o=gk(c,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}z(te),Y(te,o)}function re(){z(te),z(ae),z(ge)}function we(o){o.memoizedState!==null&&Y(ee,o);var c=te.current,h=gk(c,o.type);c!==h&&(Y(ae,o),Y(te,h))}function je(o){ae.current===o&&(z(te),z(ae)),ee.current===o&&(z(ee),Hd._currentValue=U)}var fe,Le;function Oe(o){if(fe===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);fe=c&&c[1]||"",Le=-1)":-1S||X[v]!==se[S]){var pe=` +`+X[v].replace(" at new "," at ");return o.displayName&&pe.includes("")&&(pe=pe.replace("",o.displayName)),pe}while(1<=v&&0<=S);break}}}finally{We=!1,Error.prepareStackTrace=h}return(h=o?o.displayName||o.name:"")?Oe(h):""}function Ae(o,c){switch(o.tag){case 26:case 27:case 5:return Oe(o.type);case 16:return Oe("Lazy");case 13:return o.child!==c&&c!==null?Oe("Suspense Fallback"):Oe("Suspense");case 19:return Oe("SuspenseList");case 0:case 15:return be(o.type,!1);case 11:return be(o.type.render,!1);case 1:return be(o.type,!0);case 31:return Oe("Activity");default:return""}}function ke(o){try{var c="",h=null;do c+=Ae(o,h),h=o,o=o.return;while(o);return c}catch(v){return` +Error generating stack: `+v.message+` +`+v.stack}}var Qt=Object.prototype.hasOwnProperty,St=e.unstable_scheduleCallback,Tt=e.unstable_cancelCallback,Sn=e.unstable_shouldYield,le=e.unstable_requestPaint,ue=e.unstable_now,Ve=e.unstable_getCurrentPriorityLevel,Mn=e.unstable_ImmediatePriority,$l=e.unstable_UserBlockingPriority,Il=e.unstable_NormalPriority,dx=e.unstable_LowPriority,fm=e.unstable_IdlePriority,fx=e.log,hx=e.unstable_setDisableYieldValue,bo=null,br=null;function Qa(o){if(typeof fx=="function"&&hx(o),br&&typeof br.setStrictMode=="function")try{br.setStrictMode(bo,o)}catch{}}var lr=Math.clz32?Math.clz32:Gt,mx=Math.log,it=Math.LN2;function Gt(o){return o>>>=0,o===0?32:31-(mx(o)/it|0)|0}var Ye=256,wt=262144,qn=4194304;function st(o){var c=o&42;if(c!==0)return c;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function Ll(o,c,h){var v=o.pendingLanes;if(v===0)return 0;var S=0,_=o.suspendedLanes,P=o.pingedLanes;o=o.warmLanes;var F=v&134217727;return F!==0?(v=F&~_,v!==0?S=st(v):(P&=F,P!==0?S=st(P):h||(h=F&~o,h!==0&&(S=st(h))))):(F=v&~_,F!==0?S=st(F):P!==0?S=st(P):h||(h=v&~o,h!==0&&(S=st(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function wo(o,c){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&c)===0}function px(o,c){switch(o){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bl(){var o=qn;return qn<<=1,(qn&62914560)===0&&(qn=4194304),o}function jo(o){for(var c=[],h=0;31>h;h++)c.push(o);return c}function ad(o,c){o.pendingLanes|=c,c!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function LW(o,c,h,v,S,_){var P=o.pendingLanes;o.pendingLanes=h,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=h,o.entangledLanes&=h,o.errorRecoveryDisabledLanes&=h,o.shellSuspendCounter=0;var F=o.entanglements,X=o.expirationTimes,se=o.hiddenUpdates;for(h=P&~h;0"u")return null;try{return o.activeElement||o.body}catch{return o.body}}var HW=/[\n"\\]/g;function da(o){return o.replace(HW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function wx(o,c,h,v,S,_,P,F){o.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?o.type=P:o.removeAttribute("type"),c!=null?P==="number"?(c===0&&o.value===""||o.value!=c)&&(o.value=""+ua(c)):o.value!==""+ua(c)&&(o.value=""+ua(c)):P!=="submit"&&P!=="reset"||o.removeAttribute("value"),c!=null?jx(o,P,ua(c)):h!=null?jx(o,P,ua(h)):v!=null&&o.removeAttribute("value"),S==null&&_!=null&&(o.defaultChecked=!!_),S!=null&&(o.checked=S&&typeof S!="function"&&typeof S!="symbol"),F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?o.name=""+ua(F):o.removeAttribute("name")}function uA(o,c,h,v,S,_,P,F){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(o.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){bx(o);return}h=h!=null?""+ua(h):"",c=c!=null?""+ua(c):h,F||c===o.value||(o.value=c),o.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,o.checked=F?o.checked:!!v,o.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(o.name=P),bx(o)}function jx(o,c,h){c==="number"&&pm(o.ownerDocument)===o||o.defaultValue===""+h||(o.defaultValue=""+h)}function Wl(o,c,h,v){if(o=o.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ox=!1;if(Ai)try{var ld={};Object.defineProperty(ld,"passive",{get:function(){Ox=!0}}),window.addEventListener("test",ld,ld),window.removeEventListener("test",ld,ld)}catch{Ox=!1}var ys=null,Ex=null,gm=null;function gA(){if(gm)return gm;var o,c=Ex,h=c.length,v,S="value"in ys?ys.value:ys.textContent,_=S.length;for(o=0;o=dd),SA=" ",_A=!1;function NA(o,c){switch(o){case"keyup":return y7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function CA(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Kl=!1;function b7(o,c){switch(o){case"compositionend":return CA(c);case"keypress":return c.which!==32?null:(_A=!0,SA);case"textInput":return o=c.data,o===SA&&_A?null:o;default:return null}}function w7(o,c){if(Kl)return o==="compositionend"||!Px&&NA(o,c)?(o=gA(),gm=Ex=ys=null,Kl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-o};o=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=RA(h)}}function $A(o,c){return o&&c?o===c?!0:o&&o.nodeType===3?!1:c&&c.nodeType===3?$A(o,c.parentNode):"contains"in o?o.contains(c):o.compareDocumentPosition?!!(o.compareDocumentPosition(c)&16):!1:!1}function IA(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var c=pm(o.document);c instanceof o.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)o=c.contentWindow;else break;c=pm(o.document)}return c}function $x(o){var c=o&&o.nodeName&&o.nodeName.toLowerCase();return c&&(c==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||c==="textarea"||o.contentEditable==="true")}var A7=Ai&&"documentMode"in document&&11>=document.documentMode,Xl=null,Ix=null,pd=null,Lx=!1;function LA(o,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;Lx||Xl==null||Xl!==pm(v)||(v=Xl,"selectionStart"in v&&$x(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),pd&&md(pd,v)||(pd=v,v=up(Ix,"onSelect"),0>=P,S-=P,Ja=1<<32-lr(c)+S|h<at?(ht=Ie,Ie=null):ht=Ie.sibling;var yt=de(ne,Ie,ie[at],ye);if(yt===null){Ie===null&&(Ie=ht);break}o&&Ie&&yt.alternate===null&&c(ne,Ie),Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt,Ie=ht}if(at===ie.length)return h(ne,Ie),mt&&ki(ne,at),ze;if(Ie===null){for(;atat?(ht=Ie,Ie=null):ht=Ie.sibling;var zs=de(ne,Ie,yt.value,ye);if(zs===null){Ie===null&&(Ie=ht);break}o&&Ie&&zs.alternate===null&&c(ne,Ie),Z=_(zs,Z,at),gt===null?ze=zs:gt.sibling=zs,gt=zs,Ie=ht}if(yt.done)return h(ne,Ie),mt&&ki(ne,at),ze;if(Ie===null){for(;!yt.done;at++,yt=ie.next())yt=xe(ne,yt.value,ye),yt!==null&&(Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt);return mt&&ki(ne,at),ze}for(Ie=v(Ie);!yt.done;at++,yt=ie.next())yt=me(Ie,ne,at,yt.value,ye),yt!==null&&(o&&yt.alternate!==null&&Ie.delete(yt.key===null?at:yt.key),Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt);return o&&Ie.forEach(function(KV){return c(ne,KV)}),mt&&ki(ne,at),ze}function zt(ne,Z,ie,ye){if(typeof ie=="object"&&ie!==null&&ie.type===w&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case x:e:{for(var ze=ie.key;Z!==null;){if(Z.key===ze){if(ze=ie.type,ze===w){if(Z.tag===7){h(ne,Z.sibling),ye=S(Z,ie.props.children),ye.return=ne,ne=ye;break e}}else if(Z.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===M&&Po(ze)===Z.type){h(ne,Z.sibling),ye=S(Z,ie.props),wd(ye,ie),ye.return=ne,ne=ye;break e}h(ne,Z);break}else c(ne,Z);Z=Z.sibling}ie.type===w?(ye=Eo(ie.props.children,ne.mode,ye,ie.key),ye.return=ne,ne=ye):(ye=Om(ie.type,ie.key,ie.props,null,ne.mode,ye),wd(ye,ie),ye.return=ne,ne=ye)}return P(ne);case j:e:{for(ze=ie.key;Z!==null;){if(Z.key===ze)if(Z.tag===4&&Z.stateNode.containerInfo===ie.containerInfo&&Z.stateNode.implementation===ie.implementation){h(ne,Z.sibling),ye=S(Z,ie.children||[]),ye.return=ne,ne=ye;break e}else{h(ne,Z);break}else c(ne,Z);Z=Z.sibling}ye=Wx(ie,ne.mode,ye),ye.return=ne,ne=ye}return P(ne);case M:return ie=Po(ie),zt(ne,Z,ie,ye)}if(G(ie))return Me(ne,Z,ie,ye);if(H(ie)){if(ze=H(ie),typeof ze!="function")throw Error(r(150));return ie=ze.call(ie),Fe(ne,Z,ie,ye)}if(typeof ie.then=="function")return zt(ne,Z,Rm(ie),ye);if(ie.$$typeof===O)return zt(ne,Z,Tm(ne,ie),ye);Dm(ne,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"||typeof ie=="bigint"?(ie=""+ie,Z!==null&&Z.tag===6?(h(ne,Z.sibling),ye=S(Z,ie),ye.return=ne,ne=ye):(h(ne,Z),ye=Hx(ie,ne.mode,ye),ye.return=ne,ne=ye),P(ne)):h(ne,Z)}return function(ne,Z,ie,ye){try{bd=0;var ze=zt(ne,Z,ie,ye);return oc=null,ze}catch(Ie){if(Ie===sc||Ie===Mm)throw Ie;var gt=Hr(29,Ie,null,ne.mode);return gt.lanes=ye,gt.return=ne,gt}finally{}}}var Do=o2(!0),l2=o2(!1),Ss=!1;function rb(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ab(o,c){o=o.updateQueue,c.updateQueue===o&&(c.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function _s(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function Ns(o,c,h){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(jt&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=Cm(o),WA(o,null,h),c}return Nm(o,v,c,h),Cm(o)}function jd(o,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,JE(o,h)}}function ib(o,c){var h=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},o.updateQueue=h;return}o=h.lastBaseUpdate,o===null?h.firstBaseUpdate=c:o.next=c,h.lastBaseUpdate=c}var sb=!1;function Sd(){if(sb){var o=ic;if(o!==null)throw o}}function _d(o,c,h,v){sb=!1;var S=o.updateQueue;Ss=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,F=S.shared.pending;if(F!==null){S.shared.pending=null;var X=F,se=X.next;X.next=null,P===null?_=se:P.next=se,P=X;var pe=o.alternate;pe!==null&&(pe=pe.updateQueue,F=pe.lastBaseUpdate,F!==P&&(F===null?pe.firstBaseUpdate=se:F.next=se,pe.lastBaseUpdate=X))}if(_!==null){var xe=S.baseState;P=0,pe=se=X=null,F=_;do{var de=F.lane&-536870913,me=de!==F.lane;if(me?(ft&de)===de:(v&de)===de){de!==0&&de===ac&&(sb=!0),pe!==null&&(pe=pe.next={lane:0,tag:F.tag,payload:F.payload,callback:null,next:null});e:{var Me=o,Fe=F;de=c;var zt=h;switch(Fe.tag){case 1:if(Me=Fe.payload,typeof Me=="function"){xe=Me.call(zt,xe,de);break e}xe=Me;break e;case 3:Me.flags=Me.flags&-65537|128;case 0:if(Me=Fe.payload,de=typeof Me=="function"?Me.call(zt,xe,de):Me,de==null)break e;xe=p({},xe,de);break e;case 2:Ss=!0}}de=F.callback,de!==null&&(o.flags|=64,me&&(o.flags|=8192),me=S.callbacks,me===null?S.callbacks=[de]:me.push(de))}else me={lane:de,tag:F.tag,payload:F.payload,callback:F.callback,next:null},pe===null?(se=pe=me,X=xe):pe=pe.next=me,P|=de;if(F=F.next,F===null){if(F=S.shared.pending,F===null)break;me=F,F=me.next,me.next=null,S.lastBaseUpdate=me,S.shared.pending=null}}while(!0);pe===null&&(X=xe),S.baseState=X,S.firstBaseUpdate=se,S.lastBaseUpdate=pe,_===null&&(S.shared.lanes=0),Ts|=P,o.lanes=P,o.memoizedState=xe}}function c2(o,c){if(typeof o!="function")throw Error(r(191,o));o.call(c)}function u2(o,c){var h=o.callbacks;if(h!==null)for(o.callbacks=null,o=0;o_?_:8;var P=L.T,F={};L.T=F,Nb(o,!1,c,h);try{var X=S(),se=L.S;if(se!==null&&se(F,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var pe=L7(X,v);Od(o,c,pe,Kr(o))}else Od(o,c,v,Kr(o))}catch(xe){Od(o,c,{then:function(){},status:"rejected",reason:xe},Kr())}finally{D.p=_,P!==null&&F.types!==null&&(P.types=F.types),L.T=P}}function H7(){}function Sb(o,c,h,v){if(o.tag!==5)throw Error(r(476));var S=F2(o).queue;q2(o,S,c,U,h===null?H7:function(){return U2(o),h(v)})}function F2(o){var c=o.memoizedState;if(c!==null)return c;c={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:U},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:h},next:null},o.memoizedState=c,o=o.alternate,o!==null&&(o.memoizedState=c),c}function U2(o){var c=F2(o);c.next===null&&(c=o.alternate.memoizedState),Od(o,c.next.queue,{},Kr())}function _b(){return tr(Hd)}function H2(){return jn().memoizedState}function W2(){return jn().memoizedState}function W7(o){for(var c=o.return;c!==null;){switch(c.tag){case 24:case 3:var h=Kr();o=_s(h);var v=Ns(c,o,h);v!==null&&(Mr(v,c,h),jd(v,c,h)),c={cache:Jx()},o.payload=c;return}c=c.return}}function V7(o,c,h){var v=Kr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Wm(o)?G2(c,h):(h=Fx(o,c,h,v),h!==null&&(Mr(h,o,v),Y2(h,c,v)))}function V2(o,c,h){var v=Kr();Od(o,c,h,v)}function Od(o,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(Wm(o))G2(c,S);else{var _=o.alternate;if(o.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,F=_(P,h);if(S.hasEagerState=!0,S.eagerState=F,Ur(F,P))return Nm(o,c,S,0),Ht===null&&_m(),!1}catch{}finally{}if(h=Fx(o,c,S,v),h!==null)return Mr(h,o,v),Y2(h,c,v),!0}return!1}function Nb(o,c,h,v){if(v={lane:2,revertLane:r0(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},Wm(o)){if(c)throw Error(r(479))}else c=Fx(o,h,v,2),c!==null&&Mr(c,o,2)}function Wm(o){var c=o.alternate;return o===et||c!==null&&c===et}function G2(o,c){cc=Lm=!0;var h=o.pending;h===null?c.next=c:(c.next=h.next,h.next=c),o.pending=c}function Y2(o,c,h){if((h&4194048)!==0){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,JE(o,h)}}var Ed={readContext:tr,use:qm,useCallback:gn,useContext:gn,useEffect:gn,useImperativeHandle:gn,useLayoutEffect:gn,useInsertionEffect:gn,useMemo:gn,useReducer:gn,useRef:gn,useState:gn,useDebugValue:gn,useDeferredValue:gn,useTransition:gn,useSyncExternalStore:gn,useId:gn,useHostTransitionStatus:gn,useFormState:gn,useActionState:gn,useOptimistic:gn,useMemoCache:gn,useCacheRefresh:gn};Ed.useEffectEvent=gn;var K2={readContext:tr,use:qm,useCallback:function(o,c){return wr().memoizedState=[o,c===void 0?null:c],o},useContext:tr,useEffect:M2,useImperativeHandle:function(o,c,h){h=h!=null?h.concat([o]):null,Um(4194308,4,$2.bind(null,c,o),h)},useLayoutEffect:function(o,c){return Um(4194308,4,o,c)},useInsertionEffect:function(o,c){Um(4,2,o,c)},useMemo:function(o,c){var h=wr();c=c===void 0?null:c;var v=o();if($o){Qa(!0);try{o()}finally{Qa(!1)}}return h.memoizedState=[v,c],v},useReducer:function(o,c,h){var v=wr();if(h!==void 0){var S=h(c);if($o){Qa(!0);try{h(c)}finally{Qa(!1)}}}else S=c;return v.memoizedState=v.baseState=S,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:S},v.queue=o,o=o.dispatch=V7.bind(null,et,o),[v.memoizedState,o]},useRef:function(o){var c=wr();return o={current:o},c.memoizedState=o},useState:function(o){o=yb(o);var c=o.queue,h=V2.bind(null,et,c);return c.dispatch=h,[o.memoizedState,h]},useDebugValue:wb,useDeferredValue:function(o,c){var h=wr();return jb(h,o,c)},useTransition:function(){var o=yb(!1);return o=q2.bind(null,et,o.queue,!0,!1),wr().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,c,h){var v=et,S=wr();if(mt){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Ht===null)throw Error(r(349));(ft&127)!==0||v2(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,M2(y2.bind(null,v,_,o),[o]),v.flags|=2048,dc(9,{destroy:void 0},g2.bind(null,v,_,h,c),null),h},useId:function(){var o=wr(),c=Ht.identifierPrefix;if(mt){var h=ei,v=Ja;h=(v&~(1<<32-lr(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=Bm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Jn]=c,_[Cr]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(rr(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&Ii(c)}}return en(c),Bb(c,c.type,o===null?null:o.memoizedProps,c.pendingProps,h),null;case 6:if(o&&c.stateNode!=null)o.memoizedProps!==v&&Ii(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(o=ge.current,nc(c)){if(o=c.stateNode,h=c.memoizedProps,v=null,S=er,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}o[Jn]=c,o=!!(o.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||mk(o.nodeValue,h)),o||ws(c,!0)}else o=dp(o).createTextNode(v),o[Jn]=c,c.stateNode=o}return en(c),null;case 31:if(h=c.memoizedState,o===null||o.memoizedState!==null){if(v=nc(c),h!==null){if(o===null){if(!v)throw Error(r(318));if(o=c.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));o[Jn]=c}else Ao(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;en(c),o=!1}else h=Kx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=h),o=!0;if(!o)return c.flags&256?(Vr(c),c):(Vr(c),null);if((c.flags&128)!==0)throw Error(r(558))}return en(c),null;case 13:if(v=c.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(S=nc(c),v!==null&&v.dehydrated!==null){if(o===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Jn]=c}else Ao(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;en(c),S=!1}else S=Kx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Vr(c),c):(Vr(c),null)}return Vr(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,o=o!==null&&o.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==o&&h&&(c.child.flags|=8192),Xm(c,c.updateQueue),en(c),null);case 4:return re(),o===null&&o0(c.stateNode.containerInfo),en(c),null;case 10:return Pi(c.type),en(c),null;case 19:if(z(wn),v=c.memoizedState,v===null)return en(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)Td(v,!1);else{if(yn!==0||o!==null&&(o.flags&128)!==0)for(o=c.child;o!==null;){if(_=Im(o),_!==null){for(c.flags|=128,Td(v,!1),o=_.updateQueue,c.updateQueue=o,Xm(c,o),c.subtreeFlags=0,o=h,h=c.child;h!==null;)VA(h,o),h=h.sibling;return Y(wn,wn.current&1|2),mt&&ki(c,v.treeForkCount),c.child}o=o.sibling}v.tail!==null&&ue()>tp&&(c.flags|=128,S=!0,Td(v,!1),c.lanes=4194304)}else{if(!S)if(o=Im(_),o!==null){if(c.flags|=128,S=!0,o=o.updateQueue,c.updateQueue=o,Xm(c,o),Td(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!mt)return en(c),null}else 2*ue()-v.renderingStartTime>tp&&h!==536870912&&(c.flags|=128,S=!0,Td(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(o=v.last,o!==null?o.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=ue(),o.sibling=null,h=wn.current,Y(wn,S?h&1|2:h&1),mt&&ki(c,v.treeForkCount),o):(en(c),null);case 22:case 23:return Vr(c),lb(),v=c.memoizedState!==null,o!==null?o.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(en(c),c.subtreeFlags&6&&(c.flags|=8192)):en(c),h=c.updateQueue,h!==null&&Xm(c,h.retryQueue),h=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),o!==null&&z(Mo),null;case 24:return h=null,o!==null&&(h=o.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Pi(_n),en(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function Z7(o,c){switch(Gx(c),c.tag){case 1:return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 3:return Pi(_n),re(),o=c.flags,(o&65536)!==0&&(o&128)===0?(c.flags=o&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Vr(c),c.alternate===null)throw Error(r(340));Ao()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 13:if(Vr(c),o=c.memoizedState,o!==null&&o.dehydrated!==null){if(c.alternate===null)throw Error(r(340));Ao()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 19:return z(wn),null;case 4:return re(),null;case 10:return Pi(c.type),null;case 22:case 23:return Vr(c),lb(),o!==null&&z(Mo),o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 24:return Pi(_n),null;case 25:return null;default:return null}}function xT(o,c){switch(Gx(c),c.tag){case 3:Pi(_n),re();break;case 26:case 27:case 5:je(c);break;case 4:re();break;case 31:c.memoizedState!==null&&Vr(c);break;case 13:Vr(c);break;case 19:z(wn);break;case 10:Pi(c.type);break;case 22:case 23:Vr(c),lb(),o!==null&&z(Mo);break;case 24:Pi(_n)}}function kd(o,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&o)===o){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(F){Mt(c,c.return,F)}}function Es(o,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&o)===o){var P=v.inst,F=P.destroy;if(F!==void 0){P.destroy=void 0,S=c;var X=h,se=F;try{se()}catch(pe){Mt(S,X,pe)}}}v=v.next}while(v!==_)}}catch(pe){Mt(c,c.return,pe)}}function bT(o){var c=o.updateQueue;if(c!==null){var h=o.stateNode;try{u2(c,h)}catch(v){Mt(o,o.return,v)}}}function wT(o,c,h){h.props=Io(o.type,o.memoizedProps),h.state=o.memoizedState;try{h.componentWillUnmount()}catch(v){Mt(o,c,v)}}function Md(o,c){try{var h=o.ref;if(h!==null){switch(o.tag){case 26:case 27:case 5:var v=o.stateNode;break;case 30:v=o.stateNode;break;default:v=o.stateNode}typeof h=="function"?o.refCleanup=h(v):h.current=v}}catch(S){Mt(o,c,S)}}function ti(o,c){var h=o.ref,v=o.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){Mt(o,c,S)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){Mt(o,c,S)}else h.current=null}function jT(o){var c=o.type,h=o.memoizedProps,v=o.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){Mt(o,o.return,S)}}function zb(o,c,h){try{var v=o.stateNode;xV(v,o.type,h,c),v[Cr]=c}catch(S){Mt(o,o.return,S)}}function ST(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&Ds(o.type)||o.tag===4}function qb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||ST(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&Ds(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Fb(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(o,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(o),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ei));else if(v!==4&&(v===27&&Ds(o.type)&&(h=o.stateNode,c=null),o=o.child,o!==null))for(Fb(o,c,h),o=o.sibling;o!==null;)Fb(o,c,h),o=o.sibling}function Zm(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?h.insertBefore(o,c):h.appendChild(o);else if(v!==4&&(v===27&&Ds(o.type)&&(h=o.stateNode),o=o.child,o!==null))for(Zm(o,c,h),o=o.sibling;o!==null;)Zm(o,c,h),o=o.sibling}function _T(o){var c=o.stateNode,h=o.memoizedProps;try{for(var v=o.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);rr(c,v,h),c[Jn]=o,c[Cr]=h}catch(_){Mt(o,o.return,_)}}var Li=!1,On=!1,Ub=!1,NT=typeof WeakSet=="function"?WeakSet:Set,Un=null;function Q7(o,c){if(o=o.containerInfo,u0=yp,o=IA(o),$x(o)){if("selectionStart"in o)var h={start:o.selectionStart,end:o.selectionEnd};else e:{h=(h=o.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,F=-1,X=-1,se=0,pe=0,xe=o,de=null;t:for(;;){for(var me;xe!==h||S!==0&&xe.nodeType!==3||(F=P+S),xe!==_||v!==0&&xe.nodeType!==3||(X=P+v),xe.nodeType===3&&(P+=xe.nodeValue.length),(me=xe.firstChild)!==null;)de=xe,xe=me;for(;;){if(xe===o)break t;if(de===h&&++se===S&&(F=P),de===_&&++pe===v&&(X=P),(me=xe.nextSibling)!==null)break;xe=de,de=xe.parentNode}xe=me}h=F===-1||X===-1?null:{start:F,end:X}}else h=null}h=h||{start:0,end:0}}else h=null;for(d0={focusedElem:o,selectionRange:h},yp=!1,Un=c;Un!==null;)if(c=Un,o=c.child,(c.subtreeFlags&1028)!==0&&o!==null)o.return=c,Un=o;else for(;Un!==null;){switch(c=Un,_=c.alternate,o=c.flags,c.tag){case 0:if((o&4)!==0&&(o=c.updateQueue,o=o!==null?o.events:null,o!==null))for(h=0;h title"))),rr(_,v,h),_[Jn]=o,Fn(_),v=_;break e;case"link":var P=kk("link","href",S).get(v+(h.href||""));if(P){for(var F=0;Fzt&&(P=zt,zt=Fe,Fe=P);var ne=DA(F,Fe),Z=DA(F,zt);if(ne&&Z&&(me.rangeCount!==1||me.anchorNode!==ne.node||me.anchorOffset!==ne.offset||me.focusNode!==Z.node||me.focusOffset!==Z.offset)){var ie=xe.createRange();ie.setStart(ne.node,ne.offset),me.removeAllRanges(),Fe>zt?(me.addRange(ie),me.extend(Z.node,Z.offset)):(ie.setEnd(Z.node,Z.offset),me.addRange(ie))}}}}for(xe=[],me=F;me=me.parentNode;)me.nodeType===1&&xe.push({element:me,left:me.scrollLeft,top:me.scrollTop});for(typeof F.focus=="function"&&F.focus(),F=0;Fh?32:h,L.T=null,h=Xb,Xb=null;var _=Ms,P=Ui;if(Pn=0,vc=Ms=null,Ui=0,(jt&6)!==0)throw Error(r(331));var F=jt;if(jt|=4,$T(_.current),PT(_,_.current,P,h),jt=F,Ld(0,!1),br&&typeof br.onPostCommitFiberRoot=="function")try{br.onPostCommitFiberRoot(bo,_)}catch{}return!0}finally{D.p=S,L.T=v,ek(o,c)}}function nk(o,c,h){c=ha(h,c),c=Ab(o.stateNode,c,2),o=Ns(o,c,2),o!==null&&(ad(o,2),ni(o))}function Mt(o,c,h){if(o.tag===3)nk(o,o,h);else for(;c!==null;){if(c.tag===3){nk(c,o,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(ks===null||!ks.has(v))){o=ha(h,o),h=rT(2),v=Ns(c,h,2),v!==null&&(aT(h,v,c,o),ad(v,2),ni(v));break}}c=c.return}}function e0(o,c,h){var v=o.pingCache;if(v===null){v=o.pingCache=new tV;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Vb=!0,S.add(h),o=sV.bind(null,o,c,h),c.then(o,o))}function sV(o,c,h){var v=o.pingCache;v!==null&&v.delete(c),o.pingedLanes|=o.suspendedLanes&h,o.warmLanes&=~h,Ht===o&&(ft&h)===h&&(yn===4||yn===3&&(ft&62914560)===ft&&300>ue()-ep?(jt&2)===0&&gc(o,0):Gb|=h,pc===ft&&(pc=0)),ni(o)}function rk(o,c){c===0&&(c=Bl()),o=Oo(o,c),o!==null&&(ad(o,c),ni(o))}function oV(o){var c=o.memoizedState,h=0;c!==null&&(h=c.retryLane),rk(o,h)}function lV(o,c){var h=0;switch(o.tag){case 31:case 13:var v=o.stateNode,S=o.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=o.stateNode;break;case 22:v=o.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),rk(o,h)}function cV(o,c){return St(o,c)}var op=null,xc=null,t0=!1,lp=!1,n0=!1,Rs=0;function ni(o){o!==xc&&o.next===null&&(xc===null?op=xc=o:xc=xc.next=o),lp=!0,t0||(t0=!0,dV())}function Ld(o,c){if(!n0&&lp){n0=!0;do for(var h=!1,v=op;v!==null;){if(o!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,F=v.pingedLanes;_=(1<<31-lr(42|o)+1)-1,_&=S&~(P&~F),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,ok(v,_))}else _=ft,_=Ll(v,v===Ht?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||wo(v,_)||(h=!0,ok(v,_));v=v.next}while(h);n0=!1}}function uV(){ak()}function ak(){lp=t0=!1;var o=0;Rs!==0&&wV()&&(o=Rs);for(var c=ue(),h=null,v=op;v!==null;){var S=v.next,_=ik(v,c);_===0?(v.next=null,h===null?op=S:h.next=S,S===null&&(xc=h)):(h=v,(o!==0||(_&3)!==0)&&(lp=!0)),v=S}Pn!==0&&Pn!==5||Ld(o),Rs!==0&&(Rs=0)}function ik(o,c){for(var h=o.suspendedLanes,v=o.pingedLanes,S=o.expirationTimes,_=o.pendingLanes&-62914561;0<_;){var P=31-lr(_),F=1<F)break;var pe=X.transferSize,xe=X.initiatorType;pe&&pk(xe)&&(X=X.responseEnd,P+=pe*(X"u"?null:document;function Ok(o,c,h){var v=bc;if(v&&typeof c=="string"&&c){var S=da(c);S='link[rel="'+o+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),Ck.has(S)||(Ck.add(S),o={rel:o,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function TV(o){Hi.D(o),Ok("dns-prefetch",o,null)}function kV(o,c){Hi.C(o,c),Ok("preconnect",o,c)}function MV(o,c,h){Hi.L(o,c,h);var v=bc;if(v&&o&&c){var S='link[rel="preload"][as="'+da(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+da(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+da(h.imageSizes)+'"]')):S+='[href="'+da(o)+'"]';var _=S;switch(c){case"style":_=wc(o);break;case"script":_=jc(o)}xa.has(_)||(o=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:o,as:c},h),xa.set(_,o),v.querySelector(S)!==null||c==="style"&&v.querySelector(Fd(_))||c==="script"&&v.querySelector(Ud(_))||(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function PV(o,c){Hi.m(o,c);var h=bc;if(h&&o){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+da(v)+'"][href="'+da(o)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=jc(o)}if(!xa.has(_)&&(o=p({rel:"modulepreload",href:o},c),xa.set(_,o),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(Ud(_)))return}v=h.createElement("link"),rr(v,"link",o),Fn(v),h.head.appendChild(v)}}}function RV(o,c,h){Hi.S(o,c,h);var v=bc;if(v&&o){var S=Ul(v).hoistableStyles,_=wc(o);c=c||"default";var P=S.get(_);if(!P){var F={loading:0,preload:null};if(P=v.querySelector(Fd(_)))F.loading=5;else{o=p({rel:"stylesheet",href:o,"data-precedence":c},h),(h=xa.get(_))&&y0(o,h);var X=P=v.createElement("link");Fn(X),rr(X,"link",o),X._p=new Promise(function(se,pe){X.onload=se,X.onerror=pe}),X.addEventListener("load",function(){F.loading|=1}),X.addEventListener("error",function(){F.loading|=2}),F.loading|=4,hp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:F},S.set(_,P)}}}function DV(o,c){Hi.X(o,c);var h=bc;if(h&&o){var v=Ul(h).hoistableScripts,S=jc(o),_=v.get(S);_||(_=h.querySelector(Ud(S)),_||(o=p({src:o,async:!0},c),(c=xa.get(S))&&x0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function $V(o,c){Hi.M(o,c);var h=bc;if(h&&o){var v=Ul(h).hoistableScripts,S=jc(o),_=v.get(S);_||(_=h.querySelector(Ud(S)),_||(o=p({src:o,async:!0,type:"module"},c),(c=xa.get(S))&&x0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function Ek(o,c,h,v){var S=(S=ge.current)?fp(S):null;if(!S)throw Error(r(446));switch(o){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=wc(h.href),h=Ul(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){o=wc(h.href);var _=Ul(S).hoistableStyles,P=_.get(o);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(o,P),(_=S.querySelector(Fd(o)))&&!_._p&&(P.instance=_,P.state.loading=5),xa.has(o)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},xa.set(o,h),_||IV(S,o,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=jc(h),h=Ul(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,o))}}function wc(o){return'href="'+da(o)+'"'}function Fd(o){return'link[rel="stylesheet"]['+o+"]"}function Ak(o){return p({},o,{"data-precedence":o.precedence,precedence:null})}function IV(o,c,h,v){o.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=o.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),rr(c,"link",h),Fn(c),o.head.appendChild(c))}function jc(o){return'[src="'+da(o)+'"]'}function Ud(o){return"script[async]"+o}function Tk(o,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=o.querySelector('style[data-href~="'+da(h.href)+'"]');if(v)return c.instance=v,Fn(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(o.ownerDocument||o).createElement("style"),Fn(v),rr(v,"style",S),hp(v,h.precedence,o),c.instance=v;case"stylesheet":S=wc(h.href);var _=o.querySelector(Fd(S));if(_)return c.state.loading|=4,c.instance=_,Fn(_),_;v=Ak(h),(S=xa.get(S))&&y0(v,S),_=(o.ownerDocument||o).createElement("link"),Fn(_);var P=_;return P._p=new Promise(function(F,X){P.onload=F,P.onerror=X}),rr(_,"link",v),c.state.loading|=4,hp(_,h.precedence,o),c.instance=_;case"script":return _=jc(h.src),(S=o.querySelector(Ud(_)))?(c.instance=S,Fn(S),S):(v=h,(S=xa.get(_))&&(v=p({},h),x0(v,S)),o=o.ownerDocument||o,S=o.createElement("script"),Fn(S),rr(S,"link",v),o.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,hp(v,h.precedence,o));return c.instance}function hp(o,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function LV(o,c,h){if(h===1||c.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return o=c.disabled,typeof c.precedence=="string"&&o==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Pk(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function BV(o,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=wc(v.href),_=c.querySelector(Fd(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(o.count++,o=pp.bind(o),c.then(o,o)),h.state.loading|=4,h.instance=_,Fn(_);return}_=c.ownerDocument||c,v=Ak(v),(S=xa.get(S))&&y0(v,S),_=_.createElement("link"),Fn(_);var P=_;P._p=new Promise(function(F,X){P.onload=F,P.onerror=X}),rr(_,"link",v),h.instance=_}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(o.count++,h=pp.bind(o),c.addEventListener("load",h),c.addEventListener("error",h))}}var b0=0;function zV(o,c){return o.stylesheets&&o.count===0&&gp(o,o.stylesheets),0b0?50:800)+c);return o.unsuspend=h,function(){o.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function pp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)gp(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var vp=null;function gp(o,c){o.stylesheets=null,o.unsuspend!==null&&(o.count++,vp=new Map,c.forEach(qV,o),vp=null,pp.call(o))}function qV(o,c){if(!(c.state.loading&4)){var h=vp.get(o);if(h)var v=h.get(null);else{h=new Map,vp.set(o,h);for(var S=o.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),A0.exports=rG(),A0.exports}var iG=aG();const v_=new WeakMap,sG=new WeakMap,vv={current:[]};let P0=!1,jf=0;const hf=new Set,Cp=new Map;function e5(e){for(const t of e){if(vv.current.includes(t))continue;vv.current.push(t),t.recompute();const n=sG.get(t);if(n)for(const r of n){const a=v_.get(r);a?.length&&e5(a)}}}function oG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function lG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function t5(e){if(jf>0&&!Cp.has(e)&&Cp.set(e,e.prevState),hf.add(e),!(jf>0)&&!P0)try{for(P0=!0;hf.size>0;){const t=Array.from(hf);hf.clear();for(const n of t){const r=Cp.get(n)??n.prevState;n.prevState=r,oG(n)}for(const n of t){const r=v_.get(n);r&&(vv.current.push(n),e5(r))}for(const n of t){const r=v_.get(n);if(r)for(const a of r)lG(a)}}}finally{P0=!1,vv.current=[],Cp.clear()}}function Sf(e){jf++;try{e()}finally{if(jf--,jf===0){const t=hf.values().next().value;t&&t5(t)}}}function cG(e){return typeof e=="function"}class uG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,s;this.listeners.add(r);const l=(s=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:s.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):cG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),t5(this)}}const Ks="__TSR_index",rM="popstate",aM="beforeunload";function dG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},s=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=gv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Ks];u=iM(f+1,u),s({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Ks];u=iM(f,u),s({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{s({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{s({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{s({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Ks]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function iM(e,t){t||(t={});const n=EC();return{...t,key:n,__TSR_key:n,[Ks]:e}}function fG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const s=()=>a,l=M=>a=M,u=(M=>M),d=(()=>gv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=EC();t.history.replaceState({[Ks]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const w=()=>f;let b,N;const E=()=>{b&&(T._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),T._ignoreSubscribers=!1,b=void 0,N=void 0,m=void 0)},O=(M,R,B)=>{const $=u(R);N||(m=f),f=gv(R,B),b={href:$,state:B,isPush:b?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>E()))},A=M=>{f=d(),T.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),R=M.state[Ks]-f.state[Ks],B=R===1,$=R===-1,H=!B&&!$||p;p=!1;const V=H?"GO":$?"BACK":"FORWARD",q=H?{type:"GO",index:R}:{type:$?"BACK":"FORWARD"};if(x)x=!1;else{const G=s();if(typeof document<"u"&&G.length){for(const L of G)if(await L.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),T.notify(q);return}}}f=d(),T.notify(q)},k=M=>{if(j){j=!1;return}let R=!1;const B=s();if(typeof document<"u"&&B.length)for(const $ of B){const H=$.enableBeforeUnload??!0;if(H===!0){R=!0;break}if(typeof H=="function"&&H()===!0){R=!0;break}}if(R)return M.preventDefault(),M.returnValue=""},T=dG({getLocation:w,getLength:()=>t.history.length,pushState:(M,R)=>O("push",M,R),replaceState:(M,R)=>O("replace",M,R),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aM,k,{capture:!0}),t.removeEventListener(rM,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:s,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(aM,k,{capture:!0}),t.addEventListener(rM,C),t.history.pushState=function(...M){const R=n.apply(t.history,M);return T._ignoreSubscribers||A("PUSH"),R},t.history.replaceState=function(...M){const R=r.apply(t.history,M);return T._ignoreSubscribers||A("REPLACE"),R},T}function gv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=EC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Ks]:0,key:a,__TSR_key:a}}}function EC(){return(Math.random()+1).toString(36).substring(7)}function g_(e){return e[e.length-1]}function hG(e){return typeof e=="function"}function el(e,t){return hG(e)?e(t):e}const mG=Object.prototype.hasOwnProperty;function _a(e,t){if(e===t)return e;const n=t,r=lM(e)&&lM(n);if(!r&&!(yv(e)&&yv(n)))return n;const a=r?e:sM(e);if(!a)return n;const s=r?n:sM(n);if(!s)return n;const l=a.length,u=s.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!oM(n)||!n.hasOwnProperty("isPrototypeOf"))}function oM(e){return Object.prototype.toString.call(e)==="[object Object]"}function lM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function tl(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!tl(e[l],t[l],n)))return!1;return a===s}return!1}function tu(e){let t,n;const r=new Promise((a,s)=>{t=a,n=s});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function Xs(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const pG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function cM(e,t=pG){function n(a,s,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var vG="Invariant failed";function pr(e,t){if(!e)throw new Error(vG)}const mi=0,cl=1,nu=2,ru=3;function ts(e){return AC(e.filter(t=>t!==void 0).join("/"))}function AC(e){return e.replace(/\/{2,}/g,"/")}function TC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Zs(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function av(e){return Zs(TC(e))}function xv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function gG(e,t,n){return xv(e,n)===xv(t,n)}function yG(e){const{type:t,value:n}=e;if(t===mi)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===cl){const s=n.substring(1);if(r&&a)return`${r}{$${s}}${a}`;if(r)return`${r}{$${s}}`;if(a)return`{$${s}}${a}`}if(t===ru){const s=n.substring(1);return r&&a?`${r}{-$${s}}${a}`:r?`${r}{-$${s}}`:a?`{-$${s}}${a}`:`{-$${s}}`}if(t===nu){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function xG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=au(e,r).slice();const s=au(t,r);a.length>1&&g_(a)?.value==="/"&&a.pop();for(let d=0,f=s.length;d1&&(g_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:mi,value:"/"}));const l=a.map(yG);return ts(l)}const au=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=NG(e);return t?.set(e,r),r},bG=/^\$.{1,}$/,wG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,jG=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,SG=/^\$$/,_G=/^(.*?)\{\$\}(.*)$/;function NG(e){e=AC(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:mi,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(_G);if(a){const u=a[1],d=a[2];return{type:nu,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const s=r.match(jG);if(s){const u=s[1],d=s[2],f=s[3];return{type:ru,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(wG);if(l){const u=l[1],d=l[2],f=l[3];return{type:cl,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(bG.test(r)){const u=r.substring(1);return{type:cl,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return SG.test(r)?{type:nu,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:mi,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:mi,value:"/"})),t}function R0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=au(e,r);function s(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?CG(m,n):m}let l=!1;const u={},d=ts(a.map(f=>{if(f.type===mi)return f.value;if(f.type===nu){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=s("_splat");return`${m}${g}${p}`}if(f.type===cl){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${s(m)??"undefined"}${g}`}if(f.type===ru){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${s(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function CG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function y_(e,t,n){const r=OG(e,t,n);if(!(t.to&&!r))return r??{}}function OG(e,{to:t,fuzzy:n,caseSensitive:r},a){const s=t,l=au(e.startsWith("/")?e:`/${e}`,a),u=au(s.startsWith("/")?s:`/${s}`,a),d={};return EG(l,u,d,n,r)?d:void 0}function EG(e,t,n,r,a){let s=0,l=0;for(;sw.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(ts(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===mi){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;s++,l++;continue}else return!1}if(d.type===cl){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,s++),l++;continue}if(d.type===ru){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=ts(e.slice(s).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const s=TC(r.fullPath);let l=au(s),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return AG;if(p.type===mi)return TG;let x;p.type===cl?x=kG:p.type===ru?(x=MG,d++):x=PG;for(let j=g+1;j{const s=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function BG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(pr(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=Zs(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const s=LG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:s}}function Wa(e){return!!e?.isNotFound}function zG(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const bv="tsr-scroll-restoration-v1_3",qG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function FG(){const e=zG();if(!e)return null;const t=e.getItem(bv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=el(r,n)||n,e.setItem(bv,JSON.stringify(n)))}}const Op=FG(),x_=e=>e.state.__TSR_key||e.href;function UG(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let wv=!1;function n5({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:s}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];wv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(s??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}wv=!1}function HG(e,t){if(!Op&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!Op))return;e.isScrollRestorationSetup=!0,wv=!1;const r=e.options.getScrollRestorationKey||x_;window.history.scrollRestoration="manual";const a=s=>{if(wv||!e.isScrollRestoring)return;let l="";if(s.target===document||s.target===window)l="window";else{const d=s.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=UG(s.target)}const u=r(e.state.location);Op.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",qG(a,100),!0),e.subscribe("onRendered",s=>{const l=r(s.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(n5({storageKey:bv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&Op.set(u=>(u[l]||={},u)))})}function WG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function VG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function D0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function GG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const s=n[r];s==null?n[r]=D0(a):Array.isArray(s)?s.push(D0(a)):n[r]=[s,D0(a)]}return n}const YG=XG(JSON.parse),KG=ZG(JSON.stringify,JSON.parse);function XG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=GG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function ZG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const s=VG(a,r);return s?`?${s}`:""}}const ea="__root__";function r5(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function ci(e){return e instanceof Response&&!!e.options}function QG(e){const t=new Map;let n,r;const a=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,n=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){const l=t.get(s);if(l)return a(l),l.value},set(s,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(s);if(u)u.value=l,a(u);else{const d={key:s,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(s,d)}}}}const iv=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},zg=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),a5=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),pr(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);pr(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,a5(e,t))},Vs=(e,t,n)=>{if(!(!ci(n)&&!Wa(n))){if(ci(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=ci(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Wa(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw ci(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(a5(e,n),n)}},i5=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Xd=(e,t,n,r)=>{const{id:a,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Vs(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Vs(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},JG=(e,t,n,r)=>{const a=e.router.getMatch(t),s=e.matches[n-1]?.id,l=s?e.router.getMatch(s):void 0;if(e.router.isShell()){a.ssr=r.id===ea;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:Ep(f,a.searchError),params:Ep(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:Ep(x.search,x.searchError),params:Ep(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(Xs(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},s5=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!zg(e,t)&&(n.options.loader||n.options.beforeLoad||c5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{iv(e)},a);r._nonReactive.pendingTimeout=l}},eY=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;s5(e,t,n,r);const a=()=>{const s=e.router.getMatch(t);s.preload&&(s.status==="redirected"||s.status==="notFound")&&Vs(e,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},tY=(e,t,n,r)=>{const a=e.router.getMatch(t),s=a._nonReactive.loadPromise;a._nonReactive.loadPromise=tu(()=>{s?.resolve()});const{paramsError:l,searchError:u}=a;l&&Xd(e,n,l,"PARSE_PARAMS"),u&&Xd(e,n,u,"VALIDATE_SEARCH"),s5(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,T=>({...T,isFetching:"beforeLoad",fetchCount:T.fetchCount+1,abortController:d,context:g})))},w=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,T=>({...T,isFetching:!1}))};if(!r.options.beforeLoad){Sf(()=>{j(),w()});return}a._nonReactive.beforeLoadPromise=tu();const{search:b,params:N,cause:E}=a,O=zg(e,t),A={search:b,abortController:d,params:N,preload:O,context:g,location:e.location,navigate:T=>e.router.navigate({...T,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:O?"preload":E,matches:e.matches,...e.router.options.additionalContext},C=T=>{if(T===void 0){Sf(()=>{j(),w()});return}(ci(T)||Wa(T))&&(j(),Xd(e,n,T,"BEFORE_LOAD")),Sf(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:T,context:{...M.context,...T}})),w()})};let k;try{if(k=r.options.beforeLoad(A),Xs(k))return j(),k.catch(T=>{Xd(e,n,T,"BEFORE_LOAD")}).then(C)}catch(T){j(),Xd(e,n,T,"BEFORE_LOAD")}C(k)},nY=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],s=()=>{if(e.router.isServer){const d=JG(e,n,t,a);if(Xs(d))return d.then(u)}return u()},l=()=>tY(e,n,t,a),u=()=>{if(i5(e,n))return;const d=eY(e,n,a);return Xs(d)?d.then(l):l()};return s()},_f=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([s,l,u])=>{const d=s?.meta,f=s?.links,m=s?.scripts,p=s?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},o5=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:s,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=zg(e,t);return{params:s,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},hM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&l5(r);const s=r.options.loader?.(o5(e,t,n,r)),l=r.options.loader&&Xs(s);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await s:s;Vs(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=_f(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let l=s;const u=a._nonReactive.minPendingPromise;u&&await u,Wa(s)&&await r.options.notFoundComponent?.preload?.(),Vs(e,e.router.getMatch(t),s);try{r.options.onError?.(s)}catch(m){l=m,Vs(e,e.router.getMatch(t),m)}const d=_f(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const s=e.router.getMatch(t);if(s){const l=_f(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}s._nonReactive.loaderPromise=void 0}Vs(e,s,a)}},rY=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,s=!1;const l=e.router.looseRoutesById[r];if(i5(e,n)){if(e.router.isServer){const f=_f(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Vs(e,m,p)}else{const m=Date.now()-f.updatedAt,p=zg(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(o5(e,n,t,l)):x,w=!!p&&!e.router.state.matches.some(O=>O.id===n),b=e.router.getMatch(n);b._nonReactive.loaderPromise=tu(),w!==b.preload&&e.updateMatch(n,O=>({...O,preload:w}));const{status:N,invalid:E}=b;if(a=N==="success"&&(E||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)s=!0,(async()=>{try{await hM(e,n,t,l);const O=e.router.getMatch(n);O._nonReactive.loaderPromise?.resolve(),O._nonReactive.loadPromise?.resolve(),O._nonReactive.loaderPromise=void 0}catch(O){ci(O)&&await e.router.navigate(O.options)}})();else if(N!=="success"||a&&e.sync)await hM(e,n,t,l);else{const O=_f(e,n,l);if(O){const A=await O;e.updateMatch(n,C=>({...C,...A}))}}}}const u=e.router.getMatch(n);s||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,s||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=s?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function mM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&iv(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of u5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Ep(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function c5(e){for(const t of u5)if(e.options[t]?.preload)return!0;return!1}const u5=["component","errorComponent","pendingComponent","notFoundComponent"];function aY(e){return{input:({url:t})=>{for(const n of e)t=d5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=f5(e[n],t);return t}}}function iY(e){const t=av(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),s=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(s)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=ts(["/",t,l.pathname]),l)}}function d5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function f5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function nl(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,s=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:s}}class sY{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",s=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=fG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new uG(lY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),HG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(s||a!==d||l!==f){this.basepath=d;const g=[];av(d)!==""&&g.push(iY({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:aY(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=BG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=d5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:w,hash:b}=p;return{href:j,publicHref:d,url:p.href,pathname:cM(w),searchStr:x,search:_a(r?.search,g),hash:b.split("#").reverse()[0]??"",state:_a(r?.state,f)}},s=a(n),{__tempLocation:l,__tempKey:u}=s.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=s.state.key,d.state.__TSR_key=s.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:s}}return s},this.resolvePathWithBase=(n,r)=>xG({base:n,to:AC(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=QG(1e3),this.getMatchedRoutes=(n,r)=>cY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(s=>s.status==="pending"),r=this.state.matches.filter(s=>s.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(s=>{this.cancelMatch(s.id)})},this.buildLocation=n=>{const r=(s={})=>{const l=s._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=g_(u);s.from;const f=s.unsafeRelative==="path"?l.pathname:s.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=s.to?this.resolvePathWithBase(m,`${s.to}`):this.resolvePathWithBase(m,"."),j=s.params===!1||s.params===null?{}:(s.params??!0)===!0?g:Object.assign(g,el(s.params,g)),w=R0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(w,void 0,{_buildLocation:!0}).map(B=>this.looseRoutesById[B.routeId]);if(Object.keys(j).length>0)for(const B of b){const $=B.options.params?.stringify??B.options.stringifyParams;$&&Object.assign(j,$(j))}const N=n.leaveParams?x:cM(R0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let E=p;if(n._includeValidateSearch&&this.options.search?.strict){const B={};b.forEach($=>{if($.options.validateSearch)try{Object.assign(B,b_($.options.validateSearch,{...B,...E}))}catch{}}),E=B}E=uY({search:E,dest:s,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=_a(p,E);const O=this.options.stringifySearch(E),A=s.hash===!0?l.hash:s.hash?el(s.hash,l.hash):void 0,C=A?`#${A}`:"";let k=s.state===!0?l.state:s.state?el(s.state,l.state):{};k=_a(l.state,k);const T=`${N}${O}${C}`,M=new URL(T,this.origin),R=f5(this.rewrite,M);return{publicHref:R.pathname+R.search+R.hash,href:T,url:R.href,pathname:N,search:E,searchStr:O,state:k,hash:A??"",unmaskOnReload:s.unmaskOnReload}},a=(s={},l)=>{const u=r(s);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=y_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const s=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=tl(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=Zs(this.latestLocation.href)===Zs(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=tu(()=>{u?.resolve()}),l&&s())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:s,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=gv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:s,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...s})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...s}).url),s.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...s,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(av(a(this.latestLocation.href))!==av(a(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),r5({href:s})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(s=>s.id===a.id))}))},this.load=async n=>{let r,a,s;for(s=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...nl({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...nl({resolvedLocation:f,location:d})}),await mM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];Sf(()=>{this.__store.setState(x=>{const j=x.matches,w=x.pendingMatches||x.matches;return m=j.filter(b=>!w.some(N=>N.id===b.id)),p=w.filter(b=>!j.some(N=>N.id===b.id)),g=w.filter(b=>j.some(N=>N.id===b.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(b=>b.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(w=>{this.looseRoutesById[w.routeId].options[j]?.(w)})})})})}})}catch(d){ci(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wa(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const s=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(nl({resolvedLocation:l,location:s})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(s=>s.id===n)?"pendingMatches":this.state.matches.some(s=>s.id===n)?"matches":this.state.cachedMatches.some(s=>s.id===n)?"cachedMatches":"";a&&this.__store.setState(s=>({...s,[a]:s[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(s=>!r(s))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const s=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:n})},this.loadRouteChunk=l5,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...s,...this.state.cachedMatches.map(u=>u.id)]);Sf(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await mM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{s.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(ci(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Wa(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},s=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=y_(u.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!d||n.params&&!tl(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?tl(u.search,s.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??KG,parseSearch:t.parseSearch??YG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:s}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&s["**"]:Zs(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return ea}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,w]=(()=>{const H=g?.search??t.search,V=g?._strictSearch??void 0;try{const q=b_(m.options.validateSearch,{...H})??void 0;return[{...H,...q},{...V,...q},void 0]}catch(q){let G=q;if(q instanceof jv||(G=new jv(q.message,{cause:q})),n?.throwOnError)throw G;return[H,{},G]}})(),b=m.options.loaderDeps?.({search:x})??"",N=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:O}=R0({path:m.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),A=m.id+E+N,C=this.getMatch(A),k=this.state.matches.find(H=>H.routeId===m.id),T=C?._strictParams??O;let M;if(!C){const H=m.options.params?.parse??m.options.parseParams;if(H)try{Object.assign(T,H(T))}catch(V){if(M=new oY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(s,T);const R=k?"stay":"enter";let B;if(C)B={...C,cause:R,params:k?_a(k.params,s):s,_strictParams:T,search:_a(k?k.search:C.search,x),_strictSearch:j};else{const H=m.options.loader||m.options.beforeLoad||m.lazyFn||c5(m)?"pending":"success";B={id:A,index:p,routeId:m.id,params:k?_a(k.params,s):s,_strictParams:T,pathname:E,updatedAt:Date.now(),search:k?_a(k.search,x):x,_strictSearch:j,searchError:void 0,status:H,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:tu()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:R,loaderDeps:k?_a(k.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(B.globalNotFound=u===m.id),B.searchError=w;const $=f(g);B.context={...$,...B.__routeContext,...B.__beforeLoadContext},d.push(B)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],w=f(j);if(g.options.context){const b={deps:m.loaderDeps,params:m.params,context:w??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(b)??void 0}m.context={...w,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class jv extends Error{}class oY extends Error{}function lY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function b_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new jv("Async validation not supported");if(n.issues)throw new jv(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function cY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:s,parseCache:l}){let u={};const d=Zs(e),f=x=>y_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of s){const w=f(j);if(w)if(j.path!=="/"&&w["**"])x||(x={foundRoute:j,routeParams:w});else{m=j,u=w;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[ea];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function uY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((w,b)=>b(w),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((w,b)=>b(w),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...b_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],s=({search:u})=>t.search?t.search===!0?u:el(t.search,u):{};a.push(s);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const dY="Error preloading route! ☝️";class h5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=ea:this.parentRoute||pr(!1);let s=a?ea:r?.path;s&&s!=="/"&&(s=TC(s));const l=r?.id||s;let u=a?ea:ts([this.parentRoute.id===ea?"":this.parentRoute.id,l]);s===ea&&(s="/"),u!==ea&&(u=ts(["/",u]));const d=u===ea?"/":ts([this.parentRoute.fullPath,s]);this._path=s,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class fY extends h5{constructor(t){super(t)}}function kC(e){const t=e.errorComponent??qg;return i.jsx(hY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class hY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function qg({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function mY({children:e,fallback:t=null}){return pY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function pY(){return W.useSyncExternalStore(vY,()=>!0,()=>!1)}function vY(){return()=>{}}var $0={exports:{}},I0={},L0={exports:{}},B0={};var pM;function gY(){if(pM)return B0;pM=1;var e=Eh();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),w=j[0].inst,b=j[1];return s(function(){w.value=x,w.getSnapshot=g,d(w)&&b({inst:w})},[p,x,g]),a(function(){return d(w)&&b({inst:w}),p(function(){d(w)&&b({inst:w})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return B0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,B0}var vM;function yY(){return vM||(vM=1,L0.exports=gY()),L0.exports}var gM;function xY(){if(gM)return I0;gM=1;var e=Eh(),t=yY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return I0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=s(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=u(function(){function N(k){if(!E){if(E=!0,O=k,k=g(k),x!==void 0&&w.hasValue){var T=w.value;if(x(T,k))return A=T}return A=k}if(T=A,r(O,k))return T;var M=g(k);return x!==void 0&&x(T,M)?(O=k,T):(O=k,A=M)}var E=!1,O,A,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var b=a(f,j[0],j[1]);return l(function(){w.hasValue=!0,w.value=b},[b]),d(b),b},I0}var yM;function bY(){return yM||(yM=1,$0.exports=xY()),$0.exports}var wY=bY();function jY(e,t=r=>r,n={}){const r=n.equal??SY;return wY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function SY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=xM(e);if(n.length!==xM(t).length)return!1;for(let r=0;r"u"?z0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=z0,z0)}function zr(e){const t=y.useContext(m5());return e?.warn,t}function Nr(e){const t=zr({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return jY(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const s=_a(r.current,e.select(a));return r.current=s,s}return e.select(a)}return a})}const Fg=y.createContext(void 0),_Y=y.createContext(void 0);function yi(e){const t=y.useContext(e.from?_Y:Fg);return Nr({select:r=>{const a=r.matches.find(s=>e.from?e.from===s.routeId:s.id===t);if(pr(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function MC(e){return yi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function PC(e){const{select:t,...n}=e;return yi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function RC(e){return yi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function DC(e){return yi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function la(e){const t=zr();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var Sl=JL();const NY=At(Sl),Ap=typeof window<"u"?y.useLayoutEffect:y.useEffect;function q0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function CY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([s])=>{t(s)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function OY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function EY(e,t){const n=zr(),[r,a]=y.useState(!1),s=y.useRef(!1),l=OY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:w,resetScroll:b,viewTransition:N,children:E,target:O,disabled:A,style:C,className:k,onClick:T,onFocus:M,onMouseEnter:R,onMouseLeave:B,onTouchStart:$,ignoreBlocker:H,params:V,search:q,hash:G,state:L,mask:D,reloadDocument:U,unsafeRelative:K,from:J,_fromLocation:I,...z}=e,Y=Nr({select:le=>le.location.search,structuralSharing:!0}),te=e.from,ae=y.useMemo(()=>({...e,from:te}),[n,Y,te,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ge=y.useMemo(()=>n.buildLocation({...ae}),[n,ae]),ee=y.useMemo(()=>{if(A)return;let le=ge.maskedLocation?ge.maskedLocation.url:ge.url,ue=!1;return n.origin&&(le.startsWith(n.origin)?le=n.history.createHref(le.replace(n.origin,""))||"/":ue=!0),{href:le,external:ue}},[A,ge.maskedLocation,ge.url,n.origin,n.history]),Se=y.useMemo(()=>{if(ee?.external)return ee.href;try{return new URL(m),m}catch{}},[m,ee]),re=e.reloadDocument||Se?!1:p??n.options.defaultPreload,we=g??n.options.defaultPreloadDelay??0,je=Nr({select:le=>{if(Se)return!1;if(f?.exact){if(!gG(le.location.pathname,ge.pathname,n.basepath))return!1}else{const ue=xv(le.location.pathname,n.basepath),Ve=xv(ge.pathname,n.basepath);if(!(ue.startsWith(Ve)&&(ue.length===Ve.length||ue[Ve.length]==="/")))return!1}return(f?.includeSearch??!0)&&!tl(le.location.search,ge.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?le.location.hash===ge.hash:!0}}),fe=y.useCallback(()=>{n.preloadRoute({...ae}).catch(le=>{console.warn(le),console.warn(dY)})},[n,ae]),Le=y.useCallback(le=>{le?.isIntersecting&&fe()},[fe]);CY(l,Le,PY,{disabled:!!A||re!=="viewport"}),y.useEffect(()=>{s.current||!A&&re==="render"&&(fe(),s.current=!0)},[A,fe,re]);const Oe=le=>{const ue=le.currentTarget.getAttribute("target"),Ve=O!==void 0?O:ue;if(!A&&!RY(le)&&!le.defaultPrevented&&(!Ve||Ve==="_self")&&le.button===0){le.preventDefault(),Sl.flushSync(()=>{a(!0)});const Mn=n.subscribe("onResolved",()=>{Mn(),a(!1)});n.navigate({...ae,replace:j,resetScroll:b,hashScrollIntoView:x,startTransition:w,viewTransition:N,ignoreBlocker:H})}};if(Se)return{...z,ref:l,href:Se,...E&&{children:E},...O&&{target:O},...A&&{disabled:A},...C&&{style:C},...k&&{className:k},...T&&{onClick:T},...M&&{onFocus:M},...R&&{onMouseEnter:R},...B&&{onMouseLeave:B},...$&&{onTouchStart:$}};const We=le=>{A||re&&fe()},be=We,Ae=le=>{if(!(A||!re))if(!we)fe();else{const ue=le.target;if(Zd.has(ue))return;const Ve=setTimeout(()=>{Zd.delete(ue),fe()},we);Zd.set(ue,Ve)}},ke=le=>{if(A||!re||!we)return;const ue=le.target,Ve=Zd.get(ue);Ve&&(clearTimeout(Ve),Zd.delete(ue))},Qt=je?el(u,{})??AY:F0,St=je?F0:el(d,{})??F0,Tt=[k,Qt.className,St.className].filter(Boolean).join(" "),Sn=(C||Qt.style||St.style)&&{...C,...Qt.style,...St.style};return{...z,...Qt,...St,href:ee?.href,ref:l,onClick:Qd([T,Oe]),onFocus:Qd([M,We]),onMouseEnter:Qd([R,Ae]),onMouseLeave:Qd([B,ke]),onTouchStart:Qd([$,be]),disabled:!!A,target:O,...Sn&&{style:Sn},...Tt&&{className:Tt},...A&&TY,...je&&kY,...r&&MY}}const F0={},AY={className:"active"},TY={role:"link","aria-disabled":!0},kY={"data-status":"active","aria-current":"page"},MY={"data-transitioning":"transitioning"},Zd=new WeakMap,PY={rootMargin:"100px"},Qd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},$C=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:s,...l}=EY(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:s},u)});function RY(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class DY extends h5{constructor(t){super(t),this.useMatch=n=>yi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>RC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>PC({...n,from:this.id}),this.useLoaderData=n=>MC({...n,from:this.id}),this.useNavigate=()=>la({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx($C,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function or(e){return new DY(e)}class $Y extends fY{constructor(t){super(t),this.useMatch=n=>yi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>RC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>PC({...n,from:this.id}),this.useLoaderData=n=>MC({...n,from:this.id}),this.useNavigate=()=>la({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx($C,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function IY(e){return new $Y(e)}function bM(e){return typeof e=="object"?new wM(e,{silent:!0}).createRoute(e):new wM(e,{silent:!0}).createRoute}class wM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=or(r);return a.isRoot=!1,a},this.silent=n?.silent}}class jM{constructor(t){this.useMatch=n=>yi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>RC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>PC({...n,from:this.options.id}),this.useLoaderData=n=>MC({...n,from:this.options.id}),this.useNavigate=()=>{const n=zr();return la({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function SM(e){return typeof e=="object"?new jM(e):t=>new jM({id:e,...t})}function LY(){const e=zr(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:s}=Nr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=q0(s),u=s||n||a,d=q0(u),f=s||a,m=q0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Zs(e.latestLocation.href)!==Zs(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),Ap(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),Ap(()=>{l&&!s&&e.emit({type:"onLoad",...nl(e.state)})},[l,e,s]),Ap(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...nl(e.state)})},[f,m,e]),Ap(()=>{d&&!u&&(e.emit({type:"onResolved",...nl(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),WG(e))},[u,d,e]),null}function BY(e){const t=Nr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(kC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Wa(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Wa(n))return e.fallback?.(n);throw n},children:e.children})}function zY(){return i.jsx("p",{children:"Not Found"})}function Rc(e){return i.jsx(i.Fragment,{children:e.children})}function p5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx(zY,{})}function qY({children:e}){const t=zr();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` +`)+";$_TSR.c()"}}):null}function FY(){const e=zr();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||x_)(e.latestLocation),r=n!==x_(e.latestLocation)?n:void 0,a={storageKey:bv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(qY,{children:`(${n5.toString()})(${JSON.stringify(a)})`})}const v5=y.memo(function({matchId:t}){const n=zr(),r=Nr({select:N=>{const E=N.matches.find(O=>O.id===t);return pr(E),{routeId:E.routeId,ssr:E.ssr,_displayPending:E._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],s=a.options.pendingComponent??n.options.defaultPendingComponent,l=s?i.jsx(s,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??s??(a.options.errorComponent?.preload||m))?y.Suspense:Rc,g=u?kC:Rc,x=f?BY:Rc,j=Nr({select:N=>N.loadedAt}),w=Nr({select:N=>{const E=N.matches.findIndex(O=>O.id===t);return N.matches[E-1]?.routeId}}),b=a.isRoot?a.options.shellComponent??Rc:Rc;return i.jsxs(b,{children:[i.jsx(Fg.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||qg,onCatch:(N,E)=>{if(Wa(N))throw N;d?.(N,E)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(mY,{fallback:l,children:i.jsx(_M,{matchId:t})}):i.jsx(_M,{matchId:t})})})})}),w===ea&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx(UY,{}),i.jsx(FY,{})]}):null]})});function UY(){const e=zr(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...nl(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const _M=y.memo(function({matchId:t}){const n=zr(),{match:r,key:a,routeId:s}=Nr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[s],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(IC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=tu();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return pr(Wa(r.error)),p5(n,l,r.error);if(r.status==="redirected")throw pr(ci(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||qg;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),IC=y.memo(function(){const t=zr(),n=y.useContext(Fg),r=Nr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],s=Nr({select:f=>{const p=f.matches.find(g=>g.id===n);return pr(p),p.globalNotFound}}),l=Nr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(s)return p5(t,a,void 0);if(!l)return null;const d=i.jsx(v5,{matchId:l});return r===ea?i.jsx(y.Suspense,{fallback:u,children:d}):d});function HY(){const e=zr(),n=e.routesById[ea].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?Rc:y.Suspense,s=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(LY,{}),i.jsx(WY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:s}):s}function WY(){const e=zr(),t=Nr({select:a=>a.matches[0]?.id}),n=Nr({select:a=>a.loadedAt}),r=t?i.jsx(v5,{matchId:t}):null;return i.jsx(Fg.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(kC,{getResetKey:()=>n,errorComponent:qg,onCatch:a=>{a.message||a.toString()},children:r})})}function VY(){const e=zr();return Nr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s})},[e])}const GY=e=>new YY(e);class YY extends sY{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=bM,globalThis.createLazyFileRoute=SM):typeof window<"u"&&(window.createFileRoute=bM,window.createLazyFileRoute=SM);function KY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=m5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function XY({router:e,...t}){return i.jsx(KY,{router:e,...t,children:i.jsx(HY,{})})}function g5(e,t){return function(){return e.apply(t,arguments)}}const{toString:ZY}=Object.prototype,{getPrototypeOf:LC}=Object,{iterator:Ug,toStringTag:y5}=Symbol,Hg=(e=>t=>{const n=ZY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ka=e=>(e=e.toLowerCase(),t=>Hg(t)===e),Wg=e=>t=>typeof t===e,{isArray:Lu}=Array,iu=Wg("undefined");function Ah(e){return e!==null&&!iu(e)&&e.constructor!==null&&!iu(e.constructor)&&Dr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const x5=Ka("ArrayBuffer");function QY(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&x5(e.buffer),t}const JY=Wg("string"),Dr=Wg("function"),b5=Wg("number"),Th=e=>e!==null&&typeof e=="object",eK=e=>e===!0||e===!1,sv=e=>{if(Hg(e)!=="object")return!1;const t=LC(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(y5 in e)&&!(Ug in e)},tK=e=>{if(!Th(e)||Ah(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},nK=Ka("Date"),rK=Ka("File"),aK=Ka("Blob"),iK=Ka("FileList"),sK=e=>Th(e)&&Dr(e.pipe),oK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Dr(e.append)&&((t=Hg(e))==="formdata"||t==="object"&&Dr(e.toString)&&e.toString()==="[object FormData]"))},lK=Ka("URLSearchParams"),[cK,uK,dK,fK]=["ReadableStream","Request","Response","Headers"].map(Ka),hK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function kh(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),Lu(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Yo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,j5=e=>!iu(e)&&e!==Yo;function w_(){const{caseless:e,skipUndefined:t}=j5(this)&&this||{},n={},r=(a,s)=>{const l=e&&w5(n,s)||s;sv(n[l])&&sv(a)?n[l]=w_(n[l],a):sv(a)?n[l]=w_({},a):Lu(a)?n[l]=a.slice():(!t||!iu(a))&&(n[l]=a)};for(let a=0,s=arguments.length;a(kh(t,(a,s)=>{n&&Dr(a)?e[s]=g5(a,n):e[s]=a},{allOwnKeys:r}),e),pK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),vK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},gK=(e,t,n,r)=>{let a,s,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),s=a.length;s-- >0;)l=a[s],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&LC(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},yK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},xK=e=>{if(!e)return null;if(Lu(e))return e;let t=e.length;if(!b5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},bK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&LC(Uint8Array)),wK=(e,t)=>{const r=(e&&e[Ug]).call(e);let a;for(;(a=r.next())&&!a.done;){const s=a.value;t.call(e,s[0],s[1])}},jK=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},SK=Ka("HTMLFormElement"),_K=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),NM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),NK=Ka("RegExp"),S5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};kh(n,(a,s)=>{let l;(l=t(a,s,e))!==!1&&(r[s]=l||a)}),Object.defineProperties(e,r)},CK=e=>{S5(e,(t,n)=>{if(Dr(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Dr(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},OK=(e,t)=>{const n={},r=a=>{a.forEach(s=>{n[s]=!0})};return Lu(e)?r(e):r(String(e).split(t)),n},EK=()=>{},AK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function TK(e){return!!(e&&Dr(e.append)&&e[y5]==="FormData"&&e[Ug])}const kK=e=>{const t=new Array(10),n=(r,a)=>{if(Th(r)){if(t.indexOf(r)>=0)return;if(Ah(r))return r;if(!("toJSON"in r)){t[a]=r;const s=Lu(r)?[]:{};return kh(r,(l,u)=>{const d=n(l,a+1);!iu(d)&&(s[u]=d)}),t[a]=void 0,s}}return r};return n(e,0)},MK=Ka("AsyncFunction"),PK=e=>e&&(Th(e)||Dr(e))&&Dr(e.then)&&Dr(e.catch),_5=((e,t)=>e?setImmediate:t?((n,r)=>(Yo.addEventListener("message",({source:a,data:s})=>{a===Yo&&s===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Yo.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Dr(Yo.postMessage)),RK=typeof queueMicrotask<"u"?queueMicrotask.bind(Yo):typeof process<"u"&&process.nextTick||_5,DK=e=>e!=null&&Dr(e[Ug]),he={isArray:Lu,isArrayBuffer:x5,isBuffer:Ah,isFormData:oK,isArrayBufferView:QY,isString:JY,isNumber:b5,isBoolean:eK,isObject:Th,isPlainObject:sv,isEmptyObject:tK,isReadableStream:cK,isRequest:uK,isResponse:dK,isHeaders:fK,isUndefined:iu,isDate:nK,isFile:rK,isBlob:aK,isRegExp:NK,isFunction:Dr,isStream:sK,isURLSearchParams:lK,isTypedArray:bK,isFileList:iK,forEach:kh,merge:w_,extend:mK,trim:hK,stripBOM:pK,inherits:vK,toFlatObject:gK,kindOf:Hg,kindOfTest:Ka,endsWith:yK,toArray:xK,forEachEntry:wK,matchAll:jK,isHTMLForm:SK,hasOwnProperty:NM,hasOwnProp:NM,reduceDescriptors:S5,freezeMethods:CK,toObjectSet:OK,toCamelCase:_K,noop:EK,toFiniteNumber:AK,findKey:w5,global:Yo,isContextDefined:j5,isSpecCompliantForm:TK,toJSONObject:kK,isAsyncFn:MK,isThenable:PK,setImmediate:_5,asap:RK,isIterable:DK};function tt(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}he.inherits(tt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:he.toJSONObject(this.config),code:this.code,status:this.status}}});const N5=tt.prototype,C5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{C5[e]={value:e}});Object.defineProperties(tt,C5);Object.defineProperty(N5,"isAxiosError",{value:!0});tt.from=(e,t,n,r,a,s)=>{const l=Object.create(N5);he.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return tt.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",s&&Object.assign(l,s),l};const $K=null;function j_(e){return he.isPlainObject(e)||he.isArray(e)}function O5(e){return he.endsWith(e,"[]")?e.slice(0,-2):e}function CM(e,t,n){return e?e.concat(t).map(function(a,s){return a=O5(a),!n&&s?"["+a+"]":a}).join(n?".":""):t}function IK(e){return he.isArray(e)&&!e.some(j_)}const LK=he.toFlatObject(he,{},null,function(t){return/^is[A-Z]/.test(t)});function Vg(e,t,n){if(!he.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=he.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,b){return!he.isUndefined(b[w])});const r=n.metaTokens,a=n.visitor||m,s=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&he.isSpecCompliantForm(t);if(!he.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(he.isDate(j))return j.toISOString();if(he.isBoolean(j))return j.toString();if(!d&&he.isBlob(j))throw new tt("Blob is not supported. Use a Buffer instead.");return he.isArrayBuffer(j)||he.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,w,b){let N=j;if(j&&!b&&typeof j=="object"){if(he.endsWith(w,"{}"))w=r?w:w.slice(0,-2),j=JSON.stringify(j);else if(he.isArray(j)&&IK(j)||(he.isFileList(j)||he.endsWith(w,"[]"))&&(N=he.toArray(j)))return w=O5(w),N.forEach(function(O,A){!(he.isUndefined(O)||O===null)&&t.append(l===!0?CM([w],A,s):l===null?w:w+"[]",f(O))}),!1}return j_(j)?!0:(t.append(CM(b,w,s),f(j)),!1)}const p=[],g=Object.assign(LK,{defaultVisitor:m,convertValue:f,isVisitable:j_});function x(j,w){if(!he.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+w.join("."));p.push(j),he.forEach(j,function(N,E){(!(he.isUndefined(N)||N===null)&&a.call(t,N,he.isString(E)?E.trim():E,w,g))===!0&&x(N,w?w.concat(E):[E])}),p.pop()}}if(!he.isObject(e))throw new TypeError("data must be an object");return x(e),t}function OM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function BC(e,t){this._pairs=[],e&&Vg(e,this,t)}const E5=BC.prototype;E5.append=function(t,n){this._pairs.push([t,n])};E5.toString=function(t){const n=t?function(r){return t.call(this,r,OM)}:OM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function BK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function A5(e,t,n){if(!t)return e;const r=n&&n.encode||BK;he.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let s;if(a?s=a(t,n):s=he.isURLSearchParams(t)?t.toString():new BC(t,n).toString(r),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class EM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){he.forEach(this.handlers,function(r){r!==null&&t(r)})}}const T5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},zK=typeof URLSearchParams<"u"?URLSearchParams:BC,qK=typeof FormData<"u"?FormData:null,FK=typeof Blob<"u"?Blob:null,UK={isBrowser:!0,classes:{URLSearchParams:zK,FormData:qK,Blob:FK},protocols:["http","https","file","blob","url","data"]},zC=typeof window<"u"&&typeof document<"u",S_=typeof navigator=="object"&&navigator||void 0,HK=zC&&(!S_||["ReactNative","NativeScript","NS"].indexOf(S_.product)<0),WK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",VK=zC&&window.location.href||"http://localhost",GK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:zC,hasStandardBrowserEnv:HK,hasStandardBrowserWebWorkerEnv:WK,navigator:S_,origin:VK},Symbol.toStringTag,{value:"Module"})),hr={...GK,...UK};function YK(e,t){return Vg(e,new hr.classes.URLSearchParams,{visitor:function(n,r,a,s){return hr.isNode&&he.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function KK(e){return he.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function XK(e){const t={},n=Object.keys(e);let r;const a=n.length;let s;for(r=0;r=n.length;return l=!l&&he.isArray(a)?a.length:l,d?(he.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!he.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],s)&&he.isArray(a[l])&&(a[l]=XK(a[l])),!u)}if(he.isFormData(e)&&he.isFunction(e.entries)){const n={};return he.forEachEntry(e,(r,a)=>{t(KK(r),a,n,0)}),n}return null}function ZK(e,t,n){if(he.isString(e))try{return(t||JSON.parse)(e),he.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Mh={transitional:T5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,s=he.isObject(t);if(s&&he.isHTMLForm(t)&&(t=new FormData(t)),he.isFormData(t))return a?JSON.stringify(k5(t)):t;if(he.isArrayBuffer(t)||he.isBuffer(t)||he.isStream(t)||he.isFile(t)||he.isBlob(t)||he.isReadableStream(t))return t;if(he.isArrayBufferView(t))return t.buffer;if(he.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return YK(t,this.formSerializer).toString();if((u=he.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Vg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||a?(n.setContentType("application/json",!1),ZK(t)):t}],transformResponse:[function(t){const n=this.transitional||Mh.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(he.isResponse(t)||he.isReadableStream(t))return t;if(t&&he.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?tt.from(u,tt.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:hr.classes.FormData,Blob:hr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};he.forEach(["delete","get","head","post","put","patch"],e=>{Mh.headers[e]={}});const QK=he.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),JK=e=>{const t={};let n,r,a;return e&&e.split(` +`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&QK[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},AM=Symbol("internals");function Jd(e){return e&&String(e).trim().toLowerCase()}function ov(e){return e===!1||e==null?e:he.isArray(e)?e.map(ov):String(e)}function eX(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const tX=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function U0(e,t,n,r,a){if(he.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!he.isString(t)){if(he.isString(r))return t.indexOf(r)!==-1;if(he.isRegExp(r))return r.test(t)}}function nX(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function rX(e,t){const n=he.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,s,l){return this[r].call(this,t,a,s,l)},configurable:!0})})}let $r=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function s(u,d,f){const m=Jd(d);if(!m)throw new Error("header name must be a non-empty string");const p=he.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=ov(u))}const l=(u,d)=>he.forEach(u,(f,m)=>s(f,m,d));if(he.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(he.isString(t)&&(t=t.trim())&&!tX(t))l(JK(t),n);else if(he.isObject(t)&&he.isIterable(t)){let u={},d,f;for(const m of t){if(!he.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?he.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=Jd(t),t){const r=he.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return eX(a);if(he.isFunction(n))return n.call(this,a,r);if(he.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Jd(t),t){const r=he.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||U0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function s(l){if(l=Jd(l),l){const u=he.findKey(r,l);u&&(!n||U0(r,r[u],u,n))&&(delete r[u],a=!0)}}return he.isArray(t)?t.forEach(s):s(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const s=n[r];(!t||U0(this,this[s],s,t,!0))&&(delete this[s],a=!0)}return a}normalize(t){const n=this,r={};return he.forEach(this,(a,s)=>{const l=he.findKey(r,s);if(l){n[l]=ov(a),delete n[s];return}const u=t?nX(s):String(s).trim();u!==s&&delete n[s],n[u]=ov(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return he.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&he.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[AM]=this[AM]={accessors:{}}).accessors,a=this.prototype;function s(l){const u=Jd(l);r[u]||(rX(a,l),r[u]=!0)}return he.isArray(t)?t.forEach(s):s(t),this}};$r.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);he.reduceDescriptors($r.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});he.freezeMethods($r);function H0(e,t){const n=this||Mh,r=t||n,a=$r.from(r.headers);let s=r.data;return he.forEach(e,function(u){s=u.call(n,s,a.normalize(),t?t.status:void 0)}),a.normalize(),s}function M5(e){return!!(e&&e.__CANCEL__)}function Bu(e,t,n){tt.call(this,e??"canceled",tt.ERR_CANCELED,t,n),this.name="CanceledError"}he.inherits(Bu,tt,{__CANCEL__:!0});function P5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new tt("Request failed with status code "+n.status,[tt.ERR_BAD_REQUEST,tt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function aX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function iX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[s];l||(l=f),n[a]=d,r[a]=f;let p=s,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===s&&(s=(s+1)%e),f-l{n=m,a=null,s&&(clearTimeout(s),s=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,s||(s=setTimeout(()=>{s=null,l(a)},r-p)))},()=>a&&l(a)]}const Sv=(e,t,n=3)=>{let r=0;const a=iX(50,250);return sX(s=>{const l=s.loaded,u=s.lengthComputable?s.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:s,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},TM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},kM=e=>(...t)=>he.asap(()=>e(...t)),oX=hr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,hr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(hr.origin),hr.navigator&&/(msie|trident)/i.test(hr.navigator.userAgent)):()=>!0,lX=hr.hasStandardBrowserEnv?{write(e,t,n,r,a,s,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];he.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),he.isString(r)&&u.push(`path=${r}`),he.isString(a)&&u.push(`domain=${a}`),s===!0&&u.push("secure"),he.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function cX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function uX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function R5(e,t,n){let r=!cX(t);return e&&(r||n==!1)?uX(e,t):t}const MM=e=>e instanceof $r?{...e}:e;function ul(e,t){t=t||{};const n={};function r(f,m,p,g){return he.isPlainObject(f)&&he.isPlainObject(m)?he.merge.call({caseless:g},f,m):he.isPlainObject(m)?he.merge({},m):he.isArray(m)?m.slice():m}function a(f,m,p,g){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function s(f,m){if(!he.isUndefined(m))return r(void 0,m)}function l(f,m){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(MM(f),MM(m),p,!0)};return he.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);he.isUndefined(g)&&p!==u||(n[m]=g)}),n}const D5=e=>{const t=ul({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:s,headers:l,auth:u}=t;if(t.headers=l=$r.from(l),t.url=A5(R5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),he.isFormData(n)){if(hr.hasStandardBrowserEnv||hr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(he.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(hr.hasStandardBrowserEnv&&(r&&he.isFunction(r)&&(r=r(t)),r||r!==!1&&oX(t.url))){const d=a&&s&&lX.read(s);d&&l.set(a,d)}return t},dX=typeof XMLHttpRequest<"u",fX=dX&&function(e){return new Promise(function(n,r){const a=D5(e);let s=a.data;const l=$r.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function w(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function N(){if(!b)return;const O=$r.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:O,config:e,request:b};P5(function(T){n(T),w()},function(T){r(T),w()},C),b=null}"onloadend"in b?b.onloadend=N:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(N)},b.onabort=function(){b&&(r(new tt("Request aborted",tt.ECONNABORTED,e,b)),b=null)},b.onerror=function(A){const C=A&&A.message?A.message:"Network Error",k=new tt(C,tt.ERR_NETWORK,e,b);k.event=A||null,r(k),b=null},b.ontimeout=function(){let A=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||T5;a.timeoutErrorMessage&&(A=a.timeoutErrorMessage),r(new tt(A,C.clarifyTimeoutError?tt.ETIMEDOUT:tt.ECONNABORTED,e,b)),b=null},s===void 0&&l.setContentType(null),"setRequestHeader"in b&&he.forEach(l.toJSON(),function(A,C){b.setRequestHeader(C,A)}),he.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),u&&u!=="json"&&(b.responseType=a.responseType),f&&([g,j]=Sv(f,!0),b.addEventListener("progress",g)),d&&b.upload&&([p,x]=Sv(d),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=O=>{b&&(r(!O||O.type?new Bu(null,e,b):O),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const E=aX(a.url);if(E&&hr.protocols.indexOf(E)===-1){r(new tt("Unsupported protocol "+E+":",tt.ERR_BAD_REQUEST,e));return}b.send(s||null)})},hX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const s=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof tt?m:new Bu(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,s(new tt(`timeout ${t} of ms exceeded`,tt.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>he.asap(u),d}},mX=function*(e,t){let n=e.byteLength;if(n{const a=pX(e,t);let s=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=s+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},RM=64*1024,{isFunction:Tp}=he,gX=(({Request:e,Response:t})=>({Request:e,Response:t}))(he.global),{ReadableStream:DM,TextEncoder:$M}=he.global,IM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},yX=e=>{e=he.merge.call({skipUndefined:!0},gX,e);const{fetch:t,Request:n,Response:r}=e,a=t?Tp(t):typeof fetch=="function",s=Tp(n),l=Tp(r);if(!a)return!1;const u=a&&Tp(DM),d=a&&(typeof $M=="function"?(j=>w=>j.encode(w))(new $M):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=s&&u&&IM(()=>{let j=!1;const w=new n(hr.origin,{body:new DM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!w}),m=l&&u&&IM(()=>he.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(w,b)=>{let N=w&&w[j];if(N)return N.call(w);throw new tt(`Response type '${j}' is not supported`,tt.ERR_NOT_SUPPORT,b)})});const g=async j=>{if(j==null)return 0;if(he.isBlob(j))return j.size;if(he.isSpecCompliantForm(j))return(await new n(hr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(he.isArrayBufferView(j)||he.isArrayBuffer(j))return j.byteLength;if(he.isURLSearchParams(j)&&(j=j+""),he.isString(j))return(await d(j)).byteLength},x=async(j,w)=>{const b=he.toFiniteNumber(j.getContentLength());return b??g(w)};return async j=>{let{url:w,method:b,data:N,signal:E,cancelToken:O,timeout:A,onDownloadProgress:C,onUploadProgress:k,responseType:T,headers:M,withCredentials:R="same-origin",fetchOptions:B}=D5(j),$=t||fetch;T=T?(T+"").toLowerCase():"text";let H=hX([E,O&&O.toAbortSignal()],A),V=null;const q=H&&H.unsubscribe&&(()=>{H.unsubscribe()});let G;try{if(k&&f&&b!=="get"&&b!=="head"&&(G=await x(M,N))!==0){let I=new n(w,{method:"POST",body:N,duplex:"half"}),z;if(he.isFormData(N)&&(z=I.headers.get("content-type"))&&M.setContentType(z),I.body){const[Y,te]=TM(G,Sv(kM(k)));N=PM(I.body,RM,Y,te)}}he.isString(R)||(R=R?"include":"omit");const L=s&&"credentials"in n.prototype,D={...B,signal:H,method:b.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:L?R:void 0};V=s&&new n(w,D);let U=await(s?$(V,B):$(w,D));const K=m&&(T==="stream"||T==="response");if(m&&(C||K&&q)){const I={};["status","statusText","headers"].forEach(ae=>{I[ae]=U[ae]});const z=he.toFiniteNumber(U.headers.get("content-length")),[Y,te]=C&&TM(z,Sv(kM(C),!0))||[];U=new r(PM(U.body,RM,Y,()=>{te&&te(),q&&q()}),I)}T=T||"text";let J=await p[he.findKey(p,T)||"text"](U,j);return!K&&q&&q(),await new Promise((I,z)=>{P5(I,z,{data:J,headers:$r.from(U.headers),status:U.status,statusText:U.statusText,config:j,request:V})})}catch(L){throw q&&q(),L&&L.name==="TypeError"&&/Load failed|fetch/i.test(L.message)?Object.assign(new tt("Network Error",tt.ERR_NETWORK,j,V),{cause:L.cause||L}):tt.from(L,L&&L.code,j,V)}}},xX=new Map,$5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,s=[r,a,n];let l=s.length,u=l,d,f,m=xX;for(;u--;)d=s[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:yX(t)),m=f;return f};$5();const qC={http:$K,xhr:fX,fetch:{get:$5}};he.forEach(qC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const LM=e=>`- ${e}`,bX=e=>he.isFunction(e)||e===null||e===!1;function wX(e,t){e=he.isArray(e)?e:[e];const{length:n}=e;let r,a;const s={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : +`+l.map(LM).join(` +`):" "+LM(l[0]):"as no adapter specified";throw new tt("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const I5={getAdapter:wX,adapters:qC};function W0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Bu(null,e)}function BM(e){return W0(e),e.headers=$r.from(e.headers),e.data=H0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),I5.getAdapter(e.adapter||Mh.adapter,e)(e).then(function(r){return W0(e),r.data=H0.call(e,e.transformResponse,r),r.headers=$r.from(r.headers),r},function(r){return M5(r)||(W0(e),r&&r.response&&(r.response.data=H0.call(e,e.transformResponse,r.response),r.response.headers=$r.from(r.response.headers))),Promise.reject(r)})}const L5="1.13.2",Gg={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Gg[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const zM={};Gg.transitional=function(t,n,r){function a(s,l){return"[Axios v"+L5+"] Transitional option '"+s+"'"+l+(r?". "+r:"")}return(s,l,u)=>{if(t===!1)throw new tt(a(l," has been removed"+(n?" in "+n:"")),tt.ERR_DEPRECATED);return n&&!zM[l]&&(zM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,l,u):!0}};Gg.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function jX(e,t,n){if(typeof e!="object")throw new tt("options must be an object",tt.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const s=r[a],l=t[s];if(l){const u=e[s],d=u===void 0||l(u,s,e);if(d!==!0)throw new tt("option "+s+" must be "+d,tt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new tt("Unknown option "+s,tt.ERR_BAD_OPTION)}}const lv={assertOptions:jX,validators:Gg},ri=lv.validators;let rl=class{constructor(t){this.defaults=t||{},this.interceptors={request:new EM,response:new EM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const s=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ul(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:s}=n;r!==void 0&&lv.assertOptions(r,{silentJSONParsing:ri.transitional(ri.boolean),forcedJSONParsing:ri.transitional(ri.boolean),clarifyTimeoutError:ri.transitional(ri.boolean)},!1),a!=null&&(he.isFunction(a)?n.paramsSerializer={serialize:a}:lv.assertOptions(a,{encode:ri.function,serialize:ri.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),lv.assertOptions(n,{baseUrl:ri.spelling("baseURL"),withXsrfToken:ri.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=s&&he.merge(s.common,s[n.method]);s&&he.forEach(["delete","get","head","post","put","patch","common"],j=>{delete s[j]}),n.headers=$r.concat(l,s);const u=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,u.unshift(w.fulfilled,w.rejected))});const f=[];this.interceptors.response.forEach(function(w){f.push(w.fulfilled,w.rejected)});let m,p=0,g;if(!d){const j=[BM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](a);r._listeners=null}),this.promise.then=a=>{let s;const l=new Promise(u=>{r.subscribe(u),s=u}).then(a);return l.cancel=function(){r.unsubscribe(s)},l},t(function(s,l,u){r.reason||(r.reason=new Bu(s,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new B5(function(a){t=a}),cancel:t}}};function _X(e){return function(n){return e.apply(null,n)}}function NX(e){return he.isObject(e)&&e.isAxiosError===!0}const __={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(__).forEach(([e,t])=>{__[t]=e});function z5(e){const t=new rl(e),n=g5(rl.prototype.request,t);return he.extend(n,rl.prototype,t,{allOwnKeys:!0}),he.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return z5(ul(e,a))},n}const vn=z5(Mh);vn.Axios=rl;vn.CanceledError=Bu;vn.CancelToken=SX;vn.isCancel=M5;vn.VERSION=L5;vn.toFormData=Vg;vn.AxiosError=tt;vn.Cancel=vn.CanceledError;vn.all=function(t){return Promise.all(t)};vn.spread=_X;vn.isAxiosError=NX;vn.mergeConfig=ul;vn.AxiosHeaders=$r;vn.formToJSON=e=>k5(he.isHTMLForm(e)?new FormData(e):e);vn.getAdapter=I5.getAdapter;vn.HttpStatusCode=__;vn.default=vn;const{Axios:CAe,AxiosError:OAe,CanceledError:EAe,isCancel:AAe,CancelToken:TAe,VERSION:kAe,all:MAe,Cancel:PAe,isAxiosError:RAe,spread:DAe,toFormData:$Ae,AxiosHeaders:IAe,HttpStatusCode:LAe,formToJSON:BAe,getAdapter:zAe,mergeConfig:qAe}=vn;function q5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),F5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),_v="-",qM=[],EX="arbitrary..",AX=e=>{const t=kX(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return TX(l);const u=l.split(_v),d=u[0]===""&&u.length>1?1:0;return U5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?CX(f,d):d:f||qM}return n[l]||qM}}},U5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],s=n.nextPart.get(a);if(s){const f=U5(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(_v):e.slice(t).join(_v),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?EX+r:void 0})(),kX=e=>{const{theme:t,classGroups:n}=e;return MX(n,t)},MX=(e,t)=>{const n=F5();for(const r in e){const a=e[r];FC(a,n,r,t)}return n},FC=(e,t,n,r)=>{const a=e.length;for(let s=0;s{if(typeof e=="string"){RX(e,t,n);return}if(typeof e=="function"){DX(e,t,n,r);return}$X(e,t,n,r)},RX=(e,t,n)=>{const r=e===""?t:H5(t,e);r.classGroupId=n},DX=(e,t,n,r)=>{if(IX(e)){FC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(OX(n,e))},$X=(e,t,n,r)=>{const a=Object.entries(e),s=a.length;for(let l=0;l{let n=e;const r=t.split(_v),a=r.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,LX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(s,l)=>{n[s]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=r[s])!==void 0)return a(s,l),l},set(s,l){s in n?n[s]=l:a(s,l)}}},N_="!",FM=":",BX=[],UM=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),zX=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const s=[];let l=0,u=0,d=0,f;const m=a.length;for(let w=0;wd?f-d:void 0;return UM(s,x,g,j)};if(t){const a=t+FM,s=r;r=l=>l.startsWith(a)?s(l.slice(a.length)):UM(BX,!1,l,void 0,!0)}if(n){const a=r;r=s=>n({className:s,parseClassName:a})}return r},qX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let s=0;s0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},FX=e=>({cache:LX(e.cacheSize),parseClassName:zX(e),sortModifiers:qX(e),...AX(e)}),UX=/\s+/,HX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:s}=t,l=[],u=e.trim().split(UX);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:w}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let b=!!w,N=r(b?j.substring(0,w):j);if(!N){if(!b){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}b=!1}const E=g.length===0?"":g.length===1?g[0]:s(g).join(":"),O=x?E+N_:E,A=O+N;if(l.indexOf(A)>-1)continue;l.push(A);const C=a(N,b);for(let k=0;k0?" "+d:d)}return d},WX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,s;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=FX(f),r=n.cache.get,a=n.cache.set,s=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=HX(d,n);return a(d,m),m};return s=l,(...d)=>s(WX(...d))},GX=[],Rn=e=>{const t=n=>n[e]||GX;return t.isThemeGetter=!0,t},V5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,G5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,YX=/^\d+\/\d+$/,KX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,XX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,QX=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,JX=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,_c=e=>YX.test(e),ot=e=>!!e&&!Number.isNaN(Number(e)),qs=e=>!!e&&Number.isInteger(Number(e)),V0=e=>e.endsWith("%")&&ot(e.slice(0,-1)),Wi=e=>KX.test(e),eZ=()=>!0,tZ=e=>XX.test(e)&&!ZX.test(e),Y5=()=>!1,nZ=e=>QX.test(e),rZ=e=>JX.test(e),aZ=e=>!Pe(e)&&!Re(e),iZ=e=>zu(e,Z5,Y5),Pe=e=>V5.test(e),zo=e=>zu(e,Q5,tZ),G0=e=>zu(e,uZ,ot),HM=e=>zu(e,K5,Y5),sZ=e=>zu(e,X5,rZ),kp=e=>zu(e,J5,nZ),Re=e=>G5.test(e),ef=e=>qu(e,Q5),oZ=e=>qu(e,dZ),WM=e=>qu(e,K5),lZ=e=>qu(e,Z5),cZ=e=>qu(e,X5),Mp=e=>qu(e,J5,!0),zu=(e,t,n)=>{const r=V5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},qu=(e,t,n=!1)=>{const r=G5.exec(e);return r?r[1]?t(r[1]):n:!1},K5=e=>e==="position"||e==="percentage",X5=e=>e==="image"||e==="url",Z5=e=>e==="length"||e==="size"||e==="bg-size",Q5=e=>e==="length",uZ=e=>e==="number",dZ=e=>e==="family-name",J5=e=>e==="shadow",fZ=()=>{const e=Rn("color"),t=Rn("font"),n=Rn("text"),r=Rn("font-weight"),a=Rn("tracking"),s=Rn("leading"),l=Rn("breakpoint"),u=Rn("container"),d=Rn("spacing"),f=Rn("radius"),m=Rn("shadow"),p=Rn("inset-shadow"),g=Rn("text-shadow"),x=Rn("drop-shadow"),j=Rn("blur"),w=Rn("perspective"),b=Rn("aspect"),N=Rn("ease"),E=Rn("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...A(),Re,Pe],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],M=()=>[Re,Pe,d],R=()=>[_c,"full","auto",...M()],B=()=>[qs,"none","subgrid",Re,Pe],$=()=>["auto",{span:["full",qs,Re,Pe]},qs,Re,Pe],H=()=>[qs,"auto",Re,Pe],V=()=>["auto","min","max","fr",Re,Pe],q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...M()],D=()=>[_c,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],U=()=>[e,Re,Pe],K=()=>[...A(),WM,HM,{position:[Re,Pe]}],J=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",lZ,iZ,{size:[Re,Pe]}],z=()=>[V0,ef,zo],Y=()=>["","none","full",f,Re,Pe],te=()=>["",ot,ef,zo],ae=()=>["solid","dashed","dotted","double"],ge=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[ot,V0,WM,HM],Se=()=>["","none",j,Re,Pe],re=()=>["none",ot,Re,Pe],we=()=>["none",ot,Re,Pe],je=()=>[ot,Re,Pe],fe=()=>[_c,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Wi],breakpoint:[Wi],color:[eZ],container:[Wi],"drop-shadow":[Wi],ease:["in","out","in-out"],font:[aZ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Wi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Wi],shadow:[Wi],spacing:["px",ot],text:[Wi],"text-shadow":[Wi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",_c,Pe,Re,b]}],container:["container"],columns:[{columns:[ot,Pe,Re,u]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[qs,"auto",Re,Pe]}],basis:[{basis:[_c,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ot,_c,"auto","initial","none",Pe]}],grow:[{grow:["",ot,Re,Pe]}],shrink:[{shrink:["",ot,Re,Pe]}],order:[{order:[qs,"first","last","none",Re,Pe]}],"grid-cols":[{"grid-cols":B()}],"col-start-end":[{col:$()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":B()}],"row-start-end":[{row:$()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...q(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...q()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":q()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:D()}],w:[{w:[u,"screen",...D()]}],"min-w":[{"min-w":[u,"screen","none",...D()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...D()]}],h:[{h:["screen","lh",...D()]}],"min-h":[{"min-h":["screen","lh","none",...D()]}],"max-h":[{"max-h":["screen","lh",...D()]}],"font-size":[{text:["base",n,ef,zo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Re,G0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",V0,Pe]}],"font-family":[{font:[oZ,Pe,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,Re,Pe]}],"line-clamp":[{"line-clamp":[ot,"none",Re,G0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",Re,Pe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Re,Pe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:U()}],"text-color":[{text:U()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ae(),"wavy"]}],"text-decoration-thickness":[{decoration:[ot,"from-font","auto",Re,zo]}],"text-decoration-color":[{decoration:U()}],"underline-offset":[{"underline-offset":[ot,"auto",Re,Pe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Re,Pe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Re,Pe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:K()}],"bg-repeat":[{bg:J()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},qs,Re,Pe],radial:["",Re,Pe],conic:[qs,Re,Pe]},cZ,sZ]}],"bg-color":[{bg:U()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:U()}],"gradient-via":[{via:U()}],"gradient-to":[{to:U()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:te()}],"border-w-x":[{"border-x":te()}],"border-w-y":[{"border-y":te()}],"border-w-s":[{"border-s":te()}],"border-w-e":[{"border-e":te()}],"border-w-t":[{"border-t":te()}],"border-w-r":[{"border-r":te()}],"border-w-b":[{"border-b":te()}],"border-w-l":[{"border-l":te()}],"divide-x":[{"divide-x":te()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":te()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ae(),"hidden","none"]}],"divide-style":[{divide:[...ae(),"hidden","none"]}],"border-color":[{border:U()}],"border-color-x":[{"border-x":U()}],"border-color-y":[{"border-y":U()}],"border-color-s":[{"border-s":U()}],"border-color-e":[{"border-e":U()}],"border-color-t":[{"border-t":U()}],"border-color-r":[{"border-r":U()}],"border-color-b":[{"border-b":U()}],"border-color-l":[{"border-l":U()}],"divide-color":[{divide:U()}],"outline-style":[{outline:[...ae(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ot,Re,Pe]}],"outline-w":[{outline:["",ot,ef,zo]}],"outline-color":[{outline:U()}],shadow:[{shadow:["","none",m,Mp,kp]}],"shadow-color":[{shadow:U()}],"inset-shadow":[{"inset-shadow":["none",p,Mp,kp]}],"inset-shadow-color":[{"inset-shadow":U()}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:U()}],"ring-offset-w":[{"ring-offset":[ot,zo]}],"ring-offset-color":[{"ring-offset":U()}],"inset-ring-w":[{"inset-ring":te()}],"inset-ring-color":[{"inset-ring":U()}],"text-shadow":[{"text-shadow":["none",g,Mp,kp]}],"text-shadow-color":[{"text-shadow":U()}],opacity:[{opacity:[ot,Re,Pe]}],"mix-blend":[{"mix-blend":[...ge(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ge()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ot]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":U()}],"mask-image-linear-to-color":[{"mask-linear-to":U()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":U()}],"mask-image-t-to-color":[{"mask-t-to":U()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":U()}],"mask-image-r-to-color":[{"mask-r-to":U()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":U()}],"mask-image-b-to-color":[{"mask-b-to":U()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":U()}],"mask-image-l-to-color":[{"mask-l-to":U()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":U()}],"mask-image-x-to-color":[{"mask-x-to":U()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":U()}],"mask-image-y-to-color":[{"mask-y-to":U()}],"mask-image-radial":[{"mask-radial":[Re,Pe]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":U()}],"mask-image-radial-to-color":[{"mask-radial-to":U()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":A()}],"mask-image-conic-pos":[{"mask-conic":[ot]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":U()}],"mask-image-conic-to-color":[{"mask-conic-to":U()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:K()}],"mask-repeat":[{mask:J()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Re,Pe]}],filter:[{filter:["","none",Re,Pe]}],blur:[{blur:Se()}],brightness:[{brightness:[ot,Re,Pe]}],contrast:[{contrast:[ot,Re,Pe]}],"drop-shadow":[{"drop-shadow":["","none",x,Mp,kp]}],"drop-shadow-color":[{"drop-shadow":U()}],grayscale:[{grayscale:["",ot,Re,Pe]}],"hue-rotate":[{"hue-rotate":[ot,Re,Pe]}],invert:[{invert:["",ot,Re,Pe]}],saturate:[{saturate:[ot,Re,Pe]}],sepia:[{sepia:["",ot,Re,Pe]}],"backdrop-filter":[{"backdrop-filter":["","none",Re,Pe]}],"backdrop-blur":[{"backdrop-blur":Se()}],"backdrop-brightness":[{"backdrop-brightness":[ot,Re,Pe]}],"backdrop-contrast":[{"backdrop-contrast":[ot,Re,Pe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ot,Re,Pe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ot,Re,Pe]}],"backdrop-invert":[{"backdrop-invert":["",ot,Re,Pe]}],"backdrop-opacity":[{"backdrop-opacity":[ot,Re,Pe]}],"backdrop-saturate":[{"backdrop-saturate":[ot,Re,Pe]}],"backdrop-sepia":[{"backdrop-sepia":["",ot,Re,Pe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Re,Pe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ot,"initial",Re,Pe]}],ease:[{ease:["linear","initial",N,Re,Pe]}],delay:[{delay:[ot,Re,Pe]}],animate:[{animate:["none",E,Re,Pe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,Re,Pe]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:we()}],"scale-x":[{"scale-x":we()}],"scale-y":[{"scale-y":we()}],"scale-z":[{"scale-z":we()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[Re,Pe,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:fe()}],"translate-x":[{"translate-x":fe()}],"translate-y":[{"translate-y":fe()}],"translate-z":[{"translate-z":fe()}],"translate-none":["translate-none"],accent:[{accent:U()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:U()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Re,Pe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Re,Pe]}],fill:[{fill:["none",...U()]}],"stroke-w":[{stroke:[ot,ef,zo,G0]}],stroke:[{stroke:["none",...U()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},hZ=VX(fZ);function ce(...e){return hZ(Je(e))}const Xe=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("rounded-xl border bg-card text-card-foreground shadow",e),...t}));Xe.displayName="Card";const pt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex flex-col space-y-1.5 p-6",e),...t}));pt.displayName="CardHeader";const vt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("font-semibold leading-none tracking-tight",e),...t}));vt.displayName="CardTitle";const Wn=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));Wn.displayName="CardDescription";const Ct=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("p-6 pt-0",e),...t}));Ct.displayName="CardContent";const eB=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex items-center p-6 pt-0",e),...t}));eB.displayName="CardFooter";function _e(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function mZ(e,t){const n=y.createContext(t),r=s=>{const{children:l,...u}=s,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(s){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function gr(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,pZ(a,...t)]}function pZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function VM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ir(...e){return t=>{let n=!1;const r=e.map(a=>{const s=VM(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(yZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=bZ(a),u=xZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gZ=Symbol("radix.slottable");function yZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gZ}function xZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Ph(e){const t=e+"CollectionProvider",[n,r]=gr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=w=>{const{scope:b,children:N}=w,E=W.useRef(null),O=W.useRef(new Map).current;return i.jsx(a,{scope:b,itemMap:O,collectionRef:E,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=GM(u),f=W.forwardRef((w,b)=>{const{scope:N,children:E}=w,O=s(u,N),A=Ue(b,O.collectionRef);return i.jsx(d,{ref:A,children:E})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=GM(m),x=W.forwardRef((w,b)=>{const{scope:N,children:E,...O}=w,A=W.useRef(null),C=Ue(b,A),k=s(m,N);return W.useEffect(()=>(k.itemMap.set(A,{ref:A,...O}),()=>void k.itemMap.delete(A))),i.jsx(g,{[p]:"",ref:C,children:E})});x.displayName=m;function j(w){const b=s(e+"CollectionConsumer",w);return W.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const O=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(b.itemMap.values()).sort((k,T)=>O.indexOf(k.ref.current)-O.indexOf(T.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Yn=globalThis?.document?y.useLayoutEffect:()=>{},wZ=OC[" useId ".trim().toString()]||(()=>{}),jZ=0;function Gn(e){const[t,n]=y.useState(wZ());return Yn(()=>{n(r=>r??String(jZ++))},[e]),t?`radix-${t}`:""}function SZ(e){const t=_Z(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(CZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function _Z(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=EZ(a),u=OZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var NZ=Symbol("radix.slottable");function CZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===NZ}function OZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function EZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var AZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$e=AZ.reduce((e,t)=>{const n=SZ(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function UC(e,t){e&&Sl.flushSync(()=>e.dispatchEvent(t))}function ln(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var TZ=OC[" useInsertionEffect ".trim().toString()]||Yn;function Ea({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,l]=kZ({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=MZ(m)?m(e):m;p!==e&&l.current?.(p)}else s(m)},[u,e,s,l]);return[d,f]}function kZ({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),s=y.useRef(t);return TZ(()=>{s.current=t},[t]),y.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function MZ(e){return typeof e=="function"}var PZ=y.createContext(void 0);function Fu(e){const t=y.useContext(PZ);return e||t||"ltr"}var Y0="rovingFocusGroup.onEntryFocus",RZ={bubbles:!1,cancelable:!0},Rh="RovingFocusGroup",[C_,tB,DZ]=Ph(Rh),[$Z,Yg]=gr(Rh,[DZ]),[IZ,LZ]=$Z(Rh),nB=y.forwardRef((e,t)=>i.jsx(C_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(C_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(BZ,{...e,ref:t})})}));nB.displayName=Rh;var BZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=Ue(t,g),j=Fu(s),[w,b]=Ea({prop:l,defaultProp:u??null,onChange:d,caller:Rh}),[N,E]=y.useState(!1),O=ln(f),A=tB(n),C=y.useRef(!1),[k,T]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(Y0,O),()=>M.removeEventListener(Y0,O)},[O]),i.jsx(IZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:w,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>T(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>T(M=>M-1),[]),children:i.jsx($e.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:_e(e.onMouseDown,()=>{C.current=!0}),onFocus:_e(e.onFocus,M=>{const R=!C.current;if(M.target===M.currentTarget&&R&&!N){const B=new CustomEvent(Y0,RZ);if(M.currentTarget.dispatchEvent(B),!B.defaultPrevented){const $=A().filter(L=>L.focusable),H=$.find(L=>L.active),V=$.find(L=>L.id===w),G=[H,V,...$].filter(Boolean).map(L=>L.ref.current);iB(G,m)}}C.current=!1}),onBlur:_e(e.onBlur,()=>E(!1))})})}),rB="RovingFocusGroupItem",aB=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:l,...u}=e,d=Gn(),f=s||d,m=LZ(rB,n),p=m.currentTabStopId===f,g=tB(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:w}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(C_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx($e.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:_e(e.onMouseDown,b=>{r?m.onItemFocus(f):b.preventDefault()}),onFocus:_e(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:_e(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){m.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const N=FZ(b,m.orientation,m.dir);if(N!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let O=g().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")O.reverse();else if(N==="prev"||N==="next"){N==="prev"&&O.reverse();const A=O.indexOf(b.currentTarget);O=m.loop?UZ(O,A+1):O.slice(A+1)}setTimeout(()=>iB(O))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:w!=null}):l})})});aB.displayName=rB;var zZ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function qZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function FZ(e,t,n){const r=qZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return zZ[r]}function iB(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function UZ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var sB=nB,oB=aB;function HZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Bn=e=>{const{present:t,children:n}=e,r=WZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),s=Ue(r.ref,VZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:s}):null};Bn.displayName="Presence";function WZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),s=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=HZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Pp(r.current);s.current=u==="mounted"?f:"none"},[u]),Yn(()=>{const f=r.current,m=a.current;if(m!==e){const g=s.current,x=Pp(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Yn(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const w=Pp(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&w&&(d("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=x=>{x.target===t&&(s.current=Pp(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Pp(e){return e?.animationName||"none"}function VZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Kg="Tabs",[GZ]=gr(Kg,[Yg]),lB=Yg(),[YZ,HC]=GZ(Kg),cB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Fu(u),[p,g]=Ea({prop:r,onChange:a,defaultProp:s??"",caller:Kg});return i.jsx(YZ,{scope:n,baseId:Gn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx($e.div,{dir:m,"data-orientation":l,...f,ref:t})})});cB.displayName=Kg;var uB="TabsList",dB=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=HC(uB,n),l=lB(n);return i.jsx(sB,{asChild:!0,...l,orientation:s.orientation,dir:s.dir,loop:r,children:i.jsx($e.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});dB.displayName=uB;var fB="TabsTrigger",hB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,l=HC(fB,n),u=lB(n),d=vB(l.baseId,r),f=gB(l.baseId,r),m=r===l.value;return i.jsx(oB,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx($e.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...s,ref:t,onMouseDown:_e(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:_e(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:_e(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});hB.displayName=fB;var mB="TabsContent",pB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...l}=e,u=HC(mB,n),d=vB(u.baseId,r),f=gB(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(Bn,{present:a||m,children:({present:g})=>i.jsx($e.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&s})})});pB.displayName=mB;function vB(e,t){return`${e}-trigger-${t}`}function gB(e,t){return`${e}-content-${t}`}var KZ=cB,yB=dB,xB=hB,bB=pB;const dl=KZ,eo=y.forwardRef(({className:e,...t},n)=>i.jsx(yB,{ref:n,className:ce("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));eo.displayName=yB.displayName;const Rt=y.forwardRef(({className:e,...t},n)=>i.jsx(xB,{ref:n,className:ce("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Rt.displayName=xB.displayName;const sn=y.forwardRef(({className:e,...t},n)=>i.jsx(bB,{ref:n,className:ce("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));sn.displayName=bB.displayName;function Rf(e,[t,n]){return Math.min(n,Math.max(t,e))}function XZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var WC="ScrollArea",[wB]=gr(WC),[ZZ,Ta]=wB(WC),jB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:s=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(0),[O,A]=y.useState(0),[C,k]=y.useState(!1),[T,M]=y.useState(!1),R=Ue(t,$=>d($)),B=Fu(a);return i.jsx(ZZ,{scope:n,type:r,dir:B,scrollHideDelay:s,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:w,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:E,onCornerHeightChange:A,children:i.jsx($e.div,{dir:B,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":O+"px",...e.style}})})});jB.displayName=WC;var SB="ScrollAreaViewport",_B=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...s}=e,l=Ta(SB,n),u=y.useRef(null),d=Ue(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx($e.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});_B.displayName=SB;var ji="ScrollAreaScrollbar",VC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)}),[u,s,l]),a.type==="hover"?i.jsx(QZ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(JZ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(NB,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(GC,{...r,ref:t}):null});VC.displayName=ji;var QZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),[s,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(Bn,{present:n||s,children:i.jsx(NB,{"data-state":s?"visible":"hidden",...r,ref:t})})}),JZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),s=e.orientation==="horizontal",l=Zg(()=>d("SCROLL_END"),100),[u,d]=XZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=s?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,s,d,l]),i.jsx(Bn,{present:n||u!=="hidden",children:i.jsx(GC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:_e(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:_e(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),NB=y.forwardRef((e,t)=>{const n=Ta(ji,e.__scopeScrollArea),{forceMount:r,...a}=e,[s,l]=y.useState(!1),u=e.orientation==="horizontal",d=Zg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Ta(ji,e.__scopeScrollArea),s=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=TB(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>s.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return iQ(g,l.current,u,x)}return n==="horizontal"?i.jsx(eQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollLeft,x=YM(g,u,a.dir);s.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(tQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollTop,x=YM(g,u);s.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),eQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ta(ji,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(OB,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Xg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),MB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:Cv(l.paddingLeft),paddingEnd:Cv(l.paddingRight)}})}})}),tQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ta(ji,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(OB,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Xg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),MB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:Cv(l.paddingTop),paddingEnd:Cv(l.paddingBottom)}})}})}),[nQ,CB]=wB(ji),OB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Ta(ji,n),[j,w]=y.useState(null),b=Ue(t,R=>w(R)),N=y.useRef(null),E=y.useRef(""),O=x.viewport,A=r.content-r.viewport,C=ln(m),k=ln(d),T=Zg(p,10);function M(R){if(N.current){const B=R.clientX-N.current.left,$=R.clientY-N.current.top;f({x:B,y:$})}}return y.useEffect(()=>{const R=B=>{const $=B.target;j?.contains($)&&C(B,A)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[O,j,A,C]),y.useEffect(k,[r,k]),su(j,T),su(x.content,T),i.jsx(nQ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:ln(s),onThumbPointerUp:ln(l),onThumbPositionChange:k,onThumbPointerDown:ln(u),children:i.jsx($e.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:_e(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),N.current=j.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(R))}),onPointerMove:_e(e.onPointerMove,M),onPointerUp:_e(e.onPointerUp,R=>{const B=R.target;B.hasPointerCapture(R.pointerId)&&B.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),Nv="ScrollAreaThumb",EB=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=CB(Nv,e.__scopeScrollArea);return i.jsx(Bn,{present:n||a.hasThumb,children:i.jsx(rQ,{ref:t,...r})})}),rQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,s=Ta(Nv,n),l=CB(Nv,n),{onThumbPositionChange:u}=l,d=Ue(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Zg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=s.viewport;if(p){const g=()=>{if(m(),!f.current){const x=sQ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[s.viewport,m,u]),i.jsx($e.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:_e(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,w=p.clientY-x.top;l.onThumbPointerDown({x:j,y:w})}),onPointerUp:_e(e.onPointerUp,l.onThumbPointerUp)})});EB.displayName=Nv;var YC="ScrollAreaCorner",AB=y.forwardRef((e,t)=>{const n=Ta(YC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(aQ,{...e,ref:t}):null});AB.displayName=YC;var aQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Ta(YC,n),[s,l]=y.useState(0),[u,d]=y.useState(0),f=!!(s&&u);return su(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),su(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx($e.div,{...r,ref:t,style:{width:s,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Cv(e){return e?parseInt(e,10):0}function TB(e,t){const n=e/t;return isNaN(n)?0:n}function Xg(e){const t=TB(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function iQ(e,t,n,r="ltr"){const a=Xg(n),s=a/2,l=t||s,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return kB([d,f],p)(e)}function YM(e,t,n="ltr"){const r=Xg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,u=s-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Rf(e,d);return kB([0,l],[0,u])(f)}function kB(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function MB(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const s={left:e.scrollLeft,top:e.scrollTop},l=n.left!==s.left,u=n.top!==s.top;(l||u)&&t(),n=s,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Zg(e,t){const n=ln(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function su(e,t){const n=ln(t);Yn(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var PB=jB,oQ=_B,lQ=AB;const Wt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(PB,{ref:r,className:ce("relative overflow-hidden",e),...n,children:[i.jsx(oQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(RB,{}),i.jsx(lQ,{})]}));Wt.displayName=PB.displayName;const RB=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(VC,{ref:r,orientation:t,className:ce("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(EB,{className:"relative flex-1 rounded-full bg-border"})}));RB.displayName=VC.displayName;function KM({className:e,...t}){return i.jsx("div",{className:ce("animate-pulse rounded-md bg-primary/10",e),...t})}function cQ(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l);u.displayName=s+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,uQ(a,...t)]}function uQ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var dQ=Symbol.for("react.lazy"),Ov=OC[" use ".trim().toString()];function fQ(e){return typeof e=="object"&&e!==null&&"then"in e}function DB(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===dQ&&"_payload"in e&&fQ(e._payload)}function Dh(e){const t=mQ(e),n=y.forwardRef((r,a)=>{let{children:s,...l}=r;DB(s)&&typeof Ov=="function"&&(s=Ov(s._payload));const u=y.Children.toArray(s),d=u.find(vQ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var hQ=Dh("Slot");function mQ(e){const t=y.forwardRef((n,r)=>{let{children:a,...s}=n;if(DB(a)&&typeof Ov=="function"&&(a=Ov(a._payload)),y.isValidElement(a)){const l=yQ(a),u=gQ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var pQ=Symbol("radix.slottable");function vQ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===pQ}function gQ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function yQ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var xQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$B=xQ.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),KC="Progress",XC=100,[bQ]=cQ(KC),[wQ,jQ]=bQ(KC),IB=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:s=SQ,...l}=e;(a||a===0)&&!XM(a)&&console.error(_Q(`${a}`,"Progress"));const u=XM(a)?a:XC;r!==null&&!ZM(r,u)&&console.error(NQ(`${r}`,"Progress"));const d=ZM(r,u)?r:null,f=Ev(d)?s(d,u):void 0;return i.jsx(wQ,{scope:n,value:d,max:u,children:i.jsx($B.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":Ev(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":zB(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});IB.displayName=KC;var LB="ProgressIndicator",BB=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=jQ(LB,n);return i.jsx($B.div,{"data-state":zB(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});BB.displayName=LB;function SQ(e,t){return`${Math.round(e/t*100)}%`}function zB(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Ev(e){return typeof e=="number"}function XM(e){return Ev(e)&&!isNaN(e)&&e>0}function ZM(e,t){return Ev(e)&&!isNaN(e)&&e<=t&&e>=0}function _Q(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${XC}\`.`}function NQ(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${XC} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var qB=IB,CQ=BB;const $h=y.forwardRef(({className:e,value:t,...n},r)=>i.jsx(qB,{ref:r,className:ce("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(CQ,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));$h.displayName=qB.displayName;var K0,QM;function qr(){if(QM)return K0;QM=1;var e=Array.isArray;return K0=e,K0}var X0,JM;function FB(){if(JM)return X0;JM=1;var e=typeof Np=="object"&&Np&&Np.Object===Object&&Np;return X0=e,X0}var Z0,eP;function Si(){if(eP)return Z0;eP=1;var e=FB(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Z0=n,Z0}var Q0,tP;function Ih(){if(tP)return Q0;tP=1;var e=Si(),t=e.Symbol;return Q0=t,Q0}var J0,nP;function OQ(){if(nP)return J0;nP=1;var e=Ih(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function s(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return J0=s,J0}var ew,rP;function EQ(){if(rP)return ew;rP=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return ew=n,ew}var tw,aP;function fs(){if(aP)return tw;aP=1;var e=Ih(),t=OQ(),n=EQ(),r="[object Null]",a="[object Undefined]",s=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:s&&s in Object(u)?t(u):n(u)}return tw=l,tw}var nw,iP;function hs(){if(iP)return nw;iP=1;function e(t){return t!=null&&typeof t=="object"}return nw=e,nw}var rw,sP;function Uu(){if(sP)return rw;sP=1;var e=fs(),t=hs(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return rw=r,rw}var aw,oP;function ZC(){if(oP)return aw;oP=1;var e=qr(),t=Uu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(s,l){if(e(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||t(s)?!0:r.test(s)||!n.test(s)||l!=null&&s in Object(l)}return aw=a,aw}var iw,lP;function lo(){if(lP)return iw;lP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return iw=e,iw}var sw,cP;function QC(){if(cP)return sw;cP=1;var e=fs(),t=lo(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==s}return sw=l,sw}var ow,uP;function AQ(){if(uP)return ow;uP=1;var e=Si(),t=e["__core-js_shared__"];return ow=t,ow}var lw,dP;function TQ(){if(dP)return lw;dP=1;var e=AQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return lw=n,lw}var cw,fP;function UB(){if(fP)return cw;fP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return cw=n,cw}var uw,hP;function kQ(){if(hP)return uw;hP=1;var e=QC(),t=TQ(),n=lo(),r=UB(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:s;return x.test(r(g))}return uw=p,uw}var dw,mP;function MQ(){if(mP)return dw;mP=1;function e(t,n){return t?.[n]}return dw=e,dw}var fw,pP;function _l(){if(pP)return fw;pP=1;var e=kQ(),t=MQ();function n(r,a){var s=t(r,a);return e(s)?s:void 0}return fw=n,fw}var hw,vP;function Qg(){if(vP)return hw;vP=1;var e=_l(),t=e(Object,"create");return hw=t,hw}var mw,gP;function PQ(){if(gP)return mw;gP=1;var e=Qg();function t(){this.__data__=e?e(null):{},this.size=0}return mw=t,mw}var pw,yP;function RQ(){if(yP)return pw;yP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return pw=e,pw}var vw,xP;function DQ(){if(xP)return vw;xP=1;var e=Qg(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(s){var l=this.__data__;if(e){var u=l[s];return u===t?void 0:u}return r.call(l,s)?l[s]:void 0}return vw=a,vw}var gw,bP;function $Q(){if(bP)return gw;bP=1;var e=Qg(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var s=this.__data__;return e?s[a]!==void 0:n.call(s,a)}return gw=r,gw}var yw,wP;function IQ(){if(wP)return yw;wP=1;var e=Qg(),t="__lodash_hash_undefined__";function n(r,a){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=e&&a===void 0?t:a,this}return yw=n,yw}var xw,jP;function LQ(){if(jP)return xw;jP=1;var e=PQ(),t=RQ(),n=DQ(),r=$Q(),a=IQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return Nw=t,Nw}var Cw,AP;function UQ(){if(AP)return Cw;AP=1;var e=Jg();function t(n,r){var a=this.__data__,s=e(a,n);return s<0?(++this.size,a.push([n,r])):a[s][1]=r,this}return Cw=t,Cw}var Ow,TP;function ey(){if(TP)return Ow;TP=1;var e=BQ(),t=zQ(),n=qQ(),r=FQ(),a=UQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Ko=function(t){return fl(t)&&t.indexOf("%")===t.length-1},Ce=function(t){return fJ(t)&&!Lh(t)},hJ=function(t){return Qe(t)},Ln=function(t){return Ce(t)||fl(t)},mJ=0,Wu=function(t){var n=++mJ;return"".concat(t||"").concat(n)},Sr=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ce(t)&&!fl(t))return r;var s;if(Ko(t)){var l=t.indexOf("%");s=n*parseFloat(t.slice(0,l))/100}else s=+t;return Lh(s)&&(s=r),a&&s>n&&(s=n),s},Ws=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},pJ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function E_(e){"@babel/helpers - typeof";return E_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E_(e)}var aR={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},ns=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},iR=null,Jw=null,iO=function e(t){if(t===iR&&Array.isArray(Jw))return Jw;var n=[];return y.Children.forEach(t,function(r){Qe(r)||(lJ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),Jw=n,iR=t,n};function ia(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return ns(a)}):r=[ns(t)],iO(e).forEach(function(a){var s=aa(a,"type.displayName")||aa(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function Qr(e,t){var n=ia(e,t);return n&&n[0]}var sR=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ce(r)||r<=0||!Ce(a)||a<=0)},SJ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],_J=function(t){return t&&t.type&&fl(t.type)&&SJ.indexOf(t.type)>=0},NJ=function(t){return t&&E_(t)==="object"&&"clipDot"in t},CJ=function(t,n,r,a){var s,l=(s=Qw?.[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!Ke(t)&&(a&&l.includes(n)||yJ.includes(n))||r&&aO.includes(n)},qe=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!Hu(a))return null;var s={};return Object.keys(a).forEach(function(l){var u;CJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(s[l]=a[l])}),s},A_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return oR(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function k_(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=TJ(e,AJ),m=a||{width:n,height:r,x:0,y:0},p=Je("recharts-surface",s);return W.createElement("svg",T_({},qe(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var MJ=["children","className"];function M_(){return M_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function RJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var xt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=PJ(e,MJ),s=Je("recharts-layer",r);return W.createElement("g",M_({className:s},qe(a,!0),{ref:t}),n)}),Ha=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;ss?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(s);++a=s?n:e(n,r,a)}return tj=t,tj}var nj,dR;function KB(){if(dR)return nj;dR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+s+"]");function d(f){return u.test(f)}return nj=d,nj}var rj,fR;function IJ(){if(fR)return rj;fR=1;function e(t){return t.split("")}return rj=e,rj}var aj,hR;function LJ(){if(hR)return aj;hR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",w="["+s+"]?",b="(?:"+x+"(?:"+[m,p,g].join("|")+")"+w+j+")*",N=w+j+b,E="(?:"+[m+u+"?",u,p,g,l].join("|")+")",O=RegExp(d+"(?="+d+")|"+E+N,"g");function A(C){return C.match(O)||[]}return aj=A,aj}var ij,mR;function BJ(){if(mR)return ij;mR=1;var e=IJ(),t=KB(),n=LJ();function r(a){return t(a)?n(a):e(a)}return ij=r,ij}var sj,pR;function zJ(){if(pR)return sj;pR=1;var e=$J(),t=KB(),n=BJ(),r=WB();function a(s){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[s]()+f}}return sj=a,sj}var oj,vR;function qJ(){if(vR)return oj;vR=1;var e=zJ(),t=e("toUpperCase");return oj=t,oj}var FJ=qJ();const ry=At(FJ);function Kt(e){return function(){return e}}const XB=Math.cos,kv=Math.sin,Xa=Math.sqrt,Mv=Math.PI,ay=2*Mv,P_=Math.PI,R_=2*P_,Ho=1e-6,UJ=R_-Ho;function ZB(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return ZB;const n=10**t;return function(r){this._+=r[0];for(let a=1,s=r.length;aHo)if(!(Math.abs(p*d-f*m)>Ho)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,w=d*d+f*f,b=x*x+j*j,N=Math.sqrt(w),E=Math.sqrt(g),O=s*Math.tan((P_-Math.acos((w+g-b)/(2*N*E)))/2),A=O/E,C=O/N;Math.abs(A-1)>Ho&&this._append`L${t+A*m},${n+A*p}`,this._append`A${s},${s},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,s,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-s:s-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Ho||Math.abs(this._y1-m)>Ho)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%R_+R_),g>UJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Ho&&this._append`A${r},${r},0,${+(g>=P_)},${p},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function sO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new WJ(t)}function oO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function QB(e){this._context=e}QB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function iy(e){return new QB(e)}function JB(e){return e[0]}function ez(e){return e[1]}function tz(e,t){var n=Kt(!0),r=null,a=iy,s=null,l=sO(u);e=typeof e=="function"?e:e===void 0?JB:Kt(e),t=typeof t=="function"?t:t===void 0?ez:Kt(t);function u(d){var f,m=(d=oO(d)).length,p,g=!1,x;for(r==null&&(s=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(O[j],A[j]);u.lineEnd(),u.areaEnd()}N&&(O[g]=+e(b,g,p),A[g]=+t(b,g,p),u.point(r?+r(b,g,p):O[g],n?+n(b,g,p):A[g]))}if(E)return u=null,E+""||null}function m(){return tz().defined(a).curve(l).context(s)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Kt(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Kt(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Kt(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Kt(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Kt(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Kt(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Kt(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,s!=null&&(u=l(s)),f):l},f.context=function(p){return arguments.length?(p==null?s=u=null:u=l(s=p),f):s},f}class nz{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function VJ(e){return new nz(e,!0)}function GJ(e){return new nz(e,!1)}const lO={draw(e,t){const n=Xa(t/Mv);e.moveTo(n,0),e.arc(0,0,n,0,ay)}},YJ={draw(e,t){const n=Xa(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},rz=Xa(1/3),KJ=rz*2,XJ={draw(e,t){const n=Xa(t/KJ),r=n*rz;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},ZJ={draw(e,t){const n=Xa(t),r=-n/2;e.rect(r,r,n,n)}},QJ=.8908130915292852,az=kv(Mv/10)/kv(7*Mv/10),JJ=kv(ay/10)*az,eee=-XB(ay/10)*az,tee={draw(e,t){const n=Xa(t*QJ),r=JJ*n,a=eee*n;e.moveTo(0,-n),e.lineTo(r,a);for(let s=1;s<5;++s){const l=ay*s/5,u=XB(l),d=kv(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},lj=Xa(3),nee={draw(e,t){const n=-Xa(t/(lj*3));e.moveTo(0,n*2),e.lineTo(-lj*n,-n),e.lineTo(lj*n,-n),e.closePath()}},ba=-.5,wa=Xa(3)/2,D_=1/Xa(12),ree=(D_/2+1)*3,aee={draw(e,t){const n=Xa(t/ree),r=n/2,a=n*D_,s=r,l=n*D_+n,u=-s,d=l;e.moveTo(r,a),e.lineTo(s,l),e.lineTo(u,d),e.lineTo(ba*r-wa*a,wa*r+ba*a),e.lineTo(ba*s-wa*l,wa*s+ba*l),e.lineTo(ba*u-wa*d,wa*u+ba*d),e.lineTo(ba*r+wa*a,ba*a-wa*r),e.lineTo(ba*s+wa*l,ba*l-wa*s),e.lineTo(ba*u+wa*d,ba*d-wa*u),e.closePath()}};function iee(e,t){let n=null,r=sO(a);e=typeof e=="function"?e:Kt(e||lO),t=typeof t=="function"?t:Kt(t===void 0?64:+t);function a(){let s;if(n||(n=s=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(e=typeof s=="function"?s:Kt(s),a):e},a.size=function(s){return arguments.length?(t=typeof s=="function"?s:Kt(+s),a):t},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function Pv(){}function Rv(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function iz(e){this._context=e}iz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Rv(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function see(e){return new iz(e)}function sz(e){this._context=e}sz.prototype={areaStart:Pv,areaEnd:Pv,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function oee(e){return new sz(e)}function oz(e){this._context=e}oz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lee(e){return new oz(e)}function lz(e){this._context=e}lz.prototype={areaStart:Pv,areaEnd:Pv,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function cee(e){return new lz(e)}function gR(e){return e<0?-1:1}function yR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(s*a+l*r)/(r+a);return(gR(s)+gR(l))*Math.min(Math.abs(s),Math.abs(l),.5*Math.abs(u))||0}function xR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function cj(e,t,n){var r=e._x0,a=e._y0,s=e._x1,l=e._y1,u=(s-r)/3;e._context.bezierCurveTo(r+u,a+u*t,s-u,l-u*n,s,l)}function Dv(e){this._context=e}Dv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:cj(this,this._t0,xR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,cj(this,xR(this,n=yR(this,e,t)),n);break;default:cj(this,this._t0,n=yR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function cz(e){this._context=new uz(e)}(cz.prototype=Object.create(Dv.prototype)).point=function(e,t){Dv.prototype.point.call(this,t,e)};function uz(e){this._context=e}uz.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,s){this._context.bezierCurveTo(t,e,r,n,s,a)}};function uee(e){return new Dv(e)}function dee(e){return new cz(e)}function dz(e){this._context=e}dz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=bR(e),a=bR(t),s=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/s[t];for(s[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function hee(e){return new sy(e,.5)}function mee(e){return new sy(e,0)}function pee(e){return new sy(e,1)}function ou(e,t){if((l=e.length)>1)for(var n=1,r,a,s=e[t[0]],l,u=s.length;n=0;)n[t]=t;return n}function vee(e,t){return e[t]}function gee(e){const t=[];return t.key=e,t}function yee(){var e=Kt([]),t=$_,n=ou,r=vee;function a(s){var l=Array.from(e.apply(this,arguments),gee),u,d=l.length,f=-1,m;for(const p of s)for(u=0,++f;u0){for(var n,r,a=0,s=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,s=r.length;n0)||!((s=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,s,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Oee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var fz={symbolCircle:lO,symbolCross:YJ,symbolDiamond:XJ,symbolSquare:ZJ,symbolStar:tee,symbolTriangle:nee,symbolWye:aee},Eee=Math.PI/180,Aee=function(t){var n="symbol".concat(ry(t));return fz[n]||lO},Tee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*Eee;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},kee=function(t,n){fz["symbol".concat(ry(t))]=n},cO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,s=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=Cee(t,jee),f=jR(jR({},d),{},{type:r,size:s,sizeType:u}),m=function(){var b=Aee(r),N=iee().type(b).size(Tee(s,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=qe(f,!0);return g===+g&&x===+x&&s===+s?W.createElement("path",I_({},j,{className:Je("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};cO.registerSymbol=kee;function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function L_(){return L_=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var E=x.inactive?f:x.color;return W.createElement("li",L_({className:b,style:p,key:"legend-item-".concat(j)},hl(r.props,x,j)),W.createElement(k_,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:s==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);$f(uO,"displayName","Legend");$f(uO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var uj,_R;function qee(){if(_R)return uj;_R=1;var e=ey();function t(){this.__data__=new e,this.size=0}return uj=t,uj}var dj,NR;function Fee(){if(NR)return dj;NR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return dj=e,dj}var fj,CR;function Uee(){if(CR)return fj;CR=1;function e(t){return this.__data__.get(t)}return fj=e,fj}var hj,OR;function Hee(){if(OR)return hj;OR=1;function e(t){return this.__data__.has(t)}return hj=e,hj}var mj,ER;function Wee(){if(ER)return mj;ER=1;var e=ey(),t=eO(),n=tO(),r=200;function a(s,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var w=p.get(l),b=p.get(u);if(w&&b)return w==u&&b==l;var N=-1,E=!0,O=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return $j=t,$j}var Ij,QR;function ate(){if(QR)return Ij;QR=1;var e=fs(),t=mO(),n=hs(),r="[object Arguments]",a="[object Array]",s="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",w="[object WeakMap]",b="[object ArrayBuffer]",N="[object DataView]",E="[object Float32Array]",O="[object Float64Array]",A="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",R="[object Uint16Array]",B="[object Uint32Array]",$={};$[E]=$[O]=$[A]=$[C]=$[k]=$[T]=$[M]=$[R]=$[B]=!0,$[r]=$[a]=$[b]=$[s]=$[N]=$[l]=$[u]=$[d]=$[f]=$[m]=$[p]=$[g]=$[x]=$[j]=$[w]=!1;function H(V){return n(V)&&t(V.length)&&!!$[e(V)]}return Ij=H,Ij}var Lj,JR;function jz(){if(JR)return Lj;JR=1;function e(t){return function(n){return t(n)}}return Lj=e,Lj}var pf={exports:{}};pf.exports;var eD;function ite(){return eD||(eD=1,(function(e,t){var n=FB(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(pf,pf.exports)),pf.exports}var Bj,tD;function Sz(){if(tD)return Bj;tD=1;var e=ate(),t=jz(),n=ite(),r=n&&n.isTypedArray,a=r?t(r):e;return Bj=a,Bj}var zj,nD;function ste(){if(nD)return zj;nD=1;var e=tte(),t=fO(),n=qr(),r=wz(),a=hO(),s=Sz(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&s(f),w=p||g||x||j,b=w?e(f.length,String):[],N=b.length;for(var E in f)(m||u.call(f,E))&&!(w&&(E=="length"||x&&(E=="offset"||E=="parent")||j&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||a(E,N)))&&b.push(E);return b}return zj=d,zj}var qj,rD;function ote(){if(rD)return qj;rD=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return qj=t,qj}var Fj,aD;function _z(){if(aD)return Fj;aD=1;function e(t,n){return function(r){return t(n(r))}}return Fj=e,Fj}var Uj,iD;function lte(){if(iD)return Uj;iD=1;var e=_z(),t=e(Object.keys,Object);return Uj=t,Uj}var Hj,sD;function cte(){if(sD)return Hj;sD=1;var e=ote(),t=lte(),n=Object.prototype,r=n.hasOwnProperty;function a(s){if(!e(s))return t(s);var l=[];for(var u in Object(s))r.call(s,u)&&u!="constructor"&&l.push(u);return l}return Hj=a,Hj}var Wj,oD;function Bh(){if(oD)return Wj;oD=1;var e=QC(),t=mO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Wj=n,Wj}var Vj,lD;function oy(){if(lD)return Vj;lD=1;var e=ste(),t=cte(),n=Bh();function r(a){return n(a)?e(a):t(a)}return Vj=r,Vj}var Gj,cD;function ute(){if(cD)return Gj;cD=1;var e=Zee(),t=ete(),n=oy();function r(a){return e(a,n,t)}return Gj=r,Gj}var Yj,uD;function dte(){if(uD)return Yj;uD=1;var e=ute(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(s,l,u,d,f,m){var p=u&t,g=e(s),x=g.length,j=e(l),w=j.length;if(x!=w&&!p)return!1;for(var b=x;b--;){var N=g[b];if(!(p?N in l:r.call(l,N)))return!1}var E=m.get(s),O=m.get(l);if(E&&O)return E==l&&O==s;var A=!0;m.set(s,l),m.set(l,s);for(var C=p;++b-1}return b1=t,b1}var w1,ID;function kte(){if(ID)return w1;ID=1;function e(t,n,r){for(var a=-1,s=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return s(N);j=!1,g=r,b=new e}else b=f?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Vte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Gte(e){return e.value}function Yte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=Wte(t,Ite);return W.createElement(uO,n)}var WD=1,al=(function(e){function t(){var n;Lte(this,t);for(var r=arguments.length,a=new Array(r),s=0;sWD||Math.abs(a.height-this.lastBoundingBox.height)>WD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Vi({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&s==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Vi(Vi({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Vi(Vi({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Yte(s,Vi(Vi({},this.props),{},{payload:Az(m,f,Gte)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Vi(Vi({},this.defaultProps),r.props),l=s.layout;return l==="vertical"&&Ce(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);ly(al,"displayName","Legend");ly(al,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var C1,VD;function Kte(){if(VD)return C1;VD=1;var e=Ih(),t=fO(),n=qr(),r=e?e.isConcatSpreadable:void 0;function a(s){return n(s)||t(s)||!!(r&&s&&s[r])}return C1=a,C1}var O1,GD;function Mz(){if(GD)return O1;GD=1;var e=bz(),t=Kte();function n(r,a,s,l,u){var d=-1,f=r.length;for(s||(s=t),u||(u=[]);++d0&&s(m)?a>1?n(m,a-1,s,l,u):e(u,m):l||(u[u.length]=m)}return u}return O1=n,O1}var E1,YD;function Xte(){if(YD)return E1;YD=1;function e(t){return function(n,r,a){for(var s=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++s];if(r(l[f],f,l)===!1)break}return n}}return E1=e,E1}var A1,KD;function Zte(){if(KD)return A1;KD=1;var e=Xte(),t=e();return A1=t,A1}var T1,XD;function Pz(){if(XD)return T1;XD=1;var e=Zte(),t=oy();function n(r,a){return r&&e(r,a,t)}return T1=n,T1}var k1,ZD;function Qte(){if(ZD)return k1;ZD=1;var e=Bh();function t(n,r){return function(a,s){if(a==null)return a;if(!e(a))return n(a,s);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||s&&d&&m||!a&&m||!l)return 1;if(!s&&!u&&!p&&n=f)return m;var p=a[s];return m*(p=="desc"?-1:1)}}return n.index-r.index}return $1=t,$1}var I1,r4;function nne(){if(r4)return I1;r4=1;var e=nO(),t=rO(),n=_i(),r=Rz(),a=Jte(),s=jz(),l=tne(),u=Vu(),d=qr();function f(m,p,g){p.length?p=e(p,function(w){return d(w)?function(b){return t(b,w.length===1?w[0]:w)}:w}):p=[u];var x=-1;p=e(p,s(n));var j=r(m,function(w,b,N){var E=e(p,function(O){return O(w)});return{criteria:E,index:++x,value:w}});return a(j,function(w,b){return l(w,b,g)})}return I1=f,I1}var L1,a4;function rne(){if(a4)return L1;a4=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return L1=e,L1}var B1,i4;function ane(){if(i4)return B1;i4=1;var e=rne(),t=Math.max;function n(r,a,s){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++s>=e)return arguments[0]}else s=0;return a.apply(void 0,arguments)}}return U1=r,U1}var H1,u4;function lne(){if(u4)return H1;u4=1;var e=sne(),t=one(),n=t(e);return H1=n,H1}var W1,d4;function cne(){if(d4)return W1;d4=1;var e=Vu(),t=ane(),n=lne();function r(a,s){return n(t(a,s,e),a+"")}return W1=r,W1}var V1,f4;function cy(){if(f4)return V1;f4=1;var e=JC(),t=Bh(),n=hO(),r=lo();function a(s,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],s):!1}return V1=a,V1}var G1,h4;function une(){if(h4)return G1;h4=1;var e=Mz(),t=nne(),n=cne(),r=cy(),a=n(function(s,l){if(s==null)return[];var u=l.length;return u>1&&r(s,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(s,e(l,1),[])});return G1=a,G1}var dne=une();const gO=At(dne);function If(e){"@babel/helpers - typeof";return If=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},If(e)}function q_(){return q_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(tf,"-left"),Ce(n)&&t&&Ce(t.x)&&n=t.y),"".concat(tf,"-top"),Ce(r)&&t&&Ce(t.y)&&rw?Math.max(m,d[r]):Math.max(p,d[r])}function Cne(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function One(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,s=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=v4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=v4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=Cne({translateX:m,translateY:p,useTranslate3d:u})):f=_ne,{cssProperties:f,cssClasses:Nne({translateX:m,translateY:p,coordinate:n})}}function uu(e){"@babel/helpers - typeof";return uu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uu(e)}function g4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function y4(e){for(var t=1;tx4||Math.abs(r.height-this.state.lastBoundingBox.height)>x4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,w=a.reverseDirection,b=a.useTranslate3d,N=a.viewBox,E=a.wrapperStyle,O=One({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:N}),A=O.cssClasses,C=O.cssProperties,k=y4(y4({transition:g&&s?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return W.createElement("div",{tabIndex:-1,className:A,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),Ine=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Nl={isSsr:Ine()};function du(e){"@babel/helpers - typeof";return du=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},du(e)}function b4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function w4(e){for(var t=1;t0;return W.createElement($ne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:s,coordinate:m,hasPayload:k,offset:x,position:b,reverseDirection:N,useTranslate3d:E,viewBox:O,wrapperStyle:A},Gne(f,w4(w4({},this.props),{},{payload:C})))}}])})(y.PureComponent);yO(ii,"displayName","Tooltip");yO(ii,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Nl.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var K1,j4;function Yne(){if(j4)return K1;j4=1;var e=Si(),t=function(){return e.Date.now()};return K1=t,K1}var X1,S4;function Kne(){if(S4)return X1;S4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return X1=t,X1}var Z1,_4;function Xne(){if(_4)return Z1;_4=1;var e=Kne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Z1=n,Z1}var Q1,N4;function zz(){if(N4)return Q1;N4=1;var e=Xne(),t=lo(),n=Uu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=s.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return Q1=d,Q1}var J1,C4;function Zne(){if(C4)return J1;C4=1;var e=lo(),t=Yne(),n=zz(),r="Expected a function",a=Math.max,s=Math.min;function l(u,d,f){var m,p,g,x,j,w,b=0,N=!1,E=!1,O=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,E="maxWait"in f,g=E?a(n(f.maxWait)||0,d):g,O="trailing"in f?!!f.trailing:O);function A(V){var q=m,G=p;return m=p=void 0,b=V,x=u.apply(G,q),x}function C(V){return b=V,j=setTimeout(M,d),N?A(V):x}function k(V){var q=V-w,G=V-b,L=d-q;return E?s(L,g-G):L}function T(V){var q=V-w,G=V-b;return w===void 0||q>=d||q<0||E&&G>=g}function M(){var V=t();if(T(V))return R(V);j=setTimeout(M,k(V))}function R(V){return j=void 0,O&&m?A(V):(m=p=void 0,x)}function B(){j!==void 0&&clearTimeout(j),b=0,m=w=p=j=void 0}function $(){return j===void 0?x:R(t())}function H(){var V=t(),q=T(V);if(m=arguments,p=this,w=V,q){if(j===void 0)return C(w);if(E)return clearTimeout(j),j=setTimeout(M,d),A(w)}return j===void 0&&(j=setTimeout(M,d)),x}return H.cancel=B,H.flush=$,H}return J1=l,J1}var eS,O4;function Qne(){if(O4)return eS;O4=1;var e=Zne(),t=lo(),n="Expected a function";function r(a,s,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,s,{leading:u,maxWait:s,trailing:d})}return eS=r,eS}var Jne=Qne();const qz=At(Jne);function Bf(e){"@babel/helpers - typeof";return Bf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bf(e)}function E4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $p(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(V=qz(V,w,{trailing:!0,leading:!1}));var q=new ResizeObserver(V),G=C.current.getBoundingClientRect(),L=G.width,D=G.height;return $(L,D),q.observe(C.current),function(){q.disconnect()}},[$,w]);var H=y.useMemo(function(){var V=R.containerWidth,q=R.containerHeight;if(V<0||q<0)return null;Ha(Ko(l)||Ko(d),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,l,d),Ha(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Ko(l)?V:l,L=Ko(d)?q:d;n&&n>0&&(G?L=G/n:L&&(G=L*n),g&&L>g&&(L=g)),Ha(G>0||L>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,G,L,l,d,m,p,n);var D=!Array.isArray(x)&&ns(x.type).endsWith("Chart");return W.Children.map(x,function(U){return W.isValidElement(U)?y.cloneElement(U,$p({width:G,height:L},D?{style:$p({height:"100%",width:"100%",maxHeight:L,maxWidth:G},U.props.style)}:{})):U})},[n,x,d,g,p,m,R,l]);return W.createElement("div",{id:b?"".concat(b):void 0,className:Je("recharts-responsive-container",N),style:$p($p({},A),{},{width:l,height:d,minWidth:m,minHeight:p,maxHeight:g}),ref:C},H)}),uy=function(t){return null};uy.displayName="Cell";function zf(e){"@babel/helpers - typeof";return zf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zf(e)}function T4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function W_(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Nl.isSsr)return{width:0,height:0};var r=mre(n),a=JSON.stringify({text:t,copyStyle:r});if(Nc.widthCache[a])return Nc.widthCache[a];try{var s=document.getElementById(k4);s||(s=document.createElement("span"),s.setAttribute("id",k4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var l=W_(W_({},hre),r);Object.assign(s.style,l),s.textContent="".concat(t);var u=s.getBoundingClientRect(),d={width:u.width,height:u.height};return Nc.widthCache[a]=d,++Nc.cacheCount>fre&&(Nc.cacheCount=0,Nc.widthCache={}),d}catch{return{width:0,height:0}}},pre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function qf(e){"@babel/helpers - typeof";return qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qf(e)}function zv(e,t){return xre(e)||yre(e,t)||gre(e,t)||vre()}function vre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gre(e,t){if(e){if(typeof e=="string")return M4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M4(e,t)}}function M4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Pre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function L4(e,t){return Ire(e)||$re(e,t)||Dre(e,t)||Rre()}function Rre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dre(e,t){if(e){if(typeof e=="string")return B4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return B4(e,t)}}function B4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function(L,D){var U=D.word,K=D.width,J=L[L.length-1];if(J&&(a==null||s||J.width+K+rD.width?L:D})};if(!m)return x;for(var w="…",b=function(G){var L=p.slice(0,G),D=Wz({breakAll:f,style:d,children:L+w}).wordsWithComputedWidth,U=g(D),K=U.length>l||j(U).width>Number(a);return[K,U]},N=0,E=p.length-1,O=0,A;N<=E&&O<=p.length-1;){var C=Math.floor((N+E)/2),k=C-1,T=b(k),M=L4(T,2),R=M[0],B=M[1],$=b(C),H=L4($,1),V=H[0];if(!R&&!V&&(N=C+1),R&&V&&(E=C-1),!R&&V){A=B;break}O++}return A||x},z4=function(t){var n=Qe(t)?[]:t.toString().split(Hz);return[{words:n}]},Bre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,s=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Nl.isSsr){var d,f,m=Wz({breakAll:l,children:a,style:s});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return z4(a);return Lre({breakAll:l,children:a,maxLines:u,style:s},d,f,n,r)}return z4(a)},q4="#808080",ml=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,w=j===void 0?"end":j,b=t.fill,N=b===void 0?q4:b,E=I4(t,kre),O=y.useMemo(function(){return Bre({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),A=E.dx,C=E.dy,k=E.angle,T=E.className,M=E.breakAll,R=I4(E,Mre);if(!Ln(r)||!Ln(s))return null;var B=r+(Ce(A)?A:0),$=s+(Ce(C)?C:0),H;switch(w){case"start":H=tS("calc(".concat(f,")"));break;case"middle":H=tS("calc(".concat((O.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:H=tS("calc(".concat(O.length-1," * -").concat(u,")"));break}var V=[];if(p){var q=O[0].width,G=E.width;V.push("scale(".concat((Ce(G)?G/q:1)/q,")"))}return k&&V.push("rotate(".concat(k,", ").concat(B,", ").concat($,")")),V.length&&(R.transform=V.join(" ")),W.createElement("text",V_({},qe(R,!0),{x:B,y:$,className:Je("recharts-text",T),textAnchor:x,fill:N.includes("url")?q4:N}),O.map(function(L,D){var U=L.words.join(M?"":" ");return W.createElement("tspan",{x:B,dy:D===0?H:u,key:"".concat(U,"-").concat(D)},U)}))};function Qs(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function zre(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function xO(e){let t,n,r;e.length!==2?(t=Qs,n=(u,d)=>Qs(e(u),d),r=(u,d)=>e(u)-d):(t=e===Qs||e===zre?e:qre,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:s}}function qre(){return 0}function Vz(e){return e===null?NaN:+e}function*Fre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Ure=xO(Qs),zh=Ure.right;xO(Vz).center;class F4 extends Map{constructor(t,n=Vre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(U4(this,t))}has(t){return super.has(U4(this,t))}set(t,n){return super.set(Hre(this,t),n)}delete(t){return super.delete(Wre(this,t))}}function U4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Hre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Wre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Vre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Gre(e=Qs){if(e===Qs)return Gz;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function Gz(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Yre=Math.sqrt(50),Kre=Math.sqrt(10),Xre=Math.sqrt(2);function qv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),l=s>=Yre?10:s>=Kre?5:s>=Xre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=s-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function W4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function Yz(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?Gz:Gre(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));Yz(e,t,x,j,a)}const s=e[t];let l=n,u=r;for(nf(e,n,t),a(e[r],s)>0&&nf(e,n,r);l0;)--u}a(e[n],s)===0?nf(e,n,u):(++u,nf(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function nf(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Zre(e,t,n){if(e=Float64Array.from(Fre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return W4(e);if(t>=1)return H4(e);var r,a=(r-1)*t,s=Math.floor(a),l=H4(Yz(e,s).subarray(0,s+1)),u=W4(e.subarray(s+1));return l+(u-l)*(a-s)}}function Qre(e,t,n=Vz){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,s=Math.floor(a),l=+n(e[s],s,e),u=+n(e[s+1],s+1,e);return l+(u-l)*(a-s)}}function Jre(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Lp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Lp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=tae.exec(e))?new Rr(t[1],t[2],t[3],1):(t=nae.exec(e))?new Rr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=rae.exec(e))?Lp(t[1],t[2],t[3],t[4]):(t=aae.exec(e))?Lp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=iae.exec(e))?Q4(t[1],t[2]/100,t[3]/100,1):(t=sae.exec(e))?Q4(t[1],t[2]/100,t[3]/100,t[4]):V4.hasOwnProperty(e)?K4(V4[e]):e==="transparent"?new Rr(NaN,NaN,NaN,0):null}function K4(e){return new Rr(e>>16&255,e>>8&255,e&255,1)}function Lp(e,t,n,r){return r<=0&&(e=t=n=NaN),new Rr(e,t,n,r)}function cae(e){return e instanceof qh||(e=Wf(e)),e?(e=e.rgb(),new Rr(e.r,e.g,e.b,e.opacity)):new Rr}function Z_(e,t,n,r){return arguments.length===1?cae(e):new Rr(e,t,n,r??1)}function Rr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}wO(Rr,Z_,Xz(qh,{brighter(e){return e=e==null?Fv:Math.pow(Fv,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Uf:Math.pow(Uf,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rr(il(this.r),il(this.g),il(this.b),Uv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:X4,formatHex:X4,formatHex8:uae,formatRgb:Z4,toString:Z4}));function X4(){return`#${Xo(this.r)}${Xo(this.g)}${Xo(this.b)}`}function uae(){return`#${Xo(this.r)}${Xo(this.g)}${Xo(this.b)}${Xo((isNaN(this.opacity)?1:this.opacity)*255)}`}function Z4(){const e=Uv(this.opacity);return`${e===1?"rgb(":"rgba("}${il(this.r)}, ${il(this.g)}, ${il(this.b)}${e===1?")":`, ${e})`}`}function Uv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function il(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Xo(e){return e=il(e),(e<16?"0":"")+e.toString(16)}function Q4(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new qa(e,t,n,r)}function Zz(e){if(e instanceof qa)return new qa(e.h,e.s,e.l,e.opacity);if(e instanceof qh||(e=Wf(e)),!e)return new qa;if(e instanceof qa)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,u=s-a,d=(s+a)/2;return u?(t===s?l=(n-r)/u+(n0&&d<1?0:l,new qa(l,u,d,e.opacity)}function dae(e,t,n,r){return arguments.length===1?Zz(e):new qa(e,t,n,r??1)}function qa(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}wO(qa,dae,Xz(qh,{brighter(e){return e=e==null?Fv:Math.pow(Fv,e),new qa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Uf:Math.pow(Uf,e),new qa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new Rr(nS(e>=240?e-240:e+120,a,r),nS(e,a,r),nS(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new qa(J4(this.h),Bp(this.s),Bp(this.l),Uv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Uv(this.opacity);return`${e===1?"hsl(":"hsla("}${J4(this.h)}, ${Bp(this.s)*100}%, ${Bp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function J4(e){return e=(e||0)%360,e<0?e+360:e}function Bp(e){return Math.max(0,Math.min(1,e||0))}function nS(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const jO=e=>()=>e;function fae(e,t){return function(n){return e+n*t}}function hae(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function mae(e){return(e=+e)==1?Qz:function(t,n){return n-t?hae(t,n,e):jO(isNaN(t)?n:t)}}function Qz(e,t){var n=t-e;return n?fae(e,n):jO(isNaN(e)?t:e)}const e3=(function e(t){var n=mae(t);function r(a,s){var l=n((a=Z_(a)).r,(s=Z_(s)).r),u=n(a.g,s.g),d=n(a.b,s.b),f=Qz(a.opacity,s.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function pae(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(s){for(a=0;an&&(s=t.slice(n,s),u[l]?u[l]+=s:u[++l]=s),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:Hv(r,a)})),n=rS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Cae(e,t,n){var r=e[0],a=e[1],s=t[0],l=t[1];return a2?Oae:Cae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?s:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),Hv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,Wv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=SO,m()},p.clamp=function(g){return arguments.length?(l=g?!0:_r,m()):l!==_r},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(s=g,p):s},function(g,x){return r=g,a=x,m()}}function _O(){return dy()(_r,_r)}function Eae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Vv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function fu(e){return e=Vv(Math.abs(e)),e?e[1]:NaN}function Aae(e,t){return function(n,r){for(var a=n.length,s=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),s.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return s.reverse().join(t)}}function Tae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var kae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vf(e){if(!(t=kae.exec(e)))throw new Error("invalid format: "+e);var t;return new NO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Vf.prototype=NO.prototype;function NO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}NO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Mae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var Jz;function Pae(e,t){var n=Vv(e,t);if(!n)return e+"";var r=n[0],a=n[1],s=a-(Jz=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Vv(e,Math.max(0,t+s-1))[0]}function n3(e,t){var n=Vv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const r3={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Eae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>n3(e*100,t),r:n3,s:Pae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function a3(e){return e}var i3=Array.prototype.map,s3=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Rae(e){var t=e.grouping===void 0||e.thousands===void 0?a3:Aae(i3.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?a3:Tae(i3.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=Vf(p);var g=p.fill,x=p.align,j=p.sign,w=p.symbol,b=p.zero,N=p.width,E=p.comma,O=p.precision,A=p.trim,C=p.type;C==="n"?(E=!0,C="g"):r3[C]||(O===void 0&&(O=12),A=!0,C="g"),(b||g==="0"&&x==="=")&&(b=!0,g="0",x="=");var k=w==="$"?n:w==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=w==="$"?r:/[%p]/.test(C)?l:"",M=r3[C],R=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function B($){var H=k,V=T,q,G,L;if(C==="c")V=M($)+V,$="";else{$=+$;var D=$<0||1/$<0;if($=isNaN($)?d:M(Math.abs($),O),A&&($=Mae($)),D&&+$==0&&j!=="+"&&(D=!1),H=(D?j==="("?j:u:j==="-"||j==="("?"":j)+H,V=(C==="s"?s3[8+Jz/3]:"")+V+(D&&j==="("?")":""),R){for(q=-1,G=$.length;++qL||L>57){V=(L===46?a+$.slice(q+1):$.slice(q))+V,$=$.slice(0,q);break}}}E&&!b&&($=t($,1/0));var U=H.length+$.length+V.length,K=U>1)+H+$+V+K.slice(U);break;default:$=K+H+$+V;break}return s($)}return B.toString=function(){return p+""},B}function m(p,g){var x=f((p=Vf(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(fu(g)/3)))*3,w=Math.pow(10,-j),b=s3[8+j/3];return function(N){return x(w*N)+b}}return{format:f,formatPrefix:m}}var zp,CO,e6;Dae({thousands:",",grouping:[3],currency:["$",""]});function Dae(e){return zp=Rae(e),CO=zp.format,e6=zp.formatPrefix,zp}function $ae(e){return Math.max(0,-fu(Math.abs(e)))}function Iae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fu(t)/3)))*3-fu(Math.abs(e)))}function Lae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,fu(t)-fu(e))+1}function t6(e,t,n,r){var a=K_(e,t,n),s;switch(r=Vf(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(s=Iae(a,l))&&(r.precision=s),e6(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Lae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=$ae(a))&&(r.precision=s-(r.type==="%")*2);break}}return CO(r)}function co(e){var t=e.domain;return e.ticks=function(n){var r=t();return G_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return t6(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,s=r.length-1,l=r[a],u=r[s],d,f,m=10;for(u0;){if(f=Y_(l,u,n),f===d)return r[a]=l,r[s]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function Gv(){var e=_O();return e.copy=function(){return Fh(e,Gv())},ka.apply(e,arguments),co(e)}function n6(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Wv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return n6(e).unknown(t)},e=arguments.length?Array.from(e,Wv):[0,1],co(n)}function r6(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],s=e[r],l;return sMath.pow(e,t)}function Uae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function c3(e){return(t,n)=>-e(-t,n)}function OO(e){const t=e(o3,l3),n=t.domain;let r=10,a,s;function l(){return a=Uae(r),s=Fae(r),n()[0]<0?(a=c3(a),s=c3(s),e(Bae,zae)):e(o3,l3),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(w)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(w=g>0?j/s(-g):j*s(g),!(wm)break;N.push(w)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=Vf(d)).precision==null&&(d.trim=!0),d=CO(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/s(Math.round(a(m)));return p*rn(r6(n(),{floor:u=>s(Math.floor(a(u))),ceil:u=>s(Math.ceil(a(u)))})),t}function a6(){const e=OO(dy()).domain([1,10]);return e.copy=()=>Fh(e,a6()).base(e.base()),ka.apply(e,arguments),e}function u3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function d3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function EO(e){var t=1,n=e(u3(t),d3(t));return n.constant=function(r){return arguments.length?e(u3(t=+r),d3(t)):t},co(n)}function i6(){var e=EO(dy());return e.copy=function(){return Fh(e,i6()).constant(e.constant())},ka.apply(e,arguments)}function f3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Hae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Wae(e){return e<0?-e*e:e*e}function AO(e){var t=e(_r,_r),n=1;function r(){return n===1?e(_r,_r):n===.5?e(Hae,Wae):e(f3(n),f3(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},co(t)}function TO(){var e=AO(dy());return e.copy=function(){return Fh(e,TO()).exponent(e.exponent())},ka.apply(e,arguments),e}function Vae(){return TO.apply(null,arguments).exponent(.5)}function h3(e){return Math.sign(e)*e*e}function Gae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function s6(){var e=_O(),t=[0,1],n=!1,r;function a(s){var l=Gae(e(s));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(s){return e.invert(h3(s))},a.domain=function(s){return arguments.length?(e.domain(s),a):e.domain()},a.range=function(s){return arguments.length?(e.range((t=Array.from(s,Wv)).map(h3)),a):t.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(e.clamp(s),a):e.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return s6(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},ka.apply(a,arguments),co(a)}function o6(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(s=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return l6().domain([e,t]).range(a).unknown(s)},ka.apply(co(l),arguments)}function c6(){var e=[.5],t=[0,1],n,r=1;function a(s){return s!=null&&s<=s?t[zh(e,s,0,r)]:n}return a.domain=function(s){return arguments.length?(e=Array.from(s),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(s){return arguments.length?(t=Array.from(s),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(s){var l=t.indexOf(s);return[e[l-1],e[l]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return c6().domain(e).range(t).unknown(n)},ka.apply(a,arguments)}const aS=new Date,iS=new Date;function zn(e,t,n,r){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const l=a(s),u=a.ceil(s);return s-l(t(s=new Date(+s),l==null?1:Math.floor(l)),s),a.range=(s,l,u)=>{const d=[];if(s=a.ceil(s),u=u==null?1:Math.floor(u),!(s0))return d;let f;do d.push(f=new Date(+s)),t(s,u),e(s);while(fzn(l=>{if(l>=l)for(;e(l),!s(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!s(l););else for(;--u>=0;)for(;t(l,1),!s(l););}),n&&(a.count=(s,l)=>(aS.setTime(+s),iS.setTime(+l),e(aS),e(iS),Math.floor(n(aS,iS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?l=>r(l)%s===0:l=>a.count(0,l)%s===0):a)),a}const Yv=zn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Yv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?zn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Yv);Yv.range;const Xi=1e3,Ca=Xi*60,Zi=Ca*60,ss=Zi*24,kO=ss*7,m3=ss*30,sS=ss*365,Zo=zn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Xi)},(e,t)=>(t-e)/Xi,e=>e.getUTCSeconds());Zo.range;const MO=zn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xi)},(e,t)=>{e.setTime(+e+t*Ca)},(e,t)=>(t-e)/Ca,e=>e.getMinutes());MO.range;const PO=zn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ca)},(e,t)=>(t-e)/Ca,e=>e.getUTCMinutes());PO.range;const RO=zn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xi-e.getMinutes()*Ca)},(e,t)=>{e.setTime(+e+t*Zi)},(e,t)=>(t-e)/Zi,e=>e.getHours());RO.range;const DO=zn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Zi)},(e,t)=>(t-e)/Zi,e=>e.getUTCHours());DO.range;const Uh=zn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ca)/ss,e=>e.getDate()-1);Uh.range;const fy=zn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ss,e=>e.getUTCDate()-1);fy.range;const u6=zn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ss,e=>Math.floor(e/ss));u6.range;function Cl(e){return zn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Ca)/kO)}const hy=Cl(0),Kv=Cl(1),Yae=Cl(2),Kae=Cl(3),hu=Cl(4),Xae=Cl(5),Zae=Cl(6);hy.range;Kv.range;Yae.range;Kae.range;hu.range;Xae.range;Zae.range;function Ol(e){return zn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/kO)}const my=Ol(0),Xv=Ol(1),Qae=Ol(2),Jae=Ol(3),mu=Ol(4),eie=Ol(5),tie=Ol(6);my.range;Xv.range;Qae.range;Jae.range;mu.range;eie.range;tie.range;const $O=zn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());$O.range;const IO=zn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());IO.range;const os=zn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());os.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:zn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});os.range;const ls=zn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ls.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:zn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});ls.range;function d6(e,t,n,r,a,s){const l=[[Zo,1,Xi],[Zo,5,5*Xi],[Zo,15,15*Xi],[Zo,30,30*Xi],[s,1,Ca],[s,5,5*Ca],[s,15,15*Ca],[s,30,30*Ca],[a,1,Zi],[a,3,3*Zi],[a,6,6*Zi],[a,12,12*Zi],[r,1,ss],[r,2,2*ss],[n,1,kO],[t,1,m3],[t,3,3*m3],[e,1,sS]];function u(f,m,p){const g=mb).right(l,g);if(x===l.length)return e.every(K_(f/sS,m/sS,p));if(x===0)return Yv.every(Math.max(K_(f,m,p),1));const[j,w]=l[g/l[x-1][2]53)return null;"w"in fe||(fe.w=1),"Z"in fe?(Oe=lS(rf(fe.y,0,1)),We=Oe.getUTCDay(),Oe=We>4||We===0?Xv.ceil(Oe):Xv(Oe),Oe=fy.offset(Oe,(fe.V-1)*7),fe.y=Oe.getUTCFullYear(),fe.m=Oe.getUTCMonth(),fe.d=Oe.getUTCDate()+(fe.w+6)%7):(Oe=oS(rf(fe.y,0,1)),We=Oe.getDay(),Oe=We>4||We===0?Kv.ceil(Oe):Kv(Oe),Oe=Uh.offset(Oe,(fe.V-1)*7),fe.y=Oe.getFullYear(),fe.m=Oe.getMonth(),fe.d=Oe.getDate()+(fe.w+6)%7)}else("W"in fe||"U"in fe)&&("w"in fe||(fe.w="u"in fe?fe.u%7:"W"in fe?1:0),We="Z"in fe?lS(rf(fe.y,0,1)).getUTCDay():oS(rf(fe.y,0,1)).getDay(),fe.m=0,fe.d="W"in fe?(fe.w+6)%7+fe.W*7-(We+5)%7:fe.w+fe.U*7-(We+6)%7);return"Z"in fe?(fe.H+=fe.Z/100|0,fe.M+=fe.Z%100,lS(fe)):oS(fe)}}function M(re,we,je,fe){for(var Le=0,Oe=we.length,We=je.length,be,Ae;Le=We)return-1;if(be=we.charCodeAt(Le++),be===37){if(be=we.charAt(Le++),Ae=C[be in p3?we.charAt(Le++):be],!Ae||(fe=Ae(re,je,fe))<0)return-1}else if(be!=je.charCodeAt(fe++))return-1}return fe}function R(re,we,je){var fe=f.exec(we.slice(je));return fe?(re.p=m.get(fe[0].toLowerCase()),je+fe[0].length):-1}function B(re,we,je){var fe=x.exec(we.slice(je));return fe?(re.w=j.get(fe[0].toLowerCase()),je+fe[0].length):-1}function $(re,we,je){var fe=p.exec(we.slice(je));return fe?(re.w=g.get(fe[0].toLowerCase()),je+fe[0].length):-1}function H(re,we,je){var fe=N.exec(we.slice(je));return fe?(re.m=E.get(fe[0].toLowerCase()),je+fe[0].length):-1}function V(re,we,je){var fe=w.exec(we.slice(je));return fe?(re.m=b.get(fe[0].toLowerCase()),je+fe[0].length):-1}function q(re,we,je){return M(re,t,we,je)}function G(re,we,je){return M(re,n,we,je)}function L(re,we,je){return M(re,r,we,je)}function D(re){return l[re.getDay()]}function U(re){return s[re.getDay()]}function K(re){return d[re.getMonth()]}function J(re){return u[re.getMonth()]}function I(re){return a[+(re.getHours()>=12)]}function z(re){return 1+~~(re.getMonth()/3)}function Y(re){return l[re.getUTCDay()]}function te(re){return s[re.getUTCDay()]}function ae(re){return d[re.getUTCMonth()]}function ge(re){return u[re.getUTCMonth()]}function ee(re){return a[+(re.getUTCHours()>=12)]}function Se(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var we=k(re+="",O);return we.toString=function(){return re},we},parse:function(re){var we=T(re+="",!1);return we.toString=function(){return re},we},utcFormat:function(re){var we=k(re+="",A);return we.toString=function(){return re},we},utcParse:function(re){var we=T(re+="",!0);return we.toString=function(){return re},we}}}var p3={"-":"",_:" ",0:"0"},Qn=/^\s*\d+/,oie=/^%/,lie=/[\\^$*+?|[\]().{}]/g;function bt(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",s=a.length;return r+(s[t.toLowerCase(),n]))}function uie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function die(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function fie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function hie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function mie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function v3(e,t,n){var r=Qn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function g3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function pie(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function vie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function gie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function y3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function yie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function x3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function xie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function bie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function wie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function jie(e,t,n){var r=Qn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Sie(e,t,n){var r=oie.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function _ie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Nie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function b3(e,t){return bt(e.getDate(),t,2)}function Cie(e,t){return bt(e.getHours(),t,2)}function Oie(e,t){return bt(e.getHours()%12||12,t,2)}function Eie(e,t){return bt(1+Uh.count(os(e),e),t,3)}function f6(e,t){return bt(e.getMilliseconds(),t,3)}function Aie(e,t){return f6(e,t)+"000"}function Tie(e,t){return bt(e.getMonth()+1,t,2)}function kie(e,t){return bt(e.getMinutes(),t,2)}function Mie(e,t){return bt(e.getSeconds(),t,2)}function Pie(e){var t=e.getDay();return t===0?7:t}function Rie(e,t){return bt(hy.count(os(e)-1,e),t,2)}function h6(e){var t=e.getDay();return t>=4||t===0?hu(e):hu.ceil(e)}function Die(e,t){return e=h6(e),bt(hu.count(os(e),e)+(os(e).getDay()===4),t,2)}function $ie(e){return e.getDay()}function Iie(e,t){return bt(Kv.count(os(e)-1,e),t,2)}function Lie(e,t){return bt(e.getFullYear()%100,t,2)}function Bie(e,t){return e=h6(e),bt(e.getFullYear()%100,t,2)}function zie(e,t){return bt(e.getFullYear()%1e4,t,4)}function qie(e,t){var n=e.getDay();return e=n>=4||n===0?hu(e):hu.ceil(e),bt(e.getFullYear()%1e4,t,4)}function Fie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+bt(t/60|0,"0",2)+bt(t%60,"0",2)}function w3(e,t){return bt(e.getUTCDate(),t,2)}function Uie(e,t){return bt(e.getUTCHours(),t,2)}function Hie(e,t){return bt(e.getUTCHours()%12||12,t,2)}function Wie(e,t){return bt(1+fy.count(ls(e),e),t,3)}function m6(e,t){return bt(e.getUTCMilliseconds(),t,3)}function Vie(e,t){return m6(e,t)+"000"}function Gie(e,t){return bt(e.getUTCMonth()+1,t,2)}function Yie(e,t){return bt(e.getUTCMinutes(),t,2)}function Kie(e,t){return bt(e.getUTCSeconds(),t,2)}function Xie(e){var t=e.getUTCDay();return t===0?7:t}function Zie(e,t){return bt(my.count(ls(e)-1,e),t,2)}function p6(e){var t=e.getUTCDay();return t>=4||t===0?mu(e):mu.ceil(e)}function Qie(e,t){return e=p6(e),bt(mu.count(ls(e),e)+(ls(e).getUTCDay()===4),t,2)}function Jie(e){return e.getUTCDay()}function ese(e,t){return bt(Xv.count(ls(e)-1,e),t,2)}function tse(e,t){return bt(e.getUTCFullYear()%100,t,2)}function nse(e,t){return e=p6(e),bt(e.getUTCFullYear()%100,t,2)}function rse(e,t){return bt(e.getUTCFullYear()%1e4,t,4)}function ase(e,t){var n=e.getUTCDay();return e=n>=4||n===0?mu(e):mu.ceil(e),bt(e.getUTCFullYear()%1e4,t,4)}function ise(){return"+0000"}function j3(){return"%"}function S3(e){return+e}function _3(e){return Math.floor(+e/1e3)}var Cc,v6,g6;sse({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function sse(e){return Cc=sie(e),v6=Cc.format,Cc.parse,g6=Cc.utcFormat,Cc.utcParse,Cc}function ose(e){return new Date(e)}function lse(e){return e instanceof Date?+e:+new Date(+e)}function LO(e,t,n,r,a,s,l,u,d,f){var m=_O(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),w=f("%I:%M"),b=f("%I %p"),N=f("%a %d"),E=f("%b %d"),O=f("%B"),A=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>Zre(e,s/r))},n.copy=function(){return w6(t).domain(e)},ms.apply(n,arguments)}function vy(){var e=0,t=.5,n=1,r=1,a,s,l,u,d,f=_r,m,p=!1,g;function x(w){return isNaN(w=+w)?g:(w=.5+((w=+m(w))-s)*(r*wn}return uS=e,uS}var dS,E3;function hse(){if(E3)return dS;E3=1;var e=gy(),t=N6(),n=Vu();function r(a){return a&&a.length?e(a,n,t):void 0}return dS=r,dS}var mse=hse();const yy=At(mse);var fS,A3;function C6(){if(A3)return fS;A3=1;function e(t,n){return te.e^s.s<0?1:-1;for(r=s.d.length,a=e.d.length,t=0,n=re.d[t]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};Te.decimalPlaces=Te.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*tn;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Te.dividedBy=Te.div=function(e){return rs(this,new this.constructor(e))};Te.dividedToIntegerBy=Te.idiv=function(e){var t=this,n=t.constructor;return Vt(rs(t,new n(e),0,1),n.precision)};Te.equals=Te.eq=function(e){return!this.cmp(e)};Te.exponent=function(){return Tn(this)};Te.greaterThan=Te.gt=function(e){return this.cmp(e)>0};Te.greaterThanOrEqualTo=Te.gte=function(e){return this.cmp(e)>=0};Te.isInteger=Te.isint=function(){return this.e>this.d.length-2};Te.isNegative=Te.isneg=function(){return this.s<0};Te.isPositive=Te.ispos=function(){return this.s>0};Te.isZero=function(){return this.s===0};Te.lessThan=Te.lt=function(e){return this.cmp(e)<0};Te.lessThanOrEqualTo=Te.lte=function(e){return this.cmp(e)<1};Te.logarithm=Te.log=function(e){var t,n=this,r=n.constructor,a=r.precision,s=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ra))throw Error(Aa+"NaN");if(n.s<1)throw Error(Aa+(n.s?"NaN":"-Infinity"));return n.eq(ra)?new r(0):(rn=!1,t=rs(Gf(n,s),Gf(e,s),s),rn=!0,Vt(t,a))};Te.minus=Te.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?T6(t,e):E6(t,(e.s=-e.s,e))};Te.modulo=Te.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(Aa+"NaN");return n.s?(rn=!1,t=rs(n,e,0,1).times(e),rn=!0,n.minus(t)):Vt(new r(n),a)};Te.naturalExponential=Te.exp=function(){return A6(this)};Te.naturalLogarithm=Te.ln=function(){return Gf(this)};Te.negated=Te.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Te.plus=Te.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?E6(t,e):T6(t,(e.s=-e.s,e))};Te.precision=Te.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(sl+e);if(t=Tn(a)+1,r=a.d.length-1,n=r*tn+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Te.squareRoot=Te.sqrt=function(){var e,t,n,r,a,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Aa+"NaN")}for(e=Tn(u),rn=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=ui(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Ku((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(s=r,r=s.plus(rs(u,s,l+2)).times(.5),ui(s.d).slice(0,l)===(t=ui(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Vt(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!="9999")break;l+=4}return rn=!0,Vt(r,n)};Te.times=Te.mul=function(e){var t,n,r,a,s,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=s[a]+x[r]*g[a-r-1]+t,s[a--]=u%Hn|0,t=u/Hn|0;s[a]=(s[a]+t)%Hn|0}for(;!s[--l];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,rn?Vt(e,p.precision):e};Te.toDecimalPlaces=Te.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(xi(e,0,Yu),t===void 0?t=r.rounding:xi(t,0,8),Vt(n,e+Tn(n)+1,t))};Te.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=pl(r,!0):(xi(e,0,Yu),t===void 0?t=a.rounding:xi(t,0,8),r=Vt(new a(r),e+1,t),n=pl(r,!0,e+1)),n};Te.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?pl(a):(xi(e,0,Yu),t===void 0?t=s.rounding:xi(t,0,8),r=Vt(new s(a),e+Tn(a)+1,t),n=pl(r.abs(),!1,e+Tn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Te.toInteger=Te.toint=function(){var e=this,t=e.constructor;return Vt(new t(e),Tn(e)+1,t.rounding)};Te.toNumber=function(){return+this};Te.toPower=Te.pow=function(e){var t,n,r,a,s,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ra);if(u=new d(u),!u.s){if(e.s<1)throw Error(Aa+"Infinity");return u}if(u.eq(ra))return u;if(r=d.precision,e.eq(ra))return Vt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,l){if((n=m<0?-m:m)<=O6){for(a=new d(ra),t=Math.ceil(r/tn+4),rn=!1;n%2&&(a=a.times(u),D3(a.d,t)),n=Ku(n/2),n!==0;)u=u.times(u),D3(u.d,t);return rn=!0,e.s<0?new d(ra).div(a):Vt(a,r)}}else if(s<0)throw Error(Aa+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,rn=!1,a=e.times(Gf(u,r+f)),rn=!0,a=A6(a),a.s=s,a};Te.toPrecision=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?(n=Tn(a),r=pl(a,n<=s.toExpNeg||n>=s.toExpPos)):(xi(e,1,Yu),t===void 0?t=s.rounding:xi(t,0,8),a=Vt(new s(a),e,t),n=Tn(a),r=pl(a,e<=n||n<=s.toExpNeg,e)),r};Te.toSignificantDigits=Te.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(xi(e,1,Yu),t===void 0?t=r.rounding:xi(t,0,8)),Vt(new r(n),e,t)};Te.toString=Te.valueOf=Te.val=Te.toJSON=Te[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=Tn(e),n=e.constructor;return pl(e,t<=n.toExpNeg||t>=n.toExpPos)};function E6(e,t){var n,r,a,s,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),rn?Vt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),s=l-a,s){for(s<0?(r=d,s=-s,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/tn),u=l>u?l+1:u+1,s>u&&(s=u,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(u=d.length,s=f.length,u-s<0&&(s=u,r=f,f=d,d=r),n=0;s;)n=(d[--s]=d[s]+f[s]+n)/Hn|0,d[s]%=Hn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,rn?Vt(t,p):t}function xi(e,t,n){if(e!==~~e||en)throw Error(sl+e)}function ui(e){var t,n,r,a=e.length-1,s="",l=e[0];if(a>0){for(s+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,s){for(var l=0;s--;)r[s]-=l,l=r[s]1;)r.shift()}return function(r,a,s,l){var u,d,f,m,p,g,x,j,w,b,N,E,O,A,C,k,T,M,R=r.constructor,B=r.s==a.s?1:-1,$=r.d,H=a.d;if(!r.s)return new R(r);if(!a.s)throw Error(Aa+"Division by zero");for(d=r.e-a.e,T=H.length,C=$.length,x=new R(B),j=x.d=[],f=0;H[f]==($[f]||0);)++f;if(H[f]>($[f]||0)&&--d,s==null?E=s=R.precision:l?E=s+(Tn(r)-Tn(a))+1:E=s,E<0)return new R(0);if(E=E/tn+2|0,f=0,T==1)for(m=0,H=H[0],E++;(f1&&(H=e(H,m),$=e($,m),T=H.length,C=$.length),A=T,w=$.slice(0,T),b=w.length;b=Hn/2&&++k;do m=0,u=t(H,w,T,b),u<0?(N=w[0],T!=b&&(N=N*Hn+(w[1]||0)),m=N/k|0,m>1?(m>=Hn&&(m=Hn-1),p=e(H,m),g=p.length,b=w.length,u=t(p,w,g,b),u==1&&(m--,n(p,T16)throw Error(qO+Tn(e));if(!e.s)return new m(ra);for(rn=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Wo(2,f))/Math.LN10*2+5|0,u+=r,n=a=s=new m(ra),m.precision=u;;){if(a=Vt(a.times(e),u),n=n.times(++d),l=s.plus(rs(a,n,u)),ui(l.d).slice(0,u)===ui(s.d).slice(0,u)){for(;f--;)s=Vt(s.times(s),u);return m.precision=p,t==null?(rn=!0,Vt(s,p)):s}s=l}}function Tn(e){for(var t=e.e*tn,n=e.d[0];n>=10;n/=10)t++;return t}function gS(e,t,n){if(t>e.LN10.sd())throw rn=!0,n&&(e.precision=n),Error(Aa+"LN10 precision limit exceeded");return Vt(new e(e.LN10),t)}function Hs(e){for(var t="";e--;)t+="0";return t}function Gf(e,t){var n,r,a,s,l,u,d,f,m,p=1,g=10,x=e,j=x.d,w=x.constructor,b=w.precision;if(x.s<1)throw Error(Aa+(x.s?"NaN":"-Infinity"));if(x.eq(ra))return new w(0);if(t==null?(rn=!1,f=b):f=t,x.eq(10))return t==null&&(rn=!0),gS(w,f);if(f+=g,w.precision=f,n=ui(j),r=n.charAt(0),s=Tn(x),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=ui(x.d),r=n.charAt(0),p++;s=Tn(x),r>1?(x=new w("0."+n),s++):x=new w(r+"."+n.slice(1))}else return d=gS(w,f+2,b).times(s+""),x=Gf(new w(r+"."+n.slice(1)),f-g).plus(d),w.precision=b,t==null?(rn=!0,Vt(x,b)):x;for(u=l=x=rs(x.minus(ra),x.plus(ra),f),m=Vt(x.times(x),f),a=3;;){if(l=Vt(l.times(m),f),d=u.plus(rs(l,new w(a),f)),ui(d.d).slice(0,f)===ui(u.d).slice(0,f))return u=u.times(2),s!==0&&(u=u.plus(gS(w,f+2,b).times(s+""))),u=rs(u,new w(p),f),w.precision=b,t==null?(rn=!0,Vt(u,b)):u;u=d,a+=2}}function R3(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Ku(n/tn),e.d=[],r=(n+1)%tn,n<0&&(r+=tn),rZv||e.e<-Zv))throw Error(qO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Vt(e,t,n){var r,a,s,l,u,d,f,m,p=e.d;for(l=1,s=p[0];s>=10;s/=10)l++;if(r=t-l,r<0)r+=tn,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/tn),s=p.length,m>=s)return e;for(f=s=p[m],l=1;s>=10;s/=10)l++;r%=tn,a=r-tn+l}if(n!==void 0&&(s=Wo(10,l-a-1),u=f/s%10|0,d=t<0||p[m+1]!==void 0||f%s,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Wo(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(s=Tn(e),p.length=1,t=t-s-1,p[0]=Wo(10,(tn-t%tn)%tn),e.e=Ku(-t/tn)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,s=1,m--):(p.length=m+1,s=Wo(10,tn-r),p[m]=a>0?(f/Wo(10,l-a)%Wo(10,a)|0)*s:0),d)for(;;)if(m==0){(p[0]+=s)==Hn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=Hn)break;p[m--]=0,s=1}for(r=p.length;p[--r]===0;)p.pop();if(rn&&(e.e>Zv||e.e<-Zv))throw Error(qO+Tn(e));return e}function T6(e,t){var n,r,a,s,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),rn?Vt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/tn),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?s=s.charAt(0)+"."+s.slice(1)+Hs(r):l>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+Hs(-a-1)+s,n&&(r=n-l)>0&&(s+=Hs(r))):a>=l?(s+=Hs(a+1-l),n&&(r=n-a-1)>0&&(s=s+"."+Hs(r))):((r=a+1)0&&(a+1===l&&(s+="."),s+=Hs(r))),e.s<0?"-"+s:s}function D3(e,t){if(e.length>t)return e.length=t,!0}function k6(e){var t,n,r;function a(s){var l=this;if(!(l instanceof a))return new a(s);if(l.constructor=a,s instanceof a){l.s=s.s,l.e=s.e,l.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(sl+s);if(s>0)l.s=1;else if(s<0)s=-s,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(s===~~s&&s<1e7){l.e=0,l.d=[s];return}return R3(l,s.toString())}else if(typeof s!="string")throw Error(sl+s);if(s.charCodeAt(0)===45?(s=s.slice(1),l.s=-1):l.s=1,_se.test(s))R3(l,s);else throw Error(sl+s)}if(a.prototype=Te,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=k6,a.config=a.set=Nse,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(sl+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(sl+n+": "+r);return this}var FO=k6(Sse);ra=new FO(1);const qt=FO;function Cse(e){return Tse(e)||Ase(e)||Ese(e)||Ose()}function Ose(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ese(e,t){if(e){if(typeof e=="string")return eN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return eN(e,t)}}function Ase(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Tse(e){if(Array.isArray(e))return eN(e)}function eN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,$3(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,s=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw s}}return n}}function Wse(e){if(Array.isArray(e))return e}function $6(e){var t=Yf(e,2),n=t[0],r=t[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function I6(e,t,n){if(e.lte(0))return new qt(0);var r=wy.getDigitCount(e.toNumber()),a=new qt(10).pow(r),s=e.div(a),l=r!==1?.05:.1,u=new qt(Math.ceil(s.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new qt(Math.ceil(d))}function Vse(e,t,n){var r=1,a=new qt(e);if(!a.isint()&&n){var s=Math.abs(e);s<1?(r=new qt(10).pow(wy.getDigitCount(e)-1),a=new qt(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new qt(Math.floor(e)))}else e===0?a=new qt(Math.floor((t-1)/2)):n||(a=new qt(Math.floor(e)));var l=Math.floor((t-1)/2),u=Rse(Pse(function(d){return a.add(new qt(d-l).mul(r)).toNumber()}),tN);return u(0,t)}function L6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new qt(0),tickMin:new qt(0),tickMax:new qt(0)};var s=I6(new qt(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new qt(0):(l=new qt(e).add(t).div(2),l=l.sub(new qt(l).mod(s)));var u=Math.ceil(l.sub(e).div(s).toNumber()),d=Math.ceil(new qt(t).sub(l).div(s).toNumber()),f=u+d+1;return f>n?L6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:s,tickMin:l.sub(new qt(u).mul(s)),tickMax:l.add(new qt(d).mul(s))})}function Gse(e){var t=Yf(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=$6([n,r]),d=Yf(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(rN(tN(0,a-1).map(function(){return 1/0}))):[].concat(rN(tN(0,a-1).map(function(){return-1/0})),[m]);return n>r?nN(p):p}if(f===m)return Vse(f,a,s);var g=L6(f,m,l,s),x=g.step,j=g.tickMin,w=g.tickMax,b=wy.rangeStep(j,w.add(new qt(.1).mul(x)),x);return n>r?nN(b):b}function Yse(e,t){var n=Yf(e,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=$6([r,a]),u=Yf(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=I6(new qt(f).sub(d).div(m-1),s,0),g=[].concat(rN(wy.rangeStep(new qt(d),new qt(f).sub(new qt(.99).mul(p)),p)),[f]);return r>a?nN(g):g}var Kse=R6(Gse),Xse=R6(Yse),Zse=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function pu(e){"@babel/helpers - typeof";return pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pu(e)}function Qv(){return Qv=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function aoe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ioe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function soe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var d=s.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(jr(p-m)!==jr(g-p)){var j=[];if(jr(g-p)===jr(d[1]-d[0])){x=g;var w=p+d[1]-d[0];j[0]=Math.min(w,(w+m)/2),j[1]=Math.max(w,(w+m)/2)}else{x=m;var b=g+d[1]-d[0];j[0]=Math.min(p,(b+p)/2),j[1]=Math.max(p,(b+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var E=Math.min(m,g),O=Math.max(m,g);if(t>(E+p)/2&&t<=(O+p)/2){l=a[f].index;break}}}else for(var A=0;A0&&A(r[A].coordinate+r[A-1].coordinate)/2&&t<=(r[A].coordinate+r[A+1].coordinate)/2||A===u-1&&t>(r[A].coordinate+r[A-1].coordinate)/2){l=r[A].index;break}return l},UO=function(t){var n,r=t,a=r.type.displayName,s=(n=t.type)!==null&&n!==void 0&&n.defaultProps?xn(xn({},t.type.defaultProps),t.props):t.props,l=s.stroke,u=s.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},Soe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var l={},u=Object.keys(s),d=0,f=u.length;d=0});if(N&&N.length){var E=N[0].type.defaultProps,O=E!==void 0?xn(xn({},E),N[0].props):N[0].props,A=O.barSize,C=O[b];l[C]||(l[C]=[]);var k=Qe(A)?n:A;l[C].push({item:N[0],stackList:N.slice(1),barSize:Qe(k)?void 0:Sr(k,r,0)})}}return l},_oe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,s=t.sizeList,l=s===void 0?[]:s,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=Sr(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(A,C){return A+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var w=(a-j)/2>>0,b={offset:w-f,size:0};m=l.reduce(function(A,C){var k={item:C.item,position:{offset:b.offset+b.size+f,size:g?x:C.barSize}},T=[].concat(B3(A),[k]);return b=T[T.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:b})}),T},p)}else{var N=Sr(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var E=(a-2*N-(d-1)*f)/d;E>1&&(E>>=0);var O=u===+u?Math.min(E,u):E;m=l.reduce(function(A,C,k){var T=[].concat(B3(A),[{item:C.item,position:{offset:N+(E+f)*k+(E-O)/2,size:O}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:T[T.length-1].position})}),T},p)}return m},Noe=function(t,n,r,a){var s=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=F6({children:s,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,w=f.layout;if((w==="vertical"||w==="horizontal"&&j==="middle")&&x!=="center"&&Ce(t[x]))return xn(xn({},t),{},Yc({},x,t[x]+(p||0)));if((w==="horizontal"||w==="vertical"&&x==="center")&&j!=="middle"&&Ce(t[j]))return xn(xn({},t),{},Yc({},j,t[j]+(g||0)))}return t},Coe=function(t,n,r){return Qe(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},U6=function(t,n,r,a,s){var l=n.props.children,u=ia(l,Wh).filter(function(f){return Coe(a,s,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=In(m,r);if(Qe(p))return f;var g=Array.isArray(p)?[xy(p),yy(p)]:[p,p],x=d.reduce(function(j,w){var b=In(m,w,0),N=g[0]-Math.abs(Array.isArray(b)?b[0]:b),E=g[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(N,j[0]),Math.max(E,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},Ooe=function(t,n,r,a,s){var l=n.map(function(u){return U6(t,u,r,s,a)}).filter(function(u){return!Qe(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},H6=function(t,n,r,a,s){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&U6(t,d,f,a)||Of(t,f,r,s)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?jr(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=s?s.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!Lh(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:s?s[p]:p,index:g,offset:f}})},yS=new WeakMap,qp=function(t,n){if(typeof n!="function")return t;yS.has(t)||yS.set(t,new WeakMap);var r=yS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},G6=function(t,n,r){var a=t.scale,s=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:Ff(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:Gv(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Cf(),realScaleType:"point"}:s==="category"?{scale:Ff(),realScaleType:"band"}:{scale:Gv(),realScaleType:"linear"};if(fl(a)){var d="scale".concat(ry(a));return{scale:(N3[d]||Cf)(),realScaleType:N3[d]?d:"point"}}return Ke(a)?{scale:a}:{scale:Cf(),realScaleType:"point"}},q3=1e-4,Y6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),s=Math.min(a[0],a[1])-q3,l=Math.max(a[0],a[1])+q3,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},Eoe=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(t[u][r][0]=s,t[u][r][1]=s+d,s=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},koe=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},Moe={sign:Toe,expand:xee,none:ou,silhouette:bee,wiggle:wee,positive:koe},Poe=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),s=Moe[r],l=yee().keys(a).value(function(u,d){return+In(u,d,0)}).order($_).offset(s);return l(t)},Roe=function(t,n,r,a,s,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?xn(xn({},g.type.defaultProps),g.props):g.props,w=j.stackId,b=j.hide;if(b)return p;var N=j[r],E=p[N]||{hasStack:!1,stackGroups:{}};if(Ln(w)){var O=E.stackGroups[w]||{numericAxisId:r,cateAxisId:a,items:[]};O.items.push(g),E.hasStack=!0,E.stackGroups[w]=O}else E.stackGroups[Wu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return xn(xn({},p),{},Yc({},N,E))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(w,b){var N=x.stackGroups[b];return xn(xn({},w),{},Yc({},b,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:Poe(t,N.items,s)}))},j)}return xn(xn({},p),{},Yc({},g,x))},m)},K6=function(t,n){var r=n.realScaleType,a=n.type,s=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(s&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=Kse(f,s,u);return t.domain([xy(m),yy(m)]),{niceTicks:m}}if(s&&a==="number"){var p=t.domain(),g=Xse(p,s,u);return{niceTicks:g}}return null};function F3(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,s=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Qe(a[t.dataKey])){var u=Av(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var d=In(a,Qe(l)?t.dataKey:l);return Qe(d)?null:t.scale(d)}var U3=function(t){var n=t.axis,r=t.ticks,a=t.offset,s=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=In(l,n.dataKey,n.domain[u]);return Qe(d)?null:n.scale(d)-s/2+a},Doe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},$oe=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?xn(xn({},t.type.defaultProps),t.props):t.props,s=a.stackId;if(Ln(s)){var l=n[s];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},Ioe=function(t){return t.reduce(function(n,r){return[xy(r.concat([n[0]]).filter(Ce)),yy(r.concat([n[1]]).filter(Ce))]},[1/0,-1/0])},X6=function(t,n,r){return Object.keys(t).reduce(function(a,s){var l=t[s],u=l.stackedData,d=u.reduce(function(f,m){var p=Ioe(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},H3=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,W3=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,oN=function(t,n,r){if(Ke(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ce(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(H3.test(t[0])){var s=+H3.exec(t[0])[1];a[0]=n[0]-s}else Ke(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ce(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(W3.test(t[1])){var l=+W3.exec(t[1])[1];a[1]=n[1]+l}else Ke(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},eg=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var s=gO(n,function(p){return p.coordinate}),l=1/0,u=1,d=s.length;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},Voe=function(t,n,r,a,s){var l=t.width,u=t.height,d=t.startAngle,f=t.endAngle,m=Sr(t.cx,l,l/2),p=Sr(t.cy,u,u/2),g=J6(l,u,r),x=Sr(t.innerRadius,g,0),j=Sr(t.outerRadius,g,g*.8),w=Object.keys(n);return w.reduce(function(b,N){var E=n[N],O=E.domain,A=E.reversed,C;if(Qe(E.range))a==="angleAxis"?C=[d,f]:a==="radiusAxis"&&(C=[x,j]),A&&(C=[C[1],C[0]]);else{C=E.range;var k=C,T=zoe(k,2);d=T[0],f=T[1]}var M=G6(E,s),R=M.realScaleType,B=M.scale;B.domain(O).range(C),Y6(B);var $=K6(B,Yi(Yi({},E),{},{realScaleType:R})),H=Yi(Yi(Yi({},E),$),{},{range:C,radius:j,realScaleType:R,scale:B,cx:m,cy:p,innerRadius:x,outerRadius:j,startAngle:d,endAngle:f});return Yi(Yi({},b),{},Q6({},N,H))},{})},Goe=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return Math.sqrt(Math.pow(r-s,2)+Math.pow(a-l,2))},Yoe=function(t,n){var r=t.x,a=t.y,s=n.cx,l=n.cy,u=Goe({x:r,y:a},{x:s,y:l});if(u<=0)return{radius:u};var d=(r-s)/u,f=Math.acos(d);return a>l&&(f=2*Math.PI-f),{radius:u,angle:Woe(f),angleInRadian:f}},Koe=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),l=Math.min(a,s);return{startAngle:n-l*360,endAngle:r-l*360}},Xoe=function(t,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),l=Math.floor(a/360),u=Math.min(s,l);return t+u*360},K3=function(t,n){var r=t.x,a=t.y,s=Yoe({x:r,y:a},n),l=s.radius,u=s.angle,d=n.innerRadius,f=n.outerRadius;if(lf)return!1;if(l===0)return!0;var m=Koe(n),p=m.startAngle,g=m.endAngle,x=u,j;if(p<=g){for(;x>g;)x-=360;for(;x=p&&x<=g}else{for(;x>p;)x-=360;for(;x=g&&x<=p}return j?Yi(Yi({},n),{},{radius:l,angle:Xoe(x,n)}):null},eq=function(t){return!y.isValidElement(t)&&!Ke(t)&&typeof t!="boolean"?t.className:""};function Qf(e){"@babel/helpers - typeof";return Qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qf(e)}var Zoe=["offset"];function Qoe(e){return nle(e)||tle(e)||ele(e)||Joe()}function Joe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ele(e,t){if(e){if(typeof e=="string")return lN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return lN(e,t)}}function tle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function nle(e){if(Array.isArray(e))return lN(e)}function lN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function X3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $n(e){for(var t=1;t=0?1:-1,O,A;a==="insideStart"?(O=x+E*l,A=w):a==="insideEnd"?(O=j-E*l,A=!w):a==="end"&&(O=j+E*l,A=w),A=N<=0?A:!A;var C=Zt(f,m,b,O),k=Zt(f,m,b,O+(A?1:-1)*359),T="M".concat(C.x,",").concat(C.y,` + A`).concat(b,",").concat(b,",0,1,").concat(A?0:1,`, + `).concat(k.x,",").concat(k.y),M=Qe(t.id)?Wu("recharts-radial-line-"):t.id;return W.createElement("text",Jf({},r,{dominantBaseline:"central",className:Je("recharts-radial-bar-label",u)}),W.createElement("defs",null,W.createElement("path",{id:M,d:T})),W.createElement("textPath",{xlinkHref:"#".concat(M)},n))},dle=function(t){var n=t.viewBox,r=t.offset,a=t.position,s=n,l=s.cx,u=s.cy,d=s.innerRadius,f=s.outerRadius,m=s.startAngle,p=s.endAngle,g=(m+p)/2;if(a==="outside"){var x=Zt(l,u,f+r,g),j=x.x,w=x.y;return{x:j,y:w,textAnchor:j>=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var b=(d+f)/2,N=Zt(l,u,b,g),E=N.x,O=N.y;return{x:E,y:O,textAnchor:"middle",verticalAnchor:"middle"}},fle=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,s=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",w=f>=0?1:-1,b=w*a,N=w>0?"end":"start",E=w>0?"start":"end";if(s==="top"){var O={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return $n($n({},O),r?{height:Math.max(d-r.y,0),width:f}:{})}if(s==="bottom"){var A={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return $n($n({},A),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(s==="left"){var C={x:u-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return $n($n({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(s==="right"){var k={x:u+f+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"};return $n($n({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var T=r?{width:f,height:m}:{};return s==="insideLeft"?$n({x:u+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"},T):s==="insideRight"?$n({x:u+f-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},T):s==="insideTop"?$n({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},T):s==="insideBottom"?$n({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},T):s==="insideTopLeft"?$n({x:u+b,y:d+g,textAnchor:E,verticalAnchor:j},T):s==="insideTopRight"?$n({x:u+f-b,y:d+g,textAnchor:N,verticalAnchor:j},T):s==="insideBottomLeft"?$n({x:u+b,y:d+m-g,textAnchor:E,verticalAnchor:x},T):s==="insideBottomRight"?$n({x:u+f-b,y:d+m-g,textAnchor:N,verticalAnchor:x},T):Hu(s)&&(Ce(s.x)||Ko(s.x))&&(Ce(s.y)||Ko(s.y))?$n({x:u+Sr(s.x,f),y:d+Sr(s.y,m),textAnchor:"end",verticalAnchor:"end"},T):$n({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},T)},hle=function(t){return"cx"in t&&Ce(t.cx)};function Vn(e){var t=e.offset,n=t===void 0?5:t,r=rle(e,Zoe),a=$n({offset:n},r),s=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!s||Qe(u)&&Qe(d)&&!y.isValidElement(f)&&!Ke(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(Ke(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=lle(a);var j=hle(s),w=qe(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return ule(a,x,w);var b=j?dle(a):fle(a);return W.createElement(ml,Jf({className:Je("recharts-label",p)},w,b,{breakAll:g}),x)}Vn.displayName="Label";var tq=function(t){var n=t.cx,r=t.cy,a=t.angle,s=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,w=t.width,b=t.height,N=t.clockWise,E=t.labelViewBox;if(E)return E;if(Ce(w)&&Ce(b)){if(Ce(p)&&Ce(g))return{x:p,y:g,width:w,height:b};if(Ce(x)&&Ce(j))return{x,y:j,width:w,height:b}}return Ce(p)&&Ce(g)?{x:p,y:g,width:0,height:0}:Ce(n)&&Ce(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},mle=function(t,n){return t?t===!0?W.createElement(Vn,{key:"label-implicit",viewBox:n}):Ln(t)?W.createElement(Vn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===Vn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Ke(t)?W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Hu(t)?W.createElement(Vn,Jf({viewBox:n},t,{key:"label-implicit"})):null:null},ple=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,s=tq(t),l=ia(a,Vn).map(function(d,f){return y.cloneElement(d,{viewBox:n||s,key:"label-".concat(f)})});if(!r)return l;var u=mle(t.label,n||s);return[u].concat(Qoe(l))};Vn.parseViewBox=tq;Vn.renderCallByParent=ple;var xS,Z3;function vle(){if(Z3)return xS;Z3=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return xS=e,xS}var gle=vle();const yle=At(gle);function eh(e){"@babel/helpers - typeof";return eh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eh(e)}var xle=["valueAccessor"],ble=["data","dataKey","clockWise","id","textBreakAll"];function wle(e){return Nle(e)||_le(e)||Sle(e)||jle()}function jle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sle(e,t){if(e){if(typeof e=="string")return cN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cN(e,t)}}function _le(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Nle(e){if(Array.isArray(e))return cN(e)}function cN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Tle=function(t){return Array.isArray(t.value)?yle(t.value):t.value};function as(e){var t=e.valueAccessor,n=t===void 0?Tle:t,r=e$(e,xle),a=r.data,s=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=e$(r,ble);return!a||!a.length?null:W.createElement(xt,{className:"recharts-label-list"},a.map(function(m,p){var g=Qe(s)?n(m,p):In(m&&m.payload,s),x=Qe(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(Vn,ng({},qe(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:Vn.parseViewBox(Qe(l)?m:J3(J3({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}as.displayName="LabelList";function kle(e,t){return e?e===!0?W.createElement(as,{key:"labelList-implicit",data:t}):W.isValidElement(e)||Ke(e)?W.createElement(as,{key:"labelList-implicit",data:t,content:e}):Hu(e)?W.createElement(as,ng({data:t},e,{key:"labelList-implicit"})):null:null}function Mle(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=ia(r,as).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var s=kle(e.label,t);return[s].concat(wle(a))}as.renderCallByParent=Mle;function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function uN(){return uN=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(l>f),`, + `).concat(p.x,",").concat(p.y,` + `);if(a>0){var x=Zt(n,r,a,l),j=Zt(n,r,a,f);g+="L ".concat(j.x,",").concat(j.y,` + A `).concat(a,",").concat(a,`,0, + `).concat(+(Math.abs(d)>180),",").concat(+(l<=f),`, + `).concat(x.x,",").concat(x.y," Z")}else g+="L ".concat(n,",").concat(r," Z");return g},Ile=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,s=t.outerRadius,l=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,m=t.endAngle,p=jr(m-f),g=Fp({cx:n,cy:r,radius:s,angle:f,sign:p,cornerRadius:l,cornerIsExternal:d}),x=g.circleTangency,j=g.lineTangency,w=g.theta,b=Fp({cx:n,cy:r,radius:s,angle:m,sign:-p,cornerRadius:l,cornerIsExternal:d}),N=b.circleTangency,E=b.lineTangency,O=b.theta,A=d?Math.abs(f-m):Math.abs(f-m)-w-O;if(A<0)return u?"M ".concat(j.x,",").concat(j.y,` + a`).concat(l,",").concat(l,",0,0,1,").concat(l*2,`,0 + a`).concat(l,",").concat(l,",0,0,1,").concat(-l*2,`,0 + `):nq({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:f,endAngle:m});var C="M ".concat(j.x,",").concat(j.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(x.x,",").concat(x.y,` + A`).concat(s,",").concat(s,",0,").concat(+(A>180),",").concat(+(p<0),",").concat(N.x,",").concat(N.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(E.x,",").concat(E.y,` + `);if(a>0){var k=Fp({cx:n,cy:r,radius:a,angle:f,sign:p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),T=k.circleTangency,M=k.lineTangency,R=k.theta,B=Fp({cx:n,cy:r,radius:a,angle:m,sign:-p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),$=B.circleTangency,H=B.lineTangency,V=B.theta,q=d?Math.abs(f-m):Math.abs(f-m)-R-V;if(q<0&&l===0)return"".concat(C,"L").concat(n,",").concat(r,"Z");C+="L".concat(H.x,",").concat(H.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat($.x,",").concat($.y,` + A`).concat(a,",").concat(a,",0,").concat(+(q>180),",").concat(+(p>0),",").concat(T.x,",").concat(T.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(M.x,",").concat(M.y,"Z")}else C+="L".concat(n,",").concat(r,"Z");return C},Lle={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},rq=function(t){var n=n$(n$({},Lle),t),r=n.cx,a=n.cy,s=n.innerRadius,l=n.outerRadius,u=n.cornerRadius,d=n.forceCornerRadius,f=n.cornerIsExternal,m=n.startAngle,p=n.endAngle,g=n.className;if(l0&&Math.abs(m-p)<360?b=Ile({cx:r,cy:a,innerRadius:s,outerRadius:l,cornerRadius:Math.min(w,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):b=nq({cx:r,cy:a,innerRadius:s,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",uN({},qe(n,!0),{className:x,d:b,role:"img"}))};function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function dN(){return dN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function rce(e,t){return El(e.getTime(),t.getTime())}function ace(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function ice(e,t){return e===t}function h$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.entries(),l,u,d=0;(l=s.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var sce=El;function oce(e,t,n){var r=f$(e),a=r.length;if(f$(t).length!==a)return!1;for(;a-- >0;)if(!aq(e,t,n,r[a]))return!1;return!0}function cf(e,t,n){var r=u$(e),a=r.length;if(u$(t).length!==a)return!1;for(var s,l,u;a-- >0;)if(s=r[a],!aq(e,t,n,s)||(l=d$(e,s),u=d$(t,s),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function lce(e,t){return El(e.valueOf(),t.valueOf())}function cce(e,t){return e.source===t.source&&e.flags===t.flags}function m$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.values(),l,u;(l=s.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function uce(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function dce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function aq(e,t,n,r){return(r===tce||r===ece||r===Jle)&&(e.$$typeof||t.$$typeof)?!0:Qle(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var fce="[object Arguments]",hce="[object Boolean]",mce="[object Date]",pce="[object Error]",vce="[object Map]",gce="[object Number]",yce="[object Object]",xce="[object RegExp]",bce="[object Set]",wce="[object String]",jce="[object URL]",Sce=Array.isArray,p$=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,v$=Object.assign,_ce=Object.prototype.toString.call.bind(Object.prototype.toString);function Nce(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,s=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(w,b,N){if(w===b)return!0;if(w==null||b==null)return!1;var E=typeof w;if(E!==typeof b)return!1;if(E!=="object")return E==="number"?l(w,b,N):E==="function"?a(w,b,N):!1;var O=w.constructor;if(O!==b.constructor)return!1;if(O===Object)return u(w,b,N);if(Sce(w))return t(w,b,N);if(p$!=null&&p$(w))return p(w,b,N);if(O===Date)return n(w,b,N);if(O===RegExp)return f(w,b,N);if(O===Map)return s(w,b,N);if(O===Set)return m(w,b,N);var A=_ce(w);if(A===mce)return n(w,b,N);if(A===xce)return f(w,b,N);if(A===vce)return s(w,b,N);if(A===bce)return m(w,b,N);if(A===yce)return typeof w.then!="function"&&typeof b.then!="function"&&u(w,b,N);if(A===jce)return g(w,b,N);if(A===pce)return r(w,b,N);if(A===fce)return u(w,b,N);if(A===hce||A===gce||A===wce)return d(w,b,N);if(x){var C=x[A];if(!C){var k=Zle(w);k&&(C=x[k])}if(C)return C(w,b,N)}return!1}}function Cce(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?cf:nce,areDatesEqual:rce,areErrorsEqual:ace,areFunctionsEqual:ice,areMapsEqual:r?c$(h$,cf):h$,areNumbersEqual:sce,areObjectsEqual:r?cf:oce,arePrimitiveWrappersEqual:lce,areRegExpsEqual:cce,areSetsEqual:r?c$(m$,cf):m$,areTypedArraysEqual:r?cf:uce,areUrlsEqual:dce,unknownTagComparators:void 0};if(n&&(a=v$({},a,n(a))),t){var s=Hp(a.areArraysEqual),l=Hp(a.areMapsEqual),u=Hp(a.areObjectsEqual),d=Hp(a.areSetsEqual);a=v$({},a,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function Oce(e){return function(t,n,r,a,s,l,u){return e(t,n,u)}}function Ece(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,s=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:s})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:s})};var l={cache:void 0,equals:a,meta:void 0,strict:s};return function(d,f){return n(d,f,l)}}var Ace=fo();fo({strict:!0});fo({circular:!0});fo({circular:!0,strict:!0});fo({createInternalComparator:function(){return El}});fo({strict:!0,createInternalComparator:function(){return El}});fo({circular:!0,createInternalComparator:function(){return El}});fo({circular:!0,createInternalComparator:function(){return El},strict:!0});function fo(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,s=e.strict,l=s===void 0?!1:s,u=Cce(e),d=Nce(u),f=r?r(d):Oce(d);return Ece({circular:n,comparator:d,createState:a,equals:f,strict:l})}function Tce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function g$(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>t?(e(s),n=-1):Tce(a)};requestAnimationFrame(r)}function fN(e){"@babel/helpers - typeof";return fN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fN(e)}function kce(e){return Dce(e)||Rce(e)||Pce(e)||Mce()}function Mce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Pce(e,t){if(e){if(typeof e=="string")return y$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y$(e,t)}}function y$(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},w=function(N){for(var E=N>1?1:N,O=E,A=0;A<8;++A){var C=p(O)-E,k=x(O);if(Math.abs(C-E)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,s=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*s,w=g+(x-j)*u/1e3,b=g*u/1e3+m;return Math.abs(b-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function fue(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,s;for(s=0;s=0)&&(n[a]=e[a]);return n}function SS(e){return vue(e)||pue(e)||mue(e)||hue()}function hue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mue(e,t){if(e){if(typeof e=="string")return gN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return gN(e,t)}}function pue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function vue(e){if(Array.isArray(e))return gN(e)}function gN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function sg(e){return sg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},sg(e)}var bi=(function(e){wue(n,e);var t=jue(n);function n(r,a){var s;gue(this,n),s=t.call(this,r,a);var l=s.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(s.handleStyleChange=s.handleStyleChange.bind(bN(s)),s.changeStyle=s.changeStyle.bind(bN(s)),!u||x<=0)return s.state={style:{}},typeof g=="function"&&(s.state={style:m}),xN(s);if(p&&p.length)s.state={style:p[0].style};else if(f){if(typeof g=="function")return s.state={style:f},xN(s);s.state={style:d?vf({},d,f):f}}else s.state={style:{}};return s}return xue(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,l=a.canBegin;this.mounted=!0,!(!s||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,l=s.isActive,u=s.canBegin,d=s.attributeName,f=s.shouldReAnimate,m=s.to,p=s.from,g=this.state.style;if(u){if(!l){var x={style:d?vf({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(Ace(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=j||f?p:a.to;if(this.state&&g){var b={style:d?vf({},d,w):w};(d&&g[d]!==w||!d&&g!==w)&&this.setState(b)}this.runAnimation(Da(Da({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=cue(l,u,Qce(f),d,this.changeStyle),j=function(){s.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var s=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(w,b,N){if(N===0)return w;var E=b.duration,O=b.easing,A=O===void 0?"ease":O,C=b.style,k=b.properties,T=b.onAnimationEnd,M=N>0?l[N-1]:b,R=k||Object.keys(C);if(typeof A=="function"||A==="spring")return[].concat(SS(w),[s.runJSAnimation.bind(s,{from:M.style,to:C,duration:E,easing:A}),E]);var B=w$(R,E,A),$=Da(Da(Da({},M.style),C),{},{transition:B});return[].concat(SS(w),[$,E,T]).filter(zce)};return this.manager.start([d].concat(SS(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=$ce());var s=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var w=u?vf({},u,d):d,b=w$(Object.keys(w),l,f);j.start([m,s,Da(Da({},w),{},{transition:b}),l,p])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=due(a,uue),f=y.Children.count(s),m=this.state.style;if(typeof s=="function")return s(m);if(!u||f===0||l<=0)return s;var p=function(x){var j=x.props,w=j.style,b=w===void 0?{}:w,N=j.className,E=y.cloneElement(x,Da(Da({},d),{},{style:Da(Da({},b),m),className:N}));return E};return f===1?p(y.Children.only(s)):W.createElement("div",null,y.Children.map(s,function(g){return p(g)}))}}]),n})(y.PureComponent);bi.displayName="Animate";bi.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};bi.propTypes={from:Nt.oneOfType([Nt.object,Nt.string]),to:Nt.oneOfType([Nt.object,Nt.string]),attributeName:Nt.string,duration:Nt.number,begin:Nt.number,easing:Nt.oneOfType([Nt.string,Nt.func]),steps:Nt.arrayOf(Nt.shape({duration:Nt.number.isRequired,style:Nt.object.isRequired,easing:Nt.oneOfType([Nt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Nt.func]),properties:Nt.arrayOf("string"),onAnimationEnd:Nt.func})),children:Nt.oneOfType([Nt.node,Nt.func]),isActive:Nt.bool,canBegin:Nt.bool,onAnimationEnd:Nt.func,shouldReAnimate:Nt.bool,onAnimationStart:Nt.func,onAnimationReStart:Nt.func};function ih(e){"@babel/helpers - typeof";return ih=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ih(e)}function og(){return og=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,d=r>=0?1:-1,f=a>=0&&r>=0||a<0&&r<0?1:0,m;if(l>0&&s instanceof Array){for(var p=[0,0,0,0],g=0,x=4;gl?l:s[g];m="M".concat(t,",").concat(n+u*p[0]),p[0]>0&&(m+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(f,",").concat(t+d*p[0],",").concat(n)),m+="L ".concat(t+r-d*p[1],",").concat(n),p[1]>0&&(m+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(f,`, + `).concat(t+r,",").concat(n+u*p[1])),m+="L ".concat(t+r,",").concat(n+a-u*p[2]),p[2]>0&&(m+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(f,`, + `).concat(t+r-d*p[2],",").concat(n+a)),m+="L ".concat(t+d*p[3],",").concat(n+a),p[3]>0&&(m+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(f,`, + `).concat(t,",").concat(n+a-u*p[3])),m+="Z"}else if(l>0&&s===+s&&s>0){var j=Math.min(l,s);m="M ".concat(t,",").concat(n+u*j,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+d*j,",").concat(n,` + L `).concat(t+r-d*j,",").concat(n,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r,",").concat(n+u*j,` + L `).concat(t+r,",").concat(n+a-u*j,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r-d*j,",").concat(n+a,` + L `).concat(t+d*j,",").concat(n+a,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t,",").concat(n+a-u*j," Z")}else m="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return m},Mue=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,s=n.x,l=n.y,u=n.width,d=n.height;if(Math.abs(u)>0&&Math.abs(d)>0){var f=Math.min(s,s+u),m=Math.max(s,s+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},Pue={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},HO=function(t){var n=A$(A$({},Pue),t),r=y.useRef(),a=y.useState(-1),s=_ue(a,2),l=s[0],u=s[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var A=r.current.getTotalLength();A&&u(A)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,w=n.animationDuration,b=n.animationBegin,N=n.isAnimationActive,E=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var O=Je("recharts-rectangle",x);return E?W.createElement(bi,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:w,animationEasing:j,isActive:E},function(A){var C=A.width,k=A.height,T=A.x,M=A.y;return W.createElement(bi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,isActive:N,easing:j},W.createElement("path",og({},qe(n,!0),{className:O,d:T$(T,M,C,k,g),ref:r})))}):W.createElement("path",og({},qe(n,!0),{className:O,d:T$(d,f,m,p,g)}))},Rue=["points","className","baseLinePoints","connectNulls"];function Fc(){return Fc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $ue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function k$(e){return zue(e)||Bue(e)||Lue(e)||Iue()}function Iue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Lue(e,t){if(e){if(typeof e=="string")return wN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return wN(e,t)}}function Bue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function zue(e){if(Array.isArray(e))return wN(e)}function wN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){M$(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),M$(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Af=function(t,n){var r=que(t);n&&(r=[r.reduce(function(s,l){return[].concat(k$(s),k$(l))},[])]);var a=r.map(function(s){return s.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},Fue=function(t,n,r){var a=Af(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Af(n.reverse(),r).slice(1))},Uue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,s=t.connectNulls,l=Due(t,Rue);if(!n||!n.length)return null;var u=Je("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=Fue(n,a,s);return W.createElement("g",{className:u},W.createElement("path",Fc({},qe(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Fc({},qe(l,!0),{fill:"none",d:Af(n,s)})):null,d?W.createElement("path",Fc({},qe(l,!0),{fill:"none",d:Af(a,s)})):null)}var m=Af(n,s);return W.createElement("path",Fc({},qe(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function jN(){return jN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Xue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Zue=function(t,n,r,a,s,l){return"M".concat(t,",").concat(s,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},Que=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,w=Kue(t,Hue),b=Wue({x:r,y:s,top:u,left:f,width:p,height:x},w);return!Ce(r)||!Ce(s)||!Ce(p)||!Ce(x)||!Ce(u)||!Ce(f)?null:W.createElement("path",SN({},qe(b,!0),{className:Je("recharts-cross",j),d:Zue(r,s,p,x,u,f)}))},_S,R$;function Jue(){if(R$)return _S;R$=1;var e=gy(),t=N6(),n=_i();function r(a,s){return a&&a.length?e(a,n(s,2),t):void 0}return _S=r,_S}var ede=Jue();const tde=At(ede);var NS,D$;function nde(){if(D$)return NS;D$=1;var e=gy(),t=_i(),n=C6();function r(a,s){return a&&a.length?e(a,t(s,2),n):void 0}return NS=r,NS}var rde=nde();const ade=At(rde);var ide=["cx","cy","angle","ticks","axisLine"],sde=["ticks","tick","angle","tickFormatter","stroke"];function gu(e){"@babel/helpers - typeof";return gu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gu(e)}function Tf(){return Tf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ode(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function lde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function L$(e,t){for(var n=0;nq$?l=a==="outer"?"start":"end":s<-q$?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,s=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=Uo(Uo({},qe(this.props,!1)),{},{fill:"none"},qe(u,!1));if(d==="circle")return W.createElement(jy,Go({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:s,r:l}));var m=this.props.ticks,p=m.map(function(g){return Zt(a,s,l,g.coordinate)});return W.createElement(Uue,Go({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,s=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=qe(this.props,!1),p=qe(l,!1),g=Uo(Uo({},m),{},{fill:"none"},qe(u,!1)),x=s.map(function(j,w){var b=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),E=Uo(Uo(Uo({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:w,payload:j,x:b.x2,y:b.y2});return W.createElement(xt,Go({className:Je("recharts-polar-angle-axis-tick",eq(l)),key:"tick-".concat(j.coordinate)},hl(r.props,j,w)),u&&W.createElement("line",Go({className:"recharts-polar-angle-axis-tick-line"},g,b)),l&&t.renderTickItem(l,E,d?d(j.value,w):j.value))});return W.createElement(xt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,s=r.radius,l=r.axisLine;return s<=0||!a||!a.length?null:W.createElement(xt,{className:Je("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,s){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):Ke(r)?l=r(a):l=W.createElement(ml,Go({},a,{className:"recharts-polar-angle-axis-tick-value"}),s),l}}])})(y.PureComponent);Ny(Cy,"displayName","PolarAngleAxis");Ny(Cy,"axisType","angleAxis");Ny(Cy,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var CS,F$;function Sde(){if(F$)return CS;F$=1;var e=_z(),t=e(Object.getPrototypeOf,Object);return CS=t,CS}var OS,U$;function _de(){if(U$)return OS;U$=1;var e=fs(),t=Sde(),n=hs(),r="[object Object]",a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return OS=f,OS}var Nde=_de();const Cde=At(Nde);var ES,H$;function Ode(){if(H$)return ES;H$=1;var e=fs(),t=hs(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return ES=r,ES}var Ede=Ode();const Ade=At(Ede);function oh(e){"@babel/helpers - typeof";return oh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oh(e)}function ug(){return ug=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:w,animationEasing:j,isActive:N},function(O){var A=O.upperWidth,C=O.lowerWidth,k=O.height,T=O.x,M=O.y;return W.createElement(bi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,easing:j},W.createElement("path",ug({},qe(n,!0),{className:E,d:Y$(T,M,A,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",ug({},qe(n,!0),{className:E,d:Y$(d,f,m,p,g)})))},zde=["option","shapeType","propTransformer","activeClassName","isActive"];function lh(e){"@babel/helpers - typeof";return lh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lh(e)}function qde(e,t){if(e==null)return{};var n=Fde(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function K$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function dg(e){for(var t=1;t0?aa(O,"paddingAngle",0):0;if(C){var T=ta(C.endAngle-C.startAngle,O.endAngle-O.startAngle),M=Yt(Yt({},O),{},{startAngle:E+k,endAngle:E+T(w)+k});b.push(M),E=M.endAngle}else{var R=O.endAngle,B=O.startAngle,$=ta(0,R-B),H=$(w),V=Yt(Yt({},O),{},{startAngle:E+k,endAngle:E+H+k});b.push(V),E=V.endAngle}}),W.createElement(xt,null,r.renderSectorsStatically(b))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(s){if(!s.altKey)switch(s.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,s=r.isAnimationActive,l=this.state.prevSectors;return s&&a&&a.length&&(!l||!Hh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,s=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(s||!l||!l.length||!Ce(f)||!Ce(m)||!Ce(p)||!Ce(g))return null;var w=Je("recharts-pie",u);return W.createElement(xt,{tabIndex:this.props.rootTabIndex,className:w,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),Vn.renderCallByParent(this.props,null,!1),(!x||j)&&as.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r=360?E:E-1)*d,A=b-E*x-O,C=a.reduce(function(M,R){var B=In(R,N,0);return M+(Ce(B)?B:0)},0),k;if(C>0){var T;k=a.map(function(M,R){var B=In(M,N,0),$=In(M,m,R),H=(Ce(B)?B:0)/C,V;R?V=T.endAngle+jr(w)*d*(B!==0?1:0):V=l;var q=V+jr(w)*((B!==0?x:0)+H*A),G=(V+q)/2,L=(j.innerRadius+j.outerRadius)/2,D=[{name:$,value:B,payload:M,dataKey:N,type:g}],U=Zt(j.cx,j.cy,L,G);return T=Yt(Yt(Yt({percent:H,cornerRadius:s,name:$,tooltipPayload:D,midAngle:G,middleRadius:L,tooltipPosition:U},M),j),{},{value:In(M,N),startAngle:V,endAngle:q,payload:M,paddingAngle:jr(w)*d}),T})}return Yt(Yt({},j),{},{sectors:k,data:a})});var AS,J$;function cfe(){if(J$)return AS;J$=1;var e=Math.ceil,t=Math.max;function n(r,a,s,l){for(var u=-1,d=t(e((a-r)/(s||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=s;return f}return AS=n,AS}var TS,eI;function yq(){if(eI)return TS;eI=1;var e=zz(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var s=a<0?-1:1;return s*n}return a===a?a:0}return TS=r,TS}var kS,tI;function ufe(){if(tI)return kS;tI=1;var e=cfe(),t=cy(),n=yq();function r(a){return function(s,l,u){return u&&typeof u!="number"&&t(s,l,u)&&(l=u=void 0),s=n(s),l===void 0?(l=s,s=0):l=n(l),u=u===void 0?s0&&r.handleDrag(a.changedTouches[0])}),Zr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:s,startIndex:u})}),r.detachDragEndListener()}),Zr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Zr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Zr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Zr(r,"handleSlideDragStart",function(a){var s=oI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return jfe(t,e),yfe(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,s),g=Math.max(a,s),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,l=a.tickFormatter,u=a.dataKey,d=In(s[r],u,r);return Ke(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,w=r.pageX-s;w>0?w=Math.min(w,f+m-p-u,f+m-p-l):w<0&&(w=Math.max(w,f-l,f-u));var b=this.getIndex({startX:l+w,endX:u+w});(b.startIndex!==g||b.endIndex!==x)&&j&&j(b),this.setState({startX:l+w,endX:u+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=oI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,w=m.gap,b=m.data,N={startX:this.state.startX,endX:this.state.endX},E=r.pageX-s;E>0?E=Math.min(E,p+g-x-f):E<0&&(E=Math.max(E,p-f)),N[l]=f+E;var O=this.getIndex(N),A=O.startIndex,C=O.endIndex,k=function(){var M=b.length-1;return l==="startX"&&(u>d?A%w===0:C%w===0)||ud?C%w===0:A%w===0)||u>d&&C===M};this.setState(Zr(Zr({},l,f+E),"brushMoveStartX",r.pageX),function(){j&&k()&&j(O)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Zr({},a,x),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:s,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:s,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,w=d.startIndex,b=d.endIndex,N=Math.max(r,this.props.x),E=PS(PS({},qe(this.props,!1)),{},{x:N,y:f,width:m,height:p}),O=x||"Min value: ".concat((s=j[w])===null||s===void 0?void 0:s.name,", Max value: ").concat((l=j[b])===null||l===void 0?void 0:l.name);return W.createElement(xt,{tabIndex:0,role:"slider","aria-label":O,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,E))}},{key:"renderSlide",value:function(r,a){var s=this.props,l=s.y,u=s.height,d=s.stroke,f=s.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(xt,{className:"recharts-brush-texts"},W.createElement(ml,mg({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(ml,mg({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,w=g.isTextActive,b=g.isSlideMoving,N=g.isTravellerMoving,E=g.isTravellerFocused;if(!a||!a.length||!Ce(u)||!Ce(d)||!Ce(f)||!Ce(m)||f<=0||m<=0)return null;var O=Je("recharts-brush",s),A=W.Children.count(l)===1,C=vfe("userSelect","none");return W.createElement(xt,{className:O,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(w||b||N||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(s+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:s,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return W.isValidElement(r)?s=W.cloneElement(r,a):Ke(r)?s=r(a):s=t.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(s!==a.prevData||f!==a.prevUpdateId)return PS({prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},s&&s.length?_fe({data:s,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,l=0,u=s-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Zr(wu,"displayName","Brush");Zr(wu,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var RS,lI;function Nfe(){if(lI)return RS;lI=1;var e=vO();function t(n,r){var a;return e(n,function(s,l,u){return a=r(s,l,u),!a}),!!a}return RS=t,RS}var DS,cI;function Cfe(){if(cI)return DS;cI=1;var e=gz(),t=_i(),n=Nfe(),r=qr(),a=cy();function s(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return DS=s,DS}var Ofe=Cfe();const Efe=At(Ofe);var vi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},$S,uI;function Afe(){if(uI)return $S;uI=1;var e=Dz();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return $S=t,$S}var IS,dI;function Tfe(){if(dI)return IS;dI=1;var e=Afe(),t=Pz(),n=_i();function r(a,s){var l={};return s=n(s,3),t(a,function(u,d,f){e(l,d,s(u,d,f))}),l}return IS=r,IS}var kfe=Tfe();const Mfe=At(kfe);var LS,fI;function Pfe(){if(fI)return LS;fI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ffe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ufe(e,t){var n=e.x,r=e.y,a=qfe(e,Ife),s="".concat(n),l=parseInt(s,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return uf(uf(uf(uf(uf({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function vI(e){return W.createElement(pq,EN({shapeType:"rectangle",propTransformer:Ufe,activeClassName:"recharts-active-bar"},e))}var Hfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var s=Ce(r)||hJ(r);return s?t(r,a):(s||pr(!1),n)}},Wfe=["value","background"],Sq;function ju(e){"@babel/helpers - typeof";return ju=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ju(e)}function Vfe(e,t){if(e==null)return{};var n=Gfe(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Gfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vg(){return vg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(q)0&&(V=Math.min((te||0)-(q[ae-1]||0),V))}),Number.isFinite(V)){var G=V/H,L=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(T=G*L/2),w.padding==="no-gap"){var D=Sr(t.barCategoryGap,G*L),U=G*L/2;T=U-D-(U-D)/L*D}}}a==="xAxis"?M=[r.left+(O.left||0)+(T||0),r.left+r.width-(O.right||0)-(T||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(O.bottom||0),r.top+(O.top||0)]:[r.top+(O.top||0)+(T||0),r.top+r.height-(O.bottom||0)-(T||0)]:M=w.range,C&&(M=[M[1],M[0]]);var K=G6(w,s,g),J=K.scale,I=K.realScaleType;J.domain(N).range(M),Y6(J);var z=K6(J,Ba(Ba({},w),{},{realScaleType:I}));a==="xAxis"?($=b==="top"&&!A||b==="bottom"&&A,R=r.left,B=p[k]-$*w.height):a==="yAxis"&&($=b==="left"&&!A||b==="right"&&A,R=p[k]-$*w.width,B=r.top);var Y=Ba(Ba(Ba({},w),z),{},{realScaleType:I,x:R,y:B,scale:J,width:a==="xAxis"?r.width:w.width,height:a==="yAxis"?r.height:w.height});return Y.bandSize=eg(Y,z),!w.hide&&a==="xAxis"?p[k]+=($?-1:1)*Y.height:w.hide||(p[k]+=($?-1:1)*Y.width),Ba(Ba({},x),{},Ay({},j,Y))},{})},Eq=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return{x:Math.min(r,s),y:Math.min(a,l),width:Math.abs(s-r),height:Math.abs(l-a)}},ahe=function(t){var n=t.x1,r=t.y1,a=t.x2,s=t.y2;return Eq({x:n,y:r},{x:a,y:s})},Aq=(function(){function e(t){the(this,e),this.scale=t}return nhe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();Ay(Aq,"EPS",1e-4);var WO=function(t){var n=Object.keys(t).reduce(function(r,a){return Ba(Ba({},r),{},Ay({},a,Aq.create(t[a])))},{});return Ba(Ba({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=s.bandAware,u=s.position;return Mfe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return jq(a,function(s,l){return n[l].isInRange(s)})}})};function ihe(e){return(e%180+180)%180}var she=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=ihe(a),l=s*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?s[m]:m]:void 0}}return qS=r,qS}var FS,jI;function lhe(){if(jI)return FS;jI=1;var e=yq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return FS=t,FS}var US,SI;function che(){if(SI)return US;SI=1;var e=Ez(),t=_i(),n=lhe(),r=Math.max;function a(s,l,u){var d=s==null?0:s.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(s,t(l,3),f)}return US=a,US}var HS,_I;function uhe(){if(_I)return HS;_I=1;var e=ohe(),t=che(),n=e(t);return HS=n,HS}var dhe=uhe();const fhe=At(dhe);var hhe=HB();const mhe=At(hhe);var phe=mhe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),VO=y.createContext(void 0),GO=y.createContext(void 0),Tq=y.createContext(void 0),kq=y.createContext({}),Mq=y.createContext(void 0),Pq=y.createContext(0),Rq=y.createContext(0),NI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=phe(s);return W.createElement(VO.Provider,{value:r},W.createElement(GO.Provider,{value:a},W.createElement(kq.Provider,{value:s},W.createElement(Tq.Provider,{value:m},W.createElement(Mq.Provider,{value:l},W.createElement(Pq.Provider,{value:f},W.createElement(Rq.Provider,{value:d},u)))))))},vhe=function(){return y.useContext(Mq)},Dq=function(t){var n=y.useContext(VO);n==null&&pr(!1);var r=n[t];return r==null&&pr(!1),r},ghe=function(){var t=y.useContext(VO);return Ws(t)},yhe=function(){var t=y.useContext(GO),n=fhe(t,function(r){return jq(r.domain,Number.isFinite)});return n||Ws(t)},$q=function(t){var n=y.useContext(GO);n==null&&pr(!1);var r=n[t];return r==null&&pr(!1),r},xhe=function(){var t=y.useContext(Tq);return t},bhe=function(){return y.useContext(kq)},YO=function(){return y.useContext(Rq)},KO=function(){return y.useContext(Pq)};function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function whe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jhe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var s=n();return e*(t-e*s/2-r)>=0&&e*(t+e*s/2-a)<=0}function rme(e,t){return Uq(e,t+1)}function ame(e,t,n,r,a){for(var s=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Uq(r,f)};var w=d,b,N=function(){return b===void 0&&(b=n(j,w)),b},E=j.coordinate,O=d===0||wg(e,E,N,m,u);O||(d=0,m=l,f+=1),O&&(m=E+e*(N()/2+a),d+=f)},g;f<=s.length;)if(g=p(),g)return g.v;return[]}function hh(e){"@babel/helpers - typeof";return hh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hh(e)}function PI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t0?x.coordinate-b*e:x.coordinate})}else s[g]=x=ur(ur({},x),{},{tickCoord:x.coordinate});var N=wg(e,x.tickCoord,w,u,d);N&&(d=x.tickCoord-e*(w()/2+a),s[g]=ur(ur({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return s}function cme(e,t,n,r,a,s){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(s){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=ur(ur({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=wg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=ur(ur({},m),{},{isShow:!0}))}for(var j=s?u-1:u,w=function(E){var O=l[E],A,C=function(){return A===void 0&&(A=n(O,E)),A};if(E===0){var k=e*(O.coordinate-e*C()/2-d);l[E]=O=ur(ur({},O),{},{tickCoord:k<0?O.coordinate-k*e:O.coordinate})}else l[E]=O=ur(ur({},O),{},{tickCoord:O.coordinate});var T=wg(e,O.tickCoord,C,d,f);T&&(d=O.tickCoord+e*(C()/2+a),l[E]=ur(ur({},O),{},{isShow:!0}))},b=0;b=2?jr(a[1].coordinate-a[0].coordinate):1,N=nme(s,b,x);return d==="equidistantPreserveStart"?ame(b,N,w,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=cme(b,N,w,a,l,d==="preserveStartEnd"):g=lme(b,N,w,a,l),g.filter(function(E){return E.isShow}))}var ume=["viewBox"],dme=["viewBox"],fme=["ticks"];function Cu(e){"@babel/helpers - typeof";return Cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cu(e)}function Hc(){return Hc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function hme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function mme(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function DI(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(xt,{className:Je("recharts-cartesian-axis",f),ref:function(b){r.layerReference=b}},s&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),Vn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var l,u=Je(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,Dn(Dn({},a),{},{className:u})):Ke(r)?l=r(Dn(Dn({},a),{},{className:u})):l=W.createElement(ml,Hc({},a,{className:"recharts-cartesian-axis-tick-value"}),s),l}}])})(y.Component);JO(Xu,"displayName","CartesianAxis");JO(Xu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var wme=["x1","y1","x2","y2","key"],jme=["offset"];function vl(e){"@babel/helpers - typeof";return vl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vl(e)}function $I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function fr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Cme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Ome=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,s=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:s,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function Vq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(Ke(e))n=e(t);else{var r=t.x1,a=t.y1,s=t.x2,l=t.y2,u=t.key,d=II(t,wme),f=qe(d,!1);f.offset;var m=II(f,jme);n=W.createElement("line",Qo({},m,{x1:r,y1:a,x2:s,y2:l,fill:"none",key:u}))}return n}function Eme(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,s=e.horizontalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return Vq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function Ame(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,s=e.verticalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return Vq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Tme(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,s=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?a+l-g:m[x+1]-g;if(w<=0)return null;var b=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:w,width:s,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function kme(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,s=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+s-s)}).sort(function(g,x){return g-x});s!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?s+u-g:m[x+1]-g;if(w<=0)return null;var b=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:w,height:d,stroke:"none",fill:r[b],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Mme=function(t,n){var r=t.xAxis,a=t.width,s=t.height,l=t.offset;return V6(QO(fr(fr(fr({},Xu.defaultProps),r),{},{ticks:Qi(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.left,l.left+l.width,n)},Pme=function(t,n){var r=t.yAxis,a=t.width,s=t.height,l=t.offset;return V6(QO(fr(fr(fr({},Xu.defaultProps),r),{},{ticks:Qi(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.top,l.top+l.height,n)},Oc={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function gf(e){var t,n,r,a,s,l,u=YO(),d=KO(),f=bhe(),m=fr(fr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Oc.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Oc.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Oc.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:Oc.horizontalFill,vertical:(s=e.vertical)!==null&&s!==void 0?s:Oc.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:Oc.verticalFill,x:Ce(e.x)?e.x:f.left,y:Ce(e.y)?e.y:f.top,width:Ce(e.width)?e.width:f.width,height:Ce(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,w=m.syncWithTicks,b=m.horizontalValues,N=m.verticalValues,E=ghe(),O=yhe();if(!Ce(x)||x<=0||!Ce(j)||j<=0||!Ce(p)||p!==+p||!Ce(g)||g!==+g)return null;var A=m.verticalCoordinatesGenerator||Mme,C=m.horizontalCoordinatesGenerator||Pme,k=m.horizontalPoints,T=m.verticalPoints;if((!k||!k.length)&&Ke(C)){var M=b&&b.length,R=C({yAxis:O?fr(fr({},O),{},{ticks:M?b:O.ticks}):void 0,width:u,height:d,offset:f},M?!0:w);Ha(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(vl(R),"]")),Array.isArray(R)&&(k=R)}if((!T||!T.length)&&Ke(A)){var B=N&&N.length,$=A({xAxis:E?fr(fr({},E),{},{ticks:B?N:E.ticks}):void 0,width:u,height:d,offset:f},B?!0:w);Ha(Array.isArray($),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(vl($),"]")),Array.isArray($)&&(T=$)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Ome,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(Eme,Qo({},m,{offset:f,horizontalPoints:k,xAxis:E,yAxis:O})),W.createElement(Ame,Qo({},m,{offset:f,verticalPoints:T,xAxis:E,yAxis:O})),W.createElement(Tme,Qo({},m,{horizontalPoints:k})),W.createElement(kme,Qo({},m,{verticalPoints:T})))}gf.displayName="CartesianGrid";var Rme=["type","layout","connectNulls","ref"],Dme=["key"];function Ou(e){"@babel/helpers - typeof";return Ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(e)}function LI(e,t){if(e==null)return{};var n=$me(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $me(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function kf(){return kf=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Ec(d.slice(0,j)),[p-w]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(Ec(t.repeat(d,m)),Ec(x),b).map(function(N){return"".concat(N,"px")}).join(", ")}),za(n,"id",Wu("recharts-line-")),za(n,"pathRef",function(l){n.mainCurve=l}),za(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),za(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Vme(t,e),Fme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.points,u=s.xAxis,d=s.yAxis,f=s.layout,m=s.children,p=ia(m,Wh);if(!p)return null;var g=function(w,b){return{x:w.x,y:w.y,value:w.value,errorVal:In(w.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(xt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,s){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=qe(this.props,!1),g=qe(d,!0),x=f.map(function(w,b){var N=Xr(Xr(Xr({key:"dot-".concat(b),r:3},p),g),{},{index:b,cx:w.x,cy:w.y,value:w.value,dataKey:m,payload:w.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return W.createElement(xt,kf({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,s,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=LI(u,Rme),g=Xr(Xr(Xr({},qe(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(rg,kf({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,w=l.width,b=l.height,N=this.state,E=N.prevPoints,O=N.totalLength;return W.createElement(bi,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(A){var C=A.t;if(E){var k=E.length/u.length,T=u.map(function(H,V){var q=Math.floor(V*k);if(E[q]){var G=E[q],L=ta(G.x,H.x),D=ta(G.y,H.y);return Xr(Xr({},H),{},{x:L(C),y:D(C)})}if(j){var U=ta(w*2,H.x),K=ta(b/2,H.y);return Xr(Xr({},H),{},{x:U(C),y:K(C)})}return Xr(Xr({},H),{},{x:H.x,y:H.y})});return s.renderCurveStatically(T,r,a)}var M=ta(0,O),R=M(C),B;if(d){var $="".concat(d).split(/[,\s]+/gim).map(function(H){return parseFloat(H)});B=s.getStrokeDasharray(R,O,$)}else B=s.generateSimpleStrokeDasharray(O,R);return s.renderCurveStatically(u,r,a,{strokeDasharray:B})})}},{key:"renderCurve",value:function(r,a){var s=this.props,l=s.points,u=s.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Hh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,w=a.isAnimationActive,b=a.id;if(s||!u||!u.length)return null;var N=this.state.isAnimationFinished,E=u.length===1,O=Je("recharts-line",d),A=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=A||C,T=Qe(b)?this.id:b,M=(r=qe(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},R=M.r,B=R===void 0?3:R,$=M.strokeWidth,H=$===void 0?2:$,V=NJ(l)?l:{},q=V.clipDot,G=q===void 0?!0:q,L=B*2+H;return W.createElement(xt,{className:O},A||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(T)},W.createElement("rect",{x:A?g:g-x/2,y:C?p:p-j/2,width:A?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(T)},W.createElement("rect",{x:g-L/2,y:p-L/2,width:x+L,height:j+L}))):null,!E&&this.renderCurve(k,T),this.renderErrorBar(k,T),(E||l)&&this.renderDots(k,G,T),(!w||N)&&as.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Ec(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $pe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ipe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Lpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ce(a)&&Ce(s)?t.slice(a,s+1):[]};function oF(e){return e==="number"?[0,"auto"]:void 0}var GN=function(t,n,r,a){var s=t.graphicalItems,l=t.tooltipAxis,u=Ry(n,t);return r<0||!s||!s.length||r>=u.length?null:s.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=Av(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(ku(d),[Z6(f,g)]):d},[])},GI=function(t,n,r,a){var s=a||{x:t.chartX,y:t.chartY},l=Xpe(s,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=joe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=GN(t,n,m,p),x=Zpe(r,u,m,s);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},Qpe=function(t,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=W6(m,s);return r.reduce(function(j,w){var b,N=w.type.defaultProps!==void 0?ve(ve({},w.type.defaultProps),w.props):w.props,E=N.type,O=N.dataKey,A=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,T=N.ticks,M=N.includeHidden,R=N[l];if(j[R])return j;var B=Ry(t.data,{graphicalItems:a.filter(function(z){var Y,te=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l];return te===R}),dataStartIndex:d,dataEndIndex:f}),$=B.length,H,V,q;_pe(N.domain,A,E)&&(H=oN(N.domain,null,A),x&&(E==="number"||k!=="auto")&&(q=Of(B,O,"category")));var G=oF(E);if(!H||H.length===0){var L,D=(L=N.domain)!==null&&L!==void 0?L:G;if(O){if(H=Of(B,O,E),E==="category"&&x){var U=pJ(H);C&&U?(V=H,H=hg(0,$)):C||(H=V3(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0?z:[].concat(ku(z),[Y])},[]))}else if(E==="category")C?H=H.filter(function(z){return z!==""&&!Qe(z)}):H=V3(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0||Y===""||Qe(Y)?z:[].concat(ku(z),[Y])},[]);else if(E==="number"){var K=Ooe(B,a.filter(function(z){var Y,te,ae=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l],ge="hide"in z.props?z.props.hide:(te=z.type.defaultProps)===null||te===void 0?void 0:te.hide;return ae===R&&(M||!ge)}),O,s,m);K&&(H=K)}x&&(E==="number"||k!=="auto")&&(q=Of(B,O,"category"))}else x?H=hg(0,$):u&&u[R]&&u[R].hasStack&&E==="number"?H=g==="expand"?[0,1]:X6(u[R].stackGroups,d,f):H=H6(B,a.filter(function(z){var Y=l in z.props?z.props[l]:z.type.defaultProps[l],te="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return Y===R&&(M||!te)}),E,m,!0);if(E==="number")H=HN(p,H,R,s,T),D&&(H=oN(D,H,A));else if(E==="category"&&D){var J=D,I=H.every(function(z){return J.indexOf(z)>=0});I&&(H=J)}}return ve(ve({},j),{},He({},R,ve(ve({},N),{},{axisType:s,domain:H,categoricalDomain:q,duplicateDomain:V,originalDomain:(b=N.domain)!==null&&b!==void 0?b:G,isCategorical:x,layout:m})))},{})},Jpe=function(t,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=Ry(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=W6(m,s),w=-1;return r.reduce(function(b,N){var E=N.type.defaultProps!==void 0?ve(ve({},N.type.defaultProps),N.props):N.props,O=E[l],A=oF("number");if(!b[O]){w++;var C;return j?C=hg(0,x):u&&u[O]&&u[O].hasStack?(C=X6(u[O].stackGroups,d,f),C=HN(p,C,O,s)):(C=oN(A,H6(g,r.filter(function(k){var T,M,R=l in k.props?k.props[l]:(T=k.type.defaultProps)===null||T===void 0?void 0:T[l],B="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return R===O&&!B}),"number",m),a.defaultProps.allowDataOverflow),C=HN(p,C,O,s)),ve(ve({},b),{},He({},O,ve(ve({axisType:s},a.defaultProps),{},{hide:!0,orientation:aa(Ype,"".concat(s,".").concat(w%2),null),domain:C,originalDomain:A,isCategorical:j,layout:m})))}return b},{})},eve=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=ia(m,s),x={};return g&&g.length?x=Qpe(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=Jpe(t,{Axis:s,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},tve=function(t){var n=Ws(t),r=Qi(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:gO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:eg(n,r)}},YI=function(t){var n=t.children,r=t.defaultShowTooltip,a=Qr(n,wu),s=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},nve=function(t){return!t||!t.length?!1:t.some(function(n){var r=ns(n&&n.type);return r&&r.indexOf("Bar")>=0})},KI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},rve=function(t,n){var r=t.props,a=t.graphicalItems,s=t.xAxisMap,l=s===void 0?{}:s,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=Qr(p,wu),j=Qr(p,al),w=Object.keys(d).reduce(function(C,k){var T=d[k],M=T.orientation;return!T.mirror&&!T.hide?ve(ve({},C),{},He({},M,C[M]+T.width)):C},{left:g.left||0,right:g.right||0}),b=Object.keys(l).reduce(function(C,k){var T=l[k],M=T.orientation;return!T.mirror&&!T.hide?ve(ve({},C),{},He({},M,aa(C,"".concat(M))+T.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ve(ve({},b),w),E=N.bottom;x&&(N.bottom+=x.props.height||wu.defaultProps.height),j&&n&&(N=Noe(N,a,r,n));var O=f-N.left-N.right,A=m-N.top-N.bottom;return ve(ve({brushBottom:E},N),{},{width:Math.max(O,0),height:Math.max(A,0)})},ave=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},eE=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,s=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,E){var O=E.graphicalItems,A=E.stackGroups,C=E.offset,k=E.updateId,T=E.dataStartIndex,M=E.dataEndIndex,R=N.barSize,B=N.layout,$=N.barGap,H=N.barCategoryGap,V=N.maxBarSize,q=KI(B),G=q.numericAxisName,L=q.cateAxisName,D=nve(O),U=[];return O.forEach(function(K,J){var I=Ry(N.data,{graphicalItems:[K],dataStartIndex:T,dataEndIndex:M}),z=K.type.defaultProps!==void 0?ve(ve({},K.type.defaultProps),K.props):K.props,Y=z.dataKey,te=z.maxBarSize,ae=z["".concat(G,"Id")],ge=z["".concat(L,"Id")],ee={},Se=d.reduce(function(Tt,Sn){var le=E["".concat(Sn.axisType,"Map")],ue=z["".concat(Sn.axisType,"Id")];le&&le[ue]||Sn.axisType==="zAxis"||pr(!1);var Ve=le[ue];return ve(ve({},Tt),{},He(He({},Sn.axisType,Ve),"".concat(Sn.axisType,"Ticks"),Qi(Ve)))},ee),re=Se[L],we=Se["".concat(L,"Ticks")],je=A&&A[ae]&&A[ae].hasStack&&$oe(K,A[ae].stackGroups),fe=ns(K.type).indexOf("Bar")>=0,Le=eg(re,we),Oe=[],We=D&&Soe({barSize:R,stackGroups:A,totalSize:ave(Se,L)});if(fe){var be,Ae,ke=Qe(te)?V:te,Qt=(be=(Ae=eg(re,we,!0))!==null&&Ae!==void 0?Ae:ke)!==null&&be!==void 0?be:0;Oe=_oe({barGap:$,barCategoryGap:H,bandSize:Qt!==Le?Qt:Le,sizeList:We[ge],maxBarSize:ke}),Qt!==Le&&(Oe=Oe.map(function(Tt){return ve(ve({},Tt),{},{position:ve(ve({},Tt.position),{},{offset:Tt.position.offset-Qt/2})})}))}var St=K&&K.type&&K.type.getComposedData;St&&U.push({props:ve(ve({},St(ve(ve({},Se),{},{displayedData:I,props:N,dataKey:Y,item:K,bandSize:Le,barPosition:Oe,offset:C,stackedData:je,layout:B,dataStartIndex:T,dataEndIndex:M}))),{},He(He(He({key:K.key||"item-".concat(J)},G,Se[G]),L,Se[L]),"animationId",k)),childIndex:EJ(K,N.children),item:K})}),U},x=function(N,E){var O=N.props,A=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!sR({props:O}))return null;var T=O.children,M=O.layout,R=O.stackOffset,B=O.data,$=O.reverseStackOrder,H=KI(M),V=H.numericAxisName,q=H.cateAxisName,G=ia(T,r),L=Roe(B,G,"".concat(V,"Id"),"".concat(q,"Id"),R,$),D=d.reduce(function(z,Y){var te="".concat(Y.axisType,"Map");return ve(ve({},z),{},He({},te,eve(O,ve(ve({},Y),{},{graphicalItems:G,stackGroups:Y.axisType===V&&L,dataStartIndex:A,dataEndIndex:C}))))},{}),U=rve(ve(ve({},D),{},{props:O,graphicalItems:G}),E?.legendBBox);Object.keys(D).forEach(function(z){D[z]=m(O,D[z],U,z.replace("Map",""),n)});var K=D["".concat(q,"Map")],J=tve(K),I=g(O,ve(ve({},D),{},{dataStartIndex:A,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:L,offset:U}));return ve(ve({formattedGraphicalItems:I,graphicalItems:G,offset:U,stackGroups:L},J),D)},j=(function(b){function N(E){var O,A,C;return Ipe(this,N),C=zpe(this,N,[E]),He(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),He(C,"accessibilityManager",new Spe),He(C,"handleLegendBBoxUpdate",function(k){if(k){var T=C.state,M=T.dataStartIndex,R=T.dataEndIndex,B=T.updateId;C.setState(ve({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:R,updateId:B},ve(ve({},C.state),{},{legendBBox:k}))))}}),He(C,"handleReceiveSyncEvent",function(k,T,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(T)}}),He(C,"handleBrushChange",function(k){var T=k.startIndex,M=k.endIndex;if(T!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var R=C.state.updateId;C.setState(function(){return ve({dataStartIndex:T,dataEndIndex:M},x({props:C.props,dataStartIndex:T,dataEndIndex:M,updateId:R},C.state))}),C.triggerSyncEvent({dataStartIndex:T,dataEndIndex:M})}}),He(C,"handleMouseEnter",function(k){var T=C.getMouseInfo(k);if(T){var M=ve(ve({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseEnter;Ke(R)&&R(M,k)}}),He(C,"triggeredAfterMouseMove",function(k){var T=C.getMouseInfo(k),M=T?ve(ve({},T),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseMove;Ke(R)&&R(M,k)}),He(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),He(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),He(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),He(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var T={isTooltipActive:!1};C.setState(T),C.triggerSyncEvent(T);var M=C.props.onMouseLeave;Ke(M)&&M(T,k)}),He(C,"handleOuterEvent",function(k){var T=OJ(k),M=aa(C.props,"".concat(T));if(T&&Ke(M)){var R,B;/.*touch.*/i.test(T)?B=C.getMouseInfo(k.changedTouches[0]):B=C.getMouseInfo(k),M((R=B)!==null&&R!==void 0?R:{},k)}}),He(C,"handleClick",function(k){var T=C.getMouseInfo(k);if(T){var M=ve(ve({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onClick;Ke(R)&&R(M,k)}}),He(C,"handleMouseDown",function(k){var T=C.props.onMouseDown;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleMouseUp",function(k){var T=C.props.onMouseUp;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),He(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),He(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),He(C,"handleDoubleClick",function(k){var T=C.props.onDoubleClick;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleContextMenu",function(k){var T=C.props.onContextMenu;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&GS.emit(YS,C.props.syncId,k,C.eventEmitterSymbol)}),He(C,"applySyncEvent",function(k){var T=C.props,M=T.layout,R=T.syncMethod,B=C.state.updateId,$=k.dataStartIndex,H=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ve({dataStartIndex:$,dataEndIndex:H},x({props:C.props,dataStartIndex:$,dataEndIndex:H,updateId:B},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,q=k.chartY,G=k.activeTooltipIndex,L=C.state,D=L.offset,U=L.tooltipTicks;if(!D)return;if(typeof R=="function")G=R(U,k);else if(R==="value"){G=-1;for(var K=0;K=0){var je,fe;if(V.dataKey&&!V.allowDuplicatedCategory){var Le=typeof V.dataKey=="function"?we:"payload.".concat(V.dataKey.toString());je=Av(K,Le,G),fe=J&&I&&Av(I,Le,G)}else je=K?.[q],fe=J&&I&&I[q];if(ge||ae){var Oe=k.props.activeIndex!==void 0?k.props.activeIndex:q;return[y.cloneElement(k,ve(ve(ve({},R.props),Se),{},{activeIndex:Oe})),null,null]}if(!Qe(je))return[re].concat(ku(C.renderActivePoints({item:R,activePoint:je,basePoint:fe,childIndex:q,isRange:J})))}else{var We,be=(We=C.getItemByXY(C.state.activeCoordinate))!==null&&We!==void 0?We:{graphicalItem:re},Ae=be.graphicalItem,ke=Ae.item,Qt=ke===void 0?k:ke,St=Ae.childIndex,Tt=ve(ve(ve({},R.props),Se),{},{activeIndex:St});return[y.cloneElement(Qt,Tt),null,null]}return J?[re,null,null]:[re,null]}),He(C,"renderCustomized",function(k,T,M){return y.cloneElement(k,ve(ve({key:"recharts-customized-".concat(M)},C.props),C.state))}),He(C,"renderMap",{CartesianGrid:{handler:Vp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:Vp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:Vp},YAxis:{handler:Vp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((O=E.id)!==null&&O!==void 0?O:Wu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=qz(C.triggeredAfterMouseMove,(A=E.throttleDelay)!==null&&A!==void 0?A:1e3/60),C.state={},C}return Upe(N,b),Bpe(N,[{key:"componentDidMount",value:function(){var O,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(O=this.props.margin.left)!==null&&O!==void 0?O:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var O=this.props,A=O.children,C=O.data,k=O.height,T=O.layout,M=Qr(A,ii);if(M){var R=M.props.defaultIndex;if(!(typeof R!="number"||R<0||R>this.state.tooltipTicks.length-1)){var B=this.state.tooltipTicks[R]&&this.state.tooltipTicks[R].value,$=GN(this.state,C,R,B),H=this.state.tooltipTicks[R].coordinate,V=(this.state.offset.top+k)/2,q=T==="horizontal",G=q?{x:H,y:V}:{y:H,x:V},L=this.state.formattedGraphicalItems.find(function(U){var K=U.item;return K.type.name==="Scatter"});L&&(G=ve(ve({},G),L.props.points[R].tooltipPosition),$=L.props.points[R].tooltipPayload);var D={activeTooltipIndex:R,isTooltipActive:!0,activeLabel:B,activePayload:$,activeCoordinate:G};this.setState(D),this.renderCursor(M),this.accessibilityManager.setIndex(R)}}}},{key:"getSnapshotBeforeUpdate",value:function(O,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==O.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==O.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(O){A_([Qr(O.children,ii)],[Qr(this.props.children,ii)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var O=Qr(this.props.children,ii);if(O&&typeof O.props.shared=="boolean"){var A=O.props.shared?"axis":"item";return u.indexOf(A)>=0?A:s}return s}},{key:"getMouseInfo",value:function(O){if(!this.container)return null;var A=this.container,C=A.getBoundingClientRect(),k=pre(C),T={chartX:Math.round(O.pageX-k.left),chartY:Math.round(O.pageY-k.top)},M=C.width/A.offsetWidth||1,R=this.inRange(T.chartX,T.chartY,M);if(!R)return null;var B=this.state,$=B.xAxisMap,H=B.yAxisMap,V=this.getTooltipEventType(),q=GI(this.state,this.props.data,this.props.layout,R);if(V!=="axis"&&$&&H){var G=Ws($).scale,L=Ws(H).scale,D=G&&G.invert?G.invert(T.chartX):null,U=L&&L.invert?L.invert(T.chartY):null;return ve(ve({},T),{},{xValue:D,yValue:U},q)}return q?ve(ve({},T),q):null}},{key:"inRange",value:function(O,A){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,T=O/C,M=A/C;if(k==="horizontal"||k==="vertical"){var R=this.state.offset,B=T>=R.left&&T<=R.left+R.width&&M>=R.top&&M<=R.top+R.height;return B?{x:T,y:M}:null}var $=this.state,H=$.angleAxisMap,V=$.radiusAxisMap;if(H&&V){var q=Ws(H);return K3({x:T,y:M},q)}return null}},{key:"parseEventsOfWrapper",value:function(){var O=this.props.children,A=this.getTooltipEventType(),C=Qr(O,ii),k={};C&&A==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var T=Tv(this.props,this.handleOuterEvent);return ve(ve({},T),k)}},{key:"addListener",value:function(){GS.on(YS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){GS.removeListener(YS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(O,A,C){for(var k=this.state.formattedGraphicalItems,T=0,M=k.length;T");return e}const Dc=y.forwardRef(({id:e,className:t,children:n,config:r,...a},s)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(lF.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:s,className:ce("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(lve,{id:u,config:r}),i.jsx(lre,{children:n})]})})});Dc.displayName="Chart";const lve=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(ove).map(([r,a])=>` +${a} [data-chart=${e}] { +${n.map(([s,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${s}: ${u};`:null}).join(` +`)} +} +`).join(` +`)}}):null},df=ii,$c=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:s=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=cF(),w=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,E=`${g||N?.dataKey||N?.name||"value"}`,O=YN(j,N,E),A=!g&&typeof l=="string"?j[l]?.label||l:O?.label;return u?i.jsx("div",{className:ce("font-medium",d),children:u(A,t)}):A?i.jsx("div",{className:ce("font-medium",d),children:A}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const b=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:ce("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[b?null:w,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,E)=>{const O=`${p||N.name||N.dataKey||"value"}`,A=YN(j,N,O),C=m||N.payload.fill||N.color;return i.jsx("div",{className:ce("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,E,N.payload):i.jsxs(i.Fragment,{children:[A?.icon?i.jsx(A.icon,{}):!s&&i.jsx("div",{className:ce("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":b&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:ce("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[b?w:null,i.jsx("span",{className:"text-muted-foreground",children:A?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});$c.displayName="ChartTooltip";const cve=al,uF=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},s)=>{const{config:l}=cF();return n?.length?i.jsx("div",{ref:s,className:ce("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=YN(l,u,d);return i.jsxs("div",{className:ce("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});uF.displayName="ChartLegend";function YN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const uve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),dve=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),XI=e=>{const t=dve(e);return t.charAt(0).toUpperCase()+t.slice(1)},dF=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),fve=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var hve={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const mve=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...hve,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:dF("lucide",a),...!s&&!fve(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(s)?s:[s]]));const Ee=(e,t)=>{const n=y.forwardRef(({className:r,...a},s)=>y.createElement(mve,{ref:s,iconNode:t,className:dF(`lucide-${uve(XI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=XI(e),n};const pve=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],vve=Ee("activity",pve);const gve=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],fF=Ee("arrow-left",gve);const yve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],xve=Ee("arrow-right",yve);const bve=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ZI=Ee("ban",bve);const wve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],jve=Ee("book-open",wve);const Sve=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],_ve=Ee("bot",Sve);const Nve=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],hF=Ee("boxes",Nve);const Cve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],QI=Ee("calendar",Cve);const Ove=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],Eve=Ee("chart-column",Ove);const Ave=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ol=Ee("check",Ave);const Tve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],vh=Ee("chevron-down",Tve);const kve=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],tE=Ee("chevron-left",kve);const Mve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],nE=Ee("chevron-right",Mve);const Pve=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],KN=Ee("chevron-up",Pve);const Rve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],Dve=Ee("chevrons-up-down",Rve);const $ve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],gl=Ee("circle-alert",$ve);const Ive=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Pr=Ee("circle-check",Ive);const Lve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Bve=Ee("circle-question-mark",Lve);const zve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],mF=Ee("circle-user",zve);const qve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],XN=Ee("circle-x",qve);const Fve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Uve=Ee("circle",Fve);const Hve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ll=Ee("clock",Hve);const Wve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],ZN=Ee("copy",Wve);const Vve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Gve=Ee("database",Vve);const Yve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Kve=Ee("dollar-sign",Yve);const Xve=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],QN=Ee("download",Xve);const Zve=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Mf=Ee("external-link",Zve);const Qve=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],JN=Ee("eye-off",Qve);const Jve=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Va=Ee("eye",Jve);const ege=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],Og=Ee("file-search",ege);const tge=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],rE=Ee("file-text",tge);const nge=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],eC=Ee("funnel",nge);const rge=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Eg=Ee("hash",rge);const age=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Ag=Ee("house",age);const ige=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Mu=Ee("info",ige);const sge=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],oge=Ee("key",sge);const lge=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],gh=Ee("loader-circle",lge);const cge=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],JI=Ee("lock",cge);const uge=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],eL=Ee("log-out",uge);const dge=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],fge=Ee("menu",dge);const hge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Gh=Ee("message-square",hge);const mge=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],tC=Ee("moon",mge);const pge=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Tg=Ee("package",pge);const vge=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],pF=Ee("palette",vge);const gge=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],yge=Ee("pause",gge);const xge=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Pu=Ee("pencil",xge);const bge=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],wge=Ee("play",bge);const jge=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ir=Ee("plus",jge);const Sge=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],aE=Ee("power",Sge);const _ge=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],is=Ee("refresh-cw",_ge);const Nge=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Cge=Ee("rotate-ccw",Nge);const Oge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Ege=Ee("rotate-cw",Oge);const Age=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],iE=Ee("save",Age);const Tge=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Lr=Ee("search",Tge);const kge=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],vF=Ee("server",kge);const Mge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Pge=Ee("settings-2",Mge);const Rge=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Fa=Ee("settings",Rge);const Dge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],$ge=Ee("shield",Dge);const Ige=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Lge=Ee("skip-forward",Ige);const Bge=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],zge=Ee("sliders-vertical",Bge);const qge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],sE=Ee("smile",qge);const Fge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Uge=Ee("sparkles",Fge);const Hge=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Ru=Ee("square-pen",Hge);const Wge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],tL=Ee("star",Wge);const Vge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],nC=Ee("sun",Vge);const Gge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Yge=Ee("terminal",Gge);const Kge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],It=Ee("trash-2",Kge);const Xge=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Zge=Ee("trending-up",Xge);const Qge=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Kc=Ee("triangle-alert",Qge);const Jge=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],gF=Ee("user",Jge);const eye=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],tye=Ee("users",eye);const nye=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Yh=Ee("x",nye);const rye=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],yh=Ee("zap",rye),nL=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,rL=Je,Zu=(e,t)=>n=>{var r;if(t?.variants==null)return rL(e,n?.class,n?.className);const{variants:a,defaultVariants:s}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=s?.[f];if(m===null)return null;const g=nL(m)||nL(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[w,b]=j;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...f,p,g]:f},[]);return rL(e,l,d,n?.class,n?.className)},xh=Zu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),oe=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const l=r?hQ:"button";return i.jsx(l,{className:ce(xh({variant:t,size:n,className:e})),ref:s,...a})});oe.displayName="Button";function aye(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(24),[d,f]=y.useState(!0),[m,p]=y.useState(null),[g,x]=y.useState(!0),j=y.useCallback(async()=>{try{x(!0);const R=await vn.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");p({hitokoto:R.data.hitokoto,from:R.data.from||R.data.from_who||"未知"})}catch(R){console.error("获取一言失败:",R),p({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{x(!1)}},[]),w=y.useCallback(async()=>{try{const R=localStorage.getItem("access-token"),B=await vn.get(`/api/webui/statistics/dashboard?hours=${l}`,{headers:{Authorization:`Bearer ${R}`}});t(B.data),r(!1),s(100)}catch(R){console.error("Failed to fetch dashboard data:",R),r(!1),s(100)}},[l]);if(y.useEffect(()=>{if(!n)return;s(0);const R=setTimeout(()=>s(15),200),B=setTimeout(()=>s(30),800),$=setTimeout(()=>s(45),2e3),H=setTimeout(()=>s(60),4e3),V=setTimeout(()=>s(75),6500),q=setTimeout(()=>s(85),9e3),G=setTimeout(()=>s(92),11e3);return()=>{clearTimeout(R),clearTimeout(B),clearTimeout($),clearTimeout(H),clearTimeout(V),clearTimeout(q),clearTimeout(G)}},[n]),y.useEffect(()=>{w(),j()},[w,j]),y.useEffect(()=>{if(!d)return;const R=setInterval(()=>{w()},3e4);return()=>clearInterval(R)},[d,w]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[i.jsx(is,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx($h,{value:a,className:"h-2"}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:[a,"%"]})]})]})});const{summary:b,model_stats:N,hourly_data:E,daily_data:O,recent_activity:A}=e,C=R=>{const B=Math.floor(R/3600),$=Math.floor(R%3600/60);return`${B}小时${$}分钟`},k=R=>new Date(R).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),T=N.slice(0,6).map(R=>({name:R.model_name,value:R.request_count,fill:`hsl(var(--chart-${N.indexOf(R)%5+1}))`})),M={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(dl,{value:l.toString(),onValueChange:R=>u(Number(R)),children:i.jsxs(eo,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Rt,{value:"24",children:"24小时"}),i.jsx(Rt,{value:"168",children:"7天"}),i.jsx(Rt,{value:"720",children:"30天"})]})}),i.jsxs(oe,{variant:d?"default":"outline",size:"sm",onClick:()=>f(!d),className:"gap-2",children:[i.jsx(is,{className:`h-4 w-4 ${d?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:w,children:i.jsx(is,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(vve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",l<48?l+"小时":Math.floor(l/24)+"天"]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"总花费"}),i.jsx(Kve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",b.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.cost_per_hour>0?`¥${b.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(Gve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(b.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.tokens_per_hour>0?`${(b.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(yh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[b.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(ll,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(Ct,{children:i.jsx("div",{className:"text-xl font-bold",children:C(b.online_time)})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(Gh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",b.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(Zge,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages>0?`¥${(b.total_cost/b.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(dl,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Rt,{value:"trends",children:"趋势"}),i.jsx(Rt,{value:"models",children:"模型"}),i.jsx(Rt,{value:"activity",children:"活动"}),i.jsx(Rt,{value:"daily",children:"日统计"})]}),i.jsxs(sn,{value:"trends",className:"space-y-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"请求趋势"}),i.jsxs(Wn,{children:["最近",l,"小时的请求量变化"]})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(ive,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(Vh,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"花费趋势"}),i.jsx(Wn,{children:"API调用成本变化"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(XS,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(di,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"Token消耗"}),i.jsx(Wn,{children:"Token使用量变化"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(XS,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(di,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(sn,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"模型请求分布"}),i.jsx(Wn,{children:"各模型使用占比"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:Object.fromEntries(N.slice(0,6).map((R,B)=>[R.model_name,{label:R.model_name,color:`hsl(var(--chart-${B%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(sve,{children:[i.jsx(df,{content:i.jsx($c,{})}),i.jsx(ps,{data:T,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percent:B})=>`${R} ${B?(B*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:T.map((R,B)=>i.jsx(uy,{fill:R.fill},`cell-${B}`))})]})})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"模型详细统计"}),i.jsx(Wn,{children:"请求数、花费和性能"})]}),i.jsx(Ct,{children:i.jsx(Wt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:N.map((R,B)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:R.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${B%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:R.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",R.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(R.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[R.avg_response_time.toFixed(2),"s"]})]})]})]},B))})})})]})]})}),i.jsx(sn,{value:"activity",children:i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"最近活动"}),i.jsx(Wn,{children:"最新的API调用记录"})]}),i.jsx(Ct,{children:i.jsx(Wt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((R,B)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:R.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:R.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:k(R.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:R.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",R.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[R.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${R.status==="success"?"text-green-600":"text-red-600"}`,children:R.status})]})]})]},B))})})})]})}),i.jsx(sn,{value:"daily",children:i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"每日统计"}),i.jsx(Wn,{children:"最近7天的数据汇总"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(XS,{data:O,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>{const B=new Date(R);return`${B.getMonth()+1}/${B.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>new Date(R).toLocaleDateString("zh-CN")})}),i.jsx(cve,{content:i.jsx(uF,{})}),i.jsx(di,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(di,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(Xe,{className:"border-2 border-primary/20",children:[i.jsx(pt,{className:"pb-3",children:i.jsx(vt,{className:"text-lg",children:"每日一言"})}),i.jsx(Ct,{children:g?i.jsxs("div",{className:"space-y-2",children:[i.jsx(KM,{className:"h-6 w-3/4"}),i.jsx(KM,{className:"h-4 w-1/4"})]}):m?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',m.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",m.from]})]}):null})]})]})})}const iye={theme:"system",setTheme:()=>null},yF=y.createContext(iye),oE=()=>{const e=y.useContext(yF);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},sye=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,s=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(s,innerHeight-s));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},xF=y.createContext(void 0),bF=()=>{const e=y.useContext(xF);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function Dy(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function $y(e){const[t,n]=y.useState(void 0);return Yn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let l,u;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Iy="Switch",[oye]=gr(Iy),[lye,cye]=oye(Iy),wF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=Ue(t,O=>x(O)),w=y.useRef(!1),b=g?m||!!g.closest("form"):!0,[N,E]=Ea({prop:a,defaultProp:s??!1,onChange:f,caller:Iy});return i.jsxs(lye,{scope:n,checked:N,disabled:u,children:[i.jsx($e.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":NF(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:_e(e.onClick,O=>{E(A=>!A),b&&(w.current=O.isPropagationStopped(),w.current||O.stopPropagation())})}),b&&i.jsx(_F,{control:g,bubbles:!w.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});wF.displayName=Iy;var jF="SwitchThumb",SF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=cye(jF,n);return i.jsx($e.span,{"data-state":NF(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});SF.displayName=jF;var uye="SwitchBubbleInput",_F=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const l=y.useRef(null),u=Ue(l,s),d=Dy(n),f=$y(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});_F.displayName=uye;function NF(e){return e?"checked":"unchecked"}var CF=wF,dye=SF;const lt=y.forwardRef(({className:e,...t},n)=>i.jsx(CF,{className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(dye,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));lt.displayName=CF.displayName;var fye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],hye=fye.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),mye="Label",OF=y.forwardRef((e,t)=>i.jsx(hye.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));OF.displayName=mye;var EF=OF;const pye=Zu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Q=y.forwardRef(({className:e,...t},n)=>i.jsx(EF,{ref:n,className:ce(pye(),e),...t}));Q.displayName=EF.displayName;const Ne=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:ce("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ne.displayName="Input";const vye=1,gye=1e6;let ZS=0;function yye(){return ZS=(ZS+1)%Number.MAX_SAFE_INTEGER,ZS.toString()}const QS=new Map,aL=e=>{if(QS.has(e))return;const t=setTimeout(()=>{QS.delete(e),Pf({type:"REMOVE_TOAST",toastId:e})},gye);QS.set(e,t)},xye=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,vye)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?aL(n):e.toasts.forEach(r=>{aL(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},uv=[];let dv={toasts:[]};function Pf(e){dv=xye(dv,e),uv.forEach(t=>{t(dv)})}function bye({...e}){const t=yye(),n=a=>Pf({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Pf({type:"DISMISS_TOAST",toastId:t});return Pf({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function yr(){const[e,t]=y.useState(dv);return y.useEffect(()=>(uv.push(t),()=>{const n=uv.indexOf(t);n>-1&&uv.splice(n,1)}),[e]),{...e,toast:bye,dismiss:n=>Pf({type:"DISMISS_TOAST",toastId:n})}}const wye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function jye(e){const t=wye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const lE="0.11.5 Beta",cE="MaiBot Dashboard",Sye=`${cE} v${lE}`,_ye=(e="v")=>`${e}${lE}`;function Nye(e,t=globalThis?.document){const n=ln(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Cye="DismissableLayer",rC="dismissableLayer.update",Oye="dismissableLayer.pointerDownOutside",Eye="dismissableLayer.focusOutside",iL,AF=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Al=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(AF),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=Ue(t,T=>p(T)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=w.indexOf(b),E=m?w.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,A=E>=N,C=Tye(T=>{const M=T.target,R=[...f.branches].some(B=>B.contains(M));!A||R||(a?.(T),l?.(T),T.defaultPrevented||u?.())},g),k=kye(T=>{const M=T.target;[...f.branches].some(B=>B.contains(M))||(s?.(T),l?.(T),T.defaultPrevented||u?.())},g);return Nye(T=>{E===f.layers.size-1&&(r?.(T),!T.defaultPrevented&&u&&(T.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(iL=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),sL(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=iL)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),sL())},[m,f]),y.useEffect(()=>{const T=()=>x({});return document.addEventListener(rC,T),()=>document.removeEventListener(rC,T)},[]),i.jsx($e.div,{...d,ref:j,style:{pointerEvents:O?A?"auto":"none":void 0,...e.style},onFocusCapture:_e(e.onFocusCapture,k.onFocusCapture),onBlurCapture:_e(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:_e(e.onPointerDownCapture,C.onPointerDownCapture)})});Al.displayName=Cye;var Aye="DismissableLayerBranch",TF=y.forwardRef((e,t)=>{const n=y.useContext(AF),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),i.jsx($e.div,{...e,ref:a})});TF.displayName=Aye;function Tye(e,t=globalThis?.document){const n=ln(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let d=function(){kF(Oye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function kye(e,t=globalThis?.document){const n=ln(e),r=y.useRef(!1);return y.useEffect(()=>{const a=s=>{s.target&&!r.current&&kF(Eye,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function sL(){const e=new CustomEvent(rC);document.dispatchEvent(e)}function kF(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?UC(a,s):a.dispatchEvent(s)}var Mye=Al,Pye=TF,JS="focusScope.autoFocusOnMount",e_="focusScope.autoFocusOnUnmount",oL={bubbles:!1,cancelable:!0},Rye="FocusScope",Kh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...l}=e,[u,d]=y.useState(null),f=ln(a),m=ln(s),p=y.useRef(null),g=Ue(t,w=>d(w)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let w=function(O){if(x.paused||!u)return;const A=O.target;u.contains(A)?p.current=A:Us(p.current,{select:!0})},b=function(O){if(x.paused||!u)return;const A=O.relatedTarget;A!==null&&(u.contains(A)||Us(p.current,{select:!0}))},N=function(O){if(document.activeElement===document.body)for(const C of O)C.removedNodes.length>0&&Us(u)};document.addEventListener("focusin",w),document.addEventListener("focusout",b);const E=new MutationObserver(N);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",b),E.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){cL.add(x);const w=document.activeElement;if(!u.contains(w)){const N=new CustomEvent(JS,oL);u.addEventListener(JS,f),u.dispatchEvent(N),N.defaultPrevented||(Dye(zye(MF(u)),{select:!0}),document.activeElement===w&&Us(u))}return()=>{u.removeEventListener(JS,f),setTimeout(()=>{const N=new CustomEvent(e_,oL);u.addEventListener(e_,m),u.dispatchEvent(N),N.defaultPrevented||Us(w??document.body,{select:!0}),u.removeEventListener(e_,m),cL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(w=>{if(!n&&!r||x.paused)return;const b=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,N=document.activeElement;if(b&&N){const E=w.currentTarget,[O,A]=$ye(E);O&&A?!w.shiftKey&&N===A?(w.preventDefault(),n&&Us(O,{select:!0})):w.shiftKey&&N===O&&(w.preventDefault(),n&&Us(A,{select:!0})):N===E&&w.preventDefault()}},[n,r,x.paused]);return i.jsx($e.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Kh.displayName=Rye;function Dye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Us(r,{select:t}),document.activeElement!==n)return}function $ye(e){const t=MF(e),n=lL(t,e),r=lL(t.reverse(),e);return[n,r]}function MF(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function lL(e,t){for(const n of e)if(!Iye(n,{upTo:t}))return n}function Iye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Lye(e){return e instanceof HTMLInputElement&&"select"in e}function Us(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Lye(e)&&t&&e.select()}}var cL=Bye();function Bye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=uL(e,t),e.unshift(t)},remove(t){e=uL(e,t),e[0]?.resume()}}}function uL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function zye(e){return e.filter(t=>t.tagName!=="A")}var qye="Portal",Tl=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,s]=y.useState(!1);Yn(()=>s(!0),[]);const l=n||a&&globalThis?.document?.body;return l?NY.createPortal(i.jsx($e.div,{...r,ref:t}),l):null});Tl.displayName=qye;var t_=0;function Ly(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??dL()),document.body.insertAdjacentElement("beforeend",e[1]??dL()),t_++,()=>{t_===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),t_--}},[])}function dL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var si=function(){return si=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return axe;var t=ixe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},oxe=$F(),Xc="data-scroll-locked",lxe=function(e,t,n,r){var a=e.left,s=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` + .`.concat(Uye,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(u,"px ").concat(r,`; + } + body[`).concat(Xc,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(a,`px; + padding-top: `).concat(s,`px; + padding-right: `).concat(l,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(u,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(fv,` { + right: `).concat(u,"px ").concat(r,`; + } + + .`).concat(hv,` { + margin-right: `).concat(u,"px ").concat(r,`; + } + + .`).concat(fv," .").concat(fv,` { + right: 0 `).concat(r,`; + } + + .`).concat(hv," .").concat(hv,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(Xc,`] { + `).concat(Hye,": ").concat(u,`px; + } +`)},hL=function(){var e=parseInt(document.body.getAttribute(Xc)||"0",10);return isFinite(e)?e:0},cxe=function(){y.useEffect(function(){return document.body.setAttribute(Xc,(hL()+1).toString()),function(){var e=hL()-1;e<=0?document.body.removeAttribute(Xc):document.body.setAttribute(Xc,e.toString())}},[])},uxe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;cxe();var s=y.useMemo(function(){return sxe(a)},[a]);return y.createElement(oxe,{styles:lxe(s,!t,a,n?"":"!important")})},aC=!1;if(typeof window<"u")try{var Gp=Object.defineProperty({},"passive",{get:function(){return aC=!0,!0}});window.addEventListener("test",Gp,Gp),window.removeEventListener("test",Gp,Gp)}catch{aC=!1}var Ac=aC?{passive:!1}:!1,dxe=function(e){return e.tagName==="TEXTAREA"},IF=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!dxe(e)&&n[t]==="visible")},fxe=function(e){return IF(e,"overflowY")},hxe=function(e){return IF(e,"overflowX")},mL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=LF(e,r);if(a){var s=BF(e,r),l=s[1],u=s[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},mxe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},pxe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},LF=function(e,t){return e==="v"?fxe(t):hxe(t)},BF=function(e,t){return e==="v"?mxe(t):pxe(t)},vxe=function(e,t){return e==="h"&&t==="rtl"?-1:1},gxe=function(e,t,n,r,a){var s=vxe(e,window.getComputedStyle(t).direction),l=s*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=BF(e,u),j=x[0],w=x[1],b=x[2],N=w-b-s*j;(j||N)&&LF(e,u)&&(p+=N,g+=j);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Yp=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},pL=function(e){return[e.deltaX,e.deltaY]},vL=function(e){return e&&"current"in e?e.current:e},yxe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},xxe=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},bxe=0,Tc=[];function wxe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(bxe++)[0],s=y.useState($F)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var w=Fye([e.lockRef.current],(e.shards||[]).map(vL),!0).filter(Boolean);return w.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(w,b){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var N=Yp(w),E=n.current,O="deltaX"in w?w.deltaX:E[0]-N[0],A="deltaY"in w?w.deltaY:E[1]-N[1],C,k=w.target,T=Math.abs(O)>Math.abs(A)?"h":"v";if("touches"in w&&T==="h"&&k.type==="range")return!1;var M=mL(T,k);if(!M)return!0;if(M?C=T:(C=T==="v"?"h":"v",M=mL(T,k)),!M)return!1;if(!r.current&&"changedTouches"in w&&(O||A)&&(r.current=C),!C)return!0;var R=r.current||C;return gxe(R,b,w,R==="h"?O:A)},[]),d=y.useCallback(function(w){var b=w;if(!(!Tc.length||Tc[Tc.length-1]!==s)){var N="deltaY"in b?pL(b):Yp(b),E=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&yxe(C.delta,N)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var O=(l.current.shards||[]).map(vL).filter(Boolean).filter(function(C){return C.contains(b.target)}),A=O.length>0?u(b,O[0]):!l.current.noIsolation;A&&b.cancelable&&b.preventDefault()}}},[]),f=y.useCallback(function(w,b,N,E){var O={name:w,delta:b,target:N,should:E,shadowParent:jxe(N)};t.current.push(O),setTimeout(function(){t.current=t.current.filter(function(A){return A!==O})},1)},[]),m=y.useCallback(function(w){n.current=Yp(w),r.current=void 0},[]),p=y.useCallback(function(w){f(w.type,pL(w),w.target,u(w,e.lockRef.current))},[]),g=y.useCallback(function(w){f(w.type,Yp(w),w.target,u(w,e.lockRef.current))},[]);y.useEffect(function(){return Tc.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Ac),document.addEventListener("touchmove",d,Ac),document.addEventListener("touchstart",m,Ac),function(){Tc=Tc.filter(function(w){return w!==s}),document.removeEventListener("wheel",d,Ac),document.removeEventListener("touchmove",d,Ac),document.removeEventListener("touchstart",m,Ac)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(s,{styles:xxe(a)}):null,x?y.createElement(uxe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function jxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Sxe=Zye(DF,wxe);var Xh=y.forwardRef(function(e,t){return y.createElement(By,si({},e,{ref:t,sideCar:Sxe}))});Xh.classNames=By.classNames;var _xe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},kc=new WeakMap,Kp=new WeakMap,Xp={},i_=0,zF=function(e){return e&&(e.host||zF(e.parentNode))},Nxe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=zF(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Cxe=function(e,t,n,r){var a=Nxe(t,Array.isArray(e)?e:[e]);Xp[n]||(Xp[n]=new WeakMap);var s=Xp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",w=(kc.get(g)||0)+1,b=(s.get(g)||0)+1;kc.set(g,w),s.set(g,b),l.push(g),w===1&&j&&Kp.set(g,!0),b===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),i_++,function(){l.forEach(function(p){var g=kc.get(p)-1,x=s.get(p)-1;kc.set(p,g),s.set(p,x),g||(Kp.has(p)||p.removeAttribute(r),Kp.delete(p)),x||p.removeAttribute(n)}),i_--,i_||(kc=new WeakMap,kc=new WeakMap,Kp=new WeakMap,Xp={})}},zy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=_xe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),Cxe(r,a,n,"aria-hidden")):function(){return null}};function Oxe(e){const t=Exe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Txe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function Exe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=Mxe(a),u=kxe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Axe=Symbol("radix.slottable");function Txe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Axe}function kxe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function Mxe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var qy="Dialog",[qF,FF]=gr(qy),[Pxe,Za]=qF(qy),UF=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:qy});return i.jsx(Pxe,{scope:t,triggerRef:u,contentRef:d,contentId:Gn(),titleId:Gn(),descriptionId:Gn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};UF.displayName=qy;var HF="DialogTrigger",WF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(HF,n),s=Ue(t,a.triggerRef);return i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":fE(a.open),...r,ref:s,onClick:_e(e.onClick,a.onOpenToggle)})});WF.displayName=HF;var uE="DialogPortal",[Rxe,VF]=qF(uE,{forceMount:void 0}),GF=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=Za(uE,t);return i.jsx(Rxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:l})}))})};GF.displayName=uE;var kg="DialogOverlay",YF=y.forwardRef((e,t)=>{const n=VF(kg,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Za(kg,e.__scopeDialog);return s.modal?i.jsx(Bn,{present:r||s.open,children:i.jsx($xe,{...a,ref:t})}):null});YF.displayName=kg;var Dxe=Oxe("DialogOverlay.RemoveScroll"),$xe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(kg,n);return i.jsx(Xh,{as:Dxe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx($e.div,{"data-state":fE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),yl="DialogContent",KF=y.forwardRef((e,t)=>{const n=VF(yl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Za(yl,e.__scopeDialog);return i.jsx(Bn,{present:r||s.open,children:s.modal?i.jsx(Ixe,{...a,ref:t}):i.jsx(Lxe,{...a,ref:t})})});KF.displayName=yl;var Ixe=y.forwardRef((e,t)=>{const n=Za(yl,e.__scopeDialog),r=y.useRef(null),a=Ue(t,n.contentRef,r);return y.useEffect(()=>{const s=r.current;if(s)return zy(s)},[]),i.jsx(XF,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:_e(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:_e(e.onPointerDownOutside,s=>{const l=s.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&s.preventDefault()}),onFocusOutside:_e(e.onFocusOutside,s=>s.preventDefault())})}),Lxe=y.forwardRef((e,t)=>{const n=Za(yl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(XF,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),XF=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...l}=e,u=Za(yl,n),d=y.useRef(null),f=Ue(t,d);return Ly(),i.jsxs(i.Fragment,{children:[i.jsx(Kh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Al,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":fE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(zxe,{titleId:u.titleId}),i.jsx(Fxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),dE="DialogTitle",ZF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(dE,n);return i.jsx($e.h2,{id:a.titleId,...r,ref:t})});ZF.displayName=dE;var QF="DialogDescription",JF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(QF,n);return i.jsx($e.p,{id:a.descriptionId,...r,ref:t})});JF.displayName=QF;var e8="DialogClose",t8=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(e8,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,()=>a.onOpenChange(!1))})});t8.displayName=e8;function fE(e){return e?"open":"closed"}var n8="DialogTitleWarning",[Bxe,r8]=mZ(n8,{contentName:yl,titleName:dE,docsSlug:"dialog"}),zxe=({titleId:e})=>{const t=r8(n8),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},qxe="DialogDescriptionWarning",Fxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r8(qxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},hE=UF,a8=WF,mE=GF,Fy=YF,Uy=KF,pE=ZF,vE=JF,gE=t8;const sr=hE,i8=a8,Uxe=mE,s8=y.forwardRef(({className:e,...t},n)=>i.jsx(Fy,{ref:n,className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));s8.displayName=Fy.displayName;const Kn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Uxe,{children:[i.jsx(s8,{}),i.jsxs(Uy,{ref:r,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(gE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Yh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Kn.displayName=Uy.displayName;const Xn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Xn.displayName="DialogHeader";const Br=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Br.displayName="DialogFooter";const Zn=y.forwardRef(({className:e,...t},n)=>i.jsx(pE,{ref:n,className:ce("text-lg font-semibold leading-none tracking-tight",e),...t}));Zn.displayName=pE.displayName;const vr=y.forwardRef(({className:e,...t},n)=>i.jsx(vE,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));vr.displayName=vE.displayName;var Hxe=Symbol("radix.slottable");function Wxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Hxe,t}var o8="AlertDialog",[Vxe]=gr(o8,[FF]),vs=FF(),l8=e=>{const{__scopeAlertDialog:t,...n}=e,r=vs(t);return i.jsx(hE,{...r,...n,modal:!0})};l8.displayName=o8;var Gxe="AlertDialogTrigger",c8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(a8,{...a,...r,ref:t})});c8.displayName=Gxe;var Yxe="AlertDialogPortal",u8=e=>{const{__scopeAlertDialog:t,...n}=e,r=vs(t);return i.jsx(mE,{...r,...n})};u8.displayName=Yxe;var Kxe="AlertDialogOverlay",d8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(Fy,{...a,...r,ref:t})});d8.displayName=Kxe;var Zc="AlertDialogContent",[Xxe,Zxe]=Vxe(Zc),Qxe=Wxe("AlertDialogContent"),f8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,s=vs(n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return i.jsx(Bxe,{contentName:Zc,titleName:h8,docsSlug:"alert-dialog",children:i.jsx(Xxe,{scope:n,cancelRef:d,children:i.jsxs(Uy,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:_e(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(Qxe,{children:r}),i.jsx(ebe,{contentRef:l})]})})})});f8.displayName=Zc;var h8="AlertDialogTitle",m8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(pE,{...a,...r,ref:t})});m8.displayName=h8;var p8="AlertDialogDescription",v8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(vE,{...a,...r,ref:t})});v8.displayName=p8;var Jxe="AlertDialogAction",g8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(gE,{...a,...r,ref:t})});g8.displayName=Jxe;var y8="AlertDialogCancel",x8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=Zxe(y8,n),s=vs(n),l=Ue(t,a);return i.jsx(gE,{...s,...r,ref:l})});x8.displayName=y8;var ebe=({contentRef:e})=>{const t=`\`${Zc}\` requires a description for the component to be accessible for screen reader users. + +You can add a description to the \`${Zc}\` by passing a \`${p8}\` component as a child, which also benefits sighted users by adding visible context to the dialog. + +Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Zc}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. + +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},tbe=l8,nbe=c8,rbe=u8,b8=d8,w8=f8,j8=g8,S8=x8,_8=m8,N8=v8;const bn=tbe,mr=nbe,abe=rbe,C8=y.forwardRef(({className:e,...t},n)=>i.jsx(b8,{className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));C8.displayName=b8.displayName;const cn=y.forwardRef(({className:e,...t},n)=>i.jsxs(abe,{children:[i.jsx(C8,{}),i.jsx(w8,{ref:n,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));cn.displayName=w8.displayName;const un=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-2 text-center sm:text-left",e),...t});un.displayName="AlertDialogHeader";const dn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});dn.displayName="AlertDialogFooter";const fn=y.forwardRef(({className:e,...t},n)=>i.jsx(_8,{ref:n,className:ce("text-lg font-semibold",e),...t}));fn.displayName=_8.displayName;const hn=y.forwardRef(({className:e,...t},n)=>i.jsx(N8,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));hn.displayName=N8.displayName;const mn=y.forwardRef(({className:e,...t},n)=>i.jsx(j8,{ref:n,className:ce(xh(),e),...t}));mn.displayName=j8.displayName;const pn=y.forwardRef(({className:e,...t},n)=>i.jsx(S8,{ref:n,className:ce(xh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));pn.displayName=S8.displayName;function ibe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(dl,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Rt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(pF,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Rt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx($ge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Rt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Fa,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Rt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Mu,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Wt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(sn,{value:"appearance",className:"mt-0",children:i.jsx(sbe,{})}),i.jsx(sn,{value:"security",className:"mt-0",children:i.jsx(obe,{})}),i.jsx(sn,{value:"other",className:"mt-0",children:i.jsx(lbe,{})}),i.jsx(sn,{value:"about",className:"mt-0",children:i.jsx(cbe,{})})]})]})]})}function gL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=s=>{s=s.replace("#","");const l=parseInt(s.substring(0,2),16)/255,u=parseInt(s.substring(2,4),16)/255,d=parseInt(s.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";gL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),gL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(s_,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(s_,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(s_,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Sa,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(Sa,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(Sa,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(Sa,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(Sa,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(Sa,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Sa,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(Sa,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(Sa,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(Sa,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(Sa,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(Sa,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ne,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(Q,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(lt,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(Q,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(lt,{id:"waves-background",checked:a,onCheckedChange:s})]})})]})]})]})}function obe(){const e=la(),[t,n]=y.useState(""),[r,a]=y.useState(""),[s,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(""),[O,A]=y.useState(!1),{toast:C}=yr(),k=y.useMemo(()=>jye(r),[r]),T=()=>localStorage.getItem("access-token")||"",M=async q=>{try{await navigator.clipboard.writeText(q),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},R=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const q=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${q}`,variant:"destructive"});return}m(!0);try{const q=T(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`},body:JSON.stringify({new_token:r.trim()})}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:L.message||"无法更新 Token",variant:"destructive"})}catch(q){console.error("更新 Token 错误:",q),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},B=async()=>{g(!0);try{const q=T(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`}}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",L.token),n(L.token),E(L.token),b(!0),A(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:L.message||"无法生成新 Token",variant:"destructive"})}catch(q){console.error("生成 Token 错误:",q),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},$=async()=>{try{await navigator.clipboard.writeText(N),A(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},H=()=>{b(!1),setTimeout(()=>{E(""),A(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=q=>{q||H()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(sr,{open:w,onOpenChange:V,children:i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(Kc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(vr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(Q,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Kc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs(Br,{className:"gap-2 sm:gap-0",children:[i.jsx(oe,{variant:"outline",onClick:$,className:"gap-2",children:O?i.jsxs(i.Fragment,{children:[i.jsx(ol,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(ZN,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(oe,{onClick:H,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ne,{id:"current-token",type:s?"text":"password",value:t||T(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(T()),l(!s)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:s?"隐藏":"显示",children:s?i.jsx(JN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(oe,{variant:"outline",size:"icon",onClick:()=>M(T()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(ol,{className:"h-4 w-4 text-green-500"}):i.jsx(ZN,{className:"h-4 w-4"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(is,{className:ce("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重新生成 Token"}),i.jsx(hn,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:B,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ne,{id:"new-token",type:u?"text":"password",value:r,onChange:q=>a(q.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(JN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(q=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[q.passed?i.jsx(Pr,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(XN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:ce(q.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:q.label})]},q.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(ol,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(oe,{onClick:R,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function lbe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const s=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${s}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(s){console.error("重置配置状态错误:",s),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(Cge,{className:ce("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重新配置"}),i.jsx(hn,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function cbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",cE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",lE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Wt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(an,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(an,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(an,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(an,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(an,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(an,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(an,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(an,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(an,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(an,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(an,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(an,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(an,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(an,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(an,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(an,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function an({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function s_({value:e,current:t,onChange:n,label:r,description:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function Sa({value:e,current:t,onChange:n,label:r,colorClass:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:ce("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class ube{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const s=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),s),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),s),l)}}function dbe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new ube(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,s=e.current;if(!a||!s)return;const l=r.current,u=()=>{const w=a.getBoundingClientRect();l.bounding=w,s.style.width=`${w.width}px`,s.style.height=`${w.height}px`},d=()=>{if(!l.bounding)return;const{width:w,height:b}=l.bounding;l.lines=[],l.paths.forEach(R=>R.remove()),l.paths=[];const N=10,E=32,O=w+200,A=b+30,C=Math.ceil(O/N),k=Math.ceil(A/E),T=(w-N*C)/2,M=(b-E*k)/2;for(let R=0;R<=C;R++){const B=[];for(let H=0;H<=k;H++){const V={x:T+N*R,y:M+E*H,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};B.push(V)}const $=document.createElementNS("http://www.w3.org/2000/svg","path");s.appendChild($),l.paths.push($),l.lines.push(B)}},f=w=>{const{lines:b,mouse:N,noise:E}=l;b.forEach(O=>{O.forEach(A=>{const C=E.perlin2((A.x+w*.0125)*.002,(A.y+w*.005)*.0015)*12;A.wave.x=Math.cos(C)*32,A.wave.y=Math.sin(C)*16;const k=A.x-N.sx,T=A.y-N.sy,M=Math.hypot(k,T),R=Math.max(175,N.vs);if(M{const N={x:w.x+w.wave.x+(b?w.cursor.x:0),y:w.y+w.wave.y+(b?w.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:w,paths:b}=l;w.forEach((N,E)=>{let O=m(N[0],!1),A=`M ${O.x} ${O.y}`;N.forEach((C,k)=>{const T=k===N.length-1;O=m(C,!T),A+=`L ${O.x} ${O.y}`}),b[E].setAttribute("d",A)})},g=w=>{const{mouse:b}=l;b.sx+=(b.x-b.sx)*.1,b.sy+=(b.y-b.sy)*.1;const N=b.x-b.lx,E=b.y-b.ly,O=Math.hypot(N,E);b.v=O,b.vs+=(O-b.vs)*.1,b.vs=Math.min(100,b.vs),b.lx=b.x,b.ly=b.y,b.a=Math.atan2(E,N),a&&(a.style.setProperty("--x",`${b.sx}px`),a.style.setProperty("--y",`${b.sy}px`)),f(w),p(),n.current=requestAnimationFrame(g)},x=w=>{if(!l.bounding)return;const{mouse:b}=l;b.x=w.pageX-l.bounding.left,b.y=w.pageY-l.bounding.top+window.scrollY,b.set||(b.sx=b.x,b.sy=b.y,b.lx=b.x,b.ly=b.y,b.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` + path { + fill: none; + stroke: hsl(var(--primary) / 0.20); + stroke-width: 1px; + } + `})})]})}function fbe(){const e=la();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function O8(){return!!localStorage.getItem("access-token")}function hbe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,s]=y.useState(""),l=la(),{enableWavesBackground:u,setEnableWavesBackground:d}=bF(),{theme:f,setTheme:m}=oE();y.useEffect(()=>{O8()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async w=>{if(w.preventDefault(),s(""),!e.trim()){s("请输入 Access Token");return}r(!0);try{const b=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await b.json();if(b.ok&&N.valid){localStorage.setItem("access-token",e.trim());const E=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),O=await E.json();E.ok&&O.is_first_setup?l({to:"/setup"}):l({to:"/"})}else s(N.message||"Token 验证失败,请检查后重试")}catch(b){console.error("Token 验证错误:",b),s("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(dbe,{}),i.jsxs(Xe,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(nC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(tC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(pt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(JI,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(vt,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(Wn,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(Ct,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx(oge,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ne,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:w=>t(w.target.value),className:ce("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(gl,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(oe,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(sr,{children:[i.jsx(i8,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(Bve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(JI,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(vr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(Yge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(rE,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(gl,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(yh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsxs(fn,{className:"flex items-center gap-2",children:[i.jsx(yh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(hn,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:Sye})})]})}const Xt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Xt.displayName="Textarea";var mbe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pbe=mbe.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),vbe="Separator",yL="horizontal",gbe=["horizontal","vertical"],E8=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=yL,...a}=e,s=ybe(r)?r:yL,u=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return i.jsx(pbe.div,{"data-orientation":s,...u,...a,ref:t})});E8.displayName=vbe;function ybe(e){return gbe.includes(e)}var A8=E8;const bh=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(A8,{ref:a,decorative:n,orientation:t,className:ce("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));bh.displayName=A8.displayName;const xbe=Zu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Ft({className:e,variant:t,...n}){return i.jsx("div",{className:ce(xbe({variant:t}),e),...n})}function bbe({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((s,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ne,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ne,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,s)=>i.jsxs(Ft,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(s),className:"ml-1 hover:text-destructive",children:i.jsx(Yh,{className:"h-3 w-3"})})]},s))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(oe,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function wbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Xt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Xt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Xt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(bh,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Xt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Xt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function jbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ne,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(lt,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(lt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(lt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function Sbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(lt,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(lt,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ne,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Xt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(lt,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function rt(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function dt(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function _be(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function Nbe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function Cbe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function Obe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},s=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:s.all_global??!0}}async function Ebe(e){const t=await rt("/api/webui/config/bot/section/bot",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function Abe(e){const t=await rt("/api/webui/config/bot/section/personality",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function Tbe(e){const t=await rt("/api/webui/config/bot/section/emoji",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function kbe(e){const t=[];t.push(rt("/api/webui/config/bot/section/tool",{method:"POST",headers:dt(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(rt("/api/webui/config/bot/section/jargon",{method:"POST",headers:dt(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(rt("/api/webui/config/bot/section/mood",{method:"POST",headers:dt(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const s=await a.json();throw new Error(s.detail||"保存其他配置失败")}return{success:!0}}async function xL(){const e=localStorage.getItem("access-token"),t=await rt("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function Mbe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState(0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.请控制你的发言频率,不要太过频繁的发言 +4.如果有人对你感到厌烦,请减少回复 +5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.某句话如果已经被回复过,不要重复回复`}),[j,w]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[b,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),E=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:_ve},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:gF},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:sE},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Fa},{id:"complete",title:"完成设置",description:"后续配置提示",icon:yh}],O=(n+1)/E.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[$,H,V,q]=await Promise.all([_be(),Nbe(),Cbe(),Obe()]);p($),x(H),w(V),N(q)}catch($){t({title:"加载配置失败",description:$ instanceof Error?$.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const A=async()=>{u(!0);try{switch(n){case 0:await Ebe(m);break;case 1:await Abe(g);break;case 2:await Tbe(j);break;case 3:await kbe(b);break}return t({title:"保存成功",description:`${E[n].title}配置已保存`}),!0}catch(B){return t({title:"保存失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await A()&&n{n>0&&r(n-1)},T=async()=>{s(!0);try{if(!await A()){s(!1);return}await xL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(B){t({title:"完成失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}finally{s(!1)}},M=async()=>{try{await xL(),e({to:"/"})}catch(B){t({title:"跳过失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}},R=()=>{switch(n){case 0:return i.jsx(bbe,{config:m,onChange:p});case 1:return i.jsx(wbe,{config:g,onChange:x});case 2:return i.jsx(jbe,{config:j,onChange:w});case 3:return i.jsx(Sbe,{config:b,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(yh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(Uge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",cE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",E.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(O),"%"]})]}),i.jsx($h,{value:O,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:E.map((B,$)=>{const H=B.icon;return i.jsxs("div",{className:ce("flex flex-1 flex-col items-center gap-1 md:gap-2",$e({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(Ag,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(oe,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(fF,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var k8=["PageUp","PageDown"],M8=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],P8={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Qu="Slider",[iC,Pbe,Rbe]=Ph(Qu),[R8]=gr(Qu,[Rbe]),[Dbe,Hy]=R8(Qu),D8=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:s=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...w}=e,b=y.useRef(new Set),N=y.useRef(0),O=l==="horizontal"?$be:Ibe,[A=[],C]=Ea({prop:m,defaultProp:f,onChange:$=>{[...b.current][N.current]?.focus(),p($)}}),k=y.useRef(A);function T($){const H=Fbe(A,$);B($,H)}function M($){B($,N.current)}function R(){const $=k.current[N.current];A[N.current]!==$&&g(A)}function B($,H,{commit:V}={commit:!1}){const q=Vbe(s),G=Gbe(Math.round(($-r)/s)*s+r,q),L=Rf(G,[r,a]);C((D=[])=>{const U=zbe(D,L,H);if(Wbe(U,d*s)){N.current=U.indexOf(L);const K=String(U)!==String(D);return K&&V&&g(U),K?U:D}else return D})}return i.jsx(Dbe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:b.current,values:A,orientation:l,form:j,children:i.jsx(iC.Provider,{scope:e.__scopeSlider,children:i.jsx(iC.Slot,{scope:e.__scopeSlider,children:i.jsx(O,{"aria-disabled":u,"data-disabled":u?"":void 0,...w,ref:t,onPointerDown:_e(w.onPointerDown,()=>{u||(k.current=A)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:T,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:R,onHomeKeyDown:()=>!u&&B(r,0,{commit:!0}),onEndKeyDown:()=>!u&&B(a,A.length-1,{commit:!0}),onStepKeyDown:({event:$,direction:H})=>{if(!u){const G=k8.includes($.key)||$.shiftKey&&M8.includes($.key)?10:1,L=N.current,D=A[L],U=s*G*H;B(D+U,L,{commit:!0})}}})})})})});D8.displayName=Qu;var[$8,I8]=R8(Qu,{startEdge:"left",endEdge:"right",size:"width",direction:1}),$be=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:s,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=Ue(t,O=>g(O)),j=y.useRef(void 0),w=Fu(a),b=w==="ltr",N=b&&!s||!b&&s;function E(O){const A=j.current||p.getBoundingClientRect(),C=[0,A.width],T=yE(C,N?[n,r]:[r,n]);return j.current=A,T(O-A.left)}return i.jsx($8,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(L8,{dir:w,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:O=>{const A=E(O.clientX);l?.(A)},onSlideMove:O=>{const A=E(O.clientX);u?.(A)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:O=>{const C=P8[N?"from-left":"from-right"].includes(O.key);f?.({event:O,direction:C?-1:1})}})})}),Ibe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:s,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=Ue(t,m),g=y.useRef(void 0),x=!a;function j(w){const b=g.current||m.current.getBoundingClientRect(),N=[0,b.height],O=yE(N,x?[r,n]:[n,r]);return g.current=b,O(w-b.top)}return i.jsx($8,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(L8,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const b=j(w.clientY);s?.(b)},onSlideMove:w=>{const b=j(w.clientY);l?.(b)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:w=>{const N=P8[x?"from-bottom":"from-top"].includes(w.key);d?.({event:w,direction:N?-1:1})}})})}),L8=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:s,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=Hy(Qu,n);return i.jsx($e.span,{...f,ref:t,onKeyDown:_e(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):k8.concat(M8).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:_e(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:_e(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:_e(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),s(p))})})}),B8="SliderTrack",z8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Hy(B8,n);return i.jsx($e.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});z8.displayName=B8;var sC="SliderRange",q8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Hy(sC,n),s=I8(sC,n),l=y.useRef(null),u=Ue(t,l),d=a.values.length,f=a.values.map(g=>H8(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx($e.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[s.startEdge]:m+"%",[s.endEdge]:p+"%"}})});q8.displayName=sC;var oC="SliderThumb",F8=y.forwardRef((e,t)=>{const n=Pbe(e.__scopeSlider),[r,a]=y.useState(null),s=Ue(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(Lbe,{...e,ref:s,index:l})}),Lbe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...s}=e,l=Hy(oC,n),u=I8(oC,n),[d,f]=y.useState(null),m=Ue(t,E=>f(E)),p=d?l.form||!!d.closest("form"):!0,g=$y(d),x=l.values[r],j=x===void 0?0:H8(x,l.min,l.max),w=qbe(r,l.values.length),b=g?.[u.size],N=b?Ube(b,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(iC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx($e.span,{role:"slider","aria-label":e["aria-label"]||w,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...s,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:_e(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(U8,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});F8.displayName=oC;var Bbe="RadioBubbleInput",U8=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(a,r),l=Dy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.input,{style:{display:"none"},...n,ref:s,defaultValue:t})});U8.displayName=Bbe;function zbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,s)=>a-s)}function H8(e,t,n){const s=100/(n-t)*(e-t);return Rf(s,[0,100])}function qbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Fbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function Ube(e,t,n){const r=e/2,s=yE([0,50],[0,r]);return(r-s(t)*n)*n}function Hbe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Wbe(e,t){if(t>0){const n=Hbe(e);return Math.min(...n)>=t}return!0}function yE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Vbe(e){return(String(e).split(".")[1]||"").length}function Gbe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var W8=D8,Ybe=z8,Kbe=q8,Xbe=F8;const xE=y.forwardRef(({className:e,...t},n)=>i.jsxs(W8,{ref:n,className:ce("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(Ybe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Kbe,{className:"absolute h-full bg-primary"})}),i.jsx(Xbe,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));xE.displayName=W8.displayName;const Zbe=["top","right","bottom","left"],to=Math.min,na=Math.max,Mg=Math.round,Zp=Math.floor,gi=e=>({x:e,y:e}),Qbe={left:"right",right:"left",bottom:"top",top:"bottom"},Jbe={start:"end",end:"start"};function lC(e,t,n){return na(e,to(t,n))}function cs(e,t){return typeof e=="function"?e(t):e}function us(e){return e.split("-")[0]}function Ju(e){return e.split("-")[1]}function bE(e){return e==="x"?"y":"x"}function wE(e){return e==="y"?"height":"width"}const e0e=new Set(["top","bottom"]);function fi(e){return e0e.has(us(e))?"y":"x"}function jE(e){return bE(fi(e))}function t0e(e,t,n){n===void 0&&(n=!1);const r=Ju(e),a=jE(e),s=wE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Pg(l)),[l,Pg(l)]}function n0e(e){const t=Pg(e);return[cC(e),t,cC(t)]}function cC(e){return e.replace(/start|end/g,t=>Jbe[t])}const bL=["left","right"],wL=["right","left"],r0e=["top","bottom"],a0e=["bottom","top"];function i0e(e,t,n){switch(e){case"top":case"bottom":return n?t?wL:bL:t?bL:wL;case"left":case"right":return t?r0e:a0e;default:return[]}}function s0e(e,t,n,r){const a=Ju(e);let s=i0e(us(e),n==="start",r);return a&&(s=s.map(l=>l+"-"+a),t&&(s=s.concat(s.map(cC)))),s}function Pg(e){return e.replace(/left|right|bottom|top/g,t=>Qbe[t])}function o0e(e){return{top:0,right:0,bottom:0,left:0,...e}}function V8(e){return typeof e!="number"?o0e(e):{top:e,right:e,bottom:e,left:e}}function Rg(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function jL(e,t,n){let{reference:r,floating:a}=e;const s=fi(t),l=jE(t),u=wE(l),d=us(t),f=s==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(Ju(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const l0e=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:l}=n,u=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=jL(f,r,d),g=r,x={},j=0;for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=cs(e,t)||{};if(f==null)return{};const p=V8(m),g={x:n,y:r},x=jE(a),j=wE(x),w=await l.getDimensions(f),b=x==="y",N=b?"top":"left",E=b?"bottom":"right",O=b?"clientHeight":"clientWidth",A=s.reference[j]+s.reference[x]-g[x]-s.floating[j],C=g[x]-s.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let T=k?k[O]:0;(!T||!await(l.isElement==null?void 0:l.isElement(k)))&&(T=u.floating[O]||s.floating[j]);const M=A/2-C/2,R=T/2-w[j]/2-1,B=to(p[N],R),$=to(p[E],R),H=B,V=T-w[j]-$,q=T/2-w[j]/2+M,G=lC(H,q,V),L=!d.arrow&&Ju(a)!=null&&q!==G&&s.reference[j]/2-(qq<=0)){var $,H;const q=((($=s.flip)==null?void 0:$.index)||0)+1,G=T[q];if(G&&(!(p==="alignment"?E!==fi(G):!1)||B.every(U=>fi(U.placement)===E?U.overflows[0]>0:!0)))return{data:{index:q,overflows:B},reset:{placement:G}};let L=(H=B.filter(D=>D.overflows[0]<=0).sort((D,U)=>D.overflows[1]-U.overflows[1])[0])==null?void 0:H.placement;if(!L)switch(x){case"bestFit":{var V;const D=(V=B.filter(U=>{if(k){const K=fi(U.placement);return K===E||K==="y"}return!0}).map(U=>[U.placement,U.overflows.filter(K=>K>0).reduce((K,J)=>K+J,0)]).sort((U,K)=>U[1]-K[1])[0])==null?void 0:V[0];D&&(L=D);break}case"initialPlacement":L=u;break}if(a!==L)return{reset:{placement:L}}}return{}}}};function SL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function _L(e){return Zbe.some(t=>e[t]>=0)}const d0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=cs(e,t);switch(r){case"referenceHidden":{const s=await wh(t,{...a,elementContext:"reference"}),l=SL(s,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:_L(l)}}}case"escaped":{const s=await wh(t,{...a,altBoundary:!0}),l=SL(s,n.floating);return{data:{escapedOffsets:l,escaped:_L(l)}}}default:return{}}}}},G8=new Set(["left","top"]);async function f0e(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=us(n),u=Ju(n),d=fi(n)==="y",f=G8.has(l)?-1:1,m=s&&d?-1:1,p=cs(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const h0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:l,middlewareData:u}=t,d=await f0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:s+d.y,data:{...d,placement:l}}}}},m0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:b=>{let{x:N,y:E}=b;return{x:N,y:E}}},...d}=cs(e,t),f={x:n,y:r},m=await wh(t,d),p=fi(us(a)),g=bE(p);let x=f[g],j=f[p];if(s){const b=g==="y"?"top":"left",N=g==="y"?"bottom":"right",E=x+m[b],O=x-m[N];x=lC(E,x,O)}if(l){const b=p==="y"?"top":"left",N=p==="y"?"bottom":"right",E=j+m[b],O=j-m[N];j=lC(E,j,O)}const w=u.fn({...t,[g]:x,[p]:j});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[g]:s,[p]:l}}}}}},p0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=cs(e,t),m={x:n,y:r},p=fi(a),g=bE(p);let x=m[g],j=m[p];const w=cs(u,t),b=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const O=g==="y"?"height":"width",A=s.reference[g]-s.floating[O]+b.mainAxis,C=s.reference[g]+s.reference[O]-b.mainAxis;xC&&(x=C)}if(f){var N,E;const O=g==="y"?"width":"height",A=G8.has(us(a)),C=s.reference[p]-s.floating[O]+(A&&((N=l.offset)==null?void 0:N[p])||0)+(A?0:b.crossAxis),k=s.reference[p]+s.reference[O]+(A?0:((E=l.offset)==null?void 0:E[p])||0)-(A?b.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},v0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:l,elements:u}=t,{apply:d=()=>{},...f}=cs(e,t),m=await wh(t,f),p=us(a),g=Ju(a),x=fi(a)==="y",{width:j,height:w}=s.floating;let b,N;p==="top"||p==="bottom"?(b=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,b=g==="end"?"top":"bottom");const E=w-m.top-m.bottom,O=j-m.left-m.right,A=to(w-m[b],E),C=to(j-m[N],O),k=!t.middlewareData.shift;let T=A,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=O),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=E),k&&!g){const B=na(m.left,0),$=na(m.right,0),H=na(m.top,0),V=na(m.bottom,0);x?M=j-2*(B!==0||$!==0?B+$:na(m.left,m.right)):T=w-2*(H!==0||V!==0?H+V:na(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:T});const R=await l.getDimensions(u.floating);return j!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function Wy(){return typeof window<"u"}function ed(e){return Y8(e)?(e.nodeName||"").toLowerCase():"#document"}function sa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ni(e){var t;return(t=(Y8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Y8(e){return Wy()?e instanceof Node||e instanceof sa(e).Node:!1}function Ga(e){return Wy()?e instanceof Element||e instanceof sa(e).Element:!1}function wi(e){return Wy()?e instanceof HTMLElement||e instanceof sa(e).HTMLElement:!1}function NL(e){return!Wy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof sa(e).ShadowRoot}const g0e=new Set(["inline","contents"]);function Zh(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Ya(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!g0e.has(a)}const y0e=new Set(["table","td","th"]);function x0e(e){return y0e.has(ed(e))}const b0e=[":popover-open",":modal"];function Vy(e){return b0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const w0e=["transform","translate","scale","rotate","perspective"],j0e=["transform","translate","scale","rotate","perspective","filter"],S0e=["paint","layout","strict","content"];function SE(e){const t=_E(),n=Ga(e)?Ya(e):e;return w0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||j0e.some(r=>(n.willChange||"").includes(r))||S0e.some(r=>(n.contain||"").includes(r))}function _0e(e){let t=no(e);for(;wi(t)&&!Du(t);){if(SE(t))return t;if(Vy(t))return null;t=no(t)}return null}function _E(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const N0e=new Set(["html","body","#document"]);function Du(e){return N0e.has(ed(e))}function Ya(e){return sa(e).getComputedStyle(e)}function Gy(e){return Ga(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function no(e){if(ed(e)==="html")return e;const t=e.assignedSlot||e.parentNode||NL(e)&&e.host||Ni(e);return NL(t)?t.host:t}function K8(e){const t=no(e);return Du(t)?e.ownerDocument?e.ownerDocument.body:e.body:wi(t)&&Zh(t)?t:K8(t)}function jh(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=K8(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),l=sa(a);if(s){const u=uC(l);return t.concat(l,l.visualViewport||[],Zh(a)?a:[],u&&n?jh(u):[])}return t.concat(a,jh(a,[],n))}function uC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function X8(e){const t=Ya(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=wi(e),s=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Mg(n)!==s||Mg(r)!==l;return u&&(n=s,r=l),{width:n,height:r,$:u}}function NE(e){return Ga(e)?e:e.contextElement}function Qc(e){const t=NE(e);if(!wi(t))return gi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=X8(t);let l=(s?Mg(n.width):n.width)/r,u=(s?Mg(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const C0e=gi(0);function Z8(e){const t=sa(e);return!_E()||!t.visualViewport?C0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function O0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==sa(e)?!1:t}function xl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=NE(e);let l=gi(1);t&&(r?Ga(r)&&(l=Qc(r)):l=Qc(e));const u=O0e(s,n,r)?Z8(s):gi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(s){const g=sa(s),x=r&&Ga(r)?sa(r):r;let j=g,w=uC(j);for(;w&&r&&x!==j;){const b=Qc(w),N=w.getBoundingClientRect(),E=Ya(w),O=N.left+(w.clientLeft+parseFloat(E.paddingLeft))*b.x,A=N.top+(w.clientTop+parseFloat(E.paddingTop))*b.y;d*=b.x,f*=b.y,m*=b.x,p*=b.y,d+=O,f+=A,j=sa(w),w=uC(j)}}return Rg({width:m,height:p,x:d,y:f})}function Yy(e,t){const n=Gy(e).scrollLeft;return t?t.left+n:xl(Ni(e)).left+n}function Q8(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Yy(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function E0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",l=Ni(r),u=t?Vy(t.floating):!1;if(r===l||u&&s)return n;let d={scrollLeft:0,scrollTop:0},f=gi(1);const m=gi(0),p=wi(r);if((p||!p&&!s)&&((ed(r)!=="body"||Zh(l))&&(d=Gy(r)),wi(r))){const x=xl(r);f=Qc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!s?Q8(l,d):gi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function A0e(e){return Array.from(e.getClientRects())}function T0e(e){const t=Ni(e),n=Gy(e),r=e.ownerDocument.body,a=na(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=na(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Yy(e);const u=-n.scrollTop;return Ya(r).direction==="rtl"&&(l+=na(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:l,y:u}}const CL=25;function k0e(e,t){const n=sa(e),r=Ni(e),a=n.visualViewport;let s=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){s=a.width,l=a.height;const m=_E();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Yy(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=CL&&(s-=j)}else f<=CL&&(s+=f);return{width:s,height:l,x:u,y:d}}const M0e=new Set(["absolute","fixed"]);function P0e(e,t){const n=xl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=wi(e)?Qc(e):gi(1),l=e.clientWidth*s.x,u=e.clientHeight*s.y,d=a*s.x,f=r*s.y;return{width:l,height:u,x:d,y:f}}function OL(e,t,n){let r;if(t==="viewport")r=k0e(e,n);else if(t==="document")r=T0e(Ni(e));else if(Ga(t))r=P0e(t,n);else{const a=Z8(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return Rg(r)}function J8(e,t){const n=no(e);return n===t||!Ga(n)||Du(n)?!1:Ya(n).position==="fixed"||J8(n,t)}function R0e(e,t){const n=t.get(e);if(n)return n;let r=jh(e,[],!1).filter(u=>Ga(u)&&ed(u)!=="body"),a=null;const s=Ya(e).position==="fixed";let l=s?no(e):e;for(;Ga(l)&&!Du(l);){const u=Ya(l),d=SE(l);!d&&u.position==="fixed"&&(a=null),(s?!d&&!a:!d&&u.position==="static"&&!!a&&M0e.has(a.position)||Zh(l)&&!d&&J8(e,l))?r=r.filter(m=>m!==l):a=u,l=no(l)}return t.set(e,r),r}function D0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?Vy(t)?[]:R0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=OL(t,m,a);return f.top=na(p.top,f.top),f.right=to(p.right,f.right),f.bottom=to(p.bottom,f.bottom),f.left=na(p.left,f.left),f},OL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function $0e(e){const{width:t,height:n}=X8(e);return{width:t,height:n}}function I0e(e,t,n){const r=wi(t),a=Ni(t),s=n==="fixed",l=xl(e,!0,s,t);let u={scrollLeft:0,scrollTop:0};const d=gi(0);function f(){d.x=Yy(a)}if(r||!r&&!s)if((ed(t)!=="body"||Zh(a))&&(u=Gy(t)),r){const x=xl(t,!0,s,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();s&&!r&&a&&f();const m=a&&!r&&!s?Q8(a,u):gi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function o_(e){return Ya(e).position==="static"}function EL(e,t){if(!wi(e)||Ya(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Ni(e)===n&&(n=n.ownerDocument.body),n}function eU(e,t){const n=sa(e);if(Vy(e))return n;if(!wi(e)){let a=no(e);for(;a&&!Du(a);){if(Ga(a)&&!o_(a))return a;a=no(a)}return n}let r=EL(e,t);for(;r&&x0e(r)&&o_(r);)r=EL(r,t);return r&&Du(r)&&o_(r)&&!SE(r)?n:r||_0e(e)||n}const L0e=async function(e){const t=this.getOffsetParent||eU,n=this.getDimensions,r=await n(e.floating);return{reference:I0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function B0e(e){return Ya(e).direction==="rtl"}const z0e={convertOffsetParentRelativeRectToViewportRelativeRect:E0e,getDocumentElement:Ni,getClippingRect:D0e,getOffsetParent:eU,getElementRects:L0e,getClientRects:A0e,getDimensions:$0e,getScale:Qc,isElement:Ga,isRTL:B0e};function tU(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function q0e(e,t){let n=null,r;const a=Ni(e);function s(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),s();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Zp(p),w=Zp(a.clientWidth-(m+g)),b=Zp(a.clientHeight-(p+x)),N=Zp(m),O={rootMargin:-j+"px "+-w+"px "+-b+"px "+-N+"px",threshold:na(0,to(1,d))||1};let A=!0;function C(k){const T=k[0].intersectionRatio;if(T!==d){if(!A)return l();T?l(!1,T):r=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!tU(f,e.getBoundingClientRect())&&l(),A=!1}try{n=new IntersectionObserver(C,{...O,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,O)}n.observe(e)}return l(!0),s}function F0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=NE(e),m=a||s?[...f?jh(f):[],...jh(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),s&&N.addEventListener("resize",n)});const p=f&&u?q0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[E]=N;E&&E.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var O;(O=x)==null||O.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,w=d?xl(e):null;d&&b();function b(){const N=xl(e);w&&!tU(w,N)&&n(),w=N,j=requestAnimationFrame(b)}return n(),()=>{var N;m.forEach(E=>{a&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const U0e=h0e,H0e=m0e,W0e=u0e,V0e=v0e,G0e=d0e,AL=c0e,Y0e=p0e,K0e=(e,t,n)=>{const r=new Map,a={platform:z0e,...n},s={...a.platform,_c:r};return l0e(e,t,{...a,platform:s})};var X0e=typeof document<"u",Z0e=function(){},mv=X0e?y.useLayoutEffect:Z0e;function Dg(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Dg(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!Dg(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function nU(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function TL(e,t){const n=nU(e);return Math.round(t*n)/n}function l_(e){const t=y.useRef(e);return mv(()=>{t.current=e}),t}function Q0e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);Dg(g,r)||x(r);const[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useCallback(U=>{U!==k.current&&(k.current=U,w(U))},[]),O=y.useCallback(U=>{U!==T.current&&(T.current=U,N(U))},[]),A=s||j,C=l||b,k=y.useRef(null),T=y.useRef(null),M=y.useRef(m),R=d!=null,B=l_(d),$=l_(a),H=l_(f),V=y.useCallback(()=>{if(!k.current||!T.current)return;const U={placement:t,strategy:n,middleware:g};$.current&&(U.platform=$.current),K0e(k.current,T.current,U).then(K=>{const J={...K,isPositioned:H.current!==!1};q.current&&!Dg(M.current,J)&&(M.current=J,Sl.flushSync(()=>{p(J)}))})},[g,t,n,$,H]);mv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(U=>({...U,isPositioned:!1})))},[f]);const q=y.useRef(!1);mv(()=>(q.current=!0,()=>{q.current=!1}),[]),mv(()=>{if(A&&(k.current=A),C&&(T.current=C),A&&C){if(B.current)return B.current(A,C,V);V()}},[A,C,V,B,R]);const G=y.useMemo(()=>({reference:k,floating:T,setReference:E,setFloating:O}),[E,O]),L=y.useMemo(()=>({reference:A,floating:C}),[A,C]),D=y.useMemo(()=>{const U={position:n,left:0,top:0};if(!L.floating)return U;const K=TL(L.floating,m.x),J=TL(L.floating,m.y);return u?{...U,transform:"translate("+K+"px, "+J+"px)",...nU(L.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:K,top:J}},[n,u,L.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:L,floatingStyles:D}),[m,V,G,L,D])}const J0e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?AL({element:r.current,padding:a}).fn(n):{}:r?AL({element:r,padding:a}).fn(n):{}}}},ewe=(e,t)=>({...U0e(e),options:[e,t]}),twe=(e,t)=>({...H0e(e),options:[e,t]}),nwe=(e,t)=>({...Y0e(e),options:[e,t]}),rwe=(e,t)=>({...W0e(e),options:[e,t]}),awe=(e,t)=>({...V0e(e),options:[e,t]}),iwe=(e,t)=>({...G0e(e),options:[e,t]}),swe=(e,t)=>({...J0e(e),options:[e,t]});var owe="Arrow",rU=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return i.jsx($e.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});rU.displayName=owe;var lwe=rU,CE="Popper",[aU,ho]=gr(CE),[cwe,iU]=aU(CE),sU=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(cwe,{scope:t,anchor:r,onAnchorChange:a,children:n})};sU.displayName=CE;var oU="PopperAnchor",lU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=iU(oU,n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&s.onAnchorChange(d.current)}),r?null:i.jsx($e.div,{...a,ref:u})});lU.displayName=oU;var OE="PopperContent",[uwe,dwe]=aU(OE),cU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...w}=e,b=iU(OE,n),[N,E]=y.useState(null),O=Ue(t,ee=>E(ee)),[A,C]=y.useState(null),k=$y(A),T=k?.width??0,M=k?.height??0,R=r+(s!=="center"?"-"+s:""),B=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},$=Array.isArray(f)?f:[f],H=$.length>0,V={padding:B,boundary:$.filter(hwe),altBoundary:H},{refs:q,floatingStyles:G,placement:L,isPositioned:D,middlewareData:U}=Q0e({strategy:"fixed",placement:R,whileElementsMounted:(...ee)=>F0e(...ee,{animationFrame:x==="always"}),elements:{reference:b.anchor},middleware:[ewe({mainAxis:a+M,alignmentAxis:l}),d&&twe({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?nwe():void 0,...V}),d&&rwe({...V}),awe({...V,apply:({elements:ee,rects:Se,availableWidth:re,availableHeight:we})=>{const{width:je,height:fe}=Se.reference,Le=ee.floating.style;Le.setProperty("--radix-popper-available-width",`${re}px`),Le.setProperty("--radix-popper-available-height",`${we}px`),Le.setProperty("--radix-popper-anchor-width",`${je}px`),Le.setProperty("--radix-popper-anchor-height",`${fe}px`)}}),A&&swe({element:A,padding:u}),mwe({arrowWidth:T,arrowHeight:M}),g&&iwe({strategy:"referenceHidden",...V})]}),[K,J]=fU(L),I=ln(j);Yn(()=>{D&&I?.()},[D,I]);const z=U.arrow?.x,Y=U.arrow?.y,te=U.arrow?.centerOffset!==0,[ae,ge]=y.useState();return Yn(()=>{N&&ge(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:q.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:D?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ae,"--radix-popper-transform-origin":[U.transformOrigin?.x,U.transformOrigin?.y].join(" "),...U.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(uwe,{scope:n,placedSide:K,onArrowChange:C,arrowX:z,arrowY:Y,shouldHideArrow:te,children:i.jsx($e.div,{"data-side":K,"data-align":J,...w,ref:O,style:{...w.style,animation:D?void 0:"none"}})})})});cU.displayName=OE;var uU="PopperArrow",fwe={top:"bottom",right:"left",bottom:"top",left:"right"},dU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=dwe(uU,r),l=fwe[s.placedSide];return i.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:i.jsx(lwe,{...a,ref:n,style:{...a.style,display:"block"}})})});dU.displayName=uU;function hwe(e){return e!==null}var mwe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=fU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",w="";return f==="bottom"?(j=l?p:`${g}px`,w=`${-d}px`):f==="top"?(j=l?p:`${g}px`,w=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,w=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,w=l?p:`${x}px`),{data:{x:j,y:w}}}});function fU(e){const[t,n="center"]=e.split("-");return[t,n]}var Qh=sU,Jh=lU,Ky=cU,Xy=dU;function pwe(e){const t=vwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(ywe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=bwe(a),u=xwe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gwe=Symbol("radix.slottable");function ywe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gwe}function xwe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var hU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),wwe="VisuallyHidden",Zy=y.forwardRef((e,t)=>i.jsx($e.span,{...e,ref:t,style:{...hU,...e.style}}));Zy.displayName=wwe;var jwe=Zy,Swe=[" ","Enter","ArrowUp","ArrowDown"],_we=[" ","Enter"],bl="Select",[Qy,Jy,Nwe]=Ph(bl),[td]=gr(bl,[Nwe,ho]),ex=ho(),[Cwe,mo]=td(bl),[Owe,Ewe]=td(bl),mU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,w=ex(t),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),k=Fu(f),[T,M]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:bl}),[R,B]=Ea({prop:l,defaultProp:u,onChange:d,caller:bl}),$=y.useRef(null),H=b?j||!!b.closest("form"):!0,[V,q]=y.useState(new Set),G=Array.from(V).map(L=>L.props.value).join(";");return i.jsx(Qh,{...w,children:i.jsxs(Cwe,{required:x,scope:t,trigger:b,onTriggerChange:N,valueNode:E,onValueNodeChange:O,valueNodeHasChildren:A,onValueNodeHasChildrenChange:C,contentId:Gn(),value:R,onValueChange:B,open:T,onOpenChange:M,dir:k,triggerPointerDownPosRef:$,disabled:g,children:[i.jsx(Qy.Provider,{scope:t,children:i.jsx(Owe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback(L=>{q(D=>new Set(D).add(L))},[]),onNativeOptionRemove:y.useCallback(L=>{q(D=>{const U=new Set(D);return U.delete(L),U})},[]),children:n})}),H?i.jsxs(LU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:R,onChange:L=>B(L.target.value),disabled:g,form:j,children:[R===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};mU.displayName=bl;var pU="SelectTrigger",vU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=ex(n),l=mo(pU,n),u=l.disabled||r,d=Ue(t,l.onTriggerChange),f=Jy(n),m=y.useRef("touch"),[p,g,x]=zU(w=>{const b=f().filter(O=>!O.disabled),N=b.find(O=>O.value===l.value),E=qU(b,w,N);E!==void 0&&l.onValueChange(E.value)}),j=w=>{u||(l.onOpenChange(!0),x()),w&&(l.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return i.jsx(Jh,{asChild:!0,...s,children:i.jsx($e.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":BU(l.value)?"":void 0,...a,ref:d,onClick:_e(a.onClick,w=>{w.currentTarget.focus(),m.current!=="mouse"&&j(w)}),onPointerDown:_e(a.onPointerDown,w=>{m.current=w.pointerType;const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(j(w),w.preventDefault())}),onKeyDown:_e(a.onKeyDown,w=>{const b=p.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(b&&w.key===" ")&&Swe.includes(w.key)&&(j(),w.preventDefault())})})})});vU.displayName=pU;var gU="SelectValue",yU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:l="",...u}=e,d=mo(gU,n),{onValueNodeHasChildrenChange:f}=d,m=s!==void 0,p=Ue(t,d.onValueNodeChange);return Yn(()=>{f(m)},[f,m]),i.jsx($e.span,{...u,ref:p,style:{pointerEvents:"none"},children:BU(d.value)?i.jsx(i.Fragment,{children:l}):s})});yU.displayName=gU;var Awe="SelectIcon",xU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx($e.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});xU.displayName=Awe;var Twe="SelectPortal",bU=e=>i.jsx(Tl,{asChild:!0,...e});bU.displayName=Twe;var wl="SelectContent",wU=y.forwardRef((e,t)=>{const n=mo(wl,e.__scopeSelect),[r,a]=y.useState();if(Yn(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?Sl.createPortal(i.jsx(jU,{scope:e.__scopeSelect,children:i.jsx(Qy.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),s):null}return i.jsx(SU,{...e,ref:t})});wU.displayName=wl;var La=10,[jU,po]=td(wl),kwe="SelectContentImpl",Mwe=pwe("SelectContent.RemoveScroll"),SU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b,...N}=e,E=mo(wl,n),[O,A]=y.useState(null),[C,k]=y.useState(null),T=Ue(t,ee=>A(ee)),[M,R]=y.useState(null),[B,$]=y.useState(null),H=Jy(n),[V,q]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(O)return zy(O)},[O]),Ly();const L=y.useCallback(ee=>{const[Se,...re]=H().map(fe=>fe.ref.current),[we]=re.slice(-1),je=document.activeElement;for(const fe of ee)if(fe===je||(fe?.scrollIntoView({block:"nearest"}),fe===Se&&C&&(C.scrollTop=0),fe===we&&C&&(C.scrollTop=C.scrollHeight),fe?.focus(),document.activeElement!==je))return},[H,C]),D=y.useCallback(()=>L([M,O]),[L,M,O]);y.useEffect(()=>{V&&D()},[V,D]);const{onOpenChange:U,triggerPointerDownPosRef:K}=E;y.useEffect(()=>{if(O){let ee={x:0,y:0};const Se=we=>{ee={x:Math.abs(Math.round(we.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(we.pageY)-(K.current?.y??0))}},re=we=>{ee.x<=10&&ee.y<=10?we.preventDefault():O.contains(we.target)||U(!1),document.removeEventListener("pointermove",Se),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",Se),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Se),document.removeEventListener("pointerup",re,{capture:!0})}}},[O,U,K]),y.useEffect(()=>{const ee=()=>U(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[U]);const[J,I]=zU(ee=>{const Se=H().filter(je=>!je.disabled),re=Se.find(je=>je.ref.current===document.activeElement),we=qU(Se,ee,re);we&&setTimeout(()=>we.ref.current.focus())}),z=y.useCallback((ee,Se,re)=>{const we=!G.current&&!re;(E.value!==void 0&&E.value===Se||we)&&(R(ee),we&&(G.current=!0))},[E.value]),Y=y.useCallback(()=>O?.focus(),[O]),te=y.useCallback((ee,Se,re)=>{const we=!G.current&&!re;(E.value!==void 0&&E.value===Se||we)&&$(ee)},[E.value]),ae=r==="popper"?dC:_U,ge=ae===dC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b}:{};return i.jsx(jU,{scope:n,content:O,viewport:C,onViewportChange:k,itemRefCallback:z,selectedItem:M,onItemLeave:Y,itemTextRefCallback:te,focusSelectedItem:D,selectedItemText:B,position:r,isPositioned:V,searchRef:J,children:i.jsx(Xh,{as:Mwe,allowPinchZoom:!0,children:i.jsx(Kh,{asChild:!0,trapped:E.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:_e(a,ee=>{E.trigger?.focus({preventScroll:!0}),ee.preventDefault()}),children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:i.jsx(ae,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:ee=>ee.preventDefault(),...N,...ge,onPlaced:()=>q(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:_e(N.onKeyDown,ee=>{const Se=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!Se&&ee.key.length===1&&I(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let we=H().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(we=we.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const je=ee.target,fe=we.indexOf(je);we=we.slice(fe+1)}setTimeout(()=>L(we)),ee.preventDefault()}})})})})})})});SU.displayName=kwe;var Pwe="SelectItemAlignedPosition",_U=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=mo(wl,n),l=po(wl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=Ue(t,T=>m(T)),g=Jy(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:N,focusSelectedItem:E}=l,O=y.useCallback(()=>{if(s.trigger&&s.valueNode&&u&&f&&w&&b&&N){const T=s.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),B=N.getBoundingClientRect();if(s.dir!=="rtl"){const je=B.left-M.left,fe=R.left-je,Le=T.left-fe,Oe=T.width+Le,We=Math.max(Oe,M.width),be=window.innerWidth-La,Ae=Rf(fe,[La,Math.max(La,be-We)]);u.style.minWidth=Oe+"px",u.style.left=Ae+"px"}else{const je=M.right-B.right,fe=window.innerWidth-R.right-je,Le=window.innerWidth-T.right-fe,Oe=T.width+Le,We=Math.max(Oe,M.width),be=window.innerWidth-La,Ae=Rf(fe,[La,Math.max(La,be-We)]);u.style.minWidth=Oe+"px",u.style.right=Ae+"px"}const $=g(),H=window.innerHeight-La*2,V=w.scrollHeight,q=window.getComputedStyle(f),G=parseInt(q.borderTopWidth,10),L=parseInt(q.paddingTop,10),D=parseInt(q.borderBottomWidth,10),U=parseInt(q.paddingBottom,10),K=G+L+V+U+D,J=Math.min(b.offsetHeight*5,K),I=window.getComputedStyle(w),z=parseInt(I.paddingTop,10),Y=parseInt(I.paddingBottom,10),te=T.top+T.height/2-La,ae=H-te,ge=b.offsetHeight/2,ee=b.offsetTop+ge,Se=G+L+ee,re=K-Se;if(Se<=te){const je=$.length>0&&b===$[$.length-1].ref.current;u.style.bottom="0px";const fe=f.clientHeight-w.offsetTop-w.offsetHeight,Le=Math.max(ae,ge+(je?Y:0)+fe+D),Oe=Se+Le;u.style.height=Oe+"px"}else{const je=$.length>0&&b===$[0].ref.current;u.style.top="0px";const Le=Math.max(te,G+w.offsetTop+(je?z:0)+ge)+re;u.style.height=Le+"px",w.scrollTop=Se-te+w.offsetTop}u.style.margin=`${La}px 0`,u.style.minHeight=J+"px",u.style.maxHeight=H+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,s.trigger,s.valueNode,u,f,w,b,N,s.dir,r]);Yn(()=>O(),[O]);const[A,C]=y.useState();Yn(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(T=>{T&&j.current===!0&&(O(),E?.(),j.current=!1)},[O,E]);return i.jsx(Dwe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:i.jsx($e.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});_U.displayName=Pwe;var Rwe="SelectPopperPosition",dC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=La,...s}=e,l=ex(n);return i.jsx(Ky,{...l,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.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)"}})});dC.displayName=Rwe;var[Dwe,EE]=td(wl,{}),fC="SelectViewport",NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=po(fC,n),l=EE(fC,n),u=Ue(t,s.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(Qy.Slot,{scope:n,children:i.jsx($e.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:_e(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-La*2,w=parseFloat(p.style.minHeight),b=parseFloat(p.style.height),N=Math.max(w,b);if(N0?A:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});NU.displayName=fC;var CU="SelectGroup",[$we,Iwe]=td(CU),Lwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Gn();return i.jsx($we,{scope:n,id:a,children:i.jsx($e.div,{role:"group","aria-labelledby":a,...r,ref:t})})});Lwe.displayName=CU;var OU="SelectLabel",EU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Iwe(OU,n);return i.jsx($e.div,{id:a.id,...r,ref:t})});EU.displayName=OU;var $g="SelectItem",[Bwe,AU]=td($g),TU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...l}=e,u=mo($g,n),d=po($g,n),f=u.value===r,[m,p]=y.useState(s??""),[g,x]=y.useState(!1),j=Ue(t,E=>d.itemRefCallback?.(E,r,a)),w=Gn(),b=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Bwe,{scope:n,value:r,disabled:a,textId:w,isSelected:f,onItemTextChange:y.useCallback(E=>{p(O=>O||(E?.textContent??"").trim())},[]),children:i.jsx(Qy.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx($e.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:_e(l.onFocus,()=>x(!0)),onBlur:_e(l.onBlur,()=>x(!1)),onClick:_e(l.onClick,()=>{b.current!=="mouse"&&N()}),onPointerUp:_e(l.onPointerUp,()=>{b.current==="mouse"&&N()}),onPointerDown:_e(l.onPointerDown,E=>{b.current=E.pointerType}),onPointerMove:_e(l.onPointerMove,E=>{b.current=E.pointerType,a?d.onItemLeave?.():b.current==="mouse"&&E.currentTarget.focus({preventScroll:!0})}),onPointerLeave:_e(l.onPointerLeave,E=>{E.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:_e(l.onKeyDown,E=>{d.searchRef?.current!==""&&E.key===" "||(_we.includes(E.key)&&N(),E.key===" "&&E.preventDefault())})})})})});TU.displayName=$g;var yf="SelectItemText",kU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,l=mo(yf,n),u=po(yf,n),d=AU(yf,n),f=Ewe(yf,n),[m,p]=y.useState(null),g=Ue(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return Yn(()=>(w(j),()=>b(j)),[w,b,j]),i.jsxs(i.Fragment,{children:[i.jsx($e.span,{id:d.textId,...s,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Sl.createPortal(s.children,l.valueNode):null]})});kU.displayName=yf;var MU="SelectItemIndicator",PU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return AU(MU,n).isSelected?i.jsx($e.span,{"aria-hidden":!0,...r,ref:t}):null});PU.displayName=MU;var hC="SelectScrollUpButton",RU=y.forwardRef((e,t)=>{const n=po(hC,e.__scopeSelect),r=EE(hC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;s(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx($U,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});RU.displayName=hC;var mC="SelectScrollDownButton",DU=y.forwardRef((e,t)=>{const n=po(mC,e.__scopeSelect),r=EE(mC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx($U,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});DU.displayName=mC;var $U=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=po("SelectScrollButton",n),l=y.useRef(null),u=Jy(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Yn(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx($e.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:_e(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:_e(a.onPointerMove,()=>{s.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:_e(a.onPointerLeave,()=>{d()})})}),zwe="SelectSeparator",IU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx($e.div,{"aria-hidden":!0,...r,ref:t})});IU.displayName=zwe;var pC="SelectArrow",qwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=ex(n),s=mo(pC,n),l=po(pC,n);return s.open&&l.position==="popper"?i.jsx(Xy,{...a,...r,ref:t}):null});qwe.displayName=pC;var Fwe="SelectBubbleInput",LU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(r,a),l=Dy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.select,{...n,style:{...hU,...n.style},ref:s,defaultValue:t})});LU.displayName=Fwe;function BU(e){return e===""||e===void 0}function zU(e){const t=ln(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),s=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}function qU(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=Uwe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function Uwe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Hwe=mU,FU=vU,Wwe=yU,Vwe=xU,Gwe=bU,UU=wU,Ywe=NU,HU=EU,WU=TU,Kwe=kU,Xwe=PU,VU=RU,GU=DU,YU=IU;const Dt=Hwe,$t=Wwe,Ot=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(FU,{ref:r,className:ce("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx(Vwe,{asChild:!0,children:i.jsx(vh,{className:"h-4 w-4 opacity-50"})})]}));Ot.displayName=FU.displayName;const KU=y.forwardRef(({className:e,...t},n)=>i.jsx(VU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(KN,{className:"h-4 w-4"})}));KU.displayName=VU.displayName;const XU=y.forwardRef(({className:e,...t},n)=>i.jsx(GU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(vh,{className:"h-4 w-4"})}));XU.displayName=GU.displayName;const Et=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(Gwe,{children:i.jsxs(UU,{ref:a,className:ce("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(KU,{}),i.jsx(Ywe,{className:ce("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(XU,{})]})}));Et.displayName=UU.displayName;const Zwe=y.forwardRef(({className:e,...t},n)=>i.jsx(HU,{ref:n,className:ce("px-2 py-1.5 text-sm font-semibold",e),...t}));Zwe.displayName=HU.displayName;const De=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(WU,{ref:r,className:ce("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Xwe,{children:i.jsx(ol,{className:"h-4 w-4"})})}),i.jsx(Kwe,{children:t})]}));De.displayName=WU.displayName;const Qwe=y.forwardRef(({className:e,...t},n)=>i.jsx(YU,{ref:n,className:ce("-mx-1 my-1 h-px bg-muted",e),...t}));Qwe.displayName=YU.displayName;function Jwe(e){const t=eje(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(nje);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function eje(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=aje(a),u=rje(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tje=Symbol("radix.slottable");function nje(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tje}function rje(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function aje(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var tx="Popover",[ZU]=gr(tx,[ho]),em=ho(),[ije,vo]=ZU(tx),QU=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=em(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:tx});return i.jsx(Qh,{...u,children:i.jsx(ije,{scope:t,contentId:Gn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};QU.displayName=tx;var JU="PopoverAnchor",sje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(JU,n),s=em(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(Jh,{...s,...r,ref:t})});sje.displayName=JU;var eH="PopoverTrigger",tH=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(eH,n),s=em(n),l=Ue(t,a.triggerRef),u=i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":sH(a.open),...r,ref:l,onClick:_e(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(Jh,{asChild:!0,...s,children:u})});tH.displayName=eH;var AE="PopoverPortal",[oje,lje]=ZU(AE,{forceMount:void 0}),nH=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,s=vo(AE,t);return i.jsx(oje,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};nH.displayName=AE;var $u="PopoverContent",rH=y.forwardRef((e,t)=>{const n=lje($u,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,s=vo($u,e.__scopePopover);return i.jsx(Bn,{present:r||s.open,children:s.modal?i.jsx(uje,{...a,ref:t}):i.jsx(dje,{...a,ref:t})})});rH.displayName=$u;var cje=Jwe("PopoverContent.RemoveScroll"),uje=y.forwardRef((e,t)=>{const n=vo($u,e.__scopePopover),r=y.useRef(null),a=Ue(t,r),s=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return zy(l)},[]),i.jsx(Xh,{as:cje,allowPinchZoom:!0,children:i.jsx(aH,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:_e(e.onCloseAutoFocus,l=>{l.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:_e(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;s.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:_e(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),dje=y.forwardRef((e,t)=>{const n=vo($u,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(aH,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),aH=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=vo($u,n),x=em(n);return Ly(),i.jsx(Kh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Ky,{"data-state":sH(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),iH="PopoverClose",fje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(iH,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,()=>a.onOpenChange(!1))})});fje.displayName=iH;var hje="PopoverArrow",mje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=em(n);return i.jsx(Xy,{...a,...r,ref:t})});mje.displayName=hje;function sH(e){return e?"open":"closed"}var pje=QU,vje=tH,gje=nH,oH=rH;const ro=pje,ao=vje,ds=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(gje,{children:i.jsx(oH,{ref:a,align:t,sideOffset:n,className:ce("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));ds.displayName=oH.displayName;const nd="/api/webui/config";async function yje(){const t=await(await rt(`${nd}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function Jc(){const t=await(await rt(`${nd}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function kL(e){const n=await(await rt(`${nd}/bot`,{method:"POST",headers:dt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function Ig(e){const n=await(await rt(`${nd}/model`,{method:"POST",headers:dt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function xje(e,t){const r=await(await rt(`${nd}/bot/section/${e}`,{method:"POST",headers:dt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function vC(e,t){const r=await(await rt(`${nd}/model/section/${e}`,{method:"POST",headers:dt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}const bje=vn.create({baseURL:"",timeout:1e4});async function TE(){try{return(await bje.post("/api/webui/system/restart")).data}catch(e){throw console.error("重启麦麦失败:",e),e}}const wje=Zu("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),nx=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx("div",{ref:r,role:"alert",className:ce(wje({variant:t}),e),...n}));nx.displayName="Alert";const jje=y.forwardRef(({className:e,...t},n)=>i.jsx("h5",{ref:n,className:ce("mb-1 font-medium leading-none tracking-tight",e),...t}));jje.displayName="AlertTitle";const rx=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm [&_p]:leading-relaxed",e),...t}));rx.displayName="AlertDescription";function kE({onRestartComplete:e,onRestartFailed:t}){const[n,r]=y.useState(0),[a,s]=y.useState("restarting"),[l,u]=y.useState(0),[d,f]=y.useState(0);y.useEffect(()=>{const g=setInterval(()=>{r(w=>w>=90?w:w+1)},200),x=setInterval(()=>{u(w=>w+1)},1e3),j=setTimeout(()=>{s("checking"),m()},3e3);return()=>{clearInterval(g),clearInterval(x),clearTimeout(j)}},[]);const m=()=>{const x=async()=>{try{if(f(w=>w+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)r(100),s("success"),setTimeout(()=>{e?.()},1500);else throw new Error("Status check failed")}catch{d<60?setTimeout(x,2e3):(s("failed"),t?.())}};x()},p=g=>{const x=Math.floor(g/60),j=g%60;return`${x}:${j.toString().padStart(2,"0")}`};return i.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:i.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[i.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[a==="restarting"&&i.jsxs(i.Fragment,{children:[i.jsx(gh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),a==="checking"&&i.jsxs(i.Fragment,{children:[i.jsx(gh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),i.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",d,"/60)"]})]}),a==="success"&&i.jsxs(i.Fragment,{children:[i.jsx(Pr,{className:"h-16 w-16 text-green-500"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),a==="failed"&&i.jsxs(i.Fragment,{children:[i.jsx(gl,{className:"h-16 w-16 text-destructive"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),a!=="failed"&&i.jsxs("div",{className:"space-y-2",children:[i.jsx($h,{value:n,className:"h-2"}),i.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[i.jsxs("span",{children:[n,"%"]}),i.jsxs("span",{children:["已用时: ",p(l)]})]})]}),i.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:i.jsxs("p",{className:"text-sm text-muted-foreground",children:[a==="restarting"&&"🔄 配置已保存,正在重启主程序...",a==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",a==="success"&&"✅ 配置已生效,服务运行正常",a==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),a==="failed"&&i.jsxs("div",{className:"flex gap-2",children:[i.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),i.jsx("button",{onClick:()=>{s("checking"),f(0),m()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function Sje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),{toast:g}=yr(),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[T,M]=y.useState(null),[R,B]=y.useState(null),[$,H]=y.useState(null),[V,q]=y.useState(null),[G,L]=y.useState(null),[D,U]=y.useState(null),[K,J]=y.useState(null),[I,z]=y.useState(null),[Y,te]=y.useState(null),[ae,ge]=y.useState(null),[ee,Se]=y.useState(null),[re,we]=y.useState(null),[je,fe]=y.useState(null),Le=y.useRef(null),Oe=y.useRef(!0),We=y.useRef({}),be=y.useCallback(async()=>{try{t(!0);const ue=await yje();We.current=ue,j(ue.bot),b(ue.personality);const Ve=ue.chat;Ve.talk_value_rules||(Ve.talk_value_rules=[]),E(Ve),A(ue.expression),k(ue.emoji),M(ue.memory),B(ue.tool),H(ue.mood),q(ue.voice),L(ue.lpmm_knowledge),U(ue.keyword_reaction),J(ue.response_post_process),z(ue.chinese_typo),te(ue.response_splitter),ge(ue.log),Se(ue.debug),we(ue.maim_message),fe(ue.telemetry),u(!1),Oe.current=!1}catch(ue){console.error("加载配置失败:",ue),g({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[g]);y.useEffect(()=>{be()},[be]);const Ae=y.useCallback(async(ue,Ve)=>{if(!Oe.current)try{s(!0),await xje(ue,Ve),u(!1)}catch(Mn){console.error(`自动保存 ${ue} 失败:`,Mn),u(!0)}finally{s(!1)}},[]),ke=y.useCallback((ue,Ve)=>{Oe.current||(u(!0),Le.current&&clearTimeout(Le.current),Le.current=setTimeout(()=>{Ae(ue,Ve)},2e3))},[Ae]);y.useEffect(()=>{x&&!Oe.current&&ke("bot",x)},[x,ke]),y.useEffect(()=>{w&&!Oe.current&&ke("personality",w)},[w,ke]),y.useEffect(()=>{N&&!Oe.current&&ke("chat",N)},[N,ke]),y.useEffect(()=>{O&&!Oe.current&&ke("expression",O)},[O,ke]),y.useEffect(()=>{C&&!Oe.current&&ke("emoji",C)},[C,ke]),y.useEffect(()=>{T&&!Oe.current&&ke("memory",T)},[T,ke]),y.useEffect(()=>{R&&!Oe.current&&ke("tool",R)},[R,ke]),y.useEffect(()=>{$&&!Oe.current&&ke("mood",$)},[$,ke]),y.useEffect(()=>{V&&!Oe.current&&ke("voice",V)},[V,ke]),y.useEffect(()=>{G&&!Oe.current&&ke("lpmm_knowledge",G)},[G,ke]),y.useEffect(()=>{D&&!Oe.current&&ke("keyword_reaction",D)},[D,ke]),y.useEffect(()=>{K&&!Oe.current&&ke("response_post_process",K)},[K,ke]),y.useEffect(()=>{I&&!Oe.current&&ke("chinese_typo",I)},[I,ke]),y.useEffect(()=>{Y&&!Oe.current&&ke("response_splitter",Y)},[Y,ke]),y.useEffect(()=>{ae&&!Oe.current&&ke("log",ae)},[ae,ke]),y.useEffect(()=>{ee&&!Oe.current&&ke("debug",ee)},[ee,ke]),y.useEffect(()=>{re&&!Oe.current&&ke("maim_message",re)},[re,ke]),y.useEffect(()=>{je&&!Oe.current&&ke("telemetry",je)},[je,ke]);const Qt=async()=>{try{r(!0),Le.current&&clearTimeout(Le.current);const ue={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:$,voice:V,lpmm_knowledge:G,keyword_reaction:D,response_post_process:K,chinese_typo:I,response_splitter:Y,log:ae,debug:ee,maim_message:re,telemetry:je};await kL(ue),u(!1),g({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(ue){console.error("保存配置失败:",ue),g({title:"保存失败",description:ue.message,variant:"destructive"})}finally{r(!1)}},St=async()=>{try{f(!0),TE().catch(()=>{}),p(!0)}catch(ue){console.error("重启失败:",ue),p(!1),g({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),f(!1)}},Tt=async()=>{try{r(!0),Le.current&&clearTimeout(Le.current);const ue={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:$,voice:V,lpmm_knowledge:G,keyword_reaction:D,response_post_process:K,chinese_typo:I,response_splitter:Y,log:ae,debug:ee,maim_message:re,telemetry:je};await kL(ue),u(!1),g({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(Ve=>setTimeout(Ve,500)),await St()}catch(ue){console.error("保存失败:",ue),g({title:"保存失败",description:ue.message,variant:"destructive"})}finally{r(!1)}},Sn=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},le=()=>{p(!1),f(!1),g({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return e?i.jsx(Wt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:Qt,disabled:n||a||!l||d,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(iE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:n||a||d,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(aE,{className:"mr-2 h-4 w-4"}),d?"重启中...":l?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:l?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:l?Tt:St,children:l?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(nx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(rx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(dl,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(eo,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Rt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Rt,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Rt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Rt,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Rt,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Rt,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Rt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Rt,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Rt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Rt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(sn,{value:"bot",className:"space-y-4",children:x&&i.jsx(_je,{config:x,onChange:j})}),i.jsx(sn,{value:"personality",className:"space-y-4",children:w&&i.jsx(Nje,{config:w,onChange:b})}),i.jsx(sn,{value:"chat",className:"space-y-4",children:N&&i.jsx(Cje,{config:N,onChange:E})}),i.jsx(sn,{value:"expression",className:"space-y-4",children:O&&i.jsx(Oje,{config:O,onChange:A})}),i.jsx(sn,{value:"features",className:"space-y-4",children:C&&T&&R&&i.jsx(Eje,{emojiConfig:C,memoryConfig:T,toolConfig:R,onEmojiChange:k,onMemoryChange:M,onToolChange:B})}),i.jsx(sn,{value:"processing",className:"space-y-4",children:D&&K&&I&&Y&&i.jsx(Aje,{keywordReactionConfig:D,responsePostProcessConfig:K,chineseTypoConfig:I,responseSplitterConfig:Y,onKeywordReactionChange:U,onResponsePostProcessChange:J,onChineseTypoChange:z,onResponseSplitterChange:te})}),i.jsx(sn,{value:"mood",className:"space-y-4",children:$&&i.jsx(Tje,{config:$,onChange:H})}),i.jsx(sn,{value:"voice",className:"space-y-4",children:V&&i.jsx(kje,{config:V,onChange:q})}),i.jsx(sn,{value:"lpmm",className:"space-y-4",children:G&&i.jsx(Mje,{config:G,onChange:L})}),i.jsxs(sn,{value:"other",className:"space-y-4",children:[ae&&i.jsx(Pje,{config:ae,onChange:ge}),ee&&i.jsx(Rje,{config:ee,onChange:Se}),re&&i.jsx(Dje,{config:re,onChange:we}),je&&i.jsx($je,{config:je,onChange:fe})]})]}),m&&i.jsx(kE,{onRestartComplete:Sn,onRestartFailed:le})]})})}function _je({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},s=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"platform",children:"平台"}),i.jsx(Ne,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ne,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"其他平台账号"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"别名"}),i.jsxs(oe,{onClick:s,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function Nje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=s=>{t({...e,states:e.states.filter((l,u)=>u!==s)})},a=(s,l)=>{const u=[...e.states];u[s]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"personality",children:"人格特质"}),i.jsx(Xt,{id:"personality",value:e.personality,onChange:s=>t({...e,personality:s.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Xt,{id:"reply_style",value:e.reply_style,onChange:s=>t({...e,reply_style:s.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"interest",children:"兴趣"}),i.jsx(Xt,{id:"interest",value:e.interest,onChange:s=>t({...e,interest:s.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Xt,{id:"plan_style",value:e.plan_style,onChange:s=>t({...e,plan_style:s.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Xt,{id:"visual_style",value:e.visual_style,onChange:s=>t({...e,visual_style:s.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Xt,{id:"private_plan_style",value:e.private_plan_style,onChange:s=>t({...e,private_plan_style:s.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"状态列表(人格多样性)"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((s,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Xt,{value:s,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsx(hn,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ne,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:s=>t({...e,state_probability:parseFloat(s.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function Cje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},s=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[w,b]=y.useState("59");y.useEffect(()=>{const E=u.split("-");if(E.length===2){const[O,A]=E,[C,k]=O.split(":"),[T,M]=A.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),T&&j(T.padStart(2,"0")),M&&b(M.padStart(2,"0"))}},[u]);const N=(E,O,A,C)=>{const k=`${E}:${O}-${A}:${C}`;d(k)};return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(ll,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(ds,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"小时"}),i.jsxs(Dt,{value:f,onValueChange:E=>{m(E),N(E,p,x,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"分钟"}),i.jsxs(Dt,{value:p,onValueChange:E=>{g(E),N(f,E,x,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"小时"}),i.jsxs(Dt,{value:x,onValueChange:E=>{j(E),N(f,p,E,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"分钟"}),i.jsxs(Dt,{value:w,onValueChange:E=>{b(E),N(f,p,x,E)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ne,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ne,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ne,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ne,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(Q,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(Q,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(oe,{onClick:n,size:"sm",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{variant:"ghost",size:"sm",children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Dt,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"global",children:"全局配置"}),i.jsx(De,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Dt,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"qq",children:"QQ"}),i.jsx(De,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Dt,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"group",children:"群组(group)"}),i.jsx(De,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(s,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ne,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(xE,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function Oje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const w=[...e.learning_list];w[g][x]=j,t({...e,learning_list:w})},s=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:w})=>{const b=w.includes(g)||g==="*",[N,E]=y.useState(!b);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ne,{value:g,onChange:O=>p(x,j,O.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),w.length>0&&i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(Dt,{value:g,onValueChange:O=>p(x,j,O),children:[i.jsx(Ot,{className:"flex-1",children:i.jsx($t,{placeholder:"选择聊天流"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"*",children:"* (全局共享)"}),w.map((O,A)=>i.jsx(De,{value:O,children:O},A))]})]}),i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((w,b)=>b!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const w=[...e.expression_groups];w[g][x]=j,t({...e,expression_groups:w})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((A,C)=>C!==x&&A[0]===""),w=g[0]==="",b=g[0].split(":"),N=b[0]||"qq",E=b[1]||"",O=b[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",w&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(s,{rule:g}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Dt,{value:w?"global":"specific",onValueChange:A=>{A==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!w,children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"global",children:"全局配置"}),i.jsx(De,{value:"specific",disabled:j&&!w,children:"详细配置"})]})]}),j&&!w&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!w&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Dt,{value:N,onValueChange:A=>{a(x,0,`${A}:${E}:${O}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"qq",children:"QQ"}),i.jsx(De,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:E,onChange:A=>{a(x,0,`${N}:${A.target.value}:${O}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Dt,{value:O,onValueChange:A=>{a(x,0,`${N}:${E}:${A}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"group",children:"群组(group)"}),i.jsx(De,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(lt,{checked:g[1]==="enable",onCheckedChange:A=>a(x,1,A?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(lt,{checked:g[2]==="enable",onCheckedChange:A=>a(x,2,A?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:A=>{const C=parseFloat(A.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(xE,{value:[parseFloat(g[3])||1],onValueChange:A=>a(x,3,A[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(oe,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(w=>w[0]).filter(w=>w!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(ir,{className:"h-4 w-4"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((w,b)=>i.jsx(l,{member:w,groupIndex:x,memberIndex:b,availableChatIds:j},b))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function Eje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:s}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>s({...n,enable_tool:l})}),i.jsx(Q,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ne,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ne,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(Q,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(Q,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(Q,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function Aje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:s,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=A=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==A)})},m=(A,C,k)=>{const T=[...e.regex_rules];C==="regex"&&typeof k=="string"?T[A]={...T[A],regex:[k]}:C==="reaction"&&typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,regex_rules:T})},p=({regex:A,reaction:C,onRegexChange:k,onReactionChange:T})=>{const[M,R]=y.useState(!1),[B,$]=y.useState(""),[H,V]=y.useState(null),[q,G]=y.useState(""),[L,D]=y.useState({}),[U,K]=y.useState(""),J=y.useRef(null),[I,z]=y.useState("build"),Y=ee=>ee.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),te=(ee,Se=0)=>{const re=J.current;if(!re)return;const we=re.selectionStart||0,je=re.selectionEnd||0,fe=A.substring(0,we)+ee+A.substring(je);k(fe),setTimeout(()=>{const Le=we+ee.length+Se;re.setSelectionRange(Le,Le),re.focus()},0)};y.useEffect(()=>{if(!A||!B){V(null),D({}),K(C),G("");return}try{const ee=Y(A),Se=new RegExp(ee,"g"),re=B.match(Se);V(re),G("");const je=new RegExp(ee).exec(B);if(je&&je.groups){D(je.groups);let fe=C;Object.entries(je.groups).forEach(([Le,Oe])=>{fe=fe.replace(new RegExp(`\\[${Le}\\]`,"g"),Oe||"")}),K(fe)}else D({}),K(C)}catch(ee){G(ee.message),V(null),D({}),K(C)}},[A,B,C]);const ae=()=>{if(!B||!H||H.length===0)return i.jsx("span",{className:"text-muted-foreground",children:B||"请输入测试文本"});try{const ee=Y(A),Se=new RegExp(ee,"g");let re=0;const we=[];let je;for(;(je=Se.exec(B))!==null;)je.index>re&&we.push(i.jsx("span",{children:B.substring(re,je.index)},`text-${re}`)),we.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),re=je.index+je[0].length;return re)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(sr,{open:M,onOpenChange:R,children:[i.jsx(i8,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Og,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"正则表达式编辑器"}),i.jsx(vr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Wt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(dl,{value:I,onValueChange:ee=>z(ee),className:"w-full",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2",children:[i.jsx(Rt,{value:"build",children:"🔧 构建器"}),i.jsx(Rt,{value:"test",children:"🧪 测试器"})]}),i.jsxs(sn,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ne,{ref:J,value:A,onChange:ee=>k(ee.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Xt,{value:C,onChange:ee=>T(ee.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[ge.map(ee=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ee.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ee.items.map(Se=>i.jsx(oe,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>te(Se.pattern,Se.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:Se.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:Se.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:Se.desc})]})},Se.label))})]},ee.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(sn,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:A||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Xt,{id:"test-text",value:B,onChange:ee=>$(ee.target.value),placeholder:`在此输入要测试的文本... +例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),q&&i.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[i.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),i.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:q})]}),!q&&B&&i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex items-center gap-2",children:H&&H.length>0?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),i.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",H.length," 处)"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),i.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"匹配高亮"}),i.jsx(Wt,{className:"h-40 rounded-md bg-muted p-3",children:i.jsx("div",{className:"text-sm break-words",children:ae()})})]}),Object.keys(L).length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"命名捕获组"}),i.jsx(Wt,{className:"h-32 rounded-md border p-3",children:i.jsx("div",{className:"space-y-2",children:Object.entries(L).map(([ee,Se])=>i.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ee,"]"]}),i.jsx("span",{className:"text-muted-foreground",children:"="}),i.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:Se})]},ee))})})]}),Object.keys(L).length>0&&C&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"Reaction 替换预览"}),i.jsx(Wt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:i.jsx("div",{className:"text-sm break-words",children:U})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),i.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),i.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),i.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},g=()=>{a({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},x=A=>{a({...e,keyword_rules:e.keyword_rules.filter((C,k)=>k!==A)})},j=(A,C,k)=>{const T=[...e.keyword_rules];typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,keyword_rules:T})},w=A=>{const C=[...e.keyword_rules];C[A]={...C[A],keywords:[...C[A].keywords||[],""]},a({...e,keyword_rules:C})},b=(A,C)=>{const k=[...e.keyword_rules];k[A]={...k[A],keywords:(k[A].keywords||[]).filter((T,M)=>M!==C)},a({...e,keyword_rules:k})},N=(A,C,k)=>{const T=[...e.keyword_rules],M=[...T[A].keywords||[]];M[C]=k,T[A]={...T[A],keywords:M},a({...e,keyword_rules:T})},E=({rule:A})=>{const C=`{ regex = [${(A.regex||[]).map(k=>`"${k}"`).join(", ")}], reaction = "${A.reaction}" }`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Wt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},O=({rule:A})=>{const C=`[[keyword_reaction.keyword_rules]] +keywords = [${(A.keywords||[]).map(k=>`"${k}"`).join(", ")}] +reaction = "${A.reaction}"`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Wt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),i.jsxs(oe,{onClick:d,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(p,{regex:A.regex&&A.regex[0]||"",reaction:A.reaction,onRegexChange:k=>m(C,"regex",k),onReactionChange:k=>m(C,"reaction",k)}),i.jsx(E,{rule:A}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除正则规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>f(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),i.jsx(Ne,{value:A.regex&&A.regex[0]||"",onChange:k=>m(C,"regex",k.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Xt,{value:A.reaction,onChange:k=>m(C,"reaction",k.target.value),placeholder:`触发后麦麦的反应... +可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(oe,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(O,{rule:A}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(oe,{onClick:()=>w(C),size:"sm",variant:"ghost",children:[i.jsx(ir,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(A.keywords||[]).map((k,T)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ne,{value:k,onChange:M=>N(C,T,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(oe,{onClick:()=>b(C,T),size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})]},T)),(!A.keywords||A.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Xt,{value:A.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:A=>s({...t,enable_response_post_process:A})}),i.jsx(Q,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(lt,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:A=>l({...n,enable:A})}),i.jsx(Q,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ne,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:A=>l({...n,error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ne,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:A=>l({...n,min_freq:parseInt(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ne,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:A=>l({...n,tone_error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ne,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:A=>l({...n,word_replace_rate:parseFloat(A.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(lt,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:A=>u({...r,enable:A})}),i.jsx(Q,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ne,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:A=>u({...r,max_length:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ne,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:A=>u({...r,max_sentence_num:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:A=>u({...r,enable_kaomoji_protection:A})}),i.jsx(Q,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:A=>u({...r,enable_overflow_return_all:A})}),i.jsx(Q,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function Tje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"情绪更新阈值"}),i.jsx(Ne,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"情感特征"}),i.jsx(Xt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function kje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function Mje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"LPMM 模式"}),i.jsxs(Dt,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(Ot,{children:i.jsx($t,{placeholder:"选择 LPMM 模式"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"classic",children:"经典模式"}),i.jsx(De,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"同义词搜索 TopK"}),i.jsx(Ne,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"同义词阈值"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"实体提取线程数"}),i.jsx(Ne,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"嵌入向量维度"}),i.jsx(Ne,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function Pje({config:e,onChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),s("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日期格式"}),i.jsx(Ne,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日志级别样式"}),i.jsxs(Dt,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:p.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日志文本颜色"}),i.jsxs(Dt,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:g.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"全局日志级别"}),i.jsxs(Dt,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"控制台日志级别"}),i.jsxs(Dt,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"文件日志级别"}),i.jsxs(Dt,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(oe,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(Dt,{value:a,onValueChange:s,children:[i.jsx(Ot,{className:"w-32",children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]}),i.jsx(oe,{onClick:d,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function Rje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(lt,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(lt,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(lt,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(lt,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function Dje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},s=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(lt,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"主机地址"}),i.jsx(Ne,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"端口号"}),i.jsx(Ne,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"连接模式"}),i.jsxs(Dt,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"ws",children:"WebSocket (ws)"}),i.jsx(De,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(Q,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"SSL 证书文件路径"}),i.jsx(Ne,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"SSL 密钥文件路径"}),i.jsx(Ne,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(oe,{onClick:a,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>s(u),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function $je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(lt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const kl=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:ce("w-full caption-bottom text-sm",e),...t})}));kl.displayName="Table";const Ml=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:ce("[&_tr]:border-b",e),...t}));Ml.displayName="TableHeader";const Pl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:ce("[&_tr:last-child]:border-0",e),...t}));Pl.displayName="TableBody";const Ije=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:ce("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Ije.displayName="TableFooter";const An=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:ce("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));An.displayName="TableRow";const nt=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:ce("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));nt.displayName="TableHead";const Ge=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:ce("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ge.displayName="TableCell";const Lje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:ce("mt-4 text-sm text-muted-foreground",e),...t}));Lje.displayName="TableCaption";var ax="Checkbox",[Bje]=gr(ax),[zje,ME]=Bje(ax);function qje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Ea({prop:n,defaultProp:a??!1,onChange:d,caller:ax}),[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useRef(!1),O=j?!!l||!!j.closest("form"):!0,A={checked:g,disabled:s,setChecked:x,control:j,setControl:w,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:E,required:f,defaultChecked:Js(a)?!1:a,isFormControl:O,bubbleInput:b,setBubbleInput:N};return i.jsx(zje,{scope:t,...A,children:Fje(p)?p(A):r})}var lH="CheckboxTrigger",cH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:s,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=ME(lH,e),w=Ue(a,m),b=y.useRef(d);return y.useEffect(()=>{const N=s?.form;if(N){const E=()=>p(b.current);return N.addEventListener("reset",E),()=>N.removeEventListener("reset",E)}},[s,p]),i.jsx($e.button,{type:"button",role:"checkbox","aria-checked":Js(d)?"mixed":d,"aria-required":f,"data-state":mH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:w,onKeyDown:_e(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:_e(n,N=>{p(E=>Js(E)?!0:!E),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});cH.displayName=lH;var PE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(qje,{__scopeCheckbox:n,checked:a,defaultChecked:s,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(cH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(hH,{__scopeCheckbox:n})]})})});PE.displayName=ax;var uH="CheckboxIndicator",dH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,s=ME(uH,n);return i.jsx(Bn,{present:r||Js(s.checked)||s.checked===!0,children:i.jsx($e.span,{"data-state":mH(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});dH.displayName=uH;var fH="CheckboxBubbleInput",hH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:s,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=ME(fH,e),j=Ue(n,x),w=Dy(s),b=$y(r);y.useEffect(()=>{const E=g;if(!E)return;const O=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(O,"checked").set,k=!a.current;if(w!==s&&C){const T=new Event("click",{bubbles:k});E.indeterminate=Js(s),C.call(E,Js(s)?!1:s),E.dispatchEvent(T)}},[g,w,s,a]);const N=y.useRef(Js(s)?!1:s);return i.jsx($e.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});hH.displayName=fH;function Fje(e){return typeof e=="function"}function Js(e){return e==="indeterminate"}function mH(e){return Js(e)?"indeterminate":e?"checked":"unchecked"}const io=y.forwardRef(({className:e,...t},n)=>i.jsx(PE,{ref:n,className:ce("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(dH,{className:ce("grid place-content-center text-current"),children:i.jsx(ol,{className:"h-4 w-4"})})}));io.displayName=PE.displayName;function Uje(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(!1),[B,$]=y.useState(""),[H,V]=y.useState(new Set),[q,G]=y.useState(!1),{toast:L}=yr(),D=y.useRef(null),U=y.useRef(!0);y.useEffect(()=>{K()},[]);const K=async()=>{try{r(!0);const be=await Jc();t(be.api_providers||[]),f(!1),U.current=!1}catch(be){console.error("加载配置失败:",be)}finally{r(!1)}},J=async()=>{try{p(!0),TE().catch(()=>{}),x(!0)}catch(be){console.error("重启失败:",be),x(!1),L({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),p(!1)}},I=async()=>{try{s(!0),D.current&&clearTimeout(D.current);const be=await Jc();be.api_providers=e,await Ig(be),f(!1),L({title:"保存成功",description:"正在重启麦麦..."}),await J()}catch(be){console.error("保存配置失败:",be),L({title:"保存失败",description:be.message,variant:"destructive"}),s(!1)}},z=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Y=()=>{x(!1),p(!1),L({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},te=y.useCallback(async be=>{if(!U.current)try{u(!0),await vC("api_providers",be),f(!1)}catch(Ae){console.error("自动保存失败:",Ae),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!U.current)return f(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{te(e)},2e3),()=>{D.current&&clearTimeout(D.current)}},[e,te]);const ae=async()=>{try{s(!0),D.current&&clearTimeout(D.current);const be=await Jc();be.api_providers=e,await Ig(be),f(!1),L({title:"保存成功",description:"模型提供商配置已保存"})}catch(be){console.error("保存配置失败:",be),L({title:"保存失败",description:be.message,variant:"destructive"})}finally{s(!1)}},ge=(be,Ae)=>{N(be||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),O(Ae),R(!1),w(!0)},ee=async()=>{if(b?.api_key)try{await navigator.clipboard.writeText(b.api_key),L({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{L({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},Se=()=>{if(b){if(E!==null){const be=[...e];be[E]=b,t(be)}else t([...e,b]);w(!1),N(null),O(null)}},re=be=>{T(be),C(!0)},we=()=>{if(k!==null){const be=e.filter((Ae,ke)=>ke!==k);t(be),L({title:"删除成功",description:"提供商已从列表中移除"})}C(!1),T(null)},je=be=>{const Ae=new Set(H);Ae.has(be)?Ae.delete(be):Ae.add(be),V(Ae)},fe=()=>{if(H.size===We.length)V(new Set);else{const be=We.map((Ae,ke)=>e.findIndex(Qt=>Qt===We[ke]));V(new Set(be))}},Le=()=>{if(H.size===0){L({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}G(!0)},Oe=()=>{const be=e.filter((Ae,ke)=>!H.has(ke));t(be),V(new Set),G(!1),L({title:"批量删除成功",description:`已删除 ${H.size} 个提供商`})},We=e.filter(be=>{if(!B)return!0;const Ae=B.toLowerCase();return be.name.toLowerCase().includes(Ae)||be.base_url.toLowerCase().includes(Ae)||be.client_type.toLowerCase().includes(Ae)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[H.size>0&&i.jsxs(oe,{onClick:Le,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(It,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",H.size,")"]}),i.jsxs(oe,{onClick:()=>ge(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(oe,{onClick:ae,disabled:a||l||!d||m,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(iE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:a||l||m,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(aE,{className:"mr-2 h-4 w-4"}),m?"重启中...":d?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:d?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:d?I:J,children:d?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(nx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(rx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(Wt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索提供商名称、URL 或类型...",value:B,onChange:be=>$(be.target.value),className:"pl-9"})]}),B&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",We.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:We.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:B?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):We.map((be,Ae)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:be.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:be.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ge(be,Ae),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>re(Ae),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:be.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:be.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:be.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:be.retry_interval})]})]})]},Ae))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-12",children:i.jsx(io,{checked:H.size===We.length&&We.length>0,onCheckedChange:fe})}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"基础URL"}),i.jsx(nt,{children:"客户端类型"}),i.jsx(nt,{className:"text-right",children:"最大重试"}),i.jsx(nt,{className:"text-right",children:"超时(秒)"}),i.jsx(nt,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:We.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:8,className:"text-center text-muted-foreground py-8",children:B?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):We.map((be,Ae)=>{const ke=e.findIndex(Qt=>Qt===be);return i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(io,{checked:H.has(ke),onCheckedChange:()=>je(ke)})}),i.jsx(Ge,{className:"font-medium",children:be.name}),i.jsx(Ge,{className:"max-w-xs truncate",title:be.base_url,children:be.base_url}),i.jsx(Ge,{children:be.client_type}),i.jsx(Ge,{className:"text-right",children:be.max_retry}),i.jsx(Ge,{className:"text-right",children:be.timeout}),i.jsx(Ge,{className:"text-right",children:be.retry_interval}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ge(be,ke),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>re(ke),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Ae)})})]})})]}),i.jsx(sr,{open:j,onOpenChange:w,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:E!==null?"编辑提供商":"添加提供商"}),i.jsx(vr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"name",children:"名称 *"}),i.jsx(Ne,{id:"name",value:b?.name||"",onChange:be=>N(Ae=>Ae?{...Ae,name:be.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ne,{id:"base_url",value:b?.base_url||"",onChange:be=>N(Ae=>Ae?{...Ae,base_url:be.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"api_key",type:M?"text":"password",value:b?.api_key||"",onChange:be=>N(Ae=>Ae?{...Ae,api_key:be.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:()=>R(!M),title:M?"隐藏密钥":"显示密钥",children:M?i.jsx(JN,{className:"h-4 w-4"}):i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:ee,title:"复制密钥",children:i.jsx(ZN,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(Dt,{value:b?.client_type||"openai",onValueChange:be=>N(Ae=>Ae?{...Ae,client_type:be}:null),children:[i.jsx(Ot,{id:"client_type",children:i.jsx($t,{placeholder:"选择客户端类型"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"openai",children:"OpenAI"}),i.jsx(De,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ne,{id:"max_retry",type:"number",min:"0",value:b?.max_retry||2,onChange:be=>N(Ae=>Ae?{...Ae,max_retry:parseInt(be.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ne,{id:"timeout",type:"number",min:"1",value:b?.timeout||30,onChange:be=>N(Ae=>Ae?{...Ae,timeout:parseInt(be.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ne,{id:"retry_interval",type:"number",min:"1",value:b?.retry_interval||10,onChange:be=>N(Ae=>Ae?{...Ae,retry_interval:parseInt(be.target.value)}:null)})]})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>w(!1),children:"取消"}),i.jsx(oe,{onClick:Se,children:"保存"})]})]})}),i.jsx(bn,{open:A,onOpenChange:C,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除提供商 "',k!==null?e[k]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:we,children:"删除"})]})]})}),i.jsx(bn,{open:q,onOpenChange:G,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认批量删除"}),i.jsxs(hn,{children:["确定要删除选中的 ",H.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:Oe,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),g&&i.jsx(kE,{onRestartComplete:z,onRestartFailed:Y})]})}var ML=1,Hje=.9,Wje=.8,Vje=.17,c_=.1,u_=.999,Gje=.9999,Yje=.99,Kje=/[\\\/_+.#"@\[\(\{&]/,Xje=/[\\\/_+.#"@\[\(\{&]/g,Zje=/[\s-]/,pH=/[\s-]/g;function gC(e,t,n,r,a,s,l){if(s===t.length)return a===e.length?ML:Yje;var u=`${a},${s}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(s),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=gC(e,t,n,r,f+1,s+1,l),p>m&&(f===a?p*=ML:Kje.test(e.charAt(f-1))?(p*=Wje,x=e.slice(a,f-1).match(Xje),x&&a>0&&(p*=Math.pow(u_,x.length))):Zje.test(e.charAt(f-1))?(p*=Hje,j=e.slice(a,f-1).match(pH),j&&a>0&&(p*=Math.pow(u_,j.length))):(p*=Vje,a>0&&(p*=Math.pow(u_,f-a))),e.charAt(f)!==t.charAt(s)&&(p*=Gje)),(pp&&(p=g*c_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function PL(e){return e.toLowerCase().replace(pH," ")}function Qje(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,gC(e,t,PL(e),PL(t),0,0,{})}var Jje=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],go=Jje.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ff='[cmdk-group=""]',d_='[cmdk-group-items=""]',e1e='[cmdk-group-heading=""]',vH='[cmdk-item=""]',RL=`${vH}:not([aria-disabled="true"])`,yC="cmdk-item-select",Ic="data-value",t1e=(e,t,n)=>Qje(e,t,n),gH=y.createContext(void 0),tm=()=>y.useContext(gH),yH=y.createContext(void 0),RE=()=>y.useContext(yH),xH=y.createContext(void 0),bH=y.forwardRef((e,t)=>{let n=Lc(()=>{var z,Y;return{search:"",value:(Y=(z=e.value)!=null?z:e.defaultValue)!=null?Y:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=Lc(()=>new Set),a=Lc(()=>new Map),s=Lc(()=>new Map),l=Lc(()=>new Set),u=wH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:w=!1,vimBindings:b=!0,...N}=e,E=Gn(),O=Gn(),A=Gn(),C=y.useRef(null),k=f1e();jl(()=>{if(m!==void 0){let z=m.trim();n.current.value=z,T.emit()}},[m]),jl(()=>{k(6,V)},[]);let T=y.useMemo(()=>({subscribe:z=>(l.current.add(z),()=>l.current.delete(z)),snapshot:()=>n.current,setState:(z,Y,te)=>{var ae,ge,ee,Se;if(!Object.is(n.current[z],Y)){if(n.current[z]=Y,z==="search")H(),B(),k(1,$);else if(z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(A);re?re.focus():(ae=document.getElementById(E))==null||ae.focus()}if(k(7,()=>{var re;n.current.selectedItemId=(re=q())==null?void 0:re.id,T.emit()}),te||k(5,V),((ge=u.current)==null?void 0:ge.value)!==void 0){let re=Y??"";(Se=(ee=u.current).onValueChange)==null||Se.call(ee,re);return}}T.emit()}},emit:()=>{l.current.forEach(z=>z())}}),[]),M=y.useMemo(()=>({value:(z,Y,te)=>{var ae;Y!==((ae=s.current.get(z))==null?void 0:ae.value)&&(s.current.set(z,{value:Y,keywords:te}),n.current.filtered.items.set(z,R(Y,te)),k(2,()=>{B(),T.emit()}))},item:(z,Y)=>(r.current.add(z),Y&&(a.current.has(Y)?a.current.get(Y).add(z):a.current.set(Y,new Set([z]))),k(3,()=>{H(),B(),n.current.value||$(),T.emit()}),()=>{s.current.delete(z),r.current.delete(z),n.current.filtered.items.delete(z);let te=q();k(4,()=>{H(),te?.getAttribute("id")===z&&$(),T.emit()})}),group:z=>(a.current.has(z)||a.current.set(z,new Set),()=>{s.current.delete(z),a.current.delete(z)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:E,inputId:A,labelId:O,listInnerRef:C}),[]);function R(z,Y){var te,ae;let ge=(ae=(te=u.current)==null?void 0:te.filter)!=null?ae:t1e;return z?ge(z,n.current.search,Y):0}function B(){if(!n.current.search||u.current.shouldFilter===!1)return;let z=n.current.filtered.items,Y=[];n.current.filtered.groups.forEach(ae=>{let ge=a.current.get(ae),ee=0;ge.forEach(Se=>{let re=z.get(Se);ee=Math.max(re,ee)}),Y.push([ae,ee])});let te=C.current;G().sort((ae,ge)=>{var ee,Se;let re=ae.getAttribute("id"),we=ge.getAttribute("id");return((ee=z.get(we))!=null?ee:0)-((Se=z.get(re))!=null?Se:0)}).forEach(ae=>{let ge=ae.closest(d_);ge?ge.appendChild(ae.parentElement===ge?ae:ae.closest(`${d_} > *`)):te.appendChild(ae.parentElement===te?ae:ae.closest(`${d_} > *`))}),Y.sort((ae,ge)=>ge[1]-ae[1]).forEach(ae=>{var ge;let ee=(ge=C.current)==null?void 0:ge.querySelector(`${ff}[${Ic}="${encodeURIComponent(ae[0])}"]`);ee?.parentElement.appendChild(ee)})}function $(){let z=G().find(te=>te.getAttribute("aria-disabled")!=="true"),Y=z?.getAttribute(Ic);T.setState("value",Y||void 0)}function H(){var z,Y,te,ae;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ge=0;for(let ee of r.current){let Se=(Y=(z=s.current.get(ee))==null?void 0:z.value)!=null?Y:"",re=(ae=(te=s.current.get(ee))==null?void 0:te.keywords)!=null?ae:[],we=R(Se,re);n.current.filtered.items.set(ee,we),we>0&&ge++}for(let[ee,Se]of a.current)for(let re of Se)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=ge}function V(){var z,Y,te;let ae=q();ae&&(((z=ae.parentElement)==null?void 0:z.firstChild)===ae&&((te=(Y=ae.closest(ff))==null?void 0:Y.querySelector(e1e))==null||te.scrollIntoView({block:"nearest"})),ae.scrollIntoView({block:"nearest"}))}function q(){var z;return(z=C.current)==null?void 0:z.querySelector(`${vH}[aria-selected="true"]`)}function G(){var z;return Array.from(((z=C.current)==null?void 0:z.querySelectorAll(RL))||[])}function L(z){let Y=G()[z];Y&&T.setState("value",Y.getAttribute(Ic))}function D(z){var Y;let te=q(),ae=G(),ge=ae.findIndex(Se=>Se===te),ee=ae[ge+z];(Y=u.current)!=null&&Y.loop&&(ee=ge+z<0?ae[ae.length-1]:ge+z===ae.length?ae[0]:ae[ge+z]),ee&&T.setState("value",ee.getAttribute(Ic))}function U(z){let Y=q(),te=Y?.closest(ff),ae;for(;te&&!ae;)te=z>0?u1e(te,ff):d1e(te,ff),ae=te?.querySelector(RL);ae?T.setState("value",ae.getAttribute(Ic)):D(z)}let K=()=>L(G().length-1),J=z=>{z.preventDefault(),z.metaKey?K():z.altKey?U(1):D(1)},I=z=>{z.preventDefault(),z.metaKey?L(0):z.altKey?U(-1):D(-1)};return y.createElement(go.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:z=>{var Y;(Y=N.onKeyDown)==null||Y.call(N,z);let te=z.nativeEvent.isComposing||z.keyCode===229;if(!(z.defaultPrevented||te))switch(z.key){case"n":case"j":{b&&z.ctrlKey&&J(z);break}case"ArrowDown":{J(z);break}case"p":case"k":{b&&z.ctrlKey&&I(z);break}case"ArrowUp":{I(z);break}case"Home":{z.preventDefault(),L(0);break}case"End":{z.preventDefault(),K();break}case"Enter":{z.preventDefault();let ae=q();if(ae){let ge=new Event(yC);ae.dispatchEvent(ge)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:m1e},d),ix(e,z=>y.createElement(yH.Provider,{value:T},y.createElement(gH.Provider,{value:M},z))))}),n1e=y.forwardRef((e,t)=>{var n,r;let a=Gn(),s=y.useRef(null),l=y.useContext(xH),u=tm(),d=wH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;jl(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=jH(a,s,[e.value,e.children,s],e.keywords),p=RE(),g=so(k=>k.value&&k.value===m.current),x=so(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=s.current;if(!(!k||e.disabled))return k.addEventListener(yC,j),()=>k.removeEventListener(yC,j)},[x,e.onSelect,e.disabled]);function j(){var k,T;w(),(T=(k=d.current).onSelect)==null||T.call(k,m.current)}function w(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:b,value:N,onSelect:E,forceMount:O,keywords:A,...C}=e;return y.createElement(go.div,{ref:Ir(s,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!g,"data-disabled":!!b,"data-selected":!!g,onPointerMove:b||u.getDisablePointerSelection()?void 0:w,onClick:b?void 0:j},e.children)}),r1e=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,l=Gn(),u=y.useRef(null),d=y.useRef(null),f=Gn(),m=tm(),p=so(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);jl(()=>m.group(l),[]),jH(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(go.div,{ref:Ir(u,t),...s,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),ix(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(xH.Provider,{value:g},x))))}),a1e=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),s=so(l=>!l.search);return!n&&!s?null:y.createElement(go.div,{ref:Ir(a,t),...r,"cmdk-separator":"",role:"separator"})}),i1e=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,s=RE(),l=so(f=>f.search),u=so(f=>f.selectedItemId),d=tm();return y.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),y.createElement(go.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||s.setState("search",f.target.value),n?.(f.target.value)}})}),s1e=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=y.useRef(null),l=y.useRef(null),u=so(f=>f.selectedItemId),d=tm();return y.useEffect(()=>{if(l.current&&s.current){let f=l.current,m=s.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(go.div,{ref:Ir(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},ix(e,f=>y.createElement("div",{ref:Ir(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),o1e=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:l,...u}=e;return y.createElement(hE,{open:n,onOpenChange:r},y.createElement(mE,{container:l},y.createElement(Fy,{"cmdk-overlay":"",className:a}),y.createElement(Uy,{"aria-label":e.label,"cmdk-dialog":"",className:s},y.createElement(bH,{ref:t,...u}))))}),l1e=y.forwardRef((e,t)=>so(n=>n.filtered.count===0)?y.createElement(go.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),c1e=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return y.createElement(go.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},ix(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Fr=Object.assign(bH,{List:s1e,Item:n1e,Input:i1e,Group:r1e,Separator:a1e,Dialog:o1e,Empty:l1e,Loading:c1e});function u1e(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function d1e(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function wH(e){let t=y.useRef(e);return jl(()=>{t.current=e}),t}var jl=typeof window>"u"?y.useEffect:y.useLayoutEffect;function Lc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function so(e){let t=RE(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function jH(e,t,n,r=[]){let a=y.useRef(),s=tm();return jl(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());s.value(e,u,d),(l=t.current)==null||l.setAttribute(Ic,u),a.current=u}),a}var f1e=()=>{let[e,t]=y.useState(),n=Lc(()=>new Map);return jl(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function h1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function ix({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(h1e(t),{ref:t.ref},n(t.props.children)):n(t)}var m1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const SH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr,{ref:n,className:ce("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));SH.displayName=Fr.displayName;const _H=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Lr,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Fr.Input,{ref:n,className:ce("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));_H.displayName=Fr.Input.displayName;const NH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.List,{ref:n,className:ce("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));NH.displayName=Fr.List.displayName;const CH=y.forwardRef((e,t)=>i.jsx(Fr.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));CH.displayName=Fr.Empty.displayName;const OH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Group,{ref:n,className:ce("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));OH.displayName=Fr.Group.displayName;const p1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Separator,{ref:n,className:ce("-mx-1 h-px bg-border",e),...t}));p1e.displayName=Fr.Separator.displayName;const EH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Item,{ref:n,className:ce("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));EH.displayName=Fr.Item.displayName;function v1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:s}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(ro,{open:l,onOpenChange:u,children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",role:"combobox","aria-expanded":l,className:ce("w-full justify-between min-h-10 h-auto",s),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Ft,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Yh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(Dve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(ds,{className:"w-full p-0",align:"start",children:i.jsxs(SH,{children:[i.jsx(_H,{placeholder:"搜索...",className:"h-9"}),i.jsxs(NH,{children:[i.jsx(CH,{children:a}),i.jsx(OH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(EH,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:ce("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(ol,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function g1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,s]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(!1),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(null),[B,$]=y.useState(!1),[H,V]=y.useState(null),[q,G]=y.useState(""),[L,D]=y.useState(new Set),[U,K]=y.useState(!1),{toast:J}=yr(),I=y.useRef(null),z=y.useRef(null),Y=y.useRef(!0);y.useEffect(()=>{te()},[]);const te=async()=>{try{f(!0);const le=await Jc(),ue=le.models||[];t(ue),s(ue.map(Mn=>Mn.name));const Ve=le.api_providers||[];r(Ve.map(Mn=>Mn.name)),u(le.model_task_config||null),w(!1),Y.current=!1}catch(le){console.error("加载配置失败:",le)}finally{f(!1)}},ae=async()=>{try{N(!0),TE().catch(()=>{}),O(!0)}catch(le){console.error("重启失败:",le),O(!1),J({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),N(!1)}},ge=async()=>{try{p(!0),I.current&&clearTimeout(I.current),z.current&&clearTimeout(z.current);const le=await Jc();le.models=e,le.model_task_config=l,await Ig(le),w(!1),J({title:"保存成功",description:"正在重启麦麦..."}),await ae()}catch(le){console.error("保存配置失败:",le),J({title:"保存失败",description:le.message,variant:"destructive"}),p(!1)}},ee=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Se=()=>{O(!1),N(!1),J({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},re=y.useCallback(async le=>{if(!Y.current)try{x(!0),await vC("models",le),w(!1)}catch(ue){console.error("自动保存模型列表失败:",ue),w(!0)}finally{x(!1)}},[]),we=y.useCallback(async le=>{if(!Y.current)try{x(!0),await vC("model_task_config",le),w(!1)}catch(ue){console.error("自动保存任务配置失败:",ue),w(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!Y.current)return w(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{re(e)},2e3),()=>{I.current&&clearTimeout(I.current)}},[e,re]),y.useEffect(()=>{if(!(Y.current||!l))return w(!0),z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{we(l)},2e3),()=>{z.current&&clearTimeout(z.current)}},[l,we]);const je=async()=>{try{p(!0),I.current&&clearTimeout(I.current),z.current&&clearTimeout(z.current);const le=await Jc();le.models=e,le.model_task_config=l,await Ig(le),w(!1),J({title:"保存成功",description:"模型配置已保存"}),await te()}catch(le){console.error("保存配置失败:",le),J({title:"保存失败",description:le.message,variant:"destructive"})}finally{p(!1)}},fe=(le,ue)=>{T(le||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),R(ue),C(!0)},Le=()=>{if(!k)return;let le;M!==null?(le=[...e],le[M]=k):le=[...e,k],t(le),s(le.map(ue=>ue.name)),C(!1),T(null),R(null)},Oe=le=>{V(le),$(!0)},We=()=>{if(H!==null){const le=e.filter((ue,Ve)=>Ve!==H);t(le),s(le.map(ue=>ue.name)),J({title:"删除成功",description:"模型已从列表中移除"})}$(!1),V(null)},be=le=>{const ue=new Set(L);ue.has(le)?ue.delete(le):ue.add(le),D(ue)},Ae=()=>{if(L.size===Tt.length)D(new Set);else{const le=Tt.map((ue,Ve)=>e.findIndex(Mn=>Mn===Tt[Ve]));D(new Set(le))}},ke=()=>{if(L.size===0){J({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}K(!0)},Qt=()=>{const le=e.filter((ue,Ve)=>!L.has(Ve));t(le),s(le.map(ue=>ue.name)),D(new Set),K(!1),J({title:"批量删除成功",description:`已删除 ${L.size} 个模型`})},St=(le,ue,Ve)=>{l&&u({...l,[le]:{...l[le],[ue]:Ve}})},Tt=e.filter(le=>{if(!q)return!0;const ue=q.toLowerCase();return le.name.toLowerCase().includes(ue)||le.model_identifier.toLowerCase().includes(ue)||le.api_provider.toLowerCase().includes(ue)}),Sn=le=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(Ve=>Ve.includes(le)):!1;return d?i.jsx(Wt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:je,disabled:m||g||!j||b,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(iE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:m||g||b,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(aE,{className:"mr-2 h-4 w-4"}),b?"重启中...":j?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:j?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:j?ge:ae,children:j?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(nx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(rx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(dl,{defaultValue:"models",className:"w-full",children:[i.jsxs(eo,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Rt,{value:"models",children:"模型配置"}),i.jsx(Rt,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(sn,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[L.size>0&&i.jsxs(oe,{onClick:ke,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(It,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",L.size,")"]}),i.jsxs(oe,{onClick:()=>fe(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索模型名称、标识符或提供商...",value:q,onChange:le=>G(le.target.value),className:"pl-9"})]}),q&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Tt.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Tt.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:q?"未找到匹配的模型":"暂无模型配置"}):Tt.map((le,ue)=>{const Ve=Sn(le.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:le.name}),i.jsx(Ft,{variant:Ve?"default":"secondary",className:Ve?"bg-green-600 hover:bg-green-700":"",children:Ve?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:le.model_identifier,children:le.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>fe(le,ue),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Oe(ue),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:le.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:le.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",le.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",le.price_out,"/M"]})]})]})]},ue)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-12",children:i.jsx(io,{checked:L.size===Tt.length&&Tt.length>0,onCheckedChange:Ae})}),i.jsx(nt,{className:"w-24",children:"使用状态"}),i.jsx(nt,{children:"模型名称"}),i.jsx(nt,{children:"模型标识符"}),i.jsx(nt,{children:"提供商"}),i.jsx(nt,{className:"text-right",children:"输入价格"}),i.jsx(nt,{className:"text-right",children:"输出价格"}),i.jsx(nt,{className:"text-center",children:"强制流式"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:Tt.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:9,className:"text-center text-muted-foreground py-8",children:q?"未找到匹配的模型":"暂无模型配置"})}):Tt.map((le,ue)=>{const Ve=e.findIndex($l=>$l===le),Mn=Sn(le.name);return i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(io,{checked:L.has(Ve),onCheckedChange:()=>be(Ve)})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:Mn?"default":"secondary",className:Mn?"bg-green-600 hover:bg-green-700":"",children:Mn?"已使用":"未使用"})}),i.jsx(Ge,{className:"font-medium",children:le.name}),i.jsx(Ge,{className:"max-w-xs truncate",title:le.model_identifier,children:le.model_identifier}),i.jsx(Ge,{children:le.api_provider}),i.jsxs(Ge,{className:"text-right",children:["¥",le.price_in,"/M"]}),i.jsxs(Ge,{className:"text-right",children:["¥",le.price_out,"/M"]}),i.jsx(Ge,{className:"text-center",children:le.force_stream_mode?"是":"否"}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>fe(le,Ve),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Oe(Ve),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},ue)})})]})})]}),i.jsxs(sn,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx($a,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(le,ue)=>St("utils",le,ue)}),i.jsx($a,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(le,ue)=>St("utils_small",le,ue)}),i.jsx($a,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(le,ue)=>St("tool_use",le,ue)}),i.jsx($a,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(le,ue)=>St("replyer",le,ue)}),i.jsx($a,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(le,ue)=>St("planner",le,ue)}),i.jsx($a,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(le,ue)=>St("vlm",le,ue),hideTemperature:!0}),i.jsx($a,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(le,ue)=>St("voice",le,ue),hideTemperature:!0,hideMaxTokens:!0}),i.jsx($a,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(le,ue)=>St("embedding",le,ue),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx($a,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(le,ue)=>St("lpmm_entity_extract",le,ue)}),i.jsx($a,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(le,ue)=>St("lpmm_rdf_build",le,ue)}),i.jsx($a,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(le,ue)=>St("lpmm_qa",le,ue)})]})]})]})]}),i.jsx(sr,{open:A,onOpenChange:C,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:M!==null?"编辑模型":"添加模型"}),i.jsx(vr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ne,{id:"model_name",value:k?.name||"",onChange:le=>T(ue=>ue?{...ue,name:le.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ne,{id:"model_identifier",value:k?.model_identifier||"",onChange:le=>T(ue=>ue?{...ue,model_identifier:le.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(Dt,{value:k?.api_provider||"",onValueChange:le=>T(ue=>ue?{...ue,api_provider:le}:null),children:[i.jsx(Ot,{id:"api_provider",children:i.jsx($t,{placeholder:"选择提供商"})}),i.jsx(Et,{children:n.map(le=>i.jsx(De,{value:le,children:le},le))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ne,{id:"price_in",type:"number",step:"0.1",min:"0",value:k?.price_in||0,onChange:le=>T(ue=>ue?{...ue,price_in:parseFloat(le.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ne,{id:"price_out",type:"number",step:"0.1",min:"0",value:k?.price_out||0,onChange:le=>T(ue=>ue?{...ue,price_out:parseFloat(le.target.value)}:null)})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"force_stream_mode",checked:k?.force_stream_mode||!1,onCheckedChange:le=>T(ue=>ue?{...ue,force_stream_mode:le}:null)}),i.jsx(Q,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>C(!1),children:"取消"}),i.jsx(oe,{onClick:Le,children:"保存"})]})]})}),i.jsx(bn,{open:B,onOpenChange:$,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除模型 "',H!==null?e[H]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:We,children:"删除"})]})]})}),i.jsx(bn,{open:U,onOpenChange:K,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认批量删除"}),i.jsxs(hn,{children:["确定要删除选中的 ",L.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:Qt,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),E&&i.jsx(kE,{onRestartComplete:ee,onRestartFailed:Se})]})})}function $a({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:s=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"模型列表"}),i.jsx(v1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!s&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"温度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"2",value:n.temperature||.3,onChange:d=>a("temperature",parseFloat(d.target.value))})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"最大 Token"}),i.jsx(Ne,{type:"number",step:"1",min:"1",value:n.max_tokens||1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const yo="/api/webui/emoji";async function y1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await rt(`${yo}/list?${t}`,{headers:dt()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function x1e(e){const t=await rt(`${yo}/${e}`,{headers:dt()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function b1e(e,t){const n=await rt(`${yo}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function w1e(e){const t=await rt(`${yo}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function j1e(){const e=await rt(`${yo}/stats/summary`,{headers:dt()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function S1e(e){const t=await rt(`${yo}/${e}/register`,{method:"POST",headers:dt()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function _1e(e){const t=await rt(`${yo}/${e}/ban`,{method:"POST",headers:dt()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function xC(e){const t=localStorage.getItem("access-token");return`${yo}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}function N1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,s]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m]=y.useState(20),[p,g]=y.useState(""),[x,j]=y.useState("all"),[w,b]=y.useState("all"),[N,E]=y.useState("all"),[O,A]=y.useState(null),[C,k]=y.useState(!1),[T,M]=y.useState(!1),[R,B]=y.useState(!1),{toast:$}=yr(),H=y.useCallback(async()=>{try{s(!0);const I=await y1e({page:l,page_size:m,search:p||void 0,is_registered:x==="all"?void 0:x==="registered",is_banned:w==="all"?void 0:w==="banned",format:N==="all"?void 0:N,sort_by:"usage_count",sort_order:"desc"});t(I.data),f(I.total)}catch(I){const z=I instanceof Error?I.message:"加载表情包列表失败";$({title:"错误",description:z,variant:"destructive"})}finally{s(!1)}},[l,m,p,x,w,N,$]),V=async()=>{try{const I=await j1e();r(I.data)}catch(I){console.error("加载统计数据失败:",I)}};y.useEffect(()=>{H()},[H]),y.useEffect(()=>{V()},[]);const q=async I=>{try{const z=await x1e(I.id);A(z.data),k(!0)}catch(z){const Y=z instanceof Error?z.message:"加载详情失败";$({title:"错误",description:Y,variant:"destructive"})}},G=I=>{A(I),M(!0)},L=I=>{A(I),B(!0)},D=async()=>{if(O)try{await w1e(O.id),$({title:"成功",description:"表情包已删除"}),B(!1),A(null),H(),V()}catch(I){const z=I instanceof Error?I.message:"删除失败";$({title:"错误",description:z,variant:"destructive"})}},U=async I=>{try{await S1e(I.id),$({title:"成功",description:"表情包已注册"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"注册失败";$({title:"错误",description:Y,variant:"destructive"})}},K=async I=>{try{await _1e(I.id),$({title:"成功",description:"表情包已封禁"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"封禁失败";$({title:"错误",description:Y,variant:"destructive"})}},J=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"总数"}),i.jsx(vt,{className:"text-2xl",children:n.total})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"已注册"}),i.jsx(vt,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"已封禁"}),i.jsx(vt,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"未注册"}),i.jsx(vt,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsxs(vt,{className:"flex items-center gap-2",children:[i.jsx(eC,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(Ct,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"描述或哈希值...",value:p,onChange:I=>{g(I.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"注册状态"}),i.jsxs(Dt,{value:x,onValueChange:I=>{j(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"registered",children:"已注册"}),i.jsx(De,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"封禁状态"}),i.jsxs(Dt,{value:w,onValueChange:I=>{b(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"banned",children:"已封禁"}),i.jsx(De,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"格式"}),i.jsxs(Dt,{value:N,onValueChange:I=>{E(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),J.map(I=>i.jsxs(De,{value:I,children:[I.toUpperCase()," (",n?.formats[I],")"]},I))]})]})]})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(oe,{variant:"outline",size:"sm",onClick:H,disabled:a,children:[i.jsx(is,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"表情包列表"}),i.jsxs(Wn,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-16",children:"预览"}),i.jsx(nt,{children:"描述"}),i.jsx(nt,{children:"格式"}),i.jsx(nt,{children:"情绪标签"}),i.jsx(nt,{className:"text-center",children:"状态"}),i.jsx(nt,{className:"text-right",children:"使用次数"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(I=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:xC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const te=Y.parentElement;te&&(te.innerHTML='')}})})}),i.jsx(Ge,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[I.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:"outline",children:I.format.toUpperCase()})}),i.jsx(Ge,{children:i.jsx(DL,{emotions:I.emotion})}),i.jsx(Ge,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[I.is_registered&&i.jsxs(Ft,{variant:"default",className:"bg-green-600",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Ft,{variant:"destructive",children:[i.jsx(XN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Ge,{className:"text-right font-mono",children:I.usage_count}),i.jsx(Ge,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>q(I),children:[i.jsx(Mu,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>G(I),children:[i.jsx(Ru,{className:"h-4 w-4 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>U(I),className:"text-green-600 hover:text-green-700",children:[i.jsx(Pr,{className:"h-4 w-4 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>K(I),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(ZI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>L(I),className:"text-red-600 hover:text-red-700",children:[i.jsx(It,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},I.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(I=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:xC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const te=Y.parentElement;te&&(te.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[I.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Ft,{variant:"outline",className:"text-xs flex-shrink-0",children:I.format.toUpperCase()}),I.is_registered&&i.jsxs(Ft,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Ft,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(XN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",I.usage_count]})]}),I.emotion&&I.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(DL,{emotions:I.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>q(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Mu,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>G(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>U(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>K(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(ZI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>L(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},I.id))}),d>m&&i.jsxs("div",{className:"flex items-center justify-between mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(I=>Math.max(1,I-1)),disabled:l===1,children:[i.jsx(tE,{className:"h-4 w-4"}),"上一页"]}),i.jsxs("div",{className:"text-sm",children:["第 ",l," / ",Math.ceil(d/m)," 页"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(I=>I+1),disabled:l>=Math.ceil(d/m),children:["下一页",i.jsx(nE,{className:"h-4 w-4"})]})]})]})]})]}),i.jsx(C1e,{emoji:O,open:C,onOpenChange:k}),i.jsx(O1e,{emoji:O,open:T,onOpenChange:M,onSuccess:()=>{H(),V()}})]})}),i.jsx(sr,{open:R,onOpenChange:B,children:i.jsxs(Kn,{children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"确认删除"}),i.jsx(vr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>B(!1),children:"取消"}),i.jsx(oe,{variant:"destructive",onClick:D,children:"删除"})]})]})})]})}function C1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsx(Xn,{children:i.jsx(Zn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:xC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const s=a.target;s.style.display="none";const l=s.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Ft,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.emotion&&e.emotion.length>0?e.emotion.map((a,s)=>i.jsx(Ft,{variant:"secondary",children:a},s)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Ft,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Ft,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Ft,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function O1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=yr();y.useEffect(()=>{e&&(s(e.description||""),u(e.emotion?e.emotion.join(", "):""),f(e.is_registered),p(e.is_banned))},[e]);const w=async()=>{if(e)try{x(!0);const b=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean);await b1e(e.id,{description:a||void 0,emotion:b.length>0?b:void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(b){const N=b instanceof Error?b.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表情包"}),i.jsx(vr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(Q,{children:"描述"}),i.jsx(Xt,{value:a,onChange:b=>s(b.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(Q,{children:"情绪标签"}),i.jsx(Ne,{value:l,onChange:b=>u(b.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"is_registered",checked:d,onCheckedChange:b=>f(b===!0)}),i.jsx(Q,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"is_banned",checked:m,onCheckedChange:b=>p(b===!0)}),i.jsx(Q,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:w,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function DL({emotions:e}){if(!e||e.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const t=(a,s=6)=>a.length<=s?a:a.slice(0,s)+"...",n=e.slice(0,3),r=e.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[n.map((a,s)=>i.jsx(Ft,{variant:"secondary",className:"text-xs flex-shrink-0",title:a,children:t(a)},s)),r>0&&i.jsxs(Ft,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${r} 个标签: ${e.slice(3).join(", ")}`,children:["+",r]})]})}const rd="/api/webui/expression";async function E1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await rt(`${rd}/list?${t}`,{headers:dt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function A1e(e){const t=await rt(`${rd}/${e}`,{headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function T1e(e){const t=await rt(`${rd}/`,{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function k1e(e,t){const n=await rt(`${rd}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function M1e(e){const t=await rt(`${rd}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function P1e(){const e=await rt(`${rd}/stats/summary`,{headers:dt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function R1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(null),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(!1),[O,A]=y.useState(null),[C,k]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:T}=yr(),M=async()=>{try{r(!0);const q=await E1e({page:l,page_size:d,search:f||void 0});t(q.data),s(q.total)}catch(q){T({title:"加载失败",description:q instanceof Error?q.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},R=async()=>{try{const q=await P1e();k(q.data)}catch(q){console.error("加载统计数据失败:",q)}};y.useEffect(()=>{M(),R()},[l,d,f]);const B=async q=>{try{const G=await A1e(q.id);g(G.data),j(!0)}catch(G){T({title:"加载详情失败",description:G instanceof Error?G.message:"无法加载表达方式详情",variant:"destructive"})}},$=q=>{g(q),b(!0)},H=async q=>{try{await M1e(q.id),T({title:"删除成功",description:`已删除表达方式: ${q.situation}`}),A(null),M(),R()}catch(G){T({title:"删除失败",description:G instanceof Error?G.message:"无法删除表达方式",variant:"destructive"})}},V=q=>q?new Date(q*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Gh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(oe,{onClick:()=>E(!0),className:"gap-2",children:[i.jsx(ir,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:C.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:C.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:C.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(Q,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索情境、风格或上下文...",value:f,onChange:q=>m(q.target.value),className:"pl-9"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"情境"}),i.jsx(nt,{children:"风格"}),i.jsx(nt,{children:"聊天ID"}),i.jsx(nt,{children:"最后活跃"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n?i.jsx(An,{children:i.jsx(Ge,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(q=>i.jsxs(An,{children:[i.jsx(Ge,{className:"font-medium max-w-xs truncate",children:q.situation}),i.jsx(Ge,{className:"max-w-xs truncate",children:q.style}),i.jsx(Ge,{className:"font-mono text-sm",children:q.chat_id}),i.jsx(Ge,{className:"text-sm text-muted-foreground",children:V(q.last_active_time)}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>B(q),children:i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>$(q),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>A(q),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},q.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(q=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:q.situation,children:q.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:q.style,children:q.style})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:q.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:V(q.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>B(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Va,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>$(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>A(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},q.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(D1e,{expression:p,open:x,onOpenChange:j}),i.jsx($1e,{open:N,onOpenChange:E,onSuccess:()=>{M(),R(),E(!1)}}),i.jsx(I1e,{expression:p,open:w,onOpenChange:b,onSuccess:()=>{M(),R(),b(!1)}}),i.jsx(bn,{open:!!O,onOpenChange:()=>A(null),children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除表达方式 "',O?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>O&&H(O),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function D1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"表达方式详情"}),i.jsx(vr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Mc,{label:"情境",value:e.situation}),i.jsx(Mc,{label:"风格",value:e.style}),i.jsx(Mc,{icon:Eg,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Mc,{icon:Eg,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Mc,{icon:ll,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Mc,{icon:ll,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx(Br,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Mc({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function $1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[s,l]=y.useState(!1),{toast:u}=yr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await T1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"新增表达方式"}),i.jsx(vr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"context",children:"上下文"}),i.jsx(Xt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Xt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(oe,{onClick:d,disabled:s,children:s?"创建中...":"创建"})]})]})})}function I1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=yr();y.useEffect(()=>{e&&s({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await k1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表达方式"}),i.jsx(vr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ne,{id:"edit_situation",value:a.situation||"",onChange:m=>s({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ne,{id:"edit_style",value:a.style||"",onChange:m=>s({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ne,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>s({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Xt,{id:"edit_context",value:a.context||"",onChange:m=>s({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Xt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>s({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}const nm="/api/webui/person";async function L1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await rt(`${nm}/list?${t}`,{headers:dt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function B1e(e){const t=await rt(`${nm}/${e}`,{headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function z1e(e,t){const n=await rt(`${nm}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function q1e(e){const t=await rt(`${nm}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function F1e(){const e=await rt(`${nm}/stats/summary`,{headers:dt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function U1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(void 0),[x,j]=y.useState(void 0),[w,b]=y.useState(null),[N,E]=y.useState(!1),[O,A]=y.useState(!1),[C,k]=y.useState(null),[T,M]=y.useState({total:0,known:0,unknown:0,platforms:{}}),{toast:R}=yr(),B=async()=>{try{r(!0);const D=await L1e({page:l,page_size:d,search:f||void 0,is_known:p,platform:x});t(D.data),s(D.total)}catch(D){R({title:"加载失败",description:D instanceof Error?D.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},$=async()=>{try{const D=await F1e();M(D.data)}catch(D){console.error("加载统计数据失败:",D)}};y.useEffect(()=>{B(),$()},[l,d,f,p,x]);const H=async D=>{try{const U=await B1e(D.person_id);b(U.data),E(!0)}catch(U){R({title:"加载详情失败",description:U instanceof Error?U.message:"无法加载人物详情",variant:"destructive"})}},V=D=>{b(D),A(!0)},q=async D=>{try{await q1e(D.person_id),R({title:"删除成功",description:`已删除人物信息: ${D.person_name||D.nickname||D.user_id}`}),k(null),B(),$()}catch(U){R({title:"删除失败",description:U instanceof Error?U.message:"无法删除人物信息",variant:"destructive"})}},G=y.useMemo(()=>Object.keys(T.platforms),[T.platforms]),L=D=>D?new Date(D*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(tye,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:T.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:T.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:T.unknown})]})]}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(Q,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:f,onChange:D=>m(D.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(Dt,{value:p===void 0?"all":p.toString(),onValueChange:D=>{g(D==="all"?void 0:D==="true"),u(1)},children:[i.jsx(Ot,{id:"filter-known",className:"mt-1.5",children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"true",children:"已认识"}),i.jsx(De,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(Dt,{value:x||"all",onValueChange:D=>{j(D==="all"?void 0:D),u(1)},children:[i.jsx(Ot,{id:"filter-platform",className:"mt-1.5",children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部平台"}),G.map(D=>i.jsxs(De,{value:D,children:[D," (",T.platforms[D],")"]},D))]})]})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"状态"}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"昵称"}),i.jsx(nt,{children:"平台"}),i.jsx(nt,{children:"用户ID"}),i.jsx(nt,{children:"最后更新"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(D=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"})}),i.jsx(Ge,{className:"font-medium",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Ge,{children:D.nickname||"-"}),i.jsx(Ge,{children:D.platform}),i.jsx(Ge,{className:"font-mono text-sm",children:D.user_id}),i.jsx(Ge,{className:"text-sm text-muted-foreground",children:L(D.last_know)}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>H(D),children:i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>V(D),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>k(D),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},D.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(D=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsx("div",{className:"flex items-start justify-between gap-2",children:i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),D.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",D.nickname]})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:D.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:D.user_id,children:D.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:L(D.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>H(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Va,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>V(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>k(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},D.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(H1e,{person:w,open:N,onOpenChange:E}),i.jsx(W1e,{person:w,open:O,onOpenChange:A,onSuccess:()=>{B(),$(),A(!1)}}),i.jsx(bn,{open:!!C,onOpenChange:()=>k(null),children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除人物信息 "',C?.person_name||C?.nickname||C?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>C&&q(C),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function H1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"人物详情"}),i.jsxs(vr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Gi,{icon:gF,label:"人物名称",value:e.person_name}),i.jsx(Gi,{icon:Gh,label:"昵称",value:e.nickname}),i.jsx(Gi,{icon:Eg,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Gi,{icon:Eg,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Gi,{label:"平台",value:e.platform}),i.jsx(Gi,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,s)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},s))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Gi,{icon:ll,label:"认识时间",value:r(e.know_times)}),i.jsx(Gi,{icon:ll,label:"首次记录",value:r(e.know_since)}),i.jsx(Gi,{icon:ll,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx(Br,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Gi({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function W1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=yr();y.useEffect(()=>{e&&s({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await z1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑人物信息"}),i.jsxs(vr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ne,{id:"person_name",value:a.person_name||"",onChange:m=>s({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:a.nickname||"",onChange:m=>s({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Xt,{id:"name_reason",value:a.name_reason||"",onChange:m=>s({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Xt,{id:"memory_points",value:a.memory_points||"",onChange:m=>s({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(lt,{id:"is_known",checked:a.is_known,onCheckedChange:m=>s({...a,is_known:m})})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function V1e(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const G1e={},xf={};function Jo(e,t){try{const r=(G1e[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in xf?xf[r]:$L(r,r.split(":"))}catch{if(e in xf)return xf[e];const n=e?.match(Y1e);return n?$L(e,n.slice(1)):NaN}}const Y1e=/([+-]\d\d):?(\d\d)?/;function $L(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return xf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class hi extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Jo(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),AH(this),bC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new hi(...n,t):new hi(Date.now(),t)}withTimeZone(t){return new hi(+this,t)}getTimezoneOffset(){const t=-Jo(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),bC(this),+this}[Symbol.for("constructDateFrom")](t){return new hi(+new Date(t),this.timeZone)}}const IL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!IL.test(e))return;const t=e.replace(IL,"$1UTC");hi.prototype[t]&&(e.startsWith("get")?hi.prototype[e]=function(){return this.internal[t]()}:(hi.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),K1e(this),+this},hi.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),bC(this),+this}))});function bC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Jo(e.timeZone,e)*60))}function K1e(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),AH(e)}function AH(e){const t=Jo(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),l=a-s,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(Jo(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=Jo(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),w=-new Date(+e).getTimezoneOffset()-x,b=x!==n,N=w-d;if(b&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const E=Jo(e.timeZone,e),O=E>0?Math.floor(E):Math.ceil(E),A=x-O;A&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+A),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+A))}}class dr extends hi{static tz(t,...n){return n.length?new dr(...n,t):new dr(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${V1e(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new dr(+this,t)}[Symbol.for("constructDateFrom")](t){return new dr(+new Date(t),this.timeZone)}}const TH=6048e5,X1e=864e5,LL=Symbol.for("constructDateFrom");function kn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&LL in e?e[LL](t):e instanceof Date?new e.constructor(t):new Date(t)}function Ut(e,t){return kn(t||e,e)}function kH(e,t,n){const r=Ut(e,n?.in);return isNaN(t)?kn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function MH(e,t,n){const r=Ut(e,n?.in);if(isNaN(t))return kn(e,NaN);if(!t)return r;const a=r.getDate(),s=kn(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const l=s.getDate();return a>=l?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}let Z1e={};function rm(){return Z1e}function oo(e,t){const n=rm(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Ut(e,t?.in),s=a.getDay(),l=(s=s.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function BL(e){const t=Ut(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Rl(e,...t){const n=kn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function _h(e,t){const n=Ut(e,t?.in);return n.setHours(0,0,0,0),n}function RH(e,t,n){const[r,a]=Rl(n?.in,e,t),s=_h(r),l=_h(a),u=+s-BL(s),d=+l-BL(l);return Math.round((u-d)/X1e)}function Q1e(e,t){const n=PH(e,t),r=kn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Sh(r)}function J1e(e,t,n){return kH(e,t*7,n)}function eSe(e,t,n){return MH(e,t*12,n)}function tSe(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=kn.bind(null,a));const s=Ut(a,r);(!n||n{!r&&typeof a=="object"&&(r=kn.bind(null,a));const s=Ut(a,r);(!n||n>s||isNaN(+s))&&(n=s)}),kn(r,n||NaN)}function rSe(e,t,n){const[r,a]=Rl(n?.in,e,t);return+_h(r)==+_h(a)}function DH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function aSe(e){return!(!DH(e)&&typeof e!="number"||isNaN(+Ut(e)))}function iSe(e,t,n){const[r,a]=Rl(n?.in,e,t),s=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return s*12+l}function sSe(e,t){const n=Ut(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function $H(e,t){const[n,r]=Rl(e,t.start,t.end);return{start:n,end:r}}function oSe(e,t){const{start:n,end:r}=$H(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=s;)d.push(kn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function lSe(e,t){const n=Ut(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function cSe(e,t){const n=Ut(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function IH(e,t){const n=Ut(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function uSe(e,t){const{start:n,end:r}=$H(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=s;)d.push(kn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function LH(e,t){const n=rm(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Ut(e,t?.in),s=a.getDay(),l=(s{let r;const a=fSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function eu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const mSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},pSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},vSe={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},gSe={date:eu({formats:mSe,defaultWidth:"full"}),time:eu({formats:pSe,defaultWidth:"full"}),dateTime:eu({formats:vSe,defaultWidth:"full"})},ySe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},xSe=(e,t,n,r)=>ySe[e];function oi(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const bSe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},wSe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},jSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},SSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},_Se={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},NSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},CSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},OSe={ordinalNumber:CSe,era:oi({values:bSe,defaultWidth:"wide"}),quarter:oi({values:wSe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:oi({values:jSe,defaultWidth:"wide"}),day:oi({values:SSe,defaultWidth:"wide"}),dayPeriod:oi({values:_Se,defaultWidth:"wide",formattingValues:NSe,defaultFormattingWidth:"wide"})};function li(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const l=s[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?ASe(u,p=>p.test(l)):ESe(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function ESe(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function ASe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const TSe=/^(\d+)(th|st|nd|rd)?/i,kSe=/\d+/i,MSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},PSe={any:[/^b/i,/^(a|c)/i]},RSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},DSe={any:[/1/i,/2/i,/3/i,/4/i]},$Se={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ISe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},LSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},BSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},zSe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},qSe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},FSe={ordinalNumber:BH({matchPattern:TSe,parsePattern:kSe,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:MSe,defaultMatchWidth:"wide",parsePatterns:PSe,defaultParseWidth:"any"}),quarter:li({matchPatterns:RSe,defaultMatchWidth:"wide",parsePatterns:DSe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:$Se,defaultMatchWidth:"wide",parsePatterns:ISe,defaultParseWidth:"any"}),day:li({matchPatterns:LSe,defaultMatchWidth:"wide",parsePatterns:BSe,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:zSe,defaultMatchWidth:"any",parsePatterns:qSe,defaultParseWidth:"any"})},DE={code:"en-US",formatDistance:hSe,formatLong:gSe,formatRelative:xSe,localize:OSe,match:FSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function USe(e,t){const n=Ut(e,t?.in);return RH(n,IH(n))+1}function zH(e,t){const n=Ut(e,t?.in),r=+Sh(n)-+Q1e(n);return Math.round(r/TH)+1}function qH(e,t){const n=Ut(e,t?.in),r=n.getFullYear(),a=rm(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=kn(t?.in||e,0);l.setFullYear(r+1,0,s),l.setHours(0,0,0,0);const u=oo(l,t),d=kn(t?.in||e,0);d.setFullYear(r,0,s),d.setHours(0,0,0,0);const f=oo(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function HSe(e,t){const n=rm(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=qH(e,t),s=kn(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),oo(s,t)}function FH(e,t){const n=Ut(e,t?.in),r=+oo(n,t)-+HSe(n,t);return Math.round(r/TH)+1}function Pt(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Fs={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Pt(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Pt(n+1,2)},d(e,t){return Pt(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Pt(e.getHours()%12||12,t.length)},H(e,t){return Pt(e.getHours(),t.length)},m(e,t){return Pt(e.getMinutes(),t.length)},s(e,t){return Pt(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return Pt(a,t.length)}},Pc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},zL={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Fs.y(e,t)},Y:function(e,t,n,r){const a=qH(e,r),s=a>0?a:1-a;if(t==="YY"){const l=s%100;return Pt(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):Pt(s,t.length)},R:function(e,t){const n=PH(e);return Pt(n,t.length)},u:function(e,t){const n=e.getFullYear();return Pt(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Pt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Pt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Fs.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Pt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=FH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):Pt(a,t.length)},I:function(e,t,n){const r=zH(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Pt(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Fs.d(e,t)},D:function(e,t,n){const r=USe(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Pt(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return Pt(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return Pt(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return Pt(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Pc.noon:r===0?a=Pc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Pc.evening:r>=12?a=Pc.afternoon:r>=4?a=Pc.morning:a=Pc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Fs.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Fs.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Pt(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Pt(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Fs.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Fs.s(e,t)},S:function(e,t){return Fs.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return FL(r);case"XXXX":case"XX":return Vo(r);case"XXXXX":case"XXX":default:return Vo(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return FL(r);case"xxxx":case"xx":return Vo(r);case"xxxxx":case"xxx":default:return Vo(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+qL(r,":");case"OOOO":default:return"GMT"+Vo(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+qL(r,":");case"zzzz":default:return"GMT"+Vo(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Pt(r,t.length)},T:function(e,t,n){return Pt(+e,t.length)}};function qL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+Pt(s,2)}function FL(e,t){return e%60===0?(e>0?"-":"+")+Pt(Math.abs(e)/60,2):Vo(e,t)}function Vo(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Pt(Math.trunc(r/60),2),s=Pt(r%60,2);return n+a+t+s}const UL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},UH=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},WSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return UL(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",UL(r,t)).replace("{{time}}",UH(a,t))},VSe={p:UH,P:WSe},GSe=/^D+$/,YSe=/^Y+$/,KSe=["D","DD","YY","YYYY"];function XSe(e){return GSe.test(e)}function ZSe(e){return YSe.test(e)}function QSe(e,t,n){const r=JSe(e,t,n);if(console.warn(r),KSe.includes(e))throw new RangeError(r)}function JSe(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const e_e=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,t_e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,n_e=/^'([^]*?)'?$/,r_e=/''/g,a_e=/[a-zA-Z]/;function pv(e,t,n){const r=rm(),a=n?.locale??r.locale??DE,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=Ut(e,n?.in);if(!aSe(u))throw new RangeError("Invalid time value");let d=t.match(t_e).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=VSe[p];return g(m,a.formatLong)}return m}).join("").match(e_e).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:i_e(m)};if(zL[p])return{isToken:!0,value:m};if(p.match(a_e))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:s,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&ZSe(p)||!n?.useAdditionalDayOfYearTokens&&XSe(p))&&QSe(p,t,String(e));const g=zL[p[0]];return g(u,p,a.localize,f)}).join("")}function i_e(e){const t=e.match(n_e);return t?t[1].replace(r_e,"'"):e}function s_e(e,t){const n=Ut(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=kn(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function o_e(e,t){return Ut(e,t?.in).getMonth()}function l_e(e,t){return Ut(e,t?.in).getFullYear()}function c_e(e,t){return+Ut(e)>+Ut(t)}function u_e(e,t){return+Ut(e)<+Ut(t)}function d_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return+oo(r,n)==+oo(a,n)}function f_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function h_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function m_e(e,t,n){const r=Ut(e,n?.in),a=r.getFullYear(),s=r.getDate(),l=kn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=s_e(l);return r.setMonth(t,Math.min(s,u)),r}function p_e(e,t,n){const r=Ut(e,n?.in);return isNaN(+r)?kn(e,NaN):(r.setFullYear(t),r)}const HL=5,v_e=4;function g_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),s=t.addDays(a,HL*7-1);return t.getMonth(e)===t.getMonth(s)?HL:v_e}function HH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function y_e(e,t){const n=HH(e,t),r=g_e(e,t);return t.addDays(n,r*7-1)}class oa{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?dr.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,s)=>this.overrides?.newDate?this.overrides.newDate(r,a,s):this.options.timeZone?new dr(r,a,s,this.options.timeZone):new Date(r,a,s),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):kH(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):MH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):J1e(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):eSe(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):RH(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):iSe(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):oSe(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):uSe(r),s=new Set(a.map(u=>this.getYear(u)));if(s.size===a.length)return a;const l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):y_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):dSe(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):sSe(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):LH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):cSe(r),this.format=(r,a,s)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):pv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):zH(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):o_e(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):l_e(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):FH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):c_e(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):u_e(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):DH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):rSe(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):f_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):h_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):tSe(r),this.min=r=>this.overrides?.min?this.overrides.min(r):nSe(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):m_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):p_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):HH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):_h(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):Sh(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):lSe(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):oo(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):IH(r),this.options={locale:DE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&oa.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,s=n?.code;if(s&&oa.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}oa.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Ci=new oa;class WH{constructor(t,n,r=Ci){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class x_e{constructor(t,n){this.date=t,this.weeks=n}}class b_e{constructor(t,n){this.days=n,this.weekNumber=t}}function w_e(e){return W.createElement("button",{...e})}function j_e(e){return W.createElement("span",{...e})}function S_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function __e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function N_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var Be;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(Be||(Be={}));var on;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(on||(on={}));var Ua;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Ua||(Ua={}));var Jr;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(Jr||(Jr={}));function C_e(e){const{options:t,className:n,components:r,classNames:a,...s}=e,l=[a[Be.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===s.value);return W.createElement("span",{"data-disabled":s.disabled,className:a[Be.DropdownRoot]},W.createElement(r.Select,{className:l,...s},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[Be.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[Be.Chevron]})))}function O_e(e){return W.createElement("div",{...e})}function E_e(e){return W.createElement("div",{...e})}function A_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function T_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function k_e(e){return W.createElement("table",{...e})}function M_e(e){return W.createElement("div",{...e})}const VH=y.createContext(void 0);function am(){const e=y.useContext(VH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function P_e(e){const{components:t}=am();return W.createElement(t.Dropdown,{...e})}function R_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...s}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=am(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...s},W.createElement(l.PreviousMonthButton,{type:"button",className:u[Be.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[Be.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[Be.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[Be.Chevron]})))}function D_e(e){const{components:t}=am();return W.createElement(t.Button,{...e})}function $_e(e){return W.createElement("option",{...e})}function I_e(e){const{components:t}=am();return W.createElement(t.Button,{...e})}function L_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function B_e(e){return W.createElement("select",{...e})}function z_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function q_e(e){return W.createElement("th",{...e})}function F_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function U_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function H_e(e){return W.createElement("th",{...e})}function W_e(e){return W.createElement("tbody",{...e})}function V_e(e){const{components:t}=am();return W.createElement(t.Dropdown,{...e})}const G_e=Object.freeze(Object.defineProperty({__proto__:null,Button:w_e,CaptionLabel:j_e,Chevron:S_e,Day:__e,DayButton:N_e,Dropdown:C_e,DropdownNav:O_e,Footer:E_e,Month:A_e,MonthCaption:T_e,MonthGrid:k_e,Months:M_e,MonthsDropdown:P_e,Nav:R_e,NextMonthButton:D_e,Option:$_e,PreviousMonthButton:I_e,Root:L_e,Select:B_e,Week:z_e,WeekNumber:U_e,WeekNumberHeader:H_e,Weekday:q_e,Weekdays:F_e,Weeks:W_e,YearsDropdown:V_e},Symbol.toStringTag,{value:"Module"}));function Ji(e,t,n=!1,r=Ci){let{from:a,to:s}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&s?(l(s,a)<0&&([a,s]=[s,a]),l(t,a)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?u(s,t):!n&&a?u(a,t):!1}function GH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function $E(e){return!!(e&&typeof e=="object"&&"from"in e)}function YH(e){return!!(e&&typeof e=="object"&&"after"in e)}function KH(e){return!!(e&&typeof e=="object"&&"before"in e)}function XH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function ZH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function es(e,t,n=Ci){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:s,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(ZH(u,n))return u.includes(e);if($E(u))return Ji(u,e,!1,n);if(XH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(GH(u)){const d=s(u.before,e),f=s(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return YH(u)?s(e,u.after)>0:KH(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function Y_e(e,t,n,r,a){const{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:w,isAfter:b}=a,N=n&&x(n),E=r&&w(r),O={[on.focused]:[],[on.outside]:[],[on.disabled]:[],[on.hidden]:[],[on.today]:[]},A={};for(const C of e){const{date:k,displayMonth:T}=C,M=!!(T&&!g(k,T)),R=!!(N&&j(k,N)),B=!!(E&&b(k,E)),$=!!(s&&es(k,s,a)),H=!!(l&&es(k,l,a))||R||B||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&O.outside.push(C),$&&O.disabled.push(C),H&&O.hidden.push(C),V&&O.today.push(C),u&&Object.keys(u).forEach(q=>{const G=u?.[q];G&&es(k,G,a)&&(A[q]?A[q].push(C):A[q]=[C])})}return C=>{const k={[on.focused]:!1,[on.disabled]:!1,[on.hidden]:!1,[on.outside]:!1,[on.today]:!1},T={};for(const M in O){const R=O[M];k[M]=R.some(B=>B===C)}for(const M in A)T[M]=A[M].some(R=>R===C);return{...k,...T}}}function K_e(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[s])=>(n[s]?a.push(n[s]):t[on[s]]?a.push(t[on[s]]):t[Ua[s]]&&a.push(t[Ua[s]]),a),[t[Be.Day]])}function X_e(e){return{...G_e,...e}}function Z_e(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function IE(){const e={};for(const t in Be)e[Be[t]]=`rdp-${Be[t]}`;for(const t in on)e[on[t]]=`rdp-${on[t]}`;for(const t in Ua)e[Ua[t]]=`rdp-${Ua[t]}`;for(const t in Jr)e[Jr[t]]=`rdp-${Jr[t]}`;return e}function QH(e,t,n){return(n??new oa(t)).formatMonthYear(e)}const Q_e=QH;function J_e(e,t,n){return(n??new oa(t)).format(e,"d")}function eNe(e,t=Ci){return t.format(e,"LLLL")}function tNe(e,t,n){return(n??new oa(t)).format(e,"cccccc")}function nNe(e,t=Ci){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function rNe(){return""}function JH(e,t=Ci){return t.format(e,"yyyy")}const aNe=JH,iNe=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:QH,formatDay:J_e,formatMonthCaption:Q_e,formatMonthDropdown:eNe,formatWeekNumber:nNe,formatWeekNumberHeader:rNe,formatWeekdayName:tNe,formatYearCaption:aNe,formatYearDropdown:JH},Symbol.toStringTag,{value:"Module"}));function sNe(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...iNe,...e}}function oNe(e,t,n,r,a){const{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),w=t&&gs(n)||!1;return{value:j,label:x,disabled:w}})}function lNe(e,t={},n={}){let r={...t?.[Be.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function cNe(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),s=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);s.push(u)}return s}function uNe(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=s(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function e9(e,t,n,r){let a=(r??new oa(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const dNe=e9;function t9(e,t,n){return(n??new oa(t)).formatMonthYear(e)}const fNe=t9;function hNe(e,t,n,r){let a=(r??new oa(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function mNe(e){return"Choose the Month"}function pNe(){return""}function vNe(e){return"Go to the Next Month"}function gNe(e){return"Go to the Previous Month"}function yNe(e,t,n){return(n??new oa(t)).format(e,"cccc")}function xNe(e,t){return`Week ${e}`}function bNe(e){return"Week Number"}function wNe(e){return"Choose the Year"}const jNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:fNe,labelDay:dNe,labelDayButton:e9,labelGrid:t9,labelGridcell:hNe,labelMonthDropdown:mNe,labelNav:pNe,labelNext:vNe,labelPrevious:gNe,labelWeekNumber:xNe,labelWeekNumberHeader:bNe,labelWeekday:yNe,labelYearDropdown:wNe},Symbol.toStringTag,{value:"Module"})),im=e=>e instanceof HTMLElement?e:null,f_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],SNe=e=>im(e.querySelector("[data-animated-month]")),h_=e=>im(e.querySelector("[data-animated-caption]")),m_=e=>im(e.querySelector("[data-animated-weeks]")),_Ne=e=>im(e.querySelector("[data-animated-nav]")),NNe=e=>im(e.querySelector("[data-animated-weekdays]"));function CNe(e,t,{classNames:n,months:r,focused:a,dateLib:s}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=s.isSameMonth(r[0].date,f[0].date),p=s.isAfter(r[0].date,f[0].date),g=p?n[Jr.caption_after_enter]:n[Jr.caption_before_enter],x=p?n[Jr.weeks_after_enter]:n[Jr.weeks_before_enter],j=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(f_(w).forEach(O=>{if(!(O instanceof HTMLElement))return;const A=SNe(O);A&&O.contains(A)&&O.removeChild(A);const C=h_(O);C&&C.classList.remove(g);const k=m_(O);k&&k.classList.remove(x)}),l.current=w):l.current=null,d.current||m||a)return;const b=j instanceof HTMLElement?f_(j):[],N=f_(e.current);if(N?.every(E=>E instanceof HTMLElement)&&b&&b.every(E=>E instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const E=_Ne(e.current);E&&(E.style.zIndex="1"),N.forEach((O,A)=>{const C=b[A];if(!C)return;O.style.position="relative",O.style.overflow="hidden";const k=h_(O);k&&k.classList.add(g);const T=m_(O);T&&T.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),E&&(E.style.zIndex=""),k&&k.classList.remove(g),T&&T.classList.remove(x),O.style.position="",O.style.overflow="",O.contains(C)&&O.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const R=NNe(C);R&&(R.style.opacity="0");const B=h_(C);B&&(B.classList.add(p?n[Jr.caption_before_exit]:n[Jr.caption_after_exit]),B.addEventListener("animationend",M));const $=m_(C);$&&$.classList.add(p?n[Jr.weeks_before_exit]:n[Jr.weeks_after_exit]),O.insertBefore(C,O.firstChild)})}})}function ONe(e,t,n,r){const a=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:w,isAfter:b,startOfBroadcastWeek:N,startOfISOWeek:E,startOfWeek:O}=r,A=d?N(a,r):l?E(a):O(a),C=d?g(s):l?x(j(s)):w(j(s)),k=m(C,A),T=p(s,a)+1,M=[];for(let $=0;$<=k;$++){const H=f(A,$);if(t&&b(H,t))break;M.push(H)}const B=(d?35:42)*T;if(u&&M.length{const a=r.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function ANe(e,t,n,r){const{numberOfMonths:a=1}=n,s=[];for(let l=0;lt)break;s.push(u)}return s}function WL(e,t,n,r){const{month:a,defaultMonth:s,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||s||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(b,r):n.ISOWeek?g(b):x(b),E=n.broadcastCalendar?s(b):n.ISOWeek?l(u(b)):d(u(b)),O=t.filter(T=>T>=N&&T<=E),A=n.broadcastCalendar?35:42;if(n.fixedWeeks&&O.length{const R=A-O.length;return M>E&&M<=a(E,R)});O.push(...T)}const C=O.reduce((T,M)=>{const R=n.ISOWeek?f(M):m(M),B=T.find(H=>H.weekNumber===R),$=new WH(M,b,r);return B?B.days.push($):T.push(new b_e(R,[$])),T},[]),k=new x_e(b,C);return w.push(k),w},[]);return n.reverseMonths?j.reverse():j}function kNe(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:w}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&w&&(r=w),!r&&x&&(r=m(x,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&b&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&b&&(r=f(e.today??p())),[n&&s(n),r&&s(r)]}function MNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?s:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function sx(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function DNe(e,t){const[n,r]=kNe(e,t),{startOfMonth:a,endOfMonth:s}=t,l=WL(e,n,r,t),[u,d]=sx(l,e.month?l:void 0);y.useEffect(()=>{const k=WL(e,n,r,t);d(k)},[e.timeZone]);const f=ANe(u,r,e,t),m=ONe(f,e.endMonth?s(e.endMonth):void 0,e,t),p=TNe(f,m,e,t),g=RNe(p),x=ENe(p),j=PNe(u,n,e,t),w=MNe(u,r,e,t),{disableNavigation:b,onMonthChange:N}=e,E=k=>g.some(T=>T.days.some(M=>M.isEqualTo(k))),O=k=>{if(b)return;let T=a(k);n&&Ta(r)&&(T=a(r)),d(T),N?.(T)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:w,goToMonth:O,goToDay:k=>{E(k)||O(k.date)}}}var ai;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ai||(ai={}));function VL(e){return!e[on.disabled]&&!e[on.hidden]&&!e[on.outside]}function $Ne(e,t,n,r){let a,s=-1;for(const l of e){const u=t(l);VL(u)&&(u[on.focused]&&sVL(t(l)))),a}function INe(e,t,n,r,a,s,l){const{ISOWeek:u,broadcastCalendar:d}=s,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:w,max:b,min:N,startOfBroadcastWeek:E,startOfISOWeek:O,startOfWeek:A}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:T=>d?E(T,l):u?O(T):A(T),endOfWeek:T=>d?x(T):u?j(T):w(T)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=b([r,k]):t==="after"&&a&&(k=N([a,k])),k}function n9(e,t,n,r,a,s,l,u=0){if(u>365)return;const d=INe(e,t,n.date,r,a,s,l),f=!!(s.disabled&&es(d,s.disabled,l)),m=!!(s.hidden&&es(d,s.hidden,l)),p=d,g=new WH(d,p,l);return!f&&!m?g:n9(e,t,g,r,a,s,l,u+1)}function LNe(e,t,n,r,a){const{autoFocus:s}=e,[l,u]=y.useState(),d=$Ne(t.days,n,r||(()=>!1),l),[f,m]=y.useState(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(w,b)=>{if(!f)return;const N=n9(w,b,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(O=>O.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function BNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=sx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,w)=>{let b=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;b=u?.filter(N=>!d(N,x))}else u?.length===p?b=[x]:b=[...b,x];return a||l(b),a?.(b,x,j,w),b},isSelected:f}}function zNe(e,t,n=0,r=0,a=!1,s=Ci){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=s;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=s.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?Ji(e,u,!1,n):ZH(u,n)?u.some(d=>Ji(e,d,!1,n)):$E(u)?u.from&&u.to?GL(e,{from:u.from,to:u.to},n):!1:XH(u)?qNe(e,u.dayOfWeek,n):GH(u)?n.isAfter(u.before,u.after)?GL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):es(e.from,u,n)||es(e.to,u,n):YH(u)||KH(u)?es(e.from,u,n)||es(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function UNe(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:s,onSelect:l}=e,[u,d]=sx(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:w,max:b}=e,N=g?zNe(g,f,w,b,s,t):void 0;return r&&n&&N?.from&&N.to&&FNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&Ji(f,g,!1,t)}}function HNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=sx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function WNe(e,t){const n=HNe(e,t),r=BNe(e,t),a=UNe(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function VNe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new dr(t.today,t.timeZone)),t.month&&(t.month=new dr(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new dr(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new dr(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new dr(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new dr(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(it=>new dr(it,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new dr(t.selected.from,t.timeZone):void 0,to:t.selected.to?new dr(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:s,locale:l,classNames:u}=y.useMemo(()=>{const it={...DE,...t.locale};return{dateLib:new oa({locale:it,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:X_e(t.components),formatters:sNe(t.formatters),labels:{...jNe,...t.labels},locale:it,classNames:{...IE(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:w,onDayMouseEnter:b,onDayMouseLeave:N,onNextClick:E,onPrevClick:O,showWeekNumber:A,styles:C}=t,{formatCaption:k,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:B,formatWeekdayName:$,formatYearDropdown:H}=r,V=DNe(t,s),{days:q,months:G,navStart:L,navEnd:D,previousMonth:U,nextMonth:K,goToMonth:J}=V,I=Y_e(q,t,L,D,s),{isSelected:z,select:Y,selected:te}=WNe(t,s)??{},{blur:ae,focused:ge,isFocusTarget:ee,moveFocus:Se,setFocused:re}=LNe(t,V,I,z??(()=>!1),s),{labelDayButton:we,labelGridcell:je,labelGrid:fe,labelMonthDropdown:Le,labelNav:Oe,labelPrevious:We,labelNext:be,labelWeekday:Ae,labelWeekNumber:ke,labelWeekNumberHeader:Qt,labelYearDropdown:St}=a,Tt=y.useMemo(()=>cNe(s,t.ISOWeek),[s,t.ISOWeek]),Sn=f!==void 0||x!==void 0,le=y.useCallback(()=>{U&&(J(U),O?.(U))},[U,J,O]),ue=y.useCallback(()=>{K&&(J(K),E?.(K))},[J,K,E]),Ve=y.useCallback((it,Gt)=>Ye=>{Ye.preventDefault(),Ye.stopPropagation(),re(it),Y?.(it.date,Gt,Ye),x?.(it.date,Gt,Ye)},[Y,x,re]),Mn=y.useCallback((it,Gt)=>Ye=>{re(it),j?.(it.date,Gt,Ye)},[j,re]),$l=y.useCallback((it,Gt)=>Ye=>{ae(),g?.(it.date,Gt,Ye)},[ae,g]),Il=y.useCallback((it,Gt)=>Ye=>{const wt={ArrowLeft:[Ye.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[Ye.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[Ye.shiftKey?"year":"week","after"],ArrowUp:[Ye.shiftKey?"year":"week","before"],PageUp:[Ye.shiftKey?"year":"month","before"],PageDown:[Ye.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(wt[Ye.key]){Ye.preventDefault(),Ye.stopPropagation();const[qn,st]=wt[Ye.key];Se(qn,st)}w?.(it.date,Gt,Ye)},[Se,w,t.dir]),dx=y.useCallback((it,Gt)=>Ye=>{b?.(it.date,Gt,Ye)},[b]),fm=y.useCallback((it,Gt)=>Ye=>{N?.(it.date,Gt,Ye)},[N]),fx=y.useCallback(it=>Gt=>{const Ye=Number(Gt.target.value),wt=s.setMonth(s.startOfMonth(it),Ye);J(wt)},[s,J]),hx=y.useCallback(it=>Gt=>{const Ye=Number(Gt.target.value),wt=s.setYear(s.startOfMonth(it),Ye);J(wt)},[s,J]),{className:bo,style:br}=y.useMemo(()=>({className:[u[Be.Root],t.className].filter(Boolean).join(" "),style:{...C?.[Be.Root],...t.style}}),[u,t.className,t.style,C]),Qa=Z_e(t),lr=y.useRef(null);CNe(lr,!!t.animate,{classNames:u,months:G,focused:ge,dateLib:s});const mx={dayPickerProps:t,selected:te,select:Y,isSelected:z,months:G,nextMonth:K,previousMonth:U,goToMonth:J,getModifiers:I,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(VH.Provider,{value:mx},W.createElement(n.Root,{rootRef:t.animate?lr:void 0,className:bo,style:br,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...Qa},W.createElement(n.Months,{className:u[Be.Months],style:C?.[Be.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Be.Nav],style:C?.[Be.Nav],"aria-label":Oe(),onPreviousClick:le,onNextClick:ue,previousMonth:U,nextMonth:K}),G.map((it,Gt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[Be.Month],style:C?.[Be.Month],key:Gt,displayIndex:Gt,calendarMonth:it},m==="around"&&!t.hideNavigation&&Gt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[Be.PreviousMonthButton],tabIndex:U?void 0:-1,"aria-disabled":U?void 0:!0,"aria-label":We(U),onClick:le,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:U?void 0:!0,className:u[Be.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[Be.MonthCaption],style:C?.[Be.MonthCaption],calendarMonth:it,displayIndex:Gt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[Be.Dropdowns],style:C?.[Be.Dropdowns]},(()=>{const Ye=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[Be.MonthsDropdown],"aria-label":Le(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:fx(it.date),options:oNe(it.date,L,D,r,s),style:C?.[Be.Dropdown],value:s.getMonth(it.date)}):W.createElement("span",{key:"month"},M(it.date,s)),wt=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[Be.YearsDropdown],"aria-label":St(s.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:hx(it.date),options:uNe(L,D,r,s,!!t.reverseYears),style:C?.[Be.Dropdown],value:s.getYear(it.date)}):W.createElement("span",{key:"year"},H(it.date,s));return s.getMonthYearOrder()==="year-first"?[wt,Ye]:[Ye,wt]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(it.date,s.options,s))):W.createElement(n.CaptionLabel,{className:u[Be.CaptionLabel],role:"status","aria-live":"polite"},k(it.date,s.options,s))),m==="around"&&!t.hideNavigation&&Gt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[Be.NextMonthButton],tabIndex:K?void 0:-1,"aria-disabled":K?void 0:!0,"aria-label":be(K),onClick:ue,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:K?void 0:!0,className:u[Be.Chevron],orientation:t.dir==="rtl"?"left":"right"})),Gt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Be.Nav],style:C?.[Be.Nav],"aria-label":Oe(),onPreviousClick:le,onNextClick:ue,previousMonth:U,nextMonth:K}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":fe(it.date,s.options,s)||void 0,className:u[Be.MonthGrid],style:C?.[Be.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[Be.Weekdays],style:C?.[Be.Weekdays]},A&&W.createElement(n.WeekNumberHeader,{"aria-label":Qt(s.options),className:u[Be.WeekNumberHeader],style:C?.[Be.WeekNumberHeader],scope:"col"},B()),Tt.map(Ye=>W.createElement(n.Weekday,{"aria-label":Ae(Ye,s.options,s),className:u[Be.Weekday],key:String(Ye),style:C?.[Be.Weekday],scope:"col"},$(Ye,s.options,s)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[Be.Weeks],style:C?.[Be.Weeks]},it.weeks.map(Ye=>W.createElement(n.Week,{className:u[Be.Week],key:Ye.weekNumber,style:C?.[Be.Week],week:Ye},A&&W.createElement(n.WeekNumber,{week:Ye,style:C?.[Be.WeekNumber],"aria-label":ke(Ye.weekNumber,{locale:l}),className:u[Be.WeekNumber],scope:"row",role:"rowheader"},R(Ye.weekNumber,s)),Ye.days.map(wt=>{const{date:qn}=wt,st=I(wt);if(st[on.focused]=!st.hidden&&!!ge?.isEqualTo(wt),st[Ua.selected]=z?.(qn)||st.selected,$E(te)){const{from:Bl,to:jo}=te;st[Ua.range_start]=!!(Bl&&jo&&s.isSameDay(qn,Bl)),st[Ua.range_end]=!!(Bl&&jo&&s.isSameDay(qn,jo)),st[Ua.range_middle]=Ji(te,qn,!0,s)}const Ll=lNe(st,C,t.modifiersStyles),wo=K_e(st,u,t.modifiersClassNames),px=!Sn&&!st.hidden?je(qn,st,s.options,s):void 0;return W.createElement(n.Day,{key:`${s.format(qn,"yyyy-MM-dd")}_${s.format(wt.displayMonth,"yyyy-MM")}`,day:wt,modifiers:st,className:wo.join(" "),style:Ll,role:"gridcell","aria-selected":st.selected||void 0,"aria-label":px,"data-day":s.format(qn,"yyyy-MM-dd"),"data-month":wt.outside?s.format(qn,"yyyy-MM"):void 0,"data-selected":st.selected||void 0,"data-disabled":st.disabled||void 0,"data-hidden":st.hidden||void 0,"data-outside":wt.outside||void 0,"data-focused":st.focused||void 0,"data-today":st.today||void 0},!st.hidden&&Sn?W.createElement(n.DayButton,{className:u[Be.DayButton],style:C?.[Be.DayButton],type:"button",day:wt,modifiers:st,disabled:st.disabled||void 0,tabIndex:ee(wt)?0:-1,"aria-label":we(qn,st,s.options,s),onClick:Ve(wt,st),onBlur:$l(wt,st),onFocus:Mn(wt,st),onKeyDown:Il(wt,st),onMouseEnter:dx(wt,st),onMouseLeave:fm(wt,st)},T(qn,s.options,s)):!st.hidden&&T(wt.date,s.options,s))})))))))),t.footer&&W.createElement(n.Footer,{className:u[Be.Footer],style:C?.[Be.Footer],role:"status","aria-live":"polite"},t.footer)))}function YL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:s,components:l,...u}){const d=IE();return i.jsx(VNe,{showOutsideDays:n,className:ce("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...s},classNames:{root:ce("w-fit",d.root),months:ce("relative flex flex-col gap-4 md:flex-row",d.months),month:ce("flex w-full flex-col gap-4",d.month),nav:ce("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:ce(xh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:ce(xh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:ce("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:ce("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:ce("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:ce("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:ce("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:ce("flex",d.weekdays),weekday:ce("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:ce("mt-2 flex w-full",d.week),week_number_header:ce("w-[--cell-size] select-none",d.week_number_header),week_number:ce("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:ce("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:ce("bg-accent rounded-l-md",d.range_start),range_middle:ce("rounded-none",d.range_middle),range_end:ce("bg-accent rounded-r-md",d.range_end),today:ce("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:ce("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:ce("text-muted-foreground opacity-50",d.disabled),hidden:ce("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:ce(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(tE,{className:ce("size-4",f),...p}):m==="right"?i.jsx(nE,{className:ce("size-4",f),...p}):i.jsx(vh,{className:ce("size-4",f),...p}),DayButton:GNe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function GNe({className:e,day:t,modifiers:n,...r}){const a=IE(),s=y.useRef(null);return y.useEffect(()=>{n.focused&&s.current?.focus()},[n.focused]),i.jsx(oe,{ref:s,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:ce("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class YNe{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const Bc=new YNe;typeof window<"u"&&Bc.connect();const KNe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},XNe=(e,t,n)=>{let r;const a=KNe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},ZNe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},QNe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},JNe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},eCe={date:eu({formats:ZNe,defaultWidth:"full"}),time:eu({formats:QNe,defaultWidth:"full"}),dateTime:eu({formats:JNe,defaultWidth:"full"})};function KL(e,t,n){const r="eeee p";return d_e(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const tCe={lastWeek:KL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:KL,other:"PP p"},nCe=(e,t,n,r)=>{const a=tCe[e];return typeof a=="function"?a(t,n,r):a},rCe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},aCe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},iCe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},sCe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},oCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},lCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},cCe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},uCe={ordinalNumber:cCe,era:oi({values:rCe,defaultWidth:"wide"}),quarter:oi({values:aCe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:oi({values:iCe,defaultWidth:"wide"}),day:oi({values:sCe,defaultWidth:"wide"}),dayPeriod:oi({values:oCe,defaultWidth:"wide",formattingValues:lCe,defaultFormattingWidth:"wide"})},dCe=/^(第\s*)?\d+(日|时|分|秒)?/i,fCe=/\d+/i,hCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},mCe={any:[/^(前)/i,/^(公元)/i]},pCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},vCe={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},gCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},yCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},xCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},bCe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},wCe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},jCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},SCe={ordinalNumber:BH({matchPattern:dCe,parsePattern:fCe,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:hCe,defaultMatchWidth:"wide",parsePatterns:mCe,defaultParseWidth:"any"}),quarter:li({matchPatterns:pCe,defaultMatchWidth:"wide",parsePatterns:vCe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:gCe,defaultMatchWidth:"wide",parsePatterns:yCe,defaultParseWidth:"any"}),day:li({matchPatterns:xCe,defaultMatchWidth:"wide",parsePatterns:bCe,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:wCe,defaultMatchWidth:"any",parsePatterns:jCe,defaultParseWidth:"any"})},Qp={code:"zh-CN",formatDistance:XNe,formatLong:eCe,formatRelative:nCe,localize:uCe,match:SCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function _Ce(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,s]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,w]=y.useState(!1),b=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const $=Bc.getAllLogs();t($);const H=Bc.onLog(()=>{t(Bc.getAllLogs())}),V=Bc.onConnectionChange(q=>{w(q)});return()=>{H(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const E=y.useMemo(()=>{const $=new Set(e.map(H=>H.module));return Array.from($).sort()},[e]),O=$=>{switch($){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},A=$=>{switch($){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},C=()=>{window.location.reload()},k=()=>{Bc.clearLogs(),t([])},T=()=>{const $=B.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` +`),H=new Blob([$],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(H),q=document.createElement("a");q.href=V,q.download=`logs-${pv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,q.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},R=()=>{f(void 0),p(void 0)},B=y.useMemo(()=>e.filter($=>{const H=n===""||$.message.toLowerCase().includes(n.toLowerCase())||$.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||$.level===a,q=l==="all"||$.module===l;let G=!0;if(d||m){const L=new Date($.timestamp);if(d){const D=new Date(d);D.setHours(0,0,0,0),G=G&&L>=D}if(m){const D=new Date(m);D.setHours(23,59,59,999),G=G&&L<=D}}return H&&V&&q&&G}),[e,n,a,l,d,m]);return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:ce("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(Xe,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索日志...",value:n,onChange:$=>r($.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(Dt,{value:a,onValueChange:s,children:[i.jsxs(Ot,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(eC,{className:"h-4 w-4 mr-2"}),i.jsx($t,{placeholder:"级别"})]}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部级别"}),i.jsx(De,{value:"DEBUG",children:"DEBUG"}),i.jsx(De,{value:"INFO",children:"INFO"}),i.jsx(De,{value:"WARNING",children:"WARNING"}),i.jsx(De,{value:"ERROR",children:"ERROR"}),i.jsx(De,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(Dt,{value:l,onValueChange:u,children:[i.jsxs(Ot,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(eC,{className:"h-4 w-4 mr-2"}),i.jsx($t,{placeholder:"模块"})]}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部模块"}),E.map($=>i.jsx(De,{value:$,children:$},$))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(QI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?pv(d,"PPP",{locale:Qp}):"开始日期"})]})}),i.jsx(ds,{className:"w-auto p-0",align:"start",children:i.jsx(YL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:Qp})})]}),i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(QI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?pv(m,"PPP",{locale:Qp}):"结束日期"})]})}),i.jsx(ds,{className:"w-auto p-0",align:"start",children:i.jsx(YL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:Qp})})]}),(d||m)&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:R,className:"w-full sm:w-auto h-9",children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(oe,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(yge,{className:"h-4 w-4"}):i.jsx(wge,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(is,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(It,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:T,className:"flex-1 sm:flex-none h-9",children:[i.jsx(QN,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[B.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(Xe,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Wt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:b,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[B.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):B.map($=>i.jsxs("div",{className:ce("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",A($.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:$.timestamp}),i.jsxs("span",{className:ce("text-xs font-semibold",O($.level)),children:["[",$.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:$.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:$.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:$.timestamp}),i.jsxs("span",{className:ce("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",O($.level)),children:["[",$.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:$.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:$.message})]})]},$.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const NCe="Mai-with-u",CCe="plugin-repo",OCe="main",ECe="plugin_details.json";async function ACe(){try{const e=await rt("/api/webui/plugins/fetch-raw",{method:"POST",headers:dt(),body:JSON.stringify({owner:NCe,repo:CCe,branch:OCe,file_path:ECe})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function TCe(){try{const e=await rt("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function kCe(){try{const e=await rt("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function MCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,s=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function PCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const s=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(s)},3e4)},a.onmessage=s=>{try{if(s.data==="pong")return;const l=JSON.parse(s.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=s=>{console.error("Plugin progress WebSocket error:",s),t?.(s)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function Jp(){try{const e=await rt("/api/webui/plugins/installed",{headers:dt()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function ev(e,t){return t.some(n=>n.id===e)}function tv(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function RCe(e,t,n="main"){const r=await rt("/api/webui/plugins/install",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function DCe(e){const t=await rt("/api/webui/plugins/uninstall",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function $Ce(e,t,n="main"){const r=await rt("/api/webui/plugins/update",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}const XL={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function ICe(){const e=la(),[t,n]=y.useState(null),[r,a]=y.useState(""),[s,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[,T]=y.useState([]),{toast:M}=yr();y.useEffect(()=>{let D=null,U=!1;return(async()=>{if(D=PCe(J=>{U||(A(J),J.stage==="success"?setTimeout(()=>{U||A(null)},2e3):J.stage==="error"&&(j(!1),b(J.error||"加载失败")))},J=>{console.error("WebSocket error:",J),U||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(J=>{if(!D){J();return}const I=()=>{D&&D.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),J()):D&&D.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),J()):setTimeout(I,100)};I()}),!U){const J=await TCe();E(J),J.installed||M({title:"Git 未安装",description:J.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!U){const J=await kCe();k(J)}if(!U)try{j(!0),b(null);const J=await ACe();if(!U){const I=await Jp();T(I);const z=J.map(Y=>{const te=ev(Y.id,I),ae=tv(Y.id,I);return{...Y,installed:te,installed_version:ae}});for(const Y of I)!z.some(ae=>ae.id===Y.id)&&Y.manifest&&z.push({id:Y.id,manifest:{manifest_version:Y.manifest.manifest_version||1,name:Y.manifest.name,version:Y.manifest.version,description:Y.manifest.description||"",author:Y.manifest.author,license:Y.manifest.license||"Unknown",host_application:Y.manifest.host_application,homepage_url:Y.manifest.homepage_url,repository_url:Y.manifest.repository_url,keywords:Y.manifest.keywords||[],categories:Y.manifest.categories||[],default_locale:Y.manifest.default_locale||"zh-CN",locales_path:Y.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:Y.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(z)}}catch(J){if(!U){const I=J instanceof Error?J.message:"加载插件列表失败";b(I),M({title:"加载失败",description:I,variant:"destructive"})}}finally{U||j(!1)}})(),()=>{U=!0,D&&D.close()}},[M]);const R=D=>{if(!D.installed&&C&&!B(D))return i.jsxs(Ft,{variant:"destructive",className:"gap-1",children:[i.jsx(gl,{className:"h-3 w-3"}),"不兼容"]});if(D.installed){const U=D.installed_version?.trim(),K=D.manifest.version?.trim();if(U!==K){const J=U?.split(".").map(Number)||[0,0,0],I=K?.split(".").map(Number)||[0,0,0];for(let z=0;z<3;z++){if((I[z]||0)>(J[z]||0))return i.jsxs(Ft,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(gl,{className:"h-3 w-3"}),"可更新"]});if((I[z]||0)<(J[z]||0))break}}return i.jsxs(Ft,{variant:"default",className:"gap-1",children:[i.jsx(Pr,{className:"h-3 w-3"}),"已安装"]})}return null},B=D=>!C||!D.manifest?.host_application?!0:MCe(D.manifest.host_application.min_version,D.manifest.host_application.max_version,C),$=D=>{if(!D.installed||!D.installed_version||!D.manifest?.version)return!1;const U=D.installed_version.trim(),K=D.manifest.version.trim();if(U===K)return!1;const J=U.split(".").map(Number),I=K.split(".").map(Number);for(let z=0;z<3;z++){if((I[z]||0)>(J[z]||0))return!0;if((I[z]||0)<(J[z]||0))return!1}return!1},H=p.filter(D=>{if(!D.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",D.id),!1;const U=r===""||D.manifest.name?.toLowerCase().includes(r.toLowerCase())||D.manifest.description?.toLowerCase().includes(r.toLowerCase())||D.manifest.keywords&&D.manifest.keywords.some(z=>z.toLowerCase().includes(r.toLowerCase())),K=s==="all"||D.manifest.categories&&D.manifest.categories.includes(s);let J=!0;u==="installed"?J=D.installed===!0:u==="updates"&&(J=D.installed===!0&&$(D));const I=!f||!C||B(D);return U&&K&&J&&I}),V=()=>{n(null)},q=async D=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!B(D)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await RCe(D.id,D.manifest.repository_url||"","main"),M({title:"安装成功",description:`${D.manifest.name} 已成功安装`});const U=await Jp();T(U),g(K=>K.map(J=>{if(J.id===D.id){const I=ev(J.id,U),z=tv(J.id,U);return{...J,installed:I,installed_version:z}}return J}))}catch(U){M({title:"安装失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},G=async D=>{try{await DCe(D.id),M({title:"卸载成功",description:`${D.manifest.name} 已成功卸载`});const U=await Jp();T(U),g(K=>K.map(J=>{if(J.id===D.id){const I=ev(J.id,U),z=tv(J.id,U);return{...J,installed:I,installed_version:z}}return J}))}catch(U){M({title:"卸载失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},L=async D=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const U=await $Ce(D.id,D.manifest.repository_url||"","main");M({title:"更新成功",description:`${D.manifest.name} 已从 ${U.old_version} 更新到 ${U.new_version}`});const K=await Jp();T(K),g(J=>J.map(I=>{if(I.id===D.id){const z=ev(I.id,K),Y=tv(I.id,K);return{...I,installed:z,installed_version:Y}}return I}))}catch(U){M({title:"更新失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(oe,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(Pge,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(Xe,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(pt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Kc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(vt,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(Wn,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(Ct,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索插件...",value:r,onChange:D=>a(D.target.value),className:"pl-9"})]}),i.jsxs(Dt,{value:s,onValueChange:l,children:[i.jsx(Ot,{className:"w-full sm:w-[200px]",children:i.jsx($t,{placeholder:"选择分类"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部分类"}),i.jsx(De,{value:"Group Management",children:"群组管理"}),i.jsx(De,{value:"Entertainment & Interaction",children:"娱乐互动"}),i.jsx(De,{value:"Utility Tools",children:"实用工具"}),i.jsx(De,{value:"Content Generation",children:"内容生成"}),i.jsx(De,{value:"Multimedia",children:"多媒体"}),i.jsx(De,{value:"External Integration",children:"外部集成"}),i.jsx(De,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),i.jsx(De,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"compatible-only",checked:f,onCheckedChange:D=>m(D===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(dl,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(eo,{className:"grid w-full grid-cols-3",children:[i.jsxs(Rt,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Rt,{value:"installed",children:["已安装 (",p.filter(D=>D.installed).length,")"]}),i.jsxs(Rt,{value:"updates",children:["可更新 (",p.filter(D=>D.installed&&$(D)).length,")"]})]})}),O&&O.stage==="loading"&&i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(gh,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[O.operation==="fetch"&&"加载插件列表",O.operation==="install"&&`安装插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="uninstall"&&`卸载插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="update"&&`更新插件${O.plugin_id?`: ${O.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[O.progress,"%"]})]}),i.jsx($h,{value:O.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.message}),O.operation==="fetch"&&O.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",O.loaded_plugins," / ",O.total_plugins," 个插件"]})]})}),O&&O.stage==="error"&&O.error&&i.jsx(Xe,{className:"border-destructive bg-destructive/10",children:i.jsx(pt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Kc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(vt,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(Wn,{className:"text-destructive/80",children:O.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(gh,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):w?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Kc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:w}),i.jsx(oe,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):H.length===0?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Lr,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||s!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:H.map(D=>i.jsxs(Xe,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(pt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(vt,{className:"text-xl",children:D.manifest?.name||D.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[D.manifest?.categories&&D.manifest.categories[0]&&i.jsx(Ft,{variant:"secondary",className:"text-xs whitespace-nowrap",children:XL[D.manifest.categories[0]]||D.manifest.categories[0]}),R(D)]})]}),i.jsx(Wn,{className:"line-clamp-2",children:D.manifest?.description||"无描述"})]}),i.jsx(Ct,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(QN,{className:"h-4 w-4"}),i.jsx("span",{children:D.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:D.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[D.manifest?.keywords&&D.manifest.keywords.slice(0,3).map(U=>i.jsx(Ft,{variant:"outline",className:"text-xs",children:U},U)),D.manifest?.keywords&&D.manifest.keywords.length>3&&i.jsxs(Ft,{variant:"outline",className:"text-xs",children:["+",D.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",D.manifest?.version||"unknown"," · ",D.manifest?.author?.name||"Unknown"]}),D.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[D.manifest.host_application.min_version,D.manifest.host_application.max_version?` - ${D.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(eB,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>n(D),children:"查看详情"}),D.installed?$(D)?i.jsxs(oe,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>L(D),children:[i.jsx(is,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(oe,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(D),children:[i.jsx(It,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(oe,{size:"sm",disabled:!N?.installed||O?.operation==="install"||C!==null&&!B(D),title:N?.installed?C!==null&&!B(D)?`不兼容当前版本 (需要 ${D.manifest?.host_application?.min_version||"未知"}${D.manifest?.host_application?.max_version?` - ${D.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>q(D),children:[i.jsx(QN,{className:"h-4 w-4 mr-1"}),O?.operation==="install"&&O?.plugin_id===D.id?"安装中...":"安装"]})]})})]},D.id))}),i.jsx(sr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Xn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Zn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(vr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(Mf,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Ft,{variant:"secondary",children:XL[t.manifest.categories[0]]||t.manifest.categories[0]}),R(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(D=>i.jsx(Ft,{variant:"outline",children:D},D))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs(Br,{children:[t.manifest.homepage_url&&i.jsxs(oe,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(oe,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function LCe(){return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(is,{className:"h-4 w-4 mr-2"}),"刷新"]}),i.jsxs(oe,{size:"sm",children:[i.jsx(Fa,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已安装插件"}),i.jsx(Tg,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已启用"}),i.jsx(Pr,{className:"h-4 w-4 text-green-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已禁用"}),i.jsx(gl,{className:"h-4 w-4 text-orange-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"可更新"}),i.jsx(is,{className:"h-4 w-4 text-blue-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"已安装的插件"}),i.jsx(Wn,{children:"查看和管理已安装插件的配置"})]}),i.jsx(Ct,{children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[i.jsx(Tg,{className:"h-16 w-16 text-muted-foreground/50"}),i.jsxs("div",{className:"text-center space-y-2",children:[i.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),i.jsx("div",{className:"flex gap-2",children:i.jsx(oe,{variant:"outline",asChild:!0,children:i.jsxs("a",{href:"/plugins",children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsx(vt,{className:"text-base",children:"即将推出的功能"})}),i.jsx(Ct,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsx(vt,{className:"text-base",children:"开发者工具"})}),i.jsx(Ct,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"热重载"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),i.jsx(Xe,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:i.jsx(Ct,{className:"pt-6",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(gl,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",i.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function BCe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState([]),[a,s]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b=y.useCallback(async()=>{try{s(!0),u(null);const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${T}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const R=await M.json();r(R.mirrors||[])}catch(T){const M=T instanceof Error?T.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{s(!1)}},[t]);y.useEffect(()=>{b()},[b]);const N=async()=>{try{const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const R=await M.json();throw new Error(R.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),w({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b()}catch(T){t({title:"添加失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},E=async()=>{if(d)try{const T=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),b()}catch(T){t({title:"更新失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},O=async T=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),b()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},A=async T=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!T.enabled})})).ok)throw new Error("更新状态失败");b()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=T=>{f(T),w({id:T.id,name:T.name,raw_prefix:T.raw_prefix,clone_prefix:T.clone_prefix,enabled:T.enabled,priority:T.priority}),x(!0)},k=async(T,M)=>{const R=M==="up"?T.priority-1:T.priority+1;if(!(R<1))try{const B=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/json"},body:JSON.stringify({priority:R})})).ok)throw new Error("更新优先级失败");b()}catch(B){t({title:"更新失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(fF,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(oe,{onClick:()=>p(!0),children:[i.jsx(ir,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(Xe,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(gh,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Kc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(oe,{onClick:b,children:"重新加载"})]})}):i.jsxs(Xe,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"状态"}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"ID"}),i.jsx(nt,{children:"优先级"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n.map(T=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(lt,{checked:T.enabled,onCheckedChange:()=>A(T)})}),i.jsx(Ge,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:T.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",T.raw_prefix]})]})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:"outline",children:T.id})}),i.jsx(Ge,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:T.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(KN,{className:"h-3 w-3"})}),i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"down"),children:i.jsx(vh,{className:"h-3 w-3"})})]})]})}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>C(T),children:i.jsx(Pu,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>O(T.id),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},T.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(T=>i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:T.name}),T.enabled&&i.jsx(Ft,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Ft,{variant:"outline",className:"mt-1 text-xs",children:T.id})]}),i.jsx(lt,{checked:T.enabled,onCheckedChange:()=>A(T)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:T.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:T.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(oe,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(T),children:[i.jsx(Pu,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(KN,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"down"),children:i.jsx(vh,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"destructive",size:"sm",onClick:()=>O(T.id),children:i.jsx(It,{className:"h-4 w-4"})})]})]})},T.id))})]}),i.jsx(sr,{open:m,onOpenChange:p,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"添加镜像源"}),i.jsx(vr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ne,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:T=>w({...j,id:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ne,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ne,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"add-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(Q,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(oe,{onClick:N,children:"添加"})]})]})}),i.jsx(sr,{open:g,onOpenChange:x,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑镜像源"}),i.jsx(vr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"镜像源 ID"}),i.jsx(Ne,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ne,{id:"edit-name",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"edit-raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"edit-clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ne,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"edit-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(Q,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(oe,{onClick:E,children:"保存"})]})]})})]})})}const zCe=Zu("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),r9=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},s)=>i.jsx("kbd",{className:ce(zCe({size:t,className:e})),ref:s,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));r9.displayName="Kbd";const qCe=[{icon:Ag,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:rE,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:vF,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:hF,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:sE,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:Gh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:mF,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:Eve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:Tg,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:Og,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Fa,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function FCe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState(0),l=la(),u=qCe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),s(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),s(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),s(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Xn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Zn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ne,{value:n,onChange:m=>{r(m.target.value),s(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Wt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>s(p),className:ce("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Lr,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function UCe(e){const t=HCe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(VCe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function HCe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=YCe(a),u=GCe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var WCe=Symbol("radix.slottable");function VCe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===WCe}function GCe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function YCe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var wC=["Enter"," "],KCe=["ArrowDown","PageUp","Home"],a9=["ArrowUp","PageDown","End"],XCe=[...KCe,...a9],ZCe={ltr:[...wC,"ArrowRight"],rtl:[...wC,"ArrowLeft"]},QCe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},sm="Menu",[Nh,JCe,eOe]=Ph(sm),[Dl,i9]=gr(sm,[eOe,ho,Yg]),om=ho(),s9=Yg(),[o9,xo]=Dl(sm),[tOe,lm]=Dl(sm),l9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:s,modal:l=!0}=e,u=om(t),[d,f]=y.useState(null),m=y.useRef(!1),p=ln(s),g=Fu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(Qh,{...u,children:i.jsx(o9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(tOe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};l9.displayName=sm;var nOe="MenuAnchor",LE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=om(n);return i.jsx(Jh,{...a,...r,ref:t})});LE.displayName=nOe;var BE="MenuPortal",[rOe,c9]=Dl(BE,{forceMount:void 0}),u9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,s=xo(BE,t);return i.jsx(rOe,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};u9.displayName=BE;var Oa="MenuContent",[aOe,zE]=Dl(Oa),d9=y.forwardRef((e,t)=>{const n=c9(Oa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=xo(Oa,e.__scopeMenu),l=lm(Oa,e.__scopeMenu);return i.jsx(Nh.Provider,{scope:e.__scopeMenu,children:i.jsx(Bn,{present:r||s.open,children:i.jsx(Nh.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(iOe,{...a,ref:t}):i.jsx(sOe,{...a,ref:t})})})})}),iOe=y.forwardRef((e,t)=>{const n=xo(Oa,e.__scopeMenu),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return zy(s)},[]),i.jsx(qE,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:_e(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),sOe=y.forwardRef((e,t)=>{const n=xo(Oa,e.__scopeMenu);return i.jsx(qE,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),oOe=UCe("MenuContent.ScrollLock"),qE=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...w}=e,b=xo(Oa,n),N=lm(Oa,n),E=om(n),O=s9(n),A=JCe(n),[C,k]=y.useState(null),T=y.useRef(null),M=Ue(t,T,b.onContentChange),R=y.useRef(0),B=y.useRef(""),$=y.useRef(0),H=y.useRef(null),V=y.useRef("right"),q=y.useRef(0),G=j?Xh:y.Fragment,L=j?{as:oOe,allowPinchZoom:!0}:void 0,D=K=>{const J=B.current+K,I=A().filter(ee=>!ee.disabled),z=document.activeElement,Y=I.find(ee=>ee.ref.current===z)?.textValue,te=I.map(ee=>ee.textValue),ae=xOe(te,J,Y),ge=I.find(ee=>ee.textValue===ae)?.ref.current;(function ee(Se){B.current=Se,window.clearTimeout(R.current),Se!==""&&(R.current=window.setTimeout(()=>ee(""),1e3))})(J),ge&&setTimeout(()=>ge.focus())};y.useEffect(()=>()=>window.clearTimeout(R.current),[]),Ly();const U=y.useCallback(K=>V.current===H.current?.side&&wOe(K,H.current?.area),[]);return i.jsx(aOe,{scope:n,searchRef:B,onItemEnter:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),onItemLeave:y.useCallback(K=>{U(K)||(T.current?.focus(),k(null))},[U]),onTriggerLeave:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),pointerGraceTimerRef:$,onPointerGraceIntentChange:y.useCallback(K=>{H.current=K},[]),children:i.jsx(G,{...L,children:i.jsx(Kh,{asChild:!0,trapped:a,onMountAutoFocus:_e(s,K=>{K.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(sB,{asChild:!0,...O,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:_e(d,K=>{N.isUsingKeyboardRef.current||K.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Ky,{role:"menu","aria-orientation":"vertical","data-state":E9(b.open),"data-radix-menu-content":"",dir:N.dir,...E,...w,ref:M,style:{outline:"none",...w.style},onKeyDown:_e(w.onKeyDown,K=>{const I=K.target.closest("[data-radix-menu-content]")===K.currentTarget,z=K.ctrlKey||K.altKey||K.metaKey,Y=K.key.length===1;I&&(K.key==="Tab"&&K.preventDefault(),!z&&Y&&D(K.key));const te=T.current;if(K.target!==te||!XCe.includes(K.key))return;K.preventDefault();const ge=A().filter(ee=>!ee.disabled).map(ee=>ee.ref.current);a9.includes(K.key)&&ge.reverse(),gOe(ge)}),onBlur:_e(e.onBlur,K=>{K.currentTarget.contains(K.target)||(window.clearTimeout(R.current),B.current="")}),onPointerMove:_e(e.onPointerMove,Ch(K=>{const J=K.target,I=q.current!==K.clientX;if(K.currentTarget.contains(J)&&I){const z=K.clientX>q.current?"right":"left";V.current=z,q.current=K.clientX}}))})})})})})})});d9.displayName=Oa;var lOe="MenuGroup",FE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"group",...r,ref:t})});FE.displayName=lOe;var cOe="MenuLabel",f9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});f9.displayName=cOe;var Lg="MenuItem",ZL="menu.itemSelect",ox=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,s=y.useRef(null),l=lm(Lg,e.__scopeMenu),u=zE(Lg,e.__scopeMenu),d=Ue(t,s),f=y.useRef(!1),m=()=>{const p=s.current;if(!n&&p){const g=new CustomEvent(ZL,{bubbles:!0,cancelable:!0});p.addEventListener(ZL,x=>r?.(x),{once:!0}),UC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(h9,{...a,ref:d,disabled:n,onClick:_e(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:_e(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:_e(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||wC.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});ox.displayName=Lg;var h9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...s}=e,l=zE(Lg,n),u=s9(n),d=y.useRef(null),f=Ue(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[s.children]),i.jsx(Nh.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(oB,{asChild:!0,...u,focusable:!r,children:i.jsx($e.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:f,onPointerMove:_e(e.onPointerMove,Ch(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:_e(e.onPointerLeave,Ch(j=>l.onItemLeave(j))),onFocus:_e(e.onFocus,()=>p(!0)),onBlur:_e(e.onBlur,()=>p(!1))})})})}),uOe="MenuCheckboxItem",m9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(x9,{scope:e.__scopeMenu,checked:n,children:i.jsx(ox,{role:"menuitemcheckbox","aria-checked":Bg(n)?"mixed":n,...a,ref:t,"data-state":WE(n),onSelect:_e(a.onSelect,()=>r?.(Bg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});m9.displayName=uOe;var p9="MenuRadioGroup",[dOe,fOe]=Dl(p9,{value:void 0,onValueChange:()=>{}}),v9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,s=ln(r);return i.jsx(dOe,{scope:e.__scopeMenu,value:n,onValueChange:s,children:i.jsx(FE,{...a,ref:t})})});v9.displayName=p9;var g9="MenuRadioItem",y9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=fOe(g9,e.__scopeMenu),s=n===a.value;return i.jsx(x9,{scope:e.__scopeMenu,checked:s,children:i.jsx(ox,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":WE(s),onSelect:_e(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});y9.displayName=g9;var UE="MenuItemIndicator",[x9,hOe]=Dl(UE,{checked:!1}),b9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,s=hOe(UE,n);return i.jsx(Bn,{present:r||Bg(s.checked)||s.checked===!0,children:i.jsx($e.span,{...a,ref:t,"data-state":WE(s.checked)})})});b9.displayName=UE;var mOe="MenuSeparator",w9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});w9.displayName=mOe;var pOe="MenuArrow",j9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=om(n);return i.jsx(Xy,{...a,...r,ref:t})});j9.displayName=pOe;var HE="MenuSub",[vOe,S9]=Dl(HE),_9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,s=xo(HE,t),l=om(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=ln(a);return y.useEffect(()=>(s.open===!1&&p(!1),()=>p(!1)),[s.open,p]),i.jsx(Qh,{...l,children:i.jsx(o9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(vOe,{scope:t,contentId:Gn(),triggerId:Gn(),trigger:u,onTriggerChange:d,children:n})})})};_9.displayName=HE;var bf="MenuSubTrigger",N9=y.forwardRef((e,t)=>{const n=xo(bf,e.__scopeMenu),r=lm(bf,e.__scopeMenu),a=S9(bf,e.__scopeMenu),s=zE(bf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=s,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(LE,{asChild:!0,...f,children:i.jsx(h9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":E9(n.open),...e,ref:Ir(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:_e(e.onPointerMove,Ch(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(s.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:_e(e.onPointerLeave,Ch(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",w=j?-5:5,b=g[j?"left":"right"],N=g[j?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:b,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:b,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:_e(e.onKeyDown,p=>{const g=s.searchRef.current!=="";e.disabled||g&&p.key===" "||ZCe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});N9.displayName=bf;var C9="MenuSubContent",O9=y.forwardRef((e,t)=>{const n=c9(Oa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=xo(Oa,e.__scopeMenu),l=lm(Oa,e.__scopeMenu),u=S9(C9,e.__scopeMenu),d=y.useRef(null),f=Ue(t,d);return i.jsx(Nh.Provider,{scope:e.__scopeMenu,children:i.jsx(Bn,{present:r||s.open,children:i.jsx(Nh.Slot,{scope:e.__scopeMenu,children:i.jsx(qE,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:_e(e.onFocusOutside,m=>{m.target!==u.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:_e(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:_e(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=QCe[l.dir].includes(m.key);p&&g&&(s.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});O9.displayName=C9;function E9(e){return e?"open":"closed"}function Bg(e){return e==="indeterminate"}function WE(e){return Bg(e)?"indeterminate":e?"checked":"unchecked"}function gOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function yOe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function xOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=yOe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function bOe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function wOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return bOe(n,t)}function Ch(e){return t=>t.pointerType==="mouse"?e(t):void 0}var jOe=l9,SOe=LE,_Oe=u9,NOe=d9,COe=FE,OOe=f9,EOe=ox,AOe=m9,TOe=v9,kOe=y9,MOe=b9,POe=w9,ROe=j9,DOe=_9,$Oe=N9,IOe=O9,VE="ContextMenu",[LOe]=gr(VE,[i9]),xr=i9(),[BOe,A9]=LOe(VE),T9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:s=!0}=e,[l,u]=y.useState(!1),d=xr(t),f=ln(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(BOe,{scope:t,open:l,onOpenChange:m,modal:s,children:i.jsx(jOe,{...d,dir:a,open:l,onOpenChange:m,modal:s,children:n})})};T9.displayName=VE;var k9="ContextMenuTrigger",M9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,s=A9(k9,n),l=xr(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},s.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(SOe,{...l,virtualRef:d}),i.jsx($e.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:_e(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:_e(e.onPointerDown,nv(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:_e(e.onPointerMove,nv(m)),onPointerCancel:r?e.onPointerCancel:_e(e.onPointerCancel,nv(m)),onPointerUp:r?e.onPointerUp:_e(e.onPointerUp,nv(m))})]})});M9.displayName=k9;var zOe="ContextMenuPortal",P9=e=>{const{__scopeContextMenu:t,...n}=e,r=xr(t);return i.jsx(_Oe,{...r,...n})};P9.displayName=zOe;var R9="ContextMenuContent",D9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=A9(R9,n),s=xr(n),l=y.useRef(!1);return i.jsx(NOe,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});D9.displayName=R9;var qOe="ContextMenuGroup",FOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(COe,{...a,...r,ref:t})});FOe.displayName=qOe;var UOe="ContextMenuLabel",$9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(OOe,{...a,...r,ref:t})});$9.displayName=UOe;var HOe="ContextMenuItem",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(EOe,{...a,...r,ref:t})});I9.displayName=HOe;var WOe="ContextMenuCheckboxItem",L9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(AOe,{...a,...r,ref:t})});L9.displayName=WOe;var VOe="ContextMenuRadioGroup",GOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(TOe,{...a,...r,ref:t})});GOe.displayName=VOe;var YOe="ContextMenuRadioItem",B9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(kOe,{...a,...r,ref:t})});B9.displayName=YOe;var KOe="ContextMenuItemIndicator",z9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(MOe,{...a,...r,ref:t})});z9.displayName=KOe;var XOe="ContextMenuSeparator",q9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(POe,{...a,...r,ref:t})});q9.displayName=XOe;var ZOe="ContextMenuArrow",QOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(ROe,{...a,...r,ref:t})});QOe.displayName=ZOe;var F9="ContextMenuSub",U9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:s}=e,l=xr(t),[u,d]=Ea({prop:a,defaultProp:s??!1,onChange:r,caller:F9});return i.jsx(DOe,{...l,open:u,onOpenChange:d,children:n})};U9.displayName=F9;var JOe="ContextMenuSubTrigger",H9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx($Oe,{...a,...r,ref:t})});H9.displayName=JOe;var eEe="ContextMenuSubContent",W9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(IOe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});W9.displayName=eEe;function nv(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var tEe=T9,nEe=M9,rEe=P9,V9=D9,G9=$9,Y9=I9,K9=L9,X9=B9,Z9=z9,Q9=q9,aEe=U9,J9=H9,eW=W9;const iEe=tEe,sEe=nEe,oEe=aEe,tW=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(J9,{ref:a,className:ce("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(nE,{className:"ml-auto h-4 w-4"})]}));tW.displayName=J9.displayName;const nW=y.forwardRef(({className:e,...t},n)=>i.jsx(eW,{ref:n,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));nW.displayName=eW.displayName;const rW=y.forwardRef(({className:e,...t},n)=>i.jsx(rEe,{children:i.jsx(V9,{ref:n,className:ce("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));rW.displayName=V9.displayName;const Ia=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(Y9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));Ia.displayName=Y9.displayName;const lEe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(K9,{ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Z9,{children:i.jsx(ol,{className:"h-4 w-4"})})}),t]}));lEe.displayName=K9.displayName;const cEe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(X9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Z9,{children:i.jsx(Uve,{className:"h-2 w-2 fill-current"})})}),t]}));cEe.displayName=X9.displayName;const uEe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(G9,{ref:r,className:ce("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));uEe.displayName=G9.displayName;const wf=y.forwardRef(({className:e,...t},n)=>i.jsx(Q9,{ref:n,className:ce("-mx-1 my-1 h-px bg-border",e),...t}));wf.displayName=Q9.displayName;const zc=({className:e,...t})=>i.jsx("span",{className:ce("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});zc.displayName="ContextMenuShortcut";var dEe=Symbol("radix.slottable");function fEe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=dEe,t}var[lx]=gr("Tooltip",[ho]),cx=ho(),aW="TooltipProvider",hEe=700,jC="tooltip.open",[mEe,GE]=lx(aW),iW=e=>{const{__scopeTooltip:t,delayDuration:n=hEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(mEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:s})};iW.displayName=aW;var Oh="Tooltip",[pEe,cm]=lx(Oh),sW=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:s,disableHoverableContent:l,delayDuration:u}=e,d=GE(Oh,e.__scopeTooltip),f=cx(t),[m,p]=y.useState(null),g=Gn(),x=y.useRef(0),j=l??d.disableHoverableContent,w=u??d.delayDuration,b=y.useRef(!1),[N,E]=Ea({prop:r,defaultProp:a??!1,onChange:T=>{T?(d.onOpen(),document.dispatchEvent(new CustomEvent(jC))):d.onClose(),s?.(T)},caller:Oh}),O=y.useMemo(()=>N?b.current?"delayed-open":"instant-open":"closed",[N]),A=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,b.current=!1,E(!0)},[E]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,E(!1)},[E]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{b.current=!0,E(!0),x.current=0},w)},[w,E]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(Qh,{...f,children:i.jsx(pEe,{scope:t,contentId:g,open:N,stateAttribute:O,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():A()},[d.isOpenDelayedRef,k,A]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:A,onClose:C,disableHoverableContent:j,children:n})})};sW.displayName=Oh;var SC="TooltipTrigger",oW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=cm(SC,n),s=GE(SC,n),l=cx(n),u=y.useRef(null),d=Ue(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(Jh,{asChild:!0,...l,children:i.jsx($e.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:_e(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:_e(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:_e(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:_e(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:_e(e.onBlur,a.onClose),onClick:_e(e.onClick,a.onClose)})})});oW.displayName=SC;var YE="TooltipPortal",[vEe,gEe]=lx(YE,{forceMount:void 0}),lW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,s=cm(YE,t);return i.jsx(vEe,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};lW.displayName=YE;var Iu="TooltipContent",cW=y.forwardRef((e,t)=>{const n=gEe(Iu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,l=cm(Iu,e.__scopeTooltip);return i.jsx(Bn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(uW,{side:a,...s,ref:t}):i.jsx(yEe,{side:a,...s,ref:t})})}),yEe=y.forwardRef((e,t)=>{const n=cm(Iu,e.__scopeTooltip),r=GE(Iu,e.__scopeTooltip),a=y.useRef(null),s=Ue(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,w)=>{const b=j.currentTarget,N={x:j.clientX,y:j.clientY},E=SEe(N,b.getBoundingClientRect()),O=_Ee(N,E),A=NEe(w.getBoundingClientRect()),C=OEe([...O,...A]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=b=>x(b,m),w=b=>x(b,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",w)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=w=>{const b=w.target,N={x:w.clientX,y:w.clientY},E=d?.contains(b)||m?.contains(b),O=!CEe(N,l);E?g():O&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(uW,{...e,ref:s})}),[xEe,bEe]=lx(Oh,{isInside:!1}),wEe=fEe("TooltipContent"),uW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:l,...u}=e,d=cm(Iu,n),f=cx(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(jC,m),()=>document.removeEventListener(jC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Ky,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(wEe,{children:r}),i.jsx(xEe,{scope:n,isInside:!0,children:i.jsx(jwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});cW.displayName=Iu;var dW="TooltipArrow",jEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=cx(n);return bEe(dW,n).isInside?null:i.jsx(Xy,{...a,...r,ref:t})});jEe.displayName=dW;function SEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function _Ee(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function CEe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function OEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),EEe(t)}function EEe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const s=t[t.length-1],l=t[t.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],l=n[n.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var AEe=iW,TEe=sW,kEe=oW,MEe=lW,fW=cW;const PEe=AEe,REe=TEe,DEe=kEe,hW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(MEe,{children:i.jsx(fW,{ref:r,sideOffset:t,className:ce("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));hW.displayName=fW.displayName;function $Ee({children:e}){fbe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[s,l]=y.useState(!1),{theme:u,setTheme:d}=oE(),f=VY(),m=la();y.useEffect(()=>{const w=b=>{(b.metaKey||b.ctrlKey)&&b.key==="k"&&(b.preventDefault(),l(!0))};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);const p=[{title:"概览",items:[{icon:Ag,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:rE,label:"麦麦主程序配置",path:"/config/bot"},{icon:vF,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:hF,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:sE,label:"表情包管理",path:"/resource/emoji"},{icon:Gh,label:"表达方式管理",path:"/resource/expression"},{icon:mF,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:Tg,label:"插件市场",path:"/plugins"},{icon:zge,label:"插件配置",path:"/plugin-config"},{icon:Og,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Fa,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(PEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:ce("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:ce("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:ce("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:_ye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:ce("space-y-6",!t&&"lg:space-y-3"),children:p.map((w,b)=>i.jsxs("li",{children:[i.jsx("div",{className:ce("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:w.title})}),!t&&b>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:w.items.map(N=>{const E=f({to:N.path}),O=N.icon,A=i.jsxs(i.Fragment,{children:[E&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:ce("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(O,{className:ce("h-5 w-5 flex-shrink-0",E&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:ce("text-sm font-medium whitespace-nowrap transition-all duration-300",E&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(REe,{children:[i.jsx(DEe,{asChild:!0,children:i.jsx($C,{to:N.path,className:ce("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",E?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:A})}),!t&&i.jsx(hW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},w.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(fge,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(tE,{className:ce("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(r9,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(FCe,{open:s,onOpenChange:l}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(jve,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:w=>{sye(x==="dark"?"light":"dark",d,w)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(nC,{className:"h-5 w-5"}):i.jsx(tC,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(eL,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(iEe,{children:[i.jsx(sEe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(rW,{className:"w-64",children:[i.jsxs(Ia,{onClick:()=>m({to:"/"}),children:[i.jsx(Ag,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(Ia,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Fa,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(Ia,{onClick:()=>m({to:"/logs"}),children:[i.jsx(Og,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(wf,{}),i.jsxs(oEe,{children:[i.jsxs(tW,{children:[i.jsx(pF,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(nW,{className:"w-48",children:[i.jsxs(Ia,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(nC,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(zc,{children:"✓"})]}),i.jsxs(Ia,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(tC,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(zc,{children:"✓"})]}),i.jsxs(Ia,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Fa,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(zc,{children:"✓"})]})]})]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:()=>window.location.reload(),children:[i.jsx(Ege,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(zc,{children:"⌘R"})]}),i.jsxs(Ia,{onClick:()=>l(!0),children:[i.jsx(Lr,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(zc,{children:"⌘K"})]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(Mf,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(eL,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const um=IY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(IC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!O8())throw r5({to:"/auth"})}}),IEe=or({getParentRoute:()=>um,path:"/auth",component:hbe}),LEe=or({getParentRoute:()=>um,path:"/setup",component:Mbe}),ca=or({getParentRoute:()=>um,id:"protected",component:()=>i.jsx($Ee,{children:i.jsx(IC,{})})}),BEe=or({getParentRoute:()=>ca,path:"/",component:aye}),zEe=or({getParentRoute:()=>ca,path:"/config/bot",component:Sje}),qEe=or({getParentRoute:()=>ca,path:"/config/modelProvider",component:Uje}),FEe=or({getParentRoute:()=>ca,path:"/config/model",component:g1e}),UEe=or({getParentRoute:()=>ca,path:"/resource/emoji",component:N1e}),HEe=or({getParentRoute:()=>ca,path:"/resource/expression",component:R1e}),WEe=or({getParentRoute:()=>ca,path:"/resource/person",component:U1e}),VEe=or({getParentRoute:()=>ca,path:"/logs",component:_Ce}),GEe=or({getParentRoute:()=>ca,path:"/plugins",component:ICe}),YEe=or({getParentRoute:()=>ca,path:"/plugin-config",component:LCe}),KEe=or({getParentRoute:()=>ca,path:"/plugin-mirrors",component:BCe}),XEe=or({getParentRoute:()=>ca,path:"/settings",component:ibe}),ZEe=or({getParentRoute:()=>um,path:"*",component:T8}),QEe=um.addChildren([IEe,LEe,ca.addChildren([BEe,zEe,qEe,FEe,UEe,HEe,WEe,GEe,YEe,KEe,VEe,XEe]),ZEe]),JEe=GY({routeTree:QEe,defaultNotFoundComponent:T8});function eAe({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,s]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%"},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%"},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%"},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%"},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%"}}[u];m&&d.style.setProperty("--primary",m.hsl)}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),s(u)}};return i.jsx(yF.Provider,{...r,value:l,children:e})}function tAe({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[s,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;s?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(s))},[s,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:s,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(xF.Provider,{value:f,children:e})}var KE="ToastProvider",[XE,nAe,rAe]=Ph("Toast"),[mW]=gr("Toast",[rAe]),[aAe,ux]=mW(KE),pW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${KE}\`. Expected non-empty \`string\`.`),i.jsx(XE.Provider,{scope:t,children:i.jsx(aAe,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};pW.displayName=KE;var vW="ToastViewport",iAe=["F8"],_C="toast.viewportPause",NC="toast.viewportResume",gW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=iAe,label:a="Notifications ({hotkey})",...s}=e,l=ux(vW,n),u=nAe(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=Ue(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const b=N=>{r.length!==0&&r.every(O=>N[O]||N.code===O)&&p.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),y.useEffect(()=>{const b=d.current,N=p.current;if(j&&b&&N){const E=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(_C);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},O=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(NC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},A=k=>{!b.contains(k.relatedTarget)&&O()},C=()=>{b.contains(document.activeElement)||O()};return b.addEventListener("focusin",E),b.addEventListener("focusout",A),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",C),window.addEventListener("blur",E),window.addEventListener("focus",O),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",A),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",C),window.removeEventListener("blur",E),window.removeEventListener("focus",O)}}},[j,l.isClosePausedRef]);const w=y.useCallback(({tabbingDirection:b})=>{const E=u().map(O=>{const A=O.ref.current,C=[A,...yAe(A)];return b==="forwards"?C:C.reverse()});return(b==="forwards"?E.reverse():E).flat()},[u]);return y.useEffect(()=>{const b=p.current;if(b){const N=E=>{const O=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!O){const C=document.activeElement,k=E.shiftKey;if(E.target===b&&k){f.current?.focus();return}const R=w({tabbingDirection:k?"backwards":"forwards"}),B=R.findIndex($=>$===C);p_(R.slice(B+1))?E.preventDefault():k?f.current?.focus():m.current?.focus()}};return b.addEventListener("keydown",N),()=>b.removeEventListener("keydown",N)}},[u,w]),i.jsxs(Pye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(CC,{ref:f,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"forwards"});p_(b)}}),i.jsx(XE.Slot,{scope:n,children:i.jsx($e.ol,{tabIndex:-1,...s,ref:g})}),j&&i.jsx(CC,{ref:m,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"backwards"});p_(b)}})]})});gW.displayName=vW;var yW="ToastFocusProxy",CC=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=ux(yW,n);return i.jsx(Zy,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!s.viewport?.contains(u)&&r()}})});CC.displayName=yW;var dm="Toast",sAe="toast.swipeStart",oAe="toast.swipeMove",lAe="toast.swipeCancel",cAe="toast.swipeEnd",xW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...l}=e,[u,d]=Ea({prop:r,defaultProp:a??!0,onChange:s,caller:dm});return i.jsx(Bn,{present:n||u,children:i.jsx(fAe,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:ln(e.onPause),onResume:ln(e.onResume),onSwipeStart:_e(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:_e(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:_e(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:_e(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});xW.displayName=dm;var[uAe,dAe]=mW(dm,{onClose(){}}),fAe=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,w=ux(dm,n),[b,N]=y.useState(null),E=Ue(t,q=>N(q)),O=y.useRef(null),A=y.useRef(null),C=a||w.duration,k=y.useRef(0),T=y.useRef(C),M=y.useRef(0),{onToastAdd:R,onToastRemove:B}=w,$=ln(()=>{b?.contains(document.activeElement)&&w.viewport?.focus(),l()}),H=y.useCallback(q=>{!q||q===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout($,q))},[$]);y.useEffect(()=>{const q=w.viewport;if(q){const G=()=>{H(T.current),f?.()},L=()=>{const D=new Date().getTime()-k.current;T.current=T.current-D,window.clearTimeout(M.current),d?.()};return q.addEventListener(_C,L),q.addEventListener(NC,G),()=>{q.removeEventListener(_C,L),q.removeEventListener(NC,G)}}},[w.viewport,C,d,f,H]),y.useEffect(()=>{s&&!w.isClosePausedRef.current&&H(C)},[s,C,w.isClosePausedRef,H]),y.useEffect(()=>(R(),()=>B()),[R,B]);const V=y.useMemo(()=>b?CW(b):null,[b]);return w.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(hAe,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(uAe,{scope:n,onClose:$,children:Sl.createPortal(i.jsx(XE.ItemSlot,{scope:n,children:i.jsx(Mye,{asChild:!0,onEscapeKeyDown:_e(u,()=>{w.isFocusedToastEscapeKeyDownRef.current||$(),w.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx($e.li,{tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":w.swipeDirection,...j,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:_e(e.onKeyDown,q=>{q.key==="Escape"&&(u?.(q.nativeEvent),q.nativeEvent.defaultPrevented||(w.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:_e(e.onPointerDown,q=>{q.button===0&&(O.current={x:q.clientX,y:q.clientY})}),onPointerMove:_e(e.onPointerMove,q=>{if(!O.current)return;const G=q.clientX-O.current.x,L=q.clientY-O.current.y,D=!!A.current,U=["left","right"].includes(w.swipeDirection),K=["left","up"].includes(w.swipeDirection)?Math.min:Math.max,J=U?K(0,G):0,I=U?0:K(0,L),z=q.pointerType==="touch"?10:2,Y={x:J,y:I},te={originalEvent:q,delta:Y};D?(A.current=Y,rv(oAe,p,te,{discrete:!1})):QL(Y,w.swipeDirection,z)?(A.current=Y,rv(sAe,m,te,{discrete:!1}),q.target.setPointerCapture(q.pointerId)):(Math.abs(G)>z||Math.abs(L)>z)&&(O.current=null)}),onPointerUp:_e(e.onPointerUp,q=>{const G=A.current,L=q.target;if(L.hasPointerCapture(q.pointerId)&&L.releasePointerCapture(q.pointerId),A.current=null,O.current=null,G){const D=q.currentTarget,U={originalEvent:q,delta:G};QL(G,w.swipeDirection,w.swipeThreshold)?rv(cAe,x,U,{discrete:!0}):rv(lAe,g,U,{discrete:!0}),D.addEventListener("click",K=>K.preventDefault(),{once:!0})}})})})}),w.viewport)})]}):null}),hAe=e=>{const{__scopeToast:t,children:n,...r}=e,a=ux(dm,t),[s,l]=y.useState(!1),[u,d]=y.useState(!1);return vAe(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(Tl,{asChild:!0,children:i.jsx(Zy,{...r,children:s&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},mAe="ToastTitle",bW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});bW.displayName=mAe;var pAe="ToastDescription",wW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});wW.displayName=pAe;var jW="ToastAction",SW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(NW,{altText:n,asChild:!0,children:i.jsx(ZE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${jW}\`. Expected non-empty \`string\`.`),null)});SW.displayName=jW;var _W="ToastClose",ZE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=dAe(_W,n);return i.jsx(NW,{asChild:!0,children:i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,a.onClose)})})});ZE.displayName=_W;var NW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx($e.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function CW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),gAe(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...CW(r))}}),t}function rv(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?UC(a,s):a.dispatchEvent(s)}var QL=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function vAe(e=()=>{}){const t=ln(e);Yn(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function gAe(e){return e.nodeType===e.ELEMENT_NODE}function yAe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function p_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var xAe=pW,OW=gW,EW=xW,AW=bW,TW=wW,kW=SW,MW=ZE;const bAe=xAe,PW=y.forwardRef(({className:e,...t},n)=>i.jsx(OW,{ref:n,className:ce("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));PW.displayName=OW.displayName;const wAe=Zu("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),RW=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(EW,{ref:r,className:ce(wAe({variant:t}),e),...n}));RW.displayName=EW.displayName;const jAe=y.forwardRef(({className:e,...t},n)=>i.jsx(kW,{ref:n,className:ce("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));jAe.displayName=kW.displayName;const DW=y.forwardRef(({className:e,...t},n)=>i.jsx(MW,{ref:n,className:ce("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Yh,{className:"h-4 w-4"})}));DW.displayName=MW.displayName;const $W=y.forwardRef(({className:e,...t},n)=>i.jsx(AW,{ref:n,className:ce("text-sm font-semibold [&+div]:text-xs",e),...t}));$W.displayName=AW.displayName;const IW=y.forwardRef(({className:e,...t},n)=>i.jsx(TW,{ref:n,className:ce("text-sm opacity-90",e),...t}));IW.displayName=TW.displayName;function SAe(){const{toasts:e}=yr();return i.jsxs(bAe,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return i.jsxs(RW,{...s,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx($W,{children:n}),r&&i.jsx(IW,{children:r})]}),a,i.jsx(DW,{})]},t)}),i.jsx(PW,{})]})}iG.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(eAe,{defaultTheme:"system",children:i.jsxs(tAe,{children:[i.jsx(XY,{router:JEe}),i.jsx(SAe,{})]})})})); diff --git a/webui/dist/assets/index-Br56hjqL.js b/webui/dist/assets/index-Br56hjqL.js deleted file mode 100644 index 944ec6d7..00000000 --- a/webui/dist/assets/index-Br56hjqL.js +++ /dev/null @@ -1,157 +0,0 @@ -function VV(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var bp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function St(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var _0={exports:{}},Wd={};var Fk;function GV(){if(Fk)return Wd;Fk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var l=null;if(s!==void 0&&(l=""+s),a.key!==void 0&&(l=""+a.key),"key"in a){s={};for(var u in a)u!=="key"&&(s[u]=a[u])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:s}}return Wd.Fragment=t,Wd.jsx=n,Wd.jsxs=n,Wd}var Uk;function YV(){return Uk||(Uk=1,_0.exports=GV()),_0.exports}var i=YV(),N0={exports:{}},Ve={};var Hk;function KV(){if(Hk)return Ve;Hk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(I){return I===null||typeof I!="object"?null:(I=g&&I[g]||I["@@iterator"],typeof I=="function"?I:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function N(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}N.prototype.isReactComponent={},N.prototype.setState=function(I,z){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,z,"setState")},N.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function E(){}E.prototype=N.prototype;function O(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}var A=O.prototype=new E;A.constructor=O,w(A,N.prototype),A.isPureReactComponent=!0;var C=Array.isArray;function k(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function R(I,z,Y){var ne=Y.ref;return{$$typeof:e,type:I,key:z,ref:ne!==void 0?ne:null,props:Y}}function L(I,z){return R(I.type,z,I.props)}function $(I){return typeof I=="object"&&I!==null&&I.$$typeof===e}function H(I){var z={"=":"=0",":":"=2"};return"$"+I.replace(/[=:]/g,function(Y){return z[Y]})}var V=/\/+/g;function F(I,z){return typeof I=="object"&&I!==null&&I.key!=null?H(""+I.key):z.toString(36)}function G(I){switch(I.status){case"fulfilled":return I.value;case"rejected":throw I.reason;default:switch(typeof I.status=="string"?I.then(k,k):(I.status="pending",I.then(function(z){I.status==="pending"&&(I.status="fulfilled",I.value=z)},function(z){I.status==="pending"&&(I.status="rejected",I.reason=z)})),I.status){case"fulfilled":return I.value;case"rejected":throw I.reason}}throw I}function B(I,z,Y,ne,se){var xe=typeof I;(xe==="undefined"||xe==="boolean")&&(I=null);var ee=!1;if(I===null)ee=!0;else switch(xe){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(I.$$typeof){case e:case t:ee=!0;break;case m:return ee=I._init,B(ee(I._payload),z,Y,ne,se)}}if(ee)return se=se(I),ee=ne===""?"."+F(I,0):ne,C(se)?(Y="",ee!=null&&(Y=ee.replace(V,"$&/")+"/"),B(se,z,Y,"",function(ve){return ve})):se!=null&&($(se)&&(se=L(se,Y+(se.key==null||I&&I.key===se.key?"":(""+se.key).replace(V,"$&/")+"/")+ee)),z.push(se)),1;ee=0;var ae=ne===""?".":ne+":";if(C(I))for(var Z=0;Z>>1,te=B[K];if(0>>1;Ka(Y,U))nea(se,Y)?(B[K]=se,B[ne]=U,K=ne):(B[K]=Y,B[z]=U,K=z);else if(nea(se,U))B[K]=se,B[ne]=U,K=ne;else break e}}return D}function a(B,D){var U=B.sortIndex-D.sortIndex;return U!==0?U:B.id-D.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,w=!1,b=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function A(B){for(var D=n(f);D!==null;){if(D.callback===null)r(f);else if(D.startTime<=B)r(f),D.sortIndex=D.expirationTime,t(d,D);else break;D=n(f)}}function C(B){if(w=!1,A(B),!j)if(n(d)!==null)j=!0,k||(k=!0,H());else{var D=n(f);D!==null&&G(C,D.startTime-B)}}var k=!1,T=-1,M=5,R=-1;function L(){return b?!0:!(e.unstable_now()-RB&&L());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var te=K(p.expirationTime<=B);if(B=e.unstable_now(),typeof te=="function"){p.callback=te,A(B),D=!0;break t}p===n(d)&&r(d),A(B)}else r(d);p=n(d)}if(p!==null)D=!0;else{var I=n(f);I!==null&&G(C,I.startTime-B),D=!1}}break e}finally{p=null,g=U,x=!1}D=void 0}}finally{D?H():k=!1}}}var H;if(typeof O=="function")H=function(){O($)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,F=V.port2;V.port1.onmessage=$,H=function(){F.postMessage(null)}}else H=function(){N($,0)};function G(B,D){T=N(function(){B(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(B){B.callback=null},e.unstable_forceFrameRate=function(B){0>B||125K?(B.sortIndex=U,t(f,B),n(d)===null&&B===n(f)&&(w?(E(T),T=-1):w=!0,G(C,U-K))):(B.sortIndex=te,t(d,B),j||x||(j=!0,k||(k=!0,H()))),B},e.unstable_shouldYield=L,e.unstable_wrapCallback=function(B){var D=g;return function(){var U=g;g=D;try{return B.apply(this,arguments)}finally{g=U}}}})(E0)),E0}var Gk;function ZV(){return Gk||(Gk=1,O0.exports=XV()),O0.exports}var A0={exports:{}},ir={};var Yk;function QV(){if(Yk)return ir;Yk=1;var e=Sh();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),A0.exports=QV(),A0.exports}var Xk;function JV(){if(Xk)return Vd;Xk=1;var e=ZV(),t=Sh(),n=GL();function r(o){var c="https://react.dev/errors/"+o;if(1te||(o.current=K[te],K[te]=null,te--)}function Y(o,c){te++,K[te]=o.current,o.current=c}var ne=I(null),se=I(null),xe=I(null),ee=I(null);function ae(o,c){switch(Y(xe,c),Y(se,o),Y(ne,null),c.nodeType){case 9:case 11:o=(o=c.documentElement)&&(o=o.namespaceURI)?dk(o):0;break;default:if(o=c.tagName,c=c.namespaceURI)c=dk(c),o=fk(c,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}z(ne),Y(ne,o)}function Z(){z(ne),z(se),z(xe)}function ve(o){o.memoizedState!==null&&Y(ee,o);var c=ne.current,h=fk(c,o.type);c!==h&&(Y(se,o),Y(ne,h))}function je(o){se.current===o&&(z(ne),z(se)),ee.current===o&&(z(ee),qd._currentValue=U)}var le,Re;function _e(o){if(le===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);le=c&&c[1]||"",Re=-1)":-1S||X[v]!==oe[S]){var ge=` -`+X[v].replace(" at new "," at ");return o.displayName&&ge.includes("")&&(ge=ge.replace("",o.displayName)),ge}while(1<=v&&0<=S);break}}}finally{fe=!1,Error.prepareStackTrace=h}return(h=o?o.displayName||o.name:"")?_e(h):""}function Le(o,c){switch(o.tag){case 26:case 27:case 5:return _e(o.type);case 16:return _e("Lazy");case 13:return o.child!==c&&c!==null?_e("Suspense Fallback"):_e("Suspense");case 19:return _e("SuspenseList");case 0:case 15:return pe(o.type,!1);case 11:return pe(o.type.render,!1);case 1:return pe(o.type,!0);case 31:return _e("Activity");default:return""}}function It(o){try{var c="",h=null;do c+=Le(o,h),h=o,o=o.return;while(o);return c}catch(v){return` -Error generating stack: `+v.message+` -`+v.stack}}var Cn=Object.prototype.hasOwnProperty,vr=e.unstable_scheduleCallback,rr=e.unstable_cancelCallback,gr=e.unstable_shouldYield,ct=e.unstable_requestPaint,rt=e.unstable_now,$n=e.unstable_getCurrentPriorityLevel,go=e.unstable_ImmediatePriority,sm=e.unstable_UserBlockingPriority,Rl=e.unstable_NormalPriority,lx=e.unstable_LowPriority,om=e.unstable_IdlePriority,cx=e.log,ux=e.unstable_setDisableYieldValue,yo=null,yr=null;function Ka(o){if(typeof cx=="function"&&ux(o),yr&&typeof yr.setStrictMode=="function")try{yr.setStrictMode(yo,o)}catch{}}var ar=Math.clz32?Math.clz32:zt,dx=Math.log,et=Math.LN2;function zt(o){return o>>>=0,o===0?32:31-(dx(o)/et|0)|0}var He=256,gt=262144,In=4194304;function tt(o){var c=o&42;if(c!==0)return c;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function Dl(o,c,h){var v=o.pendingLanes;if(v===0)return 0;var S=0,_=o.suspendedLanes,P=o.pingedLanes;o=o.warmLanes;var q=v&134217727;return q!==0?(v=q&~_,v!==0?S=tt(v):(P&=q,P!==0?S=tt(P):h||(h=q&~o,h!==0&&(S=tt(h))))):(q=v&~_,q!==0?S=tt(q):P!==0?S=tt(P):h||(h=v&~o,h!==0&&(S=tt(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function xo(o,c){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&c)===0}function fx(o,c){switch(o){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function $l(){var o=In;return In<<=1,(In&62914560)===0&&(In=4194304),o}function bo(o){for(var c=[],h=0;31>h;h++)c.push(o);return c}function td(o,c){o.pendingLanes|=c,c!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function RW(o,c,h,v,S,_){var P=o.pendingLanes;o.pendingLanes=h,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=h,o.entangledLanes&=h,o.errorRecoveryDisabledLanes&=h,o.shellSuspendCounter=0;var q=o.entanglements,X=o.expirationTimes,oe=o.hiddenUpdates;for(h=P&~h;0"u")return null;try{return o.activeElement||o.body}catch{return o.body}}var zW=/[\n"\\]/g;function la(o){return o.replace(zW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function yx(o,c,h,v,S,_,P,q){o.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?o.type=P:o.removeAttribute("type"),c!=null?P==="number"?(c===0&&o.value===""||o.value!=c)&&(o.value=""+oa(c)):o.value!==""+oa(c)&&(o.value=""+oa(c)):P!=="submit"&&P!=="reset"||o.removeAttribute("value"),c!=null?xx(o,P,oa(c)):h!=null?xx(o,P,oa(h)):v!=null&&o.removeAttribute("value"),S==null&&_!=null&&(o.defaultChecked=!!_),S!=null&&(o.checked=S&&typeof S!="function"&&typeof S!="symbol"),q!=null&&typeof q!="function"&&typeof q!="symbol"&&typeof q!="boolean"?o.name=""+oa(q):o.removeAttribute("name")}function iA(o,c,h,v,S,_,P,q){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(o.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){gx(o);return}h=h!=null?""+oa(h):"",c=c!=null?""+oa(c):h,q||c===o.value||(o.value=c),o.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,o.checked=q?o.checked:!!v,o.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(o.name=P),gx(o)}function xx(o,c,h){c==="number"&&um(o.ownerDocument)===o||o.defaultValue===""+h||(o.defaultValue=""+h)}function Fl(o,c,h,v){if(o=o.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),_x=!1;if(Ci)try{var id={};Object.defineProperty(id,"passive",{get:function(){_x=!0}}),window.addEventListener("test",id,id),window.removeEventListener("test",id,id)}catch{_x=!1}var ms=null,Nx=null,fm=null;function fA(){if(fm)return fm;var o,c=Nx,h=c.length,v,S="value"in ms?ms.value:ms.textContent,_=S.length;for(o=0;o=ld),yA=" ",xA=!1;function bA(o,c){switch(o){case"keyup":return m7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function wA(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Vl=!1;function v7(o,c){switch(o){case"compositionend":return wA(c);case"keypress":return c.which!==32?null:(xA=!0,yA);case"textInput":return o=c.data,o===yA&&xA?null:o;default:return null}}function g7(o,c){if(Vl)return o==="compositionend"||!Tx&&bA(o,c)?(o=fA(),fm=Nx=ms=null,Vl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-o};o=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=AA(h)}}function kA(o,c){return o&&c?o===c?!0:o&&o.nodeType===3?!1:c&&c.nodeType===3?kA(o,c.parentNode):"contains"in o?o.contains(c):o.compareDocumentPosition?!!(o.compareDocumentPosition(c)&16):!1:!1}function MA(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var c=um(o.document);c instanceof o.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)o=c.contentWindow;else break;c=um(o.document)}return c}function Px(o){var c=o&&o.nodeName&&o.nodeName.toLowerCase();return c&&(c==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||c==="textarea"||o.contentEditable==="true")}var N7=Ci&&"documentMode"in document&&11>=document.documentMode,Gl=null,Rx=null,fd=null,Dx=!1;function PA(o,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;Dx||Gl==null||Gl!==um(v)||(v=Gl,"selectionStart"in v&&Px(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),fd&&dd(fd,v)||(fd=v,v=ip(Rx,"onSelect"),0>=P,S-=P,Xa=1<<32-ar(c)+S|h<Je?(dt=De,De=null):dt=De.sibling;var mt=ue(re,De,ie[Je],be);if(mt===null){De===null&&(De=dt);break}o&&De&&mt.alternate===null&&c(re,De),Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt,De=dt}if(Je===ie.length)return h(re,De),ft&&Ei(re,Je),Ie;if(De===null){for(;JeJe?(dt=De,De=null):dt=De.sibling;var $s=ue(re,De,mt.value,be);if($s===null){De===null&&(De=dt);break}o&&De&&$s.alternate===null&&c(re,De),Q=_($s,Q,Je),ht===null?Ie=$s:ht.sibling=$s,ht=$s,De=dt}if(mt.done)return h(re,De),ft&&Ei(re,Je),Ie;if(De===null){for(;!mt.done;Je++,mt=ie.next())mt=we(re,mt.value,be),mt!==null&&(Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt);return ft&&Ei(re,Je),Ie}for(De=v(De);!mt.done;Je++,mt=ie.next())mt=me(De,re,Je,mt.value,be),mt!==null&&(o&&mt.alternate!==null&&De.delete(mt.key===null?Je:mt.key),Q=_(mt,Q,Je),ht===null?Ie=mt:ht.sibling=mt,ht=mt);return o&&De.forEach(function(WV){return c(re,WV)}),ft&&Ei(re,Je),Ie}function Pt(re,Q,ie,be){if(typeof ie=="object"&&ie!==null&&ie.type===w&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case x:e:{for(var Ie=ie.key;Q!==null;){if(Q.key===Ie){if(Ie=ie.type,Ie===w){if(Q.tag===7){h(re,Q.sibling),be=S(Q,ie.props.children),be.return=re,re=be;break e}}else if(Q.elementType===Ie||typeof Ie=="object"&&Ie!==null&&Ie.$$typeof===M&&ko(Ie)===Q.type){h(re,Q.sibling),be=S(Q,ie.props),yd(be,ie),be.return=re,re=be;break e}h(re,Q);break}else c(re,Q);Q=Q.sibling}ie.type===w?(be=Co(ie.props.children,re.mode,be,ie.key),be.return=re,re=be):(be=jm(ie.type,ie.key,ie.props,null,re.mode,be),yd(be,ie),be.return=re,re=be)}return P(re);case j:e:{for(Ie=ie.key;Q!==null;){if(Q.key===Ie)if(Q.tag===4&&Q.stateNode.containerInfo===ie.containerInfo&&Q.stateNode.implementation===ie.implementation){h(re,Q.sibling),be=S(Q,ie.children||[]),be.return=re,re=be;break e}else{h(re,Q);break}else c(re,Q);Q=Q.sibling}be=Fx(ie,re.mode,be),be.return=re,re=be}return P(re);case M:return ie=ko(ie),Pt(re,Q,ie,be)}if(G(ie))return Ae(re,Q,ie,be);if(H(ie)){if(Ie=H(ie),typeof Ie!="function")throw Error(r(150));return ie=Ie.call(ie),ze(re,Q,ie,be)}if(typeof ie.then=="function")return Pt(re,Q,Am(ie),be);if(ie.$$typeof===O)return Pt(re,Q,Nm(re,ie),be);Tm(re,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"||typeof ie=="bigint"?(ie=""+ie,Q!==null&&Q.tag===6?(h(re,Q.sibling),be=S(Q,ie),be.return=re,re=be):(h(re,Q),be=qx(ie,re.mode,be),be.return=re,re=be),P(re)):h(re,Q)}return function(re,Q,ie,be){try{gd=0;var Ie=Pt(re,Q,ie,be);return ac=null,Ie}catch(De){if(De===rc||De===Om)throw De;var ht=qr(29,De,null,re.mode);return ht.lanes=be,ht.return=re,ht}finally{}}}var Po=nT(!0),rT=nT(!1),xs=!1;function eb(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function tb(o,c){o=o.updateQueue,c.updateQueue===o&&(c.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function bs(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function ws(o,c,h){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(yt&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=wm(o),zA(o,null,h),c}return bm(o,v,c,h),wm(o)}function xd(o,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,YE(o,h)}}function nb(o,c){var h=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},o.updateQueue=h;return}o=h.lastBaseUpdate,o===null?h.firstBaseUpdate=c:o.next=c,h.lastBaseUpdate=c}var rb=!1;function bd(){if(rb){var o=nc;if(o!==null)throw o}}function wd(o,c,h,v){rb=!1;var S=o.updateQueue;xs=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,q=S.shared.pending;if(q!==null){S.shared.pending=null;var X=q,oe=X.next;X.next=null,P===null?_=oe:P.next=oe,P=X;var ge=o.alternate;ge!==null&&(ge=ge.updateQueue,q=ge.lastBaseUpdate,q!==P&&(q===null?ge.firstBaseUpdate=oe:q.next=oe,ge.lastBaseUpdate=X))}if(_!==null){var we=S.baseState;P=0,ge=oe=X=null,q=_;do{var ue=q.lane&-536870913,me=ue!==q.lane;if(me?(ut&ue)===ue:(v&ue)===ue){ue!==0&&ue===tc&&(rb=!0),ge!==null&&(ge=ge.next={lane:0,tag:q.tag,payload:q.payload,callback:null,next:null});e:{var Ae=o,ze=q;ue=c;var Pt=h;switch(ze.tag){case 1:if(Ae=ze.payload,typeof Ae=="function"){we=Ae.call(Pt,we,ue);break e}we=Ae;break e;case 3:Ae.flags=Ae.flags&-65537|128;case 0:if(Ae=ze.payload,ue=typeof Ae=="function"?Ae.call(Pt,we,ue):Ae,ue==null)break e;we=p({},we,ue);break e;case 2:xs=!0}}ue=q.callback,ue!==null&&(o.flags|=64,me&&(o.flags|=8192),me=S.callbacks,me===null?S.callbacks=[ue]:me.push(ue))}else me={lane:ue,tag:q.tag,payload:q.payload,callback:q.callback,next:null},ge===null?(oe=ge=me,X=we):ge=ge.next=me,P|=ue;if(q=q.next,q===null){if(q=S.shared.pending,q===null)break;me=q,q=me.next,me.next=null,S.lastBaseUpdate=me,S.shared.pending=null}}while(!0);ge===null&&(X=we),S.baseState=X,S.firstBaseUpdate=oe,S.lastBaseUpdate=ge,_===null&&(S.shared.lanes=0),Cs|=P,o.lanes=P,o.memoizedState=we}}function aT(o,c){if(typeof o!="function")throw Error(r(191,o));o.call(c)}function iT(o,c){var h=o.callbacks;if(h!==null)for(o.callbacks=null,o=0;o_?_:8;var P=B.T,q={};B.T=q,jb(o,!1,c,h);try{var X=S(),oe=B.S;if(oe!==null&&oe(q,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var ge=R7(X,v);_d(o,c,ge,Vr(o))}else _d(o,c,v,Vr(o))}catch(we){_d(o,c,{then:function(){},status:"rejected",reason:we},Vr())}finally{D.p=_,P!==null&&q.types!==null&&(P.types=q.types),B.T=P}}function z7(){}function bb(o,c,h,v){if(o.tag!==5)throw Error(r(476));var S=IT(o).queue;$T(o,S,c,U,h===null?z7:function(){return LT(o),h(v)})}function IT(o){var c=o.memoizedState;if(c!==null)return c;c={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mi,lastRenderedState:U},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Mi,lastRenderedState:h},next:null},o.memoizedState=c,o=o.alternate,o!==null&&(o.memoizedState=c),c}function LT(o){var c=IT(o);c.next===null&&(c=o.alternate.memoizedState),_d(o,c.next.queue,{},Vr())}function wb(){return Xn(qd)}function BT(){return un().memoizedState}function zT(){return un().memoizedState}function q7(o){for(var c=o.return;c!==null;){switch(c.tag){case 24:case 3:var h=Vr();o=bs(h);var v=ws(c,o,h);v!==null&&(Tr(v,c,h),xd(v,c,h)),c={cache:Xx()},o.payload=c;return}c=c.return}}function F7(o,c,h){var v=Vr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},zm(o)?FT(c,h):(h=Bx(o,c,h,v),h!==null&&(Tr(h,o,v),UT(h,c,v)))}function qT(o,c,h){var v=Vr();_d(o,c,h,v)}function _d(o,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(zm(o))FT(c,S);else{var _=o.alternate;if(o.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,q=_(P,h);if(S.hasEagerState=!0,S.eagerState=q,zr(q,P))return bm(o,c,S,0),Lt===null&&xm(),!1}catch{}finally{}if(h=Bx(o,c,S,v),h!==null)return Tr(h,o,v),UT(h,c,v),!0}return!1}function jb(o,c,h,v){if(v={lane:2,revertLane:e0(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},zm(o)){if(c)throw Error(r(479))}else c=Bx(o,h,v,2),c!==null&&Tr(c,o,2)}function zm(o){var c=o.alternate;return o===Ke||c!==null&&c===Ke}function FT(o,c){sc=Pm=!0;var h=o.pending;h===null?c.next=c:(c.next=h.next,h.next=c),o.pending=c}function UT(o,c,h){if((h&4194048)!==0){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,YE(o,h)}}var Nd={readContext:Xn,use:$m,useCallback:rn,useContext:rn,useEffect:rn,useImperativeHandle:rn,useLayoutEffect:rn,useInsertionEffect:rn,useMemo:rn,useReducer:rn,useRef:rn,useState:rn,useDebugValue:rn,useDeferredValue:rn,useTransition:rn,useSyncExternalStore:rn,useId:rn,useHostTransitionStatus:rn,useFormState:rn,useActionState:rn,useOptimistic:rn,useMemoCache:rn,useCacheRefresh:rn};Nd.useEffectEvent=rn;var HT={readContext:Xn,use:$m,useCallback:function(o,c){return xr().memoizedState=[o,c===void 0?null:c],o},useContext:Xn,useEffect:OT,useImperativeHandle:function(o,c,h){h=h!=null?h.concat([o]):null,Lm(4194308,4,kT.bind(null,c,o),h)},useLayoutEffect:function(o,c){return Lm(4194308,4,o,c)},useInsertionEffect:function(o,c){Lm(4,2,o,c)},useMemo:function(o,c){var h=xr();c=c===void 0?null:c;var v=o();if(Ro){Ka(!0);try{o()}finally{Ka(!1)}}return h.memoizedState=[v,c],v},useReducer:function(o,c,h){var v=xr();if(h!==void 0){var S=h(c);if(Ro){Ka(!0);try{h(c)}finally{Ka(!1)}}}else S=c;return v.memoizedState=v.baseState=S,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:S},v.queue=o,o=o.dispatch=F7.bind(null,Ke,o),[v.memoizedState,o]},useRef:function(o){var c=xr();return o={current:o},c.memoizedState=o},useState:function(o){o=pb(o);var c=o.queue,h=qT.bind(null,Ke,c);return c.dispatch=h,[o.memoizedState,h]},useDebugValue:yb,useDeferredValue:function(o,c){var h=xr();return xb(h,o,c)},useTransition:function(){var o=pb(!1);return o=$T.bind(null,Ke,o.queue,!0,!1),xr().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,c,h){var v=Ke,S=xr();if(ft){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Lt===null)throw Error(r(349));(ut&127)!==0||dT(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,OT(hT.bind(null,v,_,o),[o]),v.flags|=2048,lc(9,{destroy:void 0},fT.bind(null,v,_,h,c),null),h},useId:function(){var o=xr(),c=Lt.identifierPrefix;if(ft){var h=Za,v=Xa;h=(v&~(1<<32-ar(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=Rm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Yn]=c,_[_r]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(Qn(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&Ri(c)}}return Kt(c),$b(c,c.type,o===null?null:o.memoizedProps,c.pendingProps,h),null;case 6:if(o&&c.stateNode!=null)o.memoizedProps!==v&&Ri(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(o=xe.current,Jl(c)){if(o=c.stateNode,h=c.memoizedProps,v=null,S=Kn,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}o[Yn]=c,o=!!(o.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||ck(o.nodeValue,h)),o||gs(c,!0)}else o=sp(o).createTextNode(v),o[Yn]=c,c.stateNode=o}return Kt(c),null;case 31:if(h=c.memoizedState,o===null||o.memoizedState!==null){if(v=Jl(c),h!==null){if(o===null){if(!v)throw Error(r(318));if(o=c.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));o[Yn]=c}else Oo(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;Kt(c),o=!1}else h=Vx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=h),o=!0;if(!o)return c.flags&256?(Ur(c),c):(Ur(c),null);if((c.flags&128)!==0)throw Error(r(558))}return Kt(c),null;case 13:if(v=c.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(S=Jl(c),v!==null&&v.dehydrated!==null){if(o===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Yn]=c}else Oo(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;Kt(c),S=!1}else S=Vx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Ur(c),c):(Ur(c),null)}return Ur(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,o=o!==null&&o.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==o&&h&&(c.child.flags|=8192),Wm(c,c.updateQueue),Kt(c),null);case 4:return Z(),o===null&&a0(c.stateNode.containerInfo),Kt(c),null;case 10:return Ti(c.type),Kt(c),null;case 19:if(z(cn),v=c.memoizedState,v===null)return Kt(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)Od(v,!1);else{if(an!==0||o!==null&&(o.flags&128)!==0)for(o=c.child;o!==null;){if(_=Mm(o),_!==null){for(c.flags|=128,Od(v,!1),o=_.updateQueue,c.updateQueue=o,Wm(c,o),c.subtreeFlags=0,o=h,h=c.child;h!==null;)qA(h,o),h=h.sibling;return Y(cn,cn.current&1|2),ft&&Ei(c,v.treeForkCount),c.child}o=o.sibling}v.tail!==null&&rt()>Xm&&(c.flags|=128,S=!0,Od(v,!1),c.lanes=4194304)}else{if(!S)if(o=Mm(_),o!==null){if(c.flags|=128,S=!0,o=o.updateQueue,c.updateQueue=o,Wm(c,o),Od(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!ft)return Kt(c),null}else 2*rt()-v.renderingStartTime>Xm&&h!==536870912&&(c.flags|=128,S=!0,Od(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(o=v.last,o!==null?o.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=rt(),o.sibling=null,h=cn.current,Y(cn,S?h&1|2:h&1),ft&&Ei(c,v.treeForkCount),o):(Kt(c),null);case 22:case 23:return Ur(c),ib(),v=c.memoizedState!==null,o!==null?o.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(Kt(c),c.subtreeFlags&6&&(c.flags|=8192)):Kt(c),h=c.updateQueue,h!==null&&Wm(c,h.retryQueue),h=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),o!==null&&z(To),null;case 24:return h=null,o!==null&&(h=o.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Ti(dn),Kt(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function G7(o,c){switch(Hx(c),c.tag){case 1:return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 3:return Ti(dn),Z(),o=c.flags,(o&65536)!==0&&(o&128)===0?(c.flags=o&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Ur(c),c.alternate===null)throw Error(r(340));Oo()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 13:if(Ur(c),o=c.memoizedState,o!==null&&o.dehydrated!==null){if(c.alternate===null)throw Error(r(340));Oo()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 19:return z(cn),null;case 4:return Z(),null;case 10:return Ti(c.type),null;case 22:case 23:return Ur(c),ib(),o!==null&&z(To),o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 24:return Ti(dn),null;case 25:return null;default:return null}}function m2(o,c){switch(Hx(c),c.tag){case 3:Ti(dn),Z();break;case 26:case 27:case 5:je(c);break;case 4:Z();break;case 31:c.memoizedState!==null&&Ur(c);break;case 13:Ur(c);break;case 19:z(cn);break;case 10:Ti(c.type);break;case 22:case 23:Ur(c),ib(),o!==null&&z(To);break;case 24:Ti(dn)}}function Ed(o,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&o)===o){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(q){Nt(c,c.return,q)}}function _s(o,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&o)===o){var P=v.inst,q=P.destroy;if(q!==void 0){P.destroy=void 0,S=c;var X=h,oe=q;try{oe()}catch(ge){Nt(S,X,ge)}}}v=v.next}while(v!==_)}}catch(ge){Nt(c,c.return,ge)}}function p2(o){var c=o.updateQueue;if(c!==null){var h=o.stateNode;try{iT(c,h)}catch(v){Nt(o,o.return,v)}}}function v2(o,c,h){h.props=Do(o.type,o.memoizedProps),h.state=o.memoizedState;try{h.componentWillUnmount()}catch(v){Nt(o,c,v)}}function Ad(o,c){try{var h=o.ref;if(h!==null){switch(o.tag){case 26:case 27:case 5:var v=o.stateNode;break;case 30:v=o.stateNode;break;default:v=o.stateNode}typeof h=="function"?o.refCleanup=h(v):h.current=v}}catch(S){Nt(o,c,S)}}function Qa(o,c){var h=o.ref,v=o.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){Nt(o,c,S)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){Nt(o,c,S)}else h.current=null}function g2(o){var c=o.type,h=o.memoizedProps,v=o.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){Nt(o,o.return,S)}}function Ib(o,c,h){try{var v=o.stateNode;pV(v,o.type,h,c),v[_r]=c}catch(S){Nt(o,o.return,S)}}function y2(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&ks(o.type)||o.tag===4}function Lb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||y2(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&ks(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Bb(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(o,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(o),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ni));else if(v!==4&&(v===27&&ks(o.type)&&(h=o.stateNode,c=null),o=o.child,o!==null))for(Bb(o,c,h),o=o.sibling;o!==null;)Bb(o,c,h),o=o.sibling}function Vm(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?h.insertBefore(o,c):h.appendChild(o);else if(v!==4&&(v===27&&ks(o.type)&&(h=o.stateNode),o=o.child,o!==null))for(Vm(o,c,h),o=o.sibling;o!==null;)Vm(o,c,h),o=o.sibling}function x2(o){var c=o.stateNode,h=o.memoizedProps;try{for(var v=o.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);Qn(c,v,h),c[Yn]=o,c[_r]=h}catch(_){Nt(o,o.return,_)}}var Di=!1,mn=!1,zb=!1,b2=typeof WeakSet=="function"?WeakSet:Set,Bn=null;function Y7(o,c){if(o=o.containerInfo,o0=hp,o=MA(o),Px(o)){if("selectionStart"in o)var h={start:o.selectionStart,end:o.selectionEnd};else e:{h=(h=o.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,q=-1,X=-1,oe=0,ge=0,we=o,ue=null;t:for(;;){for(var me;we!==h||S!==0&&we.nodeType!==3||(q=P+S),we!==_||v!==0&&we.nodeType!==3||(X=P+v),we.nodeType===3&&(P+=we.nodeValue.length),(me=we.firstChild)!==null;)ue=we,we=me;for(;;){if(we===o)break t;if(ue===h&&++oe===S&&(q=P),ue===_&&++ge===v&&(X=P),(me=we.nextSibling)!==null)break;we=ue,ue=we.parentNode}we=me}h=q===-1||X===-1?null:{start:q,end:X}}else h=null}h=h||{start:0,end:0}}else h=null;for(l0={focusedElem:o,selectionRange:h},hp=!1,Bn=c;Bn!==null;)if(c=Bn,o=c.child,(c.subtreeFlags&1028)!==0&&o!==null)o.return=c,Bn=o;else for(;Bn!==null;){switch(c=Bn,_=c.alternate,o=c.flags,c.tag){case 0:if((o&4)!==0&&(o=c.updateQueue,o=o!==null?o.events:null,o!==null))for(h=0;h title"))),Qn(_,v,h),_[Yn]=o,Ln(_),v=_;break e;case"link":var P=Ck("link","href",S).get(v+(h.href||""));if(P){for(var q=0;qPt&&(P=Pt,Pt=ze,ze=P);var re=TA(q,ze),Q=TA(q,Pt);if(re&&Q&&(me.rangeCount!==1||me.anchorNode!==re.node||me.anchorOffset!==re.offset||me.focusNode!==Q.node||me.focusOffset!==Q.offset)){var ie=we.createRange();ie.setStart(re.node,re.offset),me.removeAllRanges(),ze>Pt?(me.addRange(ie),me.extend(Q.node,Q.offset)):(ie.setEnd(Q.node,Q.offset),me.addRange(ie))}}}}for(we=[],me=q;me=me.parentNode;)me.nodeType===1&&we.push({element:me,left:me.scrollLeft,top:me.scrollTop});for(typeof q.focus=="function"&&q.focus(),q=0;qh?32:h,B.T=null,h=Gb,Gb=null;var _=Es,P=zi;if(On=0,hc=Es=null,zi=0,(yt&6)!==0)throw Error(r(331));var q=yt;if(yt|=4,k2(_.current),E2(_,_.current,P,h),yt=q,Dd(0,!1),yr&&typeof yr.onPostCommitFiberRoot=="function")try{yr.onPostCommitFiberRoot(yo,_)}catch{}return!0}finally{D.p=S,B.T=v,K2(o,c)}}function Z2(o,c,h){c=ua(h,c),c=Cb(o.stateNode,c,2),o=ws(o,c,2),o!==null&&(td(o,2),Ja(o))}function Nt(o,c,h){if(o.tag===3)Z2(o,o,h);else for(;c!==null;){if(c.tag===3){Z2(c,o,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(Os===null||!Os.has(v))){o=ua(h,o),h=QT(2),v=ws(c,h,2),v!==null&&(JT(h,v,c,o),td(v,2),Ja(v));break}}c=c.return}}function Zb(o,c,h){var v=o.pingCache;if(v===null){v=o.pingCache=new Z7;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Ub=!0,S.add(h),o=nV.bind(null,o,c,h),c.then(o,o))}function nV(o,c,h){var v=o.pingCache;v!==null&&v.delete(c),o.pingedLanes|=o.suspendedLanes&h,o.warmLanes&=~h,Lt===o&&(ut&h)===h&&(an===4||an===3&&(ut&62914560)===ut&&300>rt()-Km?(yt&2)===0&&mc(o,0):Hb|=h,fc===ut&&(fc=0)),Ja(o)}function Q2(o,c){c===0&&(c=$l()),o=No(o,c),o!==null&&(td(o,c),Ja(o))}function rV(o){var c=o.memoizedState,h=0;c!==null&&(h=c.retryLane),Q2(o,h)}function aV(o,c){var h=0;switch(o.tag){case 31:case 13:var v=o.stateNode,S=o.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=o.stateNode;break;case 22:v=o.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),Q2(o,h)}function iV(o,c){return vr(o,c)}var np=null,vc=null,Qb=!1,rp=!1,Jb=!1,Ts=0;function Ja(o){o!==vc&&o.next===null&&(vc===null?np=vc=o:vc=vc.next=o),rp=!0,Qb||(Qb=!0,oV())}function Dd(o,c){if(!Jb&&rp){Jb=!0;do for(var h=!1,v=np;v!==null;){if(o!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,q=v.pingedLanes;_=(1<<31-ar(42|o)+1)-1,_&=S&~(P&~q),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,nk(v,_))}else _=ut,_=Dl(v,v===Lt?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||xo(v,_)||(h=!0,nk(v,_));v=v.next}while(h);Jb=!1}}function sV(){J2()}function J2(){rp=Qb=!1;var o=0;Ts!==0&&gV()&&(o=Ts);for(var c=rt(),h=null,v=np;v!==null;){var S=v.next,_=ek(v,c);_===0?(v.next=null,h===null?np=S:h.next=S,S===null&&(vc=h)):(h=v,(o!==0||(_&3)!==0)&&(rp=!0)),v=S}On!==0&&On!==5||Dd(o),Ts!==0&&(Ts=0)}function ek(o,c){for(var h=o.suspendedLanes,v=o.pingedLanes,S=o.expirationTimes,_=o.pendingLanes&-62914561;0<_;){var P=31-ar(_),q=1<q)break;var ge=X.transferSize,we=X.initiatorType;ge&&uk(we)&&(X=X.responseEnd,P+=ge*(X"u"?null:document;function jk(o,c,h){var v=gc;if(v&&typeof c=="string"&&c){var S=la(c);S='link[rel="'+o+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),wk.has(S)||(wk.add(S),o={rel:o,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),Qn(c,"link",o),Ln(c),v.head.appendChild(c)))}}function CV(o){qi.D(o),jk("dns-prefetch",o,null)}function OV(o,c){qi.C(o,c),jk("preconnect",o,c)}function EV(o,c,h){qi.L(o,c,h);var v=gc;if(v&&o&&c){var S='link[rel="preload"][as="'+la(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+la(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+la(h.imageSizes)+'"]')):S+='[href="'+la(o)+'"]';var _=S;switch(c){case"style":_=yc(o);break;case"script":_=xc(o)}va.has(_)||(o=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:o,as:c},h),va.set(_,o),v.querySelector(S)!==null||c==="style"&&v.querySelector(Bd(_))||c==="script"&&v.querySelector(zd(_))||(c=v.createElement("link"),Qn(c,"link",o),Ln(c),v.head.appendChild(c)))}}function AV(o,c){qi.m(o,c);var h=gc;if(h&&o){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+la(v)+'"][href="'+la(o)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=xc(o)}if(!va.has(_)&&(o=p({rel:"modulepreload",href:o},c),va.set(_,o),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(zd(_)))return}v=h.createElement("link"),Qn(v,"link",o),Ln(v),h.head.appendChild(v)}}}function TV(o,c,h){qi.S(o,c,h);var v=gc;if(v&&o){var S=zl(v).hoistableStyles,_=yc(o);c=c||"default";var P=S.get(_);if(!P){var q={loading:0,preload:null};if(P=v.querySelector(Bd(_)))q.loading=5;else{o=p({rel:"stylesheet",href:o,"data-precedence":c},h),(h=va.get(_))&&p0(o,h);var X=P=v.createElement("link");Ln(X),Qn(X,"link",o),X._p=new Promise(function(oe,ge){X.onload=oe,X.onerror=ge}),X.addEventListener("load",function(){q.loading|=1}),X.addEventListener("error",function(){q.loading|=2}),q.loading|=4,lp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:q},S.set(_,P)}}}function kV(o,c){qi.X(o,c);var h=gc;if(h&&o){var v=zl(h).hoistableScripts,S=xc(o),_=v.get(S);_||(_=h.querySelector(zd(S)),_||(o=p({src:o,async:!0},c),(c=va.get(S))&&v0(o,c),_=h.createElement("script"),Ln(_),Qn(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function MV(o,c){qi.M(o,c);var h=gc;if(h&&o){var v=zl(h).hoistableScripts,S=xc(o),_=v.get(S);_||(_=h.querySelector(zd(S)),_||(o=p({src:o,async:!0,type:"module"},c),(c=va.get(S))&&v0(o,c),_=h.createElement("script"),Ln(_),Qn(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function Sk(o,c,h,v){var S=(S=xe.current)?op(S):null;if(!S)throw Error(r(446));switch(o){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=yc(h.href),h=zl(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){o=yc(h.href);var _=zl(S).hoistableStyles,P=_.get(o);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(o,P),(_=S.querySelector(Bd(o)))&&!_._p&&(P.instance=_,P.state.loading=5),va.has(o)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},va.set(o,h),_||PV(S,o,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=xc(h),h=zl(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,o))}}function yc(o){return'href="'+la(o)+'"'}function Bd(o){return'link[rel="stylesheet"]['+o+"]"}function _k(o){return p({},o,{"data-precedence":o.precedence,precedence:null})}function PV(o,c,h,v){o.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=o.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),Qn(c,"link",h),Ln(c),o.head.appendChild(c))}function xc(o){return'[src="'+la(o)+'"]'}function zd(o){return"script[async]"+o}function Nk(o,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=o.querySelector('style[data-href~="'+la(h.href)+'"]');if(v)return c.instance=v,Ln(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(o.ownerDocument||o).createElement("style"),Ln(v),Qn(v,"style",S),lp(v,h.precedence,o),c.instance=v;case"stylesheet":S=yc(h.href);var _=o.querySelector(Bd(S));if(_)return c.state.loading|=4,c.instance=_,Ln(_),_;v=_k(h),(S=va.get(S))&&p0(v,S),_=(o.ownerDocument||o).createElement("link"),Ln(_);var P=_;return P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),Qn(_,"link",v),c.state.loading|=4,lp(_,h.precedence,o),c.instance=_;case"script":return _=xc(h.src),(S=o.querySelector(zd(_)))?(c.instance=S,Ln(S),S):(v=h,(S=va.get(_))&&(v=p({},h),v0(v,S)),o=o.ownerDocument||o,S=o.createElement("script"),Ln(S),Qn(S,"link",v),o.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,lp(v,h.precedence,o));return c.instance}function lp(o,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function RV(o,c,h){if(h===1||c.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return o=c.disabled,typeof c.precedence=="string"&&o==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Ek(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function DV(o,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=yc(v.href),_=c.querySelector(Bd(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(o.count++,o=up.bind(o),c.then(o,o)),h.state.loading|=4,h.instance=_,Ln(_);return}_=c.ownerDocument||c,v=_k(v),(S=va.get(S))&&p0(v,S),_=_.createElement("link"),Ln(_);var P=_;P._p=new Promise(function(q,X){P.onload=q,P.onerror=X}),Qn(_,"link",v),h.instance=_}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(o.count++,h=up.bind(o),c.addEventListener("load",h),c.addEventListener("error",h))}}var g0=0;function $V(o,c){return o.stylesheets&&o.count===0&&fp(o,o.stylesheets),0g0?50:800)+c);return o.unsuspend=h,function(){o.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function up(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)fp(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var dp=null;function fp(o,c){o.stylesheets=null,o.unsuspend!==null&&(o.count++,dp=new Map,c.forEach(IV,o),dp=null,up.call(o))}function IV(o,c){if(!(c.state.loading&4)){var h=dp.get(o);if(h)var v=h.get(null);else{h=new Map,dp.set(o,h);for(var S=o.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),C0.exports=JV(),C0.exports}var tG=eG();const h_=new WeakMap,nG=new WeakMap,fv={current:[]};let T0=!1,xf=0;const uf=new Set,wp=new Map;function YL(e){for(const t of e){if(fv.current.includes(t))continue;fv.current.push(t),t.recompute();const n=nG.get(t);if(n)for(const r of n){const a=h_.get(r);a?.length&&YL(a)}}}function rG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function aG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function KL(e){if(xf>0&&!wp.has(e)&&wp.set(e,e.prevState),uf.add(e),!(xf>0)&&!T0)try{for(T0=!0;uf.size>0;){const t=Array.from(uf);uf.clear();for(const n of t){const r=wp.get(n)??n.prevState;n.prevState=r,rG(n)}for(const n of t){const r=h_.get(n);r&&(fv.current.push(n),YL(r))}for(const n of t){const r=h_.get(n);if(r)for(const a of r)aG(a)}}}finally{T0=!1,fv.current=[],wp.clear()}}function bf(e){xf++;try{e()}finally{if(xf--,xf===0){const t=uf.values().next().value;t&&KL(t)}}}function iG(e){return typeof e=="function"}class sG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,s;this.listeners.add(r);const l=(s=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:s.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):iG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),KL(this)}}const Vs="__TSR_index",Qk="popstate",Jk="beforeunload";function oG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},s=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=hv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Vs];u=eM(f+1,u),s({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Vs];u=eM(f,u),s({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{s({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{s({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{s({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Vs]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function eM(e,t){t||(t={});const n=CC();return{...t,key:n,__TSR_key:n,[Vs]:e}}function lG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const s=()=>a,l=M=>a=M,u=(M=>M),d=(()=>hv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=CC();t.history.replaceState({[Vs]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const w=()=>f;let b,N;const E=()=>{b&&(T._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),T._ignoreSubscribers=!1,b=void 0,N=void 0,m=void 0)},O=(M,R,L)=>{const $=u(R);N||(m=f),f=hv(R,L),b={href:$,state:L,isPush:b?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>E()))},A=M=>{f=d(),T.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),R=M.state[Vs]-f.state[Vs],L=R===1,$=R===-1,H=!L&&!$||p;p=!1;const V=H?"GO":$?"BACK":"FORWARD",F=H?{type:"GO",index:R}:{type:$?"BACK":"FORWARD"};if(x)x=!1;else{const G=s();if(typeof document<"u"&&G.length){for(const B of G)if(await B.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),T.notify(F);return}}}f=d(),T.notify(F)},k=M=>{if(j){j=!1;return}let R=!1;const L=s();if(typeof document<"u"&&L.length)for(const $ of L){const H=$.enableBeforeUnload??!0;if(H===!0){R=!0;break}if(typeof H=="function"&&H()===!0){R=!0;break}}if(R)return M.preventDefault(),M.returnValue=""},T=oG({getLocation:w,getLength:()=>t.history.length,pushState:(M,R)=>O("push",M,R),replaceState:(M,R)=>O("replace",M,R),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(Jk,k,{capture:!0}),t.removeEventListener(Qk,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:s,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(Jk,k,{capture:!0}),t.addEventListener(Qk,C),t.history.pushState=function(...M){const R=n.apply(t.history,M);return T._ignoreSubscribers||A("PUSH"),R},t.history.replaceState=function(...M){const R=r.apply(t.history,M);return T._ignoreSubscribers||A("REPLACE"),R},T}function hv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=CC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Vs]:0,key:a,__TSR_key:a}}}function CC(){return(Math.random()+1).toString(36).substring(7)}function m_(e){return e[e.length-1]}function cG(e){return typeof e=="function"}function Qo(e,t){return cG(e)?e(t):e}const uG=Object.prototype.hasOwnProperty;function wa(e,t){if(e===t)return e;const n=t,r=rM(e)&&rM(n);if(!r&&!(mv(e)&&mv(n)))return n;const a=r?e:tM(e);if(!a)return n;const s=r?n:tM(n);if(!s)return n;const l=a.length,u=s.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!nM(n)||!n.hasOwnProperty("isPrototypeOf"))}function nM(e){return Object.prototype.toString.call(e)==="[object Object]"}function rM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Jo(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!Jo(e[l],t[l],n)))return!1;return a===s}return!1}function Qc(e){let t,n;const r=new Promise((a,s)=>{t=a,n=s});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function Gs(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const dG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function aM(e,t=dG){function n(a,s,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var fG="Invariant failed";function ur(e,t){if(!e)throw new Error(fG)}const di=0,ll=1,Jc=2,eu=3;function Qi(e){return OC(e.filter(t=>t!==void 0).join("/"))}function OC(e){return e.replace(/\/{2,}/g,"/")}function EC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Ys(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function Jp(e){return Ys(EC(e))}function pv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function hG(e,t,n){return pv(e,n)===pv(t,n)}function mG(e){const{type:t,value:n}=e;if(t===di)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===ll){const s=n.substring(1);if(r&&a)return`${r}{$${s}}${a}`;if(r)return`${r}{$${s}}`;if(a)return`{$${s}}${a}`}if(t===eu){const s=n.substring(1);return r&&a?`${r}{-$${s}}${a}`:r?`${r}{-$${s}}`:a?`{-$${s}}${a}`:`{-$${s}}`}if(t===Jc){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function pG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=tu(e,r).slice();const s=tu(t,r);a.length>1&&m_(a)?.value==="/"&&a.pop();for(let d=0,f=s.length;d1&&(m_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:di,value:"/"}));const l=a.map(mG);return Qi(l)}const tu=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=wG(e);return t?.set(e,r),r},vG=/^\$.{1,}$/,gG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,yG=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,xG=/^\$$/,bG=/^(.*?)\{\$\}(.*)$/;function wG(e){e=OC(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:di,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(bG);if(a){const u=a[1],d=a[2];return{type:Jc,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const s=r.match(yG);if(s){const u=s[1],d=s[2],f=s[3];return{type:eu,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(gG);if(l){const u=l[1],d=l[2],f=l[3];return{type:ll,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(vG.test(r)){const u=r.substring(1);return{type:ll,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return xG.test(r)?{type:Jc,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:di,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:di,value:"/"})),t}function k0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=tu(e,r);function s(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?jG(m,n):m}let l=!1;const u={},d=Qi(a.map(f=>{if(f.type===di)return f.value;if(f.type===Jc){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=s("_splat");return`${m}${g}${p}`}if(f.type===ll){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${s(m)??"undefined"}${g}`}if(f.type===eu){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${s(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function jG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function p_(e,t,n){const r=SG(e,t,n);if(!(t.to&&!r))return r??{}}function SG(e,{to:t,fuzzy:n,caseSensitive:r},a){const s=t,l=tu(e.startsWith("/")?e:`/${e}`,a),u=tu(s.startsWith("/")?s:`/${s}`,a),d={};return _G(l,u,d,n,r)?d:void 0}function _G(e,t,n,r,a){let s=0,l=0;for(;sw.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(Qi(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===di){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;s++,l++;continue}else return!1}if(d.type===ll){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,s++),l++;continue}if(d.type===eu){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=Qi(e.slice(s).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const s=EC(r.fullPath);let l=tu(s),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return NG;if(p.type===di)return CG;let x;p.type===ll?x=OG:p.type===eu?(x=EG,d++):x=AG;for(let j=g+1;j{const s=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function DG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(ur(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=Ys(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const s=RG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:s}}function Fa(e){return!!e?.isNotFound}function $G(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const vv="tsr-scroll-restoration-v1_3",IG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function LG(){const e=$G();if(!e)return null;const t=e.getItem(vv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=Qo(r,n)||n,e.setItem(vv,JSON.stringify(n)))}}const jp=LG(),v_=e=>e.state.__TSR_key||e.href;function BG(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let gv=!1;function XL({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:s}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];gv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(s??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}gv=!1}function zG(e,t){if(!jp&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!jp))return;e.isScrollRestorationSetup=!0,gv=!1;const r=e.options.getScrollRestorationKey||v_;window.history.scrollRestoration="manual";const a=s=>{if(gv||!e.isScrollRestoring)return;let l="";if(s.target===document||s.target===window)l="window";else{const d=s.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=BG(s.target)}const u=r(e.state.location);jp.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",IG(a,100),!0),e.subscribe("onRendered",s=>{const l=r(s.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(XL({storageKey:vv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&jp.set(u=>(u[l]||={},u)))})}function qG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function FG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function M0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function UG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const s=n[r];s==null?n[r]=M0(a):Array.isArray(s)?s.push(M0(a)):n[r]=[s,M0(a)]}return n}const HG=VG(JSON.parse),WG=GG(JSON.stringify,JSON.parse);function VG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=UG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function GG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const s=FG(a,r);return s?`?${s}`:""}}const Zr="__root__";function ZL(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function si(e){return e instanceof Response&&!!e.options}function YG(e){const t=new Map;let n,r;const a=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,n=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){const l=t.get(s);if(l)return a(l),l.value},set(s,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(s);if(u)u.value=l,a(u);else{const d={key:s,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(s,d)}}}}const ev=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},$g=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),QL=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),ur(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);ur(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,QL(e,t))},Fs=(e,t,n)=>{if(!(!si(n)&&!Fa(n))){if(si(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=si(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Fa(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw si(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(QL(e,n),n)}},JL=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Gd=(e,t,n,r)=>{const{id:a,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Fs(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Fs(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},KG=(e,t,n,r)=>{const a=e.router.getMatch(t),s=e.matches[n-1]?.id,l=s?e.router.getMatch(s):void 0;if(e.router.isShell()){a.ssr=r.id===Zr;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:Sp(f,a.searchError),params:Sp(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:Sp(x.search,x.searchError),params:Sp(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(Gs(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},e5=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!$g(e,t)&&(n.options.loader||n.options.beforeLoad||r5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{ev(e)},a);r._nonReactive.pendingTimeout=l}},XG=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;e5(e,t,n,r);const a=()=>{const s=e.router.getMatch(t);s.preload&&(s.status==="redirected"||s.status==="notFound")&&Fs(e,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},ZG=(e,t,n,r)=>{const a=e.router.getMatch(t),s=a._nonReactive.loadPromise;a._nonReactive.loadPromise=Qc(()=>{s?.resolve()});const{paramsError:l,searchError:u}=a;l&&Gd(e,n,l,"PARSE_PARAMS"),u&&Gd(e,n,u,"VALIDATE_SEARCH"),e5(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,T=>({...T,isFetching:"beforeLoad",fetchCount:T.fetchCount+1,abortController:d,context:g})))},w=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,T=>({...T,isFetching:!1}))};if(!r.options.beforeLoad){bf(()=>{j(),w()});return}a._nonReactive.beforeLoadPromise=Qc();const{search:b,params:N,cause:E}=a,O=$g(e,t),A={search:b,abortController:d,params:N,preload:O,context:g,location:e.location,navigate:T=>e.router.navigate({...T,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:O?"preload":E,matches:e.matches,...e.router.options.additionalContext},C=T=>{if(T===void 0){bf(()=>{j(),w()});return}(si(T)||Fa(T))&&(j(),Gd(e,n,T,"BEFORE_LOAD")),bf(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:T,context:{...M.context,...T}})),w()})};let k;try{if(k=r.options.beforeLoad(A),Gs(k))return j(),k.catch(T=>{Gd(e,n,T,"BEFORE_LOAD")}).then(C)}catch(T){j(),Gd(e,n,T,"BEFORE_LOAD")}C(k)},QG=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],s=()=>{if(e.router.isServer){const d=KG(e,n,t,a);if(Gs(d))return d.then(u)}return u()},l=()=>ZG(e,n,t,a),u=()=>{if(JL(e,n))return;const d=XG(e,n,a);return Gs(d)?d.then(l):l()};return s()},wf=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([s,l,u])=>{const d=s?.meta,f=s?.links,m=s?.scripts,p=s?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},t5=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:s,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=$g(e,t);return{params:s,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},lM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&n5(r);const s=r.options.loader?.(t5(e,t,n,r)),l=r.options.loader&&Gs(s);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await s:s;Fs(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=wf(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let l=s;const u=a._nonReactive.minPendingPromise;u&&await u,Fa(s)&&await r.options.notFoundComponent?.preload?.(),Fs(e,e.router.getMatch(t),s);try{r.options.onError?.(s)}catch(m){l=m,Fs(e,e.router.getMatch(t),m)}const d=wf(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const s=e.router.getMatch(t);if(s){const l=wf(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}s._nonReactive.loaderPromise=void 0}Fs(e,s,a)}},JG=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,s=!1;const l=e.router.looseRoutesById[r];if(JL(e,n)){if(e.router.isServer){const f=wf(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Fs(e,m,p)}else{const m=Date.now()-f.updatedAt,p=$g(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(t5(e,n,t,l)):x,w=!!p&&!e.router.state.matches.some(O=>O.id===n),b=e.router.getMatch(n);b._nonReactive.loaderPromise=Qc(),w!==b.preload&&e.updateMatch(n,O=>({...O,preload:w}));const{status:N,invalid:E}=b;if(a=N==="success"&&(E||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)s=!0,(async()=>{try{await lM(e,n,t,l);const O=e.router.getMatch(n);O._nonReactive.loaderPromise?.resolve(),O._nonReactive.loadPromise?.resolve(),O._nonReactive.loaderPromise=void 0}catch(O){si(O)&&await e.router.navigate(O.options)}})();else if(N!=="success"||a&&e.sync)await lM(e,n,t,l);else{const O=wf(e,n,l);if(O){const A=await O;e.updateMatch(n,C=>({...C,...A}))}}}}const u=e.router.getMatch(n);s||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,s||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=s?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function cM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&ev(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of a5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Sp(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function r5(e){for(const t of a5)if(e.options[t]?.preload)return!0;return!1}const a5=["component","errorComponent","pendingComponent","notFoundComponent"];function eY(e){return{input:({url:t})=>{for(const n of e)t=i5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=s5(e[n],t);return t}}}function tY(e){const t=Jp(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),s=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(s)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=Qi(["/",t,l.pathname]),l)}}function i5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function s5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function el(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,s=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:s}}class nY{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",s=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=lG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new sG(aY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),zG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(s||a!==d||l!==f){this.basepath=d;const g=[];Jp(d)!==""&&g.push(tY({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:eY(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=DG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=i5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:w,hash:b}=p;return{href:j,publicHref:d,url:p.href,pathname:aM(w),searchStr:x,search:wa(r?.search,g),hash:b.split("#").reverse()[0]??"",state:wa(r?.state,f)}},s=a(n),{__tempLocation:l,__tempKey:u}=s.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=s.state.key,d.state.__TSR_key=s.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:s}}return s},this.resolvePathWithBase=(n,r)=>pG({base:n,to:OC(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=YG(1e3),this.getMatchedRoutes=(n,r)=>iY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(s=>s.status==="pending"),r=this.state.matches.filter(s=>s.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(s=>{this.cancelMatch(s.id)})},this.buildLocation=n=>{const r=(s={})=>{const l=s._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=m_(u);s.from;const f=s.unsafeRelative==="path"?l.pathname:s.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=s.to?this.resolvePathWithBase(m,`${s.to}`):this.resolvePathWithBase(m,"."),j=s.params===!1||s.params===null?{}:(s.params??!0)===!0?g:Object.assign(g,Qo(s.params,g)),w=k0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(w,void 0,{_buildLocation:!0}).map(L=>this.looseRoutesById[L.routeId]);if(Object.keys(j).length>0)for(const L of b){const $=L.options.params?.stringify??L.options.stringifyParams;$&&Object.assign(j,$(j))}const N=n.leaveParams?x:aM(k0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let E=p;if(n._includeValidateSearch&&this.options.search?.strict){const L={};b.forEach($=>{if($.options.validateSearch)try{Object.assign(L,g_($.options.validateSearch,{...L,...E}))}catch{}}),E=L}E=sY({search:E,dest:s,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=wa(p,E);const O=this.options.stringifySearch(E),A=s.hash===!0?l.hash:s.hash?Qo(s.hash,l.hash):void 0,C=A?`#${A}`:"";let k=s.state===!0?l.state:s.state?Qo(s.state,l.state):{};k=wa(l.state,k);const T=`${N}${O}${C}`,M=new URL(T,this.origin),R=s5(this.rewrite,M);return{publicHref:R.pathname+R.search+R.hash,href:T,url:R.href,pathname:N,search:E,searchStr:O,state:k,hash:A??"",unmaskOnReload:s.unmaskOnReload}},a=(s={},l)=>{const u=r(s);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=p_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const s=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=Jo(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=Ys(this.latestLocation.href)===Ys(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=Qc(()=>{u?.resolve()}),l&&s())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:s,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=hv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:s,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...s})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...s}).url),s.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...s,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(Jp(a(this.latestLocation.href))!==Jp(a(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),ZL({href:s})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(s=>s.id===a.id))}))},this.load=async n=>{let r,a,s;for(s=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...el({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...el({resolvedLocation:f,location:d})}),await cM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];bf(()=>{this.__store.setState(x=>{const j=x.matches,w=x.pendingMatches||x.matches;return m=j.filter(b=>!w.some(N=>N.id===b.id)),p=w.filter(b=>!j.some(N=>N.id===b.id)),g=w.filter(b=>j.some(N=>N.id===b.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(b=>b.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(w=>{this.looseRoutesById[w.routeId].options[j]?.(w)})})})})}})}catch(d){si(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Fa(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const s=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(el({resolvedLocation:l,location:s})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(s=>s.id===n)?"pendingMatches":this.state.matches.some(s=>s.id===n)?"matches":this.state.cachedMatches.some(s=>s.id===n)?"cachedMatches":"";a&&this.__store.setState(s=>({...s,[a]:s[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(s=>!r(s))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const s=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:n})},this.loadRouteChunk=n5,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...s,...this.state.cachedMatches.map(u=>u.id)]);bf(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await cM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{s.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(si(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Fa(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},s=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=p_(u.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!d||n.params&&!Jo(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?Jo(u.search,s.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??WG,parseSearch:t.parseSearch??HG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:s}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&s["**"]:Ys(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return Zr}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,w]=(()=>{const H=g?.search??t.search,V=g?._strictSearch??void 0;try{const F=g_(m.options.validateSearch,{...H})??void 0;return[{...H,...F},{...V,...F},void 0]}catch(F){let G=F;if(F instanceof yv||(G=new yv(F.message,{cause:F})),n?.throwOnError)throw G;return[H,{},G]}})(),b=m.options.loaderDeps?.({search:x})??"",N=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:O}=k0({path:m.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),A=m.id+E+N,C=this.getMatch(A),k=this.state.matches.find(H=>H.routeId===m.id),T=C?._strictParams??O;let M;if(!C){const H=m.options.params?.parse??m.options.parseParams;if(H)try{Object.assign(T,H(T))}catch(V){if(M=new rY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(s,T);const R=k?"stay":"enter";let L;if(C)L={...C,cause:R,params:k?wa(k.params,s):s,_strictParams:T,search:wa(k?k.search:C.search,x),_strictSearch:j};else{const H=m.options.loader||m.options.beforeLoad||m.lazyFn||r5(m)?"pending":"success";L={id:A,index:p,routeId:m.id,params:k?wa(k.params,s):s,_strictParams:T,pathname:E,updatedAt:Date.now(),search:k?wa(k.search,x):x,_strictSearch:j,searchError:void 0,status:H,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:Qc()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:R,loaderDeps:k?wa(k.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(L.globalNotFound=u===m.id),L.searchError=w;const $=f(g);L.context={...$,...L.__routeContext,...L.__beforeLoadContext},d.push(L)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],w=f(j);if(g.options.context){const b={deps:m.loaderDeps,params:m.params,context:w??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(b)??void 0}m.context={...w,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class yv extends Error{}class rY extends Error{}function aY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function g_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new yv("Async validation not supported");if(n.issues)throw new yv(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function iY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:s,parseCache:l}){let u={};const d=Ys(e),f=x=>p_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of s){const w=f(j);if(w)if(j.path!=="/"&&w["**"])x||(x={foundRoute:j,routeParams:w});else{m=j,u=w;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[Zr];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function sY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((w,b)=>b(w),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((w,b)=>b(w),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...g_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],s=({search:u})=>t.search?t.search===!0?u:Qo(t.search,u):{};a.push(s);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const oY="Error preloading route! ☝️";class o5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=Zr:this.parentRoute||ur(!1);let s=a?Zr:r?.path;s&&s!=="/"&&(s=EC(s));const l=r?.id||s;let u=a?Zr:Qi([this.parentRoute.id===Zr?"":this.parentRoute.id,l]);s===Zr&&(s="/"),u!==Zr&&(u=Qi(["/",u]));const d=u===Zr?"/":Qi([this.parentRoute.fullPath,s]);this._path=s,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class lY extends o5{constructor(t){super(t)}}function AC(e){const t=e.errorComponent??Ig;return i.jsx(cY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class cY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Ig({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function uY({children:e,fallback:t=null}){return dY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function dY(){return W.useSyncExternalStore(fY,()=>!0,()=>!1)}function fY(){return()=>{}}var P0={exports:{}},R0={},D0={exports:{}},$0={};var uM;function hY(){if(uM)return $0;uM=1;var e=Sh();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),w=j[0].inst,b=j[1];return s(function(){w.value=x,w.getSnapshot=g,d(w)&&b({inst:w})},[p,x,g]),a(function(){return d(w)&&b({inst:w}),p(function(){d(w)&&b({inst:w})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return $0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,$0}var dM;function mY(){return dM||(dM=1,D0.exports=hY()),D0.exports}var fM;function pY(){if(fM)return R0;fM=1;var e=Sh(),t=mY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return R0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=s(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=u(function(){function N(k){if(!E){if(E=!0,O=k,k=g(k),x!==void 0&&w.hasValue){var T=w.value;if(x(T,k))return A=T}return A=k}if(T=A,r(O,k))return T;var M=g(k);return x!==void 0&&x(T,M)?(O=k,T):(O=k,A=M)}var E=!1,O,A,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var b=a(f,j[0],j[1]);return l(function(){w.hasValue=!0,w.value=b},[b]),d(b),b},R0}var hM;function vY(){return hM||(hM=1,P0.exports=pY()),P0.exports}var gY=vY();function yY(e,t=r=>r,n={}){const r=n.equal??xY;return gY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function xY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=mM(e);if(n.length!==mM(t).length)return!1;for(let r=0;r"u"?I0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=I0,I0)}function Ir(e){const t=y.useContext(l5());return e?.warn,t}function Sr(e){const t=Ir({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return yY(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const s=wa(r.current,e.select(a));return r.current=s,s}return e.select(a)}return a})}const Lg=y.createContext(void 0),bY=y.createContext(void 0);function pi(e){const t=y.useContext(e.from?bY:Lg);return Sr({select:r=>{const a=r.matches.find(s=>e.from?e.from===s.routeId:s.id===t);if(ur(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function TC(e){return pi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function kC(e){const{select:t,...n}=e;return pi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function MC(e){return pi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function PC(e){return pi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function sa(e){const t=Ir();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var wl=GL();const wY=St(wl),_p=typeof window<"u"?y.useLayoutEffect:y.useEffect;function L0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function jY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([s])=>{t(s)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function SY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function _Y(e,t){const n=Ir(),[r,a]=y.useState(!1),s=y.useRef(!1),l=SY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:w,resetScroll:b,viewTransition:N,children:E,target:O,disabled:A,style:C,className:k,onClick:T,onFocus:M,onMouseEnter:R,onMouseLeave:L,onTouchStart:$,ignoreBlocker:H,params:V,search:F,hash:G,state:B,mask:D,reloadDocument:U,unsafeRelative:K,from:te,_fromLocation:I,...z}=e,Y=Sr({select:ct=>ct.location.search,structuralSharing:!0}),ne=e.from,se=y.useMemo(()=>({...e,from:ne}),[n,Y,ne,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),xe=y.useMemo(()=>n.buildLocation({...se}),[n,se]),ee=y.useMemo(()=>{if(A)return;let ct=xe.maskedLocation?xe.maskedLocation.url:xe.url,rt=!1;return n.origin&&(ct.startsWith(n.origin)?ct=n.history.createHref(ct.replace(n.origin,""))||"/":rt=!0),{href:ct,external:rt}},[A,xe.maskedLocation,xe.url,n.origin,n.history]),ae=y.useMemo(()=>{if(ee?.external)return ee.href;try{return new URL(m),m}catch{}},[m,ee]),Z=e.reloadDocument||ae?!1:p??n.options.defaultPreload,ve=g??n.options.defaultPreloadDelay??0,je=Sr({select:ct=>{if(ae)return!1;if(f?.exact){if(!hG(ct.location.pathname,xe.pathname,n.basepath))return!1}else{const rt=pv(ct.location.pathname,n.basepath),$n=pv(xe.pathname,n.basepath);if(!(rt.startsWith($n)&&(rt.length===$n.length||rt[$n.length]==="/")))return!1}return(f?.includeSearch??!0)&&!Jo(ct.location.search,xe.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?ct.location.hash===xe.hash:!0}}),le=y.useCallback(()=>{n.preloadRoute({...se}).catch(ct=>{console.warn(ct),console.warn(oY)})},[n,se]),Re=y.useCallback(ct=>{ct?.isIntersecting&&le()},[le]);jY(l,Re,AY,{disabled:!!A||Z!=="viewport"}),y.useEffect(()=>{s.current||!A&&Z==="render"&&(le(),s.current=!0)},[A,le,Z]);const _e=ct=>{const rt=ct.currentTarget.getAttribute("target"),$n=O!==void 0?O:rt;if(!A&&!TY(ct)&&!ct.defaultPrevented&&(!$n||$n==="_self")&&ct.button===0){ct.preventDefault(),wl.flushSync(()=>{a(!0)});const go=n.subscribe("onResolved",()=>{go(),a(!1)});n.navigate({...se,replace:j,resetScroll:b,hashScrollIntoView:x,startTransition:w,viewTransition:N,ignoreBlocker:H})}};if(ae)return{...z,ref:l,href:ae,...E&&{children:E},...O&&{target:O},...A&&{disabled:A},...C&&{style:C},...k&&{className:k},...T&&{onClick:T},...M&&{onFocus:M},...R&&{onMouseEnter:R},...L&&{onMouseLeave:L},...$&&{onTouchStart:$}};const fe=ct=>{A||Z&&le()},pe=fe,Le=ct=>{if(!(A||!Z))if(!ve)le();else{const rt=ct.target;if(Yd.has(rt))return;const $n=setTimeout(()=>{Yd.delete(rt),le()},ve);Yd.set(rt,$n)}},It=ct=>{if(A||!Z||!ve)return;const rt=ct.target,$n=Yd.get(rt);$n&&(clearTimeout($n),Yd.delete(rt))},Cn=je?Qo(u,{})??NY:B0,vr=je?B0:Qo(d,{})??B0,rr=[k,Cn.className,vr.className].filter(Boolean).join(" "),gr=(C||Cn.style||vr.style)&&{...C,...Cn.style,...vr.style};return{...z,...Cn,...vr,href:ee?.href,ref:l,onClick:Kd([T,_e]),onFocus:Kd([M,fe]),onMouseEnter:Kd([R,Le]),onMouseLeave:Kd([L,It]),onTouchStart:Kd([$,pe]),disabled:!!A,target:O,...gr&&{style:gr},...rr&&{className:rr},...A&&CY,...je&&OY,...r&&EY}}const B0={},NY={className:"active"},CY={role:"link","aria-disabled":!0},OY={"data-status":"active","aria-current":"page"},EY={"data-transitioning":"transitioning"},Yd=new WeakMap,AY={rootMargin:"100px"},Kd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},RC=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:s,...l}=_Y(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:s},u)});function TY(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class kY extends o5{constructor(t){super(t),this.useMatch=n=>pi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>PC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>MC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>kC({...n,from:this.id}),this.useLoaderData=n=>TC({...n,from:this.id}),this.useNavigate=()=>sa({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(RC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function fr(e){return new kY(e)}class MY extends lY{constructor(t){super(t),this.useMatch=n=>pi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>PC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>MC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>kC({...n,from:this.id}),this.useLoaderData=n=>TC({...n,from:this.id}),this.useNavigate=()=>sa({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(RC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function PY(e){return new MY(e)}function pM(e){return typeof e=="object"?new vM(e,{silent:!0}).createRoute(e):new vM(e,{silent:!0}).createRoute}class vM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=fr(r);return a.isRoot=!1,a},this.silent=n?.silent}}class gM{constructor(t){this.useMatch=n=>pi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>pi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>PC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>MC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>kC({...n,from:this.options.id}),this.useLoaderData=n=>TC({...n,from:this.options.id}),this.useNavigate=()=>{const n=Ir();return sa({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function yM(e){return typeof e=="object"?new gM(e):t=>new gM({id:e,...t})}function RY(){const e=Ir(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:s}=Sr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=L0(s),u=s||n||a,d=L0(u),f=s||a,m=L0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Ys(e.latestLocation.href)!==Ys(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),_p(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),_p(()=>{l&&!s&&e.emit({type:"onLoad",...el(e.state)})},[l,e,s]),_p(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...el(e.state)})},[f,m,e]),_p(()=>{d&&!u&&(e.emit({type:"onResolved",...el(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),qG(e))},[u,d,e]),null}function DY(e){const t=Sr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(AC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Fa(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Fa(n))return e.fallback?.(n);throw n},children:e.children})}function $Y(){return i.jsx("p",{children:"Not Found"})}function kc(e){return i.jsx(i.Fragment,{children:e.children})}function c5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx($Y,{})}function IY({children:e}){const t=Ir();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function LY(){const e=Ir();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||v_)(e.latestLocation),r=n!==v_(e.latestLocation)?n:void 0,a={storageKey:vv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(IY,{children:`(${XL.toString()})(${JSON.stringify(a)})`})}const u5=y.memo(function({matchId:t}){const n=Ir(),r=Sr({select:N=>{const E=N.matches.find(O=>O.id===t);return ur(E),{routeId:E.routeId,ssr:E.ssr,_displayPending:E._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],s=a.options.pendingComponent??n.options.defaultPendingComponent,l=s?i.jsx(s,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??s??(a.options.errorComponent?.preload||m))?y.Suspense:kc,g=u?AC:kc,x=f?DY:kc,j=Sr({select:N=>N.loadedAt}),w=Sr({select:N=>{const E=N.matches.findIndex(O=>O.id===t);return N.matches[E-1]?.routeId}}),b=a.isRoot?a.options.shellComponent??kc:kc;return i.jsxs(b,{children:[i.jsx(Lg.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||Ig,onCatch:(N,E)=>{if(Fa(N))throw N;d?.(N,E)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(uY,{fallback:l,children:i.jsx(xM,{matchId:t})}):i.jsx(xM,{matchId:t})})})})}),w===Zr&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx(BY,{}),i.jsx(LY,{})]}):null]})});function BY(){const e=Ir(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...el(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const xM=y.memo(function({matchId:t}){const n=Ir(),{match:r,key:a,routeId:s}=Sr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[s],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(DC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=Qc();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return ur(Fa(r.error)),c5(n,l,r.error);if(r.status==="redirected")throw ur(si(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||Ig;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),DC=y.memo(function(){const t=Ir(),n=y.useContext(Lg),r=Sr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],s=Sr({select:f=>{const p=f.matches.find(g=>g.id===n);return ur(p),p.globalNotFound}}),l=Sr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(s)return c5(t,a,void 0);if(!l)return null;const d=i.jsx(u5,{matchId:l});return r===Zr?i.jsx(y.Suspense,{fallback:u,children:d}):d});function zY(){const e=Ir(),n=e.routesById[Zr].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?kc:y.Suspense,s=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(RY,{}),i.jsx(qY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:s}):s}function qY(){const e=Ir(),t=Sr({select:a=>a.matches[0]?.id}),n=Sr({select:a=>a.loadedAt}),r=t?i.jsx(u5,{matchId:t}):null;return i.jsx(Lg.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(AC,{getResetKey:()=>n,errorComponent:Ig,onCatch:a=>{a.message||a.toString()},children:r})})}function FY(){const e=Ir();return Sr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s})},[e])}const UY=e=>new HY(e);class HY extends nY{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=pM,globalThis.createLazyFileRoute=yM):typeof window<"u"&&(window.createFileRoute=pM,window.createLazyFileRoute=yM);function WY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=l5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function VY({router:e,...t}){return i.jsx(WY,{router:e,...t,children:i.jsx(zY,{})})}function d5(e,t){return function(){return e.apply(t,arguments)}}const{toString:GY}=Object.prototype,{getPrototypeOf:$C}=Object,{iterator:Bg,toStringTag:f5}=Symbol,zg=(e=>t=>{const n=GY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Va=e=>(e=e.toLowerCase(),t=>zg(t)===e),qg=e=>t=>typeof t===e,{isArray:Du}=Array,nu=qg("undefined");function _h(e){return e!==null&&!nu(e)&&e.constructor!==null&&!nu(e.constructor)&&Mr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const h5=Va("ArrayBuffer");function YY(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&h5(e.buffer),t}const KY=qg("string"),Mr=qg("function"),m5=qg("number"),Nh=e=>e!==null&&typeof e=="object",XY=e=>e===!0||e===!1,tv=e=>{if(zg(e)!=="object")return!1;const t=$C(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(f5 in e)&&!(Bg in e)},ZY=e=>{if(!Nh(e)||_h(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},QY=Va("Date"),JY=Va("File"),eK=Va("Blob"),tK=Va("FileList"),nK=e=>Nh(e)&&Mr(e.pipe),rK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Mr(e.append)&&((t=zg(e))==="formdata"||t==="object"&&Mr(e.toString)&&e.toString()==="[object FormData]"))},aK=Va("URLSearchParams"),[iK,sK,oK,lK]=["ReadableStream","Request","Response","Headers"].map(Va),cK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ch(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),Du(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Vo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,v5=e=>!nu(e)&&e!==Vo;function y_(){const{caseless:e,skipUndefined:t}=v5(this)&&this||{},n={},r=(a,s)=>{const l=e&&p5(n,s)||s;tv(n[l])&&tv(a)?n[l]=y_(n[l],a):tv(a)?n[l]=y_({},a):Du(a)?n[l]=a.slice():(!t||!nu(a))&&(n[l]=a)};for(let a=0,s=arguments.length;a(Ch(t,(a,s)=>{n&&Mr(a)?e[s]=d5(a,n):e[s]=a},{allOwnKeys:r}),e),dK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),fK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},hK=(e,t,n,r)=>{let a,s,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),s=a.length;s-- >0;)l=a[s],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&$C(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},mK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},pK=e=>{if(!e)return null;if(Du(e))return e;let t=e.length;if(!m5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},vK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&$C(Uint8Array)),gK=(e,t)=>{const r=(e&&e[Bg]).call(e);let a;for(;(a=r.next())&&!a.done;){const s=a.value;t.call(e,s[0],s[1])}},yK=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},xK=Va("HTMLFormElement"),bK=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),bM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),wK=Va("RegExp"),g5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Ch(n,(a,s)=>{let l;(l=t(a,s,e))!==!1&&(r[s]=l||a)}),Object.defineProperties(e,r)},jK=e=>{g5(e,(t,n)=>{if(Mr(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Mr(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},SK=(e,t)=>{const n={},r=a=>{a.forEach(s=>{n[s]=!0})};return Du(e)?r(e):r(String(e).split(t)),n},_K=()=>{},NK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function CK(e){return!!(e&&Mr(e.append)&&e[f5]==="FormData"&&e[Bg])}const OK=e=>{const t=new Array(10),n=(r,a)=>{if(Nh(r)){if(t.indexOf(r)>=0)return;if(_h(r))return r;if(!("toJSON"in r)){t[a]=r;const s=Du(r)?[]:{};return Ch(r,(l,u)=>{const d=n(l,a+1);!nu(d)&&(s[u]=d)}),t[a]=void 0,s}}return r};return n(e,0)},EK=Va("AsyncFunction"),AK=e=>e&&(Nh(e)||Mr(e))&&Mr(e.then)&&Mr(e.catch),y5=((e,t)=>e?setImmediate:t?((n,r)=>(Vo.addEventListener("message",({source:a,data:s})=>{a===Vo&&s===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Vo.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Mr(Vo.postMessage)),TK=typeof queueMicrotask<"u"?queueMicrotask.bind(Vo):typeof process<"u"&&process.nextTick||y5,kK=e=>e!=null&&Mr(e[Bg]),he={isArray:Du,isArrayBuffer:h5,isBuffer:_h,isFormData:rK,isArrayBufferView:YY,isString:KY,isNumber:m5,isBoolean:XY,isObject:Nh,isPlainObject:tv,isEmptyObject:ZY,isReadableStream:iK,isRequest:sK,isResponse:oK,isHeaders:lK,isUndefined:nu,isDate:QY,isFile:JY,isBlob:eK,isRegExp:wK,isFunction:Mr,isStream:nK,isURLSearchParams:aK,isTypedArray:vK,isFileList:tK,forEach:Ch,merge:y_,extend:uK,trim:cK,stripBOM:dK,inherits:fK,toFlatObject:hK,kindOf:zg,kindOfTest:Va,endsWith:mK,toArray:pK,forEachEntry:gK,matchAll:yK,isHTMLForm:xK,hasOwnProperty:bM,hasOwnProp:bM,reduceDescriptors:g5,freezeMethods:jK,toObjectSet:SK,toCamelCase:bK,noop:_K,toFiniteNumber:NK,findKey:p5,global:Vo,isContextDefined:v5,isSpecCompliantForm:CK,toJSONObject:OK,isAsyncFn:EK,isThenable:AK,setImmediate:y5,asap:TK,isIterable:kK};function Xe(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}he.inherits(Xe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:he.toJSONObject(this.config),code:this.code,status:this.status}}});const x5=Xe.prototype,b5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{b5[e]={value:e}});Object.defineProperties(Xe,b5);Object.defineProperty(x5,"isAxiosError",{value:!0});Xe.from=(e,t,n,r,a,s)=>{const l=Object.create(x5);he.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return Xe.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",s&&Object.assign(l,s),l};const MK=null;function x_(e){return he.isPlainObject(e)||he.isArray(e)}function w5(e){return he.endsWith(e,"[]")?e.slice(0,-2):e}function wM(e,t,n){return e?e.concat(t).map(function(a,s){return a=w5(a),!n&&s?"["+a+"]":a}).join(n?".":""):t}function PK(e){return he.isArray(e)&&!e.some(x_)}const RK=he.toFlatObject(he,{},null,function(t){return/^is[A-Z]/.test(t)});function Fg(e,t,n){if(!he.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=he.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,b){return!he.isUndefined(b[w])});const r=n.metaTokens,a=n.visitor||m,s=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&he.isSpecCompliantForm(t);if(!he.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(he.isDate(j))return j.toISOString();if(he.isBoolean(j))return j.toString();if(!d&&he.isBlob(j))throw new Xe("Blob is not supported. Use a Buffer instead.");return he.isArrayBuffer(j)||he.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,w,b){let N=j;if(j&&!b&&typeof j=="object"){if(he.endsWith(w,"{}"))w=r?w:w.slice(0,-2),j=JSON.stringify(j);else if(he.isArray(j)&&PK(j)||(he.isFileList(j)||he.endsWith(w,"[]"))&&(N=he.toArray(j)))return w=w5(w),N.forEach(function(O,A){!(he.isUndefined(O)||O===null)&&t.append(l===!0?wM([w],A,s):l===null?w:w+"[]",f(O))}),!1}return x_(j)?!0:(t.append(wM(b,w,s),f(j)),!1)}const p=[],g=Object.assign(RK,{defaultVisitor:m,convertValue:f,isVisitable:x_});function x(j,w){if(!he.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+w.join("."));p.push(j),he.forEach(j,function(N,E){(!(he.isUndefined(N)||N===null)&&a.call(t,N,he.isString(E)?E.trim():E,w,g))===!0&&x(N,w?w.concat(E):[E])}),p.pop()}}if(!he.isObject(e))throw new TypeError("data must be an object");return x(e),t}function jM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function IC(e,t){this._pairs=[],e&&Fg(e,this,t)}const j5=IC.prototype;j5.append=function(t,n){this._pairs.push([t,n])};j5.toString=function(t){const n=t?function(r){return t.call(this,r,jM)}:jM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function DK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function S5(e,t,n){if(!t)return e;const r=n&&n.encode||DK;he.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let s;if(a?s=a(t,n):s=he.isURLSearchParams(t)?t.toString():new IC(t,n).toString(r),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class SM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){he.forEach(this.handlers,function(r){r!==null&&t(r)})}}const _5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},$K=typeof URLSearchParams<"u"?URLSearchParams:IC,IK=typeof FormData<"u"?FormData:null,LK=typeof Blob<"u"?Blob:null,BK={isBrowser:!0,classes:{URLSearchParams:$K,FormData:IK,Blob:LK},protocols:["http","https","file","blob","url","data"]},LC=typeof window<"u"&&typeof document<"u",b_=typeof navigator=="object"&&navigator||void 0,zK=LC&&(!b_||["ReactNative","NativeScript","NS"].indexOf(b_.product)<0),qK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",FK=LC&&window.location.href||"http://localhost",UK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:LC,hasStandardBrowserEnv:zK,hasStandardBrowserWebWorkerEnv:qK,navigator:b_,origin:FK},Symbol.toStringTag,{value:"Module"})),cr={...UK,...BK};function HK(e,t){return Fg(e,new cr.classes.URLSearchParams,{visitor:function(n,r,a,s){return cr.isNode&&he.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function WK(e){return he.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function VK(e){const t={},n=Object.keys(e);let r;const a=n.length;let s;for(r=0;r=n.length;return l=!l&&he.isArray(a)?a.length:l,d?(he.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!he.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],s)&&he.isArray(a[l])&&(a[l]=VK(a[l])),!u)}if(he.isFormData(e)&&he.isFunction(e.entries)){const n={};return he.forEachEntry(e,(r,a)=>{t(WK(r),a,n,0)}),n}return null}function GK(e,t,n){if(he.isString(e))try{return(t||JSON.parse)(e),he.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Oh={transitional:_5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,s=he.isObject(t);if(s&&he.isHTMLForm(t)&&(t=new FormData(t)),he.isFormData(t))return a?JSON.stringify(N5(t)):t;if(he.isArrayBuffer(t)||he.isBuffer(t)||he.isStream(t)||he.isFile(t)||he.isBlob(t)||he.isReadableStream(t))return t;if(he.isArrayBufferView(t))return t.buffer;if(he.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return HK(t,this.formSerializer).toString();if((u=he.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Fg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||a?(n.setContentType("application/json",!1),GK(t)):t}],transformResponse:[function(t){const n=this.transitional||Oh.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(he.isResponse(t)||he.isReadableStream(t))return t;if(t&&he.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?Xe.from(u,Xe.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:cr.classes.FormData,Blob:cr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};he.forEach(["delete","get","head","post","put","patch"],e=>{Oh.headers[e]={}});const YK=he.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),KK=e=>{const t={};let n,r,a;return e&&e.split(` -`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&YK[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},_M=Symbol("internals");function Xd(e){return e&&String(e).trim().toLowerCase()}function nv(e){return e===!1||e==null?e:he.isArray(e)?e.map(nv):String(e)}function XK(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const ZK=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function z0(e,t,n,r,a){if(he.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!he.isString(t)){if(he.isString(r))return t.indexOf(r)!==-1;if(he.isRegExp(r))return r.test(t)}}function QK(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function JK(e,t){const n=he.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,s,l){return this[r].call(this,t,a,s,l)},configurable:!0})})}let Pr=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function s(u,d,f){const m=Xd(d);if(!m)throw new Error("header name must be a non-empty string");const p=he.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=nv(u))}const l=(u,d)=>he.forEach(u,(f,m)=>s(f,m,d));if(he.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(he.isString(t)&&(t=t.trim())&&!ZK(t))l(KK(t),n);else if(he.isObject(t)&&he.isIterable(t)){let u={},d,f;for(const m of t){if(!he.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?he.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=Xd(t),t){const r=he.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return XK(a);if(he.isFunction(n))return n.call(this,a,r);if(he.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Xd(t),t){const r=he.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||z0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function s(l){if(l=Xd(l),l){const u=he.findKey(r,l);u&&(!n||z0(r,r[u],u,n))&&(delete r[u],a=!0)}}return he.isArray(t)?t.forEach(s):s(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const s=n[r];(!t||z0(this,this[s],s,t,!0))&&(delete this[s],a=!0)}return a}normalize(t){const n=this,r={};return he.forEach(this,(a,s)=>{const l=he.findKey(r,s);if(l){n[l]=nv(a),delete n[s];return}const u=t?QK(s):String(s).trim();u!==s&&delete n[s],n[u]=nv(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return he.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&he.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[_M]=this[_M]={accessors:{}}).accessors,a=this.prototype;function s(l){const u=Xd(l);r[u]||(JK(a,l),r[u]=!0)}return he.isArray(t)?t.forEach(s):s(t),this}};Pr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);he.reduceDescriptors(Pr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});he.freezeMethods(Pr);function q0(e,t){const n=this||Oh,r=t||n,a=Pr.from(r.headers);let s=r.data;return he.forEach(e,function(u){s=u.call(n,s,a.normalize(),t?t.status:void 0)}),a.normalize(),s}function C5(e){return!!(e&&e.__CANCEL__)}function $u(e,t,n){Xe.call(this,e??"canceled",Xe.ERR_CANCELED,t,n),this.name="CanceledError"}he.inherits($u,Xe,{__CANCEL__:!0});function O5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Xe("Request failed with status code "+n.status,[Xe.ERR_BAD_REQUEST,Xe.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function eX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function tX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[s];l||(l=f),n[a]=d,r[a]=f;let p=s,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===s&&(s=(s+1)%e),f-l{n=m,a=null,s&&(clearTimeout(s),s=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,s||(s=setTimeout(()=>{s=null,l(a)},r-p)))},()=>a&&l(a)]}const xv=(e,t,n=3)=>{let r=0;const a=tX(50,250);return nX(s=>{const l=s.loaded,u=s.lengthComputable?s.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:s,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},NM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},CM=e=>(...t)=>he.asap(()=>e(...t)),rX=cr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,cr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(cr.origin),cr.navigator&&/(msie|trident)/i.test(cr.navigator.userAgent)):()=>!0,aX=cr.hasStandardBrowserEnv?{write(e,t,n,r,a,s,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];he.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),he.isString(r)&&u.push(`path=${r}`),he.isString(a)&&u.push(`domain=${a}`),s===!0&&u.push("secure"),he.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function iX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function sX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function E5(e,t,n){let r=!iX(t);return e&&(r||n==!1)?sX(e,t):t}const OM=e=>e instanceof Pr?{...e}:e;function cl(e,t){t=t||{};const n={};function r(f,m,p,g){return he.isPlainObject(f)&&he.isPlainObject(m)?he.merge.call({caseless:g},f,m):he.isPlainObject(m)?he.merge({},m):he.isArray(m)?m.slice():m}function a(f,m,p,g){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function s(f,m){if(!he.isUndefined(m))return r(void 0,m)}function l(f,m){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(OM(f),OM(m),p,!0)};return he.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);he.isUndefined(g)&&p!==u||(n[m]=g)}),n}const A5=e=>{const t=cl({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:s,headers:l,auth:u}=t;if(t.headers=l=Pr.from(l),t.url=S5(E5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),he.isFormData(n)){if(cr.hasStandardBrowserEnv||cr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(he.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(cr.hasStandardBrowserEnv&&(r&&he.isFunction(r)&&(r=r(t)),r||r!==!1&&rX(t.url))){const d=a&&s&&aX.read(s);d&&l.set(a,d)}return t},oX=typeof XMLHttpRequest<"u",lX=oX&&function(e){return new Promise(function(n,r){const a=A5(e);let s=a.data;const l=Pr.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function w(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function N(){if(!b)return;const O=Pr.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:O,config:e,request:b};O5(function(T){n(T),w()},function(T){r(T),w()},C),b=null}"onloadend"in b?b.onloadend=N:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(N)},b.onabort=function(){b&&(r(new Xe("Request aborted",Xe.ECONNABORTED,e,b)),b=null)},b.onerror=function(A){const C=A&&A.message?A.message:"Network Error",k=new Xe(C,Xe.ERR_NETWORK,e,b);k.event=A||null,r(k),b=null},b.ontimeout=function(){let A=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||_5;a.timeoutErrorMessage&&(A=a.timeoutErrorMessage),r(new Xe(A,C.clarifyTimeoutError?Xe.ETIMEDOUT:Xe.ECONNABORTED,e,b)),b=null},s===void 0&&l.setContentType(null),"setRequestHeader"in b&&he.forEach(l.toJSON(),function(A,C){b.setRequestHeader(C,A)}),he.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),u&&u!=="json"&&(b.responseType=a.responseType),f&&([g,j]=xv(f,!0),b.addEventListener("progress",g)),d&&b.upload&&([p,x]=xv(d),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=O=>{b&&(r(!O||O.type?new $u(null,e,b):O),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const E=eX(a.url);if(E&&cr.protocols.indexOf(E)===-1){r(new Xe("Unsupported protocol "+E+":",Xe.ERR_BAD_REQUEST,e));return}b.send(s||null)})},cX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const s=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof Xe?m:new $u(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,s(new Xe(`timeout ${t} of ms exceeded`,Xe.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>he.asap(u),d}},uX=function*(e,t){let n=e.byteLength;if(n{const a=dX(e,t);let s=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=s+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},AM=64*1024,{isFunction:Np}=he,hX=(({Request:e,Response:t})=>({Request:e,Response:t}))(he.global),{ReadableStream:TM,TextEncoder:kM}=he.global,MM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},mX=e=>{e=he.merge.call({skipUndefined:!0},hX,e);const{fetch:t,Request:n,Response:r}=e,a=t?Np(t):typeof fetch=="function",s=Np(n),l=Np(r);if(!a)return!1;const u=a&&Np(TM),d=a&&(typeof kM=="function"?(j=>w=>j.encode(w))(new kM):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=s&&u&&MM(()=>{let j=!1;const w=new n(cr.origin,{body:new TM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!w}),m=l&&u&&MM(()=>he.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(w,b)=>{let N=w&&w[j];if(N)return N.call(w);throw new Xe(`Response type '${j}' is not supported`,Xe.ERR_NOT_SUPPORT,b)})});const g=async j=>{if(j==null)return 0;if(he.isBlob(j))return j.size;if(he.isSpecCompliantForm(j))return(await new n(cr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(he.isArrayBufferView(j)||he.isArrayBuffer(j))return j.byteLength;if(he.isURLSearchParams(j)&&(j=j+""),he.isString(j))return(await d(j)).byteLength},x=async(j,w)=>{const b=he.toFiniteNumber(j.getContentLength());return b??g(w)};return async j=>{let{url:w,method:b,data:N,signal:E,cancelToken:O,timeout:A,onDownloadProgress:C,onUploadProgress:k,responseType:T,headers:M,withCredentials:R="same-origin",fetchOptions:L}=A5(j),$=t||fetch;T=T?(T+"").toLowerCase():"text";let H=cX([E,O&&O.toAbortSignal()],A),V=null;const F=H&&H.unsubscribe&&(()=>{H.unsubscribe()});let G;try{if(k&&f&&b!=="get"&&b!=="head"&&(G=await x(M,N))!==0){let I=new n(w,{method:"POST",body:N,duplex:"half"}),z;if(he.isFormData(N)&&(z=I.headers.get("content-type"))&&M.setContentType(z),I.body){const[Y,ne]=NM(G,xv(CM(k)));N=EM(I.body,AM,Y,ne)}}he.isString(R)||(R=R?"include":"omit");const B=s&&"credentials"in n.prototype,D={...L,signal:H,method:b.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:B?R:void 0};V=s&&new n(w,D);let U=await(s?$(V,L):$(w,D));const K=m&&(T==="stream"||T==="response");if(m&&(C||K&&F)){const I={};["status","statusText","headers"].forEach(se=>{I[se]=U[se]});const z=he.toFiniteNumber(U.headers.get("content-length")),[Y,ne]=C&&NM(z,xv(CM(C),!0))||[];U=new r(EM(U.body,AM,Y,()=>{ne&&ne(),F&&F()}),I)}T=T||"text";let te=await p[he.findKey(p,T)||"text"](U,j);return!K&&F&&F(),await new Promise((I,z)=>{O5(I,z,{data:te,headers:Pr.from(U.headers),status:U.status,statusText:U.statusText,config:j,request:V})})}catch(B){throw F&&F(),B&&B.name==="TypeError"&&/Load failed|fetch/i.test(B.message)?Object.assign(new Xe("Network Error",Xe.ERR_NETWORK,j,V),{cause:B.cause||B}):Xe.from(B,B&&B.code,j,V)}}},pX=new Map,T5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,s=[r,a,n];let l=s.length,u=l,d,f,m=pX;for(;u--;)d=s[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:mX(t)),m=f;return f};T5();const BC={http:MK,xhr:lX,fetch:{get:T5}};he.forEach(BC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const PM=e=>`- ${e}`,vX=e=>he.isFunction(e)||e===null||e===!1;function gX(e,t){e=he.isArray(e)?e:[e];const{length:n}=e;let r,a;const s={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : -`+l.map(PM).join(` -`):" "+PM(l[0]):"as no adapter specified";throw new Xe("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const k5={getAdapter:gX,adapters:BC};function F0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new $u(null,e)}function RM(e){return F0(e),e.headers=Pr.from(e.headers),e.data=q0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),k5.getAdapter(e.adapter||Oh.adapter,e)(e).then(function(r){return F0(e),r.data=q0.call(e,e.transformResponse,r),r.headers=Pr.from(r.headers),r},function(r){return C5(r)||(F0(e),r&&r.response&&(r.response.data=q0.call(e,e.transformResponse,r.response),r.response.headers=Pr.from(r.response.headers))),Promise.reject(r)})}const M5="1.13.2",Ug={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ug[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const DM={};Ug.transitional=function(t,n,r){function a(s,l){return"[Axios v"+M5+"] Transitional option '"+s+"'"+l+(r?". "+r:"")}return(s,l,u)=>{if(t===!1)throw new Xe(a(l," has been removed"+(n?" in "+n:"")),Xe.ERR_DEPRECATED);return n&&!DM[l]&&(DM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,l,u):!0}};Ug.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function yX(e,t,n){if(typeof e!="object")throw new Xe("options must be an object",Xe.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const s=r[a],l=t[s];if(l){const u=e[s],d=u===void 0||l(u,s,e);if(d!==!0)throw new Xe("option "+s+" must be "+d,Xe.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Xe("Unknown option "+s,Xe.ERR_BAD_OPTION)}}const rv={assertOptions:yX,validators:Ug},ei=rv.validators;let tl=class{constructor(t){this.defaults=t||{},this.interceptors={request:new SM,response:new SM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const s=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=cl(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:s}=n;r!==void 0&&rv.assertOptions(r,{silentJSONParsing:ei.transitional(ei.boolean),forcedJSONParsing:ei.transitional(ei.boolean),clarifyTimeoutError:ei.transitional(ei.boolean)},!1),a!=null&&(he.isFunction(a)?n.paramsSerializer={serialize:a}:rv.assertOptions(a,{encode:ei.function,serialize:ei.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),rv.assertOptions(n,{baseUrl:ei.spelling("baseURL"),withXsrfToken:ei.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=s&&he.merge(s.common,s[n.method]);s&&he.forEach(["delete","get","head","post","put","patch","common"],j=>{delete s[j]}),n.headers=Pr.concat(l,s);const u=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,u.unshift(w.fulfilled,w.rejected))});const f=[];this.interceptors.response.forEach(function(w){f.push(w.fulfilled,w.rejected)});let m,p=0,g;if(!d){const j=[RM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](a);r._listeners=null}),this.promise.then=a=>{let s;const l=new Promise(u=>{r.subscribe(u),s=u}).then(a);return l.cancel=function(){r.unsubscribe(s)},l},t(function(s,l,u){r.reason||(r.reason=new $u(s,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new P5(function(a){t=a}),cancel:t}}};function bX(e){return function(n){return e.apply(null,n)}}function wX(e){return he.isObject(e)&&e.isAxiosError===!0}const w_={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(w_).forEach(([e,t])=>{w_[t]=e});function R5(e){const t=new tl(e),n=d5(tl.prototype.request,t);return he.extend(n,tl.prototype,t,{allOwnKeys:!0}),he.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return R5(cl(e,a))},n}const ln=R5(Oh);ln.Axios=tl;ln.CanceledError=$u;ln.CancelToken=xX;ln.isCancel=C5;ln.VERSION=M5;ln.toFormData=Fg;ln.AxiosError=Xe;ln.Cancel=ln.CanceledError;ln.all=function(t){return Promise.all(t)};ln.spread=bX;ln.isAxiosError=wX;ln.mergeConfig=cl;ln.AxiosHeaders=Pr;ln.formToJSON=e=>N5(he.isHTMLForm(e)?new FormData(e):e);ln.getAdapter=k5.getAdapter;ln.HttpStatusCode=w_;ln.default=ln;const{Axios:gAe,AxiosError:yAe,CanceledError:xAe,isCancel:bAe,CancelToken:wAe,VERSION:jAe,all:SAe,Cancel:_Ae,isAxiosError:NAe,spread:CAe,toFormData:OAe,AxiosHeaders:EAe,HttpStatusCode:AAe,formToJSON:TAe,getAdapter:kAe,mergeConfig:MAe}=ln;function D5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),$5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),bv="-",$M=[],_X="arbitrary..",NX=e=>{const t=OX(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return CX(l);const u=l.split(bv),d=u[0]===""&&u.length>1?1:0;return I5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?jX(f,d):d:f||$M}return n[l]||$M}}},I5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],s=n.nextPart.get(a);if(s){const f=I5(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(bv):e.slice(t).join(bv),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?_X+r:void 0})(),OX=e=>{const{theme:t,classGroups:n}=e;return EX(n,t)},EX=(e,t)=>{const n=$5();for(const r in e){const a=e[r];zC(a,n,r,t)}return n},zC=(e,t,n,r)=>{const a=e.length;for(let s=0;s{if(typeof e=="string"){TX(e,t,n);return}if(typeof e=="function"){kX(e,t,n,r);return}MX(e,t,n,r)},TX=(e,t,n)=>{const r=e===""?t:L5(t,e);r.classGroupId=n},kX=(e,t,n,r)=>{if(PX(e)){zC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(SX(n,e))},MX=(e,t,n,r)=>{const a=Object.entries(e),s=a.length;for(let l=0;l{let n=e;const r=t.split(bv),a=r.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,RX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(s,l)=>{n[s]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=r[s])!==void 0)return a(s,l),l},set(s,l){s in n?n[s]=l:a(s,l)}}},j_="!",IM=":",DX=[],LM=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),$X=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const s=[];let l=0,u=0,d=0,f;const m=a.length;for(let w=0;wd?f-d:void 0;return LM(s,x,g,j)};if(t){const a=t+IM,s=r;r=l=>l.startsWith(a)?s(l.slice(a.length)):LM(DX,!1,l,void 0,!0)}if(n){const a=r;r=s=>n({className:s,parseClassName:a})}return r},IX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let s=0;s0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},LX=e=>({cache:RX(e.cacheSize),parseClassName:$X(e),sortModifiers:IX(e),...NX(e)}),BX=/\s+/,zX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:s}=t,l=[],u=e.trim().split(BX);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:w}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let b=!!w,N=r(b?j.substring(0,w):j);if(!N){if(!b){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}b=!1}const E=g.length===0?"":g.length===1?g[0]:s(g).join(":"),O=x?E+j_:E,A=O+N;if(l.indexOf(A)>-1)continue;l.push(A);const C=a(N,b);for(let k=0;k0?" "+d:d)}return d},qX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,s;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=LX(f),r=n.cache.get,a=n.cache.set,s=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=zX(d,n);return a(d,m),m};return s=l,(...d)=>s(qX(...d))},UX=[],En=e=>{const t=n=>n[e]||UX;return t.isThemeGetter=!0,t},z5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,q5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,HX=/^\d+\/\d+$/,WX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,VX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,GX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,YX=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,KX=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,wc=e=>HX.test(e),nt=e=>!!e&&!Number.isNaN(Number(e)),Is=e=>!!e&&Number.isInteger(Number(e)),U0=e=>e.endsWith("%")&&nt(e.slice(0,-1)),Fi=e=>WX.test(e),XX=()=>!0,ZX=e=>VX.test(e)&&!GX.test(e),F5=()=>!1,QX=e=>YX.test(e),JX=e=>KX.test(e),eZ=e=>!Te(e)&&!ke(e),tZ=e=>Iu(e,W5,F5),Te=e=>z5.test(e),Lo=e=>Iu(e,V5,ZX),H0=e=>Iu(e,sZ,nt),BM=e=>Iu(e,U5,F5),nZ=e=>Iu(e,H5,JX),Cp=e=>Iu(e,G5,QX),ke=e=>q5.test(e),Zd=e=>Lu(e,V5),rZ=e=>Lu(e,oZ),zM=e=>Lu(e,U5),aZ=e=>Lu(e,W5),iZ=e=>Lu(e,H5),Op=e=>Lu(e,G5,!0),Iu=(e,t,n)=>{const r=z5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Lu=(e,t,n=!1)=>{const r=q5.exec(e);return r?r[1]?t(r[1]):n:!1},U5=e=>e==="position"||e==="percentage",H5=e=>e==="image"||e==="url",W5=e=>e==="length"||e==="size"||e==="bg-size",V5=e=>e==="length",sZ=e=>e==="number",oZ=e=>e==="family-name",G5=e=>e==="shadow",lZ=()=>{const e=En("color"),t=En("font"),n=En("text"),r=En("font-weight"),a=En("tracking"),s=En("leading"),l=En("breakpoint"),u=En("container"),d=En("spacing"),f=En("radius"),m=En("shadow"),p=En("inset-shadow"),g=En("text-shadow"),x=En("drop-shadow"),j=En("blur"),w=En("perspective"),b=En("aspect"),N=En("ease"),E=En("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...A(),ke,Te],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],M=()=>[ke,Te,d],R=()=>[wc,"full","auto",...M()],L=()=>[Is,"none","subgrid",ke,Te],$=()=>["auto",{span:["full",Is,ke,Te]},Is,ke,Te],H=()=>[Is,"auto",ke,Te],V=()=>["auto","min","max","fr",ke,Te],F=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],B=()=>["auto",...M()],D=()=>[wc,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],U=()=>[e,ke,Te],K=()=>[...A(),zM,BM,{position:[ke,Te]}],te=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",aZ,tZ,{size:[ke,Te]}],z=()=>[U0,Zd,Lo],Y=()=>["","none","full",f,ke,Te],ne=()=>["",nt,Zd,Lo],se=()=>["solid","dashed","dotted","double"],xe=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[nt,U0,zM,BM],ae=()=>["","none",j,ke,Te],Z=()=>["none",nt,ke,Te],ve=()=>["none",nt,ke,Te],je=()=>[nt,ke,Te],le=()=>[wc,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Fi],breakpoint:[Fi],color:[XX],container:[Fi],"drop-shadow":[Fi],ease:["in","out","in-out"],font:[eZ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Fi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Fi],shadow:[Fi],spacing:["px",nt],text:[Fi],"text-shadow":[Fi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",wc,Te,ke,b]}],container:["container"],columns:[{columns:[nt,Te,ke,u]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[Is,"auto",ke,Te]}],basis:[{basis:[wc,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[nt,wc,"auto","initial","none",Te]}],grow:[{grow:["",nt,ke,Te]}],shrink:[{shrink:["",nt,ke,Te]}],order:[{order:[Is,"first","last","none",ke,Te]}],"grid-cols":[{"grid-cols":L()}],"col-start-end":[{col:$()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":L()}],"row-start-end":[{row:$()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...F(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...F()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":F()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:B()}],mx:[{mx:B()}],my:[{my:B()}],ms:[{ms:B()}],me:[{me:B()}],mt:[{mt:B()}],mr:[{mr:B()}],mb:[{mb:B()}],ml:[{ml:B()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:D()}],w:[{w:[u,"screen",...D()]}],"min-w":[{"min-w":[u,"screen","none",...D()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...D()]}],h:[{h:["screen","lh",...D()]}],"min-h":[{"min-h":["screen","lh","none",...D()]}],"max-h":[{"max-h":["screen","lh",...D()]}],"font-size":[{text:["base",n,Zd,Lo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,ke,H0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",U0,Te]}],"font-family":[{font:[rZ,Te,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,ke,Te]}],"line-clamp":[{"line-clamp":[nt,"none",ke,H0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",ke,Te]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ke,Te]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:U()}],"text-color":[{text:U()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...se(),"wavy"]}],"text-decoration-thickness":[{decoration:[nt,"from-font","auto",ke,Lo]}],"text-decoration-color":[{decoration:U()}],"underline-offset":[{"underline-offset":[nt,"auto",ke,Te]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ke,Te]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ke,Te]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:K()}],"bg-repeat":[{bg:te()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Is,ke,Te],radial:["",ke,Te],conic:[Is,ke,Te]},iZ,nZ]}],"bg-color":[{bg:U()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:U()}],"gradient-via":[{via:U()}],"gradient-to":[{to:U()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:ne()}],"border-w-x":[{"border-x":ne()}],"border-w-y":[{"border-y":ne()}],"border-w-s":[{"border-s":ne()}],"border-w-e":[{"border-e":ne()}],"border-w-t":[{"border-t":ne()}],"border-w-r":[{"border-r":ne()}],"border-w-b":[{"border-b":ne()}],"border-w-l":[{"border-l":ne()}],"divide-x":[{"divide-x":ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...se(),"hidden","none"]}],"divide-style":[{divide:[...se(),"hidden","none"]}],"border-color":[{border:U()}],"border-color-x":[{"border-x":U()}],"border-color-y":[{"border-y":U()}],"border-color-s":[{"border-s":U()}],"border-color-e":[{"border-e":U()}],"border-color-t":[{"border-t":U()}],"border-color-r":[{"border-r":U()}],"border-color-b":[{"border-b":U()}],"border-color-l":[{"border-l":U()}],"divide-color":[{divide:U()}],"outline-style":[{outline:[...se(),"none","hidden"]}],"outline-offset":[{"outline-offset":[nt,ke,Te]}],"outline-w":[{outline:["",nt,Zd,Lo]}],"outline-color":[{outline:U()}],shadow:[{shadow:["","none",m,Op,Cp]}],"shadow-color":[{shadow:U()}],"inset-shadow":[{"inset-shadow":["none",p,Op,Cp]}],"inset-shadow-color":[{"inset-shadow":U()}],"ring-w":[{ring:ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:U()}],"ring-offset-w":[{"ring-offset":[nt,Lo]}],"ring-offset-color":[{"ring-offset":U()}],"inset-ring-w":[{"inset-ring":ne()}],"inset-ring-color":[{"inset-ring":U()}],"text-shadow":[{"text-shadow":["none",g,Op,Cp]}],"text-shadow-color":[{"text-shadow":U()}],opacity:[{opacity:[nt,ke,Te]}],"mix-blend":[{"mix-blend":[...xe(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":xe()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[nt]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":U()}],"mask-image-linear-to-color":[{"mask-linear-to":U()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":U()}],"mask-image-t-to-color":[{"mask-t-to":U()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":U()}],"mask-image-r-to-color":[{"mask-r-to":U()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":U()}],"mask-image-b-to-color":[{"mask-b-to":U()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":U()}],"mask-image-l-to-color":[{"mask-l-to":U()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":U()}],"mask-image-x-to-color":[{"mask-x-to":U()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":U()}],"mask-image-y-to-color":[{"mask-y-to":U()}],"mask-image-radial":[{"mask-radial":[ke,Te]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":U()}],"mask-image-radial-to-color":[{"mask-radial-to":U()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":A()}],"mask-image-conic-pos":[{"mask-conic":[nt]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":U()}],"mask-image-conic-to-color":[{"mask-conic-to":U()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:K()}],"mask-repeat":[{mask:te()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ke,Te]}],filter:[{filter:["","none",ke,Te]}],blur:[{blur:ae()}],brightness:[{brightness:[nt,ke,Te]}],contrast:[{contrast:[nt,ke,Te]}],"drop-shadow":[{"drop-shadow":["","none",x,Op,Cp]}],"drop-shadow-color":[{"drop-shadow":U()}],grayscale:[{grayscale:["",nt,ke,Te]}],"hue-rotate":[{"hue-rotate":[nt,ke,Te]}],invert:[{invert:["",nt,ke,Te]}],saturate:[{saturate:[nt,ke,Te]}],sepia:[{sepia:["",nt,ke,Te]}],"backdrop-filter":[{"backdrop-filter":["","none",ke,Te]}],"backdrop-blur":[{"backdrop-blur":ae()}],"backdrop-brightness":[{"backdrop-brightness":[nt,ke,Te]}],"backdrop-contrast":[{"backdrop-contrast":[nt,ke,Te]}],"backdrop-grayscale":[{"backdrop-grayscale":["",nt,ke,Te]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[nt,ke,Te]}],"backdrop-invert":[{"backdrop-invert":["",nt,ke,Te]}],"backdrop-opacity":[{"backdrop-opacity":[nt,ke,Te]}],"backdrop-saturate":[{"backdrop-saturate":[nt,ke,Te]}],"backdrop-sepia":[{"backdrop-sepia":["",nt,ke,Te]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ke,Te]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[nt,"initial",ke,Te]}],ease:[{ease:["linear","initial",N,ke,Te]}],delay:[{delay:[nt,ke,Te]}],animate:[{animate:["none",E,ke,Te]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,ke,Te]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:Z()}],"rotate-x":[{"rotate-x":Z()}],"rotate-y":[{"rotate-y":Z()}],"rotate-z":[{"rotate-z":Z()}],scale:[{scale:ve()}],"scale-x":[{"scale-x":ve()}],"scale-y":[{"scale-y":ve()}],"scale-z":[{"scale-z":ve()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[ke,Te,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:le()}],"translate-x":[{"translate-x":le()}],"translate-y":[{"translate-y":le()}],"translate-z":[{"translate-z":le()}],"translate-none":["translate-none"],accent:[{accent:U()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:U()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ke,Te]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ke,Te]}],fill:[{fill:["none",...U()]}],"stroke-w":[{stroke:[nt,Zd,Lo,H0]}],stroke:[{stroke:["none",...U()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},cZ=FX(lZ);function ce(...e){return cZ(Ye(e))}const ot=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("rounded-xl border bg-card text-card-foreground shadow",e),...t}));ot.displayName="Card";const qt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex flex-col space-y-1.5 p-6",e),...t}));qt.displayName="CardHeader";const Ft=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("font-semibold leading-none tracking-tight",e),...t}));Ft.displayName="CardTitle";const er=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));er.displayName="CardDescription";const sn=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("p-6 pt-0",e),...t}));sn.displayName="CardContent";const Y5=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex items-center p-6 pt-0",e),...t}));Y5.displayName="CardFooter";function Se(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function uZ(e,t){const n=y.createContext(t),r=s=>{const{children:l,...u}=s,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(s){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function hr(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,dZ(a,...t)]}function dZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function qM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Rr(...e){return t=>{let n=!1;const r=e.map(a=>{const s=qM(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(mZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function fZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=vZ(a),u=pZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var hZ=Symbol("radix.slottable");function mZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===hZ}function pZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function vZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Eh(e){const t=e+"CollectionProvider",[n,r]=hr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=w=>{const{scope:b,children:N}=w,E=W.useRef(null),O=W.useRef(new Map).current;return i.jsx(a,{scope:b,itemMap:O,collectionRef:E,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=FM(u),f=W.forwardRef((w,b)=>{const{scope:N,children:E}=w,O=s(u,N),A=qe(b,O.collectionRef);return i.jsx(d,{ref:A,children:E})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=FM(m),x=W.forwardRef((w,b)=>{const{scope:N,children:E,...O}=w,A=W.useRef(null),C=qe(b,A),k=s(m,N);return W.useEffect(()=>(k.itemMap.set(A,{ref:A,...O}),()=>void k.itemMap.delete(A))),i.jsx(g,{[p]:"",ref:C,children:E})});x.displayName=m;function j(w){const b=s(e+"CollectionConsumer",w);return W.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const O=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(b.itemMap.values()).sort((k,T)=>O.indexOf(k.ref.current)-O.indexOf(T.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Un=globalThis?.document?y.useLayoutEffect:()=>{},gZ=NC[" useId ".trim().toString()]||(()=>{}),yZ=0;function Fn(e){const[t,n]=y.useState(gZ());return Un(()=>{n(r=>r??String(yZ++))},[e]),t?`radix-${t}`:""}function xZ(e){const t=bZ(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(jZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function bZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=_Z(a),u=SZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var wZ=Symbol("radix.slottable");function jZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===wZ}function SZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function _Z(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var NZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Pe=NZ.reduce((e,t)=>{const n=xZ(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function qC(e,t){e&&wl.flushSync(()=>e.dispatchEvent(t))}function nn(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var CZ=NC[" useInsertionEffect ".trim().toString()]||Un;function Na({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,l]=OZ({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=EZ(m)?m(e):m;p!==e&&l.current?.(p)}else s(m)},[u,e,s,l]);return[d,f]}function OZ({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),s=y.useRef(t);return CZ(()=>{s.current=t},[t]),y.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function EZ(e){return typeof e=="function"}var AZ=y.createContext(void 0);function Bu(e){const t=y.useContext(AZ);return e||t||"ltr"}var W0="rovingFocusGroup.onEntryFocus",TZ={bubbles:!1,cancelable:!0},Ah="RovingFocusGroup",[S_,K5,kZ]=Eh(Ah),[MZ,Hg]=hr(Ah,[kZ]),[PZ,RZ]=MZ(Ah),X5=y.forwardRef((e,t)=>i.jsx(S_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(S_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(DZ,{...e,ref:t})})}));X5.displayName=Ah;var DZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=qe(t,g),j=Bu(s),[w,b]=Na({prop:l,defaultProp:u??null,onChange:d,caller:Ah}),[N,E]=y.useState(!1),O=nn(f),A=K5(n),C=y.useRef(!1),[k,T]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(W0,O),()=>M.removeEventListener(W0,O)},[O]),i.jsx(PZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:w,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>T(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>T(M=>M-1),[]),children:i.jsx(Pe.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:Se(e.onMouseDown,()=>{C.current=!0}),onFocus:Se(e.onFocus,M=>{const R=!C.current;if(M.target===M.currentTarget&&R&&!N){const L=new CustomEvent(W0,TZ);if(M.currentTarget.dispatchEvent(L),!L.defaultPrevented){const $=A().filter(B=>B.focusable),H=$.find(B=>B.active),V=$.find(B=>B.id===w),G=[H,V,...$].filter(Boolean).map(B=>B.ref.current);J5(G,m)}}C.current=!1}),onBlur:Se(e.onBlur,()=>E(!1))})})}),Z5="RovingFocusGroupItem",Q5=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:l,...u}=e,d=Fn(),f=s||d,m=RZ(Z5,n),p=m.currentTabStopId===f,g=K5(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:w}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(S_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx(Pe.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:Se(e.onMouseDown,b=>{r?m.onItemFocus(f):b.preventDefault()}),onFocus:Se(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:Se(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){m.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const N=LZ(b,m.orientation,m.dir);if(N!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let O=g().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")O.reverse();else if(N==="prev"||N==="next"){N==="prev"&&O.reverse();const A=O.indexOf(b.currentTarget);O=m.loop?BZ(O,A+1):O.slice(A+1)}setTimeout(()=>J5(O))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:w!=null}):l})})});Q5.displayName=Z5;var $Z={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function IZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function LZ(e,t,n){const r=IZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return $Z[r]}function J5(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function BZ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var eB=X5,tB=Q5;function zZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Rn=e=>{const{present:t,children:n}=e,r=qZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),s=qe(r.ref,FZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:s}):null};Rn.displayName="Presence";function qZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),s=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=zZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Ep(r.current);s.current=u==="mounted"?f:"none"},[u]),Un(()=>{const f=r.current,m=a.current;if(m!==e){const g=s.current,x=Ep(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Un(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const w=Ep(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&w&&(d("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=x=>{x.target===t&&(s.current=Ep(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Ep(e){return e?.animationName||"none"}function FZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Wg="Tabs",[UZ]=hr(Wg,[Hg]),nB=Hg(),[HZ,FC]=UZ(Wg),rB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Bu(u),[p,g]=Na({prop:r,onChange:a,defaultProp:s??"",caller:Wg});return i.jsx(HZ,{scope:n,baseId:Fn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx(Pe.div,{dir:m,"data-orientation":l,...f,ref:t})})});rB.displayName=Wg;var aB="TabsList",iB=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=FC(aB,n),l=nB(n);return i.jsx(eB,{asChild:!0,...l,orientation:s.orientation,dir:s.dir,loop:r,children:i.jsx(Pe.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});iB.displayName=aB;var sB="TabsTrigger",oB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,l=FC(sB,n),u=nB(n),d=uB(l.baseId,r),f=dB(l.baseId,r),m=r===l.value;return i.jsx(tB,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx(Pe.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...s,ref:t,onMouseDown:Se(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:Se(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:Se(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});oB.displayName=sB;var lB="TabsContent",cB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...l}=e,u=FC(lB,n),d=uB(u.baseId,r),f=dB(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(Rn,{present:a||m,children:({present:g})=>i.jsx(Pe.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&s})})});cB.displayName=lB;function uB(e,t){return`${e}-trigger-${t}`}function dB(e,t){return`${e}-content-${t}`}var WZ=rB,fB=iB,hB=oB,mB=cB;const ul=WZ,Zs=y.forwardRef(({className:e,...t},n)=>i.jsx(fB,{ref:n,className:ce("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Zs.displayName=fB.displayName;const Ot=y.forwardRef(({className:e,...t},n)=>i.jsx(hB,{ref:n,className:ce("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Ot.displayName=hB.displayName;const en=y.forwardRef(({className:e,...t},n)=>i.jsx(mB,{ref:n,className:ce("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));en.displayName=mB.displayName;function Tf(e,[t,n]){return Math.min(n,Math.max(t,e))}function VZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var UC="ScrollArea",[pB]=hr(UC),[GZ,Oa]=pB(UC),vB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:s=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(0),[O,A]=y.useState(0),[C,k]=y.useState(!1),[T,M]=y.useState(!1),R=qe(t,$=>d($)),L=Bu(a);return i.jsx(GZ,{scope:n,type:r,dir:L,scrollHideDelay:s,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:w,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:E,onCornerHeightChange:A,children:i.jsx(Pe.div,{dir:L,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":O+"px",...e.style}})})});vB.displayName=UC;var gB="ScrollAreaViewport",yB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...s}=e,l=Oa(gB,n),u=y.useRef(null),d=qe(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx(Pe.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});yB.displayName=gB;var xi="ScrollAreaScrollbar",HC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)}),[u,s,l]),a.type==="hover"?i.jsx(YZ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(KZ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(xB,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(WC,{...r,ref:t}):null});HC.displayName=xi;var YZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),[s,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(Rn,{present:n||s,children:i.jsx(xB,{"data-state":s?"visible":"hidden",...r,ref:t})})}),KZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Oa(xi,e.__scopeScrollArea),s=e.orientation==="horizontal",l=Gg(()=>d("SCROLL_END"),100),[u,d]=VZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=s?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,s,d,l]),i.jsx(Rn,{present:n||u!=="hidden",children:i.jsx(WC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Se(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:Se(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),xB=y.forwardRef((e,t)=>{const n=Oa(xi,e.__scopeScrollArea),{forceMount:r,...a}=e,[s,l]=y.useState(!1),u=e.orientation==="horizontal",d=Gg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Oa(xi,e.__scopeScrollArea),s=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=_B(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>s.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return tQ(g,l.current,u,x)}return n==="horizontal"?i.jsx(XZ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollLeft,x=UM(g,u,a.dir);s.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(ZZ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollTop,x=UM(g,u);s.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),XZ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Oa(xi,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=qe(t,d,s.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(wB,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Vg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),CB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:jv(l.paddingLeft),paddingEnd:jv(l.paddingRight)}})}})}),ZZ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Oa(xi,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=qe(t,d,s.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(wB,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Vg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),CB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:jv(l.paddingTop),paddingEnd:jv(l.paddingBottom)}})}})}),[QZ,bB]=pB(xi),wB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Oa(xi,n),[j,w]=y.useState(null),b=qe(t,R=>w(R)),N=y.useRef(null),E=y.useRef(""),O=x.viewport,A=r.content-r.viewport,C=nn(m),k=nn(d),T=Gg(p,10);function M(R){if(N.current){const L=R.clientX-N.current.left,$=R.clientY-N.current.top;f({x:L,y:$})}}return y.useEffect(()=>{const R=L=>{const $=L.target;j?.contains($)&&C(L,A)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[O,j,A,C]),y.useEffect(k,[r,k]),ru(j,T),ru(x.content,T),i.jsx(QZ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:nn(s),onThumbPointerUp:nn(l),onThumbPositionChange:k,onThumbPointerDown:nn(u),children:i.jsx(Pe.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:Se(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),N.current=j.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(R))}),onPointerMove:Se(e.onPointerMove,M),onPointerUp:Se(e.onPointerUp,R=>{const L=R.target;L.hasPointerCapture(R.pointerId)&&L.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),wv="ScrollAreaThumb",jB=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=bB(wv,e.__scopeScrollArea);return i.jsx(Rn,{present:n||a.hasThumb,children:i.jsx(JZ,{ref:t,...r})})}),JZ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,s=Oa(wv,n),l=bB(wv,n),{onThumbPositionChange:u}=l,d=qe(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Gg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=s.viewport;if(p){const g=()=>{if(m(),!f.current){const x=nQ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[s.viewport,m,u]),i.jsx(Pe.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Se(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,w=p.clientY-x.top;l.onThumbPointerDown({x:j,y:w})}),onPointerUp:Se(e.onPointerUp,l.onThumbPointerUp)})});jB.displayName=wv;var VC="ScrollAreaCorner",SB=y.forwardRef((e,t)=>{const n=Oa(VC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(eQ,{...e,ref:t}):null});SB.displayName=VC;var eQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Oa(VC,n),[s,l]=y.useState(0),[u,d]=y.useState(0),f=!!(s&&u);return ru(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),ru(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx(Pe.div,{...r,ref:t,style:{width:s,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function jv(e){return e?parseInt(e,10):0}function _B(e,t){const n=e/t;return isNaN(n)?0:n}function Vg(e){const t=_B(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function tQ(e,t,n,r="ltr"){const a=Vg(n),s=a/2,l=t||s,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return NB([d,f],p)(e)}function UM(e,t,n="ltr"){const r=Vg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,u=s-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Tf(e,d);return NB([0,l],[0,u])(f)}function NB(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function CB(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const s={left:e.scrollLeft,top:e.scrollTop},l=n.left!==s.left,u=n.top!==s.top;(l||u)&&t(),n=s,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Gg(e,t){const n=nn(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function ru(e,t){const n=nn(t);Un(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var OB=vB,rQ=yB,aQ=SB;const Vt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(OB,{ref:r,className:ce("relative overflow-hidden",e),...n,children:[i.jsx(rQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(EB,{}),i.jsx(aQ,{})]}));Vt.displayName=OB.displayName;const EB=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(HC,{ref:r,orientation:t,className:ce("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(jB,{className:"relative flex-1 rounded-full bg-border"})}));EB.displayName=HC.displayName;function HM({className:e,...t}){return i.jsx("div",{className:ce("animate-pulse rounded-md bg-primary/10",e),...t})}function iQ(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l);u.displayName=s+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,sQ(a,...t)]}function sQ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var oQ=Symbol.for("react.lazy"),Sv=NC[" use ".trim().toString()];function lQ(e){return typeof e=="object"&&e!==null&&"then"in e}function AB(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===oQ&&"_payload"in e&&lQ(e._payload)}function Th(e){const t=uQ(e),n=y.forwardRef((r,a)=>{let{children:s,...l}=r;AB(s)&&typeof Sv=="function"&&(s=Sv(s._payload));const u=y.Children.toArray(s),d=u.find(fQ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var cQ=Th("Slot");function uQ(e){const t=y.forwardRef((n,r)=>{let{children:a,...s}=n;if(AB(a)&&typeof Sv=="function"&&(a=Sv(a._payload)),y.isValidElement(a)){const l=mQ(a),u=hQ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var dQ=Symbol("radix.slottable");function fQ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===dQ}function hQ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function mQ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var pQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],TB=pQ.reduce((e,t)=>{const n=Th(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),GC="Progress",YC=100,[vQ]=iQ(GC),[gQ,yQ]=vQ(GC),kB=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:s=xQ,...l}=e;(a||a===0)&&!WM(a)&&console.error(bQ(`${a}`,"Progress"));const u=WM(a)?a:YC;r!==null&&!VM(r,u)&&console.error(wQ(`${r}`,"Progress"));const d=VM(r,u)?r:null,f=_v(d)?s(d,u):void 0;return i.jsx(gQ,{scope:n,value:d,max:u,children:i.jsx(TB.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":_v(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":RB(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});kB.displayName=GC;var MB="ProgressIndicator",PB=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=yQ(MB,n);return i.jsx(TB.div,{"data-state":RB(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});PB.displayName=MB;function xQ(e,t){return`${Math.round(e/t*100)}%`}function RB(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function _v(e){return typeof e=="number"}function WM(e){return _v(e)&&!isNaN(e)&&e>0}function VM(e,t){return _v(e)&&!isNaN(e)&&e<=t&&e>=0}function bQ(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${YC}\`.`}function wQ(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${YC} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var DB=kB,jQ=PB;const Yg=y.forwardRef(({className:e,value:t,...n},r)=>i.jsx(DB,{ref:r,className:ce("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(jQ,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));Yg.displayName=DB.displayName;var V0,GM;function Lr(){if(GM)return V0;GM=1;var e=Array.isArray;return V0=e,V0}var G0,YM;function $B(){if(YM)return G0;YM=1;var e=typeof bp=="object"&&bp&&bp.Object===Object&&bp;return G0=e,G0}var Y0,KM;function bi(){if(KM)return Y0;KM=1;var e=$B(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Y0=n,Y0}var K0,XM;function kh(){if(XM)return K0;XM=1;var e=bi(),t=e.Symbol;return K0=t,K0}var X0,ZM;function SQ(){if(ZM)return X0;ZM=1;var e=kh(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function s(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return X0=s,X0}var Z0,QM;function _Q(){if(QM)return Z0;QM=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return Z0=n,Z0}var Q0,JM;function ls(){if(JM)return Q0;JM=1;var e=kh(),t=SQ(),n=_Q(),r="[object Null]",a="[object Undefined]",s=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:s&&s in Object(u)?t(u):n(u)}return Q0=l,Q0}var J0,eP;function cs(){if(eP)return J0;eP=1;function e(t){return t!=null&&typeof t=="object"}return J0=e,J0}var ew,tP;function zu(){if(tP)return ew;tP=1;var e=ls(),t=cs(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return ew=r,ew}var tw,nP;function KC(){if(nP)return tw;nP=1;var e=Lr(),t=zu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(s,l){if(e(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||t(s)?!0:r.test(s)||!n.test(s)||l!=null&&s in Object(l)}return tw=a,tw}var nw,rP;function io(){if(rP)return nw;rP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return nw=e,nw}var rw,aP;function XC(){if(aP)return rw;aP=1;var e=ls(),t=io(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==s}return rw=l,rw}var aw,iP;function NQ(){if(iP)return aw;iP=1;var e=bi(),t=e["__core-js_shared__"];return aw=t,aw}var iw,sP;function CQ(){if(sP)return iw;sP=1;var e=NQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return iw=n,iw}var sw,oP;function IB(){if(oP)return sw;oP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return sw=n,sw}var ow,lP;function OQ(){if(lP)return ow;lP=1;var e=XC(),t=CQ(),n=io(),r=IB(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:s;return x.test(r(g))}return ow=p,ow}var lw,cP;function EQ(){if(cP)return lw;cP=1;function e(t,n){return t?.[n]}return lw=e,lw}var cw,uP;function jl(){if(uP)return cw;uP=1;var e=OQ(),t=EQ();function n(r,a){var s=t(r,a);return e(s)?s:void 0}return cw=n,cw}var uw,dP;function Kg(){if(dP)return uw;dP=1;var e=jl(),t=e(Object,"create");return uw=t,uw}var dw,fP;function AQ(){if(fP)return dw;fP=1;var e=Kg();function t(){this.__data__=e?e(null):{},this.size=0}return dw=t,dw}var fw,hP;function TQ(){if(hP)return fw;hP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return fw=e,fw}var hw,mP;function kQ(){if(mP)return hw;mP=1;var e=Kg(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(s){var l=this.__data__;if(e){var u=l[s];return u===t?void 0:u}return r.call(l,s)?l[s]:void 0}return hw=a,hw}var mw,pP;function MQ(){if(pP)return mw;pP=1;var e=Kg(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var s=this.__data__;return e?s[a]!==void 0:n.call(s,a)}return mw=r,mw}var pw,vP;function PQ(){if(vP)return pw;vP=1;var e=Kg(),t="__lodash_hash_undefined__";function n(r,a){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=e&&a===void 0?t:a,this}return pw=n,pw}var vw,gP;function RQ(){if(gP)return vw;gP=1;var e=AQ(),t=TQ(),n=kQ(),r=MQ(),a=PQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return jw=t,jw}var Sw,_P;function BQ(){if(_P)return Sw;_P=1;var e=Xg();function t(n,r){var a=this.__data__,s=e(a,n);return s<0?(++this.size,a.push([n,r])):a[s][1]=r,this}return Sw=t,Sw}var _w,NP;function Zg(){if(NP)return _w;NP=1;var e=DQ(),t=$Q(),n=IQ(),r=LQ(),a=BQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Go=function(t){return dl(t)&&t.indexOf("%")===t.length-1},Ce=function(t){return lJ(t)&&!Mh(t)},cJ=function(t){return Ge(t)},Mn=function(t){return Ce(t)||dl(t)},uJ=0,Fu=function(t){var n=++uJ;return"".concat(t||"").concat(n)},wr=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ce(t)&&!dl(t))return r;var s;if(Go(t)){var l=t.indexOf("%");s=n*parseFloat(t.slice(0,l))/100}else s=+t;return Mh(s)&&(s=r),a&&s>n&&(s=n),s},qs=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},dJ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function yJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function N_(e){"@babel/helpers - typeof";return N_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},N_(e)}var JP={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},Ji=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},eR=null,Xw=null,rO=function e(t){if(t===eR&&Array.isArray(Xw))return Xw;var n=[];return y.Children.forEach(t,function(r){Ge(r)||(aJ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),Xw=n,eR=t,n};function na(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return Ji(a)}):r=[Ji(t)],rO(e).forEach(function(a){var s=ta(a,"type.displayName")||ta(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function Kr(e,t){var n=na(e,t);return n&&n[0]}var tR=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ce(r)||r<=0||!Ce(a)||a<=0)},xJ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],bJ=function(t){return t&&t.type&&dl(t.type)&&xJ.indexOf(t.type)>=0},wJ=function(t){return t&&N_(t)==="object"&&"clipDot"in t},jJ=function(t,n,r,a){var s,l=(s=Kw?.[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!We(t)&&(a&&l.includes(n)||mJ.includes(n))||r&&nO.includes(n)},Be=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!qu(a))return null;var s={};return Object.keys(a).forEach(function(l){var u;jJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(s[l]=a[l])}),s},C_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return nR(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function OJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function E_(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=CJ(e,NJ),m=a||{width:n,height:r,x:0,y:0},p=Ye("recharts-surface",s);return W.createElement("svg",O_({},Be(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var EJ=["children","className"];function A_(){return A_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function TJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var pt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=AJ(e,EJ),s=Ye("recharts-layer",r);return W.createElement("g",A_({className:s},Be(a,!0),{ref:t}),n)}),qa=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;ss?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(s);++a=s?n:e(n,r,a)}return Qw=t,Qw}var Jw,sR;function UB(){if(sR)return Jw;sR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+s+"]");function d(f){return u.test(f)}return Jw=d,Jw}var ej,oR;function PJ(){if(oR)return ej;oR=1;function e(t){return t.split("")}return ej=e,ej}var tj,lR;function RJ(){if(lR)return tj;lR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",w="["+s+"]?",b="(?:"+x+"(?:"+[m,p,g].join("|")+")"+w+j+")*",N=w+j+b,E="(?:"+[m+u+"?",u,p,g,l].join("|")+")",O=RegExp(d+"(?="+d+")|"+E+N,"g");function A(C){return C.match(O)||[]}return tj=A,tj}var nj,cR;function DJ(){if(cR)return nj;cR=1;var e=PJ(),t=UB(),n=RJ();function r(a){return t(a)?n(a):e(a)}return nj=r,nj}var rj,uR;function $J(){if(uR)return rj;uR=1;var e=MJ(),t=UB(),n=DJ(),r=BB();function a(s){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[s]()+f}}return rj=a,rj}var aj,dR;function IJ(){if(dR)return aj;dR=1;var e=$J(),t=e("toUpperCase");return aj=t,aj}var LJ=IJ();const ey=St(LJ);function Ht(e){return function(){return e}}const HB=Math.cos,Ov=Math.sin,Ga=Math.sqrt,Ev=Math.PI,ty=2*Ev,T_=Math.PI,k_=2*T_,Fo=1e-6,BJ=k_-Fo;function WB(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return WB;const n=10**t;return function(r){this._+=r[0];for(let a=1,s=r.length;aFo)if(!(Math.abs(p*d-f*m)>Fo)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,w=d*d+f*f,b=x*x+j*j,N=Math.sqrt(w),E=Math.sqrt(g),O=s*Math.tan((T_-Math.acos((w+g-b)/(2*N*E)))/2),A=O/E,C=O/N;Math.abs(A-1)>Fo&&this._append`L${t+A*m},${n+A*p}`,this._append`A${s},${s},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,s,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-s:s-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Fo||Math.abs(this._y1-m)>Fo)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%k_+k_),g>BJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Fo&&this._append`A${r},${r},0,${+(g>=T_)},${p},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function aO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new qJ(t)}function iO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function VB(e){this._context=e}VB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function ny(e){return new VB(e)}function GB(e){return e[0]}function YB(e){return e[1]}function KB(e,t){var n=Ht(!0),r=null,a=ny,s=null,l=aO(u);e=typeof e=="function"?e:e===void 0?GB:Ht(e),t=typeof t=="function"?t:t===void 0?YB:Ht(t);function u(d){var f,m=(d=iO(d)).length,p,g=!1,x;for(r==null&&(s=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(O[j],A[j]);u.lineEnd(),u.areaEnd()}N&&(O[g]=+e(b,g,p),A[g]=+t(b,g,p),u.point(r?+r(b,g,p):O[g],n?+n(b,g,p):A[g]))}if(E)return u=null,E+""||null}function m(){return KB().defined(a).curve(l).context(s)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Ht(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Ht(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Ht(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Ht(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Ht(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Ht(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Ht(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,s!=null&&(u=l(s)),f):l},f.context=function(p){return arguments.length?(p==null?s=u=null:u=l(s=p),f):s},f}class XB{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function FJ(e){return new XB(e,!0)}function UJ(e){return new XB(e,!1)}const sO={draw(e,t){const n=Ga(t/Ev);e.moveTo(n,0),e.arc(0,0,n,0,ty)}},HJ={draw(e,t){const n=Ga(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},ZB=Ga(1/3),WJ=ZB*2,VJ={draw(e,t){const n=Ga(t/WJ),r=n*ZB;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},GJ={draw(e,t){const n=Ga(t),r=-n/2;e.rect(r,r,n,n)}},YJ=.8908130915292852,QB=Ov(Ev/10)/Ov(7*Ev/10),KJ=Ov(ty/10)*QB,XJ=-HB(ty/10)*QB,ZJ={draw(e,t){const n=Ga(t*YJ),r=KJ*n,a=XJ*n;e.moveTo(0,-n),e.lineTo(r,a);for(let s=1;s<5;++s){const l=ty*s/5,u=HB(l),d=Ov(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},ij=Ga(3),QJ={draw(e,t){const n=-Ga(t/(ij*3));e.moveTo(0,n*2),e.lineTo(-ij*n,-n),e.lineTo(ij*n,-n),e.closePath()}},ga=-.5,ya=Ga(3)/2,M_=1/Ga(12),JJ=(M_/2+1)*3,eee={draw(e,t){const n=Ga(t/JJ),r=n/2,a=n*M_,s=r,l=n*M_+n,u=-s,d=l;e.moveTo(r,a),e.lineTo(s,l),e.lineTo(u,d),e.lineTo(ga*r-ya*a,ya*r+ga*a),e.lineTo(ga*s-ya*l,ya*s+ga*l),e.lineTo(ga*u-ya*d,ya*u+ga*d),e.lineTo(ga*r+ya*a,ga*a-ya*r),e.lineTo(ga*s+ya*l,ga*l-ya*s),e.lineTo(ga*u+ya*d,ga*d-ya*u),e.closePath()}};function tee(e,t){let n=null,r=aO(a);e=typeof e=="function"?e:Ht(e||sO),t=typeof t=="function"?t:Ht(t===void 0?64:+t);function a(){let s;if(n||(n=s=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(e=typeof s=="function"?s:Ht(s),a):e},a.size=function(s){return arguments.length?(t=typeof s=="function"?s:Ht(+s),a):t},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function Av(){}function Tv(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function JB(e){this._context=e}JB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Tv(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Tv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function nee(e){return new JB(e)}function ez(e){this._context=e}ez.prototype={areaStart:Av,areaEnd:Av,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Tv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function ree(e){return new ez(e)}function tz(e){this._context=e}tz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Tv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function aee(e){return new tz(e)}function nz(e){this._context=e}nz.prototype={areaStart:Av,areaEnd:Av,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function iee(e){return new nz(e)}function fR(e){return e<0?-1:1}function hR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(s*a+l*r)/(r+a);return(fR(s)+fR(l))*Math.min(Math.abs(s),Math.abs(l),.5*Math.abs(u))||0}function mR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function sj(e,t,n){var r=e._x0,a=e._y0,s=e._x1,l=e._y1,u=(s-r)/3;e._context.bezierCurveTo(r+u,a+u*t,s-u,l-u*n,s,l)}function kv(e){this._context=e}kv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:sj(this,this._t0,mR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,sj(this,mR(this,n=hR(this,e,t)),n);break;default:sj(this,this._t0,n=hR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function rz(e){this._context=new az(e)}(rz.prototype=Object.create(kv.prototype)).point=function(e,t){kv.prototype.point.call(this,t,e)};function az(e){this._context=e}az.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,s){this._context.bezierCurveTo(t,e,r,n,s,a)}};function see(e){return new kv(e)}function oee(e){return new rz(e)}function iz(e){this._context=e}iz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=pR(e),a=pR(t),s=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/s[t];for(s[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function cee(e){return new ry(e,.5)}function uee(e){return new ry(e,0)}function dee(e){return new ry(e,1)}function au(e,t){if((l=e.length)>1)for(var n=1,r,a,s=e[t[0]],l,u=s.length;n=0;)n[t]=t;return n}function fee(e,t){return e[t]}function hee(e){const t=[];return t.key=e,t}function mee(){var e=Ht([]),t=P_,n=au,r=fee;function a(s){var l=Array.from(e.apply(this,arguments),hee),u,d=l.length,f=-1,m;for(const p of s)for(u=0,++f;u0){for(var n,r,a=0,s=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,s=r.length;n0)||!((s=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,s,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function See(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var sz={symbolCircle:sO,symbolCross:HJ,symbolDiamond:VJ,symbolSquare:GJ,symbolStar:ZJ,symbolTriangle:QJ,symbolWye:eee},_ee=Math.PI/180,Nee=function(t){var n="symbol".concat(ey(t));return sz[n]||sO},Cee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*_ee;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},Oee=function(t,n){sz["symbol".concat(ey(t))]=n},oO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,s=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=jee(t,yee),f=gR(gR({},d),{},{type:r,size:s,sizeType:u}),m=function(){var b=Nee(r),N=tee().type(b).size(Cee(s,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=Be(f,!0);return g===+g&&x===+x&&s===+s?W.createElement("path",R_({},j,{className:Ye("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};oO.registerSymbol=Oee;function iu(e){"@babel/helpers - typeof";return iu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},iu(e)}function D_(){return D_=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var E=x.inactive?f:x.color;return W.createElement("li",D_({className:b,style:p,key:"legend-item-".concat(j)},fl(r.props,x,j)),W.createElement(E_,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:s==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);Mf(lO,"displayName","Legend");Mf(lO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var oj,xR;function Iee(){if(xR)return oj;xR=1;var e=Zg();function t(){this.__data__=new e,this.size=0}return oj=t,oj}var lj,bR;function Lee(){if(bR)return lj;bR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return lj=e,lj}var cj,wR;function Bee(){if(wR)return cj;wR=1;function e(t){return this.__data__.get(t)}return cj=e,cj}var uj,jR;function zee(){if(jR)return uj;jR=1;function e(t){return this.__data__.has(t)}return uj=e,uj}var dj,SR;function qee(){if(SR)return dj;SR=1;var e=Zg(),t=QC(),n=JC(),r=200;function a(s,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var w=p.get(l),b=p.get(u);if(w&&b)return w==u&&b==l;var N=-1,E=!0,O=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return Pj=t,Pj}var Rj,GR;function ete(){if(GR)return Rj;GR=1;var e=ls(),t=fO(),n=cs(),r="[object Arguments]",a="[object Array]",s="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",w="[object WeakMap]",b="[object ArrayBuffer]",N="[object DataView]",E="[object Float32Array]",O="[object Float64Array]",A="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",R="[object Uint16Array]",L="[object Uint32Array]",$={};$[E]=$[O]=$[A]=$[C]=$[k]=$[T]=$[M]=$[R]=$[L]=!0,$[r]=$[a]=$[b]=$[s]=$[N]=$[l]=$[u]=$[d]=$[f]=$[m]=$[p]=$[g]=$[x]=$[j]=$[w]=!1;function H(V){return n(V)&&t(V.length)&&!!$[e(V)]}return Rj=H,Rj}var Dj,YR;function vz(){if(YR)return Dj;YR=1;function e(t){return function(n){return t(n)}}return Dj=e,Dj}var ff={exports:{}};ff.exports;var KR;function tte(){return KR||(KR=1,(function(e,t){var n=$B(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(ff,ff.exports)),ff.exports}var $j,XR;function gz(){if(XR)return $j;XR=1;var e=ete(),t=vz(),n=tte(),r=n&&n.isTypedArray,a=r?t(r):e;return $j=a,$j}var Ij,ZR;function nte(){if(ZR)return Ij;ZR=1;var e=Zee(),t=uO(),n=Lr(),r=pz(),a=dO(),s=gz(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&s(f),w=p||g||x||j,b=w?e(f.length,String):[],N=b.length;for(var E in f)(m||u.call(f,E))&&!(w&&(E=="length"||x&&(E=="offset"||E=="parent")||j&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||a(E,N)))&&b.push(E);return b}return Ij=d,Ij}var Lj,QR;function rte(){if(QR)return Lj;QR=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return Lj=t,Lj}var Bj,JR;function yz(){if(JR)return Bj;JR=1;function e(t,n){return function(r){return t(n(r))}}return Bj=e,Bj}var zj,eD;function ate(){if(eD)return zj;eD=1;var e=yz(),t=e(Object.keys,Object);return zj=t,zj}var qj,tD;function ite(){if(tD)return qj;tD=1;var e=rte(),t=ate(),n=Object.prototype,r=n.hasOwnProperty;function a(s){if(!e(s))return t(s);var l=[];for(var u in Object(s))r.call(s,u)&&u!="constructor"&&l.push(u);return l}return qj=a,qj}var Fj,nD;function Ph(){if(nD)return Fj;nD=1;var e=XC(),t=fO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Fj=n,Fj}var Uj,rD;function ay(){if(rD)return Uj;rD=1;var e=nte(),t=ite(),n=Ph();function r(a){return n(a)?e(a):t(a)}return Uj=r,Uj}var Hj,aD;function ste(){if(aD)return Hj;aD=1;var e=Gee(),t=Xee(),n=ay();function r(a){return e(a,n,t)}return Hj=r,Hj}var Wj,iD;function ote(){if(iD)return Wj;iD=1;var e=ste(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(s,l,u,d,f,m){var p=u&t,g=e(s),x=g.length,j=e(l),w=j.length;if(x!=w&&!p)return!1;for(var b=x;b--;){var N=g[b];if(!(p?N in l:r.call(l,N)))return!1}var E=m.get(s),O=m.get(l);if(E&&O)return E==l&&O==s;var A=!0;m.set(s,l),m.set(l,s);for(var C=p;++b-1}return g1=t,g1}var y1,MD;function Ote(){if(MD)return y1;MD=1;function e(t,n,r){for(var a=-1,s=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return s(N);j=!1,g=r,b=new e}else b=f?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ute(e){return e.value}function Hte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=qte(t,Pte);return W.createElement(lO,n)}var zD=1,nl=(function(e){function t(){var n;Rte(this,t);for(var r=arguments.length,a=new Array(r),s=0;szD||Math.abs(a.height-this.lastBoundingBox.height)>zD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Ui({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&s==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Ui(Ui({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Ui(Ui({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Hte(s,Ui(Ui({},this.props),{},{payload:Sz(m,f,Ute)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Ui(Ui({},this.defaultProps),r.props),l=s.layout;return l==="vertical"&&Ce(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);iy(nl,"displayName","Legend");iy(nl,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var S1,qD;function Wte(){if(qD)return S1;qD=1;var e=kh(),t=uO(),n=Lr(),r=e?e.isConcatSpreadable:void 0;function a(s){return n(s)||t(s)||!!(r&&s&&s[r])}return S1=a,S1}var _1,FD;function Cz(){if(FD)return _1;FD=1;var e=mz(),t=Wte();function n(r,a,s,l,u){var d=-1,f=r.length;for(s||(s=t),u||(u=[]);++d0&&s(m)?a>1?n(m,a-1,s,l,u):e(u,m):l||(u[u.length]=m)}return u}return _1=n,_1}var N1,UD;function Vte(){if(UD)return N1;UD=1;function e(t){return function(n,r,a){for(var s=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++s];if(r(l[f],f,l)===!1)break}return n}}return N1=e,N1}var C1,HD;function Gte(){if(HD)return C1;HD=1;var e=Vte(),t=e();return C1=t,C1}var O1,WD;function Oz(){if(WD)return O1;WD=1;var e=Gte(),t=ay();function n(r,a){return r&&e(r,a,t)}return O1=n,O1}var E1,VD;function Yte(){if(VD)return E1;VD=1;var e=Ph();function t(n,r){return function(a,s){if(a==null)return a;if(!e(a))return n(a,s);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||s&&d&&m||!a&&m||!l)return 1;if(!s&&!u&&!p&&n=f)return m;var p=a[s];return m*(p=="desc"?-1:1)}}return n.index-r.index}return P1=t,P1}var R1,QD;function Qte(){if(QD)return R1;QD=1;var e=eO(),t=tO(),n=wi(),r=Ez(),a=Kte(),s=vz(),l=Zte(),u=Uu(),d=Lr();function f(m,p,g){p.length?p=e(p,function(w){return d(w)?function(b){return t(b,w.length===1?w[0]:w)}:w}):p=[u];var x=-1;p=e(p,s(n));var j=r(m,function(w,b,N){var E=e(p,function(O){return O(w)});return{criteria:E,index:++x,value:w}});return a(j,function(w,b){return l(w,b,g)})}return R1=f,R1}var D1,JD;function Jte(){if(JD)return D1;JD=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return D1=e,D1}var $1,e4;function ene(){if(e4)return $1;e4=1;var e=Jte(),t=Math.max;function n(r,a,s){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++s>=e)return arguments[0]}else s=0;return a.apply(void 0,arguments)}}return z1=r,z1}var q1,i4;function ane(){if(i4)return q1;i4=1;var e=nne(),t=rne(),n=t(e);return q1=n,q1}var F1,s4;function ine(){if(s4)return F1;s4=1;var e=Uu(),t=ene(),n=ane();function r(a,s){return n(t(a,s,e),a+"")}return F1=r,F1}var U1,o4;function sy(){if(o4)return U1;o4=1;var e=ZC(),t=Ph(),n=dO(),r=io();function a(s,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],s):!1}return U1=a,U1}var H1,l4;function sne(){if(l4)return H1;l4=1;var e=Cz(),t=Qte(),n=ine(),r=sy(),a=n(function(s,l){if(s==null)return[];var u=l.length;return u>1&&r(s,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(s,e(l,1),[])});return H1=a,H1}var one=sne();const pO=St(one);function Pf(e){"@babel/helpers - typeof";return Pf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pf(e)}function L_(){return L_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(Qd,"-left"),Ce(n)&&t&&Ce(t.x)&&n=t.y),"".concat(Qd,"-top"),Ce(r)&&t&&Ce(t.y)&&rw?Math.max(m,d[r]):Math.max(p,d[r])}function jne(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function Sne(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,s=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=d4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=d4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=jne({translateX:m,translateY:p,useTranslate3d:u})):f=bne,{cssProperties:f,cssClasses:wne({translateX:m,translateY:p,coordinate:n})}}function ou(e){"@babel/helpers - typeof";return ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ou(e)}function f4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function h4(e){for(var t=1;tm4||Math.abs(r.height-this.state.lastBoundingBox.height)>m4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,w=a.reverseDirection,b=a.useTranslate3d,N=a.viewBox,E=a.wrapperStyle,O=Sne({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:N}),A=O.cssClasses,C=O.cssProperties,k=h4(h4({transition:g&&s?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return W.createElement("div",{tabIndex:-1,className:A,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),Pne=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Sl={isSsr:Pne()};function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function p4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function v4(e){for(var t=1;t0;return W.createElement(Mne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:s,coordinate:m,hasPayload:k,offset:x,position:b,reverseDirection:N,useTranslate3d:E,viewBox:O,wrapperStyle:A},Une(f,v4(v4({},this.props),{},{payload:C})))}}])})(y.PureComponent);vO(ni,"displayName","Tooltip");vO(ni,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Sl.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var V1,g4;function Hne(){if(g4)return V1;g4=1;var e=bi(),t=function(){return e.Date.now()};return V1=t,V1}var G1,y4;function Wne(){if(y4)return G1;y4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return G1=t,G1}var Y1,x4;function Vne(){if(x4)return Y1;x4=1;var e=Wne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Y1=n,Y1}var K1,b4;function Rz(){if(b4)return K1;b4=1;var e=Vne(),t=io(),n=zu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=s.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return K1=d,K1}var X1,w4;function Gne(){if(w4)return X1;w4=1;var e=io(),t=Hne(),n=Rz(),r="Expected a function",a=Math.max,s=Math.min;function l(u,d,f){var m,p,g,x,j,w,b=0,N=!1,E=!1,O=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,E="maxWait"in f,g=E?a(n(f.maxWait)||0,d):g,O="trailing"in f?!!f.trailing:O);function A(V){var F=m,G=p;return m=p=void 0,b=V,x=u.apply(G,F),x}function C(V){return b=V,j=setTimeout(M,d),N?A(V):x}function k(V){var F=V-w,G=V-b,B=d-F;return E?s(B,g-G):B}function T(V){var F=V-w,G=V-b;return w===void 0||F>=d||F<0||E&&G>=g}function M(){var V=t();if(T(V))return R(V);j=setTimeout(M,k(V))}function R(V){return j=void 0,O&&m?A(V):(m=p=void 0,x)}function L(){j!==void 0&&clearTimeout(j),b=0,m=w=p=j=void 0}function $(){return j===void 0?x:R(t())}function H(){var V=t(),F=T(V);if(m=arguments,p=this,w=V,F){if(j===void 0)return C(w);if(E)return clearTimeout(j),j=setTimeout(M,d),A(w)}return j===void 0&&(j=setTimeout(M,d)),x}return H.cancel=L,H.flush=$,H}return X1=l,X1}var Z1,j4;function Yne(){if(j4)return Z1;j4=1;var e=Gne(),t=io(),n="Expected a function";function r(a,s,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,s,{leading:u,maxWait:s,trailing:d})}return Z1=r,Z1}var Kne=Yne();const Dz=St(Kne);function Df(e){"@babel/helpers - typeof";return Df=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Df(e)}function S4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function kp(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(V=Dz(V,w,{trailing:!0,leading:!1}));var F=new ResizeObserver(V),G=C.current.getBoundingClientRect(),B=G.width,D=G.height;return $(B,D),F.observe(C.current),function(){F.disconnect()}},[$,w]);var H=y.useMemo(function(){var V=R.containerWidth,F=R.containerHeight;if(V<0||F<0)return null;qa(Go(l)||Go(d),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,l,d),qa(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Go(l)?V:l,B=Go(d)?F:d;n&&n>0&&(G?B=G/n:B&&(G=B*n),g&&B>g&&(B=g)),qa(G>0||B>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,G,B,l,d,m,p,n);var D=!Array.isArray(x)&&Ji(x.type).endsWith("Chart");return W.Children.map(x,function(U){return W.isValidElement(U)?y.cloneElement(U,kp({width:G,height:B},D?{style:kp({height:"100%",width:"100%",maxHeight:B,maxWidth:G},U.props.style)}:{})):U})},[n,x,d,g,p,m,R,l]);return W.createElement("div",{id:b?"".concat(b):void 0,className:Ye("recharts-responsive-container",N),style:kp(kp({},A),{},{width:l,height:d,minWidth:m,minHeight:p,maxHeight:g}),ref:C},H)}),oy=function(t){return null};oy.displayName="Cell";function $f(e){"@babel/helpers - typeof";return $f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},$f(e)}function N4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function F_(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Sl.isSsr)return{width:0,height:0};var r=ure(n),a=JSON.stringify({text:t,copyStyle:r});if(jc.widthCache[a])return jc.widthCache[a];try{var s=document.getElementById(C4);s||(s=document.createElement("span"),s.setAttribute("id",C4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var l=F_(F_({},cre),r);Object.assign(s.style,l),s.textContent="".concat(t);var u=s.getBoundingClientRect(),d={width:u.width,height:u.height};return jc.widthCache[a]=d,++jc.cacheCount>lre&&(jc.cacheCount=0,jc.widthCache={}),d}catch{return{width:0,height:0}}},dre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function If(e){"@babel/helpers - typeof";return If=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},If(e)}function $v(e,t){return pre(e)||mre(e,t)||hre(e,t)||fre()}function fre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hre(e,t){if(e){if(typeof e=="string")return O4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O4(e,t)}}function O4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Are(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function P4(e,t){return Pre(e)||Mre(e,t)||kre(e,t)||Tre()}function Tre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kre(e,t){if(e){if(typeof e=="string")return R4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R4(e,t)}}function R4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function(B,D){var U=D.word,K=D.width,te=B[B.length-1];if(te&&(a==null||s||te.width+K+rD.width?B:D})};if(!m)return x;for(var w="…",b=function(G){var B=p.slice(0,G),D=Bz({breakAll:f,style:d,children:B+w}).wordsWithComputedWidth,U=g(D),K=U.length>l||j(U).width>Number(a);return[K,U]},N=0,E=p.length-1,O=0,A;N<=E&&O<=p.length-1;){var C=Math.floor((N+E)/2),k=C-1,T=b(k),M=P4(T,2),R=M[0],L=M[1],$=b(C),H=P4($,1),V=H[0];if(!R&&!V&&(N=C+1),R&&V&&(E=C-1),!R&&V){A=L;break}O++}return A||x},D4=function(t){var n=Ge(t)?[]:t.toString().split(Lz);return[{words:n}]},Dre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,s=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Sl.isSsr){var d,f,m=Bz({breakAll:l,children:a,style:s});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return D4(a);return Rre({breakAll:l,children:a,maxLines:u,style:s},d,f,n,r)}return D4(a)},$4="#808080",hl=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,w=j===void 0?"end":j,b=t.fill,N=b===void 0?$4:b,E=M4(t,Ore),O=y.useMemo(function(){return Dre({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),A=E.dx,C=E.dy,k=E.angle,T=E.className,M=E.breakAll,R=M4(E,Ere);if(!Mn(r)||!Mn(s))return null;var L=r+(Ce(A)?A:0),$=s+(Ce(C)?C:0),H;switch(w){case"start":H=Q1("calc(".concat(f,")"));break;case"middle":H=Q1("calc(".concat((O.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:H=Q1("calc(".concat(O.length-1," * -").concat(u,")"));break}var V=[];if(p){var F=O[0].width,G=E.width;V.push("scale(".concat((Ce(G)?G/F:1)/F,")"))}return k&&V.push("rotate(".concat(k,", ").concat(L,", ").concat($,")")),V.length&&(R.transform=V.join(" ")),W.createElement("text",U_({},Be(R,!0),{x:L,y:$,className:Ye("recharts-text",T),textAnchor:x,fill:N.includes("url")?$4:N}),O.map(function(B,D){var U=B.words.join(M?"":" ");return W.createElement("tspan",{x:L,dy:D===0?H:u,key:"".concat(U,"-").concat(D)},U)}))};function Ks(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function $re(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function gO(e){let t,n,r;e.length!==2?(t=Ks,n=(u,d)=>Ks(e(u),d),r=(u,d)=>e(u)-d):(t=e===Ks||e===$re?e:Ire,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:s}}function Ire(){return 0}function zz(e){return e===null?NaN:+e}function*Lre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Bre=gO(Ks),Rh=Bre.right;gO(zz).center;class I4 extends Map{constructor(t,n=Fre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(L4(this,t))}has(t){return super.has(L4(this,t))}set(t,n){return super.set(zre(this,t),n)}delete(t){return super.delete(qre(this,t))}}function L4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function zre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function qre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Fre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Ure(e=Ks){if(e===Ks)return qz;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function qz(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Hre=Math.sqrt(50),Wre=Math.sqrt(10),Vre=Math.sqrt(2);function Iv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),l=s>=Hre?10:s>=Wre?5:s>=Vre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=s-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function z4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function Fz(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?qz:Ure(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));Fz(e,t,x,j,a)}const s=e[t];let l=n,u=r;for(Jd(e,n,t),a(e[r],s)>0&&Jd(e,n,r);l0;)--u}a(e[n],s)===0?Jd(e,n,u):(++u,Jd(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function Jd(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Gre(e,t,n){if(e=Float64Array.from(Lre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return z4(e);if(t>=1)return B4(e);var r,a=(r-1)*t,s=Math.floor(a),l=B4(Fz(e,s).subarray(0,s+1)),u=z4(e.subarray(s+1));return l+(u-l)*(a-s)}}function Yre(e,t,n=zz){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,s=Math.floor(a),l=+n(e[s],s,e),u=+n(e[s+1],s+1,e);return l+(u-l)*(a-s)}}function Kre(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Pp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Pp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Zre.exec(e))?new kr(t[1],t[2],t[3],1):(t=Qre.exec(e))?new kr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Jre.exec(e))?Pp(t[1],t[2],t[3],t[4]):(t=eae.exec(e))?Pp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=tae.exec(e))?G4(t[1],t[2]/100,t[3]/100,1):(t=nae.exec(e))?G4(t[1],t[2]/100,t[3]/100,t[4]):q4.hasOwnProperty(e)?H4(q4[e]):e==="transparent"?new kr(NaN,NaN,NaN,0):null}function H4(e){return new kr(e>>16&255,e>>8&255,e&255,1)}function Pp(e,t,n,r){return r<=0&&(e=t=n=NaN),new kr(e,t,n,r)}function iae(e){return e instanceof Dh||(e=qf(e)),e?(e=e.rgb(),new kr(e.r,e.g,e.b,e.opacity)):new kr}function Y_(e,t,n,r){return arguments.length===1?iae(e):new kr(e,t,n,r??1)}function kr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}xO(kr,Y_,Hz(Dh,{brighter(e){return e=e==null?Lv:Math.pow(Lv,e),new kr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Bf:Math.pow(Bf,e),new kr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new kr(rl(this.r),rl(this.g),rl(this.b),Bv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:W4,formatHex:W4,formatHex8:sae,formatRgb:V4,toString:V4}));function W4(){return`#${Yo(this.r)}${Yo(this.g)}${Yo(this.b)}`}function sae(){return`#${Yo(this.r)}${Yo(this.g)}${Yo(this.b)}${Yo((isNaN(this.opacity)?1:this.opacity)*255)}`}function V4(){const e=Bv(this.opacity);return`${e===1?"rgb(":"rgba("}${rl(this.r)}, ${rl(this.g)}, ${rl(this.b)}${e===1?")":`, ${e})`}`}function Bv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function rl(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Yo(e){return e=rl(e),(e<16?"0":"")+e.toString(16)}function G4(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ba(e,t,n,r)}function Wz(e){if(e instanceof Ba)return new Ba(e.h,e.s,e.l,e.opacity);if(e instanceof Dh||(e=qf(e)),!e)return new Ba;if(e instanceof Ba)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,u=s-a,d=(s+a)/2;return u?(t===s?l=(n-r)/u+(n0&&d<1?0:l,new Ba(l,u,d,e.opacity)}function oae(e,t,n,r){return arguments.length===1?Wz(e):new Ba(e,t,n,r??1)}function Ba(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}xO(Ba,oae,Hz(Dh,{brighter(e){return e=e==null?Lv:Math.pow(Lv,e),new Ba(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Bf:Math.pow(Bf,e),new Ba(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new kr(J1(e>=240?e-240:e+120,a,r),J1(e,a,r),J1(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new Ba(Y4(this.h),Rp(this.s),Rp(this.l),Bv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Bv(this.opacity);return`${e===1?"hsl(":"hsla("}${Y4(this.h)}, ${Rp(this.s)*100}%, ${Rp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Y4(e){return e=(e||0)%360,e<0?e+360:e}function Rp(e){return Math.max(0,Math.min(1,e||0))}function J1(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const bO=e=>()=>e;function lae(e,t){return function(n){return e+n*t}}function cae(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function uae(e){return(e=+e)==1?Vz:function(t,n){return n-t?cae(t,n,e):bO(isNaN(t)?n:t)}}function Vz(e,t){var n=t-e;return n?lae(e,n):bO(isNaN(e)?t:e)}const K4=(function e(t){var n=uae(t);function r(a,s){var l=n((a=Y_(a)).r,(s=Y_(s)).r),u=n(a.g,s.g),d=n(a.b,s.b),f=Vz(a.opacity,s.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function dae(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(s){for(a=0;an&&(s=t.slice(n,s),u[l]?u[l]+=s:u[++l]=s),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:zv(r,a)})),n=eS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function jae(e,t,n){var r=e[0],a=e[1],s=t[0],l=t[1];return a2?Sae:jae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?s:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),zv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,qv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=wO,m()},p.clamp=function(g){return arguments.length?(l=g?!0:jr,m()):l!==jr},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(s=g,p):s},function(g,x){return r=g,a=x,m()}}function jO(){return ly()(jr,jr)}function _ae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Fv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function cu(e){return e=Fv(Math.abs(e)),e?e[1]:NaN}function Nae(e,t){return function(n,r){for(var a=n.length,s=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),s.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return s.reverse().join(t)}}function Cae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Oae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ff(e){if(!(t=Oae.exec(e)))throw new Error("invalid format: "+e);var t;return new SO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Ff.prototype=SO.prototype;function SO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}SO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Eae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var Gz;function Aae(e,t){var n=Fv(e,t);if(!n)return e+"";var r=n[0],a=n[1],s=a-(Gz=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Fv(e,Math.max(0,t+s-1))[0]}function Z4(e,t){var n=Fv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const Q4={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:_ae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Z4(e*100,t),r:Z4,s:Aae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function J4(e){return e}var e$=Array.prototype.map,t$=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Tae(e){var t=e.grouping===void 0||e.thousands===void 0?J4:Nae(e$.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?J4:Cae(e$.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=Ff(p);var g=p.fill,x=p.align,j=p.sign,w=p.symbol,b=p.zero,N=p.width,E=p.comma,O=p.precision,A=p.trim,C=p.type;C==="n"?(E=!0,C="g"):Q4[C]||(O===void 0&&(O=12),A=!0,C="g"),(b||g==="0"&&x==="=")&&(b=!0,g="0",x="=");var k=w==="$"?n:w==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=w==="$"?r:/[%p]/.test(C)?l:"",M=Q4[C],R=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function L($){var H=k,V=T,F,G,B;if(C==="c")V=M($)+V,$="";else{$=+$;var D=$<0||1/$<0;if($=isNaN($)?d:M(Math.abs($),O),A&&($=Eae($)),D&&+$==0&&j!=="+"&&(D=!1),H=(D?j==="("?j:u:j==="-"||j==="("?"":j)+H,V=(C==="s"?t$[8+Gz/3]:"")+V+(D&&j==="("?")":""),R){for(F=-1,G=$.length;++FB||B>57){V=(B===46?a+$.slice(F+1):$.slice(F))+V,$=$.slice(0,F);break}}}E&&!b&&($=t($,1/0));var U=H.length+$.length+V.length,K=U>1)+H+$+V+K.slice(U);break;default:$=K+H+$+V;break}return s($)}return L.toString=function(){return p+""},L}function m(p,g){var x=f((p=Ff(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(cu(g)/3)))*3,w=Math.pow(10,-j),b=t$[8+j/3];return function(N){return x(w*N)+b}}return{format:f,formatPrefix:m}}var Dp,_O,Yz;kae({thousands:",",grouping:[3],currency:["$",""]});function kae(e){return Dp=Tae(e),_O=Dp.format,Yz=Dp.formatPrefix,Dp}function Mae(e){return Math.max(0,-cu(Math.abs(e)))}function Pae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(cu(t)/3)))*3-cu(Math.abs(e)))}function Rae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,cu(t)-cu(e))+1}function Kz(e,t,n,r){var a=V_(e,t,n),s;switch(r=Ff(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(s=Pae(a,l))&&(r.precision=s),Yz(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Rae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=Mae(a))&&(r.precision=s-(r.type==="%")*2);break}}return _O(r)}function so(e){var t=e.domain;return e.ticks=function(n){var r=t();return H_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return Kz(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,s=r.length-1,l=r[a],u=r[s],d,f,m=10;for(u0;){if(f=W_(l,u,n),f===d)return r[a]=l,r[s]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function Uv(){var e=jO();return e.copy=function(){return $h(e,Uv())},Ea.apply(e,arguments),so(e)}function Xz(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,qv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return Xz(e).unknown(t)},e=arguments.length?Array.from(e,qv):[0,1],so(n)}function Zz(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],s=e[r],l;return sMath.pow(e,t)}function Bae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function a$(e){return(t,n)=>-e(-t,n)}function NO(e){const t=e(n$,r$),n=t.domain;let r=10,a,s;function l(){return a=Bae(r),s=Lae(r),n()[0]<0?(a=a$(a),s=a$(s),e(Dae,$ae)):e(n$,r$),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(w)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(w=g>0?j/s(-g):j*s(g),!(wm)break;N.push(w)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=Ff(d)).precision==null&&(d.trim=!0),d=_O(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/s(Math.round(a(m)));return p*rn(Zz(n(),{floor:u=>s(Math.floor(a(u))),ceil:u=>s(Math.ceil(a(u)))})),t}function Qz(){const e=NO(ly()).domain([1,10]);return e.copy=()=>$h(e,Qz()).base(e.base()),Ea.apply(e,arguments),e}function i$(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function s$(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function CO(e){var t=1,n=e(i$(t),s$(t));return n.constant=function(r){return arguments.length?e(i$(t=+r),s$(t)):t},so(n)}function Jz(){var e=CO(ly());return e.copy=function(){return $h(e,Jz()).constant(e.constant())},Ea.apply(e,arguments)}function o$(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function zae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function qae(e){return e<0?-e*e:e*e}function OO(e){var t=e(jr,jr),n=1;function r(){return n===1?e(jr,jr):n===.5?e(zae,qae):e(o$(n),o$(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},so(t)}function EO(){var e=OO(ly());return e.copy=function(){return $h(e,EO()).exponent(e.exponent())},Ea.apply(e,arguments),e}function Fae(){return EO.apply(null,arguments).exponent(.5)}function l$(e){return Math.sign(e)*e*e}function Uae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function e6(){var e=jO(),t=[0,1],n=!1,r;function a(s){var l=Uae(e(s));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(s){return e.invert(l$(s))},a.domain=function(s){return arguments.length?(e.domain(s),a):e.domain()},a.range=function(s){return arguments.length?(e.range((t=Array.from(s,qv)).map(l$)),a):t.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(e.clamp(s),a):e.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return e6(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Ea.apply(a,arguments),so(a)}function t6(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(s=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return n6().domain([e,t]).range(a).unknown(s)},Ea.apply(so(l),arguments)}function r6(){var e=[.5],t=[0,1],n,r=1;function a(s){return s!=null&&s<=s?t[Rh(e,s,0,r)]:n}return a.domain=function(s){return arguments.length?(e=Array.from(s),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(s){return arguments.length?(t=Array.from(s),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(s){var l=t.indexOf(s);return[e[l-1],e[l]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return r6().domain(e).range(t).unknown(n)},Ea.apply(a,arguments)}const tS=new Date,nS=new Date;function Dn(e,t,n,r){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const l=a(s),u=a.ceil(s);return s-l(t(s=new Date(+s),l==null?1:Math.floor(l)),s),a.range=(s,l,u)=>{const d=[];if(s=a.ceil(s),u=u==null?1:Math.floor(u),!(s0))return d;let f;do d.push(f=new Date(+s)),t(s,u),e(s);while(fDn(l=>{if(l>=l)for(;e(l),!s(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!s(l););else for(;--u>=0;)for(;t(l,1),!s(l););}),n&&(a.count=(s,l)=>(tS.setTime(+s),nS.setTime(+l),e(tS),e(nS),Math.floor(n(tS,nS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?l=>r(l)%s===0:l=>a.count(0,l)%s===0):a)),a}const Hv=Dn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Hv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Dn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Hv);Hv.range;const Gi=1e3,Sa=Gi*60,Yi=Sa*60,ns=Yi*24,AO=ns*7,c$=ns*30,rS=ns*365,Ko=Dn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Gi)},(e,t)=>(t-e)/Gi,e=>e.getUTCSeconds());Ko.range;const TO=Dn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Gi)},(e,t)=>{e.setTime(+e+t*Sa)},(e,t)=>(t-e)/Sa,e=>e.getMinutes());TO.range;const kO=Dn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Sa)},(e,t)=>(t-e)/Sa,e=>e.getUTCMinutes());kO.range;const MO=Dn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Gi-e.getMinutes()*Sa)},(e,t)=>{e.setTime(+e+t*Yi)},(e,t)=>(t-e)/Yi,e=>e.getHours());MO.range;const PO=Dn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Yi)},(e,t)=>(t-e)/Yi,e=>e.getUTCHours());PO.range;const Ih=Dn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Sa)/ns,e=>e.getDate()-1);Ih.range;const cy=Dn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ns,e=>e.getUTCDate()-1);cy.range;const a6=Dn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ns,e=>Math.floor(e/ns));a6.range;function _l(e){return Dn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Sa)/AO)}const uy=_l(0),Wv=_l(1),Hae=_l(2),Wae=_l(3),uu=_l(4),Vae=_l(5),Gae=_l(6);uy.range;Wv.range;Hae.range;Wae.range;uu.range;Vae.range;Gae.range;function Nl(e){return Dn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/AO)}const dy=Nl(0),Vv=Nl(1),Yae=Nl(2),Kae=Nl(3),du=Nl(4),Xae=Nl(5),Zae=Nl(6);dy.range;Vv.range;Yae.range;Kae.range;du.range;Xae.range;Zae.range;const RO=Dn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());RO.range;const DO=Dn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());DO.range;const rs=Dn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());rs.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Dn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});rs.range;const as=Dn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());as.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Dn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});as.range;function i6(e,t,n,r,a,s){const l=[[Ko,1,Gi],[Ko,5,5*Gi],[Ko,15,15*Gi],[Ko,30,30*Gi],[s,1,Sa],[s,5,5*Sa],[s,15,15*Sa],[s,30,30*Sa],[a,1,Yi],[a,3,3*Yi],[a,6,6*Yi],[a,12,12*Yi],[r,1,ns],[r,2,2*ns],[n,1,AO],[t,1,c$],[t,3,3*c$],[e,1,rS]];function u(f,m,p){const g=mb).right(l,g);if(x===l.length)return e.every(V_(f/rS,m/rS,p));if(x===0)return Hv.every(Math.max(V_(f,m,p),1));const[j,w]=l[g/l[x-1][2]53)return null;"w"in le||(le.w=1),"Z"in le?(_e=iS(ef(le.y,0,1)),fe=_e.getUTCDay(),_e=fe>4||fe===0?Vv.ceil(_e):Vv(_e),_e=cy.offset(_e,(le.V-1)*7),le.y=_e.getUTCFullYear(),le.m=_e.getUTCMonth(),le.d=_e.getUTCDate()+(le.w+6)%7):(_e=aS(ef(le.y,0,1)),fe=_e.getDay(),_e=fe>4||fe===0?Wv.ceil(_e):Wv(_e),_e=Ih.offset(_e,(le.V-1)*7),le.y=_e.getFullYear(),le.m=_e.getMonth(),le.d=_e.getDate()+(le.w+6)%7)}else("W"in le||"U"in le)&&("w"in le||(le.w="u"in le?le.u%7:"W"in le?1:0),fe="Z"in le?iS(ef(le.y,0,1)).getUTCDay():aS(ef(le.y,0,1)).getDay(),le.m=0,le.d="W"in le?(le.w+6)%7+le.W*7-(fe+5)%7:le.w+le.U*7-(fe+6)%7);return"Z"in le?(le.H+=le.Z/100|0,le.M+=le.Z%100,iS(le)):aS(le)}}function M(Z,ve,je,le){for(var Re=0,_e=ve.length,fe=je.length,pe,Le;Re<_e;){if(le>=fe)return-1;if(pe=ve.charCodeAt(Re++),pe===37){if(pe=ve.charAt(Re++),Le=C[pe in u$?ve.charAt(Re++):pe],!Le||(le=Le(Z,je,le))<0)return-1}else if(pe!=je.charCodeAt(le++))return-1}return le}function R(Z,ve,je){var le=f.exec(ve.slice(je));return le?(Z.p=m.get(le[0].toLowerCase()),je+le[0].length):-1}function L(Z,ve,je){var le=x.exec(ve.slice(je));return le?(Z.w=j.get(le[0].toLowerCase()),je+le[0].length):-1}function $(Z,ve,je){var le=p.exec(ve.slice(je));return le?(Z.w=g.get(le[0].toLowerCase()),je+le[0].length):-1}function H(Z,ve,je){var le=N.exec(ve.slice(je));return le?(Z.m=E.get(le[0].toLowerCase()),je+le[0].length):-1}function V(Z,ve,je){var le=w.exec(ve.slice(je));return le?(Z.m=b.get(le[0].toLowerCase()),je+le[0].length):-1}function F(Z,ve,je){return M(Z,t,ve,je)}function G(Z,ve,je){return M(Z,n,ve,je)}function B(Z,ve,je){return M(Z,r,ve,je)}function D(Z){return l[Z.getDay()]}function U(Z){return s[Z.getDay()]}function K(Z){return d[Z.getMonth()]}function te(Z){return u[Z.getMonth()]}function I(Z){return a[+(Z.getHours()>=12)]}function z(Z){return 1+~~(Z.getMonth()/3)}function Y(Z){return l[Z.getUTCDay()]}function ne(Z){return s[Z.getUTCDay()]}function se(Z){return d[Z.getUTCMonth()]}function xe(Z){return u[Z.getUTCMonth()]}function ee(Z){return a[+(Z.getUTCHours()>=12)]}function ae(Z){return 1+~~(Z.getUTCMonth()/3)}return{format:function(Z){var ve=k(Z+="",O);return ve.toString=function(){return Z},ve},parse:function(Z){var ve=T(Z+="",!1);return ve.toString=function(){return Z},ve},utcFormat:function(Z){var ve=k(Z+="",A);return ve.toString=function(){return Z},ve},utcParse:function(Z){var ve=T(Z+="",!0);return ve.toString=function(){return Z},ve}}}var u$={"-":"",_:" ",0:"0"},Gn=/^\s*\d+/,rie=/^%/,aie=/[\\^$*+?|[\]().{}]/g;function vt(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",s=a.length;return r+(s[t.toLowerCase(),n]))}function sie(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function oie(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function lie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function cie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function uie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function d$(e,t,n){var r=Gn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function f$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function die(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function fie(e,t,n){var r=Gn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function hie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function h$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function mie(e,t,n){var r=Gn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function m$(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function pie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function vie(e,t,n){var r=Gn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function gie(e,t,n){var r=Gn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function yie(e,t,n){var r=Gn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function xie(e,t,n){var r=rie.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function bie(e,t,n){var r=Gn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function wie(e,t,n){var r=Gn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function p$(e,t){return vt(e.getDate(),t,2)}function jie(e,t){return vt(e.getHours(),t,2)}function Sie(e,t){return vt(e.getHours()%12||12,t,2)}function _ie(e,t){return vt(1+Ih.count(rs(e),e),t,3)}function s6(e,t){return vt(e.getMilliseconds(),t,3)}function Nie(e,t){return s6(e,t)+"000"}function Cie(e,t){return vt(e.getMonth()+1,t,2)}function Oie(e,t){return vt(e.getMinutes(),t,2)}function Eie(e,t){return vt(e.getSeconds(),t,2)}function Aie(e){var t=e.getDay();return t===0?7:t}function Tie(e,t){return vt(uy.count(rs(e)-1,e),t,2)}function o6(e){var t=e.getDay();return t>=4||t===0?uu(e):uu.ceil(e)}function kie(e,t){return e=o6(e),vt(uu.count(rs(e),e)+(rs(e).getDay()===4),t,2)}function Mie(e){return e.getDay()}function Pie(e,t){return vt(Wv.count(rs(e)-1,e),t,2)}function Rie(e,t){return vt(e.getFullYear()%100,t,2)}function Die(e,t){return e=o6(e),vt(e.getFullYear()%100,t,2)}function $ie(e,t){return vt(e.getFullYear()%1e4,t,4)}function Iie(e,t){var n=e.getDay();return e=n>=4||n===0?uu(e):uu.ceil(e),vt(e.getFullYear()%1e4,t,4)}function Lie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+vt(t/60|0,"0",2)+vt(t%60,"0",2)}function v$(e,t){return vt(e.getUTCDate(),t,2)}function Bie(e,t){return vt(e.getUTCHours(),t,2)}function zie(e,t){return vt(e.getUTCHours()%12||12,t,2)}function qie(e,t){return vt(1+cy.count(as(e),e),t,3)}function l6(e,t){return vt(e.getUTCMilliseconds(),t,3)}function Fie(e,t){return l6(e,t)+"000"}function Uie(e,t){return vt(e.getUTCMonth()+1,t,2)}function Hie(e,t){return vt(e.getUTCMinutes(),t,2)}function Wie(e,t){return vt(e.getUTCSeconds(),t,2)}function Vie(e){var t=e.getUTCDay();return t===0?7:t}function Gie(e,t){return vt(dy.count(as(e)-1,e),t,2)}function c6(e){var t=e.getUTCDay();return t>=4||t===0?du(e):du.ceil(e)}function Yie(e,t){return e=c6(e),vt(du.count(as(e),e)+(as(e).getUTCDay()===4),t,2)}function Kie(e){return e.getUTCDay()}function Xie(e,t){return vt(Vv.count(as(e)-1,e),t,2)}function Zie(e,t){return vt(e.getUTCFullYear()%100,t,2)}function Qie(e,t){return e=c6(e),vt(e.getUTCFullYear()%100,t,2)}function Jie(e,t){return vt(e.getUTCFullYear()%1e4,t,4)}function ese(e,t){var n=e.getUTCDay();return e=n>=4||n===0?du(e):du.ceil(e),vt(e.getUTCFullYear()%1e4,t,4)}function tse(){return"+0000"}function g$(){return"%"}function y$(e){return+e}function x$(e){return Math.floor(+e/1e3)}var Sc,u6,d6;nse({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function nse(e){return Sc=nie(e),u6=Sc.format,Sc.parse,d6=Sc.utcFormat,Sc.utcParse,Sc}function rse(e){return new Date(e)}function ase(e){return e instanceof Date?+e:+new Date(+e)}function $O(e,t,n,r,a,s,l,u,d,f){var m=jO(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),w=f("%I:%M"),b=f("%I %p"),N=f("%a %d"),E=f("%b %d"),O=f("%B"),A=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>Gre(e,s/r))},n.copy=function(){return p6(t).domain(e)},us.apply(n,arguments)}function hy(){var e=0,t=.5,n=1,r=1,a,s,l,u,d,f=jr,m,p=!1,g;function x(w){return isNaN(w=+w)?g:(w=.5+((w=+m(w))-s)*(r*wn}return oS=e,oS}var lS,S$;function cse(){if(S$)return lS;S$=1;var e=my(),t=x6(),n=Uu();function r(a){return a&&a.length?e(a,n,t):void 0}return lS=r,lS}var use=cse();const py=St(use);var cS,_$;function b6(){if(_$)return cS;_$=1;function e(t,n){return te.e^s.s<0?1:-1;for(r=s.d.length,a=e.d.length,t=0,n=re.d[t]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};Ee.decimalPlaces=Ee.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*Xt;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Ee.dividedBy=Ee.div=function(e){return es(this,new this.constructor(e))};Ee.dividedToIntegerBy=Ee.idiv=function(e){var t=this,n=t.constructor;return Bt(es(t,new n(e),0,1),n.precision)};Ee.equals=Ee.eq=function(e){return!this.cmp(e)};Ee.exponent=function(){return gn(this)};Ee.greaterThan=Ee.gt=function(e){return this.cmp(e)>0};Ee.greaterThanOrEqualTo=Ee.gte=function(e){return this.cmp(e)>=0};Ee.isInteger=Ee.isint=function(){return this.e>this.d.length-2};Ee.isNegative=Ee.isneg=function(){return this.s<0};Ee.isPositive=Ee.ispos=function(){return this.s>0};Ee.isZero=function(){return this.s===0};Ee.lessThan=Ee.lt=function(e){return this.cmp(e)<0};Ee.lessThanOrEqualTo=Ee.lte=function(e){return this.cmp(e)<1};Ee.logarithm=Ee.log=function(e){var t,n=this,r=n.constructor,a=r.precision,s=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ea))throw Error(Ca+"NaN");if(n.s<1)throw Error(Ca+(n.s?"NaN":"-Infinity"));return n.eq(ea)?new r(0):(Qt=!1,t=es(Uf(n,s),Uf(e,s),s),Qt=!0,Bt(t,a))};Ee.minus=Ee.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_6(t,e):j6(t,(e.s=-e.s,e))};Ee.modulo=Ee.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(Ca+"NaN");return n.s?(Qt=!1,t=es(n,e,0,1).times(e),Qt=!0,n.minus(t)):Bt(new r(n),a)};Ee.naturalExponential=Ee.exp=function(){return S6(this)};Ee.naturalLogarithm=Ee.ln=function(){return Uf(this)};Ee.negated=Ee.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Ee.plus=Ee.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?j6(t,e):_6(t,(e.s=-e.s,e))};Ee.precision=Ee.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(al+e);if(t=gn(a)+1,r=a.d.length-1,n=r*Xt+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Ee.squareRoot=Ee.sqrt=function(){var e,t,n,r,a,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Ca+"NaN")}for(e=gn(u),Qt=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=oi(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Vu((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(s=r,r=s.plus(es(u,s,l+2)).times(.5),oi(s.d).slice(0,l)===(t=oi(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Bt(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!="9999")break;l+=4}return Qt=!0,Bt(r,n)};Ee.times=Ee.mul=function(e){var t,n,r,a,s,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=s[a]+x[r]*g[a-r-1]+t,s[a--]=u%zn|0,t=u/zn|0;s[a]=(s[a]+t)%zn|0}for(;!s[--l];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,Qt?Bt(e,p.precision):e};Ee.toDecimalPlaces=Ee.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(vi(e,0,Wu),t===void 0?t=r.rounding:vi(t,0,8),Bt(n,e+gn(n)+1,t))};Ee.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=ml(r,!0):(vi(e,0,Wu),t===void 0?t=a.rounding:vi(t,0,8),r=Bt(new a(r),e+1,t),n=ml(r,!0,e+1)),n};Ee.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?ml(a):(vi(e,0,Wu),t===void 0?t=s.rounding:vi(t,0,8),r=Bt(new s(a),e+gn(a)+1,t),n=ml(r.abs(),!1,e+gn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Ee.toInteger=Ee.toint=function(){var e=this,t=e.constructor;return Bt(new t(e),gn(e)+1,t.rounding)};Ee.toNumber=function(){return+this};Ee.toPower=Ee.pow=function(e){var t,n,r,a,s,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ea);if(u=new d(u),!u.s){if(e.s<1)throw Error(Ca+"Infinity");return u}if(u.eq(ea))return u;if(r=d.precision,e.eq(ea))return Bt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,l){if((n=m<0?-m:m)<=w6){for(a=new d(ea),t=Math.ceil(r/Xt+4),Qt=!1;n%2&&(a=a.times(u),T$(a.d,t)),n=Vu(n/2),n!==0;)u=u.times(u),T$(u.d,t);return Qt=!0,e.s<0?new d(ea).div(a):Bt(a,r)}}else if(s<0)throw Error(Ca+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,Qt=!1,a=e.times(Uf(u,r+f)),Qt=!0,a=S6(a),a.s=s,a};Ee.toPrecision=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?(n=gn(a),r=ml(a,n<=s.toExpNeg||n>=s.toExpPos)):(vi(e,1,Wu),t===void 0?t=s.rounding:vi(t,0,8),a=Bt(new s(a),e,t),n=gn(a),r=ml(a,e<=n||n<=s.toExpNeg,e)),r};Ee.toSignificantDigits=Ee.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(vi(e,1,Wu),t===void 0?t=r.rounding:vi(t,0,8)),Bt(new r(n),e,t)};Ee.toString=Ee.valueOf=Ee.val=Ee.toJSON=Ee[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=gn(e),n=e.constructor;return ml(e,t<=n.toExpNeg||t>=n.toExpPos)};function j6(e,t){var n,r,a,s,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),Qt?Bt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),s=l-a,s){for(s<0?(r=d,s=-s,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/Xt),u=l>u?l+1:u+1,s>u&&(s=u,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(u=d.length,s=f.length,u-s<0&&(s=u,r=f,f=d,d=r),n=0;s;)n=(d[--s]=d[s]+f[s]+n)/zn|0,d[s]%=zn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,Qt?Bt(t,p):t}function vi(e,t,n){if(e!==~~e||en)throw Error(al+e)}function oi(e){var t,n,r,a=e.length-1,s="",l=e[0];if(a>0){for(s+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,s){for(var l=0;s--;)r[s]-=l,l=r[s]1;)r.shift()}return function(r,a,s,l){var u,d,f,m,p,g,x,j,w,b,N,E,O,A,C,k,T,M,R=r.constructor,L=r.s==a.s?1:-1,$=r.d,H=a.d;if(!r.s)return new R(r);if(!a.s)throw Error(Ca+"Division by zero");for(d=r.e-a.e,T=H.length,C=$.length,x=new R(L),j=x.d=[],f=0;H[f]==($[f]||0);)++f;if(H[f]>($[f]||0)&&--d,s==null?E=s=R.precision:l?E=s+(gn(r)-gn(a))+1:E=s,E<0)return new R(0);if(E=E/Xt+2|0,f=0,T==1)for(m=0,H=H[0],E++;(f1&&(H=e(H,m),$=e($,m),T=H.length,C=$.length),A=T,w=$.slice(0,T),b=w.length;b=zn/2&&++k;do m=0,u=t(H,w,T,b),u<0?(N=w[0],T!=b&&(N=N*zn+(w[1]||0)),m=N/k|0,m>1?(m>=zn&&(m=zn-1),p=e(H,m),g=p.length,b=w.length,u=t(p,w,g,b),u==1&&(m--,n(p,T16)throw Error(BO+gn(e));if(!e.s)return new m(ea);for(Qt=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Uo(2,f))/Math.LN10*2+5|0,u+=r,n=a=s=new m(ea),m.precision=u;;){if(a=Bt(a.times(e),u),n=n.times(++d),l=s.plus(es(a,n,u)),oi(l.d).slice(0,u)===oi(s.d).slice(0,u)){for(;f--;)s=Bt(s.times(s),u);return m.precision=p,t==null?(Qt=!0,Bt(s,p)):s}s=l}}function gn(e){for(var t=e.e*Xt,n=e.d[0];n>=10;n/=10)t++;return t}function mS(e,t,n){if(t>e.LN10.sd())throw Qt=!0,n&&(e.precision=n),Error(Ca+"LN10 precision limit exceeded");return Bt(new e(e.LN10),t)}function zs(e){for(var t="";e--;)t+="0";return t}function Uf(e,t){var n,r,a,s,l,u,d,f,m,p=1,g=10,x=e,j=x.d,w=x.constructor,b=w.precision;if(x.s<1)throw Error(Ca+(x.s?"NaN":"-Infinity"));if(x.eq(ea))return new w(0);if(t==null?(Qt=!1,f=b):f=t,x.eq(10))return t==null&&(Qt=!0),mS(w,f);if(f+=g,w.precision=f,n=oi(j),r=n.charAt(0),s=gn(x),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=oi(x.d),r=n.charAt(0),p++;s=gn(x),r>1?(x=new w("0."+n),s++):x=new w(r+"."+n.slice(1))}else return d=mS(w,f+2,b).times(s+""),x=Uf(new w(r+"."+n.slice(1)),f-g).plus(d),w.precision=b,t==null?(Qt=!0,Bt(x,b)):x;for(u=l=x=es(x.minus(ea),x.plus(ea),f),m=Bt(x.times(x),f),a=3;;){if(l=Bt(l.times(m),f),d=u.plus(es(l,new w(a),f)),oi(d.d).slice(0,f)===oi(u.d).slice(0,f))return u=u.times(2),s!==0&&(u=u.plus(mS(w,f+2,b).times(s+""))),u=es(u,new w(p),f),w.precision=b,t==null?(Qt=!0,Bt(u,b)):u;u=d,a+=2}}function A$(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Vu(n/Xt),e.d=[],r=(n+1)%Xt,n<0&&(r+=Xt),rGv||e.e<-Gv))throw Error(BO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Bt(e,t,n){var r,a,s,l,u,d,f,m,p=e.d;for(l=1,s=p[0];s>=10;s/=10)l++;if(r=t-l,r<0)r+=Xt,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/Xt),s=p.length,m>=s)return e;for(f=s=p[m],l=1;s>=10;s/=10)l++;r%=Xt,a=r-Xt+l}if(n!==void 0&&(s=Uo(10,l-a-1),u=f/s%10|0,d=t<0||p[m+1]!==void 0||f%s,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Uo(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(s=gn(e),p.length=1,t=t-s-1,p[0]=Uo(10,(Xt-t%Xt)%Xt),e.e=Vu(-t/Xt)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,s=1,m--):(p.length=m+1,s=Uo(10,Xt-r),p[m]=a>0?(f/Uo(10,l-a)%Uo(10,a)|0)*s:0),d)for(;;)if(m==0){(p[0]+=s)==zn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=zn)break;p[m--]=0,s=1}for(r=p.length;p[--r]===0;)p.pop();if(Qt&&(e.e>Gv||e.e<-Gv))throw Error(BO+gn(e));return e}function _6(e,t){var n,r,a,s,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),Qt?Bt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/Xt),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?s=s.charAt(0)+"."+s.slice(1)+zs(r):l>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+zs(-a-1)+s,n&&(r=n-l)>0&&(s+=zs(r))):a>=l?(s+=zs(a+1-l),n&&(r=n-a-1)>0&&(s=s+"."+zs(r))):((r=a+1)0&&(a+1===l&&(s+="."),s+=zs(r))),e.s<0?"-"+s:s}function T$(e,t){if(e.length>t)return e.length=t,!0}function N6(e){var t,n,r;function a(s){var l=this;if(!(l instanceof a))return new a(s);if(l.constructor=a,s instanceof a){l.s=s.s,l.e=s.e,l.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(al+s);if(s>0)l.s=1;else if(s<0)s=-s,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(s===~~s&&s<1e7){l.e=0,l.d=[s];return}return A$(l,s.toString())}else if(typeof s!="string")throw Error(al+s);if(s.charCodeAt(0)===45?(s=s.slice(1),l.s=-1):l.s=1,bse.test(s))A$(l,s);else throw Error(al+s)}if(a.prototype=Ee,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=N6,a.config=a.set=wse,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(al+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(al+n+": "+r);return this}var zO=N6(xse);ea=new zO(1);const Rt=zO;function jse(e){return Cse(e)||Nse(e)||_se(e)||Sse()}function Sse(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _se(e,t){if(e){if(typeof e=="string")return Z_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Z_(e,t)}}function Nse(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Cse(e){if(Array.isArray(e))return Z_(e)}function Z_(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,k$(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,s=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw s}}return n}}function qse(e){if(Array.isArray(e))return e}function T6(e){var t=Hf(e,2),n=t[0],r=t[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function k6(e,t,n){if(e.lte(0))return new Rt(0);var r=yy.getDigitCount(e.toNumber()),a=new Rt(10).pow(r),s=e.div(a),l=r!==1?.05:.1,u=new Rt(Math.ceil(s.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new Rt(Math.ceil(d))}function Fse(e,t,n){var r=1,a=new Rt(e);if(!a.isint()&&n){var s=Math.abs(e);s<1?(r=new Rt(10).pow(yy.getDigitCount(e)-1),a=new Rt(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new Rt(Math.floor(e)))}else e===0?a=new Rt(Math.floor((t-1)/2)):n||(a=new Rt(Math.floor(e)));var l=Math.floor((t-1)/2),u=Tse(Ase(function(d){return a.add(new Rt(d-l).mul(r)).toNumber()}),Q_);return u(0,t)}function M6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new Rt(0),tickMin:new Rt(0),tickMax:new Rt(0)};var s=k6(new Rt(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new Rt(0):(l=new Rt(e).add(t).div(2),l=l.sub(new Rt(l).mod(s)));var u=Math.ceil(l.sub(e).div(s).toNumber()),d=Math.ceil(new Rt(t).sub(l).div(s).toNumber()),f=u+d+1;return f>n?M6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:s,tickMin:l.sub(new Rt(u).mul(s)),tickMax:l.add(new Rt(d).mul(s))})}function Use(e){var t=Hf(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=T6([n,r]),d=Hf(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(eN(Q_(0,a-1).map(function(){return 1/0}))):[].concat(eN(Q_(0,a-1).map(function(){return-1/0})),[m]);return n>r?J_(p):p}if(f===m)return Fse(f,a,s);var g=M6(f,m,l,s),x=g.step,j=g.tickMin,w=g.tickMax,b=yy.rangeStep(j,w.add(new Rt(.1).mul(x)),x);return n>r?J_(b):b}function Hse(e,t){var n=Hf(e,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=T6([r,a]),u=Hf(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=k6(new Rt(f).sub(d).div(m-1),s,0),g=[].concat(eN(yy.rangeStep(new Rt(d),new Rt(f).sub(new Rt(.99).mul(p)),p)),[f]);return r>a?J_(g):g}var Wse=E6(Use),Vse=E6(Hse),Gse=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function fu(e){"@babel/helpers - typeof";return fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fu(e)}function Yv(){return Yv=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function eoe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function toe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function noe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var d=s.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(br(p-m)!==br(g-p)){var j=[];if(br(g-p)===br(d[1]-d[0])){x=g;var w=p+d[1]-d[0];j[0]=Math.min(w,(w+m)/2),j[1]=Math.max(w,(w+m)/2)}else{x=m;var b=g+d[1]-d[0];j[0]=Math.min(p,(b+p)/2),j[1]=Math.max(p,(b+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var E=Math.min(m,g),O=Math.max(m,g);if(t>(E+p)/2&&t<=(O+p)/2){l=a[f].index;break}}}else for(var A=0;A0&&A(r[A].coordinate+r[A-1].coordinate)/2&&t<=(r[A].coordinate+r[A+1].coordinate)/2||A===u-1&&t>(r[A].coordinate+r[A-1].coordinate)/2){l=r[A].index;break}return l},qO=function(t){var n,r=t,a=r.type.displayName,s=(n=t.type)!==null&&n!==void 0&&n.defaultProps?on(on({},t.type.defaultProps),t.props):t.props,l=s.stroke,u=s.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},xoe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var l={},u=Object.keys(s),d=0,f=u.length;d=0});if(N&&N.length){var E=N[0].type.defaultProps,O=E!==void 0?on(on({},E),N[0].props):N[0].props,A=O.barSize,C=O[b];l[C]||(l[C]=[]);var k=Ge(A)?n:A;l[C].push({item:N[0],stackList:N.slice(1),barSize:Ge(k)?void 0:wr(k,r,0)})}}return l},boe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,s=t.sizeList,l=s===void 0?[]:s,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=wr(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(A,C){return A+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var w=(a-j)/2>>0,b={offset:w-f,size:0};m=l.reduce(function(A,C){var k={item:C.item,position:{offset:b.offset+b.size+f,size:g?x:C.barSize}},T=[].concat(R$(A),[k]);return b=T[T.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:b})}),T},p)}else{var N=wr(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var E=(a-2*N-(d-1)*f)/d;E>1&&(E>>=0);var O=u===+u?Math.min(E,u):E;m=l.reduce(function(A,C,k){var T=[].concat(R$(A),[{item:C.item,position:{offset:N+(E+f)*k+(E-O)/2,size:O}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:T[T.length-1].position})}),T},p)}return m},woe=function(t,n,r,a){var s=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=$6({children:s,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,w=f.layout;if((w==="vertical"||w==="horizontal"&&j==="middle")&&x!=="center"&&Ce(t[x]))return on(on({},t),{},Wc({},x,t[x]+(p||0)));if((w==="horizontal"||w==="vertical"&&x==="center")&&j!=="middle"&&Ce(t[j]))return on(on({},t),{},Wc({},j,t[j]+(g||0)))}return t},joe=function(t,n,r){return Ge(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},I6=function(t,n,r,a,s){var l=n.props.children,u=na(l,Bh).filter(function(f){return joe(a,s,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=kn(m,r);if(Ge(p))return f;var g=Array.isArray(p)?[vy(p),py(p)]:[p,p],x=d.reduce(function(j,w){var b=kn(m,w,0),N=g[0]-Math.abs(Array.isArray(b)?b[0]:b),E=g[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(N,j[0]),Math.max(E,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},Soe=function(t,n,r,a,s){var l=n.map(function(u){return I6(t,u,r,s,a)}).filter(function(u){return!Ge(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},L6=function(t,n,r,a,s){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&I6(t,d,f,a)||_f(t,f,r,s)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?br(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=s?s.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!Mh(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:s?s[p]:p,index:g,offset:f}})},pS=new WeakMap,$p=function(t,n){if(typeof n!="function")return t;pS.has(t)||pS.set(t,new WeakMap);var r=pS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},q6=function(t,n,r){var a=t.scale,s=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:Lf(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:Uv(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Sf(),realScaleType:"point"}:s==="category"?{scale:Lf(),realScaleType:"band"}:{scale:Uv(),realScaleType:"linear"};if(dl(a)){var d="scale".concat(ey(a));return{scale:(b$[d]||Sf)(),realScaleType:b$[d]?d:"point"}}return We(a)?{scale:a}:{scale:Sf(),realScaleType:"point"}},$$=1e-4,F6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),s=Math.min(a[0],a[1])-$$,l=Math.max(a[0],a[1])+$$,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},_oe=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(t[u][r][0]=s,t[u][r][1]=s+d,s=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},Ooe=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},Eoe={sign:Coe,expand:pee,none:au,silhouette:vee,wiggle:gee,positive:Ooe},Aoe=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),s=Eoe[r],l=mee().keys(a).value(function(u,d){return+kn(u,d,0)}).order(P_).offset(s);return l(t)},Toe=function(t,n,r,a,s,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?on(on({},g.type.defaultProps),g.props):g.props,w=j.stackId,b=j.hide;if(b)return p;var N=j[r],E=p[N]||{hasStack:!1,stackGroups:{}};if(Mn(w)){var O=E.stackGroups[w]||{numericAxisId:r,cateAxisId:a,items:[]};O.items.push(g),E.hasStack=!0,E.stackGroups[w]=O}else E.stackGroups[Fu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return on(on({},p),{},Wc({},N,E))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(w,b){var N=x.stackGroups[b];return on(on({},w),{},Wc({},b,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:Aoe(t,N.items,s)}))},j)}return on(on({},p),{},Wc({},g,x))},m)},U6=function(t,n){var r=n.realScaleType,a=n.type,s=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(s&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=Wse(f,s,u);return t.domain([vy(m),py(m)]),{niceTicks:m}}if(s&&a==="number"){var p=t.domain(),g=Vse(p,s,u);return{niceTicks:g}}return null};function I$(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,s=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Ge(a[t.dataKey])){var u=Nv(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var d=kn(a,Ge(l)?t.dataKey:l);return Ge(d)?null:t.scale(d)}var L$=function(t){var n=t.axis,r=t.ticks,a=t.offset,s=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=kn(l,n.dataKey,n.domain[u]);return Ge(d)?null:n.scale(d)-s/2+a},koe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},Moe=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?on(on({},t.type.defaultProps),t.props):t.props,s=a.stackId;if(Mn(s)){var l=n[s];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},Poe=function(t){return t.reduce(function(n,r){return[vy(r.concat([n[0]]).filter(Ce)),py(r.concat([n[1]]).filter(Ce))]},[1/0,-1/0])},H6=function(t,n,r){return Object.keys(t).reduce(function(a,s){var l=t[s],u=l.stackedData,d=u.reduce(function(f,m){var p=Poe(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},B$=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,z$=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,aN=function(t,n,r){if(We(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ce(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(B$.test(t[0])){var s=+B$.exec(t[0])[1];a[0]=n[0]-s}else We(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ce(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(z$.test(t[1])){var l=+z$.exec(t[1])[1];a[1]=n[1]+l}else We(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},Xv=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var s=pO(n,function(p){return p.coordinate}),l=1/0,u=1,d=s.length;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},Foe=function(t,n,r,a,s){var l=t.width,u=t.height,d=t.startAngle,f=t.endAngle,m=wr(t.cx,l,l/2),p=wr(t.cy,u,u/2),g=G6(l,u,r),x=wr(t.innerRadius,g,0),j=wr(t.outerRadius,g,g*.8),w=Object.keys(n);return w.reduce(function(b,N){var E=n[N],O=E.domain,A=E.reversed,C;if(Ge(E.range))a==="angleAxis"?C=[d,f]:a==="radiusAxis"&&(C=[x,j]),A&&(C=[C[1],C[0]]);else{C=E.range;var k=C,T=$oe(k,2);d=T[0],f=T[1]}var M=q6(E,s),R=M.realScaleType,L=M.scale;L.domain(O).range(C),F6(L);var $=U6(L,Wi(Wi({},E),{},{realScaleType:R})),H=Wi(Wi(Wi({},E),$),{},{range:C,radius:j,realScaleType:R,scale:L,cx:m,cy:p,innerRadius:x,outerRadius:j,startAngle:d,endAngle:f});return Wi(Wi({},b),{},V6({},N,H))},{})},Uoe=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return Math.sqrt(Math.pow(r-s,2)+Math.pow(a-l,2))},Hoe=function(t,n){var r=t.x,a=t.y,s=n.cx,l=n.cy,u=Uoe({x:r,y:a},{x:s,y:l});if(u<=0)return{radius:u};var d=(r-s)/u,f=Math.acos(d);return a>l&&(f=2*Math.PI-f),{radius:u,angle:qoe(f),angleInRadian:f}},Woe=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),l=Math.min(a,s);return{startAngle:n-l*360,endAngle:r-l*360}},Voe=function(t,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),l=Math.floor(a/360),u=Math.min(s,l);return t+u*360},H$=function(t,n){var r=t.x,a=t.y,s=Hoe({x:r,y:a},n),l=s.radius,u=s.angle,d=n.innerRadius,f=n.outerRadius;if(lf)return!1;if(l===0)return!0;var m=Woe(n),p=m.startAngle,g=m.endAngle,x=u,j;if(p<=g){for(;x>g;)x-=360;for(;x=p&&x<=g}else{for(;x>p;)x-=360;for(;x=g&&x<=p}return j?Wi(Wi({},n),{},{radius:l,angle:Voe(x,n)}):null},Y6=function(t){return!y.isValidElement(t)&&!We(t)&&typeof t!="boolean"?t.className:""};function Yf(e){"@babel/helpers - typeof";return Yf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yf(e)}var Goe=["offset"];function Yoe(e){return Qoe(e)||Zoe(e)||Xoe(e)||Koe()}function Koe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Xoe(e,t){if(e){if(typeof e=="string")return iN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return iN(e,t)}}function Zoe(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Qoe(e){if(Array.isArray(e))return iN(e)}function iN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ele(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function W$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Tn(e){for(var t=1;t=0?1:-1,O,A;a==="insideStart"?(O=x+E*l,A=w):a==="insideEnd"?(O=j-E*l,A=!w):a==="end"&&(O=j+E*l,A=w),A=N<=0?A:!A;var C=Gt(f,m,b,O),k=Gt(f,m,b,O+(A?1:-1)*359),T="M".concat(C.x,",").concat(C.y,` - A`).concat(b,",").concat(b,",0,1,").concat(A?0:1,`, - `).concat(k.x,",").concat(k.y),M=Ge(t.id)?Fu("recharts-radial-line-"):t.id;return W.createElement("text",Kf({},r,{dominantBaseline:"central",className:Ye("recharts-radial-bar-label",u)}),W.createElement("defs",null,W.createElement("path",{id:M,d:T})),W.createElement("textPath",{xlinkHref:"#".concat(M)},n))},ole=function(t){var n=t.viewBox,r=t.offset,a=t.position,s=n,l=s.cx,u=s.cy,d=s.innerRadius,f=s.outerRadius,m=s.startAngle,p=s.endAngle,g=(m+p)/2;if(a==="outside"){var x=Gt(l,u,f+r,g),j=x.x,w=x.y;return{x:j,y:w,textAnchor:j>=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var b=(d+f)/2,N=Gt(l,u,b,g),E=N.x,O=N.y;return{x:E,y:O,textAnchor:"middle",verticalAnchor:"middle"}},lle=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,s=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",w=f>=0?1:-1,b=w*a,N=w>0?"end":"start",E=w>0?"start":"end";if(s==="top"){var O={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return Tn(Tn({},O),r?{height:Math.max(d-r.y,0),width:f}:{})}if(s==="bottom"){var A={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return Tn(Tn({},A),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(s==="left"){var C={x:u-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return Tn(Tn({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(s==="right"){var k={x:u+f+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"};return Tn(Tn({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var T=r?{width:f,height:m}:{};return s==="insideLeft"?Tn({x:u+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"},T):s==="insideRight"?Tn({x:u+f-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},T):s==="insideTop"?Tn({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},T):s==="insideBottom"?Tn({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},T):s==="insideTopLeft"?Tn({x:u+b,y:d+g,textAnchor:E,verticalAnchor:j},T):s==="insideTopRight"?Tn({x:u+f-b,y:d+g,textAnchor:N,verticalAnchor:j},T):s==="insideBottomLeft"?Tn({x:u+b,y:d+m-g,textAnchor:E,verticalAnchor:x},T):s==="insideBottomRight"?Tn({x:u+f-b,y:d+m-g,textAnchor:N,verticalAnchor:x},T):qu(s)&&(Ce(s.x)||Go(s.x))&&(Ce(s.y)||Go(s.y))?Tn({x:u+wr(s.x,f),y:d+wr(s.y,m),textAnchor:"end",verticalAnchor:"end"},T):Tn({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},T)},cle=function(t){return"cx"in t&&Ce(t.cx)};function qn(e){var t=e.offset,n=t===void 0?5:t,r=Joe(e,Goe),a=Tn({offset:n},r),s=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!s||Ge(u)&&Ge(d)&&!y.isValidElement(f)&&!We(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(We(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=ale(a);var j=cle(s),w=Be(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return sle(a,x,w);var b=j?ole(a):lle(a);return W.createElement(hl,Kf({className:Ye("recharts-label",p)},w,b,{breakAll:g}),x)}qn.displayName="Label";var K6=function(t){var n=t.cx,r=t.cy,a=t.angle,s=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,w=t.width,b=t.height,N=t.clockWise,E=t.labelViewBox;if(E)return E;if(Ce(w)&&Ce(b)){if(Ce(p)&&Ce(g))return{x:p,y:g,width:w,height:b};if(Ce(x)&&Ce(j))return{x,y:j,width:w,height:b}}return Ce(p)&&Ce(g)?{x:p,y:g,width:0,height:0}:Ce(n)&&Ce(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},ule=function(t,n){return t?t===!0?W.createElement(qn,{key:"label-implicit",viewBox:n}):Mn(t)?W.createElement(qn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===qn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(qn,{key:"label-implicit",content:t,viewBox:n}):We(t)?W.createElement(qn,{key:"label-implicit",content:t,viewBox:n}):qu(t)?W.createElement(qn,Kf({viewBox:n},t,{key:"label-implicit"})):null:null},dle=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,s=K6(t),l=na(a,qn).map(function(d,f){return y.cloneElement(d,{viewBox:n||s,key:"label-".concat(f)})});if(!r)return l;var u=ule(t.label,n||s);return[u].concat(Yoe(l))};qn.parseViewBox=K6;qn.renderCallByParent=dle;var vS,V$;function fle(){if(V$)return vS;V$=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return vS=e,vS}var hle=fle();const mle=St(hle);function Xf(e){"@babel/helpers - typeof";return Xf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xf(e)}var ple=["valueAccessor"],vle=["data","dataKey","clockWise","id","textBreakAll"];function gle(e){return wle(e)||ble(e)||xle(e)||yle()}function yle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xle(e,t){if(e){if(typeof e=="string")return sN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return sN(e,t)}}function ble(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function wle(e){if(Array.isArray(e))return sN(e)}function sN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Nle(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Cle=function(t){return Array.isArray(t.value)?mle(t.value):t.value};function ts(e){var t=e.valueAccessor,n=t===void 0?Cle:t,r=K$(e,ple),a=r.data,s=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=K$(r,vle);return!a||!a.length?null:W.createElement(pt,{className:"recharts-label-list"},a.map(function(m,p){var g=Ge(s)?n(m,p):kn(m&&m.payload,s),x=Ge(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(qn,Qv({},Be(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:qn.parseViewBox(Ge(l)?m:Y$(Y$({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}ts.displayName="LabelList";function Ole(e,t){return e?e===!0?W.createElement(ts,{key:"labelList-implicit",data:t}):W.isValidElement(e)||We(e)?W.createElement(ts,{key:"labelList-implicit",data:t,content:e}):qu(e)?W.createElement(ts,Qv({data:t},e,{key:"labelList-implicit"})):null:null}function Ele(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=na(r,ts).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var s=Ole(e.label,t);return[s].concat(gle(a))}ts.renderCallByParent=Ele;function Zf(e){"@babel/helpers - typeof";return Zf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zf(e)}function oN(){return oN=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(l>f),`, - `).concat(p.x,",").concat(p.y,` - `);if(a>0){var x=Gt(n,r,a,l),j=Gt(n,r,a,f);g+="L ".concat(j.x,",").concat(j.y,` - A `).concat(a,",").concat(a,`,0, - `).concat(+(Math.abs(d)>180),",").concat(+(l<=f),`, - `).concat(x.x,",").concat(x.y," Z")}else g+="L ".concat(n,",").concat(r," Z");return g},Ple=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,s=t.outerRadius,l=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,m=t.endAngle,p=br(m-f),g=Ip({cx:n,cy:r,radius:s,angle:f,sign:p,cornerRadius:l,cornerIsExternal:d}),x=g.circleTangency,j=g.lineTangency,w=g.theta,b=Ip({cx:n,cy:r,radius:s,angle:m,sign:-p,cornerRadius:l,cornerIsExternal:d}),N=b.circleTangency,E=b.lineTangency,O=b.theta,A=d?Math.abs(f-m):Math.abs(f-m)-w-O;if(A<0)return u?"M ".concat(j.x,",").concat(j.y,` - a`).concat(l,",").concat(l,",0,0,1,").concat(l*2,`,0 - a`).concat(l,",").concat(l,",0,0,1,").concat(-l*2,`,0 - `):X6({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:f,endAngle:m});var C="M ".concat(j.x,",").concat(j.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(x.x,",").concat(x.y,` - A`).concat(s,",").concat(s,",0,").concat(+(A>180),",").concat(+(p<0),",").concat(N.x,",").concat(N.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(E.x,",").concat(E.y,` - `);if(a>0){var k=Ip({cx:n,cy:r,radius:a,angle:f,sign:p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),T=k.circleTangency,M=k.lineTangency,R=k.theta,L=Ip({cx:n,cy:r,radius:a,angle:m,sign:-p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),$=L.circleTangency,H=L.lineTangency,V=L.theta,F=d?Math.abs(f-m):Math.abs(f-m)-R-V;if(F<0&&l===0)return"".concat(C,"L").concat(n,",").concat(r,"Z");C+="L".concat(H.x,",").concat(H.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat($.x,",").concat($.y,` - A`).concat(a,",").concat(a,",0,").concat(+(F>180),",").concat(+(p>0),",").concat(T.x,",").concat(T.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(M.x,",").concat(M.y,"Z")}else C+="L".concat(n,",").concat(r,"Z");return C},Rle={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},Z6=function(t){var n=Z$(Z$({},Rle),t),r=n.cx,a=n.cy,s=n.innerRadius,l=n.outerRadius,u=n.cornerRadius,d=n.forceCornerRadius,f=n.cornerIsExternal,m=n.startAngle,p=n.endAngle,g=n.className;if(l0&&Math.abs(m-p)<360?b=Ple({cx:r,cy:a,innerRadius:s,outerRadius:l,cornerRadius:Math.min(w,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):b=X6({cx:r,cy:a,innerRadius:s,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",oN({},Be(n,!0),{className:x,d:b,role:"img"}))};function Qf(e){"@babel/helpers - typeof";return Qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qf(e)}function lN(){return lN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function Jle(e,t){return Cl(e.getTime(),t.getTime())}function ece(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function tce(e,t){return e===t}function l3(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.entries(),l,u,d=0;(l=s.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var nce=Cl;function rce(e,t,n){var r=o3(e),a=r.length;if(o3(t).length!==a)return!1;for(;a-- >0;)if(!Q6(e,t,n,r[a]))return!1;return!0}function sf(e,t,n){var r=i3(e),a=r.length;if(i3(t).length!==a)return!1;for(var s,l,u;a-- >0;)if(s=r[a],!Q6(e,t,n,s)||(l=s3(e,s),u=s3(t,s),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function ace(e,t){return Cl(e.valueOf(),t.valueOf())}function ice(e,t){return e.source===t.source&&e.flags===t.flags}function c3(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.values(),l,u;(l=s.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function sce(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function oce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function Q6(e,t,n,r){return(r===Zle||r===Xle||r===Kle)&&(e.$$typeof||t.$$typeof)?!0:Yle(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var lce="[object Arguments]",cce="[object Boolean]",uce="[object Date]",dce="[object Error]",fce="[object Map]",hce="[object Number]",mce="[object Object]",pce="[object RegExp]",vce="[object Set]",gce="[object String]",yce="[object URL]",xce=Array.isArray,u3=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,d3=Object.assign,bce=Object.prototype.toString.call.bind(Object.prototype.toString);function wce(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,s=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(w,b,N){if(w===b)return!0;if(w==null||b==null)return!1;var E=typeof w;if(E!==typeof b)return!1;if(E!=="object")return E==="number"?l(w,b,N):E==="function"?a(w,b,N):!1;var O=w.constructor;if(O!==b.constructor)return!1;if(O===Object)return u(w,b,N);if(xce(w))return t(w,b,N);if(u3!=null&&u3(w))return p(w,b,N);if(O===Date)return n(w,b,N);if(O===RegExp)return f(w,b,N);if(O===Map)return s(w,b,N);if(O===Set)return m(w,b,N);var A=bce(w);if(A===uce)return n(w,b,N);if(A===pce)return f(w,b,N);if(A===fce)return s(w,b,N);if(A===vce)return m(w,b,N);if(A===mce)return typeof w.then!="function"&&typeof b.then!="function"&&u(w,b,N);if(A===yce)return g(w,b,N);if(A===dce)return r(w,b,N);if(A===lce)return u(w,b,N);if(A===cce||A===hce||A===gce)return d(w,b,N);if(x){var C=x[A];if(!C){var k=Gle(w);k&&(C=x[k])}if(C)return C(w,b,N)}return!1}}function jce(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?sf:Qle,areDatesEqual:Jle,areErrorsEqual:ece,areFunctionsEqual:tce,areMapsEqual:r?a3(l3,sf):l3,areNumbersEqual:nce,areObjectsEqual:r?sf:rce,arePrimitiveWrappersEqual:ace,areRegExpsEqual:ice,areSetsEqual:r?a3(c3,sf):c3,areTypedArraysEqual:r?sf:sce,areUrlsEqual:oce,unknownTagComparators:void 0};if(n&&(a=d3({},a,n(a))),t){var s=Bp(a.areArraysEqual),l=Bp(a.areMapsEqual),u=Bp(a.areObjectsEqual),d=Bp(a.areSetsEqual);a=d3({},a,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function Sce(e){return function(t,n,r,a,s,l,u){return e(t,n,u)}}function _ce(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,s=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:s})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:s})};var l={cache:void 0,equals:a,meta:void 0,strict:s};return function(d,f){return n(d,f,l)}}var Nce=lo();lo({strict:!0});lo({circular:!0});lo({circular:!0,strict:!0});lo({createInternalComparator:function(){return Cl}});lo({strict:!0,createInternalComparator:function(){return Cl}});lo({circular:!0,createInternalComparator:function(){return Cl}});lo({circular:!0,createInternalComparator:function(){return Cl},strict:!0});function lo(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,s=e.strict,l=s===void 0?!1:s,u=jce(e),d=wce(u),f=r?r(d):Sce(d);return _ce({circular:n,comparator:d,createState:a,equals:f,strict:l})}function Cce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function f3(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>t?(e(s),n=-1):Cce(a)};requestAnimationFrame(r)}function cN(e){"@babel/helpers - typeof";return cN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cN(e)}function Oce(e){return kce(e)||Tce(e)||Ace(e)||Ece()}function Ece(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ace(e,t){if(e){if(typeof e=="string")return h3(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return h3(e,t)}}function h3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},w=function(N){for(var E=N>1?1:N,O=E,A=0;A<8;++A){var C=p(O)-E,k=x(O);if(Math.abs(C-E)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,s=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*s,w=g+(x-j)*u/1e3,b=g*u/1e3+m;return Math.abs(b-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function lue(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,s;for(s=0;s=0)&&(n[a]=e[a]);return n}function bS(e){return fue(e)||due(e)||uue(e)||cue()}function cue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uue(e,t){if(e){if(typeof e=="string")return mN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return mN(e,t)}}function due(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function fue(e){if(Array.isArray(e))return mN(e)}function mN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ng(e){return ng=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},ng(e)}var gi=(function(e){gue(n,e);var t=yue(n);function n(r,a){var s;hue(this,n),s=t.call(this,r,a);var l=s.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(s.handleStyleChange=s.handleStyleChange.bind(gN(s)),s.changeStyle=s.changeStyle.bind(gN(s)),!u||x<=0)return s.state={style:{}},typeof g=="function"&&(s.state={style:m}),vN(s);if(p&&p.length)s.state={style:p[0].style};else if(f){if(typeof g=="function")return s.state={style:f},vN(s);s.state={style:d?hf({},d,f):f}}else s.state={style:{}};return s}return pue(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,l=a.canBegin;this.mounted=!0,!(!s||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,l=s.isActive,u=s.canBegin,d=s.attributeName,f=s.shouldReAnimate,m=s.to,p=s.from,g=this.state.style;if(u){if(!l){var x={style:d?hf({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(Nce(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=j||f?p:a.to;if(this.state&&g){var b={style:d?hf({},d,w):w};(d&&g[d]!==w||!d&&g!==w)&&this.setState(b)}this.runAnimation(Pa(Pa({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=iue(l,u,Yce(f),d,this.changeStyle),j=function(){s.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var s=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(w,b,N){if(N===0)return w;var E=b.duration,O=b.easing,A=O===void 0?"ease":O,C=b.style,k=b.properties,T=b.onAnimationEnd,M=N>0?l[N-1]:b,R=k||Object.keys(C);if(typeof A=="function"||A==="spring")return[].concat(bS(w),[s.runJSAnimation.bind(s,{from:M.style,to:C,duration:E,easing:A}),E]);var L=v3(R,E,A),$=Pa(Pa(Pa({},M.style),C),{},{transition:L});return[].concat(bS(w),[$,E,T]).filter($ce)};return this.manager.start([d].concat(bS(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=Mce());var s=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var w=u?hf({},u,d):d,b=v3(Object.keys(w),l,f);j.start([m,s,Pa(Pa({},w),{},{transition:b}),l,p])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=oue(a,sue),f=y.Children.count(s),m=this.state.style;if(typeof s=="function")return s(m);if(!u||f===0||l<=0)return s;var p=function(x){var j=x.props,w=j.style,b=w===void 0?{}:w,N=j.className,E=y.cloneElement(x,Pa(Pa({},d),{},{style:Pa(Pa({},b),m),className:N}));return E};return f===1?p(y.Children.only(s)):W.createElement("div",null,y.Children.map(s,function(g){return p(g)}))}}]),n})(y.PureComponent);gi.displayName="Animate";gi.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};gi.propTypes={from:bt.oneOfType([bt.object,bt.string]),to:bt.oneOfType([bt.object,bt.string]),attributeName:bt.string,duration:bt.number,begin:bt.number,easing:bt.oneOfType([bt.string,bt.func]),steps:bt.arrayOf(bt.shape({duration:bt.number.isRequired,style:bt.object.isRequired,easing:bt.oneOfType([bt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),bt.func]),properties:bt.arrayOf("string"),onAnimationEnd:bt.func})),children:bt.oneOfType([bt.node,bt.func]),isActive:bt.bool,canBegin:bt.bool,onAnimationEnd:bt.func,shouldReAnimate:bt.bool,onAnimationStart:bt.func,onAnimationReStart:bt.func};function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function rg(){return rg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,d=r>=0?1:-1,f=a>=0&&r>=0||a<0&&r<0?1:0,m;if(l>0&&s instanceof Array){for(var p=[0,0,0,0],g=0,x=4;gl?l:s[g];m="M".concat(t,",").concat(n+u*p[0]),p[0]>0&&(m+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(f,",").concat(t+d*p[0],",").concat(n)),m+="L ".concat(t+r-d*p[1],",").concat(n),p[1]>0&&(m+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(f,`, - `).concat(t+r,",").concat(n+u*p[1])),m+="L ".concat(t+r,",").concat(n+a-u*p[2]),p[2]>0&&(m+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(f,`, - `).concat(t+r-d*p[2],",").concat(n+a)),m+="L ".concat(t+d*p[3],",").concat(n+a),p[3]>0&&(m+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(f,`, - `).concat(t,",").concat(n+a-u*p[3])),m+="Z"}else if(l>0&&s===+s&&s>0){var j=Math.min(l,s);m="M ".concat(t,",").concat(n+u*j,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+d*j,",").concat(n,` - L `).concat(t+r-d*j,",").concat(n,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r,",").concat(n+u*j,` - L `).concat(t+r,",").concat(n+a-u*j,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r-d*j,",").concat(n+a,` - L `).concat(t+d*j,",").concat(n+a,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t,",").concat(n+a-u*j," Z")}else m="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return m},Eue=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,s=n.x,l=n.y,u=n.width,d=n.height;if(Math.abs(u)>0&&Math.abs(d)>0){var f=Math.min(s,s+u),m=Math.max(s,s+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},Aue={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},FO=function(t){var n=_3(_3({},Aue),t),r=y.useRef(),a=y.useState(-1),s=bue(a,2),l=s[0],u=s[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var A=r.current.getTotalLength();A&&u(A)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,w=n.animationDuration,b=n.animationBegin,N=n.isAnimationActive,E=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var O=Ye("recharts-rectangle",x);return E?W.createElement(gi,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:w,animationEasing:j,isActive:E},function(A){var C=A.width,k=A.height,T=A.x,M=A.y;return W.createElement(gi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,isActive:N,easing:j},W.createElement("path",rg({},Be(n,!0),{className:O,d:N3(T,M,C,k,g),ref:r})))}):W.createElement("path",rg({},Be(n,!0),{className:O,d:N3(d,f,m,p,g)}))},Tue=["points","className","baseLinePoints","connectNulls"];function Bc(){return Bc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Mue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function C3(e){return $ue(e)||Due(e)||Rue(e)||Pue()}function Pue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Rue(e,t){if(e){if(typeof e=="string")return yN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return yN(e,t)}}function Due(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function $ue(e){if(Array.isArray(e))return yN(e)}function yN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){O3(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),O3(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Cf=function(t,n){var r=Iue(t);n&&(r=[r.reduce(function(s,l){return[].concat(C3(s),C3(l))},[])]);var a=r.map(function(s){return s.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},Lue=function(t,n,r){var a=Cf(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Cf(n.reverse(),r).slice(1))},Bue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,s=t.connectNulls,l=kue(t,Tue);if(!n||!n.length)return null;var u=Ye("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=Lue(n,a,s);return W.createElement("g",{className:u},W.createElement("path",Bc({},Be(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Bc({},Be(l,!0),{fill:"none",d:Cf(n,s)})):null,d?W.createElement("path",Bc({},Be(l,!0),{fill:"none",d:Cf(a,s)})):null)}var m=Cf(n,s);return W.createElement("path",Bc({},Be(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function xN(){return xN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Vue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Gue=function(t,n,r,a,s,l){return"M".concat(t,",").concat(s,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},Yue=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,w=Wue(t,zue),b=que({x:r,y:s,top:u,left:f,width:p,height:x},w);return!Ce(r)||!Ce(s)||!Ce(p)||!Ce(x)||!Ce(u)||!Ce(f)?null:W.createElement("path",bN({},Be(b,!0),{className:Ye("recharts-cross",j),d:Gue(r,s,p,x,u,f)}))},wS,A3;function Kue(){if(A3)return wS;A3=1;var e=my(),t=x6(),n=wi();function r(a,s){return a&&a.length?e(a,n(s,2),t):void 0}return wS=r,wS}var Xue=Kue();const Zue=St(Xue);var jS,T3;function Que(){if(T3)return jS;T3=1;var e=my(),t=wi(),n=b6();function r(a,s){return a&&a.length?e(a,t(s,2),n):void 0}return jS=r,jS}var Jue=Que();const ede=St(Jue);var tde=["cx","cy","angle","ticks","axisLine"],nde=["ticks","tick","angle","tickFormatter","stroke"];function mu(e){"@babel/helpers - typeof";return mu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mu(e)}function Of(){return Of=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function rde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ade(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P3(e,t){for(var n=0;n$3?l=a==="outer"?"start":"end":s<-$3?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,s=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=qo(qo({},Be(this.props,!1)),{},{fill:"none"},Be(u,!1));if(d==="circle")return W.createElement(xy,Wo({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:s,r:l}));var m=this.props.ticks,p=m.map(function(g){return Gt(a,s,l,g.coordinate)});return W.createElement(Bue,Wo({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,s=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=Be(this.props,!1),p=Be(l,!1),g=qo(qo({},m),{},{fill:"none"},Be(u,!1)),x=s.map(function(j,w){var b=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),E=qo(qo(qo({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:w,payload:j,x:b.x2,y:b.y2});return W.createElement(pt,Wo({className:Ye("recharts-polar-angle-axis-tick",Y6(l)),key:"tick-".concat(j.coordinate)},fl(r.props,j,w)),u&&W.createElement("line",Wo({className:"recharts-polar-angle-axis-tick-line"},g,b)),l&&t.renderTickItem(l,E,d?d(j.value,w):j.value))});return W.createElement(pt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,s=r.radius,l=r.axisLine;return s<=0||!a||!a.length?null:W.createElement(pt,{className:Ye("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,s){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):We(r)?l=r(a):l=W.createElement(hl,Wo({},a,{className:"recharts-polar-angle-axis-tick-value"}),s),l}}])})(y.PureComponent);jy(Sy,"displayName","PolarAngleAxis");jy(Sy,"axisType","angleAxis");jy(Sy,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var SS,I3;function xde(){if(I3)return SS;I3=1;var e=yz(),t=e(Object.getPrototypeOf,Object);return SS=t,SS}var _S,L3;function bde(){if(L3)return _S;L3=1;var e=ls(),t=xde(),n=cs(),r="[object Object]",a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return _S=f,_S}var wde=bde();const jde=St(wde);var NS,B3;function Sde(){if(B3)return NS;B3=1;var e=ls(),t=cs(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return NS=r,NS}var _de=Sde();const Nde=St(_de);function rh(e){"@babel/helpers - typeof";return rh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rh(e)}function sg(){return sg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:w,animationEasing:j,isActive:N},function(O){var A=O.upperWidth,C=O.lowerWidth,k=O.height,T=O.x,M=O.y;return W.createElement(gi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,easing:j},W.createElement("path",sg({},Be(n,!0),{className:E,d:U3(T,M,A,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",sg({},Be(n,!0),{className:E,d:U3(d,f,m,p,g)})))},$de=["option","shapeType","propTransformer","activeClassName","isActive"];function ah(e){"@babel/helpers - typeof";return ah=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ah(e)}function Ide(e,t){if(e==null)return{};var n=Lde(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function H3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function og(e){for(var t=1;t0?ta(O,"paddingAngle",0):0;if(C){var T=Qr(C.endAngle-C.startAngle,O.endAngle-O.startAngle),M=Ut(Ut({},O),{},{startAngle:E+k,endAngle:E+T(w)+k});b.push(M),E=M.endAngle}else{var R=O.endAngle,L=O.startAngle,$=Qr(0,R-L),H=$(w),V=Ut(Ut({},O),{},{startAngle:E+k,endAngle:E+H+k});b.push(V),E=V.endAngle}}),W.createElement(pt,null,r.renderSectorsStatically(b))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(s){if(!s.altKey)switch(s.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,s=r.isAnimationActive,l=this.state.prevSectors;return s&&a&&a.length&&(!l||!Lh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,s=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(s||!l||!l.length||!Ce(f)||!Ce(m)||!Ce(p)||!Ce(g))return null;var w=Ye("recharts-pie",u);return W.createElement(pt,{tabIndex:this.props.rootTabIndex,className:w,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),qn.renderCallByParent(this.props,null,!1),(!x||j)&&ts.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r=360?E:E-1)*d,A=b-E*x-O,C=a.reduce(function(M,R){var L=kn(R,N,0);return M+(Ce(L)?L:0)},0),k;if(C>0){var T;k=a.map(function(M,R){var L=kn(M,N,0),$=kn(M,m,R),H=(Ce(L)?L:0)/C,V;R?V=T.endAngle+br(w)*d*(L!==0?1:0):V=l;var F=V+br(w)*((L!==0?x:0)+H*A),G=(V+F)/2,B=(j.innerRadius+j.outerRadius)/2,D=[{name:$,value:L,payload:M,dataKey:N,type:g}],U=Gt(j.cx,j.cy,B,G);return T=Ut(Ut(Ut({percent:H,cornerRadius:s,name:$,tooltipPayload:D,midAngle:G,middleRadius:B,tooltipPosition:U},M),j),{},{value:kn(M,N),startAngle:V,endAngle:F,payload:M,paddingAngle:br(w)*d}),T})}return Ut(Ut({},j),{},{sectors:k,data:a})});var CS,Y3;function ife(){if(Y3)return CS;Y3=1;var e=Math.ceil,t=Math.max;function n(r,a,s,l){for(var u=-1,d=t(e((a-r)/(s||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=s;return f}return CS=n,CS}var OS,K3;function fq(){if(K3)return OS;K3=1;var e=Rz(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var s=a<0?-1:1;return s*n}return a===a?a:0}return OS=r,OS}var ES,X3;function sfe(){if(X3)return ES;X3=1;var e=ife(),t=sy(),n=fq();function r(a){return function(s,l,u){return u&&typeof u!="number"&&t(s,l,u)&&(l=u=void 0),s=n(s),l===void 0?(l=s,s=0):l=n(l),u=u===void 0?s0&&r.handleDrag(a.changedTouches[0])}),Yr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:s,startIndex:u})}),r.detachDragEndListener()}),Yr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Yr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Yr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Yr(r,"handleSlideDragStart",function(a){var s=nI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return yfe(t,e),mfe(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,s),g=Math.max(a,s),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,l=a.tickFormatter,u=a.dataKey,d=kn(s[r],u,r);return We(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,w=r.pageX-s;w>0?w=Math.min(w,f+m-p-u,f+m-p-l):w<0&&(w=Math.max(w,f-l,f-u));var b=this.getIndex({startX:l+w,endX:u+w});(b.startIndex!==g||b.endIndex!==x)&&j&&j(b),this.setState({startX:l+w,endX:u+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=nI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,w=m.gap,b=m.data,N={startX:this.state.startX,endX:this.state.endX},E=r.pageX-s;E>0?E=Math.min(E,p+g-x-f):E<0&&(E=Math.max(E,p-f)),N[l]=f+E;var O=this.getIndex(N),A=O.startIndex,C=O.endIndex,k=function(){var M=b.length-1;return l==="startX"&&(u>d?A%w===0:C%w===0)||ud?C%w===0:A%w===0)||u>d&&C===M};this.setState(Yr(Yr({},l,f+E),"brushMoveStartX",r.pageX),function(){j&&k()&&j(O)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Yr({},a,x),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:s,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:s,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,w=d.startIndex,b=d.endIndex,N=Math.max(r,this.props.x),E=TS(TS({},Be(this.props,!1)),{},{x:N,y:f,width:m,height:p}),O=x||"Min value: ".concat((s=j[w])===null||s===void 0?void 0:s.name,", Max value: ").concat((l=j[b])===null||l===void 0?void 0:l.name);return W.createElement(pt,{tabIndex:0,role:"slider","aria-label":O,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,E))}},{key:"renderSlide",value:function(r,a){var s=this.props,l=s.y,u=s.height,d=s.stroke,f=s.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(pt,{className:"recharts-brush-texts"},W.createElement(hl,ug({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(hl,ug({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,w=g.isTextActive,b=g.isSlideMoving,N=g.isTravellerMoving,E=g.isTravellerFocused;if(!a||!a.length||!Ce(u)||!Ce(d)||!Ce(f)||!Ce(m)||f<=0||m<=0)return null;var O=Ye("recharts-brush",s),A=W.Children.count(l)===1,C=ffe("userSelect","none");return W.createElement(pt,{className:O,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(w||b||N||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(s+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:s,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return W.isValidElement(r)?s=W.cloneElement(r,a):We(r)?s=r(a):s=t.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(s!==a.prevData||f!==a.prevUpdateId)return TS({prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},s&&s.length?bfe({data:s,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,l=0,u=s-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Yr(yu,"displayName","Brush");Yr(yu,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var kS,rI;function wfe(){if(rI)return kS;rI=1;var e=mO();function t(n,r){var a;return e(n,function(s,l,u){return a=r(s,l,u),!a}),!!a}return kS=t,kS}var MS,aI;function jfe(){if(aI)return MS;aI=1;var e=dz(),t=wi(),n=wfe(),r=Lr(),a=sy();function s(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return MS=s,MS}var Sfe=jfe();const _fe=St(Sfe);var hi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},PS,iI;function Nfe(){if(iI)return PS;iI=1;var e=Az();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return PS=t,PS}var RS,sI;function Cfe(){if(sI)return RS;sI=1;var e=Nfe(),t=Oz(),n=wi();function r(a,s){var l={};return s=n(s,3),t(a,function(u,d,f){e(l,d,s(u,d,f))}),l}return RS=r,RS}var Ofe=Cfe();const Efe=St(Ofe);var DS,oI;function Afe(){if(oI)return DS;oI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Bfe(e,t){var n=e.x,r=e.y,a=Ife(e,Pfe),s="".concat(n),l=parseInt(s,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return of(of(of(of(of({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function dI(e){return W.createElement(cq,NN({shapeType:"rectangle",propTransformer:Bfe,activeClassName:"recharts-active-bar"},e))}var zfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var s=Ce(r)||cJ(r);return s?t(r,a):(s||ur(!1),n)}},qfe=["value","background"],gq;function xu(e){"@babel/helpers - typeof";return xu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},xu(e)}function Ffe(e,t){if(e==null)return{};var n=Ufe(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ufe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function fg(){return fg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(F)0&&(V=Math.min((ne||0)-(F[se-1]||0),V))}),Number.isFinite(V)){var G=V/H,B=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(T=G*B/2),w.padding==="no-gap"){var D=wr(t.barCategoryGap,G*B),U=G*B/2;T=U-D-(U-D)/B*D}}}a==="xAxis"?M=[r.left+(O.left||0)+(T||0),r.left+r.width-(O.right||0)-(T||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(O.bottom||0),r.top+(O.top||0)]:[r.top+(O.top||0)+(T||0),r.top+r.height-(O.bottom||0)-(T||0)]:M=w.range,C&&(M=[M[1],M[0]]);var K=q6(w,s,g),te=K.scale,I=K.realScaleType;te.domain(N).range(M),F6(te);var z=U6(te,Ia(Ia({},w),{},{realScaleType:I}));a==="xAxis"?($=b==="top"&&!A||b==="bottom"&&A,R=r.left,L=p[k]-$*w.height):a==="yAxis"&&($=b==="left"&&!A||b==="right"&&A,R=p[k]-$*w.width,L=r.top);var Y=Ia(Ia(Ia({},w),z),{},{realScaleType:I,x:R,y:L,scale:te,width:a==="xAxis"?r.width:w.width,height:a==="yAxis"?r.height:w.height});return Y.bandSize=Xv(Y,z),!w.hide&&a==="xAxis"?p[k]+=($?-1:1)*Y.height:w.hide||(p[k]+=($?-1:1)*Y.width),Ia(Ia({},x),{},Cy({},j,Y))},{})},jq=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return{x:Math.min(r,s),y:Math.min(a,l),width:Math.abs(s-r),height:Math.abs(l-a)}},ehe=function(t){var n=t.x1,r=t.y1,a=t.x2,s=t.y2;return jq({x:n,y:r},{x:a,y:s})},Sq=(function(){function e(t){Zfe(this,e),this.scale=t}return Qfe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();Cy(Sq,"EPS",1e-4);var UO=function(t){var n=Object.keys(t).reduce(function(r,a){return Ia(Ia({},r),{},Cy({},a,Sq.create(t[a])))},{});return Ia(Ia({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=s.bandAware,u=s.position;return Efe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return vq(a,function(s,l){return n[l].isInRange(s)})}})};function the(e){return(e%180+180)%180}var nhe=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=the(a),l=s*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?s[m]:m]:void 0}}return LS=r,LS}var BS,gI;function ahe(){if(gI)return BS;gI=1;var e=fq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return BS=t,BS}var zS,yI;function ihe(){if(yI)return zS;yI=1;var e=jz(),t=wi(),n=ahe(),r=Math.max;function a(s,l,u){var d=s==null?0:s.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(s,t(l,3),f)}return zS=a,zS}var qS,xI;function she(){if(xI)return qS;xI=1;var e=rhe(),t=ihe(),n=e(t);return qS=n,qS}var ohe=she();const lhe=St(ohe);var che=LB();const uhe=St(che);var dhe=uhe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),HO=y.createContext(void 0),WO=y.createContext(void 0),_q=y.createContext(void 0),Nq=y.createContext({}),Cq=y.createContext(void 0),Oq=y.createContext(0),Eq=y.createContext(0),bI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=dhe(s);return W.createElement(HO.Provider,{value:r},W.createElement(WO.Provider,{value:a},W.createElement(Nq.Provider,{value:s},W.createElement(_q.Provider,{value:m},W.createElement(Cq.Provider,{value:l},W.createElement(Oq.Provider,{value:f},W.createElement(Eq.Provider,{value:d},u)))))))},fhe=function(){return y.useContext(Cq)},Aq=function(t){var n=y.useContext(HO);n==null&&ur(!1);var r=n[t];return r==null&&ur(!1),r},hhe=function(){var t=y.useContext(HO);return qs(t)},mhe=function(){var t=y.useContext(WO),n=lhe(t,function(r){return vq(r.domain,Number.isFinite)});return n||qs(t)},Tq=function(t){var n=y.useContext(WO);n==null&&ur(!1);var r=n[t];return r==null&&ur(!1),r},phe=function(){var t=y.useContext(_q);return t},vhe=function(){return y.useContext(Nq)},VO=function(){return y.useContext(Eq)},GO=function(){return y.useContext(Oq)};function bu(e){"@babel/helpers - typeof";return bu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},bu(e)}function ghe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yhe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var s=n();return e*(t-e*s/2-r)>=0&&e*(t+e*s/2-a)<=0}function Jhe(e,t){return Iq(e,t+1)}function eme(e,t,n,r,a){for(var s=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Iq(r,f)};var w=d,b,N=function(){return b===void 0&&(b=n(j,w)),b},E=j.coordinate,O=d===0||gg(e,E,N,m,u);O||(d=0,m=l,f+=1),O&&(m=E+e*(N()/2+a),d+=f)},g;f<=s.length;)if(g=p(),g)return g.v;return[]}function ch(e){"@babel/helpers - typeof";return ch=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ch(e)}function EI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function sr(e){for(var t=1;t0?x.coordinate-b*e:x.coordinate})}else s[g]=x=sr(sr({},x),{},{tickCoord:x.coordinate});var N=gg(e,x.tickCoord,w,u,d);N&&(d=x.tickCoord-e*(w()/2+a),s[g]=sr(sr({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return s}function ime(e,t,n,r,a,s){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(s){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=sr(sr({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=gg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=sr(sr({},m),{},{isShow:!0}))}for(var j=s?u-1:u,w=function(E){var O=l[E],A,C=function(){return A===void 0&&(A=n(O,E)),A};if(E===0){var k=e*(O.coordinate-e*C()/2-d);l[E]=O=sr(sr({},O),{},{tickCoord:k<0?O.coordinate-k*e:O.coordinate})}else l[E]=O=sr(sr({},O),{},{tickCoord:O.coordinate});var T=gg(e,O.tickCoord,C,d,f);T&&(d=O.tickCoord+e*(C()/2+a),l[E]=sr(sr({},O),{},{isShow:!0}))},b=0;b=2?br(a[1].coordinate-a[0].coordinate):1,N=Qhe(s,b,x);return d==="equidistantPreserveStart"?eme(b,N,w,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=ime(b,N,w,a,l,d==="preserveStartEnd"):g=ame(b,N,w,a,l),g.filter(function(E){return E.isShow}))}var sme=["viewBox"],ome=["viewBox"],lme=["ticks"];function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function qc(){return qc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function cme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ume(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function TI(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(pt,{className:Ye("recharts-cartesian-axis",f),ref:function(b){r.layerReference=b}},s&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),qn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var l,u=Ye(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,An(An({},a),{},{className:u})):We(r)?l=r(An(An({},a),{},{className:u})):l=W.createElement(hl,qc({},a,{className:"recharts-cartesian-axis-tick-value"}),s),l}}])})(y.Component);ZO(Gu,"displayName","CartesianAxis");ZO(Gu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var gme=["x1","y1","x2","y2","key"],yme=["offset"];function pl(e){"@babel/helpers - typeof";return pl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pl(e)}function kI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function lr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Sme=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,s=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:s,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function zq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(We(e))n=e(t);else{var r=t.x1,a=t.y1,s=t.x2,l=t.y2,u=t.key,d=MI(t,gme),f=Be(d,!1);f.offset;var m=MI(f,yme);n=W.createElement("line",Xo({},m,{x1:r,y1:a,x2:s,y2:l,fill:"none",key:u}))}return n}function _me(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,s=e.horizontalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=lr(lr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return zq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function Nme(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,s=e.verticalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=lr(lr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return zq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Cme(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,s=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?a+l-g:m[x+1]-g;if(w<=0)return null;var b=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:w,width:s,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function Ome(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,s=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+s-s)}).sort(function(g,x){return g-x});s!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?s+u-g:m[x+1]-g;if(w<=0)return null;var b=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:w,height:d,stroke:"none",fill:r[b],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Eme=function(t,n){var r=t.xAxis,a=t.width,s=t.height,l=t.offset;return z6(XO(lr(lr(lr({},Gu.defaultProps),r),{},{ticks:Ki(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.left,l.left+l.width,n)},Ame=function(t,n){var r=t.yAxis,a=t.width,s=t.height,l=t.offset;return z6(XO(lr(lr(lr({},Gu.defaultProps),r),{},{ticks:Ki(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.top,l.top+l.height,n)},_c={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function mf(e){var t,n,r,a,s,l,u=VO(),d=GO(),f=vhe(),m=lr(lr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:_c.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:_c.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:_c.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:_c.horizontalFill,vertical:(s=e.vertical)!==null&&s!==void 0?s:_c.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:_c.verticalFill,x:Ce(e.x)?e.x:f.left,y:Ce(e.y)?e.y:f.top,width:Ce(e.width)?e.width:f.width,height:Ce(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,w=m.syncWithTicks,b=m.horizontalValues,N=m.verticalValues,E=hhe(),O=mhe();if(!Ce(x)||x<=0||!Ce(j)||j<=0||!Ce(p)||p!==+p||!Ce(g)||g!==+g)return null;var A=m.verticalCoordinatesGenerator||Eme,C=m.horizontalCoordinatesGenerator||Ame,k=m.horizontalPoints,T=m.verticalPoints;if((!k||!k.length)&&We(C)){var M=b&&b.length,R=C({yAxis:O?lr(lr({},O),{},{ticks:M?b:O.ticks}):void 0,width:u,height:d,offset:f},M?!0:w);qa(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(pl(R),"]")),Array.isArray(R)&&(k=R)}if((!T||!T.length)&&We(A)){var L=N&&N.length,$=A({xAxis:E?lr(lr({},E),{},{ticks:L?N:E.ticks}):void 0,width:u,height:d,offset:f},L?!0:w);qa(Array.isArray($),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(pl($),"]")),Array.isArray($)&&(T=$)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Sme,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(_me,Xo({},m,{offset:f,horizontalPoints:k,xAxis:E,yAxis:O})),W.createElement(Nme,Xo({},m,{offset:f,verticalPoints:T,xAxis:E,yAxis:O})),W.createElement(Cme,Xo({},m,{horizontalPoints:k})),W.createElement(Ome,Xo({},m,{verticalPoints:T})))}mf.displayName="CartesianGrid";var Tme=["type","layout","connectNulls","ref"],kme=["key"];function _u(e){"@babel/helpers - typeof";return _u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_u(e)}function PI(e,t){if(e==null)return{};var n=Mme(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Mme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ef(){return Ef=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Nc(d.slice(0,j)),[p-w]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(Nc(t.repeat(d,m)),Nc(x),b).map(function(N){return"".concat(N,"px")}).join(", ")}),La(n,"id",Fu("recharts-line-")),La(n,"pathRef",function(l){n.mainCurve=l}),La(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),La(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Fme(t,e),Lme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.points,u=s.xAxis,d=s.yAxis,f=s.layout,m=s.children,p=na(m,Bh);if(!p)return null;var g=function(w,b){return{x:w.x,y:w.y,value:w.value,errorVal:kn(w.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(pt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,s){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=Be(this.props,!1),g=Be(d,!0),x=f.map(function(w,b){var N=Gr(Gr(Gr({key:"dot-".concat(b),r:3},p),g),{},{index:b,cx:w.x,cy:w.y,value:w.value,dataKey:m,payload:w.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return W.createElement(pt,Ef({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,s,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=PI(u,Tme),g=Gr(Gr(Gr({},Be(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(Jv,Ef({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,w=l.width,b=l.height,N=this.state,E=N.prevPoints,O=N.totalLength;return W.createElement(gi,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(A){var C=A.t;if(E){var k=E.length/u.length,T=u.map(function(H,V){var F=Math.floor(V*k);if(E[F]){var G=E[F],B=Qr(G.x,H.x),D=Qr(G.y,H.y);return Gr(Gr({},H),{},{x:B(C),y:D(C)})}if(j){var U=Qr(w*2,H.x),K=Qr(b/2,H.y);return Gr(Gr({},H),{},{x:U(C),y:K(C)})}return Gr(Gr({},H),{},{x:H.x,y:H.y})});return s.renderCurveStatically(T,r,a)}var M=Qr(0,O),R=M(C),L;if(d){var $="".concat(d).split(/[,\s]+/gim).map(function(H){return parseFloat(H)});L=s.getStrokeDasharray(R,O,$)}else L=s.generateSimpleStrokeDasharray(O,R);return s.renderCurveStatically(u,r,a,{strokeDasharray:L})})}},{key:"renderCurve",value:function(r,a){var s=this.props,l=s.points,u=s.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Lh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,w=a.isAnimationActive,b=a.id;if(s||!u||!u.length)return null;var N=this.state.isAnimationFinished,E=u.length===1,O=Ye("recharts-line",d),A=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=A||C,T=Ge(b)?this.id:b,M=(r=Be(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},R=M.r,L=R===void 0?3:R,$=M.strokeWidth,H=$===void 0?2:$,V=wJ(l)?l:{},F=V.clipDot,G=F===void 0?!0:F,B=L*2+H;return W.createElement(pt,{className:O},A||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(T)},W.createElement("rect",{x:A?g:g-x/2,y:C?p:p-j/2,width:A?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(T)},W.createElement("rect",{x:g-B/2,y:p-B/2,width:x+B,height:j+B}))):null,!E&&this.renderCurve(k,T),this.renderErrorBar(k,T),(E||l)&&this.renderDots(k,G,T),(!w||N)&&ts.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Nc(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Mpe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ppe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Rpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ce(a)&&Ce(s)?t.slice(a,s+1):[]};function tF(e){return e==="number"?[0,"auto"]:void 0}var HN=function(t,n,r,a){var s=t.graphicalItems,l=t.tooltipAxis,u=ky(n,t);return r<0||!s||!s.length||r>=u.length?null:s.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=Nv(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(Eu(d),[W6(f,g)]):d},[])},FI=function(t,n,r,a){var s=a||{x:t.chartX,y:t.chartY},l=Vpe(s,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=yoe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=HN(t,n,m,p),x=Gpe(r,u,m,s);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},Ype=function(t,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=B6(m,s);return r.reduce(function(j,w){var b,N=w.type.defaultProps!==void 0?ye(ye({},w.type.defaultProps),w.props):w.props,E=N.type,O=N.dataKey,A=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,T=N.ticks,M=N.includeHidden,R=N[l];if(j[R])return j;var L=ky(t.data,{graphicalItems:a.filter(function(z){var Y,ne=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l];return ne===R}),dataStartIndex:d,dataEndIndex:f}),$=L.length,H,V,F;bpe(N.domain,A,E)&&(H=aN(N.domain,null,A),x&&(E==="number"||k!=="auto")&&(F=_f(L,O,"category")));var G=tF(E);if(!H||H.length===0){var B,D=(B=N.domain)!==null&&B!==void 0?B:G;if(O){if(H=_f(L,O,E),E==="category"&&x){var U=dJ(H);C&&U?(V=H,H=cg(0,$)):C||(H=q$(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0?z:[].concat(Eu(z),[Y])},[]))}else if(E==="category")C?H=H.filter(function(z){return z!==""&&!Ge(z)}):H=q$(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0||Y===""||Ge(Y)?z:[].concat(Eu(z),[Y])},[]);else if(E==="number"){var K=Soe(L,a.filter(function(z){var Y,ne,se=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l],xe="hide"in z.props?z.props.hide:(ne=z.type.defaultProps)===null||ne===void 0?void 0:ne.hide;return se===R&&(M||!xe)}),O,s,m);K&&(H=K)}x&&(E==="number"||k!=="auto")&&(F=_f(L,O,"category"))}else x?H=cg(0,$):u&&u[R]&&u[R].hasStack&&E==="number"?H=g==="expand"?[0,1]:H6(u[R].stackGroups,d,f):H=L6(L,a.filter(function(z){var Y=l in z.props?z.props[l]:z.type.defaultProps[l],ne="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return Y===R&&(M||!ne)}),E,m,!0);if(E==="number")H=qN(p,H,R,s,T),D&&(H=aN(D,H,A));else if(E==="category"&&D){var te=D,I=H.every(function(z){return te.indexOf(z)>=0});I&&(H=te)}}return ye(ye({},j),{},Fe({},R,ye(ye({},N),{},{axisType:s,domain:H,categoricalDomain:F,duplicateDomain:V,originalDomain:(b=N.domain)!==null&&b!==void 0?b:G,isCategorical:x,layout:m})))},{})},Kpe=function(t,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=ky(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=B6(m,s),w=-1;return r.reduce(function(b,N){var E=N.type.defaultProps!==void 0?ye(ye({},N.type.defaultProps),N.props):N.props,O=E[l],A=tF("number");if(!b[O]){w++;var C;return j?C=cg(0,x):u&&u[O]&&u[O].hasStack?(C=H6(u[O].stackGroups,d,f),C=qN(p,C,O,s)):(C=aN(A,L6(g,r.filter(function(k){var T,M,R=l in k.props?k.props[l]:(T=k.type.defaultProps)===null||T===void 0?void 0:T[l],L="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return R===O&&!L}),"number",m),a.defaultProps.allowDataOverflow),C=qN(p,C,O,s)),ye(ye({},b),{},Fe({},O,ye(ye({axisType:s},a.defaultProps),{},{hide:!0,orientation:ta(Hpe,"".concat(s,".").concat(w%2),null),domain:C,originalDomain:A,isCategorical:j,layout:m})))}return b},{})},Xpe=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=na(m,s),x={};return g&&g.length?x=Ype(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=Kpe(t,{Axis:s,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},Zpe=function(t){var n=qs(t),r=Ki(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:pO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:Xv(n,r)}},UI=function(t){var n=t.children,r=t.defaultShowTooltip,a=Kr(n,yu),s=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},Qpe=function(t){return!t||!t.length?!1:t.some(function(n){var r=Ji(n&&n.type);return r&&r.indexOf("Bar")>=0})},HI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},Jpe=function(t,n){var r=t.props,a=t.graphicalItems,s=t.xAxisMap,l=s===void 0?{}:s,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=Kr(p,yu),j=Kr(p,nl),w=Object.keys(d).reduce(function(C,k){var T=d[k],M=T.orientation;return!T.mirror&&!T.hide?ye(ye({},C),{},Fe({},M,C[M]+T.width)):C},{left:g.left||0,right:g.right||0}),b=Object.keys(l).reduce(function(C,k){var T=l[k],M=T.orientation;return!T.mirror&&!T.hide?ye(ye({},C),{},Fe({},M,ta(C,"".concat(M))+T.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ye(ye({},b),w),E=N.bottom;x&&(N.bottom+=x.props.height||yu.defaultProps.height),j&&n&&(N=woe(N,a,r,n));var O=f-N.left-N.right,A=m-N.top-N.bottom;return ye(ye({brushBottom:E},N),{},{width:Math.max(O,0),height:Math.max(A,0)})},eve=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},QO=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,s=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,E){var O=E.graphicalItems,A=E.stackGroups,C=E.offset,k=E.updateId,T=E.dataStartIndex,M=E.dataEndIndex,R=N.barSize,L=N.layout,$=N.barGap,H=N.barCategoryGap,V=N.maxBarSize,F=HI(L),G=F.numericAxisName,B=F.cateAxisName,D=Qpe(O),U=[];return O.forEach(function(K,te){var I=ky(N.data,{graphicalItems:[K],dataStartIndex:T,dataEndIndex:M}),z=K.type.defaultProps!==void 0?ye(ye({},K.type.defaultProps),K.props):K.props,Y=z.dataKey,ne=z.maxBarSize,se=z["".concat(G,"Id")],xe=z["".concat(B,"Id")],ee={},ae=d.reduce(function(rr,gr){var ct=E["".concat(gr.axisType,"Map")],rt=z["".concat(gr.axisType,"Id")];ct&&ct[rt]||gr.axisType==="zAxis"||ur(!1);var $n=ct[rt];return ye(ye({},rr),{},Fe(Fe({},gr.axisType,$n),"".concat(gr.axisType,"Ticks"),Ki($n)))},ee),Z=ae[B],ve=ae["".concat(B,"Ticks")],je=A&&A[se]&&A[se].hasStack&&Moe(K,A[se].stackGroups),le=Ji(K.type).indexOf("Bar")>=0,Re=Xv(Z,ve),_e=[],fe=D&&xoe({barSize:R,stackGroups:A,totalSize:eve(ae,B)});if(le){var pe,Le,It=Ge(ne)?V:ne,Cn=(pe=(Le=Xv(Z,ve,!0))!==null&&Le!==void 0?Le:It)!==null&&pe!==void 0?pe:0;_e=boe({barGap:$,barCategoryGap:H,bandSize:Cn!==Re?Cn:Re,sizeList:fe[xe],maxBarSize:It}),Cn!==Re&&(_e=_e.map(function(rr){return ye(ye({},rr),{},{position:ye(ye({},rr.position),{},{offset:rr.position.offset-Cn/2})})}))}var vr=K&&K.type&&K.type.getComposedData;vr&&U.push({props:ye(ye({},vr(ye(ye({},ae),{},{displayedData:I,props:N,dataKey:Y,item:K,bandSize:Re,barPosition:_e,offset:C,stackedData:je,layout:L,dataStartIndex:T,dataEndIndex:M}))),{},Fe(Fe(Fe({key:K.key||"item-".concat(te)},G,ae[G]),B,ae[B]),"animationId",k)),childIndex:_J(K,N.children),item:K})}),U},x=function(N,E){var O=N.props,A=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!tR({props:O}))return null;var T=O.children,M=O.layout,R=O.stackOffset,L=O.data,$=O.reverseStackOrder,H=HI(M),V=H.numericAxisName,F=H.cateAxisName,G=na(T,r),B=Toe(L,G,"".concat(V,"Id"),"".concat(F,"Id"),R,$),D=d.reduce(function(z,Y){var ne="".concat(Y.axisType,"Map");return ye(ye({},z),{},Fe({},ne,Xpe(O,ye(ye({},Y),{},{graphicalItems:G,stackGroups:Y.axisType===V&&B,dataStartIndex:A,dataEndIndex:C}))))},{}),U=Jpe(ye(ye({},D),{},{props:O,graphicalItems:G}),E?.legendBBox);Object.keys(D).forEach(function(z){D[z]=m(O,D[z],U,z.replace("Map",""),n)});var K=D["".concat(F,"Map")],te=Zpe(K),I=g(O,ye(ye({},D),{},{dataStartIndex:A,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:B,offset:U}));return ye(ye({formattedGraphicalItems:I,graphicalItems:G,offset:U,stackGroups:B},te),D)},j=(function(b){function N(E){var O,A,C;return Ppe(this,N),C=$pe(this,N,[E]),Fe(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),Fe(C,"accessibilityManager",new xpe),Fe(C,"handleLegendBBoxUpdate",function(k){if(k){var T=C.state,M=T.dataStartIndex,R=T.dataEndIndex,L=T.updateId;C.setState(ye({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:R,updateId:L},ye(ye({},C.state),{},{legendBBox:k}))))}}),Fe(C,"handleReceiveSyncEvent",function(k,T,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(T)}}),Fe(C,"handleBrushChange",function(k){var T=k.startIndex,M=k.endIndex;if(T!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var R=C.state.updateId;C.setState(function(){return ye({dataStartIndex:T,dataEndIndex:M},x({props:C.props,dataStartIndex:T,dataEndIndex:M,updateId:R},C.state))}),C.triggerSyncEvent({dataStartIndex:T,dataEndIndex:M})}}),Fe(C,"handleMouseEnter",function(k){var T=C.getMouseInfo(k);if(T){var M=ye(ye({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseEnter;We(R)&&R(M,k)}}),Fe(C,"triggeredAfterMouseMove",function(k){var T=C.getMouseInfo(k),M=T?ye(ye({},T),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseMove;We(R)&&R(M,k)}),Fe(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),Fe(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),Fe(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),Fe(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var T={isTooltipActive:!1};C.setState(T),C.triggerSyncEvent(T);var M=C.props.onMouseLeave;We(M)&&M(T,k)}),Fe(C,"handleOuterEvent",function(k){var T=SJ(k),M=ta(C.props,"".concat(T));if(T&&We(M)){var R,L;/.*touch.*/i.test(T)?L=C.getMouseInfo(k.changedTouches[0]):L=C.getMouseInfo(k),M((R=L)!==null&&R!==void 0?R:{},k)}}),Fe(C,"handleClick",function(k){var T=C.getMouseInfo(k);if(T){var M=ye(ye({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onClick;We(R)&&R(M,k)}}),Fe(C,"handleMouseDown",function(k){var T=C.props.onMouseDown;if(We(T)){var M=C.getMouseInfo(k);T(M,k)}}),Fe(C,"handleMouseUp",function(k){var T=C.props.onMouseUp;if(We(T)){var M=C.getMouseInfo(k);T(M,k)}}),Fe(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),Fe(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),Fe(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),Fe(C,"handleDoubleClick",function(k){var T=C.props.onDoubleClick;if(We(T)){var M=C.getMouseInfo(k);T(M,k)}}),Fe(C,"handleContextMenu",function(k){var T=C.props.onContextMenu;if(We(T)){var M=C.getMouseInfo(k);T(M,k)}}),Fe(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&HS.emit(WS,C.props.syncId,k,C.eventEmitterSymbol)}),Fe(C,"applySyncEvent",function(k){var T=C.props,M=T.layout,R=T.syncMethod,L=C.state.updateId,$=k.dataStartIndex,H=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ye({dataStartIndex:$,dataEndIndex:H},x({props:C.props,dataStartIndex:$,dataEndIndex:H,updateId:L},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,F=k.chartY,G=k.activeTooltipIndex,B=C.state,D=B.offset,U=B.tooltipTicks;if(!D)return;if(typeof R=="function")G=R(U,k);else if(R==="value"){G=-1;for(var K=0;K=0){var je,le;if(V.dataKey&&!V.allowDuplicatedCategory){var Re=typeof V.dataKey=="function"?ve:"payload.".concat(V.dataKey.toString());je=Nv(K,Re,G),le=te&&I&&Nv(I,Re,G)}else je=K?.[F],le=te&&I&&I[F];if(xe||se){var _e=k.props.activeIndex!==void 0?k.props.activeIndex:F;return[y.cloneElement(k,ye(ye(ye({},R.props),ae),{},{activeIndex:_e})),null,null]}if(!Ge(je))return[Z].concat(Eu(C.renderActivePoints({item:R,activePoint:je,basePoint:le,childIndex:F,isRange:te})))}else{var fe,pe=(fe=C.getItemByXY(C.state.activeCoordinate))!==null&&fe!==void 0?fe:{graphicalItem:Z},Le=pe.graphicalItem,It=Le.item,Cn=It===void 0?k:It,vr=Le.childIndex,rr=ye(ye(ye({},R.props),ae),{},{activeIndex:vr});return[y.cloneElement(Cn,rr),null,null]}return te?[Z,null,null]:[Z,null]}),Fe(C,"renderCustomized",function(k,T,M){return y.cloneElement(k,ye(ye({key:"recharts-customized-".concat(M)},C.props),C.state))}),Fe(C,"renderMap",{CartesianGrid:{handler:qp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:qp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:qp},YAxis:{handler:qp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((O=E.id)!==null&&O!==void 0?O:Fu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=Dz(C.triggeredAfterMouseMove,(A=E.throttleDelay)!==null&&A!==void 0?A:1e3/60),C.state={},C}return Bpe(N,b),Dpe(N,[{key:"componentDidMount",value:function(){var O,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(O=this.props.margin.left)!==null&&O!==void 0?O:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var O=this.props,A=O.children,C=O.data,k=O.height,T=O.layout,M=Kr(A,ni);if(M){var R=M.props.defaultIndex;if(!(typeof R!="number"||R<0||R>this.state.tooltipTicks.length-1)){var L=this.state.tooltipTicks[R]&&this.state.tooltipTicks[R].value,$=HN(this.state,C,R,L),H=this.state.tooltipTicks[R].coordinate,V=(this.state.offset.top+k)/2,F=T==="horizontal",G=F?{x:H,y:V}:{y:H,x:V},B=this.state.formattedGraphicalItems.find(function(U){var K=U.item;return K.type.name==="Scatter"});B&&(G=ye(ye({},G),B.props.points[R].tooltipPosition),$=B.props.points[R].tooltipPayload);var D={activeTooltipIndex:R,isTooltipActive:!0,activeLabel:L,activePayload:$,activeCoordinate:G};this.setState(D),this.renderCursor(M),this.accessibilityManager.setIndex(R)}}}},{key:"getSnapshotBeforeUpdate",value:function(O,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==O.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==O.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(O){C_([Kr(O.children,ni)],[Kr(this.props.children,ni)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var O=Kr(this.props.children,ni);if(O&&typeof O.props.shared=="boolean"){var A=O.props.shared?"axis":"item";return u.indexOf(A)>=0?A:s}return s}},{key:"getMouseInfo",value:function(O){if(!this.container)return null;var A=this.container,C=A.getBoundingClientRect(),k=dre(C),T={chartX:Math.round(O.pageX-k.left),chartY:Math.round(O.pageY-k.top)},M=C.width/A.offsetWidth||1,R=this.inRange(T.chartX,T.chartY,M);if(!R)return null;var L=this.state,$=L.xAxisMap,H=L.yAxisMap,V=this.getTooltipEventType(),F=FI(this.state,this.props.data,this.props.layout,R);if(V!=="axis"&&$&&H){var G=qs($).scale,B=qs(H).scale,D=G&&G.invert?G.invert(T.chartX):null,U=B&&B.invert?B.invert(T.chartY):null;return ye(ye({},T),{},{xValue:D,yValue:U},F)}return F?ye(ye({},T),F):null}},{key:"inRange",value:function(O,A){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,T=O/C,M=A/C;if(k==="horizontal"||k==="vertical"){var R=this.state.offset,L=T>=R.left&&T<=R.left+R.width&&M>=R.top&&M<=R.top+R.height;return L?{x:T,y:M}:null}var $=this.state,H=$.angleAxisMap,V=$.radiusAxisMap;if(H&&V){var F=qs(H);return H$({x:T,y:M},F)}return null}},{key:"parseEventsOfWrapper",value:function(){var O=this.props.children,A=this.getTooltipEventType(),C=Kr(O,ni),k={};C&&A==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var T=Cv(this.props,this.handleOuterEvent);return ye(ye({},T),k)}},{key:"addListener",value:function(){HS.on(WS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){HS.removeListener(WS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(O,A,C){for(var k=this.state.formattedGraphicalItems,T=0,M=k.length;T");return e}const Mc=y.forwardRef(({id:e,className:t,children:n,config:r,...a},s)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(nF.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:s,className:ce("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(ave,{id:u,config:r}),i.jsx(are,{children:n})]})})});Mc.displayName="Chart";const ave=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(rve).map(([r,a])=>` -${a} [data-chart=${e}] { -${n.map(([s,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${s}: ${u};`:null}).join(` -`)} -} -`).join(` -`)}}):null},lf=ni,Pc=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:s=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=rF(),w=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,E=`${g||N?.dataKey||N?.name||"value"}`,O=WN(j,N,E),A=!g&&typeof l=="string"?j[l]?.label||l:O?.label;return u?i.jsx("div",{className:ce("font-medium",d),children:u(A,t)}):A?i.jsx("div",{className:ce("font-medium",d),children:A}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const b=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:ce("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[b?null:w,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,E)=>{const O=`${p||N.name||N.dataKey||"value"}`,A=WN(j,N,O),C=m||N.payload.fill||N.color;return i.jsx("div",{className:ce("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,E,N.payload):i.jsxs(i.Fragment,{children:[A?.icon?i.jsx(A.icon,{}):!s&&i.jsx("div",{className:ce("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":b&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:ce("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[b?w:null,i.jsx("span",{className:"text-muted-foreground",children:A?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});Pc.displayName="ChartTooltip";const ive=nl,aF=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},s)=>{const{config:l}=rF();return n?.length?i.jsx("div",{ref:s,className:ce("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=WN(l,u,d);return i.jsxs("div",{className:ce("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});aF.displayName="ChartLegend";function WN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const sve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ove=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),WI=e=>{const t=ove(e);return t.charAt(0).toUpperCase()+t.slice(1)},iF=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),lve=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var cve={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const uve=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...cve,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:iF("lucide",a),...!s&&!lve(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(s)?s:[s]]));const Oe=(e,t)=>{const n=y.forwardRef(({className:r,...a},s)=>y.createElement(uve,{ref:s,iconNode:t,className:iF(`lucide-${sve(WI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=WI(e),n};const dve=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],fve=Oe("activity",dve);const hve=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],sF=Oe("arrow-left",hve);const mve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],pve=Oe("arrow-right",mve);const vve=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],VI=Oe("ban",vve);const gve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],yve=Oe("book-open",gve);const xve=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],bve=Oe("bot",xve);const wve=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],oF=Oe("boxes",wve);const jve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],GI=Oe("calendar",jve);const Sve=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],_ve=Oe("chart-column",Sve);const Nve=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],il=Oe("check",Nve);const Cve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],fh=Oe("chevron-down",Cve);const Ove=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],JO=Oe("chevron-left",Ove);const Eve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],eE=Oe("chevron-right",Eve);const Ave=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],VN=Oe("chevron-up",Ave);const Tve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],kve=Oe("chevrons-up-down",Tve);const Mve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],Sg=Oe("circle-alert",Mve);const Pve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ws=Oe("circle-check",Pve);const Rve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Dve=Oe("circle-question-mark",Rve);const $ve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],lF=Oe("circle-user",$ve);const Ive=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],GN=Oe("circle-x",Ive);const Lve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Bve=Oe("circle",Lve);const zve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],sl=Oe("clock",zve);const qve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],YN=Oe("copy",qve);const Fve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Uve=Oe("database",Fve);const Hve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Wve=Oe("dollar-sign",Hve);const Vve=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],KN=Oe("download",Vve);const Gve=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],iv=Oe("external-link",Gve);const Yve=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],XN=Oe("eye-off",Yve);const Kve=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ua=Oe("eye",Kve);const Xve=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],_g=Oe("file-search",Xve);const Zve=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],tE=Oe("file-text",Zve);const Qve=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],ZN=Oe("funnel",Qve);const Jve=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Ng=Oe("hash",Jve);const ege=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Cg=Oe("house",ege);const tge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Au=Oe("info",tge);const nge=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],rge=Oe("key",nge);const age=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],QN=Oe("loader-circle",age);const ige=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],YI=Oe("lock",ige);const sge=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],KI=Oe("log-out",sge);const oge=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],lge=Oe("menu",oge);const cge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],qh=Oe("message-square",cge);const uge=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],JN=Oe("moon",uge);const dge=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],cF=Oe("package",dge);const fge=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],uF=Oe("palette",fge);const hge=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],mge=Oe("pause",hge);const pge=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Tu=Oe("pencil",pge);const vge=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],gge=Oe("play",vge);const yge=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],tr=Oe("plus",yge);const xge=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],ol=Oe("refresh-cw",xge);const bge=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],wge=Oe("rotate-ccw",bge);const jge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Sge=Oe("rotate-cw",jge);const _ge=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],nE=Oe("save",_ge);const Nge=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Dr=Oe("search",Nge);const Cge=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],dF=Oe("server",Cge);const Oge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Ege=Oe("settings-2",Oge);const Age=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Vc=Oe("settings",Age);const Tge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],kge=Oe("shield",Tge);const Mge=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Pge=Oe("skip-forward",Mge);const Rge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],rE=Oe("smile",Rge);const Dge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],$ge=Oe("sparkles",Dge);const Ige=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],ku=Oe("square-pen",Ige);const Lge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],XI=Oe("star",Lge);const Bge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],eC=Oe("sun",Bge);const zge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],qge=Oe("terminal",zge);const Fge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Tt=Oe("trash-2",Fge);const Uge=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Hge=Oe("trending-up",Uge);const Wge=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Gc=Oe("triangle-alert",Wge);const Vge=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],fF=Oe("user",Vge);const Gge=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],Yge=Oe("users",Gge);const Kge=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Fh=Oe("x",Kge);const Xge=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],hh=Oe("zap",Xge),ZI=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,QI=Ye,Yu=(e,t)=>n=>{var r;if(t?.variants==null)return QI(e,n?.class,n?.className);const{variants:a,defaultVariants:s}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=s?.[f];if(m===null)return null;const g=ZI(m)||ZI(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[w,b]=j;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...f,p,g]:f},[]);return QI(e,l,d,n?.class,n?.className)},mh=Yu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),de=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const l=r?cQ:"button";return i.jsx(l,{className:ce(mh({variant:t,size:n,className:e})),ref:s,...a})});de.displayName="Button";function Zge(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(24),[d,f]=y.useState(!0),[m,p]=y.useState(null),[g,x]=y.useState(!0),j=y.useCallback(async()=>{try{x(!0);const R=await ln.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");p({hitokoto:R.data.hitokoto,from:R.data.from||R.data.from_who||"未知"})}catch(R){console.error("获取一言失败:",R),p({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{x(!1)}},[]),w=y.useCallback(async()=>{try{const R=localStorage.getItem("token"),L=await ln.get(`/api/webui/statistics/dashboard?hours=${l}`,{headers:{Authorization:`Bearer ${R}`}});t(L.data),r(!1),s(100)}catch(R){console.error("Failed to fetch dashboard data:",R),r(!1),s(100)}},[l]);if(y.useEffect(()=>{if(!n)return;s(0);const R=setTimeout(()=>s(15),200),L=setTimeout(()=>s(30),800),$=setTimeout(()=>s(45),2e3),H=setTimeout(()=>s(60),4e3),V=setTimeout(()=>s(75),6500),F=setTimeout(()=>s(85),9e3),G=setTimeout(()=>s(92),11e3);return()=>{clearTimeout(R),clearTimeout(L),clearTimeout($),clearTimeout(H),clearTimeout(V),clearTimeout(F),clearTimeout(G)}},[n]),y.useEffect(()=>{w(),j()},[w,j]),y.useEffect(()=>{if(!d)return;const R=setInterval(()=>{w()},3e4);return()=>clearInterval(R)},[d,w]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[i.jsx(ol,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Yg,{value:a,className:"h-2"}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:[a,"%"]})]})]})});const{summary:b,model_stats:N,hourly_data:E,daily_data:O,recent_activity:A}=e,C=R=>{const L=Math.floor(R/3600),$=Math.floor(R%3600/60);return`${L}小时${$}分钟`},k=R=>new Date(R).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),T=N.slice(0,6).map(R=>({name:R.model_name,value:R.request_count,fill:`hsl(var(--chart-${N.indexOf(R)%5+1}))`})),M={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(ul,{value:l.toString(),onValueChange:R=>u(Number(R)),children:i.jsxs(Zs,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Ot,{value:"24",children:"24小时"}),i.jsx(Ot,{value:"168",children:"7天"}),i.jsx(Ot,{value:"720",children:"30天"})]})}),i.jsxs(de,{variant:d?"default":"outline",size:"sm",onClick:()=>f(!d),className:"gap-2",children:[i.jsx(ol,{className:`h-4 w-4 ${d?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(de,{variant:"outline",size:"sm",onClick:w,children:i.jsx(ol,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(fve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",l<48?l+"小时":Math.floor(l/24)+"天"]})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"总花费"}),i.jsx(Wve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",b.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.cost_per_hour>0?`¥${b.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(Uve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(b.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.tokens_per_hour>0?`${(b.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(hh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[b.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(sl,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(sn,{children:i.jsx("div",{className:"text-xl font-bold",children:C(b.online_time)})})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(qh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",b.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(Ft,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(Hge,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(sn,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages>0?`¥${(b.total_cost/b.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(ul,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(Zs,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Ot,{value:"trends",children:"趋势"}),i.jsx(Ot,{value:"models",children:"模型"}),i.jsx(Ot,{value:"activity",children:"活动"}),i.jsx(Ot,{value:"daily",children:"日统计"})]}),i.jsxs(en,{value:"trends",className:"space-y-4",children:[i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"请求趋势"}),i.jsxs(er,{children:["最近",l,"小时的请求量变化"]})]}),i.jsx(sn,{children:i.jsx(Mc,{config:M,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(tve,{data:E,children:[i.jsx(mf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Hs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(lf,{content:i.jsx(Pc,{labelFormatter:R=>k(R)})}),i.jsx(zh,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"花费趋势"}),i.jsx(er,{children:"API调用成本变化"})]}),i.jsx(sn,{children:i.jsx(Mc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(GS,{data:E,children:[i.jsx(mf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Hs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(lf,{content:i.jsx(Pc,{labelFormatter:R=>k(R)})}),i.jsx(li,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"Token消耗"}),i.jsx(er,{children:"Token使用量变化"})]}),i.jsx(sn,{children:i.jsx(Mc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(GS,{data:E,children:[i.jsx(mf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Hs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(lf,{content:i.jsx(Pc,{labelFormatter:R=>k(R)})}),i.jsx(li,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(en,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"模型请求分布"}),i.jsx(er,{children:"各模型使用占比"})]}),i.jsx(sn,{children:i.jsx(Mc,{config:Object.fromEntries(N.slice(0,6).map((R,L)=>[R.model_name,{label:R.model_name,color:`hsl(var(--chart-${L%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(nve,{children:[i.jsx(lf,{content:i.jsx(Pc,{})}),i.jsx(ds,{data:T,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percent:L})=>`${R} ${L?(L*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:T.map((R,L)=>i.jsx(oy,{fill:R.fill},`cell-${L}`))})]})})})]}),i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"模型详细统计"}),i.jsx(er,{children:"请求数、花费和性能"})]}),i.jsx(sn,{children:i.jsx(Vt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:N.map((R,L)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:R.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${L%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:R.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",R.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(R.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[R.avg_response_time.toFixed(2),"s"]})]})]})]},L))})})})]})]})}),i.jsx(en,{value:"activity",children:i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"最近活动"}),i.jsx(er,{children:"最新的API调用记录"})]}),i.jsx(sn,{children:i.jsx(Vt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((R,L)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:R.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:R.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:k(R.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:R.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",R.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[R.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${R.status==="success"?"text-green-600":"text-red-600"}`,children:R.status})]})]})]},L))})})})]})}),i.jsx(en,{value:"daily",children:i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"每日统计"}),i.jsx(er,{children:"最近7天的数据汇总"})]}),i.jsx(sn,{children:i.jsx(Mc,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(GS,{data:O,children:[i.jsx(mf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Hs,{dataKey:"timestamp",tickFormatter:R=>{const L=new Date(R);return`${L.getMonth()+1}/${L.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Vi,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(lf,{content:i.jsx(Pc,{labelFormatter:R=>new Date(R).toLocaleDateString("zh-CN")})}),i.jsx(ive,{content:i.jsx(aF,{})}),i.jsx(li,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(li,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(ot,{className:"border-2 border-primary/20",children:[i.jsx(qt,{className:"pb-3",children:i.jsx(Ft,{className:"text-lg",children:"每日一言"})}),i.jsx(sn,{children:g?i.jsxs("div",{className:"space-y-2",children:[i.jsx(HM,{className:"h-6 w-3/4"}),i.jsx(HM,{className:"h-4 w-1/4"})]}):m?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',m.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",m.from]})]}):null})]})]})})}const Qge={theme:"system",setTheme:()=>null},hF=y.createContext(Qge),aE=()=>{const e=y.useContext(hF);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},Jge=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,s=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(s,innerHeight-s));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},mF=y.createContext(void 0),pF=()=>{const e=y.useContext(mF);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function My(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function Py(e){const[t,n]=y.useState(void 0);return Un(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let l,u;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Ry="Switch",[eye]=hr(Ry),[tye,nye]=eye(Ry),vF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=qe(t,O=>x(O)),w=y.useRef(!1),b=g?m||!!g.closest("form"):!0,[N,E]=Na({prop:a,defaultProp:s??!1,onChange:f,caller:Ry});return i.jsxs(tye,{scope:n,checked:N,disabled:u,children:[i.jsx(Pe.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":bF(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:Se(e.onClick,O=>{E(A=>!A),b&&(w.current=O.isPropagationStopped(),w.current||O.stopPropagation())})}),b&&i.jsx(xF,{control:g,bubbles:!w.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});vF.displayName=Ry;var gF="SwitchThumb",yF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=nye(gF,n);return i.jsx(Pe.span,{"data-state":bF(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});yF.displayName=gF;var rye="SwitchBubbleInput",xF=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const l=y.useRef(null),u=qe(l,s),d=My(n),f=Py(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});xF.displayName=rye;function bF(e){return e?"checked":"unchecked"}var wF=vF,aye=yF;const at=y.forwardRef(({className:e,...t},n)=>i.jsx(wF,{className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(aye,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));at.displayName=wF.displayName;var iye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],sye=iye.reduce((e,t)=>{const n=Th(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),oye="Label",jF=y.forwardRef((e,t)=>i.jsx(sye.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));jF.displayName=oye;var SF=jF;const lye=Yu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),J=y.forwardRef(({className:e,...t},n)=>i.jsx(SF,{ref:n,className:ce(lye(),e),...t}));J.displayName=SF.displayName;const Ne=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:ce("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ne.displayName="Input";const cye=1,uye=1e6;let YS=0;function dye(){return YS=(YS+1)%Number.MAX_SAFE_INTEGER,YS.toString()}const KS=new Map,JI=e=>{if(KS.has(e))return;const t=setTimeout(()=>{KS.delete(e),Af({type:"REMOVE_TOAST",toastId:e})},uye);KS.set(e,t)},fye=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,cye)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?JI(n):e.toasts.forEach(r=>{JI(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},sv=[];let ov={toasts:[]};function Af(e){ov=fye(ov,e),sv.forEach(t=>{t(ov)})}function hye({...e}){const t=dye(),n=a=>Af({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Af({type:"DISMISS_TOAST",toastId:t});return Af({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function mr(){const[e,t]=y.useState(ov);return y.useEffect(()=>(sv.push(t),()=>{const n=sv.indexOf(t);n>-1&&sv.splice(n,1)}),[e]),{...e,toast:hye,dismiss:n=>Af({type:"DISMISS_TOAST",toastId:n})}}const mye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function pye(e){const t=mye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const iE="0.11.5 Beta",sE="MaiBot Dashboard",vye=`${sE} v${iE}`,gye=(e="v")=>`${e}${iE}`;function yye(e,t=globalThis?.document){const n=nn(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var xye="DismissableLayer",tC="dismissableLayer.update",bye="dismissableLayer.pointerDownOutside",wye="dismissableLayer.focusOutside",eL,_F=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ol=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(_F),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=qe(t,T=>p(T)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=w.indexOf(b),E=m?w.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,A=E>=N,C=Sye(T=>{const M=T.target,R=[...f.branches].some(L=>L.contains(M));!A||R||(a?.(T),l?.(T),T.defaultPrevented||u?.())},g),k=_ye(T=>{const M=T.target;[...f.branches].some(L=>L.contains(M))||(s?.(T),l?.(T),T.defaultPrevented||u?.())},g);return yye(T=>{E===f.layers.size-1&&(r?.(T),!T.defaultPrevented&&u&&(T.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(eL=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),tL(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=eL)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),tL())},[m,f]),y.useEffect(()=>{const T=()=>x({});return document.addEventListener(tC,T),()=>document.removeEventListener(tC,T)},[]),i.jsx(Pe.div,{...d,ref:j,style:{pointerEvents:O?A?"auto":"none":void 0,...e.style},onFocusCapture:Se(e.onFocusCapture,k.onFocusCapture),onBlurCapture:Se(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:Se(e.onPointerDownCapture,C.onPointerDownCapture)})});Ol.displayName=xye;var jye="DismissableLayerBranch",NF=y.forwardRef((e,t)=>{const n=y.useContext(_F),r=y.useRef(null),a=qe(t,r);return y.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),i.jsx(Pe.div,{...e,ref:a})});NF.displayName=jye;function Sye(e,t=globalThis?.document){const n=nn(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let d=function(){CF(bye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function _ye(e,t=globalThis?.document){const n=nn(e),r=y.useRef(!1);return y.useEffect(()=>{const a=s=>{s.target&&!r.current&&CF(wye,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function tL(){const e=new CustomEvent(tC);document.dispatchEvent(e)}function CF(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?qC(a,s):a.dispatchEvent(s)}var Nye=Ol,Cye=NF,XS="focusScope.autoFocusOnMount",ZS="focusScope.autoFocusOnUnmount",nL={bubbles:!1,cancelable:!0},Oye="FocusScope",Uh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...l}=e,[u,d]=y.useState(null),f=nn(a),m=nn(s),p=y.useRef(null),g=qe(t,w=>d(w)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let w=function(O){if(x.paused||!u)return;const A=O.target;u.contains(A)?p.current=A:Bs(p.current,{select:!0})},b=function(O){if(x.paused||!u)return;const A=O.relatedTarget;A!==null&&(u.contains(A)||Bs(p.current,{select:!0}))},N=function(O){if(document.activeElement===document.body)for(const C of O)C.removedNodes.length>0&&Bs(u)};document.addEventListener("focusin",w),document.addEventListener("focusout",b);const E=new MutationObserver(N);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",b),E.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){aL.add(x);const w=document.activeElement;if(!u.contains(w)){const N=new CustomEvent(XS,nL);u.addEventListener(XS,f),u.dispatchEvent(N),N.defaultPrevented||(Eye(Pye(OF(u)),{select:!0}),document.activeElement===w&&Bs(u))}return()=>{u.removeEventListener(XS,f),setTimeout(()=>{const N=new CustomEvent(ZS,nL);u.addEventListener(ZS,m),u.dispatchEvent(N),N.defaultPrevented||Bs(w??document.body,{select:!0}),u.removeEventListener(ZS,m),aL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(w=>{if(!n&&!r||x.paused)return;const b=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,N=document.activeElement;if(b&&N){const E=w.currentTarget,[O,A]=Aye(E);O&&A?!w.shiftKey&&N===A?(w.preventDefault(),n&&Bs(O,{select:!0})):w.shiftKey&&N===O&&(w.preventDefault(),n&&Bs(A,{select:!0})):N===E&&w.preventDefault()}},[n,r,x.paused]);return i.jsx(Pe.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Uh.displayName=Oye;function Eye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Bs(r,{select:t}),document.activeElement!==n)return}function Aye(e){const t=OF(e),n=rL(t,e),r=rL(t.reverse(),e);return[n,r]}function OF(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function rL(e,t){for(const n of e)if(!Tye(n,{upTo:t}))return n}function Tye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function kye(e){return e instanceof HTMLInputElement&&"select"in e}function Bs(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&kye(e)&&t&&e.select()}}var aL=Mye();function Mye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=iL(e,t),e.unshift(t)},remove(t){e=iL(e,t),e[0]?.resume()}}}function iL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Pye(e){return e.filter(t=>t.tagName!=="A")}var Rye="Portal",El=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,s]=y.useState(!1);Un(()=>s(!0),[]);const l=n||a&&globalThis?.document?.body;return l?wY.createPortal(i.jsx(Pe.div,{...r,ref:t}),l):null});El.displayName=Rye;var QS=0;function Dy(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??sL()),document.body.insertAdjacentElement("beforeend",e[1]??sL()),QS++,()=>{QS===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),QS--}},[])}function sL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ri=function(){return ri=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return Zye;var t=Qye(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},exe=kF(),Yc="data-scroll-locked",txe=function(e,t,n,r){var a=e.left,s=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` - .`.concat($ye,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(u,"px ").concat(r,`; - } - body[`).concat(Yc,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(a,`px; - padding-top: `).concat(s,`px; - padding-right: `).concat(l,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(u,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(lv,` { - right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(cv,` { - margin-right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(lv," .").concat(lv,` { - right: 0 `).concat(r,`; - } - - .`).concat(cv," .").concat(cv,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(Yc,`] { - `).concat(Iye,": ").concat(u,`px; - } -`)},lL=function(){var e=parseInt(document.body.getAttribute(Yc)||"0",10);return isFinite(e)?e:0},nxe=function(){y.useEffect(function(){return document.body.setAttribute(Yc,(lL()+1).toString()),function(){var e=lL()-1;e<=0?document.body.removeAttribute(Yc):document.body.setAttribute(Yc,e.toString())}},[])},rxe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;nxe();var s=y.useMemo(function(){return Jye(a)},[a]);return y.createElement(exe,{styles:txe(s,!t,a,n?"":"!important")})},nC=!1;if(typeof window<"u")try{var Fp=Object.defineProperty({},"passive",{get:function(){return nC=!0,!0}});window.addEventListener("test",Fp,Fp),window.removeEventListener("test",Fp,Fp)}catch{nC=!1}var Cc=nC?{passive:!1}:!1,axe=function(e){return e.tagName==="TEXTAREA"},MF=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!axe(e)&&n[t]==="visible")},ixe=function(e){return MF(e,"overflowY")},sxe=function(e){return MF(e,"overflowX")},cL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=PF(e,r);if(a){var s=RF(e,r),l=s[1],u=s[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},oxe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},lxe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},PF=function(e,t){return e==="v"?ixe(t):sxe(t)},RF=function(e,t){return e==="v"?oxe(t):lxe(t)},cxe=function(e,t){return e==="h"&&t==="rtl"?-1:1},uxe=function(e,t,n,r,a){var s=cxe(e,window.getComputedStyle(t).direction),l=s*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=RF(e,u),j=x[0],w=x[1],b=x[2],N=w-b-s*j;(j||N)&&PF(e,u)&&(p+=N,g+=j);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Up=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},uL=function(e){return[e.deltaX,e.deltaY]},dL=function(e){return e&&"current"in e?e.current:e},dxe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},fxe=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},hxe=0,Oc=[];function mxe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(hxe++)[0],s=y.useState(kF)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var w=Dye([e.lockRef.current],(e.shards||[]).map(dL),!0).filter(Boolean);return w.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(w,b){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var N=Up(w),E=n.current,O="deltaX"in w?w.deltaX:E[0]-N[0],A="deltaY"in w?w.deltaY:E[1]-N[1],C,k=w.target,T=Math.abs(O)>Math.abs(A)?"h":"v";if("touches"in w&&T==="h"&&k.type==="range")return!1;var M=cL(T,k);if(!M)return!0;if(M?C=T:(C=T==="v"?"h":"v",M=cL(T,k)),!M)return!1;if(!r.current&&"changedTouches"in w&&(O||A)&&(r.current=C),!C)return!0;var R=r.current||C;return uxe(R,b,w,R==="h"?O:A)},[]),d=y.useCallback(function(w){var b=w;if(!(!Oc.length||Oc[Oc.length-1]!==s)){var N="deltaY"in b?uL(b):Up(b),E=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&dxe(C.delta,N)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var O=(l.current.shards||[]).map(dL).filter(Boolean).filter(function(C){return C.contains(b.target)}),A=O.length>0?u(b,O[0]):!l.current.noIsolation;A&&b.cancelable&&b.preventDefault()}}},[]),f=y.useCallback(function(w,b,N,E){var O={name:w,delta:b,target:N,should:E,shadowParent:pxe(N)};t.current.push(O),setTimeout(function(){t.current=t.current.filter(function(A){return A!==O})},1)},[]),m=y.useCallback(function(w){n.current=Up(w),r.current=void 0},[]),p=y.useCallback(function(w){f(w.type,uL(w),w.target,u(w,e.lockRef.current))},[]),g=y.useCallback(function(w){f(w.type,Up(w),w.target,u(w,e.lockRef.current))},[]);y.useEffect(function(){return Oc.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Cc),document.addEventListener("touchmove",d,Cc),document.addEventListener("touchstart",m,Cc),function(){Oc=Oc.filter(function(w){return w!==s}),document.removeEventListener("wheel",d,Cc),document.removeEventListener("touchmove",d,Cc),document.removeEventListener("touchstart",m,Cc)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(s,{styles:fxe(a)}):null,x?y.createElement(rxe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function pxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const vxe=Hye(TF,mxe);var Hh=y.forwardRef(function(e,t){return y.createElement($y,ri({},e,{ref:t,sideCar:vxe}))});Hh.classNames=$y.classNames;var gxe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Ec=new WeakMap,Hp=new WeakMap,Wp={},n_=0,DF=function(e){return e&&(e.host||DF(e.parentNode))},yxe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=DF(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},xxe=function(e,t,n,r){var a=yxe(t,Array.isArray(e)?e:[e]);Wp[n]||(Wp[n]=new WeakMap);var s=Wp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",w=(Ec.get(g)||0)+1,b=(s.get(g)||0)+1;Ec.set(g,w),s.set(g,b),l.push(g),w===1&&j&&Hp.set(g,!0),b===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),n_++,function(){l.forEach(function(p){var g=Ec.get(p)-1,x=s.get(p)-1;Ec.set(p,g),s.set(p,x),g||(Hp.has(p)||p.removeAttribute(r),Hp.delete(p)),x||p.removeAttribute(n)}),n_--,n_||(Ec=new WeakMap,Ec=new WeakMap,Hp=new WeakMap,Wp={})}},Iy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=gxe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),xxe(r,a,n,"aria-hidden")):function(){return null}};function bxe(e){const t=wxe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Sxe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function wxe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=Nxe(a),u=_xe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var jxe=Symbol("radix.slottable");function Sxe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===jxe}function _xe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function Nxe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Ly="Dialog",[$F,IF]=hr(Ly),[Cxe,Ya]=$F(Ly),LF=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Na({prop:r,defaultProp:a??!1,onChange:s,caller:Ly});return i.jsx(Cxe,{scope:t,triggerRef:u,contentRef:d,contentId:Fn(),titleId:Fn(),descriptionId:Fn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};LF.displayName=Ly;var BF="DialogTrigger",zF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(BF,n),s=qe(t,a.triggerRef);return i.jsx(Pe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":cE(a.open),...r,ref:s,onClick:Se(e.onClick,a.onOpenToggle)})});zF.displayName=BF;var oE="DialogPortal",[Oxe,qF]=$F(oE,{forceMount:void 0}),FF=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=Ya(oE,t);return i.jsx(Oxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(Rn,{present:n||s.open,children:i.jsx(El,{asChild:!0,container:a,children:l})}))})};FF.displayName=oE;var Og="DialogOverlay",UF=y.forwardRef((e,t)=>{const n=qF(Og,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Ya(Og,e.__scopeDialog);return s.modal?i.jsx(Rn,{present:r||s.open,children:i.jsx(Axe,{...a,ref:t})}):null});UF.displayName=Og;var Exe=bxe("DialogOverlay.RemoveScroll"),Axe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(Og,n);return i.jsx(Hh,{as:Exe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx(Pe.div,{"data-state":cE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),vl="DialogContent",HF=y.forwardRef((e,t)=>{const n=qF(vl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Ya(vl,e.__scopeDialog);return i.jsx(Rn,{present:r||s.open,children:s.modal?i.jsx(Txe,{...a,ref:t}):i.jsx(kxe,{...a,ref:t})})});HF.displayName=vl;var Txe=y.forwardRef((e,t)=>{const n=Ya(vl,e.__scopeDialog),r=y.useRef(null),a=qe(t,n.contentRef,r);return y.useEffect(()=>{const s=r.current;if(s)return Iy(s)},[]),i.jsx(WF,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Se(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Se(e.onPointerDownOutside,s=>{const l=s.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&s.preventDefault()}),onFocusOutside:Se(e.onFocusOutside,s=>s.preventDefault())})}),kxe=y.forwardRef((e,t)=>{const n=Ya(vl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(WF,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),WF=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...l}=e,u=Ya(vl,n),d=y.useRef(null),f=qe(t,d);return Dy(),i.jsxs(i.Fragment,{children:[i.jsx(Uh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Ol,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":cE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(Pxe,{titleId:u.titleId}),i.jsx(Dxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),lE="DialogTitle",VF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(lE,n);return i.jsx(Pe.h2,{id:a.titleId,...r,ref:t})});VF.displayName=lE;var GF="DialogDescription",YF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(GF,n);return i.jsx(Pe.p,{id:a.descriptionId,...r,ref:t})});YF.displayName=GF;var KF="DialogClose",XF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ya(KF,n);return i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,()=>a.onOpenChange(!1))})});XF.displayName=KF;function cE(e){return e?"open":"closed"}var ZF="DialogTitleWarning",[Mxe,QF]=uZ(ZF,{contentName:vl,titleName:lE,docsSlug:"dialog"}),Pxe=({titleId:e})=>{const t=QF(ZF),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Rxe="DialogDescriptionWarning",Dxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${QF(Rxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},uE=LF,JF=zF,dE=FF,By=UF,zy=HF,fE=VF,hE=YF,mE=XF;const nr=uE,e8=JF,$xe=dE,t8=y.forwardRef(({className:e,...t},n)=>i.jsx(By,{ref:n,className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));t8.displayName=By.displayName;const Hn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs($xe,{children:[i.jsx(t8,{}),i.jsxs(zy,{ref:r,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(mE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Fh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Hn.displayName=zy.displayName;const Wn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Wn.displayName="DialogHeader";const $r=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});$r.displayName="DialogFooter";const Vn=y.forwardRef(({className:e,...t},n)=>i.jsx(fE,{ref:n,className:ce("text-lg font-semibold leading-none tracking-tight",e),...t}));Vn.displayName=fE.displayName;const dr=y.forwardRef(({className:e,...t},n)=>i.jsx(hE,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));dr.displayName=hE.displayName;var Ixe=Symbol("radix.slottable");function Lxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Ixe,t}var n8="AlertDialog",[Bxe]=hr(n8,[IF]),fs=IF(),r8=e=>{const{__scopeAlertDialog:t,...n}=e,r=fs(t);return i.jsx(uE,{...r,...n,modal:!0})};r8.displayName=n8;var zxe="AlertDialogTrigger",a8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(JF,{...a,...r,ref:t})});a8.displayName=zxe;var qxe="AlertDialogPortal",i8=e=>{const{__scopeAlertDialog:t,...n}=e,r=fs(t);return i.jsx(dE,{...r,...n})};i8.displayName=qxe;var Fxe="AlertDialogOverlay",s8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(By,{...a,...r,ref:t})});s8.displayName=Fxe;var Kc="AlertDialogContent",[Uxe,Hxe]=Bxe(Kc),Wxe=Lxe("AlertDialogContent"),o8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,s=fs(n),l=y.useRef(null),u=qe(t,l),d=y.useRef(null);return i.jsx(Mxe,{contentName:Kc,titleName:l8,docsSlug:"alert-dialog",children:i.jsx(Uxe,{scope:n,cancelRef:d,children:i.jsxs(zy,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:Se(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(Wxe,{children:r}),i.jsx(Gxe,{contentRef:l})]})})})});o8.displayName=Kc;var l8="AlertDialogTitle",c8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(fE,{...a,...r,ref:t})});c8.displayName=l8;var u8="AlertDialogDescription",d8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(hE,{...a,...r,ref:t})});d8.displayName=u8;var Vxe="AlertDialogAction",f8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=fs(n);return i.jsx(mE,{...a,...r,ref:t})});f8.displayName=Vxe;var h8="AlertDialogCancel",m8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=Hxe(h8,n),s=fs(n),l=qe(t,a);return i.jsx(mE,{...s,...r,ref:l})});m8.displayName=h8;var Gxe=({contentRef:e})=>{const t=`\`${Kc}\` requires a description for the component to be accessible for screen reader users. - -You can add a description to the \`${Kc}\` by passing a \`${u8}\` component as a child, which also benefits sighted users by adding visible context to the dialog. - -Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Kc}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. - -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},Yxe=r8,Kxe=a8,Xxe=i8,p8=s8,v8=o8,g8=f8,y8=m8,x8=c8,b8=d8;const Pn=Yxe,ra=Kxe,Zxe=Xxe,w8=y.forwardRef(({className:e,...t},n)=>i.jsx(p8,{className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));w8.displayName=p8.displayName;const yn=y.forwardRef(({className:e,...t},n)=>i.jsxs(Zxe,{children:[i.jsx(w8,{}),i.jsx(v8,{ref:n,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));yn.displayName=v8.displayName;const xn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-2 text-center sm:text-left",e),...t});xn.displayName="AlertDialogHeader";const bn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});bn.displayName="AlertDialogFooter";const wn=y.forwardRef(({className:e,...t},n)=>i.jsx(x8,{ref:n,className:ce("text-lg font-semibold",e),...t}));wn.displayName=x8.displayName;const jn=y.forwardRef(({className:e,...t},n)=>i.jsx(b8,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));jn.displayName=b8.displayName;const Sn=y.forwardRef(({className:e,...t},n)=>i.jsx(g8,{ref:n,className:ce(mh(),e),...t}));Sn.displayName=g8.displayName;const _n=y.forwardRef(({className:e,...t},n)=>i.jsx(y8,{ref:n,className:ce(mh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));_n.displayName=y8.displayName;function Qxe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(ul,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(Zs,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Ot,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(uF,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Ot,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(kge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Ot,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Vc,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Ot,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Au,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Vt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(en,{value:"appearance",className:"mt-0",children:i.jsx(Jxe,{})}),i.jsx(en,{value:"security",className:"mt-0",children:i.jsx(ebe,{})}),i.jsx(en,{value:"other",className:"mt-0",children:i.jsx(tbe,{})}),i.jsx(en,{value:"about",className:"mt-0",children:i.jsx(nbe,{})})]})]})]})}function fL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=s=>{s=s.replace("#","");const l=parseInt(s.substring(0,2),16)/255,u=parseInt(s.substring(2,4),16)/255,d=parseInt(s.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";fL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),fL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(r_,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(r_,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(r_,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(ba,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(ba,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(ba,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(ba,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(ba,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(ba,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(ba,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(ba,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(ba,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(ba,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(ba,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(ba,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ne,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(J,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(at,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(J,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(at,{id:"waves-background",checked:a,onCheckedChange:s})]})})]})]})]})}function ebe(){const e=sa(),[t,n]=y.useState(""),[r,a]=y.useState(""),[s,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(""),[O,A]=y.useState(!1),{toast:C}=mr(),k=y.useMemo(()=>pye(r),[r]),T=()=>localStorage.getItem("access-token")||"",M=async F=>{try{await navigator.clipboard.writeText(F),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},R=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const F=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${F}`,variant:"destructive"});return}m(!0);try{const F=T(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`},body:JSON.stringify({new_token:r.trim()})}),B=await G.json();G.ok&&B.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:B.message||"无法更新 Token",variant:"destructive"})}catch(F){console.error("更新 Token 错误:",F),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},L=async()=>{g(!0);try{const F=T(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${F}`}}),B=await G.json();G.ok&&B.success?(localStorage.setItem("access-token",B.token),n(B.token),E(B.token),b(!0),A(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:B.message||"无法生成新 Token",variant:"destructive"})}catch(F){console.error("生成 Token 错误:",F),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},$=async()=>{try{await navigator.clipboard.writeText(N),A(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},H=()=>{b(!1),setTimeout(()=>{E(""),A(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=F=>{F||H()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(nr,{open:w,onOpenChange:V,children:i.jsxs(Hn,{className:"sm:max-w-md",children:[i.jsxs(Wn,{children:[i.jsxs(Vn,{className:"flex items-center gap-2",children:[i.jsx(Gc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(dr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(J,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Gc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs($r,{className:"gap-2 sm:gap-0",children:[i.jsx(de,{variant:"outline",onClick:$,className:"gap-2",children:O?i.jsxs(i.Fragment,{children:[i.jsx(il,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(YN,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(de,{onClick:H,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ne,{id:"current-token",type:s?"text":"password",value:t||T(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(T()),l(!s)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:s?"隐藏":"显示",children:s?i.jsx(XN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ua,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(de,{variant:"outline",size:"icon",onClick:()=>M(T()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(il,{className:"h-4 w-4 text-green-500"}):i.jsx(YN,{className:"h-4 w-4"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs(de,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(ol,{className:ce("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认重新生成 Token"}),i.jsx(jn,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:L,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ne,{id:"new-token",type:u?"text":"password",value:r,onChange:F=>a(F.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(XN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ua,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(F=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[F.passed?i.jsx(Ws,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(GN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:ce(F.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:F.label})]},F.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(il,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(de,{onClick:R,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function tbe(){const e=sa(),{toast:t}=mr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const s=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${s}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(s){console.error("重置配置状态错误:",s),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs(de,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(wge,{className:ce("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认重新配置"}),i.jsx(jn,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function nbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",sE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",iE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Vt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(Jt,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(Jt,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(Jt,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(Jt,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(Jt,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(Jt,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(Jt,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(Jt,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(Jt,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(Jt,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(Jt,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(Jt,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(Jt,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(Jt,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(Jt,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(Jt,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(Jt,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function Jt({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function r_({value:e,current:t,onChange:n,label:r,description:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function ba({value:e,current:t,onChange:n,label:r,colorClass:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:ce("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class rbe{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const s=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),s),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),s),l)}}function abe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new rbe(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,s=e.current;if(!a||!s)return;const l=r.current,u=()=>{const w=a.getBoundingClientRect();l.bounding=w,s.style.width=`${w.width}px`,s.style.height=`${w.height}px`},d=()=>{if(!l.bounding)return;const{width:w,height:b}=l.bounding;l.lines=[],l.paths.forEach(R=>R.remove()),l.paths=[];const N=10,E=32,O=w+200,A=b+30,C=Math.ceil(O/N),k=Math.ceil(A/E),T=(w-N*C)/2,M=(b-E*k)/2;for(let R=0;R<=C;R++){const L=[];for(let H=0;H<=k;H++){const V={x:T+N*R,y:M+E*H,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};L.push(V)}const $=document.createElementNS("http://www.w3.org/2000/svg","path");s.appendChild($),l.paths.push($),l.lines.push(L)}},f=w=>{const{lines:b,mouse:N,noise:E}=l;b.forEach(O=>{O.forEach(A=>{const C=E.perlin2((A.x+w*.0125)*.002,(A.y+w*.005)*.0015)*12;A.wave.x=Math.cos(C)*32,A.wave.y=Math.sin(C)*16;const k=A.x-N.sx,T=A.y-N.sy,M=Math.hypot(k,T),R=Math.max(175,N.vs);if(M{const N={x:w.x+w.wave.x+(b?w.cursor.x:0),y:w.y+w.wave.y+(b?w.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:w,paths:b}=l;w.forEach((N,E)=>{let O=m(N[0],!1),A=`M ${O.x} ${O.y}`;N.forEach((C,k)=>{const T=k===N.length-1;O=m(C,!T),A+=`L ${O.x} ${O.y}`}),b[E].setAttribute("d",A)})},g=w=>{const{mouse:b}=l;b.sx+=(b.x-b.sx)*.1,b.sy+=(b.y-b.sy)*.1;const N=b.x-b.lx,E=b.y-b.ly,O=Math.hypot(N,E);b.v=O,b.vs+=(O-b.vs)*.1,b.vs=Math.min(100,b.vs),b.lx=b.x,b.ly=b.y,b.a=Math.atan2(E,N),a&&(a.style.setProperty("--x",`${b.sx}px`),a.style.setProperty("--y",`${b.sy}px`)),f(w),p(),n.current=requestAnimationFrame(g)},x=w=>{if(!l.bounding)return;const{mouse:b}=l;b.x=w.pageX-l.bounding.left,b.y=w.pageY-l.bounding.top+window.scrollY,b.set||(b.sx=b.x,b.sy=b.y,b.lx=b.x,b.ly=b.y,b.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` - path { - fill: none; - stroke: hsl(var(--primary) / 0.20); - stroke-width: 1px; - } - `})})]})}function ibe(){const e=sa();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function j8(){return!!localStorage.getItem("access-token")}function sbe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,s]=y.useState(""),l=sa(),{enableWavesBackground:u,setEnableWavesBackground:d}=pF(),{theme:f,setTheme:m}=aE();y.useEffect(()=>{j8()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async w=>{if(w.preventDefault(),s(""),!e.trim()){s("请输入 Access Token");return}r(!0);try{const b=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await b.json();if(b.ok&&N.valid){localStorage.setItem("access-token",e.trim());const E=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),O=await E.json();E.ok&&O.is_first_setup?l({to:"/setup"}):l({to:"/"})}else s(N.message||"Token 验证失败,请检查后重试")}catch(b){console.error("Token 验证错误:",b),s("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(abe,{}),i.jsxs(ot,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(eC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(JN,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(qt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(YI,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Ft,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(er,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(sn,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx(rge,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ne,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:w=>t(w.target.value),className:ce("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(Sg,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(de,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(nr,{children:[i.jsx(e8,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(Dve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Hn,{className:"sm:max-w-md",children:[i.jsxs(Wn,{children:[i.jsxs(Vn,{className:"flex items-center gap-2",children:[i.jsx(YI,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(dr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(qge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(tE,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Sg,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(hh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsxs(wn,{className:"flex items-center gap-2",children:[i.jsx(hh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(jn,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:vye})})]})}const Wt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Wt.displayName="Textarea";var obe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],lbe=obe.reduce((e,t)=>{const n=Th(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),cbe="Separator",hL="horizontal",ube=["horizontal","vertical"],S8=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=hL,...a}=e,s=dbe(r)?r:hL,u=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return i.jsx(lbe.div,{"data-orientation":s,...u,...a,ref:t})});S8.displayName=cbe;function dbe(e){return ube.includes(e)}var _8=S8;const ph=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(_8,{ref:a,decorative:n,orientation:t,className:ce("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));ph.displayName=_8.displayName;const fbe=Yu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Dt({className:e,variant:t,...n}){return i.jsx("div",{className:ce(fbe({variant:t}),e),...n})}function hbe({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((s,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ne,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ne,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,s)=>i.jsxs(Dt,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(s),className:"ml-1 hover:text-destructive",children:i.jsx(Fh,{className:"h-3 w-3"})})]},s))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(de,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function mbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Wt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Wt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Wt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(ph,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Wt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Wt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function pbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ne,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(at,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(ph,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(at,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(at,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function vbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(at,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(ph,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(at,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ne,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(J,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Wt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(ph,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(J,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(at,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function Qe(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function lt(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function gbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function ybe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function xbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function bbe(){const e=await Qe("/api/webui/config/bot",{method:"GET",headers:lt()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},s=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:s.all_global??!0}}async function wbe(e){const t=await Qe("/api/webui/config/bot/section/bot",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function jbe(e){const t=await Qe("/api/webui/config/bot/section/personality",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function Sbe(e){const t=await Qe("/api/webui/config/bot/section/emoji",{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function _be(e){const t=[];t.push(Qe("/api/webui/config/bot/section/tool",{method:"POST",headers:lt(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(Qe("/api/webui/config/bot/section/jargon",{method:"POST",headers:lt(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(Qe("/api/webui/config/bot/section/mood",{method:"POST",headers:lt(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const s=await a.json();throw new Error(s.detail||"保存其他配置失败")}return{success:!0}}async function mL(){const e=localStorage.getItem("access-token"),t=await Qe("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function Nbe(){const e=sa(),{toast:t}=mr(),[n,r]=y.useState(0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.请控制你的发言频率,不要太过频繁的发言 -4.如果有人对你感到厌烦,请减少回复 -5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.某句话如果已经被回复过,不要重复回复`}),[j,w]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[b,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),E=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:bve},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:fF},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:rE},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Vc},{id:"complete",title:"完成设置",description:"后续配置提示",icon:hh}],O=(n+1)/E.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[$,H,V,F]=await Promise.all([gbe(),ybe(),xbe(),bbe()]);p($),x(H),w(V),N(F)}catch($){t({title:"加载配置失败",description:$ instanceof Error?$.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const A=async()=>{u(!0);try{switch(n){case 0:await wbe(m);break;case 1:await jbe(g);break;case 2:await Sbe(j);break;case 3:await _be(b);break}return t({title:"保存成功",description:`${E[n].title}配置已保存`}),!0}catch(L){return t({title:"保存失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await A()&&n{n>0&&r(n-1)},T=async()=>{s(!0);try{if(!await A()){s(!1);return}await mL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(L){t({title:"完成失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}finally{s(!1)}},M=async()=>{try{await mL(),e({to:"/"})}catch(L){t({title:"跳过失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}},R=()=>{switch(n){case 0:return i.jsx(hbe,{config:m,onChange:p});case 1:return i.jsx(mbe,{config:g,onChange:x});case 2:return i.jsx(pbe,{config:j,onChange:w});case 3:return i.jsx(vbe,{config:b,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(hh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx($ge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",sE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",E.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(O),"%"]})]}),i.jsx(Yg,{value:O,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:E.map((L,$)=>{const H=L.icon;return i.jsxs("div",{className:ce("flex flex-1 flex-col items-center gap-1 md:gap-2",$e({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(Cg,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(de,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(sF,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var C8=["PageUp","PageDown"],O8=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],E8={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Ku="Slider",[rC,Cbe,Obe]=Eh(Ku),[A8]=hr(Ku,[Obe]),[Ebe,qy]=A8(Ku),T8=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:s=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...w}=e,b=y.useRef(new Set),N=y.useRef(0),O=l==="horizontal"?Abe:Tbe,[A=[],C]=Na({prop:m,defaultProp:f,onChange:$=>{[...b.current][N.current]?.focus(),p($)}}),k=y.useRef(A);function T($){const H=Dbe(A,$);L($,H)}function M($){L($,N.current)}function R(){const $=k.current[N.current];A[N.current]!==$&&g(A)}function L($,H,{commit:V}={commit:!1}){const F=Bbe(s),G=zbe(Math.round(($-r)/s)*s+r,F),B=Tf(G,[r,a]);C((D=[])=>{const U=Pbe(D,B,H);if(Lbe(U,d*s)){N.current=U.indexOf(B);const K=String(U)!==String(D);return K&&V&&g(U),K?U:D}else return D})}return i.jsx(Ebe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:b.current,values:A,orientation:l,form:j,children:i.jsx(rC.Provider,{scope:e.__scopeSlider,children:i.jsx(rC.Slot,{scope:e.__scopeSlider,children:i.jsx(O,{"aria-disabled":u,"data-disabled":u?"":void 0,...w,ref:t,onPointerDown:Se(w.onPointerDown,()=>{u||(k.current=A)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:T,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:R,onHomeKeyDown:()=>!u&&L(r,0,{commit:!0}),onEndKeyDown:()=>!u&&L(a,A.length-1,{commit:!0}),onStepKeyDown:({event:$,direction:H})=>{if(!u){const G=C8.includes($.key)||$.shiftKey&&O8.includes($.key)?10:1,B=N.current,D=A[B],U=s*G*H;L(D+U,B,{commit:!0})}}})})})})});T8.displayName=Ku;var[k8,M8]=A8(Ku,{startEdge:"left",endEdge:"right",size:"width",direction:1}),Abe=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:s,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=qe(t,O=>g(O)),j=y.useRef(void 0),w=Bu(a),b=w==="ltr",N=b&&!s||!b&&s;function E(O){const A=j.current||p.getBoundingClientRect(),C=[0,A.width],T=pE(C,N?[n,r]:[r,n]);return j.current=A,T(O-A.left)}return i.jsx(k8,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(P8,{dir:w,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:O=>{const A=E(O.clientX);l?.(A)},onSlideMove:O=>{const A=E(O.clientX);u?.(A)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:O=>{const C=E8[N?"from-left":"from-right"].includes(O.key);f?.({event:O,direction:C?-1:1})}})})}),Tbe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:s,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=qe(t,m),g=y.useRef(void 0),x=!a;function j(w){const b=g.current||m.current.getBoundingClientRect(),N=[0,b.height],O=pE(N,x?[r,n]:[n,r]);return g.current=b,O(w-b.top)}return i.jsx(k8,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(P8,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const b=j(w.clientY);s?.(b)},onSlideMove:w=>{const b=j(w.clientY);l?.(b)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:w=>{const N=E8[x?"from-bottom":"from-top"].includes(w.key);d?.({event:w,direction:N?-1:1})}})})}),P8=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:s,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=qy(Ku,n);return i.jsx(Pe.span,{...f,ref:t,onKeyDown:Se(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):C8.concat(O8).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:Se(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:Se(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:Se(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),s(p))})})}),R8="SliderTrack",D8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=qy(R8,n);return i.jsx(Pe.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});D8.displayName=R8;var aC="SliderRange",$8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=qy(aC,n),s=M8(aC,n),l=y.useRef(null),u=qe(t,l),d=a.values.length,f=a.values.map(g=>B8(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx(Pe.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[s.startEdge]:m+"%",[s.endEdge]:p+"%"}})});$8.displayName=aC;var iC="SliderThumb",I8=y.forwardRef((e,t)=>{const n=Cbe(e.__scopeSlider),[r,a]=y.useState(null),s=qe(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(kbe,{...e,ref:s,index:l})}),kbe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...s}=e,l=qy(iC,n),u=M8(iC,n),[d,f]=y.useState(null),m=qe(t,E=>f(E)),p=d?l.form||!!d.closest("form"):!0,g=Py(d),x=l.values[r],j=x===void 0?0:B8(x,l.min,l.max),w=Rbe(r,l.values.length),b=g?.[u.size],N=b?$be(b,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(rC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx(Pe.span,{role:"slider","aria-label":e["aria-label"]||w,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...s,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:Se(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(L8,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});I8.displayName=iC;var Mbe="RadioBubbleInput",L8=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),s=qe(a,r),l=My(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx(Pe.input,{style:{display:"none"},...n,ref:s,defaultValue:t})});L8.displayName=Mbe;function Pbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,s)=>a-s)}function B8(e,t,n){const s=100/(n-t)*(e-t);return Tf(s,[0,100])}function Rbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Dbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function $be(e,t,n){const r=e/2,s=pE([0,50],[0,r]);return(r-s(t)*n)*n}function Ibe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Lbe(e,t){if(t>0){const n=Ibe(e);return Math.min(...n)>=t}return!0}function pE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Bbe(e){return(String(e).split(".")[1]||"").length}function zbe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var z8=T8,qbe=D8,Fbe=$8,Ube=I8;const vE=y.forwardRef(({className:e,...t},n)=>i.jsxs(z8,{ref:n,className:ce("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(qbe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Fbe,{className:"absolute h-full bg-primary"})}),i.jsx(Ube,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));vE.displayName=z8.displayName;const Hbe=["top","right","bottom","left"],Qs=Math.min,Jr=Math.max,Eg=Math.round,Vp=Math.floor,mi=e=>({x:e,y:e}),Wbe={left:"right",right:"left",bottom:"top",top:"bottom"},Vbe={start:"end",end:"start"};function sC(e,t,n){return Jr(e,Qs(t,n))}function is(e,t){return typeof e=="function"?e(t):e}function ss(e){return e.split("-")[0]}function Xu(e){return e.split("-")[1]}function gE(e){return e==="x"?"y":"x"}function yE(e){return e==="y"?"height":"width"}const Gbe=new Set(["top","bottom"]);function ci(e){return Gbe.has(ss(e))?"y":"x"}function xE(e){return gE(ci(e))}function Ybe(e,t,n){n===void 0&&(n=!1);const r=Xu(e),a=xE(e),s=yE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Ag(l)),[l,Ag(l)]}function Kbe(e){const t=Ag(e);return[oC(e),t,oC(t)]}function oC(e){return e.replace(/start|end/g,t=>Vbe[t])}const pL=["left","right"],vL=["right","left"],Xbe=["top","bottom"],Zbe=["bottom","top"];function Qbe(e,t,n){switch(e){case"top":case"bottom":return n?t?vL:pL:t?pL:vL;case"left":case"right":return t?Xbe:Zbe;default:return[]}}function Jbe(e,t,n,r){const a=Xu(e);let s=Qbe(ss(e),n==="start",r);return a&&(s=s.map(l=>l+"-"+a),t&&(s=s.concat(s.map(oC)))),s}function Ag(e){return e.replace(/left|right|bottom|top/g,t=>Wbe[t])}function e0e(e){return{top:0,right:0,bottom:0,left:0,...e}}function q8(e){return typeof e!="number"?e0e(e):{top:e,right:e,bottom:e,left:e}}function Tg(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function gL(e,t,n){let{reference:r,floating:a}=e;const s=ci(t),l=xE(t),u=yE(l),d=ss(t),f=s==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(Xu(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const t0e=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:l}=n,u=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=gL(f,r,d),g=r,x={},j=0;for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=is(e,t)||{};if(f==null)return{};const p=q8(m),g={x:n,y:r},x=xE(a),j=yE(x),w=await l.getDimensions(f),b=x==="y",N=b?"top":"left",E=b?"bottom":"right",O=b?"clientHeight":"clientWidth",A=s.reference[j]+s.reference[x]-g[x]-s.floating[j],C=g[x]-s.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let T=k?k[O]:0;(!T||!await(l.isElement==null?void 0:l.isElement(k)))&&(T=u.floating[O]||s.floating[j]);const M=A/2-C/2,R=T/2-w[j]/2-1,L=Qs(p[N],R),$=Qs(p[E],R),H=L,V=T-w[j]-$,F=T/2-w[j]/2+M,G=sC(H,F,V),B=!d.arrow&&Xu(a)!=null&&F!==G&&s.reference[j]/2-(FF<=0)){var $,H;const F=((($=s.flip)==null?void 0:$.index)||0)+1,G=T[F];if(G&&(!(p==="alignment"?E!==ci(G):!1)||L.every(U=>ci(U.placement)===E?U.overflows[0]>0:!0)))return{data:{index:F,overflows:L},reset:{placement:G}};let B=(H=L.filter(D=>D.overflows[0]<=0).sort((D,U)=>D.overflows[1]-U.overflows[1])[0])==null?void 0:H.placement;if(!B)switch(x){case"bestFit":{var V;const D=(V=L.filter(U=>{if(k){const K=ci(U.placement);return K===E||K==="y"}return!0}).map(U=>[U.placement,U.overflows.filter(K=>K>0).reduce((K,te)=>K+te,0)]).sort((U,K)=>U[1]-K[1])[0])==null?void 0:V[0];D&&(B=D);break}case"initialPlacement":B=u;break}if(a!==B)return{reset:{placement:B}}}return{}}}};function yL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function xL(e){return Hbe.some(t=>e[t]>=0)}const a0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=is(e,t);switch(r){case"referenceHidden":{const s=await vh(t,{...a,elementContext:"reference"}),l=yL(s,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:xL(l)}}}case"escaped":{const s=await vh(t,{...a,altBoundary:!0}),l=yL(s,n.floating);return{data:{escapedOffsets:l,escaped:xL(l)}}}default:return{}}}}},F8=new Set(["left","top"]);async function i0e(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=ss(n),u=Xu(n),d=ci(n)==="y",f=F8.has(l)?-1:1,m=s&&d?-1:1,p=is(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const s0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:l,middlewareData:u}=t,d=await i0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:s+d.y,data:{...d,placement:l}}}}},o0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:b=>{let{x:N,y:E}=b;return{x:N,y:E}}},...d}=is(e,t),f={x:n,y:r},m=await vh(t,d),p=ci(ss(a)),g=gE(p);let x=f[g],j=f[p];if(s){const b=g==="y"?"top":"left",N=g==="y"?"bottom":"right",E=x+m[b],O=x-m[N];x=sC(E,x,O)}if(l){const b=p==="y"?"top":"left",N=p==="y"?"bottom":"right",E=j+m[b],O=j-m[N];j=sC(E,j,O)}const w=u.fn({...t,[g]:x,[p]:j});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[g]:s,[p]:l}}}}}},l0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=is(e,t),m={x:n,y:r},p=ci(a),g=gE(p);let x=m[g],j=m[p];const w=is(u,t),b=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const O=g==="y"?"height":"width",A=s.reference[g]-s.floating[O]+b.mainAxis,C=s.reference[g]+s.reference[O]-b.mainAxis;xC&&(x=C)}if(f){var N,E;const O=g==="y"?"width":"height",A=F8.has(ss(a)),C=s.reference[p]-s.floating[O]+(A&&((N=l.offset)==null?void 0:N[p])||0)+(A?0:b.crossAxis),k=s.reference[p]+s.reference[O]+(A?0:((E=l.offset)==null?void 0:E[p])||0)-(A?b.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},c0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:l,elements:u}=t,{apply:d=()=>{},...f}=is(e,t),m=await vh(t,f),p=ss(a),g=Xu(a),x=ci(a)==="y",{width:j,height:w}=s.floating;let b,N;p==="top"||p==="bottom"?(b=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,b=g==="end"?"top":"bottom");const E=w-m.top-m.bottom,O=j-m.left-m.right,A=Qs(w-m[b],E),C=Qs(j-m[N],O),k=!t.middlewareData.shift;let T=A,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=O),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=E),k&&!g){const L=Jr(m.left,0),$=Jr(m.right,0),H=Jr(m.top,0),V=Jr(m.bottom,0);x?M=j-2*(L!==0||$!==0?L+$:Jr(m.left,m.right)):T=w-2*(H!==0||V!==0?H+V:Jr(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:T});const R=await l.getDimensions(u.floating);return j!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function Fy(){return typeof window<"u"}function Zu(e){return U8(e)?(e.nodeName||"").toLowerCase():"#document"}function aa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ji(e){var t;return(t=(U8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function U8(e){return Fy()?e instanceof Node||e instanceof aa(e).Node:!1}function Ha(e){return Fy()?e instanceof Element||e instanceof aa(e).Element:!1}function yi(e){return Fy()?e instanceof HTMLElement||e instanceof aa(e).HTMLElement:!1}function bL(e){return!Fy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof aa(e).ShadowRoot}const u0e=new Set(["inline","contents"]);function Wh(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Wa(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!u0e.has(a)}const d0e=new Set(["table","td","th"]);function f0e(e){return d0e.has(Zu(e))}const h0e=[":popover-open",":modal"];function Uy(e){return h0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const m0e=["transform","translate","scale","rotate","perspective"],p0e=["transform","translate","scale","rotate","perspective","filter"],v0e=["paint","layout","strict","content"];function bE(e){const t=wE(),n=Ha(e)?Wa(e):e;return m0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||p0e.some(r=>(n.willChange||"").includes(r))||v0e.some(r=>(n.contain||"").includes(r))}function g0e(e){let t=Js(e);for(;yi(t)&&!Mu(t);){if(bE(t))return t;if(Uy(t))return null;t=Js(t)}return null}function wE(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const y0e=new Set(["html","body","#document"]);function Mu(e){return y0e.has(Zu(e))}function Wa(e){return aa(e).getComputedStyle(e)}function Hy(e){return Ha(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Js(e){if(Zu(e)==="html")return e;const t=e.assignedSlot||e.parentNode||bL(e)&&e.host||ji(e);return bL(t)?t.host:t}function H8(e){const t=Js(e);return Mu(t)?e.ownerDocument?e.ownerDocument.body:e.body:yi(t)&&Wh(t)?t:H8(t)}function gh(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=H8(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),l=aa(a);if(s){const u=lC(l);return t.concat(l,l.visualViewport||[],Wh(a)?a:[],u&&n?gh(u):[])}return t.concat(a,gh(a,[],n))}function lC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function W8(e){const t=Wa(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=yi(e),s=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Eg(n)!==s||Eg(r)!==l;return u&&(n=s,r=l),{width:n,height:r,$:u}}function jE(e){return Ha(e)?e:e.contextElement}function Xc(e){const t=jE(e);if(!yi(t))return mi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=W8(t);let l=(s?Eg(n.width):n.width)/r,u=(s?Eg(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const x0e=mi(0);function V8(e){const t=aa(e);return!wE()||!t.visualViewport?x0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function b0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==aa(e)?!1:t}function gl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=jE(e);let l=mi(1);t&&(r?Ha(r)&&(l=Xc(r)):l=Xc(e));const u=b0e(s,n,r)?V8(s):mi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(s){const g=aa(s),x=r&&Ha(r)?aa(r):r;let j=g,w=lC(j);for(;w&&r&&x!==j;){const b=Xc(w),N=w.getBoundingClientRect(),E=Wa(w),O=N.left+(w.clientLeft+parseFloat(E.paddingLeft))*b.x,A=N.top+(w.clientTop+parseFloat(E.paddingTop))*b.y;d*=b.x,f*=b.y,m*=b.x,p*=b.y,d+=O,f+=A,j=aa(w),w=lC(j)}}return Tg({width:m,height:p,x:d,y:f})}function Wy(e,t){const n=Hy(e).scrollLeft;return t?t.left+n:gl(ji(e)).left+n}function G8(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Wy(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function w0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",l=ji(r),u=t?Uy(t.floating):!1;if(r===l||u&&s)return n;let d={scrollLeft:0,scrollTop:0},f=mi(1);const m=mi(0),p=yi(r);if((p||!p&&!s)&&((Zu(r)!=="body"||Wh(l))&&(d=Hy(r)),yi(r))){const x=gl(r);f=Xc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!s?G8(l,d):mi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function j0e(e){return Array.from(e.getClientRects())}function S0e(e){const t=ji(e),n=Hy(e),r=e.ownerDocument.body,a=Jr(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=Jr(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Wy(e);const u=-n.scrollTop;return Wa(r).direction==="rtl"&&(l+=Jr(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:l,y:u}}const wL=25;function _0e(e,t){const n=aa(e),r=ji(e),a=n.visualViewport;let s=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){s=a.width,l=a.height;const m=wE();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Wy(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=wL&&(s-=j)}else f<=wL&&(s+=f);return{width:s,height:l,x:u,y:d}}const N0e=new Set(["absolute","fixed"]);function C0e(e,t){const n=gl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=yi(e)?Xc(e):mi(1),l=e.clientWidth*s.x,u=e.clientHeight*s.y,d=a*s.x,f=r*s.y;return{width:l,height:u,x:d,y:f}}function jL(e,t,n){let r;if(t==="viewport")r=_0e(e,n);else if(t==="document")r=S0e(ji(e));else if(Ha(t))r=C0e(t,n);else{const a=V8(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return Tg(r)}function Y8(e,t){const n=Js(e);return n===t||!Ha(n)||Mu(n)?!1:Wa(n).position==="fixed"||Y8(n,t)}function O0e(e,t){const n=t.get(e);if(n)return n;let r=gh(e,[],!1).filter(u=>Ha(u)&&Zu(u)!=="body"),a=null;const s=Wa(e).position==="fixed";let l=s?Js(e):e;for(;Ha(l)&&!Mu(l);){const u=Wa(l),d=bE(l);!d&&u.position==="fixed"&&(a=null),(s?!d&&!a:!d&&u.position==="static"&&!!a&&N0e.has(a.position)||Wh(l)&&!d&&Y8(e,l))?r=r.filter(m=>m!==l):a=u,l=Js(l)}return t.set(e,r),r}function E0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?Uy(t)?[]:O0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=jL(t,m,a);return f.top=Jr(p.top,f.top),f.right=Qs(p.right,f.right),f.bottom=Qs(p.bottom,f.bottom),f.left=Jr(p.left,f.left),f},jL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function A0e(e){const{width:t,height:n}=W8(e);return{width:t,height:n}}function T0e(e,t,n){const r=yi(t),a=ji(t),s=n==="fixed",l=gl(e,!0,s,t);let u={scrollLeft:0,scrollTop:0};const d=mi(0);function f(){d.x=Wy(a)}if(r||!r&&!s)if((Zu(t)!=="body"||Wh(a))&&(u=Hy(t)),r){const x=gl(t,!0,s,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();s&&!r&&a&&f();const m=a&&!r&&!s?G8(a,u):mi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function a_(e){return Wa(e).position==="static"}function SL(e,t){if(!yi(e)||Wa(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return ji(e)===n&&(n=n.ownerDocument.body),n}function K8(e,t){const n=aa(e);if(Uy(e))return n;if(!yi(e)){let a=Js(e);for(;a&&!Mu(a);){if(Ha(a)&&!a_(a))return a;a=Js(a)}return n}let r=SL(e,t);for(;r&&f0e(r)&&a_(r);)r=SL(r,t);return r&&Mu(r)&&a_(r)&&!bE(r)?n:r||g0e(e)||n}const k0e=async function(e){const t=this.getOffsetParent||K8,n=this.getDimensions,r=await n(e.floating);return{reference:T0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function M0e(e){return Wa(e).direction==="rtl"}const P0e={convertOffsetParentRelativeRectToViewportRelativeRect:w0e,getDocumentElement:ji,getClippingRect:E0e,getOffsetParent:K8,getElementRects:k0e,getClientRects:j0e,getDimensions:A0e,getScale:Xc,isElement:Ha,isRTL:M0e};function X8(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function R0e(e,t){let n=null,r;const a=ji(e);function s(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),s();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Vp(p),w=Vp(a.clientWidth-(m+g)),b=Vp(a.clientHeight-(p+x)),N=Vp(m),O={rootMargin:-j+"px "+-w+"px "+-b+"px "+-N+"px",threshold:Jr(0,Qs(1,d))||1};let A=!0;function C(k){const T=k[0].intersectionRatio;if(T!==d){if(!A)return l();T?l(!1,T):r=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!X8(f,e.getBoundingClientRect())&&l(),A=!1}try{n=new IntersectionObserver(C,{...O,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,O)}n.observe(e)}return l(!0),s}function D0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=jE(e),m=a||s?[...f?gh(f):[],...gh(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),s&&N.addEventListener("resize",n)});const p=f&&u?R0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[E]=N;E&&E.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var O;(O=x)==null||O.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,w=d?gl(e):null;d&&b();function b(){const N=gl(e);w&&!X8(w,N)&&n(),w=N,j=requestAnimationFrame(b)}return n(),()=>{var N;m.forEach(E=>{a&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const $0e=s0e,I0e=o0e,L0e=r0e,B0e=c0e,z0e=a0e,_L=n0e,q0e=l0e,F0e=(e,t,n)=>{const r=new Map,a={platform:P0e,...n},s={...a.platform,_c:r};return t0e(e,t,{...a,platform:s})};var U0e=typeof document<"u",H0e=function(){},uv=U0e?y.useLayoutEffect:H0e;function kg(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!kg(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!kg(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function Z8(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function NL(e,t){const n=Z8(e);return Math.round(t*n)/n}function i_(e){const t=y.useRef(e);return uv(()=>{t.current=e}),t}function W0e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);kg(g,r)||x(r);const[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useCallback(U=>{U!==k.current&&(k.current=U,w(U))},[]),O=y.useCallback(U=>{U!==T.current&&(T.current=U,N(U))},[]),A=s||j,C=l||b,k=y.useRef(null),T=y.useRef(null),M=y.useRef(m),R=d!=null,L=i_(d),$=i_(a),H=i_(f),V=y.useCallback(()=>{if(!k.current||!T.current)return;const U={placement:t,strategy:n,middleware:g};$.current&&(U.platform=$.current),F0e(k.current,T.current,U).then(K=>{const te={...K,isPositioned:H.current!==!1};F.current&&!kg(M.current,te)&&(M.current=te,wl.flushSync(()=>{p(te)}))})},[g,t,n,$,H]);uv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(U=>({...U,isPositioned:!1})))},[f]);const F=y.useRef(!1);uv(()=>(F.current=!0,()=>{F.current=!1}),[]),uv(()=>{if(A&&(k.current=A),C&&(T.current=C),A&&C){if(L.current)return L.current(A,C,V);V()}},[A,C,V,L,R]);const G=y.useMemo(()=>({reference:k,floating:T,setReference:E,setFloating:O}),[E,O]),B=y.useMemo(()=>({reference:A,floating:C}),[A,C]),D=y.useMemo(()=>{const U={position:n,left:0,top:0};if(!B.floating)return U;const K=NL(B.floating,m.x),te=NL(B.floating,m.y);return u?{...U,transform:"translate("+K+"px, "+te+"px)",...Z8(B.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:K,top:te}},[n,u,B.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:B,floatingStyles:D}),[m,V,G,B,D])}const V0e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?_L({element:r.current,padding:a}).fn(n):{}:r?_L({element:r,padding:a}).fn(n):{}}}},G0e=(e,t)=>({...$0e(e),options:[e,t]}),Y0e=(e,t)=>({...I0e(e),options:[e,t]}),K0e=(e,t)=>({...q0e(e),options:[e,t]}),X0e=(e,t)=>({...L0e(e),options:[e,t]}),Z0e=(e,t)=>({...B0e(e),options:[e,t]}),Q0e=(e,t)=>({...z0e(e),options:[e,t]}),J0e=(e,t)=>({...V0e(e),options:[e,t]});var ewe="Arrow",Q8=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return i.jsx(Pe.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});Q8.displayName=ewe;var twe=Q8,SE="Popper",[J8,co]=hr(SE),[nwe,eU]=J8(SE),tU=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(nwe,{scope:t,anchor:r,onAnchorChange:a,children:n})};tU.displayName=SE;var nU="PopperAnchor",rU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=eU(nU,n),l=y.useRef(null),u=qe(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&s.onAnchorChange(d.current)}),r?null:i.jsx(Pe.div,{...a,ref:u})});rU.displayName=nU;var _E="PopperContent",[rwe,awe]=J8(_E),aU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...w}=e,b=eU(_E,n),[N,E]=y.useState(null),O=qe(t,ee=>E(ee)),[A,C]=y.useState(null),k=Py(A),T=k?.width??0,M=k?.height??0,R=r+(s!=="center"?"-"+s:""),L=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},$=Array.isArray(f)?f:[f],H=$.length>0,V={padding:L,boundary:$.filter(swe),altBoundary:H},{refs:F,floatingStyles:G,placement:B,isPositioned:D,middlewareData:U}=W0e({strategy:"fixed",placement:R,whileElementsMounted:(...ee)=>D0e(...ee,{animationFrame:x==="always"}),elements:{reference:b.anchor},middleware:[G0e({mainAxis:a+M,alignmentAxis:l}),d&&Y0e({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?K0e():void 0,...V}),d&&X0e({...V}),Z0e({...V,apply:({elements:ee,rects:ae,availableWidth:Z,availableHeight:ve})=>{const{width:je,height:le}=ae.reference,Re=ee.floating.style;Re.setProperty("--radix-popper-available-width",`${Z}px`),Re.setProperty("--radix-popper-available-height",`${ve}px`),Re.setProperty("--radix-popper-anchor-width",`${je}px`),Re.setProperty("--radix-popper-anchor-height",`${le}px`)}}),A&&J0e({element:A,padding:u}),owe({arrowWidth:T,arrowHeight:M}),g&&Q0e({strategy:"referenceHidden",...V})]}),[K,te]=oU(B),I=nn(j);Un(()=>{D&&I?.()},[D,I]);const z=U.arrow?.x,Y=U.arrow?.y,ne=U.arrow?.centerOffset!==0,[se,xe]=y.useState();return Un(()=>{N&&xe(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:F.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:D?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:se,"--radix-popper-transform-origin":[U.transformOrigin?.x,U.transformOrigin?.y].join(" "),...U.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(rwe,{scope:n,placedSide:K,onArrowChange:C,arrowX:z,arrowY:Y,shouldHideArrow:ne,children:i.jsx(Pe.div,{"data-side":K,"data-align":te,...w,ref:O,style:{...w.style,animation:D?void 0:"none"}})})})});aU.displayName=_E;var iU="PopperArrow",iwe={top:"bottom",right:"left",bottom:"top",left:"right"},sU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=awe(iU,r),l=iwe[s.placedSide];return i.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:i.jsx(twe,{...a,ref:n,style:{...a.style,display:"block"}})})});sU.displayName=iU;function swe(e){return e!==null}var owe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=oU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",w="";return f==="bottom"?(j=l?p:`${g}px`,w=`${-d}px`):f==="top"?(j=l?p:`${g}px`,w=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,w=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,w=l?p:`${x}px`),{data:{x:j,y:w}}}});function oU(e){const[t,n="center"]=e.split("-");return[t,n]}var Vh=tU,Gh=rU,Vy=aU,Gy=sU;function lwe(e){const t=cwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(dwe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function cwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=hwe(a),u=fwe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var uwe=Symbol("radix.slottable");function dwe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===uwe}function fwe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function hwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var lU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),mwe="VisuallyHidden",Yy=y.forwardRef((e,t)=>i.jsx(Pe.span,{...e,ref:t,style:{...lU,...e.style}}));Yy.displayName=mwe;var pwe=Yy,vwe=[" ","Enter","ArrowUp","ArrowDown"],gwe=[" ","Enter"],yl="Select",[Ky,Xy,ywe]=Eh(yl),[Qu]=hr(yl,[ywe,co]),Zy=co(),[xwe,uo]=Qu(yl),[bwe,wwe]=Qu(yl),cU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,w=Zy(t),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),k=Bu(f),[T,M]=Na({prop:r,defaultProp:a??!1,onChange:s,caller:yl}),[R,L]=Na({prop:l,defaultProp:u,onChange:d,caller:yl}),$=y.useRef(null),H=b?j||!!b.closest("form"):!0,[V,F]=y.useState(new Set),G=Array.from(V).map(B=>B.props.value).join(";");return i.jsx(Vh,{...w,children:i.jsxs(xwe,{required:x,scope:t,trigger:b,onTriggerChange:N,valueNode:E,onValueNodeChange:O,valueNodeHasChildren:A,onValueNodeHasChildrenChange:C,contentId:Fn(),value:R,onValueChange:L,open:T,onOpenChange:M,dir:k,triggerPointerDownPosRef:$,disabled:g,children:[i.jsx(Ky.Provider,{scope:t,children:i.jsx(bwe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback(B=>{F(D=>new Set(D).add(B))},[]),onNativeOptionRemove:y.useCallback(B=>{F(D=>{const U=new Set(D);return U.delete(B),U})},[]),children:n})}),H?i.jsxs(PU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:R,onChange:B=>L(B.target.value),disabled:g,form:j,children:[R===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};cU.displayName=yl;var uU="SelectTrigger",dU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=Zy(n),l=uo(uU,n),u=l.disabled||r,d=qe(t,l.onTriggerChange),f=Xy(n),m=y.useRef("touch"),[p,g,x]=DU(w=>{const b=f().filter(O=>!O.disabled),N=b.find(O=>O.value===l.value),E=$U(b,w,N);E!==void 0&&l.onValueChange(E.value)}),j=w=>{u||(l.onOpenChange(!0),x()),w&&(l.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return i.jsx(Gh,{asChild:!0,...s,children:i.jsx(Pe.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":RU(l.value)?"":void 0,...a,ref:d,onClick:Se(a.onClick,w=>{w.currentTarget.focus(),m.current!=="mouse"&&j(w)}),onPointerDown:Se(a.onPointerDown,w=>{m.current=w.pointerType;const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(j(w),w.preventDefault())}),onKeyDown:Se(a.onKeyDown,w=>{const b=p.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(b&&w.key===" ")&&vwe.includes(w.key)&&(j(),w.preventDefault())})})})});dU.displayName=uU;var fU="SelectValue",hU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:l="",...u}=e,d=uo(fU,n),{onValueNodeHasChildrenChange:f}=d,m=s!==void 0,p=qe(t,d.onValueNodeChange);return Un(()=>{f(m)},[f,m]),i.jsx(Pe.span,{...u,ref:p,style:{pointerEvents:"none"},children:RU(d.value)?i.jsx(i.Fragment,{children:l}):s})});hU.displayName=fU;var jwe="SelectIcon",mU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx(Pe.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});mU.displayName=jwe;var Swe="SelectPortal",pU=e=>i.jsx(El,{asChild:!0,...e});pU.displayName=Swe;var xl="SelectContent",vU=y.forwardRef((e,t)=>{const n=uo(xl,e.__scopeSelect),[r,a]=y.useState();if(Un(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?wl.createPortal(i.jsx(gU,{scope:e.__scopeSelect,children:i.jsx(Ky.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),s):null}return i.jsx(yU,{...e,ref:t})});vU.displayName=xl;var $a=10,[gU,fo]=Qu(xl),_we="SelectContentImpl",Nwe=lwe("SelectContent.RemoveScroll"),yU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b,...N}=e,E=uo(xl,n),[O,A]=y.useState(null),[C,k]=y.useState(null),T=qe(t,ee=>A(ee)),[M,R]=y.useState(null),[L,$]=y.useState(null),H=Xy(n),[V,F]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(O)return Iy(O)},[O]),Dy();const B=y.useCallback(ee=>{const[ae,...Z]=H().map(le=>le.ref.current),[ve]=Z.slice(-1),je=document.activeElement;for(const le of ee)if(le===je||(le?.scrollIntoView({block:"nearest"}),le===ae&&C&&(C.scrollTop=0),le===ve&&C&&(C.scrollTop=C.scrollHeight),le?.focus(),document.activeElement!==je))return},[H,C]),D=y.useCallback(()=>B([M,O]),[B,M,O]);y.useEffect(()=>{V&&D()},[V,D]);const{onOpenChange:U,triggerPointerDownPosRef:K}=E;y.useEffect(()=>{if(O){let ee={x:0,y:0};const ae=ve=>{ee={x:Math.abs(Math.round(ve.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(ve.pageY)-(K.current?.y??0))}},Z=ve=>{ee.x<=10&&ee.y<=10?ve.preventDefault():O.contains(ve.target)||U(!1),document.removeEventListener("pointermove",ae),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",ae),document.addEventListener("pointerup",Z,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",ae),document.removeEventListener("pointerup",Z,{capture:!0})}}},[O,U,K]),y.useEffect(()=>{const ee=()=>U(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[U]);const[te,I]=DU(ee=>{const ae=H().filter(je=>!je.disabled),Z=ae.find(je=>je.ref.current===document.activeElement),ve=$U(ae,ee,Z);ve&&setTimeout(()=>ve.ref.current.focus())}),z=y.useCallback((ee,ae,Z)=>{const ve=!G.current&&!Z;(E.value!==void 0&&E.value===ae||ve)&&(R(ee),ve&&(G.current=!0))},[E.value]),Y=y.useCallback(()=>O?.focus(),[O]),ne=y.useCallback((ee,ae,Z)=>{const ve=!G.current&&!Z;(E.value!==void 0&&E.value===ae||ve)&&$(ee)},[E.value]),se=r==="popper"?cC:xU,xe=se===cC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b}:{};return i.jsx(gU,{scope:n,content:O,viewport:C,onViewportChange:k,itemRefCallback:z,selectedItem:M,onItemLeave:Y,itemTextRefCallback:ne,focusSelectedItem:D,selectedItemText:L,position:r,isPositioned:V,searchRef:te,children:i.jsx(Hh,{as:Nwe,allowPinchZoom:!0,children:i.jsx(Uh,{asChild:!0,trapped:E.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:Se(a,ee=>{E.trigger?.focus({preventScroll:!0}),ee.preventDefault()}),children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:i.jsx(se,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:ee=>ee.preventDefault(),...N,...xe,onPlaced:()=>F(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:Se(N.onKeyDown,ee=>{const ae=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!ae&&ee.key.length===1&&I(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let ve=H().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(ve=ve.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const je=ee.target,le=ve.indexOf(je);ve=ve.slice(le+1)}setTimeout(()=>B(ve)),ee.preventDefault()}})})})})})})});yU.displayName=_we;var Cwe="SelectItemAlignedPosition",xU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=uo(xl,n),l=fo(xl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=qe(t,T=>m(T)),g=Xy(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:N,focusSelectedItem:E}=l,O=y.useCallback(()=>{if(s.trigger&&s.valueNode&&u&&f&&w&&b&&N){const T=s.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),L=N.getBoundingClientRect();if(s.dir!=="rtl"){const je=L.left-M.left,le=R.left-je,Re=T.left-le,_e=T.width+Re,fe=Math.max(_e,M.width),pe=window.innerWidth-$a,Le=Tf(le,[$a,Math.max($a,pe-fe)]);u.style.minWidth=_e+"px",u.style.left=Le+"px"}else{const je=M.right-L.right,le=window.innerWidth-R.right-je,Re=window.innerWidth-T.right-le,_e=T.width+Re,fe=Math.max(_e,M.width),pe=window.innerWidth-$a,Le=Tf(le,[$a,Math.max($a,pe-fe)]);u.style.minWidth=_e+"px",u.style.right=Le+"px"}const $=g(),H=window.innerHeight-$a*2,V=w.scrollHeight,F=window.getComputedStyle(f),G=parseInt(F.borderTopWidth,10),B=parseInt(F.paddingTop,10),D=parseInt(F.borderBottomWidth,10),U=parseInt(F.paddingBottom,10),K=G+B+V+U+D,te=Math.min(b.offsetHeight*5,K),I=window.getComputedStyle(w),z=parseInt(I.paddingTop,10),Y=parseInt(I.paddingBottom,10),ne=T.top+T.height/2-$a,se=H-ne,xe=b.offsetHeight/2,ee=b.offsetTop+xe,ae=G+B+ee,Z=K-ae;if(ae<=ne){const je=$.length>0&&b===$[$.length-1].ref.current;u.style.bottom="0px";const le=f.clientHeight-w.offsetTop-w.offsetHeight,Re=Math.max(se,xe+(je?Y:0)+le+D),_e=ae+Re;u.style.height=_e+"px"}else{const je=$.length>0&&b===$[0].ref.current;u.style.top="0px";const Re=Math.max(ne,G+w.offsetTop+(je?z:0)+xe)+Z;u.style.height=Re+"px",w.scrollTop=ae-ne+w.offsetTop}u.style.margin=`${$a}px 0`,u.style.minHeight=te+"px",u.style.maxHeight=H+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,s.trigger,s.valueNode,u,f,w,b,N,s.dir,r]);Un(()=>O(),[O]);const[A,C]=y.useState();Un(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(T=>{T&&j.current===!0&&(O(),E?.(),j.current=!1)},[O,E]);return i.jsx(Ewe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:i.jsx(Pe.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});xU.displayName=Cwe;var Owe="SelectPopperPosition",cC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=$a,...s}=e,l=Zy(n);return i.jsx(Vy,{...l,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.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)"}})});cC.displayName=Owe;var[Ewe,NE]=Qu(xl,{}),uC="SelectViewport",bU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=fo(uC,n),l=NE(uC,n),u=qe(t,s.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(Ky.Slot,{scope:n,children:i.jsx(Pe.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:Se(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-$a*2,w=parseFloat(p.style.minHeight),b=parseFloat(p.style.height),N=Math.max(w,b);if(N0?A:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});bU.displayName=uC;var wU="SelectGroup",[Awe,Twe]=Qu(wU),kwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Fn();return i.jsx(Awe,{scope:n,id:a,children:i.jsx(Pe.div,{role:"group","aria-labelledby":a,...r,ref:t})})});kwe.displayName=wU;var jU="SelectLabel",SU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Twe(jU,n);return i.jsx(Pe.div,{id:a.id,...r,ref:t})});SU.displayName=jU;var Mg="SelectItem",[Mwe,_U]=Qu(Mg),NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...l}=e,u=uo(Mg,n),d=fo(Mg,n),f=u.value===r,[m,p]=y.useState(s??""),[g,x]=y.useState(!1),j=qe(t,E=>d.itemRefCallback?.(E,r,a)),w=Fn(),b=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Mwe,{scope:n,value:r,disabled:a,textId:w,isSelected:f,onItemTextChange:y.useCallback(E=>{p(O=>O||(E?.textContent??"").trim())},[]),children:i.jsx(Ky.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx(Pe.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:Se(l.onFocus,()=>x(!0)),onBlur:Se(l.onBlur,()=>x(!1)),onClick:Se(l.onClick,()=>{b.current!=="mouse"&&N()}),onPointerUp:Se(l.onPointerUp,()=>{b.current==="mouse"&&N()}),onPointerDown:Se(l.onPointerDown,E=>{b.current=E.pointerType}),onPointerMove:Se(l.onPointerMove,E=>{b.current=E.pointerType,a?d.onItemLeave?.():b.current==="mouse"&&E.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Se(l.onPointerLeave,E=>{E.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:Se(l.onKeyDown,E=>{d.searchRef?.current!==""&&E.key===" "||(gwe.includes(E.key)&&N(),E.key===" "&&E.preventDefault())})})})})});NU.displayName=Mg;var pf="SelectItemText",CU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,l=uo(pf,n),u=fo(pf,n),d=_U(pf,n),f=wwe(pf,n),[m,p]=y.useState(null),g=qe(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return Un(()=>(w(j),()=>b(j)),[w,b,j]),i.jsxs(i.Fragment,{children:[i.jsx(Pe.span,{id:d.textId,...s,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?wl.createPortal(s.children,l.valueNode):null]})});CU.displayName=pf;var OU="SelectItemIndicator",EU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return _U(OU,n).isSelected?i.jsx(Pe.span,{"aria-hidden":!0,...r,ref:t}):null});EU.displayName=OU;var dC="SelectScrollUpButton",AU=y.forwardRef((e,t)=>{const n=fo(dC,e.__scopeSelect),r=NE(dC,e.__scopeSelect),[a,s]=y.useState(!1),l=qe(t,r.onScrollButtonChange);return Un(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;s(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(kU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});AU.displayName=dC;var fC="SelectScrollDownButton",TU=y.forwardRef((e,t)=>{const n=fo(fC,e.__scopeSelect),r=NE(fC,e.__scopeSelect),[a,s]=y.useState(!1),l=qe(t,r.onScrollButtonChange);return Un(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(kU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});TU.displayName=fC;var kU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=fo("SelectScrollButton",n),l=y.useRef(null),u=Xy(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Un(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx(Pe.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:Se(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:Se(a.onPointerMove,()=>{s.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:Se(a.onPointerLeave,()=>{d()})})}),Pwe="SelectSeparator",MU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx(Pe.div,{"aria-hidden":!0,...r,ref:t})});MU.displayName=Pwe;var hC="SelectArrow",Rwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Zy(n),s=uo(hC,n),l=fo(hC,n);return s.open&&l.position==="popper"?i.jsx(Gy,{...a,...r,ref:t}):null});Rwe.displayName=hC;var Dwe="SelectBubbleInput",PU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),s=qe(r,a),l=My(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx(Pe.select,{...n,style:{...lU,...n.style},ref:s,defaultValue:t})});PU.displayName=Dwe;function RU(e){return e===""||e===void 0}function DU(e){const t=nn(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),s=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}function $U(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=$we(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function $we(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Iwe=cU,IU=dU,Lwe=hU,Bwe=mU,zwe=pU,LU=vU,qwe=bU,BU=SU,zU=NU,Fwe=CU,Uwe=EU,qU=AU,FU=TU,UU=MU;const Et=Iwe,At=Lwe,wt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(IU,{ref:r,className:ce("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx(Bwe,{asChild:!0,children:i.jsx(fh,{className:"h-4 w-4 opacity-50"})})]}));wt.displayName=IU.displayName;const HU=y.forwardRef(({className:e,...t},n)=>i.jsx(qU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(VN,{className:"h-4 w-4"})}));HU.displayName=qU.displayName;const WU=y.forwardRef(({className:e,...t},n)=>i.jsx(FU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(fh,{className:"h-4 w-4"})}));WU.displayName=FU.displayName;const jt=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(zwe,{children:i.jsxs(LU,{ref:a,className:ce("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(HU,{}),i.jsx(qwe,{className:ce("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(WU,{})]})}));jt.displayName=LU.displayName;const Hwe=y.forwardRef(({className:e,...t},n)=>i.jsx(BU,{ref:n,className:ce("px-2 py-1.5 text-sm font-semibold",e),...t}));Hwe.displayName=BU.displayName;const Me=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(zU,{ref:r,className:ce("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Uwe,{children:i.jsx(il,{className:"h-4 w-4"})})}),i.jsx(Fwe,{children:t})]}));Me.displayName=zU.displayName;const Wwe=y.forwardRef(({className:e,...t},n)=>i.jsx(UU,{ref:n,className:ce("-mx-1 my-1 h-px bg-muted",e),...t}));Wwe.displayName=UU.displayName;function Vwe(e){const t=Gwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Kwe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function Gwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=Zwe(a),u=Xwe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ywe=Symbol("radix.slottable");function Kwe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ywe}function Xwe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function Zwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Qy="Popover",[VU]=hr(Qy,[co]),Yh=co(),[Qwe,ho]=VU(Qy),GU=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=Yh(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Na({prop:r,defaultProp:a??!1,onChange:s,caller:Qy});return i.jsx(Vh,{...u,children:i.jsx(Qwe,{scope:t,contentId:Fn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};GU.displayName=Qy;var YU="PopoverAnchor",Jwe=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=ho(YU,n),s=Yh(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(Gh,{...s,...r,ref:t})});Jwe.displayName=YU;var KU="PopoverTrigger",XU=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=ho(KU,n),s=Yh(n),l=qe(t,a.triggerRef),u=i.jsx(Pe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":tH(a.open),...r,ref:l,onClick:Se(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(Gh,{asChild:!0,...s,children:u})});XU.displayName=KU;var CE="PopoverPortal",[eje,tje]=VU(CE,{forceMount:void 0}),ZU=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,s=ho(CE,t);return i.jsx(eje,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||s.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};ZU.displayName=CE;var Pu="PopoverContent",QU=y.forwardRef((e,t)=>{const n=tje(Pu,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,s=ho(Pu,e.__scopePopover);return i.jsx(Rn,{present:r||s.open,children:s.modal?i.jsx(rje,{...a,ref:t}):i.jsx(aje,{...a,ref:t})})});QU.displayName=Pu;var nje=Vwe("PopoverContent.RemoveScroll"),rje=y.forwardRef((e,t)=>{const n=ho(Pu,e.__scopePopover),r=y.useRef(null),a=qe(t,r),s=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return Iy(l)},[]),i.jsx(Hh,{as:nje,allowPinchZoom:!0,children:i.jsx(JU,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Se(e.onCloseAutoFocus,l=>{l.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Se(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;s.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:Se(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),aje=y.forwardRef((e,t)=>{const n=ho(Pu,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(JU,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),JU=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=ho(Pu,n),x=Yh(n);return Dy(),i.jsx(Uh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Vy,{"data-state":tH(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),eH="PopoverClose",ije=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=ho(eH,n);return i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,()=>a.onOpenChange(!1))})});ije.displayName=eH;var sje="PopoverArrow",oje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=Yh(n);return i.jsx(Gy,{...a,...r,ref:t})});oje.displayName=sje;function tH(e){return e?"open":"closed"}var lje=GU,cje=XU,uje=ZU,nH=QU;const eo=lje,to=cje,os=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(uje,{children:i.jsx(nH,{ref:a,align:t,sideOffset:n,className:ce("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));os.displayName=nH.displayName;const Ju="/api/webui/config";async function dje(){const t=await(await Qe(`${Ju}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function Pg(){const t=await(await Qe(`${Ju}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function fje(e){const n=await(await Qe(`${Ju}/bot`,{method:"POST",headers:lt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function rH(e){const n=await(await Qe(`${Ju}/model`,{method:"POST",headers:lt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function hje(e,t){const r=await(await Qe(`${Ju}/bot/section/${e}`,{method:"POST",headers:lt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function mC(e,t){const r=await(await Qe(`${Ju}/model/section/${e}`,{method:"POST",headers:lt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}const mje=Yu("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),Jy=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx("div",{ref:r,role:"alert",className:ce(mje({variant:t}),e),...n}));Jy.displayName="Alert";const pje=y.forwardRef(({className:e,...t},n)=>i.jsx("h5",{ref:n,className:ce("mb-1 font-medium leading-none tracking-tight",e),...t}));pje.displayName="AlertTitle";const ex=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm [&_p]:leading-relaxed",e),...t}));ex.displayName="AlertDescription";function vje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,s]=y.useState(!1),[l,u]=y.useState(!1),{toast:d}=mr(),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[T,M]=y.useState(null),[R,L]=y.useState(null),[$,H]=y.useState(null),[V,F]=y.useState(null),[G,B]=y.useState(null),[D,U]=y.useState(null),[K,te]=y.useState(null),[I,z]=y.useState(null),[Y,ne]=y.useState(null),[se,xe]=y.useState(null),[ee,ae]=y.useState(null),Z=y.useRef(null),ve=y.useRef(!0),je=y.useRef({}),le=y.useCallback(async()=>{try{t(!0);const pe=await dje();je.current=pe,m(pe.bot),g(pe.personality);const Le=pe.chat;Le.talk_value_rules||(Le.talk_value_rules=[]),j(Le),b(pe.expression),E(pe.emoji),A(pe.memory),k(pe.tool),M(pe.mood),L(pe.voice),H(pe.lpmm_knowledge),F(pe.keyword_reaction),B(pe.response_post_process),U(pe.chinese_typo),te(pe.response_splitter),z(pe.log),ne(pe.debug),xe(pe.maim_message),ae(pe.telemetry),u(!1),ve.current=!1}catch(pe){console.error("加载配置失败:",pe),d({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[d]);y.useEffect(()=>{le()},[le]);const Re=y.useCallback(async(pe,Le)=>{if(!ve.current)try{s(!0),await hje(pe,Le),u(!1)}catch(It){console.error(`自动保存 ${pe} 失败:`,It),u(!0)}finally{s(!1)}},[]),_e=y.useCallback((pe,Le)=>{ve.current||(u(!0),Z.current&&clearTimeout(Z.current),Z.current=setTimeout(()=>{Re(pe,Le)},2e3))},[Re]);y.useEffect(()=>{f&&!ve.current&&_e("bot",f)},[f,_e]),y.useEffect(()=>{p&&!ve.current&&_e("personality",p)},[p,_e]),y.useEffect(()=>{x&&!ve.current&&_e("chat",x)},[x,_e]),y.useEffect(()=>{w&&!ve.current&&_e("expression",w)},[w,_e]),y.useEffect(()=>{N&&!ve.current&&_e("emoji",N)},[N,_e]),y.useEffect(()=>{O&&!ve.current&&_e("memory",O)},[O,_e]),y.useEffect(()=>{C&&!ve.current&&_e("tool",C)},[C,_e]),y.useEffect(()=>{T&&!ve.current&&_e("mood",T)},[T,_e]),y.useEffect(()=>{R&&!ve.current&&_e("voice",R)},[R,_e]),y.useEffect(()=>{$&&!ve.current&&_e("lpmm_knowledge",$)},[$,_e]),y.useEffect(()=>{V&&!ve.current&&_e("keyword_reaction",V)},[V,_e]),y.useEffect(()=>{G&&!ve.current&&_e("response_post_process",G)},[G,_e]),y.useEffect(()=>{D&&!ve.current&&_e("chinese_typo",D)},[D,_e]),y.useEffect(()=>{K&&!ve.current&&_e("response_splitter",K)},[K,_e]),y.useEffect(()=>{I&&!ve.current&&_e("log",I)},[I,_e]),y.useEffect(()=>{Y&&!ve.current&&_e("debug",Y)},[Y,_e]),y.useEffect(()=>{se&&!ve.current&&_e("maim_message",se)},[se,_e]),y.useEffect(()=>{ee&&!ve.current&&_e("telemetry",ee)},[ee,_e]);const fe=async()=>{try{r(!0),Z.current&&clearTimeout(Z.current);const pe={...je.current,bot:f,personality:p,chat:x,expression:w,emoji:N,memory:O,tool:C,mood:T,voice:R,lpmm_knowledge:$,keyword_reaction:V,response_post_process:G,chinese_typo:D,response_splitter:K,log:I,debug:Y,maim_message:se,telemetry:ee};await fje(pe),u(!1),d({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(pe){console.error("保存配置失败:",pe),d({title:"保存失败",description:pe.message,variant:"destructive"})}finally{r(!1)}};return e?i.jsx(Vt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs(de,{onClick:fe,disabled:n||a||!l,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(nE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]})]}),i.jsxs(Jy,{children:[i.jsx(Au,{className:"h-4 w-4"}),i.jsxs(ex,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),"才能生效"]})]}),i.jsxs(ul,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(Zs,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Ot,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Ot,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Ot,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Ot,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Ot,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Ot,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Ot,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Ot,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Ot,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Ot,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(en,{value:"bot",className:"space-y-4",children:f&&i.jsx(gje,{config:f,onChange:m})}),i.jsx(en,{value:"personality",className:"space-y-4",children:p&&i.jsx(yje,{config:p,onChange:g})}),i.jsx(en,{value:"chat",className:"space-y-4",children:x&&i.jsx(xje,{config:x,onChange:j})}),i.jsx(en,{value:"expression",className:"space-y-4",children:w&&i.jsx(bje,{config:w,onChange:b})}),i.jsx(en,{value:"features",className:"space-y-4",children:N&&O&&C&&i.jsx(wje,{emojiConfig:N,memoryConfig:O,toolConfig:C,onEmojiChange:E,onMemoryChange:A,onToolChange:k})}),i.jsx(en,{value:"processing",className:"space-y-4",children:V&&G&&D&&K&&i.jsx(jje,{keywordReactionConfig:V,responsePostProcessConfig:G,chineseTypoConfig:D,responseSplitterConfig:K,onKeywordReactionChange:F,onResponsePostProcessChange:B,onChineseTypoChange:U,onResponseSplitterChange:te})}),i.jsx(en,{value:"mood",className:"space-y-4",children:T&&i.jsx(Sje,{config:T,onChange:M})}),i.jsx(en,{value:"voice",className:"space-y-4",children:R&&i.jsx(_je,{config:R,onChange:L})}),i.jsx(en,{value:"lpmm",className:"space-y-4",children:$&&i.jsx(Nje,{config:$,onChange:H})}),i.jsxs(en,{value:"other",className:"space-y-4",children:[I&&i.jsx(Cje,{config:I,onChange:z}),Y&&i.jsx(Oje,{config:Y,onChange:ne}),se&&i.jsx(Eje,{config:se,onChange:xe}),ee&&i.jsx(Aje,{config:ee,onChange:ae})]})]})]})})}function gje({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},s=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"platform",children:"平台"}),i.jsx(Ne,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ne,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"其他平台账号"}),i.jsxs(de,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"别名"}),i.jsxs(de,{onClick:s,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function yje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=s=>{t({...e,states:e.states.filter((l,u)=>u!==s)})},a=(s,l)=>{const u=[...e.states];u[s]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"personality",children:"人格特质"}),i.jsx(Wt,{id:"personality",value:e.personality,onChange:s=>t({...e,personality:s.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Wt,{id:"reply_style",value:e.reply_style,onChange:s=>t({...e,reply_style:s.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"interest",children:"兴趣"}),i.jsx(Wt,{id:"interest",value:e.interest,onChange:s=>t({...e,interest:s.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Wt,{id:"plan_style",value:e.plan_style,onChange:s=>t({...e,plan_style:s.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Wt,{id:"visual_style",value:e.visual_style,onChange:s=>t({...e,visual_style:s.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Wt,{id:"private_plan_style",value:e.private_plan_style,onChange:s=>t({...e,private_plan_style:s.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{children:"状态列表(人格多样性)"}),i.jsxs(de,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((s,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Wt,{value:s,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsx(jn,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ne,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:s=>t({...e,state_probability:parseFloat(s.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function xje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},s=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[w,b]=y.useState("59");y.useEffect(()=>{const E=u.split("-");if(E.length===2){const[O,A]=E,[C,k]=O.split(":"),[T,M]=A.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),T&&j(T.padStart(2,"0")),M&&b(M.padStart(2,"0"))}},[u]);const N=(E,O,A,C)=>{const k=`${E}:${O}-${A}:${C}`;d(k)};return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(sl,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(os,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"小时"}),i.jsxs(Et,{value:f,onValueChange:E=>{m(E),N(E,p,x,w)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(Me,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"分钟"}),i.jsxs(Et,{value:p,onValueChange:E=>{g(E),N(f,E,x,w)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(Me,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"小时"}),i.jsxs(Et,{value:x,onValueChange:E=>{j(E),N(f,p,E,w)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(Me,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-xs",children:"分钟"}),i.jsxs(Et,{value:w,onValueChange:E=>{b(E),N(f,p,x,E)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(Me,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(os,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ne,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ne,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ne,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ne,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(J,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(J,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(de,{onClick:n,size:"sm",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{variant:"ghost",size:"sm",children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Et,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"global",children:"全局配置"}),i.jsx(Me,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Et,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"qq",children:"QQ"}),i.jsx(Me,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Et,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"group",children:"群组(group)"}),i.jsx(Me,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(s,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ne,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(vE,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function bje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const w=[...e.learning_list];w[g][x]=j,t({...e,learning_list:w})},s=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(os,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:w})=>{const b=w.includes(g)||g==="*",[N,E]=y.useState(!b);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ne,{value:g,onChange:O=>p(x,j,O.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),w.length>0&&i.jsx(de,{size:"sm",variant:"outline",onClick:()=>E(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(Et,{value:g,onValueChange:O=>p(x,j,O),children:[i.jsx(wt,{className:"flex-1",children:i.jsx(At,{placeholder:"选择聊天流"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"*",children:"* (全局共享)"}),w.map((O,A)=>i.jsx(Me,{value:O,children:O},A))]})]}),i.jsx(de,{size:"sm",variant:"outline",onClick:()=>E(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"icon",variant:"outline",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((w,b)=>b!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const w=[...e.expression_groups];w[g][x]=j,t({...e,expression_groups:w})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(de,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((A,C)=>C!==x&&A[0]===""),w=g[0]==="",b=g[0].split(":"),N=b[0]||"qq",E=b[1]||"",O=b[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",w&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(s,{rule:g}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Et,{value:w?"global":"specific",onValueChange:A=>{A==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!w,children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"global",children:"全局配置"}),i.jsx(Me,{value:"specific",disabled:j&&!w,children:"详细配置"})]})]}),j&&!w&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!w&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Et,{value:N,onValueChange:A=>{a(x,0,`${A}:${E}:${O}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"qq",children:"QQ"}),i.jsx(Me,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:E,onChange:A=>{a(x,0,`${N}:${A.target.value}:${O}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Et,{value:O,onValueChange:A=>{a(x,0,`${N}:${E}:${A}`)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"group",children:"群组(group)"}),i.jsx(Me,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(at,{checked:g[1]==="enable",onCheckedChange:A=>a(x,1,A?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(at,{checked:g[2]==="enable",onCheckedChange:A=>a(x,2,A?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:A=>{const C=parseFloat(A.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(vE,{value:[parseFloat(g[3])||1],onValueChange:A=>a(x,3,A[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(de,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(w=>w[0]).filter(w=>w!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(de,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(tr,{className:"h-4 w-4"})}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((w,b)=>i.jsx(l,{member:w,groupIndex:x,memberIndex:b,availableChatIds:j},b))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function wje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:s}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>s({...n,enable_tool:l})}),i.jsx(J,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ne,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ne,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(J,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(J,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(J,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(J,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function jje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:s,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=A=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==A)})},m=(A,C,k)=>{const T=[...e.regex_rules];C==="regex"&&typeof k=="string"?T[A]={...T[A],regex:[k]}:C==="reaction"&&typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,regex_rules:T})},p=({regex:A,reaction:C,onRegexChange:k,onReactionChange:T})=>{const[M,R]=y.useState(!1),[L,$]=y.useState(""),[H,V]=y.useState(null),[F,G]=y.useState(""),[B,D]=y.useState({}),[U,K]=y.useState(""),te=y.useRef(null),[I,z]=y.useState("build"),Y=ee=>ee.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),ne=(ee,ae=0)=>{const Z=te.current;if(!Z)return;const ve=Z.selectionStart||0,je=Z.selectionEnd||0,le=A.substring(0,ve)+ee+A.substring(je);k(le),setTimeout(()=>{const Re=ve+ee.length+ae;Z.setSelectionRange(Re,Re),Z.focus()},0)};y.useEffect(()=>{if(!A||!L){V(null),D({}),K(C),G("");return}try{const ee=Y(A),ae=new RegExp(ee,"g"),Z=L.match(ae);V(Z),G("");const je=new RegExp(ee).exec(L);if(je&&je.groups){D(je.groups);let le=C;Object.entries(je.groups).forEach(([Re,_e])=>{le=le.replace(new RegExp(`\\[${Re}\\]`,"g"),_e||"")}),K(le)}else D({}),K(C)}catch(ee){G(ee.message),V(null),D({}),K(C)}},[A,L,C]);const se=()=>{if(!L||!H||H.length===0)return i.jsx("span",{className:"text-muted-foreground",children:L||"请输入测试文本"});try{const ee=Y(A),ae=new RegExp(ee,"g");let Z=0;const ve=[];let je;for(;(je=ae.exec(L))!==null;)je.index>Z&&ve.push(i.jsx("span",{children:L.substring(Z,je.index)},`text-${Z}`)),ve.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),Z=je.index+je[0].length;return Z)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(nr,{open:M,onOpenChange:R,children:[i.jsx(e8,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(_g,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"正则表达式编辑器"}),i.jsx(dr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Vt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(ul,{value:I,onValueChange:ee=>z(ee),className:"w-full",children:[i.jsxs(Zs,{className:"grid w-full grid-cols-2",children:[i.jsx(Ot,{value:"build",children:"🔧 构建器"}),i.jsx(Ot,{value:"test",children:"🧪 测试器"})]}),i.jsxs(en,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ne,{ref:te,value:A,onChange:ee=>k(ee.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Wt,{value:C,onChange:ee=>T(ee.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[xe.map(ee=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ee.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ee.items.map(ae=>i.jsx(de,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>ne(ae.pattern,ae.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:ae.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:ae.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:ae.desc})]})},ae.label))})]},ee.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(de,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(de,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(de,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(en,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:A||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Wt,{id:"test-text",value:L,onChange:ee=>$(ee.target.value),placeholder:`在此输入要测试的文本... -例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),F&&i.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[i.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),i.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:F})]}),!F&&L&&i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex items-center gap-2",children:H&&H.length>0?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),i.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",H.length," 处)"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),i.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"匹配高亮"}),i.jsx(Vt,{className:"h-40 rounded-md bg-muted p-3",children:i.jsx("div",{className:"text-sm break-words",children:se()})})]}),Object.keys(B).length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"命名捕获组"}),i.jsx(Vt,{className:"h-32 rounded-md border p-3",children:i.jsx("div",{className:"space-y-2",children:Object.entries(B).map(([ee,ae])=>i.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ee,"]"]}),i.jsx("span",{className:"text-muted-foreground",children:"="}),i.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:ae})]},ee))})})]}),Object.keys(B).length>0&&C&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{className:"text-sm font-medium",children:"Reaction 替换预览"}),i.jsx(Vt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:i.jsx("div",{className:"text-sm break-words",children:U})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),i.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),i.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),i.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},g=()=>{a({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},x=A=>{a({...e,keyword_rules:e.keyword_rules.filter((C,k)=>k!==A)})},j=(A,C,k)=>{const T=[...e.keyword_rules];typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,keyword_rules:T})},w=A=>{const C=[...e.keyword_rules];C[A]={...C[A],keywords:[...C[A].keywords||[],""]},a({...e,keyword_rules:C})},b=(A,C)=>{const k=[...e.keyword_rules];k[A]={...k[A],keywords:(k[A].keywords||[]).filter((T,M)=>M!==C)},a({...e,keyword_rules:k})},N=(A,C,k)=>{const T=[...e.keyword_rules],M=[...T[A].keywords||[]];M[C]=k,T[A]={...T[A],keywords:M},a({...e,keyword_rules:T})},E=({rule:A})=>{const C=`{ regex = [${(A.regex||[]).map(k=>`"${k}"`).join(", ")}], reaction = "${A.reaction}" }`;return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(os,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Vt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},O=({rule:A})=>{const C=`[[keyword_reaction.keyword_rules]] -keywords = [${(A.keywords||[]).map(k=>`"${k}"`).join(", ")}] -reaction = "${A.reaction}"`;return i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",children:[i.jsx(Ua,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(os,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Vt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),i.jsxs(de,{onClick:d,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(p,{regex:A.regex&&A.regex[0]||"",reaction:A.reaction,onRegexChange:k=>m(C,"regex",k),onReactionChange:k=>m(C,"reaction",k)}),i.jsx(E,{rule:A}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除正则规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>f(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),i.jsx(Ne,{value:A.regex&&A.regex[0]||"",onChange:k=>m(C,"regex",k.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Wt,{value:A.reaction,onChange:k=>m(C,"reaction",k.target.value),placeholder:`触发后麦麦的反应... -可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(de,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(tr,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(O,{rule:A}),i.jsxs(Pn,{children:[i.jsx(ra,{asChild:!0,children:i.jsx(de,{size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})}),i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(J,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(de,{onClick:()=>w(C),size:"sm",variant:"ghost",children:[i.jsx(tr,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(A.keywords||[]).map((k,T)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ne,{value:k,onChange:M=>N(C,T,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(de,{onClick:()=>b(C,T),size:"sm",variant:"ghost",children:i.jsx(Tt,{className:"h-4 w-4"})})]},T)),(!A.keywords||A.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Wt,{value:A.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:A=>s({...t,enable_response_post_process:A})}),i.jsx(J,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(at,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:A=>l({...n,enable:A})}),i.jsx(J,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ne,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:A=>l({...n,error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ne,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:A=>l({...n,min_freq:parseInt(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ne,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:A=>l({...n,tone_error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ne,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:A=>l({...n,word_replace_rate:parseFloat(A.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(at,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:A=>u({...r,enable:A})}),i.jsx(J,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ne,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:A=>u({...r,max_length:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ne,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:A=>u({...r,max_sentence_num:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:A=>u({...r,enable_kaomoji_protection:A})}),i.jsx(J,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:A=>u({...r,enable_overflow_return_all:A})}),i.jsx(J,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function Sje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"情绪更新阈值"}),i.jsx(Ne,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"情感特征"}),i.jsx(Wt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function _je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function Nje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(J,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"LPMM 模式"}),i.jsxs(Et,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(wt,{children:i.jsx(At,{placeholder:"选择 LPMM 模式"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"classic",children:"经典模式"}),i.jsx(Me,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"同义词搜索 TopK"}),i.jsx(Ne,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"同义词阈值"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"实体提取线程数"}),i.jsx(Ne,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"嵌入向量维度"}),i.jsx(Ne,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function Cje({config:e,onChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),s("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日期格式"}),i.jsx(Ne,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日志级别样式"}),i.jsxs(Et,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:p.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"日志文本颜色"}),i.jsxs(Et,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:g.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"全局日志级别"}),i.jsxs(Et,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"控制台日志级别"}),i.jsxs(Et,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"文件日志级别"}),i.jsxs(Et,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(de,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(de,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(Et,{value:a,onValueChange:s,children:[i.jsx(wt,{className:"w-32",children:i.jsx(At,{})}),i.jsx(jt,{children:m.map(x=>i.jsx(Me,{value:x,children:x},x))})]}),i.jsx(de,{onClick:d,size:"sm",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(de,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function Oje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(at,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(at,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(at,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(at,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function Eje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},s=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(at,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"主机地址"}),i.jsx(Ne,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"端口号"}),i.jsx(Ne,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"连接模式"}),i.jsxs(Et,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"ws",children:"WebSocket (ws)"}),i.jsx(Me,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(J,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"SSL 证书文件路径"}),i.jsx(Ne,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"SSL 密钥文件路径"}),i.jsx(Ne,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(de,{onClick:a,size:"sm",children:i.jsx(tr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(de,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>s(u),children:i.jsx(Tt,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function Aje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(J,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(at,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const Al=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:ce("w-full caption-bottom text-sm",e),...t})}));Al.displayName="Table";const Tl=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:ce("[&_tr]:border-b",e),...t}));Tl.displayName="TableHeader";const kl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:ce("[&_tr:last-child]:border-0",e),...t}));kl.displayName="TableBody";const Tje=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:ce("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Tje.displayName="TableFooter";const vn=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:ce("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));vn.displayName="TableRow";const Ze=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:ce("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ze.displayName="TableHead";const Ue=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:ce("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ue.displayName="TableCell";const kje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:ce("mt-4 text-sm text-muted-foreground",e),...t}));kje.displayName="TableCaption";var tx="Checkbox",[Mje]=hr(tx),[Pje,OE]=Mje(tx);function Rje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Na({prop:n,defaultProp:a??!1,onChange:d,caller:tx}),[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useRef(!1),O=j?!!l||!!j.closest("form"):!0,A={checked:g,disabled:s,setChecked:x,control:j,setControl:w,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:E,required:f,defaultChecked:Xs(a)?!1:a,isFormControl:O,bubbleInput:b,setBubbleInput:N};return i.jsx(Pje,{scope:t,...A,children:Dje(p)?p(A):r})}var aH="CheckboxTrigger",iH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:s,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=OE(aH,e),w=qe(a,m),b=y.useRef(d);return y.useEffect(()=>{const N=s?.form;if(N){const E=()=>p(b.current);return N.addEventListener("reset",E),()=>N.removeEventListener("reset",E)}},[s,p]),i.jsx(Pe.button,{type:"button",role:"checkbox","aria-checked":Xs(d)?"mixed":d,"aria-required":f,"data-state":uH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:w,onKeyDown:Se(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:Se(n,N=>{p(E=>Xs(E)?!0:!E),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});iH.displayName=aH;var EE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(Rje,{__scopeCheckbox:n,checked:a,defaultChecked:s,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(iH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(cH,{__scopeCheckbox:n})]})})});EE.displayName=tx;var sH="CheckboxIndicator",oH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,s=OE(sH,n);return i.jsx(Rn,{present:r||Xs(s.checked)||s.checked===!0,children:i.jsx(Pe.span,{"data-state":uH(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});oH.displayName=sH;var lH="CheckboxBubbleInput",cH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:s,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=OE(lH,e),j=qe(n,x),w=My(s),b=Py(r);y.useEffect(()=>{const E=g;if(!E)return;const O=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(O,"checked").set,k=!a.current;if(w!==s&&C){const T=new Event("click",{bubbles:k});E.indeterminate=Xs(s),C.call(E,Xs(s)?!1:s),E.dispatchEvent(T)}},[g,w,s,a]);const N=y.useRef(Xs(s)?!1:s);return i.jsx(Pe.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});cH.displayName=lH;function Dje(e){return typeof e=="function"}function Xs(e){return e==="indeterminate"}function uH(e){return Xs(e)?"indeterminate":e?"checked":"unchecked"}const no=y.forwardRef(({className:e,...t},n)=>i.jsx(EE,{ref:n,className:ce("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(oH,{className:ce("grid place-content-center text-current"),children:i.jsx(il,{className:"h-4 w-4"})})}));no.displayName=EE.displayName;function $je(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(null),[j,w]=y.useState(null),[b,N]=y.useState(!1),[E,O]=y.useState(null),[A,C]=y.useState(!1),[k,T]=y.useState(""),[M,R]=y.useState(new Set),[L,$]=y.useState(!1),{toast:H}=mr(),V=y.useRef(null),F=y.useRef(!0);y.useEffect(()=>{G()},[]);const G=async()=>{try{r(!0);const ae=await Pg();t(ae.api_providers||[]),f(!1),F.current=!1}catch(ae){console.error("加载配置失败:",ae)}finally{r(!1)}},B=y.useCallback(async ae=>{if(!F.current)try{u(!0),await mC("api_providers",ae),f(!1)}catch(Z){console.error("自动保存失败:",Z),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!F.current)return f(!0),V.current&&clearTimeout(V.current),V.current=setTimeout(()=>{B(e)},2e3),()=>{V.current&&clearTimeout(V.current)}},[e,B]);const D=async()=>{try{s(!0),V.current&&clearTimeout(V.current);const ae=await Pg();ae.api_providers=e,await rH(ae),f(!1),H({title:"保存成功",description:"模型提供商配置已保存"})}catch(ae){console.error("保存配置失败:",ae),H({title:"保存失败",description:ae.message,variant:"destructive"})}finally{s(!1)}},U=(ae,Z)=>{x(ae||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),w(Z),C(!1),p(!0)},K=async()=>{if(g?.api_key)try{await navigator.clipboard.writeText(g.api_key),H({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{H({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},te=()=>{if(g){if(j!==null){const ae=[...e];ae[j]=g,t(ae)}else t([...e,g]);p(!1),x(null),w(null)}},I=ae=>{O(ae),N(!0)},z=()=>{if(E!==null){const ae=e.filter((Z,ve)=>ve!==E);t(ae),H({title:"删除成功",description:"提供商已从列表中移除"})}N(!1),O(null)},Y=ae=>{const Z=new Set(M);Z.has(ae)?Z.delete(ae):Z.add(ae),R(Z)},ne=()=>{if(M.size===ee.length)R(new Set);else{const ae=ee.map((Z,ve)=>e.findIndex(je=>je===ee[ve]));R(new Set(ae))}},se=()=>{if(M.size===0){H({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}$(!0)},xe=()=>{const ae=e.filter((Z,ve)=>!M.has(ve));t(ae),R(new Set),$(!1),H({title:"批量删除成功",description:`已删除 ${M.size} 个提供商`})},ee=e.filter(ae=>{if(!k)return!0;const Z=k.toLowerCase();return ae.name.toLowerCase().includes(Z)||ae.base_url.toLowerCase().includes(Z)||ae.client_type.toLowerCase().includes(Z)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[M.size>0&&i.jsxs(de,{onClick:se,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Tt,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",M.size,")"]}),i.jsxs(de,{onClick:()=>U(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(tr,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(de,{onClick:D,disabled:a||l||!d,size:"sm",variant:"default",className:"w-full sm:w-auto",children:[i.jsx(nE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]})]})]}),i.jsxs(Jy,{children:[i.jsx(Au,{className:"h-4 w-4"}),i.jsxs(ex,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),"才能生效"]})]}),i.jsxs(Vt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索提供商名称、URL 或类型...",value:k,onChange:ae=>T(ae.target.value),className:"pl-9"})]}),k&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",ee.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:ee.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:k?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):ee.map((ae,Z)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:ae.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:ae.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>U(ae,Z),children:i.jsx(Tu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>I(Z),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:ae.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:ae.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:ae.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:ae.retry_interval})]})]})]},Z))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-12",children:i.jsx(no,{checked:M.size===ee.length&&ee.length>0,onCheckedChange:ne})}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"基础URL"}),i.jsx(Ze,{children:"客户端类型"}),i.jsx(Ze,{className:"text-right",children:"最大重试"}),i.jsx(Ze,{className:"text-right",children:"超时(秒)"}),i.jsx(Ze,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:ee.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:8,className:"text-center text-muted-foreground py-8",children:k?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):ee.map((ae,Z)=>{const ve=e.findIndex(je=>je===ae);return i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(no,{checked:M.has(ve),onCheckedChange:()=>Y(ve)})}),i.jsx(Ue,{className:"font-medium",children:ae.name}),i.jsx(Ue,{className:"max-w-xs truncate",title:ae.base_url,children:ae.base_url}),i.jsx(Ue,{children:ae.client_type}),i.jsx(Ue,{className:"text-right",children:ae.max_retry}),i.jsx(Ue,{className:"text-right",children:ae.timeout}),i.jsx(Ue,{className:"text-right",children:ae.retry_interval}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>U(ae,ve),children:i.jsx(Tu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>I(ve),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Z)})})]})})]}),i.jsx(nr,{open:m,onOpenChange:p,children:i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:j!==null?"编辑提供商":"添加提供商"}),i.jsx(dr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"name",children:"名称 *"}),i.jsx(Ne,{id:"name",value:g?.name||"",onChange:ae=>x(Z=>Z?{...Z,name:ae.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ne,{id:"base_url",value:g?.base_url||"",onChange:ae=>x(Z=>Z?{...Z,base_url:ae.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"api_key",type:A?"text":"password",value:g?.api_key||"",onChange:ae=>x(Z=>Z?{...Z,api_key:ae.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(de,{type:"button",variant:"outline",size:"icon",onClick:()=>C(!A),title:A?"隐藏密钥":"显示密钥",children:A?i.jsx(XN,{className:"h-4 w-4"}):i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(de,{type:"button",variant:"outline",size:"icon",onClick:K,title:"复制密钥",children:i.jsx(YN,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(Et,{value:g?.client_type||"openai",onValueChange:ae=>x(Z=>Z?{...Z,client_type:ae}:null),children:[i.jsx(wt,{id:"client_type",children:i.jsx(At,{placeholder:"选择客户端类型"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"openai",children:"OpenAI"}),i.jsx(Me,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ne,{id:"max_retry",type:"number",min:"0",value:g?.max_retry||2,onChange:ae=>x(Z=>Z?{...Z,max_retry:parseInt(ae.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ne,{id:"timeout",type:"number",min:"1",value:g?.timeout||30,onChange:ae=>x(Z=>Z?{...Z,timeout:parseInt(ae.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ne,{id:"retry_interval",type:"number",min:"1",value:g?.retry_interval||10,onChange:ae=>x(Z=>Z?{...Z,retry_interval:parseInt(ae.target.value)}:null)})]})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(de,{onClick:te,children:"保存"})]})]})}),i.jsx(Pn,{open:b,onOpenChange:N,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除提供商 "',E!==null?e[E]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:z,children:"删除"})]})]})}),i.jsx(Pn,{open:L,onOpenChange:$,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认批量删除"}),i.jsxs(jn,{children:["确定要删除选中的 ",M.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:xe,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})}var CL=1,Ije=.9,Lje=.8,Bje=.17,s_=.1,o_=.999,zje=.9999,qje=.99,Fje=/[\\\/_+.#"@\[\(\{&]/,Uje=/[\\\/_+.#"@\[\(\{&]/g,Hje=/[\s-]/,dH=/[\s-]/g;function pC(e,t,n,r,a,s,l){if(s===t.length)return a===e.length?CL:qje;var u=`${a},${s}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(s),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=pC(e,t,n,r,f+1,s+1,l),p>m&&(f===a?p*=CL:Fje.test(e.charAt(f-1))?(p*=Lje,x=e.slice(a,f-1).match(Uje),x&&a>0&&(p*=Math.pow(o_,x.length))):Hje.test(e.charAt(f-1))?(p*=Ije,j=e.slice(a,f-1).match(dH),j&&a>0&&(p*=Math.pow(o_,j.length))):(p*=Bje,a>0&&(p*=Math.pow(o_,f-a))),e.charAt(f)!==t.charAt(s)&&(p*=zje)),(pp&&(p=g*s_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function OL(e){return e.toLowerCase().replace(dH," ")}function Wje(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,pC(e,t,OL(e),OL(t),0,0,{})}var Vje=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],mo=Vje.reduce((e,t)=>{const n=Th(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),cf='[cmdk-group=""]',l_='[cmdk-group-items=""]',Gje='[cmdk-group-heading=""]',fH='[cmdk-item=""]',EL=`${fH}:not([aria-disabled="true"])`,vC="cmdk-item-select",Rc="data-value",Yje=(e,t,n)=>Wje(e,t,n),hH=y.createContext(void 0),Kh=()=>y.useContext(hH),mH=y.createContext(void 0),AE=()=>y.useContext(mH),pH=y.createContext(void 0),vH=y.forwardRef((e,t)=>{let n=Dc(()=>{var z,Y;return{search:"",value:(Y=(z=e.value)!=null?z:e.defaultValue)!=null?Y:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=Dc(()=>new Set),a=Dc(()=>new Map),s=Dc(()=>new Map),l=Dc(()=>new Set),u=gH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:w=!1,vimBindings:b=!0,...N}=e,E=Fn(),O=Fn(),A=Fn(),C=y.useRef(null),k=i1e();bl(()=>{if(m!==void 0){let z=m.trim();n.current.value=z,T.emit()}},[m]),bl(()=>{k(6,V)},[]);let T=y.useMemo(()=>({subscribe:z=>(l.current.add(z),()=>l.current.delete(z)),snapshot:()=>n.current,setState:(z,Y,ne)=>{var se,xe,ee,ae;if(!Object.is(n.current[z],Y)){if(n.current[z]=Y,z==="search")H(),L(),k(1,$);else if(z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Z=document.getElementById(A);Z?Z.focus():(se=document.getElementById(E))==null||se.focus()}if(k(7,()=>{var Z;n.current.selectedItemId=(Z=F())==null?void 0:Z.id,T.emit()}),ne||k(5,V),((xe=u.current)==null?void 0:xe.value)!==void 0){let Z=Y??"";(ae=(ee=u.current).onValueChange)==null||ae.call(ee,Z);return}}T.emit()}},emit:()=>{l.current.forEach(z=>z())}}),[]),M=y.useMemo(()=>({value:(z,Y,ne)=>{var se;Y!==((se=s.current.get(z))==null?void 0:se.value)&&(s.current.set(z,{value:Y,keywords:ne}),n.current.filtered.items.set(z,R(Y,ne)),k(2,()=>{L(),T.emit()}))},item:(z,Y)=>(r.current.add(z),Y&&(a.current.has(Y)?a.current.get(Y).add(z):a.current.set(Y,new Set([z]))),k(3,()=>{H(),L(),n.current.value||$(),T.emit()}),()=>{s.current.delete(z),r.current.delete(z),n.current.filtered.items.delete(z);let ne=F();k(4,()=>{H(),ne?.getAttribute("id")===z&&$(),T.emit()})}),group:z=>(a.current.has(z)||a.current.set(z,new Set),()=>{s.current.delete(z),a.current.delete(z)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:E,inputId:A,labelId:O,listInnerRef:C}),[]);function R(z,Y){var ne,se;let xe=(se=(ne=u.current)==null?void 0:ne.filter)!=null?se:Yje;return z?xe(z,n.current.search,Y):0}function L(){if(!n.current.search||u.current.shouldFilter===!1)return;let z=n.current.filtered.items,Y=[];n.current.filtered.groups.forEach(se=>{let xe=a.current.get(se),ee=0;xe.forEach(ae=>{let Z=z.get(ae);ee=Math.max(Z,ee)}),Y.push([se,ee])});let ne=C.current;G().sort((se,xe)=>{var ee,ae;let Z=se.getAttribute("id"),ve=xe.getAttribute("id");return((ee=z.get(ve))!=null?ee:0)-((ae=z.get(Z))!=null?ae:0)}).forEach(se=>{let xe=se.closest(l_);xe?xe.appendChild(se.parentElement===xe?se:se.closest(`${l_} > *`)):ne.appendChild(se.parentElement===ne?se:se.closest(`${l_} > *`))}),Y.sort((se,xe)=>xe[1]-se[1]).forEach(se=>{var xe;let ee=(xe=C.current)==null?void 0:xe.querySelector(`${cf}[${Rc}="${encodeURIComponent(se[0])}"]`);ee?.parentElement.appendChild(ee)})}function $(){let z=G().find(ne=>ne.getAttribute("aria-disabled")!=="true"),Y=z?.getAttribute(Rc);T.setState("value",Y||void 0)}function H(){var z,Y,ne,se;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let xe=0;for(let ee of r.current){let ae=(Y=(z=s.current.get(ee))==null?void 0:z.value)!=null?Y:"",Z=(se=(ne=s.current.get(ee))==null?void 0:ne.keywords)!=null?se:[],ve=R(ae,Z);n.current.filtered.items.set(ee,ve),ve>0&&xe++}for(let[ee,ae]of a.current)for(let Z of ae)if(n.current.filtered.items.get(Z)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=xe}function V(){var z,Y,ne;let se=F();se&&(((z=se.parentElement)==null?void 0:z.firstChild)===se&&((ne=(Y=se.closest(cf))==null?void 0:Y.querySelector(Gje))==null||ne.scrollIntoView({block:"nearest"})),se.scrollIntoView({block:"nearest"}))}function F(){var z;return(z=C.current)==null?void 0:z.querySelector(`${fH}[aria-selected="true"]`)}function G(){var z;return Array.from(((z=C.current)==null?void 0:z.querySelectorAll(EL))||[])}function B(z){let Y=G()[z];Y&&T.setState("value",Y.getAttribute(Rc))}function D(z){var Y;let ne=F(),se=G(),xe=se.findIndex(ae=>ae===ne),ee=se[xe+z];(Y=u.current)!=null&&Y.loop&&(ee=xe+z<0?se[se.length-1]:xe+z===se.length?se[0]:se[xe+z]),ee&&T.setState("value",ee.getAttribute(Rc))}function U(z){let Y=F(),ne=Y?.closest(cf),se;for(;ne&&!se;)ne=z>0?r1e(ne,cf):a1e(ne,cf),se=ne?.querySelector(EL);se?T.setState("value",se.getAttribute(Rc)):D(z)}let K=()=>B(G().length-1),te=z=>{z.preventDefault(),z.metaKey?K():z.altKey?U(1):D(1)},I=z=>{z.preventDefault(),z.metaKey?B(0):z.altKey?U(-1):D(-1)};return y.createElement(mo.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:z=>{var Y;(Y=N.onKeyDown)==null||Y.call(N,z);let ne=z.nativeEvent.isComposing||z.keyCode===229;if(!(z.defaultPrevented||ne))switch(z.key){case"n":case"j":{b&&z.ctrlKey&&te(z);break}case"ArrowDown":{te(z);break}case"p":case"k":{b&&z.ctrlKey&&I(z);break}case"ArrowUp":{I(z);break}case"Home":{z.preventDefault(),B(0);break}case"End":{z.preventDefault(),K();break}case"Enter":{z.preventDefault();let se=F();if(se){let xe=new Event(vC);se.dispatchEvent(xe)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:o1e},d),nx(e,z=>y.createElement(mH.Provider,{value:T},y.createElement(hH.Provider,{value:M},z))))}),Kje=y.forwardRef((e,t)=>{var n,r;let a=Fn(),s=y.useRef(null),l=y.useContext(pH),u=Kh(),d=gH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;bl(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=yH(a,s,[e.value,e.children,s],e.keywords),p=AE(),g=ro(k=>k.value&&k.value===m.current),x=ro(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=s.current;if(!(!k||e.disabled))return k.addEventListener(vC,j),()=>k.removeEventListener(vC,j)},[x,e.onSelect,e.disabled]);function j(){var k,T;w(),(T=(k=d.current).onSelect)==null||T.call(k,m.current)}function w(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:b,value:N,onSelect:E,forceMount:O,keywords:A,...C}=e;return y.createElement(mo.div,{ref:Rr(s,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!g,"data-disabled":!!b,"data-selected":!!g,onPointerMove:b||u.getDisablePointerSelection()?void 0:w,onClick:b?void 0:j},e.children)}),Xje=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,l=Fn(),u=y.useRef(null),d=y.useRef(null),f=Fn(),m=Kh(),p=ro(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);bl(()=>m.group(l),[]),yH(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(mo.div,{ref:Rr(u,t),...s,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),nx(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(pH.Provider,{value:g},x))))}),Zje=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),s=ro(l=>!l.search);return!n&&!s?null:y.createElement(mo.div,{ref:Rr(a,t),...r,"cmdk-separator":"",role:"separator"})}),Qje=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,s=AE(),l=ro(f=>f.search),u=ro(f=>f.selectedItemId),d=Kh();return y.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),y.createElement(mo.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||s.setState("search",f.target.value),n?.(f.target.value)}})}),Jje=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=y.useRef(null),l=y.useRef(null),u=ro(f=>f.selectedItemId),d=Kh();return y.useEffect(()=>{if(l.current&&s.current){let f=l.current,m=s.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(mo.div,{ref:Rr(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},nx(e,f=>y.createElement("div",{ref:Rr(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),e1e=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:l,...u}=e;return y.createElement(uE,{open:n,onOpenChange:r},y.createElement(dE,{container:l},y.createElement(By,{"cmdk-overlay":"",className:a}),y.createElement(zy,{"aria-label":e.label,"cmdk-dialog":"",className:s},y.createElement(vH,{ref:t,...u}))))}),t1e=y.forwardRef((e,t)=>ro(n=>n.filtered.count===0)?y.createElement(mo.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),n1e=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return y.createElement(mo.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},nx(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Br=Object.assign(vH,{List:Jje,Item:Kje,Input:Qje,Group:Xje,Separator:Zje,Dialog:e1e,Empty:t1e,Loading:n1e});function r1e(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function a1e(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function gH(e){let t=y.useRef(e);return bl(()=>{t.current=e}),t}var bl=typeof window>"u"?y.useEffect:y.useLayoutEffect;function Dc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function ro(e){let t=AE(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function yH(e,t,n,r=[]){let a=y.useRef(),s=Kh();return bl(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());s.value(e,u,d),(l=t.current)==null||l.setAttribute(Rc,u),a.current=u}),a}var i1e=()=>{let[e,t]=y.useState(),n=Dc(()=>new Map);return bl(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function s1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function nx({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(s1e(t),{ref:t.ref},n(t.props.children)):n(t)}var o1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const xH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br,{ref:n,className:ce("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));xH.displayName=Br.displayName;const bH=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Dr,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Br.Input,{ref:n,className:ce("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));bH.displayName=Br.Input.displayName;const wH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.List,{ref:n,className:ce("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));wH.displayName=Br.List.displayName;const jH=y.forwardRef((e,t)=>i.jsx(Br.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));jH.displayName=Br.Empty.displayName;const SH=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Group,{ref:n,className:ce("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));SH.displayName=Br.Group.displayName;const l1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Separator,{ref:n,className:ce("-mx-1 h-px bg-border",e),...t}));l1e.displayName=Br.Separator.displayName;const _H=y.forwardRef(({className:e,...t},n)=>i.jsx(Br.Item,{ref:n,className:ce("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));_H.displayName=Br.Item.displayName;function c1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:s}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(eo,{open:l,onOpenChange:u,children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",role:"combobox","aria-expanded":l,className:ce("w-full justify-between min-h-10 h-auto",s),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Dt,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Fh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(kve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(os,{className:"w-full p-0",align:"start",children:i.jsxs(xH,{children:[i.jsx(bH,{placeholder:"搜索...",className:"h-9"}),i.jsxs(wH,{children:[i.jsx(jH,{children:a}),i.jsx(SH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(_H,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:ce("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(il,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function u1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,s]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(null),[A,C]=y.useState(null),[k,T]=y.useState(!1),[M,R]=y.useState(null),[L,$]=y.useState(""),[H,V]=y.useState(new Set),[F,G]=y.useState(!1),{toast:B}=mr(),D=y.useRef(null),U=y.useRef(null),K=y.useRef(!0);y.useEffect(()=>{te()},[]);const te=async()=>{try{f(!0);const fe=await Pg(),pe=fe.models||[];t(pe),s(pe.map(It=>It.name));const Le=fe.api_providers||[];r(Le.map(It=>It.name)),u(fe.model_task_config||null),w(!1),K.current=!1}catch(fe){console.error("加载配置失败:",fe)}finally{f(!1)}},I=y.useCallback(async fe=>{if(!K.current)try{x(!0),await mC("models",fe),w(!1)}catch(pe){console.error("自动保存模型列表失败:",pe),w(!0)}finally{x(!1)}},[]),z=y.useCallback(async fe=>{if(!K.current)try{x(!0),await mC("model_task_config",fe),w(!1)}catch(pe){console.error("自动保存任务配置失败:",pe),w(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!K.current)return w(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{I(e)},2e3),()=>{D.current&&clearTimeout(D.current)}},[e,I]),y.useEffect(()=>{if(!(K.current||!l))return w(!0),U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{z(l)},2e3),()=>{U.current&&clearTimeout(U.current)}},[l,z]);const Y=async()=>{try{p(!0),D.current&&clearTimeout(D.current),U.current&&clearTimeout(U.current);const fe=await Pg();fe.models=e,fe.model_task_config=l,await rH(fe),w(!1),B({title:"保存成功",description:"模型配置已保存"}),await te()}catch(fe){console.error("保存配置失败:",fe),B({title:"保存失败",description:fe.message,variant:"destructive"})}finally{p(!1)}},ne=(fe,pe)=>{O(fe||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),C(pe),N(!0)},se=()=>{if(!E)return;let fe;A!==null?(fe=[...e],fe[A]=E):fe=[...e,E],t(fe),s(fe.map(pe=>pe.name)),N(!1),O(null),C(null)},xe=fe=>{R(fe),T(!0)},ee=()=>{if(M!==null){const fe=e.filter((pe,Le)=>Le!==M);t(fe),s(fe.map(pe=>pe.name)),B({title:"删除成功",description:"模型已从列表中移除"})}T(!1),R(null)},ae=fe=>{const pe=new Set(H);pe.has(fe)?pe.delete(fe):pe.add(fe),V(pe)},Z=()=>{if(H.size===Re.length)V(new Set);else{const fe=Re.map((pe,Le)=>e.findIndex(It=>It===Re[Le]));V(new Set(fe))}},ve=()=>{if(H.size===0){B({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}G(!0)},je=()=>{const fe=e.filter((pe,Le)=>!H.has(Le));t(fe),s(fe.map(pe=>pe.name)),V(new Set),G(!1),B({title:"批量删除成功",description:`已删除 ${H.size} 个模型`})},le=(fe,pe,Le)=>{l&&u({...l,[fe]:{...l[fe],[pe]:Le}})},Re=e.filter(fe=>{if(!L)return!0;const pe=L.toLowerCase();return fe.name.toLowerCase().includes(pe)||fe.model_identifier.toLowerCase().includes(pe)||fe.api_provider.toLowerCase().includes(pe)}),_e=fe=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(Le=>Le.includes(fe)):!1;return d?i.jsx(Vt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs(de,{onClick:Y,disabled:m||g||!j,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(nE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]})]}),i.jsxs(Jy,{children:[i.jsx(Au,{className:"h-4 w-4"}),i.jsxs(ex,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),"才能生效"]})]}),i.jsxs(ul,{defaultValue:"models",className:"w-full",children:[i.jsxs(Zs,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Ot,{value:"models",children:"模型配置"}),i.jsx(Ot,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(en,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[H.size>0&&i.jsxs(de,{onClick:ve,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Tt,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",H.size,")"]}),i.jsxs(de,{onClick:()=>ne(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(tr,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索模型名称、标识符或提供商...",value:L,onChange:fe=>$(fe.target.value),className:"pl-9"})]}),L&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Re.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Re.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:L?"未找到匹配的模型":"暂无模型配置"}):Re.map((fe,pe)=>{const Le=_e(fe.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:fe.name}),i.jsx(Dt,{variant:Le?"default":"secondary",className:Le?"bg-green-600 hover:bg-green-700":"",children:Le?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:fe.model_identifier,children:fe.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>ne(fe,pe),children:i.jsx(Tu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>xe(pe),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:fe.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:fe.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",fe.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",fe.price_out,"/M"]})]})]})]},pe)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-12",children:i.jsx(no,{checked:H.size===Re.length&&Re.length>0,onCheckedChange:Z})}),i.jsx(Ze,{className:"w-24",children:"使用状态"}),i.jsx(Ze,{children:"模型名称"}),i.jsx(Ze,{children:"模型标识符"}),i.jsx(Ze,{children:"提供商"}),i.jsx(Ze,{className:"text-right",children:"输入价格"}),i.jsx(Ze,{className:"text-right",children:"输出价格"}),i.jsx(Ze,{className:"text-center",children:"强制流式"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:Re.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:9,className:"text-center text-muted-foreground py-8",children:L?"未找到匹配的模型":"暂无模型配置"})}):Re.map((fe,pe)=>{const Le=e.findIndex(Cn=>Cn===fe),It=_e(fe.name);return i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(no,{checked:H.has(Le),onCheckedChange:()=>ae(Le)})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:It?"default":"secondary",className:It?"bg-green-600 hover:bg-green-700":"",children:It?"已使用":"未使用"})}),i.jsx(Ue,{className:"font-medium",children:fe.name}),i.jsx(Ue,{className:"max-w-xs truncate",title:fe.model_identifier,children:fe.model_identifier}),i.jsx(Ue,{children:fe.api_provider}),i.jsxs(Ue,{className:"text-right",children:["¥",fe.price_in,"/M"]}),i.jsxs(Ue,{className:"text-right",children:["¥",fe.price_out,"/M"]}),i.jsx(Ue,{className:"text-center",children:fe.force_stream_mode?"是":"否"}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>ne(fe,Le),children:i.jsx(Tu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>xe(Le),children:i.jsx(Tt,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},pe)})})]})})]}),i.jsxs(en,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx(Ra,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(fe,pe)=>le("utils",fe,pe)}),i.jsx(Ra,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(fe,pe)=>le("utils_small",fe,pe)}),i.jsx(Ra,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(fe,pe)=>le("tool_use",fe,pe)}),i.jsx(Ra,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(fe,pe)=>le("replyer",fe,pe)}),i.jsx(Ra,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(fe,pe)=>le("planner",fe,pe)}),i.jsx(Ra,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(fe,pe)=>le("vlm",fe,pe),hideTemperature:!0}),i.jsx(Ra,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(fe,pe)=>le("voice",fe,pe),hideTemperature:!0,hideMaxTokens:!0}),i.jsx(Ra,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(fe,pe)=>le("embedding",fe,pe),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx(Ra,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(fe,pe)=>le("lpmm_entity_extract",fe,pe)}),i.jsx(Ra,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(fe,pe)=>le("lpmm_rdf_build",fe,pe)}),i.jsx(Ra,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(fe,pe)=>le("lpmm_qa",fe,pe)})]})]})]})]}),i.jsx(nr,{open:b,onOpenChange:N,children:i.jsxs(Hn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:A!==null?"编辑模型":"添加模型"}),i.jsx(dr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ne,{id:"model_name",value:E?.name||"",onChange:fe=>O(pe=>pe?{...pe,name:fe.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ne,{id:"model_identifier",value:E?.model_identifier||"",onChange:fe=>O(pe=>pe?{...pe,model_identifier:fe.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(Et,{value:E?.api_provider||"",onValueChange:fe=>O(pe=>pe?{...pe,api_provider:fe}:null),children:[i.jsx(wt,{id:"api_provider",children:i.jsx(At,{placeholder:"选择提供商"})}),i.jsx(jt,{children:n.map(fe=>i.jsx(Me,{value:fe,children:fe},fe))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ne,{id:"price_in",type:"number",step:"0.1",min:"0",value:E?.price_in||0,onChange:fe=>O(pe=>pe?{...pe,price_in:parseFloat(fe.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ne,{id:"price_out",type:"number",step:"0.1",min:"0",value:E?.price_out||0,onChange:fe=>O(pe=>pe?{...pe,price_out:parseFloat(fe.target.value)}:null)})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"force_stream_mode",checked:E?.force_stream_mode||!1,onCheckedChange:fe=>O(pe=>pe?{...pe,force_stream_mode:fe}:null)}),i.jsx(J,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>N(!1),children:"取消"}),i.jsx(de,{onClick:se,children:"保存"})]})]})}),i.jsx(Pn,{open:k,onOpenChange:T,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除模型 "',M!==null?e[M]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:ee,children:"删除"})]})]})}),i.jsx(Pn,{open:F,onOpenChange:G,children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认批量删除"}),i.jsxs(jn,{children:["确定要删除选中的 ",H.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:je,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})})}function Ra({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:s=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"模型列表"}),i.jsx(c1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!s&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"温度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"2",value:n.temperature||.3,onChange:d=>a("temperature",parseFloat(d.target.value))})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(J,{children:"最大 Token"}),i.jsx(Ne,{type:"number",step:"1",min:"1",value:n.max_tokens||1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const po="/api/webui/emoji";async function d1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await Qe(`${po}/list?${t}`,{headers:lt()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function f1e(e){const t=await Qe(`${po}/${e}`,{headers:lt()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function h1e(e,t){const n=await Qe(`${po}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function m1e(e){const t=await Qe(`${po}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function p1e(){const e=await Qe(`${po}/stats/summary`,{headers:lt()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function v1e(e){const t=await Qe(`${po}/${e}/register`,{method:"POST",headers:lt()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function g1e(e){const t=await Qe(`${po}/${e}/ban`,{method:"POST",headers:lt()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function gC(e){const t=localStorage.getItem("access-token");return`${po}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}function y1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,s]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m]=y.useState(20),[p,g]=y.useState(""),[x,j]=y.useState("all"),[w,b]=y.useState("all"),[N,E]=y.useState("all"),[O,A]=y.useState(null),[C,k]=y.useState(!1),[T,M]=y.useState(!1),[R,L]=y.useState(!1),{toast:$}=mr(),H=y.useCallback(async()=>{try{s(!0);const I=await d1e({page:l,page_size:m,search:p||void 0,is_registered:x==="all"?void 0:x==="registered",is_banned:w==="all"?void 0:w==="banned",format:N==="all"?void 0:N,sort_by:"usage_count",sort_order:"desc"});t(I.data),f(I.total)}catch(I){const z=I instanceof Error?I.message:"加载表情包列表失败";$({title:"错误",description:z,variant:"destructive"})}finally{s(!1)}},[l,m,p,x,w,N,$]),V=async()=>{try{const I=await p1e();r(I.data)}catch(I){console.error("加载统计数据失败:",I)}};y.useEffect(()=>{H()},[H]),y.useEffect(()=>{V()},[]);const F=async I=>{try{const z=await f1e(I.id);A(z.data),k(!0)}catch(z){const Y=z instanceof Error?z.message:"加载详情失败";$({title:"错误",description:Y,variant:"destructive"})}},G=I=>{A(I),M(!0)},B=I=>{A(I),L(!0)},D=async()=>{if(O)try{await m1e(O.id),$({title:"成功",description:"表情包已删除"}),L(!1),A(null),H(),V()}catch(I){const z=I instanceof Error?I.message:"删除失败";$({title:"错误",description:z,variant:"destructive"})}},U=async I=>{try{await v1e(I.id),$({title:"成功",description:"表情包已注册"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"注册失败";$({title:"错误",description:Y,variant:"destructive"})}},K=async I=>{try{await g1e(I.id),$({title:"成功",description:"表情包已封禁"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"封禁失败";$({title:"错误",description:Y,variant:"destructive"})}},te=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(ot,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"总数"}),i.jsx(Ft,{className:"text-2xl",children:n.total})]})}),i.jsx(ot,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"已注册"}),i.jsx(Ft,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(ot,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"已封禁"}),i.jsx(Ft,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(ot,{children:i.jsxs(qt,{className:"pb-2",children:[i.jsx(er,{children:"未注册"}),i.jsx(Ft,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(ot,{children:[i.jsx(qt,{children:i.jsxs(Ft,{className:"flex items-center gap-2",children:[i.jsx(ZN,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(sn,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"描述或哈希值...",value:p,onChange:I=>{g(I.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"注册状态"}),i.jsxs(Et,{value:x,onValueChange:I=>{j(I),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"registered",children:"已注册"}),i.jsx(Me,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"封禁状态"}),i.jsxs(Et,{value:w,onValueChange:I=>{b(I),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"banned",children:"已封禁"}),i.jsx(Me,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"格式"}),i.jsxs(Et,{value:N,onValueChange:I=>{E(I),u(1)},children:[i.jsx(wt,{children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),te.map(I=>i.jsxs(Me,{value:I,children:[I.toUpperCase()," (",n?.formats[I],")"]},I))]})]})]})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(de,{variant:"outline",size:"sm",onClick:H,disabled:a,children:[i.jsx(ol,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(ot,{children:[i.jsxs(qt,{children:[i.jsx(Ft,{children:"表情包列表"}),i.jsxs(er,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(sn,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{className:"w-16",children:"预览"}),i.jsx(Ze,{children:"描述"}),i.jsx(Ze,{children:"格式"}),i.jsx(Ze,{children:"情绪标签"}),i.jsx(Ze,{className:"text-center",children:"状态"}),i.jsx(Ze,{className:"text-right",children:"使用次数"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(I=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:gC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const ne=Y.parentElement;ne&&(ne.innerHTML='')}})})}),i.jsx(Ue,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[I.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:"outline",children:I.format.toUpperCase()})}),i.jsx(Ue,{children:i.jsx(AL,{emotions:I.emotion})}),i.jsx(Ue,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[I.is_registered&&i.jsxs(Dt,{variant:"default",className:"bg-green-600",children:[i.jsx(Ws,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Dt,{variant:"destructive",children:[i.jsx(GN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Ue,{className:"text-right font-mono",children:I.usage_count}),i.jsx(Ue,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>F(I),children:[i.jsx(Au,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>G(I),children:[i.jsx(ku,{className:"h-4 w-4 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>U(I),className:"text-green-600 hover:text-green-700",children:[i.jsx(Ws,{className:"h-4 w-4 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>K(I),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(VI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>B(I),className:"text-red-600 hover:text-red-700",children:[i.jsx(Tt,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},I.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(I=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:gC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const ne=Y.parentElement;ne&&(ne.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[I.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Dt,{variant:"outline",className:"text-xs flex-shrink-0",children:I.format.toUpperCase()}),I.is_registered&&i.jsxs(Dt,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Ws,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Dt,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(GN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",I.usage_count]})]}),I.emotion&&I.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(AL,{emotions:I.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>F(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Au,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>G(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(ku,{className:"h-3 w-3 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>U(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Ws,{className:"h-3 w-3 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>K(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(VI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>B(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},I.id))}),d>m&&i.jsxs("div",{className:"flex items-center justify-between mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>u(I=>Math.max(1,I-1)),disabled:l===1,children:[i.jsx(JO,{className:"h-4 w-4"}),"上一页"]}),i.jsxs("div",{className:"text-sm",children:["第 ",l," / ",Math.ceil(d/m)," 页"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>u(I=>I+1),disabled:l>=Math.ceil(d/m),children:["下一页",i.jsx(eE,{className:"h-4 w-4"})]})]})]})]})]}),i.jsx(x1e,{emoji:O,open:C,onOpenChange:k}),i.jsx(b1e,{emoji:O,open:T,onOpenChange:M,onSuccess:()=>{H(),V()}})]})}),i.jsx(nr,{open:R,onOpenChange:L,children:i.jsxs(Hn,{children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"确认删除"}),i.jsx(dr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>L(!1),children:"取消"}),i.jsx(de,{variant:"destructive",onClick:D,children:"删除"})]})]})})]})}function x1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl",children:[i.jsx(Wn,{children:i.jsx(Vn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:gC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const s=a.target;s.style.display="none";const l=s.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Dt,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.emotion&&e.emotion.length>0?e.emotion.map((a,s)=>i.jsx(Dt,{variant:"secondary",children:a},s)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Dt,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Dt,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Dt,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(J,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function b1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=mr();y.useEffect(()=>{e&&(s(e.description||""),u(e.emotion?e.emotion.join(", "):""),f(e.is_registered),p(e.is_banned))},[e]);const w=async()=>{if(e)try{x(!0);const b=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean);await h1e(e.id,{description:a||void 0,emotion:b.length>0?b:void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(b){const N=b instanceof Error?b.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑表情包"}),i.jsx(dr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(J,{children:"描述"}),i.jsx(Wt,{value:a,onChange:b=>s(b.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(J,{children:"情绪标签"}),i.jsx(Ne,{value:l,onChange:b=>u(b.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(no,{id:"is_registered",checked:d,onCheckedChange:b=>f(b===!0)}),i.jsx(J,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(no,{id:"is_banned",checked:m,onCheckedChange:b=>p(b===!0)}),i.jsx(J,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(de,{onClick:w,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function AL({emotions:e}){if(!e||e.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const t=(a,s=6)=>a.length<=s?a:a.slice(0,s)+"...",n=e.slice(0,3),r=e.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[n.map((a,s)=>i.jsx(Dt,{variant:"secondary",className:"text-xs flex-shrink-0",title:a,children:t(a)},s)),r>0&&i.jsxs(Dt,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${r} 个标签: ${e.slice(3).join(", ")}`,children:["+",r]})]})}const ed="/api/webui/expression";async function w1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await Qe(`${ed}/list?${t}`,{headers:lt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function j1e(e){const t=await Qe(`${ed}/${e}`,{headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function S1e(e){const t=await Qe(`${ed}/`,{method:"POST",headers:lt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function _1e(e,t){const n=await Qe(`${ed}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function N1e(e){const t=await Qe(`${ed}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function C1e(){const e=await Qe(`${ed}/stats/summary`,{headers:lt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function O1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(null),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(!1),[O,A]=y.useState(null),[C,k]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:T}=mr(),M=async()=>{try{r(!0);const F=await w1e({page:l,page_size:d,search:f||void 0});t(F.data),s(F.total)}catch(F){T({title:"加载失败",description:F instanceof Error?F.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},R=async()=>{try{const F=await C1e();k(F.data)}catch(F){console.error("加载统计数据失败:",F)}};y.useEffect(()=>{M(),R()},[l,d,f]);const L=async F=>{try{const G=await j1e(F.id);g(G.data),j(!0)}catch(G){T({title:"加载详情失败",description:G instanceof Error?G.message:"无法加载表达方式详情",variant:"destructive"})}},$=F=>{g(F),b(!0)},H=async F=>{try{await N1e(F.id),T({title:"删除成功",description:`已删除表达方式: ${F.situation}`}),A(null),M(),R()}catch(G){T({title:"删除失败",description:G instanceof Error?G.message:"无法删除表达方式",variant:"destructive"})}},V=F=>F?new Date(F*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(qh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(de,{onClick:()=>E(!0),className:"gap-2",children:[i.jsx(tr,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:C.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:C.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:C.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(J,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索情境、风格或上下文...",value:f,onChange:F=>m(F.target.value),className:"pl-9"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"情境"}),i.jsx(Ze,{children:"风格"}),i.jsx(Ze,{children:"聊天ID"}),i.jsx(Ze,{children:"最后活跃"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n?i.jsx(vn,{children:i.jsx(Ue,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(F=>i.jsxs(vn,{children:[i.jsx(Ue,{className:"font-medium max-w-xs truncate",children:F.situation}),i.jsx(Ue,{className:"max-w-xs truncate",children:F.style}),i.jsx(Ue,{className:"font-mono text-sm",children:F.chat_id}),i.jsx(Ue,{className:"text-sm text-muted-foreground",children:V(F.last_active_time)}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>L(F),children:i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>$(F),children:i.jsx(ku,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>A(F),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},F.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(F=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:F.situation,children:F.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:F.style,children:F.style})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:F.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:V(F.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>L(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ua,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>$(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(ku,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>A(F),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},F.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(de,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(de,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(E1e,{expression:p,open:x,onOpenChange:j}),i.jsx(A1e,{open:N,onOpenChange:E,onSuccess:()=>{M(),R(),E(!1)}}),i.jsx(T1e,{expression:p,open:w,onOpenChange:b,onSuccess:()=>{M(),R(),b(!1)}}),i.jsx(Pn,{open:!!O,onOpenChange:()=>A(null),children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除表达方式 "',O?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>O&&H(O),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function E1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"表达方式详情"}),i.jsx(dr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Ac,{label:"情境",value:e.situation}),i.jsx(Ac,{label:"风格",value:e.style}),i.jsx(Ac,{icon:Ng,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Ac,{icon:Ng,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Ac,{icon:sl,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Ac,{icon:sl,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx($r,{children:i.jsx(de,{onClick:()=>n(!1),children:"关闭"})})]})})}function Ac({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(J,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function A1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[s,l]=y.useState(!1),{toast:u}=mr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await S1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(nr,{open:e,onOpenChange:t,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"新增表达方式"}),i.jsx(dr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(J,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"context",children:"上下文"}),i.jsx(Wt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Wt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(de,{onClick:d,disabled:s,children:s?"创建中...":"创建"})]})]})})}function T1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=mr();y.useEffect(()=>{e&&s({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await _1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑表达方式"}),i.jsx(dr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ne,{id:"edit_situation",value:a.situation||"",onChange:m=>s({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ne,{id:"edit_style",value:a.style||"",onChange:m=>s({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ne,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>s({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Wt,{id:"edit_context",value:a.context||"",onChange:m=>s({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Wt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>s({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(de,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}const Xh="/api/webui/person";async function k1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await Qe(`${Xh}/list?${t}`,{headers:lt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function M1e(e){const t=await Qe(`${Xh}/${e}`,{headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function P1e(e,t){const n=await Qe(`${Xh}/${e}`,{method:"PATCH",headers:lt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function R1e(e){const t=await Qe(`${Xh}/${e}`,{method:"DELETE",headers:lt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function D1e(){const e=await Qe(`${Xh}/stats/summary`,{headers:lt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function $1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(void 0),[x,j]=y.useState(void 0),[w,b]=y.useState(null),[N,E]=y.useState(!1),[O,A]=y.useState(!1),[C,k]=y.useState(null),[T,M]=y.useState({total:0,known:0,unknown:0,platforms:{}}),{toast:R}=mr(),L=async()=>{try{r(!0);const D=await k1e({page:l,page_size:d,search:f||void 0,is_known:p,platform:x});t(D.data),s(D.total)}catch(D){R({title:"加载失败",description:D instanceof Error?D.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},$=async()=>{try{const D=await D1e();M(D.data)}catch(D){console.error("加载统计数据失败:",D)}};y.useEffect(()=>{L(),$()},[l,d,f,p,x]);const H=async D=>{try{const U=await M1e(D.person_id);b(U.data),E(!0)}catch(U){R({title:"加载详情失败",description:U instanceof Error?U.message:"无法加载人物详情",variant:"destructive"})}},V=D=>{b(D),A(!0)},F=async D=>{try{await R1e(D.person_id),R({title:"删除成功",description:`已删除人物信息: ${D.person_name||D.nickname||D.user_id}`}),k(null),L(),$()}catch(U){R({title:"删除失败",description:U instanceof Error?U.message:"无法删除人物信息",variant:"destructive"})}},G=y.useMemo(()=>Object.keys(T.platforms),[T.platforms]),B=D=>D?new Date(D*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Yge,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Vt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:T.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:T.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:T.unknown})]})]}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(J,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Dr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:f,onChange:D=>m(D.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(J,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(Et,{value:p===void 0?"all":p.toString(),onValueChange:D=>{g(D==="all"?void 0:D==="true"),u(1)},children:[i.jsx(wt,{id:"filter-known",className:"mt-1.5",children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部"}),i.jsx(Me,{value:"true",children:"已认识"}),i.jsx(Me,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(J,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(Et,{value:x||"all",onValueChange:D=>{j(D==="all"?void 0:D),u(1)},children:[i.jsx(wt,{id:"filter-platform",className:"mt-1.5",children:i.jsx(At,{})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部平台"}),G.map(D=>i.jsxs(Me,{value:D,children:[D," (",T.platforms[D],")"]},D))]})]})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"状态"}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"昵称"}),i.jsx(Ze,{children:"平台"}),i.jsx(Ze,{children:"用户ID"}),i.jsx(Ze,{children:"最后更新"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(vn,{children:i.jsx(Ue,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(D=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"})}),i.jsx(Ue,{className:"font-medium",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Ue,{children:D.nickname||"-"}),i.jsx(Ue,{children:D.platform}),i.jsx(Ue,{className:"font-mono text-sm",children:D.user_id}),i.jsx(Ue,{className:"text-sm text-muted-foreground",children:B(D.last_know)}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>H(D),children:i.jsx(Ua,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>V(D),children:i.jsx(ku,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"sm",onClick:()=>k(D),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},D.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(D=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsx("div",{className:"flex items-start justify-between gap-2",children:i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),D.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",D.nickname]})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:D.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:D.user_id,children:D.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:B(D.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>H(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ua,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>V(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(ku,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:()=>k(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Tt,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},D.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(de,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(de,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(I1e,{person:w,open:N,onOpenChange:E}),i.jsx(L1e,{person:w,open:O,onOpenChange:A,onSuccess:()=>{L(),$(),A(!1)}}),i.jsx(Pn,{open:!!C,onOpenChange:()=>k(null),children:i.jsxs(yn,{children:[i.jsxs(xn,{children:[i.jsx(wn,{children:"确认删除"}),i.jsxs(jn,{children:['确定要删除人物信息 "',C?.person_name||C?.nickname||C?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(bn,{children:[i.jsx(_n,{children:"取消"}),i.jsx(Sn,{onClick:()=>C&&F(C),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function I1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"人物详情"}),i.jsxs(dr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Hi,{icon:fF,label:"人物名称",value:e.person_name}),i.jsx(Hi,{icon:qh,label:"昵称",value:e.nickname}),i.jsx(Hi,{icon:Ng,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Hi,{icon:Ng,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Hi,{label:"平台",value:e.platform}),i.jsx(Hi,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(J,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,s)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},s))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Hi,{icon:sl,label:"认识时间",value:r(e.know_times)}),i.jsx(Hi,{icon:sl,label:"首次记录",value:r(e.know_since)}),i.jsx(Hi,{icon:sl,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx($r,{children:i.jsx(de,{onClick:()=>n(!1),children:"关闭"})})]})})}function Hi({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(J,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function L1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=mr();y.useEffect(()=>{e&&s({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await P1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(nr,{open:t,onOpenChange:n,children:i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑人物信息"}),i.jsxs(dr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ne,{id:"person_name",value:a.person_name||"",onChange:m=>s({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:a.nickname||"",onChange:m=>s({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Wt,{id:"name_reason",value:a.name_reason||"",onChange:m=>s({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Wt,{id:"memory_points",value:a.memory_points||"",onChange:m=>s({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(J,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(at,{id:"is_known",checked:a.is_known,onCheckedChange:m=>s({...a,is_known:m})})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(de,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function B1e(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const z1e={},vf={};function Zo(e,t){try{const r=(z1e[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in vf?vf[r]:TL(r,r.split(":"))}catch{if(e in vf)return vf[e];const n=e?.match(q1e);return n?TL(e,n.slice(1)):NaN}}const q1e=/([+-]\d\d):?(\d\d)?/;function TL(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return vf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class ui extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Zo(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),NH(this),yC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new ui(...n,t):new ui(Date.now(),t)}withTimeZone(t){return new ui(+this,t)}getTimezoneOffset(){const t=-Zo(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),yC(this),+this}[Symbol.for("constructDateFrom")](t){return new ui(+new Date(t),this.timeZone)}}const kL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!kL.test(e))return;const t=e.replace(kL,"$1UTC");ui.prototype[t]&&(e.startsWith("get")?ui.prototype[e]=function(){return this.internal[t]()}:(ui.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),F1e(this),+this},ui.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),yC(this),+this}))});function yC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Zo(e.timeZone,e)*60))}function F1e(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),NH(e)}function NH(e){const t=Zo(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),l=a-s,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(Zo(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=Zo(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),w=-new Date(+e).getTimezoneOffset()-x,b=x!==n,N=w-d;if(b&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const E=Zo(e.timeZone,e),O=E>0?Math.floor(E):Math.ceil(E),A=x-O;A&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+A),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+A))}}class or extends ui{static tz(t,...n){return n.length?new or(...n,t):new or(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${B1e(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new or(+this,t)}[Symbol.for("constructDateFrom")](t){return new or(+new Date(t),this.timeZone)}}const CH=6048e5,U1e=864e5,ML=Symbol.for("constructDateFrom");function Nn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&ML in e?e[ML](t):e instanceof Date?new e.constructor(t):new Date(t)}function $t(e,t){return Nn(t||e,e)}function OH(e,t,n){const r=$t(e,n?.in);return isNaN(t)?Nn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function EH(e,t,n){const r=$t(e,n?.in);if(isNaN(t))return Nn(e,NaN);if(!t)return r;const a=r.getDate(),s=Nn(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const l=s.getDate();return a>=l?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}let H1e={};function Zh(){return H1e}function ao(e,t){const n=Zh(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=$t(e,t?.in),s=a.getDay(),l=(s=s.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function PL(e){const t=$t(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Ml(e,...t){const n=Nn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function xh(e,t){const n=$t(e,t?.in);return n.setHours(0,0,0,0),n}function TH(e,t,n){const[r,a]=Ml(n?.in,e,t),s=xh(r),l=xh(a),u=+s-PL(s),d=+l-PL(l);return Math.round((u-d)/U1e)}function W1e(e,t){const n=AH(e,t),r=Nn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),yh(r)}function V1e(e,t,n){return OH(e,t*7,n)}function G1e(e,t,n){return EH(e,t*12,n)}function Y1e(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=Nn.bind(null,a));const s=$t(a,r);(!n||n{!r&&typeof a=="object"&&(r=Nn.bind(null,a));const s=$t(a,r);(!n||n>s||isNaN(+s))&&(n=s)}),Nn(r,n||NaN)}function X1e(e,t,n){const[r,a]=Ml(n?.in,e,t);return+xh(r)==+xh(a)}function kH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Z1e(e){return!(!kH(e)&&typeof e!="number"||isNaN(+$t(e)))}function Q1e(e,t,n){const[r,a]=Ml(n?.in,e,t),s=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return s*12+l}function J1e(e,t){const n=$t(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function MH(e,t){const[n,r]=Ml(e,t.start,t.end);return{start:n,end:r}}function eSe(e,t){const{start:n,end:r}=MH(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=s;)d.push(Nn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function tSe(e,t){const n=$t(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function nSe(e,t){const n=$t(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function PH(e,t){const n=$t(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function rSe(e,t){const{start:n,end:r}=MH(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=s;)d.push(Nn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function RH(e,t){const n=Zh(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=$t(e,t?.in),s=a.getDay(),l=(s{let r;const a=iSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function Zc(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const oSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},lSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},cSe={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},uSe={date:Zc({formats:oSe,defaultWidth:"full"}),time:Zc({formats:lSe,defaultWidth:"full"}),dateTime:Zc({formats:cSe,defaultWidth:"full"})},dSe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},fSe=(e,t,n,r)=>dSe[e];function ai(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const hSe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},mSe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},pSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},vSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},gSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},ySe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},xSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},bSe={ordinalNumber:xSe,era:ai({values:hSe,defaultWidth:"wide"}),quarter:ai({values:mSe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ai({values:pSe,defaultWidth:"wide"}),day:ai({values:vSe,defaultWidth:"wide"}),dayPeriod:ai({values:gSe,defaultWidth:"wide",formattingValues:ySe,defaultFormattingWidth:"wide"})};function ii(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const l=s[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?jSe(u,p=>p.test(l)):wSe(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function wSe(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function jSe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const SSe=/^(\d+)(th|st|nd|rd)?/i,_Se=/\d+/i,NSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},CSe={any:[/^b/i,/^(a|c)/i]},OSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ESe={any:[/1/i,/2/i,/3/i,/4/i]},ASe={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},TSe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},kSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},MSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},PSe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},RSe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},DSe={ordinalNumber:DH({matchPattern:SSe,parsePattern:_Se,valueCallback:e=>parseInt(e,10)}),era:ii({matchPatterns:NSe,defaultMatchWidth:"wide",parsePatterns:CSe,defaultParseWidth:"any"}),quarter:ii({matchPatterns:OSe,defaultMatchWidth:"wide",parsePatterns:ESe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ii({matchPatterns:ASe,defaultMatchWidth:"wide",parsePatterns:TSe,defaultParseWidth:"any"}),day:ii({matchPatterns:kSe,defaultMatchWidth:"wide",parsePatterns:MSe,defaultParseWidth:"any"}),dayPeriod:ii({matchPatterns:PSe,defaultMatchWidth:"any",parsePatterns:RSe,defaultParseWidth:"any"})},TE={code:"en-US",formatDistance:sSe,formatLong:uSe,formatRelative:fSe,localize:bSe,match:DSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function $Se(e,t){const n=$t(e,t?.in);return TH(n,PH(n))+1}function $H(e,t){const n=$t(e,t?.in),r=+yh(n)-+W1e(n);return Math.round(r/CH)+1}function IH(e,t){const n=$t(e,t?.in),r=n.getFullYear(),a=Zh(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=Nn(t?.in||e,0);l.setFullYear(r+1,0,s),l.setHours(0,0,0,0);const u=ao(l,t),d=Nn(t?.in||e,0);d.setFullYear(r,0,s),d.setHours(0,0,0,0);const f=ao(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function ISe(e,t){const n=Zh(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=IH(e,t),s=Nn(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),ao(s,t)}function LH(e,t){const n=$t(e,t?.in),r=+ao(n,t)-+ISe(n,t);return Math.round(r/CH)+1}function Ct(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Ls={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Ct(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Ct(n+1,2)},d(e,t){return Ct(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Ct(e.getHours()%12||12,t.length)},H(e,t){return Ct(e.getHours(),t.length)},m(e,t){return Ct(e.getMinutes(),t.length)},s(e,t){return Ct(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return Ct(a,t.length)}},Tc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},RL={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Ls.y(e,t)},Y:function(e,t,n,r){const a=IH(e,r),s=a>0?a:1-a;if(t==="YY"){const l=s%100;return Ct(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):Ct(s,t.length)},R:function(e,t){const n=AH(e);return Ct(n,t.length)},u:function(e,t){const n=e.getFullYear();return Ct(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Ct(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Ct(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Ls.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Ct(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=LH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):Ct(a,t.length)},I:function(e,t,n){const r=$H(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Ct(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Ls.d(e,t)},D:function(e,t,n){const r=$Se(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Ct(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return Ct(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return Ct(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return Ct(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Tc.noon:r===0?a=Tc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Tc.evening:r>=12?a=Tc.afternoon:r>=4?a=Tc.morning:a=Tc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Ls.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Ls.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Ct(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Ct(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Ls.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Ls.s(e,t)},S:function(e,t){return Ls.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return $L(r);case"XXXX":case"XX":return Ho(r);case"XXXXX":case"XXX":default:return Ho(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return $L(r);case"xxxx":case"xx":return Ho(r);case"xxxxx":case"xxx":default:return Ho(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+DL(r,":");case"OOOO":default:return"GMT"+Ho(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+DL(r,":");case"zzzz":default:return"GMT"+Ho(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Ct(r,t.length)},T:function(e,t,n){return Ct(+e,t.length)}};function DL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+Ct(s,2)}function $L(e,t){return e%60===0?(e>0?"-":"+")+Ct(Math.abs(e)/60,2):Ho(e,t)}function Ho(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Ct(Math.trunc(r/60),2),s=Ct(r%60,2);return n+a+t+s}const IL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},BH=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},LSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return IL(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",IL(r,t)).replace("{{time}}",BH(a,t))},BSe={p:BH,P:LSe},zSe=/^D+$/,qSe=/^Y+$/,FSe=["D","DD","YY","YYYY"];function USe(e){return zSe.test(e)}function HSe(e){return qSe.test(e)}function WSe(e,t,n){const r=VSe(e,t,n);if(console.warn(r),FSe.includes(e))throw new RangeError(r)}function VSe(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const GSe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,YSe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,KSe=/^'([^]*?)'?$/,XSe=/''/g,ZSe=/[a-zA-Z]/;function dv(e,t,n){const r=Zh(),a=n?.locale??r.locale??TE,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=$t(e,n?.in);if(!Z1e(u))throw new RangeError("Invalid time value");let d=t.match(YSe).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=BSe[p];return g(m,a.formatLong)}return m}).join("").match(GSe).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:QSe(m)};if(RL[p])return{isToken:!0,value:m};if(p.match(ZSe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:s,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&HSe(p)||!n?.useAdditionalDayOfYearTokens&&USe(p))&&WSe(p,t,String(e));const g=RL[p[0]];return g(u,p,a.localize,f)}).join("")}function QSe(e){const t=e.match(KSe);return t?t[1].replace(XSe,"'"):e}function JSe(e,t){const n=$t(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=Nn(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function e_e(e,t){return $t(e,t?.in).getMonth()}function t_e(e,t){return $t(e,t?.in).getFullYear()}function n_e(e,t){return+$t(e)>+$t(t)}function r_e(e,t){return+$t(e)<+$t(t)}function a_e(e,t,n){const[r,a]=Ml(n?.in,e,t);return+ao(r,n)==+ao(a,n)}function i_e(e,t,n){const[r,a]=Ml(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function s_e(e,t,n){const[r,a]=Ml(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function o_e(e,t,n){const r=$t(e,n?.in),a=r.getFullYear(),s=r.getDate(),l=Nn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=JSe(l);return r.setMonth(t,Math.min(s,u)),r}function l_e(e,t,n){const r=$t(e,n?.in);return isNaN(+r)?Nn(e,NaN):(r.setFullYear(t),r)}const LL=5,c_e=4;function u_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),s=t.addDays(a,LL*7-1);return t.getMonth(e)===t.getMonth(s)?LL:c_e}function zH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function d_e(e,t){const n=zH(e,t),r=u_e(e,t);return t.addDays(n,r*7-1)}class ia{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?or.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,s)=>this.overrides?.newDate?this.overrides.newDate(r,a,s):this.options.timeZone?new or(r,a,s,this.options.timeZone):new Date(r,a,s),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):OH(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):EH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):V1e(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):G1e(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):TH(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):Q1e(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):eSe(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):rSe(r),s=new Set(a.map(u=>this.getYear(u)));if(s.size===a.length)return a;const l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):d_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):aSe(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):J1e(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):RH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):nSe(r),this.format=(r,a,s)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):dv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):$H(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):e_e(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):t_e(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):LH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):n_e(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):r_e(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):kH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):X1e(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):i_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):s_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):Y1e(r),this.min=r=>this.overrides?.min?this.overrides.min(r):K1e(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):o_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):l_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):zH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):xh(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):yh(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):tSe(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):ao(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):PH(r),this.options={locale:TE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&ia.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,s=n?.code;if(s&&ia.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}ia.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Si=new ia;class qH{constructor(t,n,r=Si){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class f_e{constructor(t,n){this.date=t,this.weeks=n}}class h_e{constructor(t,n){this.days=n,this.weekNumber=t}}function m_e(e){return W.createElement("button",{...e})}function p_e(e){return W.createElement("span",{...e})}function v_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function g_e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function y_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var $e;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})($e||($e={}));var tn;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(tn||(tn={}));var za;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(za||(za={}));var Xr;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(Xr||(Xr={}));function x_e(e){const{options:t,className:n,components:r,classNames:a,...s}=e,l=[a[$e.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===s.value);return W.createElement("span",{"data-disabled":s.disabled,className:a[$e.DropdownRoot]},W.createElement(r.Select,{className:l,...s},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[$e.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[$e.Chevron]})))}function b_e(e){return W.createElement("div",{...e})}function w_e(e){return W.createElement("div",{...e})}function j_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function S_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function __e(e){return W.createElement("table",{...e})}function N_e(e){return W.createElement("div",{...e})}const FH=y.createContext(void 0);function Qh(){const e=y.useContext(FH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function C_e(e){const{components:t}=Qh();return W.createElement(t.Dropdown,{...e})}function O_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...s}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=Qh(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...s},W.createElement(l.PreviousMonthButton,{type:"button",className:u[$e.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[$e.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[$e.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[$e.Chevron]})))}function E_e(e){const{components:t}=Qh();return W.createElement(t.Button,{...e})}function A_e(e){return W.createElement("option",{...e})}function T_e(e){const{components:t}=Qh();return W.createElement(t.Button,{...e})}function k_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function M_e(e){return W.createElement("select",{...e})}function P_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function R_e(e){return W.createElement("th",{...e})}function D_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function $_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function I_e(e){return W.createElement("th",{...e})}function L_e(e){return W.createElement("tbody",{...e})}function B_e(e){const{components:t}=Qh();return W.createElement(t.Dropdown,{...e})}const z_e=Object.freeze(Object.defineProperty({__proto__:null,Button:m_e,CaptionLabel:p_e,Chevron:v_e,Day:g_e,DayButton:y_e,Dropdown:x_e,DropdownNav:b_e,Footer:w_e,Month:j_e,MonthCaption:S_e,MonthGrid:__e,Months:N_e,MonthsDropdown:C_e,Nav:O_e,NextMonthButton:E_e,Option:A_e,PreviousMonthButton:T_e,Root:k_e,Select:M_e,Week:P_e,WeekNumber:$_e,WeekNumberHeader:I_e,Weekday:R_e,Weekdays:D_e,Weeks:L_e,YearsDropdown:B_e},Symbol.toStringTag,{value:"Module"}));function Xi(e,t,n=!1,r=Si){let{from:a,to:s}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&s?(l(s,a)<0&&([a,s]=[s,a]),l(t,a)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?u(s,t):!n&&a?u(a,t):!1}function UH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function kE(e){return!!(e&&typeof e=="object"&&"from"in e)}function HH(e){return!!(e&&typeof e=="object"&&"after"in e)}function WH(e){return!!(e&&typeof e=="object"&&"before"in e)}function VH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function GH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function Zi(e,t,n=Si){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:s,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(GH(u,n))return u.includes(e);if(kE(u))return Xi(u,e,!1,n);if(VH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(UH(u)){const d=s(u.before,e),f=s(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return HH(u)?s(e,u.after)>0:WH(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function q_e(e,t,n,r,a){const{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:w,isAfter:b}=a,N=n&&x(n),E=r&&w(r),O={[tn.focused]:[],[tn.outside]:[],[tn.disabled]:[],[tn.hidden]:[],[tn.today]:[]},A={};for(const C of e){const{date:k,displayMonth:T}=C,M=!!(T&&!g(k,T)),R=!!(N&&j(k,N)),L=!!(E&&b(k,E)),$=!!(s&&Zi(k,s,a)),H=!!(l&&Zi(k,l,a))||R||L||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&O.outside.push(C),$&&O.disabled.push(C),H&&O.hidden.push(C),V&&O.today.push(C),u&&Object.keys(u).forEach(F=>{const G=u?.[F];G&&Zi(k,G,a)&&(A[F]?A[F].push(C):A[F]=[C])})}return C=>{const k={[tn.focused]:!1,[tn.disabled]:!1,[tn.hidden]:!1,[tn.outside]:!1,[tn.today]:!1},T={};for(const M in O){const R=O[M];k[M]=R.some(L=>L===C)}for(const M in A)T[M]=A[M].some(R=>R===C);return{...k,...T}}}function F_e(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[s])=>(n[s]?a.push(n[s]):t[tn[s]]?a.push(t[tn[s]]):t[za[s]]&&a.push(t[za[s]]),a),[t[$e.Day]])}function U_e(e){return{...z_e,...e}}function H_e(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function ME(){const e={};for(const t in $e)e[$e[t]]=`rdp-${$e[t]}`;for(const t in tn)e[tn[t]]=`rdp-${tn[t]}`;for(const t in za)e[za[t]]=`rdp-${za[t]}`;for(const t in Xr)e[Xr[t]]=`rdp-${Xr[t]}`;return e}function YH(e,t,n){return(n??new ia(t)).formatMonthYear(e)}const W_e=YH;function V_e(e,t,n){return(n??new ia(t)).format(e,"d")}function G_e(e,t=Si){return t.format(e,"LLLL")}function Y_e(e,t,n){return(n??new ia(t)).format(e,"cccccc")}function K_e(e,t=Si){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function X_e(){return""}function KH(e,t=Si){return t.format(e,"yyyy")}const Z_e=KH,Q_e=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:YH,formatDay:V_e,formatMonthCaption:W_e,formatMonthDropdown:G_e,formatWeekNumber:K_e,formatWeekNumberHeader:X_e,formatWeekdayName:Y_e,formatYearCaption:Z_e,formatYearDropdown:KH},Symbol.toStringTag,{value:"Module"}));function J_e(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...Q_e,...e}}function eNe(e,t,n,r,a){const{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),w=t&&gs(n)||!1;return{value:j,label:x,disabled:w}})}function tNe(e,t={},n={}){let r={...t?.[$e.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function nNe(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),s=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);s.push(u)}return s}function rNe(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=s(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function XH(e,t,n,r){let a=(r??new ia(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const aNe=XH;function ZH(e,t,n){return(n??new ia(t)).formatMonthYear(e)}const iNe=ZH;function sNe(e,t,n,r){let a=(r??new ia(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function oNe(e){return"Choose the Month"}function lNe(){return""}function cNe(e){return"Go to the Next Month"}function uNe(e){return"Go to the Previous Month"}function dNe(e,t,n){return(n??new ia(t)).format(e,"cccc")}function fNe(e,t){return`Week ${e}`}function hNe(e){return"Week Number"}function mNe(e){return"Choose the Year"}const pNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:iNe,labelDay:aNe,labelDayButton:XH,labelGrid:ZH,labelGridcell:sNe,labelMonthDropdown:oNe,labelNav:lNe,labelNext:cNe,labelPrevious:uNe,labelWeekNumber:fNe,labelWeekNumberHeader:hNe,labelWeekday:dNe,labelYearDropdown:mNe},Symbol.toStringTag,{value:"Module"})),Jh=e=>e instanceof HTMLElement?e:null,c_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],vNe=e=>Jh(e.querySelector("[data-animated-month]")),u_=e=>Jh(e.querySelector("[data-animated-caption]")),d_=e=>Jh(e.querySelector("[data-animated-weeks]")),gNe=e=>Jh(e.querySelector("[data-animated-nav]")),yNe=e=>Jh(e.querySelector("[data-animated-weekdays]"));function xNe(e,t,{classNames:n,months:r,focused:a,dateLib:s}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=s.isSameMonth(r[0].date,f[0].date),p=s.isAfter(r[0].date,f[0].date),g=p?n[Xr.caption_after_enter]:n[Xr.caption_before_enter],x=p?n[Xr.weeks_after_enter]:n[Xr.weeks_before_enter],j=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(c_(w).forEach(O=>{if(!(O instanceof HTMLElement))return;const A=vNe(O);A&&O.contains(A)&&O.removeChild(A);const C=u_(O);C&&C.classList.remove(g);const k=d_(O);k&&k.classList.remove(x)}),l.current=w):l.current=null,d.current||m||a)return;const b=j instanceof HTMLElement?c_(j):[],N=c_(e.current);if(N?.every(E=>E instanceof HTMLElement)&&b&&b.every(E=>E instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const E=gNe(e.current);E&&(E.style.zIndex="1"),N.forEach((O,A)=>{const C=b[A];if(!C)return;O.style.position="relative",O.style.overflow="hidden";const k=u_(O);k&&k.classList.add(g);const T=d_(O);T&&T.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),E&&(E.style.zIndex=""),k&&k.classList.remove(g),T&&T.classList.remove(x),O.style.position="",O.style.overflow="",O.contains(C)&&O.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const R=yNe(C);R&&(R.style.opacity="0");const L=u_(C);L&&(L.classList.add(p?n[Xr.caption_before_exit]:n[Xr.caption_after_exit]),L.addEventListener("animationend",M));const $=d_(C);$&&$.classList.add(p?n[Xr.weeks_before_exit]:n[Xr.weeks_after_exit]),O.insertBefore(C,O.firstChild)})}})}function bNe(e,t,n,r){const a=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:w,isAfter:b,startOfBroadcastWeek:N,startOfISOWeek:E,startOfWeek:O}=r,A=d?N(a,r):l?E(a):O(a),C=d?g(s):l?x(j(s)):w(j(s)),k=m(C,A),T=p(s,a)+1,M=[];for(let $=0;$<=k;$++){const H=f(A,$);if(t&&b(H,t))break;M.push(H)}const L=(d?35:42)*T;if(u&&M.length{const a=r.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function jNe(e,t,n,r){const{numberOfMonths:a=1}=n,s=[];for(let l=0;lt)break;s.push(u)}return s}function BL(e,t,n,r){const{month:a,defaultMonth:s,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||s||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(b,r):n.ISOWeek?g(b):x(b),E=n.broadcastCalendar?s(b):n.ISOWeek?l(u(b)):d(u(b)),O=t.filter(T=>T>=N&&T<=E),A=n.broadcastCalendar?35:42;if(n.fixedWeeks&&O.length{const R=A-O.length;return M>E&&M<=a(E,R)});O.push(...T)}const C=O.reduce((T,M)=>{const R=n.ISOWeek?f(M):m(M),L=T.find(H=>H.weekNumber===R),$=new qH(M,b,r);return L?L.days.push($):T.push(new h_e(R,[$])),T},[]),k=new f_e(b,C);return w.push(k),w},[]);return n.reverseMonths?j.reverse():j}function _Ne(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:w}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&w&&(r=w),!r&&x&&(r=m(x,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&b&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&b&&(r=f(e.today??p())),[n&&s(n),r&&s(r)]}function NNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?s:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function rx(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function ENe(e,t){const[n,r]=_Ne(e,t),{startOfMonth:a,endOfMonth:s}=t,l=BL(e,n,r,t),[u,d]=rx(l,e.month?l:void 0);y.useEffect(()=>{const k=BL(e,n,r,t);d(k)},[e.timeZone]);const f=jNe(u,r,e,t),m=bNe(f,e.endMonth?s(e.endMonth):void 0,e,t),p=SNe(f,m,e,t),g=ONe(p),x=wNe(p),j=CNe(u,n,e,t),w=NNe(u,r,e,t),{disableNavigation:b,onMonthChange:N}=e,E=k=>g.some(T=>T.days.some(M=>M.isEqualTo(k))),O=k=>{if(b)return;let T=a(k);n&&Ta(r)&&(T=a(r)),d(T),N?.(T)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:w,goToMonth:O,goToDay:k=>{E(k)||O(k.date)}}}var ti;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ti||(ti={}));function zL(e){return!e[tn.disabled]&&!e[tn.hidden]&&!e[tn.outside]}function ANe(e,t,n,r){let a,s=-1;for(const l of e){const u=t(l);zL(u)&&(u[tn.focused]&&szL(t(l)))),a}function TNe(e,t,n,r,a,s,l){const{ISOWeek:u,broadcastCalendar:d}=s,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:w,max:b,min:N,startOfBroadcastWeek:E,startOfISOWeek:O,startOfWeek:A}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:T=>d?E(T,l):u?O(T):A(T),endOfWeek:T=>d?x(T):u?j(T):w(T)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=b([r,k]):t==="after"&&a&&(k=N([a,k])),k}function QH(e,t,n,r,a,s,l,u=0){if(u>365)return;const d=TNe(e,t,n.date,r,a,s,l),f=!!(s.disabled&&Zi(d,s.disabled,l)),m=!!(s.hidden&&Zi(d,s.hidden,l)),p=d,g=new qH(d,p,l);return!f&&!m?g:QH(e,t,g,r,a,s,l,u+1)}function kNe(e,t,n,r,a){const{autoFocus:s}=e,[l,u]=y.useState(),d=ANe(t.days,n,r||(()=>!1),l),[f,m]=y.useState(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(w,b)=>{if(!f)return;const N=QH(w,b,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(O=>O.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function MNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=rx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,w)=>{let b=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;b=u?.filter(N=>!d(N,x))}else u?.length===p?b=[x]:b=[...b,x];return a||l(b),a?.(b,x,j,w),b},isSelected:f}}function PNe(e,t,n=0,r=0,a=!1,s=Si){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=s;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=s.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?Xi(e,u,!1,n):GH(u,n)?u.some(d=>Xi(e,d,!1,n)):kE(u)?u.from&&u.to?qL(e,{from:u.from,to:u.to},n):!1:VH(u)?RNe(e,u.dayOfWeek,n):UH(u)?n.isAfter(u.before,u.after)?qL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):Zi(e.from,u,n)||Zi(e.to,u,n):HH(u)||WH(u)?Zi(e.from,u,n)||Zi(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function $Ne(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:s,onSelect:l}=e,[u,d]=rx(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:w,max:b}=e,N=g?PNe(g,f,w,b,s,t):void 0;return r&&n&&N?.from&&N.to&&DNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&Xi(f,g,!1,t)}}function INe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=rx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function LNe(e,t){const n=INe(e,t),r=MNe(e,t),a=$Ne(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function BNe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new or(t.today,t.timeZone)),t.month&&(t.month=new or(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new or(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new or(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new or(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new or(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(et=>new or(et,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new or(t.selected.from,t.timeZone):void 0,to:t.selected.to?new or(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:s,locale:l,classNames:u}=y.useMemo(()=>{const et={...TE,...t.locale};return{dateLib:new ia({locale:et,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:U_e(t.components),formatters:J_e(t.formatters),labels:{...pNe,...t.labels},locale:et,classNames:{...ME(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:w,onDayMouseEnter:b,onDayMouseLeave:N,onNextClick:E,onPrevClick:O,showWeekNumber:A,styles:C}=t,{formatCaption:k,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:L,formatWeekdayName:$,formatYearDropdown:H}=r,V=ENe(t,s),{days:F,months:G,navStart:B,navEnd:D,previousMonth:U,nextMonth:K,goToMonth:te}=V,I=q_e(F,t,B,D,s),{isSelected:z,select:Y,selected:ne}=LNe(t,s)??{},{blur:se,focused:xe,isFocusTarget:ee,moveFocus:ae,setFocused:Z}=kNe(t,V,I,z??(()=>!1),s),{labelDayButton:ve,labelGridcell:je,labelGrid:le,labelMonthDropdown:Re,labelNav:_e,labelPrevious:fe,labelNext:pe,labelWeekday:Le,labelWeekNumber:It,labelWeekNumberHeader:Cn,labelYearDropdown:vr}=a,rr=y.useMemo(()=>nNe(s,t.ISOWeek),[s,t.ISOWeek]),gr=f!==void 0||x!==void 0,ct=y.useCallback(()=>{U&&(te(U),O?.(U))},[U,te,O]),rt=y.useCallback(()=>{K&&(te(K),E?.(K))},[te,K,E]),$n=y.useCallback((et,zt)=>He=>{He.preventDefault(),He.stopPropagation(),Z(et),Y?.(et.date,zt,He),x?.(et.date,zt,He)},[Y,x,Z]),go=y.useCallback((et,zt)=>He=>{Z(et),j?.(et.date,zt,He)},[j,Z]),sm=y.useCallback((et,zt)=>He=>{se(),g?.(et.date,zt,He)},[se,g]),Rl=y.useCallback((et,zt)=>He=>{const gt={ArrowLeft:[He.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[He.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[He.shiftKey?"year":"week","after"],ArrowUp:[He.shiftKey?"year":"week","before"],PageUp:[He.shiftKey?"year":"month","before"],PageDown:[He.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(gt[He.key]){He.preventDefault(),He.stopPropagation();const[In,tt]=gt[He.key];ae(In,tt)}w?.(et.date,zt,He)},[ae,w,t.dir]),lx=y.useCallback((et,zt)=>He=>{b?.(et.date,zt,He)},[b]),om=y.useCallback((et,zt)=>He=>{N?.(et.date,zt,He)},[N]),cx=y.useCallback(et=>zt=>{const He=Number(zt.target.value),gt=s.setMonth(s.startOfMonth(et),He);te(gt)},[s,te]),ux=y.useCallback(et=>zt=>{const He=Number(zt.target.value),gt=s.setYear(s.startOfMonth(et),He);te(gt)},[s,te]),{className:yo,style:yr}=y.useMemo(()=>({className:[u[$e.Root],t.className].filter(Boolean).join(" "),style:{...C?.[$e.Root],...t.style}}),[u,t.className,t.style,C]),Ka=H_e(t),ar=y.useRef(null);xNe(ar,!!t.animate,{classNames:u,months:G,focused:xe,dateLib:s});const dx={dayPickerProps:t,selected:ne,select:Y,isSelected:z,months:G,nextMonth:K,previousMonth:U,goToMonth:te,getModifiers:I,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(FH.Provider,{value:dx},W.createElement(n.Root,{rootRef:t.animate?ar:void 0,className:yo,style:yr,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...Ka},W.createElement(n.Months,{className:u[$e.Months],style:C?.[$e.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[$e.Nav],style:C?.[$e.Nav],"aria-label":_e(),onPreviousClick:ct,onNextClick:rt,previousMonth:U,nextMonth:K}),G.map((et,zt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[$e.Month],style:C?.[$e.Month],key:zt,displayIndex:zt,calendarMonth:et},m==="around"&&!t.hideNavigation&&zt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[$e.PreviousMonthButton],tabIndex:U?void 0:-1,"aria-disabled":U?void 0:!0,"aria-label":fe(U),onClick:ct,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:U?void 0:!0,className:u[$e.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[$e.MonthCaption],style:C?.[$e.MonthCaption],calendarMonth:et,displayIndex:zt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[$e.Dropdowns],style:C?.[$e.Dropdowns]},(()=>{const He=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[$e.MonthsDropdown],"aria-label":Re(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:cx(et.date),options:eNe(et.date,B,D,r,s),style:C?.[$e.Dropdown],value:s.getMonth(et.date)}):W.createElement("span",{key:"month"},M(et.date,s)),gt=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[$e.YearsDropdown],"aria-label":vr(s.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:ux(et.date),options:rNe(B,D,r,s,!!t.reverseYears),style:C?.[$e.Dropdown],value:s.getYear(et.date)}):W.createElement("span",{key:"year"},H(et.date,s));return s.getMonthYearOrder()==="year-first"?[gt,He]:[He,gt]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(et.date,s.options,s))):W.createElement(n.CaptionLabel,{className:u[$e.CaptionLabel],role:"status","aria-live":"polite"},k(et.date,s.options,s))),m==="around"&&!t.hideNavigation&&zt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[$e.NextMonthButton],tabIndex:K?void 0:-1,"aria-disabled":K?void 0:!0,"aria-label":pe(K),onClick:rt,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:K?void 0:!0,className:u[$e.Chevron],orientation:t.dir==="rtl"?"left":"right"})),zt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[$e.Nav],style:C?.[$e.Nav],"aria-label":_e(),onPreviousClick:ct,onNextClick:rt,previousMonth:U,nextMonth:K}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":le(et.date,s.options,s)||void 0,className:u[$e.MonthGrid],style:C?.[$e.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[$e.Weekdays],style:C?.[$e.Weekdays]},A&&W.createElement(n.WeekNumberHeader,{"aria-label":Cn(s.options),className:u[$e.WeekNumberHeader],style:C?.[$e.WeekNumberHeader],scope:"col"},L()),rr.map(He=>W.createElement(n.Weekday,{"aria-label":Le(He,s.options,s),className:u[$e.Weekday],key:String(He),style:C?.[$e.Weekday],scope:"col"},$(He,s.options,s)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[$e.Weeks],style:C?.[$e.Weeks]},et.weeks.map(He=>W.createElement(n.Week,{className:u[$e.Week],key:He.weekNumber,style:C?.[$e.Week],week:He},A&&W.createElement(n.WeekNumber,{week:He,style:C?.[$e.WeekNumber],"aria-label":It(He.weekNumber,{locale:l}),className:u[$e.WeekNumber],scope:"row",role:"rowheader"},R(He.weekNumber,s)),He.days.map(gt=>{const{date:In}=gt,tt=I(gt);if(tt[tn.focused]=!tt.hidden&&!!xe?.isEqualTo(gt),tt[za.selected]=z?.(In)||tt.selected,kE(ne)){const{from:$l,to:bo}=ne;tt[za.range_start]=!!($l&&bo&&s.isSameDay(In,$l)),tt[za.range_end]=!!($l&&bo&&s.isSameDay(In,bo)),tt[za.range_middle]=Xi(ne,In,!0,s)}const Dl=tNe(tt,C,t.modifiersStyles),xo=F_e(tt,u,t.modifiersClassNames),fx=!gr&&!tt.hidden?je(In,tt,s.options,s):void 0;return W.createElement(n.Day,{key:`${s.format(In,"yyyy-MM-dd")}_${s.format(gt.displayMonth,"yyyy-MM")}`,day:gt,modifiers:tt,className:xo.join(" "),style:Dl,role:"gridcell","aria-selected":tt.selected||void 0,"aria-label":fx,"data-day":s.format(In,"yyyy-MM-dd"),"data-month":gt.outside?s.format(In,"yyyy-MM"):void 0,"data-selected":tt.selected||void 0,"data-disabled":tt.disabled||void 0,"data-hidden":tt.hidden||void 0,"data-outside":gt.outside||void 0,"data-focused":tt.focused||void 0,"data-today":tt.today||void 0},!tt.hidden&&gr?W.createElement(n.DayButton,{className:u[$e.DayButton],style:C?.[$e.DayButton],type:"button",day:gt,modifiers:tt,disabled:tt.disabled||void 0,tabIndex:ee(gt)?0:-1,"aria-label":ve(In,tt,s.options,s),onClick:$n(gt,tt),onBlur:sm(gt,tt),onFocus:go(gt,tt),onKeyDown:Rl(gt,tt),onMouseEnter:lx(gt,tt),onMouseLeave:om(gt,tt)},T(In,s.options,s)):!tt.hidden&&T(gt.date,s.options,s))})))))))),t.footer&&W.createElement(n.Footer,{className:u[$e.Footer],style:C?.[$e.Footer],role:"status","aria-live":"polite"},t.footer)))}function FL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:s,components:l,...u}){const d=ME();return i.jsx(BNe,{showOutsideDays:n,className:ce("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...s},classNames:{root:ce("w-fit",d.root),months:ce("relative flex flex-col gap-4 md:flex-row",d.months),month:ce("flex w-full flex-col gap-4",d.month),nav:ce("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:ce(mh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:ce(mh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:ce("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:ce("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:ce("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:ce("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:ce("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:ce("flex",d.weekdays),weekday:ce("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:ce("mt-2 flex w-full",d.week),week_number_header:ce("w-[--cell-size] select-none",d.week_number_header),week_number:ce("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:ce("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:ce("bg-accent rounded-l-md",d.range_start),range_middle:ce("rounded-none",d.range_middle),range_end:ce("bg-accent rounded-r-md",d.range_end),today:ce("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:ce("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:ce("text-muted-foreground opacity-50",d.disabled),hidden:ce("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:ce(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(JO,{className:ce("size-4",f),...p}):m==="right"?i.jsx(eE,{className:ce("size-4",f),...p}):i.jsx(fh,{className:ce("size-4",f),...p}),DayButton:zNe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function zNe({className:e,day:t,modifiers:n,...r}){const a=ME(),s=y.useRef(null);return y.useEffect(()=>{n.focused&&s.current?.focus()},[n.focused]),i.jsx(de,{ref:s,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:ce("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class qNe{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const $c=new qNe;typeof window<"u"&&$c.connect();const FNe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},UNe=(e,t,n)=>{let r;const a=FNe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},HNe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},WNe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},VNe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},GNe={date:Zc({formats:HNe,defaultWidth:"full"}),time:Zc({formats:WNe,defaultWidth:"full"}),dateTime:Zc({formats:VNe,defaultWidth:"full"})};function UL(e,t,n){const r="eeee p";return a_e(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const YNe={lastWeek:UL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:UL,other:"PP p"},KNe=(e,t,n,r)=>{const a=YNe[e];return typeof a=="function"?a(t,n,r):a},XNe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},ZNe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},QNe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},JNe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},eCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},tCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},nCe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},rCe={ordinalNumber:nCe,era:ai({values:XNe,defaultWidth:"wide"}),quarter:ai({values:ZNe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ai({values:QNe,defaultWidth:"wide"}),day:ai({values:JNe,defaultWidth:"wide"}),dayPeriod:ai({values:eCe,defaultWidth:"wide",formattingValues:tCe,defaultFormattingWidth:"wide"})},aCe=/^(第\s*)?\d+(日|时|分|秒)?/i,iCe=/\d+/i,sCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},oCe={any:[/^(前)/i,/^(公元)/i]},lCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},cCe={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},uCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},dCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},fCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},hCe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},mCe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},pCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},vCe={ordinalNumber:DH({matchPattern:aCe,parsePattern:iCe,valueCallback:e=>parseInt(e,10)}),era:ii({matchPatterns:sCe,defaultMatchWidth:"wide",parsePatterns:oCe,defaultParseWidth:"any"}),quarter:ii({matchPatterns:lCe,defaultMatchWidth:"wide",parsePatterns:cCe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ii({matchPatterns:uCe,defaultMatchWidth:"wide",parsePatterns:dCe,defaultParseWidth:"any"}),day:ii({matchPatterns:fCe,defaultMatchWidth:"wide",parsePatterns:hCe,defaultParseWidth:"any"}),dayPeriod:ii({matchPatterns:mCe,defaultMatchWidth:"any",parsePatterns:pCe,defaultParseWidth:"any"})},Gp={code:"zh-CN",formatDistance:UNe,formatLong:GNe,formatRelative:KNe,localize:rCe,match:vCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function gCe(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,s]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,w]=y.useState(!1),b=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const $=$c.getAllLogs();t($);const H=$c.onLog(()=>{t($c.getAllLogs())}),V=$c.onConnectionChange(F=>{w(F)});return()=>{H(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const E=y.useMemo(()=>{const $=new Set(e.map(H=>H.module));return Array.from($).sort()},[e]),O=$=>{switch($){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},A=$=>{switch($){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},C=()=>{window.location.reload()},k=()=>{$c.clearLogs(),t([])},T=()=>{const $=L.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` -`),H=new Blob([$],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(H),F=document.createElement("a");F.href=V,F.download=`logs-${dv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,F.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},R=()=>{f(void 0),p(void 0)},L=y.useMemo(()=>e.filter($=>{const H=n===""||$.message.toLowerCase().includes(n.toLowerCase())||$.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||$.level===a,F=l==="all"||$.module===l;let G=!0;if(d||m){const B=new Date($.timestamp);if(d){const D=new Date(d);D.setHours(0,0,0,0),G=G&&B>=D}if(m){const D=new Date(m);D.setHours(23,59,59,999),G=G&&B<=D}}return H&&V&&F&&G}),[e,n,a,l,d,m]);return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:ce("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(ot,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索日志...",value:n,onChange:$=>r($.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(Et,{value:a,onValueChange:s,children:[i.jsxs(wt,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(ZN,{className:"h-4 w-4 mr-2"}),i.jsx(At,{placeholder:"级别"})]}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部级别"}),i.jsx(Me,{value:"DEBUG",children:"DEBUG"}),i.jsx(Me,{value:"INFO",children:"INFO"}),i.jsx(Me,{value:"WARNING",children:"WARNING"}),i.jsx(Me,{value:"ERROR",children:"ERROR"}),i.jsx(Me,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(Et,{value:l,onValueChange:u,children:[i.jsxs(wt,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(ZN,{className:"h-4 w-4 mr-2"}),i.jsx(At,{placeholder:"模块"})]}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部模块"}),E.map($=>i.jsx(Me,{value:$,children:$},$))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(GI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?dv(d,"PPP",{locale:Gp}):"开始日期"})]})}),i.jsx(os,{className:"w-auto p-0",align:"start",children:i.jsx(FL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:Gp})})]}),i.jsxs(eo,{children:[i.jsx(to,{asChild:!0,children:i.jsxs(de,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(GI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?dv(m,"PPP",{locale:Gp}):"结束日期"})]})}),i.jsx(os,{className:"w-auto p-0",align:"start",children:i.jsx(FL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:Gp})})]}),(d||m)&&i.jsxs(de,{variant:"outline",size:"sm",onClick:R,className:"w-full sm:w-auto h-9",children:[i.jsx(Fh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(de,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(mge,{className:"h-4 w-4"}):i.jsx(gge,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(ol,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(Tt,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(de,{variant:"outline",size:"sm",onClick:T,className:"flex-1 sm:flex-none h-9",children:[i.jsx(KN,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[L.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(ot,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Vt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:b,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[L.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):L.map($=>i.jsxs("div",{className:ce("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",A($.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:$.timestamp}),i.jsxs("span",{className:ce("text-xs font-semibold",O($.level)),children:["[",$.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:$.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:$.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:$.timestamp}),i.jsxs("span",{className:ce("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",O($.level)),children:["[",$.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:$.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:$.message})]})]},$.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const yCe="Mai-with-u",xCe="plugin-repo",bCe="main",wCe="plugin_details.json";async function jCe(){try{const e=await Qe("/api/webui/plugins/fetch-raw",{method:"POST",headers:lt(),body:JSON.stringify({owner:yCe,repo:xCe,branch:bCe,file_path:wCe})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function SCe(){try{const e=await Qe("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function _Ce(){try{const e=await Qe("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function NCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,s=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function CCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const s=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(s)},3e4)},a.onmessage=s=>{try{if(s.data==="pong")return;const l=JSON.parse(s.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=s=>{console.error("Plugin progress WebSocket error:",s),t?.(s)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function Yp(){try{const e=await Qe("/api/webui/plugins/installed",{headers:lt()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function Kp(e,t){return t.some(n=>n.id===e)}function Xp(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function OCe(e,t,n="main"){const r=await Qe("/api/webui/plugins/install",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function ECe(e){const t=await Qe("/api/webui/plugins/uninstall",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function ACe(e,t,n="main"){const r=await Qe("/api/webui/plugins/update",{method:"POST",headers:lt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}const HL={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function TCe(){const e=sa(),[t,n]=y.useState(null),[r,a]=y.useState(""),[s,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[,T]=y.useState([]),{toast:M}=mr();y.useEffect(()=>{let D=null,U=!1;return(async()=>{if(D=CCe(te=>{U||(A(te),te.stage==="success"?setTimeout(()=>{U||A(null)},2e3):te.stage==="error"&&(j(!1),b(te.error||"加载失败")))},te=>{console.error("WebSocket error:",te),U||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(te=>{if(!D){te();return}const I=()=>{D&&D.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),te()):D&&D.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),te()):setTimeout(I,100)};I()}),!U){const te=await SCe();E(te),te.installed||M({title:"Git 未安装",description:te.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!U){const te=await _Ce();k(te)}if(!U)try{j(!0),b(null);const te=await jCe();if(!U){const I=await Yp();T(I);const z=te.map(Y=>{const ne=Kp(Y.id,I),se=Xp(Y.id,I);return{...Y,installed:ne,installed_version:se}});for(const Y of I)!z.some(se=>se.id===Y.id)&&Y.manifest&&z.push({id:Y.id,manifest:{manifest_version:Y.manifest.manifest_version||1,name:Y.manifest.name,version:Y.manifest.version,description:Y.manifest.description||"",author:Y.manifest.author,license:Y.manifest.license||"Unknown",host_application:Y.manifest.host_application,homepage_url:Y.manifest.homepage_url,repository_url:Y.manifest.repository_url,keywords:Y.manifest.keywords||[],categories:Y.manifest.categories||[],default_locale:Y.manifest.default_locale||"zh-CN",locales_path:Y.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:Y.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(z)}}catch(te){if(!U){const I=te instanceof Error?te.message:"加载插件列表失败";b(I),M({title:"加载失败",description:I,variant:"destructive"})}}finally{U||j(!1)}})(),()=>{U=!0,D&&D.close()}},[M]);const R=D=>{if(!D.installed&&C&&!L(D))return i.jsxs(Dt,{variant:"destructive",className:"gap-1",children:[i.jsx(Sg,{className:"h-3 w-3"}),"不兼容"]});if(D.installed){const U=D.installed_version?.trim(),K=D.manifest.version?.trim();if(U!==K){const te=U?.split(".").map(Number)||[0,0,0],I=K?.split(".").map(Number)||[0,0,0];for(let z=0;z<3;z++){if((I[z]||0)>(te[z]||0))return i.jsxs(Dt,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(Sg,{className:"h-3 w-3"}),"可更新"]});if((I[z]||0)<(te[z]||0))break}}return i.jsxs(Dt,{variant:"default",className:"gap-1",children:[i.jsx(Ws,{className:"h-3 w-3"}),"已安装"]})}return null},L=D=>!C||!D.manifest?.host_application?!0:NCe(D.manifest.host_application.min_version,D.manifest.host_application.max_version,C),$=D=>{if(!D.installed||!D.installed_version||!D.manifest?.version)return!1;const U=D.installed_version.trim(),K=D.manifest.version.trim();if(U===K)return!1;const te=U.split(".").map(Number),I=K.split(".").map(Number);for(let z=0;z<3;z++){if((I[z]||0)>(te[z]||0))return!0;if((I[z]||0)<(te[z]||0))return!1}return!1},H=p.filter(D=>{if(!D.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",D.id),!1;const U=r===""||D.manifest.name?.toLowerCase().includes(r.toLowerCase())||D.manifest.description?.toLowerCase().includes(r.toLowerCase())||D.manifest.keywords&&D.manifest.keywords.some(z=>z.toLowerCase().includes(r.toLowerCase())),K=s==="all"||D.manifest.categories&&D.manifest.categories.includes(s);let te=!0;u==="installed"?te=D.installed===!0:u==="updates"&&(te=D.installed===!0&&$(D));const I=!f||!C||L(D);return U&&K&&te&&I}),V=()=>{n(null)},F=async D=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!L(D)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await OCe(D.id,D.manifest.repository_url||"","main"),M({title:"安装成功",description:`${D.manifest.name} 已成功安装`});const U=await Yp();T(U),g(K=>K.map(te=>{if(te.id===D.id){const I=Kp(te.id,U),z=Xp(te.id,U);return{...te,installed:I,installed_version:z}}return te}))}catch(U){M({title:"安装失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},G=async D=>{try{await ECe(D.id),M({title:"卸载成功",description:`${D.manifest.name} 已成功卸载`});const U=await Yp();T(U),g(K=>K.map(te=>{if(te.id===D.id){const I=Kp(te.id,U),z=Xp(te.id,U);return{...te,installed:I,installed_version:z}}return te}))}catch(U){M({title:"卸载失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},B=async D=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const U=await ACe(D.id,D.manifest.repository_url||"","main");M({title:"更新成功",description:`${D.manifest.name} 已从 ${U.old_version} 更新到 ${U.new_version}`});const K=await Yp();T(K),g(te=>te.map(I=>{if(I.id===D.id){const z=Kp(I.id,K),Y=Xp(I.id,K);return{...I,installed:z,installed_version:Y}}return I}))}catch(U){M({title:"更新失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(de,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(Ege,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(ot,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(qt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Gc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(Ft,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(er,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(sn,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(ot,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索插件...",value:r,onChange:D=>a(D.target.value),className:"pl-9"})]}),i.jsxs(Et,{value:s,onValueChange:l,children:[i.jsx(wt,{className:"w-full sm:w-[200px]",children:i.jsx(At,{placeholder:"选择分类"})}),i.jsxs(jt,{children:[i.jsx(Me,{value:"all",children:"全部分类"}),i.jsx(Me,{value:"Group Management",children:"群组管理"}),i.jsx(Me,{value:"Entertainment & Interaction",children:"娱乐互动"}),i.jsx(Me,{value:"Utility Tools",children:"实用工具"}),i.jsx(Me,{value:"Content Generation",children:"内容生成"}),i.jsx(Me,{value:"Multimedia",children:"多媒体"}),i.jsx(Me,{value:"External Integration",children:"外部集成"}),i.jsx(Me,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),i.jsx(Me,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(no,{id:"compatible-only",checked:f,onCheckedChange:D=>m(D===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(ul,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(Zs,{className:"grid w-full grid-cols-3",children:[i.jsxs(Ot,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Ot,{value:"installed",children:["已安装 (",p.filter(D=>D.installed).length,")"]}),i.jsxs(Ot,{value:"updates",children:["可更新 (",p.filter(D=>D.installed&&$(D)).length,")"]})]})}),O&&O.stage==="loading"&&i.jsx(ot,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(QN,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[O.operation==="fetch"&&"加载插件列表",O.operation==="install"&&`安装插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="uninstall"&&`卸载插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="update"&&`更新插件${O.plugin_id?`: ${O.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[O.progress,"%"]})]}),i.jsx(Yg,{value:O.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.message}),O.operation==="fetch"&&O.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",O.loaded_plugins," / ",O.total_plugins," 个插件"]})]})}),O&&O.stage==="error"&&O.error&&i.jsx(ot,{className:"border-destructive bg-destructive/10",children:i.jsx(qt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Gc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(Ft,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(er,{className:"text-destructive/80",children:O.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(QN,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):w?i.jsx(ot,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Gc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:w}),i.jsx(de,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):H.length===0?i.jsx(ot,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Dr,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||s!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:H.map(D=>i.jsxs(ot,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(qt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(Ft,{className:"text-xl",children:D.manifest?.name||D.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[D.manifest?.categories&&D.manifest.categories[0]&&i.jsx(Dt,{variant:"secondary",className:"text-xs whitespace-nowrap",children:HL[D.manifest.categories[0]]||D.manifest.categories[0]}),R(D)]})]}),i.jsx(er,{className:"line-clamp-2",children:D.manifest?.description||"无描述"})]}),i.jsx(sn,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(KN,{className:"h-4 w-4"}),i.jsx("span",{children:D.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(XI,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:D.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[D.manifest?.keywords&&D.manifest.keywords.slice(0,3).map(U=>i.jsx(Dt,{variant:"outline",className:"text-xs",children:U},U)),D.manifest?.keywords&&D.manifest.keywords.length>3&&i.jsxs(Dt,{variant:"outline",className:"text-xs",children:["+",D.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",D.manifest?.version||"unknown"," · ",D.manifest?.author?.name||"Unknown"]}),D.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[D.manifest.host_application.min_version,D.manifest.host_application.max_version?` - ${D.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(Y5,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(de,{variant:"outline",size:"sm",onClick:()=>n(D),children:"查看详情"}),D.installed?$(D)?i.jsxs(de,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>B(D),children:[i.jsx(ol,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(de,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(D),children:[i.jsx(Tt,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(de,{size:"sm",disabled:!N?.installed||O?.operation==="install"||C!==null&&!L(D),title:N?.installed?C!==null&&!L(D)?`不兼容当前版本 (需要 ${D.manifest?.host_application?.min_version||"未知"}${D.manifest?.host_application?.max_version?` - ${D.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>F(D),children:[i.jsx(KN,{className:"h-4 w-4 mr-1"}),O?.operation==="install"&&O?.plugin_id===D.id?"安装中...":"安装"]})]})})]},D.id))}),i.jsx(nr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Hn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Wn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Vn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(dr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(iv,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Dt,{variant:"secondary",children:HL[t.manifest.categories[0]]||t.manifest.categories[0]}),R(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(XI,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(D=>i.jsx(Dt,{variant:"outline",children:D},D))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs($r,{children:[t.manifest.homepage_url&&i.jsxs(de,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(iv,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(de,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(iv,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function kCe(){const e=sa(),{toast:t}=mr(),[n,r]=y.useState([]),[a,s]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b=y.useCallback(async()=>{try{s(!0),u(null);const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${T}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const R=await M.json();r(R.mirrors||[])}catch(T){const M=T instanceof Error?T.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{s(!1)}},[t]);y.useEffect(()=>{b()},[b]);const N=async()=>{try{const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const R=await M.json();throw new Error(R.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),w({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b()}catch(T){t({title:"添加失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},E=async()=>{if(d)try{const T=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),b()}catch(T){t({title:"更新失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},O=async T=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),b()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},A=async T=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!T.enabled})})).ok)throw new Error("更新状态失败");b()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=T=>{f(T),w({id:T.id,name:T.name,raw_prefix:T.raw_prefix,clone_prefix:T.clone_prefix,enabled:T.enabled,priority:T.priority}),x(!0)},k=async(T,M)=>{const R=M==="up"?T.priority-1:T.priority+1;if(!(R<1))try{const L=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${L}`,"Content-Type":"application/json"},body:JSON.stringify({priority:R})})).ok)throw new Error("更新优先级失败");b()}catch(L){t({title:"更新失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}};return i.jsx(Vt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(de,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(sF,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(de,{onClick:()=>p(!0),children:[i.jsx(tr,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(ot,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(QN,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(ot,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Gc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(de,{onClick:b,children:"重新加载"})]})}):i.jsxs(ot,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Al,{children:[i.jsx(Tl,{children:i.jsxs(vn,{children:[i.jsx(Ze,{children:"状态"}),i.jsx(Ze,{children:"名称"}),i.jsx(Ze,{children:"ID"}),i.jsx(Ze,{children:"优先级"}),i.jsx(Ze,{className:"text-right",children:"操作"})]})}),i.jsx(kl,{children:n.map(T=>i.jsxs(vn,{children:[i.jsx(Ue,{children:i.jsx(at,{checked:T.enabled,onCheckedChange:()=>A(T)})}),i.jsx(Ue,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:T.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",T.raw_prefix]})]})}),i.jsx(Ue,{children:i.jsx(Dt,{variant:"outline",children:T.id})}),i.jsx(Ue,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:T.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(de,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(VN,{className:"h-3 w-3"})}),i.jsx(de,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"down"),children:i.jsx(fh,{className:"h-3 w-3"})})]})]})}),i.jsx(Ue,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(de,{variant:"ghost",size:"icon",onClick:()=>C(T),children:i.jsx(Tu,{className:"h-4 w-4"})}),i.jsx(de,{variant:"ghost",size:"icon",onClick:()=>O(T.id),children:i.jsx(Tt,{className:"h-4 w-4 text-destructive"})})]})})]},T.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(T=>i.jsx(ot,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:T.name}),T.enabled&&i.jsx(Dt,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Dt,{variant:"outline",className:"mt-1 text-xs",children:T.id})]}),i.jsx(at,{checked:T.enabled,onCheckedChange:()=>A(T)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:T.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:T.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(de,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(T),children:[i.jsx(Tu,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(de,{variant:"outline",size:"sm",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(VN,{className:"h-4 w-4"})}),i.jsx(de,{variant:"outline",size:"sm",onClick:()=>k(T,"down"),children:i.jsx(fh,{className:"h-4 w-4"})}),i.jsx(de,{variant:"destructive",size:"sm",onClick:()=>O(T.id),children:i.jsx(Tt,{className:"h-4 w-4"})})]})]})},T.id))})]}),i.jsx(nr,{open:m,onOpenChange:p,children:i.jsxs(Hn,{className:"max-w-lg",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"添加镜像源"}),i.jsx(dr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ne,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:T=>w({...j,id:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ne,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ne,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"add-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(J,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(de,{onClick:N,children:"添加"})]})]})}),i.jsx(nr,{open:g,onOpenChange:x,children:i.jsxs(Hn,{className:"max-w-lg",children:[i.jsxs(Wn,{children:[i.jsx(Vn,{children:"编辑镜像源"}),i.jsx(dr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{children:"镜像源 ID"}),i.jsx(Ne,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ne,{id:"edit-name",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"edit-raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"edit-clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(J,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ne,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(at,{id:"edit-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(J,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs($r,{children:[i.jsx(de,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(de,{onClick:E,children:"保存"})]})]})})]})})}const MCe=Yu("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),JH=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},s)=>i.jsx("kbd",{className:ce(MCe({size:t,className:e})),ref:s,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));JH.displayName="Kbd";const PCe=[{icon:Cg,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:tE,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:dF,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:oF,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:rE,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:qh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:lF,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:_ve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:cF,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:_g,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Vc,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function RCe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState(0),l=sa(),u=PCe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),s(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),s(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),s(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(nr,{open:e,onOpenChange:t,children:i.jsxs(Hn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Wn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Vn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ne,{value:n,onChange:m=>{r(m.target.value),s(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Vt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>s(p),className:ce("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Dr,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function DCe(e){const t=$Ce(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(LCe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function $Ce(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=zCe(a),u=BCe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Rr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ICe=Symbol("radix.slottable");function LCe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ICe}function BCe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function zCe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var xC=["Enter"," "],qCe=["ArrowDown","PageUp","Home"],e9=["ArrowUp","PageDown","End"],FCe=[...qCe,...e9],UCe={ltr:[...xC,"ArrowRight"],rtl:[...xC,"ArrowLeft"]},HCe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},em="Menu",[bh,WCe,VCe]=Eh(em),[Pl,t9]=hr(em,[VCe,co,Hg]),tm=co(),n9=Hg(),[r9,vo]=Pl(em),[GCe,nm]=Pl(em),a9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:s,modal:l=!0}=e,u=tm(t),[d,f]=y.useState(null),m=y.useRef(!1),p=nn(s),g=Bu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(Vh,{...u,children:i.jsx(r9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(GCe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};a9.displayName=em;var YCe="MenuAnchor",PE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=tm(n);return i.jsx(Gh,{...a,...r,ref:t})});PE.displayName=YCe;var RE="MenuPortal",[KCe,i9]=Pl(RE,{forceMount:void 0}),s9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,s=vo(RE,t);return i.jsx(KCe,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||s.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};s9.displayName=RE;var _a="MenuContent",[XCe,DE]=Pl(_a),o9=y.forwardRef((e,t)=>{const n=i9(_a,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=vo(_a,e.__scopeMenu),l=nm(_a,e.__scopeMenu);return i.jsx(bh.Provider,{scope:e.__scopeMenu,children:i.jsx(Rn,{present:r||s.open,children:i.jsx(bh.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(ZCe,{...a,ref:t}):i.jsx(QCe,{...a,ref:t})})})})}),ZCe=y.forwardRef((e,t)=>{const n=vo(_a,e.__scopeMenu),r=y.useRef(null),a=qe(t,r);return y.useEffect(()=>{const s=r.current;if(s)return Iy(s)},[]),i.jsx($E,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Se(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),QCe=y.forwardRef((e,t)=>{const n=vo(_a,e.__scopeMenu);return i.jsx($E,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),JCe=DCe("MenuContent.ScrollLock"),$E=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...w}=e,b=vo(_a,n),N=nm(_a,n),E=tm(n),O=n9(n),A=WCe(n),[C,k]=y.useState(null),T=y.useRef(null),M=qe(t,T,b.onContentChange),R=y.useRef(0),L=y.useRef(""),$=y.useRef(0),H=y.useRef(null),V=y.useRef("right"),F=y.useRef(0),G=j?Hh:y.Fragment,B=j?{as:JCe,allowPinchZoom:!0}:void 0,D=K=>{const te=L.current+K,I=A().filter(ee=>!ee.disabled),z=document.activeElement,Y=I.find(ee=>ee.ref.current===z)?.textValue,ne=I.map(ee=>ee.textValue),se=dOe(ne,te,Y),xe=I.find(ee=>ee.textValue===se)?.ref.current;(function ee(ae){L.current=ae,window.clearTimeout(R.current),ae!==""&&(R.current=window.setTimeout(()=>ee(""),1e3))})(te),xe&&setTimeout(()=>xe.focus())};y.useEffect(()=>()=>window.clearTimeout(R.current),[]),Dy();const U=y.useCallback(K=>V.current===H.current?.side&&hOe(K,H.current?.area),[]);return i.jsx(XCe,{scope:n,searchRef:L,onItemEnter:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),onItemLeave:y.useCallback(K=>{U(K)||(T.current?.focus(),k(null))},[U]),onTriggerLeave:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),pointerGraceTimerRef:$,onPointerGraceIntentChange:y.useCallback(K=>{H.current=K},[]),children:i.jsx(G,{...B,children:i.jsx(Uh,{asChild:!0,trapped:a,onMountAutoFocus:Se(s,K=>{K.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(eB,{asChild:!0,...O,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:Se(d,K=>{N.isUsingKeyboardRef.current||K.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Vy,{role:"menu","aria-orientation":"vertical","data-state":_9(b.open),"data-radix-menu-content":"",dir:N.dir,...E,...w,ref:M,style:{outline:"none",...w.style},onKeyDown:Se(w.onKeyDown,K=>{const I=K.target.closest("[data-radix-menu-content]")===K.currentTarget,z=K.ctrlKey||K.altKey||K.metaKey,Y=K.key.length===1;I&&(K.key==="Tab"&&K.preventDefault(),!z&&Y&&D(K.key));const ne=T.current;if(K.target!==ne||!FCe.includes(K.key))return;K.preventDefault();const xe=A().filter(ee=>!ee.disabled).map(ee=>ee.ref.current);e9.includes(K.key)&&xe.reverse(),cOe(xe)}),onBlur:Se(e.onBlur,K=>{K.currentTarget.contains(K.target)||(window.clearTimeout(R.current),L.current="")}),onPointerMove:Se(e.onPointerMove,wh(K=>{const te=K.target,I=F.current!==K.clientX;if(K.currentTarget.contains(te)&&I){const z=K.clientX>F.current?"right":"left";V.current=z,F.current=K.clientX}}))})})})})})})});o9.displayName=_a;var eOe="MenuGroup",IE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{role:"group",...r,ref:t})});IE.displayName=eOe;var tOe="MenuLabel",l9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});l9.displayName=tOe;var Rg="MenuItem",WL="menu.itemSelect",ax=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,s=y.useRef(null),l=nm(Rg,e.__scopeMenu),u=DE(Rg,e.__scopeMenu),d=qe(t,s),f=y.useRef(!1),m=()=>{const p=s.current;if(!n&&p){const g=new CustomEvent(WL,{bubbles:!0,cancelable:!0});p.addEventListener(WL,x=>r?.(x),{once:!0}),qC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(c9,{...a,ref:d,disabled:n,onClick:Se(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:Se(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:Se(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||xC.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});ax.displayName=Rg;var c9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...s}=e,l=DE(Rg,n),u=n9(n),d=y.useRef(null),f=qe(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[s.children]),i.jsx(bh.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(tB,{asChild:!0,...u,focusable:!r,children:i.jsx(Pe.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:f,onPointerMove:Se(e.onPointerMove,wh(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Se(e.onPointerLeave,wh(j=>l.onItemLeave(j))),onFocus:Se(e.onFocus,()=>p(!0)),onBlur:Se(e.onBlur,()=>p(!1))})})})}),nOe="MenuCheckboxItem",u9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(p9,{scope:e.__scopeMenu,checked:n,children:i.jsx(ax,{role:"menuitemcheckbox","aria-checked":Dg(n)?"mixed":n,...a,ref:t,"data-state":zE(n),onSelect:Se(a.onSelect,()=>r?.(Dg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});u9.displayName=nOe;var d9="MenuRadioGroup",[rOe,aOe]=Pl(d9,{value:void 0,onValueChange:()=>{}}),f9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,s=nn(r);return i.jsx(rOe,{scope:e.__scopeMenu,value:n,onValueChange:s,children:i.jsx(IE,{...a,ref:t})})});f9.displayName=d9;var h9="MenuRadioItem",m9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=aOe(h9,e.__scopeMenu),s=n===a.value;return i.jsx(p9,{scope:e.__scopeMenu,checked:s,children:i.jsx(ax,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":zE(s),onSelect:Se(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});m9.displayName=h9;var LE="MenuItemIndicator",[p9,iOe]=Pl(LE,{checked:!1}),v9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,s=iOe(LE,n);return i.jsx(Rn,{present:r||Dg(s.checked)||s.checked===!0,children:i.jsx(Pe.span,{...a,ref:t,"data-state":zE(s.checked)})})});v9.displayName=LE;var sOe="MenuSeparator",g9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx(Pe.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});g9.displayName=sOe;var oOe="MenuArrow",y9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=tm(n);return i.jsx(Gy,{...a,...r,ref:t})});y9.displayName=oOe;var BE="MenuSub",[lOe,x9]=Pl(BE),b9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,s=vo(BE,t),l=tm(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=nn(a);return y.useEffect(()=>(s.open===!1&&p(!1),()=>p(!1)),[s.open,p]),i.jsx(Vh,{...l,children:i.jsx(r9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(lOe,{scope:t,contentId:Fn(),triggerId:Fn(),trigger:u,onTriggerChange:d,children:n})})})};b9.displayName=BE;var gf="MenuSubTrigger",w9=y.forwardRef((e,t)=>{const n=vo(gf,e.__scopeMenu),r=nm(gf,e.__scopeMenu),a=x9(gf,e.__scopeMenu),s=DE(gf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=s,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(PE,{asChild:!0,...f,children:i.jsx(c9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":_9(n.open),...e,ref:Rr(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Se(e.onPointerMove,wh(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(s.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:Se(e.onPointerLeave,wh(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",w=j?-5:5,b=g[j?"left":"right"],N=g[j?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:b,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:b,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:Se(e.onKeyDown,p=>{const g=s.searchRef.current!=="";e.disabled||g&&p.key===" "||UCe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});w9.displayName=gf;var j9="MenuSubContent",S9=y.forwardRef((e,t)=>{const n=i9(_a,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=vo(_a,e.__scopeMenu),l=nm(_a,e.__scopeMenu),u=x9(j9,e.__scopeMenu),d=y.useRef(null),f=qe(t,d);return i.jsx(bh.Provider,{scope:e.__scopeMenu,children:i.jsx(Rn,{present:r||s.open,children:i.jsx(bh.Slot,{scope:e.__scopeMenu,children:i.jsx($E,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:Se(e.onFocusOutside,m=>{m.target!==u.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:Se(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:Se(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=HCe[l.dir].includes(m.key);p&&g&&(s.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});S9.displayName=j9;function _9(e){return e?"open":"closed"}function Dg(e){return e==="indeterminate"}function zE(e){return Dg(e)?"indeterminate":e?"checked":"unchecked"}function cOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function uOe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function dOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=uOe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function fOe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function hOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return fOe(n,t)}function wh(e){return t=>t.pointerType==="mouse"?e(t):void 0}var mOe=a9,pOe=PE,vOe=s9,gOe=o9,yOe=IE,xOe=l9,bOe=ax,wOe=u9,jOe=f9,SOe=m9,_Oe=v9,NOe=g9,COe=y9,OOe=b9,EOe=w9,AOe=S9,qE="ContextMenu",[TOe]=hr(qE,[t9]),pr=t9(),[kOe,N9]=TOe(qE),C9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:s=!0}=e,[l,u]=y.useState(!1),d=pr(t),f=nn(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(kOe,{scope:t,open:l,onOpenChange:m,modal:s,children:i.jsx(mOe,{...d,dir:a,open:l,onOpenChange:m,modal:s,children:n})})};C9.displayName=qE;var O9="ContextMenuTrigger",E9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,s=N9(O9,n),l=pr(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},s.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(pOe,{...l,virtualRef:d}),i.jsx(Pe.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:Se(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:Se(e.onPointerDown,Zp(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:Se(e.onPointerMove,Zp(m)),onPointerCancel:r?e.onPointerCancel:Se(e.onPointerCancel,Zp(m)),onPointerUp:r?e.onPointerUp:Se(e.onPointerUp,Zp(m))})]})});E9.displayName=O9;var MOe="ContextMenuPortal",A9=e=>{const{__scopeContextMenu:t,...n}=e,r=pr(t);return i.jsx(vOe,{...r,...n})};A9.displayName=MOe;var T9="ContextMenuContent",k9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=N9(T9,n),s=pr(n),l=y.useRef(!1);return i.jsx(gOe,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});k9.displayName=T9;var POe="ContextMenuGroup",ROe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(yOe,{...a,...r,ref:t})});ROe.displayName=POe;var DOe="ContextMenuLabel",M9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(xOe,{...a,...r,ref:t})});M9.displayName=DOe;var $Oe="ContextMenuItem",P9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(bOe,{...a,...r,ref:t})});P9.displayName=$Oe;var IOe="ContextMenuCheckboxItem",R9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(wOe,{...a,...r,ref:t})});R9.displayName=IOe;var LOe="ContextMenuRadioGroup",BOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(jOe,{...a,...r,ref:t})});BOe.displayName=LOe;var zOe="ContextMenuRadioItem",D9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(SOe,{...a,...r,ref:t})});D9.displayName=zOe;var qOe="ContextMenuItemIndicator",$9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(_Oe,{...a,...r,ref:t})});$9.displayName=qOe;var FOe="ContextMenuSeparator",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(NOe,{...a,...r,ref:t})});I9.displayName=FOe;var UOe="ContextMenuArrow",HOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(COe,{...a,...r,ref:t})});HOe.displayName=UOe;var L9="ContextMenuSub",B9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:s}=e,l=pr(t),[u,d]=Na({prop:a,defaultProp:s??!1,onChange:r,caller:L9});return i.jsx(OOe,{...l,open:u,onOpenChange:d,children:n})};B9.displayName=L9;var WOe="ContextMenuSubTrigger",z9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(EOe,{...a,...r,ref:t})});z9.displayName=WOe;var VOe="ContextMenuSubContent",q9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=pr(n);return i.jsx(AOe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});q9.displayName=VOe;function Zp(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var GOe=C9,YOe=E9,KOe=A9,F9=k9,U9=M9,H9=P9,W9=R9,V9=D9,G9=$9,Y9=I9,XOe=B9,K9=z9,X9=q9;const ZOe=GOe,QOe=YOe,JOe=XOe,Z9=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(K9,{ref:a,className:ce("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(eE,{className:"ml-auto h-4 w-4"})]}));Z9.displayName=K9.displayName;const Q9=y.forwardRef(({className:e,...t},n)=>i.jsx(X9,{ref:n,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));Q9.displayName=X9.displayName;const J9=y.forwardRef(({className:e,...t},n)=>i.jsx(KOe,{children:i.jsx(F9,{ref:n,className:ce("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));J9.displayName=F9.displayName;const Da=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(H9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));Da.displayName=H9.displayName;const eEe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(W9,{ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(G9,{children:i.jsx(il,{className:"h-4 w-4"})})}),t]}));eEe.displayName=W9.displayName;const tEe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(V9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(G9,{children:i.jsx(Bve,{className:"h-2 w-2 fill-current"})})}),t]}));tEe.displayName=V9.displayName;const nEe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(U9,{ref:r,className:ce("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));nEe.displayName=U9.displayName;const yf=y.forwardRef(({className:e,...t},n)=>i.jsx(Y9,{ref:n,className:ce("-mx-1 my-1 h-px bg-border",e),...t}));yf.displayName=Y9.displayName;const Ic=({className:e,...t})=>i.jsx("span",{className:ce("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});Ic.displayName="ContextMenuShortcut";var rEe=Symbol("radix.slottable");function aEe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=rEe,t}var[ix]=hr("Tooltip",[co]),sx=co(),eW="TooltipProvider",iEe=700,bC="tooltip.open",[sEe,FE]=ix(eW),tW=e=>{const{__scopeTooltip:t,delayDuration:n=iEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(sEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:s})};tW.displayName=eW;var jh="Tooltip",[oEe,rm]=ix(jh),nW=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:s,disableHoverableContent:l,delayDuration:u}=e,d=FE(jh,e.__scopeTooltip),f=sx(t),[m,p]=y.useState(null),g=Fn(),x=y.useRef(0),j=l??d.disableHoverableContent,w=u??d.delayDuration,b=y.useRef(!1),[N,E]=Na({prop:r,defaultProp:a??!1,onChange:T=>{T?(d.onOpen(),document.dispatchEvent(new CustomEvent(bC))):d.onClose(),s?.(T)},caller:jh}),O=y.useMemo(()=>N?b.current?"delayed-open":"instant-open":"closed",[N]),A=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,b.current=!1,E(!0)},[E]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,E(!1)},[E]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{b.current=!0,E(!0),x.current=0},w)},[w,E]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(Vh,{...f,children:i.jsx(oEe,{scope:t,contentId:g,open:N,stateAttribute:O,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():A()},[d.isOpenDelayedRef,k,A]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:A,onClose:C,disableHoverableContent:j,children:n})})};nW.displayName=jh;var wC="TooltipTrigger",rW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=rm(wC,n),s=FE(wC,n),l=sx(n),u=y.useRef(null),d=qe(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(Gh,{asChild:!0,...l,children:i.jsx(Pe.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:Se(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:Se(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:Se(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:Se(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:Se(e.onBlur,a.onClose),onClick:Se(e.onClick,a.onClose)})})});rW.displayName=wC;var UE="TooltipPortal",[lEe,cEe]=ix(UE,{forceMount:void 0}),aW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,s=rm(UE,t);return i.jsx(lEe,{scope:t,forceMount:n,children:i.jsx(Rn,{present:n||s.open,children:i.jsx(El,{asChild:!0,container:a,children:r})})})};aW.displayName=UE;var Ru="TooltipContent",iW=y.forwardRef((e,t)=>{const n=cEe(Ru,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,l=rm(Ru,e.__scopeTooltip);return i.jsx(Rn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(sW,{side:a,...s,ref:t}):i.jsx(uEe,{side:a,...s,ref:t})})}),uEe=y.forwardRef((e,t)=>{const n=rm(Ru,e.__scopeTooltip),r=FE(Ru,e.__scopeTooltip),a=y.useRef(null),s=qe(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,w)=>{const b=j.currentTarget,N={x:j.clientX,y:j.clientY},E=pEe(N,b.getBoundingClientRect()),O=vEe(N,E),A=gEe(w.getBoundingClientRect()),C=xEe([...O,...A]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=b=>x(b,m),w=b=>x(b,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",w)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=w=>{const b=w.target,N={x:w.clientX,y:w.clientY},E=d?.contains(b)||m?.contains(b),O=!yEe(N,l);E?g():O&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(sW,{...e,ref:s})}),[dEe,fEe]=ix(jh,{isInside:!1}),hEe=aEe("TooltipContent"),sW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:l,...u}=e,d=rm(Ru,n),f=sx(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(bC,m),()=>document.removeEventListener(bC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(Ol,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Vy,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(hEe,{children:r}),i.jsx(dEe,{scope:n,isInside:!0,children:i.jsx(pwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});iW.displayName=Ru;var oW="TooltipArrow",mEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=sx(n);return fEe(oW,n).isInside?null:i.jsx(Gy,{...a,...r,ref:t})});mEe.displayName=oW;function pEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function vEe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function gEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function yEe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function xEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),bEe(t)}function bEe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const s=t[t.length-1],l=t[t.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],l=n[n.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var wEe=tW,jEe=nW,SEe=rW,_Ee=aW,lW=iW;const NEe=wEe,CEe=jEe,OEe=SEe,cW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(_Ee,{children:i.jsx(lW,{ref:r,sideOffset:t,className:ce("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));cW.displayName=lW.displayName;function EEe({children:e}){ibe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[s,l]=y.useState(!1),{theme:u,setTheme:d}=aE(),f=FY(),m=sa();y.useEffect(()=>{const w=b=>{(b.metaKey||b.ctrlKey)&&b.key==="k"&&(b.preventDefault(),l(!0))};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);const p=[{title:"概览",items:[{icon:Cg,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:tE,label:"麦麦主程序配置",path:"/config/bot"},{icon:dF,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:oF,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:rE,label:"表情包管理",path:"/resource/emoji"},{icon:qh,label:"表达方式管理",path:"/resource/expression"},{icon:lF,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:cF,label:"插件市场",path:"/plugins"},{icon:_g,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Vc,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(NEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:ce("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:ce("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:ce("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:gye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:ce("space-y-6",!t&&"lg:space-y-3"),children:p.map((w,b)=>i.jsxs("li",{children:[i.jsx("div",{className:ce("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:w.title})}),!t&&b>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:w.items.map(N=>{const E=f({to:N.path}),O=N.icon,A=i.jsxs(i.Fragment,{children:[E&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:ce("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(O,{className:ce("h-5 w-5 flex-shrink-0",E&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:ce("text-sm font-medium whitespace-nowrap transition-all duration-300",E&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(CEe,{children:[i.jsx(OEe,{asChild:!0,children:i.jsx(RC,{to:N.path,className:ce("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",E?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:A})}),!t&&i.jsx(cW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},w.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(lge,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(JO,{className:ce("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Dr,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(JH,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(RCe,{open:s,onOpenChange:l}),i.jsxs(de,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(yve,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:w=>{Jge(x==="dark"?"light":"dark",d,w)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(eC,{className:"h-5 w-5"}):i.jsx(JN,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(de,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(KI,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(ZOe,{children:[i.jsx(QOe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(J9,{className:"w-64",children:[i.jsxs(Da,{onClick:()=>m({to:"/"}),children:[i.jsx(Cg,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(Da,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Vc,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(Da,{onClick:()=>m({to:"/logs"}),children:[i.jsx(_g,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(yf,{}),i.jsxs(JOe,{children:[i.jsxs(Z9,{children:[i.jsx(uF,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(Q9,{className:"w-48",children:[i.jsxs(Da,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(eC,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(Ic,{children:"✓"})]}),i.jsxs(Da,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(JN,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(Ic,{children:"✓"})]}),i.jsxs(Da,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Vc,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(Ic,{children:"✓"})]})]})]}),i.jsx(yf,{}),i.jsxs(Da,{onClick:()=>window.location.reload(),children:[i.jsx(Sge,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(Ic,{children:"⌘R"})]}),i.jsxs(Da,{onClick:()=>l(!0),children:[i.jsx(Dr,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(Ic,{children:"⌘K"})]}),i.jsx(yf,{}),i.jsxs(Da,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(iv,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(yf,{}),i.jsxs(Da,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(KI,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const am=PY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(DC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!j8())throw ZL({to:"/auth"})}}),AEe=fr({getParentRoute:()=>am,path:"/auth",component:sbe}),TEe=fr({getParentRoute:()=>am,path:"/setup",component:Nbe}),Aa=fr({getParentRoute:()=>am,id:"protected",component:()=>i.jsx(EEe,{children:i.jsx(DC,{})})}),kEe=fr({getParentRoute:()=>Aa,path:"/",component:Zge}),MEe=fr({getParentRoute:()=>Aa,path:"/config/bot",component:vje}),PEe=fr({getParentRoute:()=>Aa,path:"/config/modelProvider",component:$je}),REe=fr({getParentRoute:()=>Aa,path:"/config/model",component:u1e}),DEe=fr({getParentRoute:()=>Aa,path:"/resource/emoji",component:y1e}),$Ee=fr({getParentRoute:()=>Aa,path:"/resource/expression",component:O1e}),IEe=fr({getParentRoute:()=>Aa,path:"/resource/person",component:$1e}),LEe=fr({getParentRoute:()=>Aa,path:"/logs",component:gCe}),BEe=fr({getParentRoute:()=>Aa,path:"/plugins",component:TCe}),zEe=fr({getParentRoute:()=>Aa,path:"/plugin-mirrors",component:kCe}),qEe=fr({getParentRoute:()=>Aa,path:"/settings",component:Qxe}),FEe=fr({getParentRoute:()=>am,path:"*",component:N8}),UEe=am.addChildren([AEe,TEe,Aa.addChildren([kEe,MEe,PEe,REe,DEe,$Ee,IEe,BEe,zEe,LEe,qEe]),FEe]),HEe=UY({routeTree:UEe,defaultNotFoundComponent:N8});function WEe({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,s]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%"},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%"},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%"},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%"},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%"}}[u];m&&d.style.setProperty("--primary",m.hsl)}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),s(u)}};return i.jsx(hF.Provider,{...r,value:l,children:e})}function VEe({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[s,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;s?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(s))},[s,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:s,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(mF.Provider,{value:f,children:e})}var HE="ToastProvider",[WE,GEe,YEe]=Eh("Toast"),[uW]=hr("Toast",[YEe]),[KEe,ox]=uW(HE),dW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${HE}\`. Expected non-empty \`string\`.`),i.jsx(WE.Provider,{scope:t,children:i.jsx(KEe,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};dW.displayName=HE;var fW="ToastViewport",XEe=["F8"],jC="toast.viewportPause",SC="toast.viewportResume",hW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=XEe,label:a="Notifications ({hotkey})",...s}=e,l=ox(fW,n),u=GEe(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=qe(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const b=N=>{r.length!==0&&r.every(O=>N[O]||N.code===O)&&p.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),y.useEffect(()=>{const b=d.current,N=p.current;if(j&&b&&N){const E=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(jC);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},O=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(SC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},A=k=>{!b.contains(k.relatedTarget)&&O()},C=()=>{b.contains(document.activeElement)||O()};return b.addEventListener("focusin",E),b.addEventListener("focusout",A),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",C),window.addEventListener("blur",E),window.addEventListener("focus",O),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",A),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",C),window.removeEventListener("blur",E),window.removeEventListener("focus",O)}}},[j,l.isClosePausedRef]);const w=y.useCallback(({tabbingDirection:b})=>{const E=u().map(O=>{const A=O.ref.current,C=[A,...cAe(A)];return b==="forwards"?C:C.reverse()});return(b==="forwards"?E.reverse():E).flat()},[u]);return y.useEffect(()=>{const b=p.current;if(b){const N=E=>{const O=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!O){const C=document.activeElement,k=E.shiftKey;if(E.target===b&&k){f.current?.focus();return}const R=w({tabbingDirection:k?"backwards":"forwards"}),L=R.findIndex($=>$===C);f_(R.slice(L+1))?E.preventDefault():k?f.current?.focus():m.current?.focus()}};return b.addEventListener("keydown",N),()=>b.removeEventListener("keydown",N)}},[u,w]),i.jsxs(Cye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(_C,{ref:f,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"forwards"});f_(b)}}),i.jsx(WE.Slot,{scope:n,children:i.jsx(Pe.ol,{tabIndex:-1,...s,ref:g})}),j&&i.jsx(_C,{ref:m,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"backwards"});f_(b)}})]})});hW.displayName=fW;var mW="ToastFocusProxy",_C=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=ox(mW,n);return i.jsx(Yy,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!s.viewport?.contains(u)&&r()}})});_C.displayName=mW;var im="Toast",ZEe="toast.swipeStart",QEe="toast.swipeMove",JEe="toast.swipeCancel",eAe="toast.swipeEnd",pW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...l}=e,[u,d]=Na({prop:r,defaultProp:a??!0,onChange:s,caller:im});return i.jsx(Rn,{present:n||u,children:i.jsx(rAe,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:nn(e.onPause),onResume:nn(e.onResume),onSwipeStart:Se(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Se(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:Se(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Se(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});pW.displayName=im;var[tAe,nAe]=uW(im,{onClose(){}}),rAe=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,w=ox(im,n),[b,N]=y.useState(null),E=qe(t,F=>N(F)),O=y.useRef(null),A=y.useRef(null),C=a||w.duration,k=y.useRef(0),T=y.useRef(C),M=y.useRef(0),{onToastAdd:R,onToastRemove:L}=w,$=nn(()=>{b?.contains(document.activeElement)&&w.viewport?.focus(),l()}),H=y.useCallback(F=>{!F||F===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout($,F))},[$]);y.useEffect(()=>{const F=w.viewport;if(F){const G=()=>{H(T.current),f?.()},B=()=>{const D=new Date().getTime()-k.current;T.current=T.current-D,window.clearTimeout(M.current),d?.()};return F.addEventListener(jC,B),F.addEventListener(SC,G),()=>{F.removeEventListener(jC,B),F.removeEventListener(SC,G)}}},[w.viewport,C,d,f,H]),y.useEffect(()=>{s&&!w.isClosePausedRef.current&&H(C)},[s,C,w.isClosePausedRef,H]),y.useEffect(()=>(R(),()=>L()),[R,L]);const V=y.useMemo(()=>b?jW(b):null,[b]);return w.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(aAe,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(tAe,{scope:n,onClose:$,children:wl.createPortal(i.jsx(WE.ItemSlot,{scope:n,children:i.jsx(Nye,{asChild:!0,onEscapeKeyDown:Se(u,()=>{w.isFocusedToastEscapeKeyDownRef.current||$(),w.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx(Pe.li,{tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":w.swipeDirection,...j,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Se(e.onKeyDown,F=>{F.key==="Escape"&&(u?.(F.nativeEvent),F.nativeEvent.defaultPrevented||(w.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:Se(e.onPointerDown,F=>{F.button===0&&(O.current={x:F.clientX,y:F.clientY})}),onPointerMove:Se(e.onPointerMove,F=>{if(!O.current)return;const G=F.clientX-O.current.x,B=F.clientY-O.current.y,D=!!A.current,U=["left","right"].includes(w.swipeDirection),K=["left","up"].includes(w.swipeDirection)?Math.min:Math.max,te=U?K(0,G):0,I=U?0:K(0,B),z=F.pointerType==="touch"?10:2,Y={x:te,y:I},ne={originalEvent:F,delta:Y};D?(A.current=Y,Qp(QEe,p,ne,{discrete:!1})):VL(Y,w.swipeDirection,z)?(A.current=Y,Qp(ZEe,m,ne,{discrete:!1}),F.target.setPointerCapture(F.pointerId)):(Math.abs(G)>z||Math.abs(B)>z)&&(O.current=null)}),onPointerUp:Se(e.onPointerUp,F=>{const G=A.current,B=F.target;if(B.hasPointerCapture(F.pointerId)&&B.releasePointerCapture(F.pointerId),A.current=null,O.current=null,G){const D=F.currentTarget,U={originalEvent:F,delta:G};VL(G,w.swipeDirection,w.swipeThreshold)?Qp(eAe,x,U,{discrete:!0}):Qp(JEe,g,U,{discrete:!0}),D.addEventListener("click",K=>K.preventDefault(),{once:!0})}})})})}),w.viewport)})]}):null}),aAe=e=>{const{__scopeToast:t,children:n,...r}=e,a=ox(im,t),[s,l]=y.useState(!1),[u,d]=y.useState(!1);return oAe(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(El,{asChild:!0,children:i.jsx(Yy,{...r,children:s&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},iAe="ToastTitle",vW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});vW.displayName=iAe;var sAe="ToastDescription",gW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx(Pe.div,{...r,ref:t})});gW.displayName=sAe;var yW="ToastAction",xW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(wW,{altText:n,asChild:!0,children:i.jsx(VE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${yW}\`. Expected non-empty \`string\`.`),null)});xW.displayName=yW;var bW="ToastClose",VE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=nAe(bW,n);return i.jsx(wW,{asChild:!0,children:i.jsx(Pe.button,{type:"button",...r,ref:t,onClick:Se(e.onClick,a.onClose)})})});VE.displayName=bW;var wW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx(Pe.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function jW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),lAe(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...jW(r))}}),t}function Qp(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?qC(a,s):a.dispatchEvent(s)}var VL=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function oAe(e=()=>{}){const t=nn(e);Un(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function lAe(e){return e.nodeType===e.ELEMENT_NODE}function cAe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function f_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var uAe=dW,SW=hW,_W=pW,NW=vW,CW=gW,OW=xW,EW=VE;const dAe=uAe,AW=y.forwardRef(({className:e,...t},n)=>i.jsx(SW,{ref:n,className:ce("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));AW.displayName=SW.displayName;const fAe=Yu("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),TW=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(_W,{ref:r,className:ce(fAe({variant:t}),e),...n}));TW.displayName=_W.displayName;const hAe=y.forwardRef(({className:e,...t},n)=>i.jsx(OW,{ref:n,className:ce("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));hAe.displayName=OW.displayName;const kW=y.forwardRef(({className:e,...t},n)=>i.jsx(EW,{ref:n,className:ce("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Fh,{className:"h-4 w-4"})}));kW.displayName=EW.displayName;const MW=y.forwardRef(({className:e,...t},n)=>i.jsx(NW,{ref:n,className:ce("text-sm font-semibold [&+div]:text-xs",e),...t}));MW.displayName=NW.displayName;const PW=y.forwardRef(({className:e,...t},n)=>i.jsx(CW,{ref:n,className:ce("text-sm opacity-90",e),...t}));PW.displayName=CW.displayName;function mAe(){const{toasts:e}=mr();return i.jsxs(dAe,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return i.jsxs(TW,{...s,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx(MW,{children:n}),r&&i.jsx(PW,{children:r})]}),a,i.jsx(kW,{})]},t)}),i.jsx(AW,{})]})}tG.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(WEe,{defaultTheme:"system",children:i.jsxs(VEe,{children:[i.jsx(VY,{router:HEe}),i.jsx(mAe,{})]})})})); diff --git a/webui/dist/assets/index-Cp6kNbgY.css b/webui/dist/assets/index-Cp6kNbgY.css deleted file mode 100644 index fcd6b8be..00000000 --- a/webui/dist/assets/index-Cp6kNbgY.css +++ /dev/null @@ -1 +0,0 @@ -*,: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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-orange-700:hover{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} diff --git a/webui/dist/index.html b/webui/dist/index.html index 0ecfe0da..ff05dd11 100644 --- a/webui/dist/index.html +++ b/webui/dist/index.html @@ -5,8 +5,8 @@ MaiBot Dashboard - - + +
From 2f58605644839c7f9e1a1acb59b605d3a4af00f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Wed, 19 Nov 2025 23:25:30 +0800 Subject: [PATCH 04/12] upload WebUI 0.11.5 Beta.722633c DashBoard after Build Files commit hash : 722633cdcd2b718a72c053ed2952add959b7aa66 --- .../{index-APyqA5yn.js => index-CcCiBqqZ.js} | 94 +++++++++---------- webui/dist/index.html | 2 +- 2 files changed, 48 insertions(+), 48 deletions(-) rename webui/dist/assets/{index-APyqA5yn.js => index-CcCiBqqZ.js} (83%) diff --git a/webui/dist/assets/index-APyqA5yn.js b/webui/dist/assets/index-CcCiBqqZ.js similarity index 83% rename from webui/dist/assets/index-APyqA5yn.js rename to webui/dist/assets/index-CcCiBqqZ.js index ca377b6b..ba92bec5 100644 --- a/webui/dist/assets/index-APyqA5yn.js +++ b/webui/dist/assets/index-CcCiBqqZ.js @@ -1,44 +1,44 @@ -function XV(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function At(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var O0={exports:{}},Yd={};var Gk;function ZV(){if(Gk)return Yd;Gk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var l=null;if(s!==void 0&&(l=""+s),a.key!==void 0&&(l=""+a.key),"key"in a){s={};for(var u in a)u!=="key"&&(s[u]=a[u])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:s}}return Yd.Fragment=t,Yd.jsx=n,Yd.jsxs=n,Yd}var Yk;function QV(){return Yk||(Yk=1,O0.exports=ZV()),O0.exports}var i=QV(),E0={exports:{}},Ze={};var Kk;function JV(){if(Kk)return Ze;Kk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(I){return I===null||typeof I!="object"?null:(I=g&&I[g]||I["@@iterator"],typeof I=="function"?I:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function N(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}N.prototype.isReactComponent={},N.prototype.setState=function(I,z){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,z,"setState")},N.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function E(){}E.prototype=N.prototype;function O(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}var A=O.prototype=new E;A.constructor=O,w(A,N.prototype),A.isPureReactComponent=!0;var C=Array.isArray;function k(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function R(I,z,Y){var te=Y.ref;return{$$typeof:e,type:I,key:z,ref:te!==void 0?te:null,props:Y}}function B(I,z){return R(I.type,z,I.props)}function $(I){return typeof I=="object"&&I!==null&&I.$$typeof===e}function H(I){var z={"=":"=0",":":"=2"};return"$"+I.replace(/[=:]/g,function(Y){return z[Y]})}var V=/\/+/g;function q(I,z){return typeof I=="object"&&I!==null&&I.key!=null?H(""+I.key):z.toString(36)}function G(I){switch(I.status){case"fulfilled":return I.value;case"rejected":throw I.reason;default:switch(typeof I.status=="string"?I.then(k,k):(I.status="pending",I.then(function(z){I.status==="pending"&&(I.status="fulfilled",I.value=z)},function(z){I.status==="pending"&&(I.status="rejected",I.reason=z)})),I.status){case"fulfilled":return I.value;case"rejected":throw I.reason}}throw I}function L(I,z,Y,te,ae){var ge=typeof I;(ge==="undefined"||ge==="boolean")&&(I=null);var ee=!1;if(I===null)ee=!0;else switch(ge){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(I.$$typeof){case e:case t:ee=!0;break;case m:return ee=I._init,L(ee(I._payload),z,Y,te,ae)}}if(ee)return ae=ae(I),ee=te===""?"."+q(I,0):te,C(ae)?(Y="",ee!=null&&(Y=ee.replace(V,"$&/")+"/"),L(ae,z,Y,"",function(we){return we})):ae!=null&&($(ae)&&(ae=B(ae,Y+(ae.key==null||I&&I.key===ae.key?"":(""+ae.key).replace(V,"$&/")+"/")+ee)),z.push(ae)),1;ee=0;var Se=te===""?".":te+":";if(C(I))for(var re=0;re>>1,J=L[K];if(0>>1;Ka(Y,U))tea(ae,Y)?(L[K]=ae,L[te]=U,K=te):(L[K]=Y,L[z]=U,K=z);else if(tea(ae,U))L[K]=ae,L[te]=U,K=te;else break e}}return D}function a(L,D){var U=L.sortIndex-D.sortIndex;return U!==0?U:L.id-D.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,w=!1,b=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function A(L){for(var D=n(f);D!==null;){if(D.callback===null)r(f);else if(D.startTime<=L)r(f),D.sortIndex=D.expirationTime,t(d,D);else break;D=n(f)}}function C(L){if(w=!1,A(L),!j)if(n(d)!==null)j=!0,k||(k=!0,H());else{var D=n(f);D!==null&&G(C,D.startTime-L)}}var k=!1,T=-1,M=5,R=-1;function B(){return b?!0:!(e.unstable_now()-RL&&B());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var J=K(p.expirationTime<=L);if(L=e.unstable_now(),typeof J=="function"){p.callback=J,A(L),D=!0;break t}p===n(d)&&r(d),A(L)}else r(d);p=n(d)}if(p!==null)D=!0;else{var I=n(f);I!==null&&G(C,I.startTime-L),D=!1}}break e}finally{p=null,g=U,x=!1}D=void 0}}finally{D?H():k=!1}}}var H;if(typeof O=="function")H=function(){O($)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,q=V.port2;V.port1.onmessage=$,H=function(){q.postMessage(null)}}else H=function(){N($,0)};function G(L,D){T=N(function(){L(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(L){L.callback=null},e.unstable_forceFrameRate=function(L){0>L||125K?(L.sortIndex=U,t(f,L),n(d)===null&&L===n(f)&&(w?(E(T),T=-1):w=!0,G(C,U-K))):(L.sortIndex=J,t(d,L),j||x||(j=!0,k||(k=!0,H()))),L},e.unstable_shouldYield=B,e.unstable_wrapCallback=function(L){var D=g;return function(){var U=g;g=D;try{return L.apply(this,arguments)}finally{g=U}}}})(k0)),k0}var Qk;function tG(){return Qk||(Qk=1,T0.exports=eG()),T0.exports}var M0={exports:{}},cr={};var Jk;function nG(){if(Jk)return cr;Jk=1;var e=Eh();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),M0.exports=nG(),M0.exports}var tM;function rG(){if(tM)return Kd;tM=1;var e=tG(),t=Eh(),n=JL();function r(o){var c="https://react.dev/errors/"+o;if(1J||(o.current=K[J],K[J]=null,J--)}function Y(o,c){J++,K[J]=o.current,o.current=c}var te=I(null),ae=I(null),ge=I(null),ee=I(null);function Se(o,c){switch(Y(ge,c),Y(ae,o),Y(te,null),c.nodeType){case 9:case 11:o=(o=c.documentElement)&&(o=o.namespaceURI)?vk(o):0;break;default:if(o=c.tagName,c=c.namespaceURI)c=vk(c),o=gk(c,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}z(te),Y(te,o)}function re(){z(te),z(ae),z(ge)}function we(o){o.memoizedState!==null&&Y(ee,o);var c=te.current,h=gk(c,o.type);c!==h&&(Y(ae,o),Y(te,h))}function je(o){ae.current===o&&(z(te),z(ae)),ee.current===o&&(z(ee),Hd._currentValue=U)}var fe,Le;function Oe(o){if(fe===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);fe=c&&c[1]||"",Le=-1r[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function At(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var E0={exports:{}},Yd={};var Gk;function ZV(){if(Gk)return Yd;Gk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var l=null;if(s!==void 0&&(l=""+s),a.key!==void 0&&(l=""+a.key),"key"in a){s={};for(var u in a)u!=="key"&&(s[u]=a[u])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:s}}return Yd.Fragment=t,Yd.jsx=n,Yd.jsxs=n,Yd}var Yk;function QV(){return Yk||(Yk=1,E0.exports=ZV()),E0.exports}var i=QV(),A0={exports:{}},Ze={};var Kk;function JV(){if(Kk)return Ze;Kk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(I){return I===null||typeof I!="object"?null:(I=g&&I[g]||I["@@iterator"],typeof I=="function"?I:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function N(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}N.prototype.isReactComponent={},N.prototype.setState=function(I,z){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,z,"setState")},N.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function E(){}E.prototype=N.prototype;function O(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}var A=O.prototype=new E;A.constructor=O,w(A,N.prototype),A.isPureReactComponent=!0;var C=Array.isArray;function k(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function R(I,z,Y){var te=Y.ref;return{$$typeof:e,type:I,key:z,ref:te!==void 0?te:null,props:Y}}function B(I,z){return R(I.type,z,I.props)}function $(I){return typeof I=="object"&&I!==null&&I.$$typeof===e}function H(I){var z={"=":"=0",":":"=2"};return"$"+I.replace(/[=:]/g,function(Y){return z[Y]})}var V=/\/+/g;function q(I,z){return typeof I=="object"&&I!==null&&I.key!=null?H(""+I.key):z.toString(36)}function G(I){switch(I.status){case"fulfilled":return I.value;case"rejected":throw I.reason;default:switch(typeof I.status=="string"?I.then(k,k):(I.status="pending",I.then(function(z){I.status==="pending"&&(I.status="fulfilled",I.value=z)},function(z){I.status==="pending"&&(I.status="rejected",I.reason=z)})),I.status){case"fulfilled":return I.value;case"rejected":throw I.reason}}throw I}function L(I,z,Y,te,ae){var ge=typeof I;(ge==="undefined"||ge==="boolean")&&(I=null);var ee=!1;if(I===null)ee=!0;else switch(ge){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(I.$$typeof){case e:case t:ee=!0;break;case m:return ee=I._init,L(ee(I._payload),z,Y,te,ae)}}if(ee)return ae=ae(I),ee=te===""?"."+q(I,0):te,C(ae)?(Y="",ee!=null&&(Y=ee.replace(V,"$&/")+"/"),L(ae,z,Y,"",function(we){return we})):ae!=null&&($(ae)&&(ae=B(ae,Y+(ae.key==null||I&&I.key===ae.key?"":(""+ae.key).replace(V,"$&/")+"/")+ee)),z.push(ae)),1;ee=0;var Se=te===""?".":te+":";if(C(I))for(var re=0;re>>1,J=L[K];if(0>>1;Ka(Y,U))tea(ae,Y)?(L[K]=ae,L[te]=U,K=te):(L[K]=Y,L[z]=U,K=z);else if(tea(ae,U))L[K]=ae,L[te]=U,K=te;else break e}}return D}function a(L,D){var U=L.sortIndex-D.sortIndex;return U!==0?U:L.id-D.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,w=!1,b=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function A(L){for(var D=n(f);D!==null;){if(D.callback===null)r(f);else if(D.startTime<=L)r(f),D.sortIndex=D.expirationTime,t(d,D);else break;D=n(f)}}function C(L){if(w=!1,A(L),!j)if(n(d)!==null)j=!0,k||(k=!0,H());else{var D=n(f);D!==null&&G(C,D.startTime-L)}}var k=!1,T=-1,M=5,R=-1;function B(){return b?!0:!(e.unstable_now()-RL&&B());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var J=K(p.expirationTime<=L);if(L=e.unstable_now(),typeof J=="function"){p.callback=J,A(L),D=!0;break t}p===n(d)&&r(d),A(L)}else r(d);p=n(d)}if(p!==null)D=!0;else{var I=n(f);I!==null&&G(C,I.startTime-L),D=!1}}break e}finally{p=null,g=U,x=!1}D=void 0}}finally{D?H():k=!1}}}var H;if(typeof O=="function")H=function(){O($)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,q=V.port2;V.port1.onmessage=$,H=function(){q.postMessage(null)}}else H=function(){N($,0)};function G(L,D){T=N(function(){L(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(L){L.callback=null},e.unstable_forceFrameRate=function(L){0>L||125K?(L.sortIndex=U,t(f,L),n(d)===null&&L===n(f)&&(w?(E(T),T=-1):w=!0,G(C,U-K))):(L.sortIndex=J,t(d,L),j||x||(j=!0,k||(k=!0,H()))),L},e.unstable_shouldYield=B,e.unstable_wrapCallback=function(L){var D=g;return function(){var U=g;g=D;try{return L.apply(this,arguments)}finally{g=U}}}})(M0)),M0}var Qk;function tG(){return Qk||(Qk=1,k0.exports=eG()),k0.exports}var P0={exports:{}},cr={};var Jk;function nG(){if(Jk)return cr;Jk=1;var e=Eh();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),P0.exports=nG(),P0.exports}var tM;function rG(){if(tM)return Kd;tM=1;var e=tG(),t=Eh(),n=JL();function r(o){var c="https://react.dev/errors/"+o;if(1J||(o.current=K[J],K[J]=null,J--)}function Y(o,c){J++,K[J]=o.current,o.current=c}var te=I(null),ae=I(null),ge=I(null),ee=I(null);function Se(o,c){switch(Y(ge,c),Y(ae,o),Y(te,null),c.nodeType){case 9:case 11:o=(o=c.documentElement)&&(o=o.namespaceURI)?vk(o):0;break;default:if(o=c.tagName,c=c.namespaceURI)c=vk(c),o=gk(c,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}z(te),Y(te,o)}function re(){z(te),z(ae),z(ge)}function we(o){o.memoizedState!==null&&Y(ee,o);var c=te.current,h=gk(c,o.type);c!==h&&(Y(ae,o),Y(te,h))}function je(o){ae.current===o&&(z(te),z(ae)),ee.current===o&&(z(ee),Hd._currentValue=U)}var fe,Le;function Oe(o){if(fe===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);fe=c&&c[1]||"",Le=-1)":-1S||X[v]!==se[S]){var pe=` `+X[v].replace(" at new "," at ");return o.displayName&&pe.includes("")&&(pe=pe.replace("",o.displayName)),pe}while(1<=v&&0<=S);break}}}finally{We=!1,Error.prepareStackTrace=h}return(h=o?o.displayName||o.name:"")?Oe(h):""}function Ae(o,c){switch(o.tag){case 26:case 27:case 5:return Oe(o.type);case 16:return Oe("Lazy");case 13:return o.child!==c&&c!==null?Oe("Suspense Fallback"):Oe("Suspense");case 19:return Oe("SuspenseList");case 0:case 15:return be(o.type,!1);case 11:return be(o.type.render,!1);case 1:return be(o.type,!0);case 31:return Oe("Activity");default:return""}}function ke(o){try{var c="",h=null;do c+=Ae(o,h),h=o,o=o.return;while(o);return c}catch(v){return` Error generating stack: `+v.message+` -`+v.stack}}var Qt=Object.prototype.hasOwnProperty,St=e.unstable_scheduleCallback,Tt=e.unstable_cancelCallback,Sn=e.unstable_shouldYield,le=e.unstable_requestPaint,ue=e.unstable_now,Ve=e.unstable_getCurrentPriorityLevel,Mn=e.unstable_ImmediatePriority,$l=e.unstable_UserBlockingPriority,Il=e.unstable_NormalPriority,dx=e.unstable_LowPriority,fm=e.unstable_IdlePriority,fx=e.log,hx=e.unstable_setDisableYieldValue,bo=null,br=null;function Qa(o){if(typeof fx=="function"&&hx(o),br&&typeof br.setStrictMode=="function")try{br.setStrictMode(bo,o)}catch{}}var lr=Math.clz32?Math.clz32:Gt,mx=Math.log,it=Math.LN2;function Gt(o){return o>>>=0,o===0?32:31-(mx(o)/it|0)|0}var Ye=256,wt=262144,qn=4194304;function st(o){var c=o&42;if(c!==0)return c;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function Ll(o,c,h){var v=o.pendingLanes;if(v===0)return 0;var S=0,_=o.suspendedLanes,P=o.pingedLanes;o=o.warmLanes;var F=v&134217727;return F!==0?(v=F&~_,v!==0?S=st(v):(P&=F,P!==0?S=st(P):h||(h=F&~o,h!==0&&(S=st(h))))):(F=v&~_,F!==0?S=st(F):P!==0?S=st(P):h||(h=v&~o,h!==0&&(S=st(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function wo(o,c){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&c)===0}function px(o,c){switch(o){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bl(){var o=qn;return qn<<=1,(qn&62914560)===0&&(qn=4194304),o}function jo(o){for(var c=[],h=0;31>h;h++)c.push(o);return c}function ad(o,c){o.pendingLanes|=c,c!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function LW(o,c,h,v,S,_){var P=o.pendingLanes;o.pendingLanes=h,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=h,o.entangledLanes&=h,o.errorRecoveryDisabledLanes&=h,o.shellSuspendCounter=0;var F=o.entanglements,X=o.expirationTimes,se=o.hiddenUpdates;for(h=P&~h;0"u")return null;try{return o.activeElement||o.body}catch{return o.body}}var HW=/[\n"\\]/g;function da(o){return o.replace(HW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function wx(o,c,h,v,S,_,P,F){o.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?o.type=P:o.removeAttribute("type"),c!=null?P==="number"?(c===0&&o.value===""||o.value!=c)&&(o.value=""+ua(c)):o.value!==""+ua(c)&&(o.value=""+ua(c)):P!=="submit"&&P!=="reset"||o.removeAttribute("value"),c!=null?jx(o,P,ua(c)):h!=null?jx(o,P,ua(h)):v!=null&&o.removeAttribute("value"),S==null&&_!=null&&(o.defaultChecked=!!_),S!=null&&(o.checked=S&&typeof S!="function"&&typeof S!="symbol"),F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?o.name=""+ua(F):o.removeAttribute("name")}function uA(o,c,h,v,S,_,P,F){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(o.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){bx(o);return}h=h!=null?""+ua(h):"",c=c!=null?""+ua(c):h,F||c===o.value||(o.value=c),o.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,o.checked=F?o.checked:!!v,o.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(o.name=P),bx(o)}function jx(o,c,h){c==="number"&&pm(o.ownerDocument)===o||o.defaultValue===""+h||(o.defaultValue=""+h)}function Wl(o,c,h,v){if(o=o.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ox=!1;if(Ai)try{var ld={};Object.defineProperty(ld,"passive",{get:function(){Ox=!0}}),window.addEventListener("test",ld,ld),window.removeEventListener("test",ld,ld)}catch{Ox=!1}var ys=null,Ex=null,gm=null;function gA(){if(gm)return gm;var o,c=Ex,h=c.length,v,S="value"in ys?ys.value:ys.textContent,_=S.length;for(o=0;o=dd),SA=" ",_A=!1;function NA(o,c){switch(o){case"keyup":return y7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function CA(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Kl=!1;function b7(o,c){switch(o){case"compositionend":return CA(c);case"keypress":return c.which!==32?null:(_A=!0,SA);case"textInput":return o=c.data,o===SA&&_A?null:o;default:return null}}function w7(o,c){if(Kl)return o==="compositionend"||!Px&&NA(o,c)?(o=gA(),gm=Ex=ys=null,Kl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-o};o=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=RA(h)}}function $A(o,c){return o&&c?o===c?!0:o&&o.nodeType===3?!1:c&&c.nodeType===3?$A(o,c.parentNode):"contains"in o?o.contains(c):o.compareDocumentPosition?!!(o.compareDocumentPosition(c)&16):!1:!1}function IA(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var c=pm(o.document);c instanceof o.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)o=c.contentWindow;else break;c=pm(o.document)}return c}function $x(o){var c=o&&o.nodeName&&o.nodeName.toLowerCase();return c&&(c==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||c==="textarea"||o.contentEditable==="true")}var A7=Ai&&"documentMode"in document&&11>=document.documentMode,Xl=null,Ix=null,pd=null,Lx=!1;function LA(o,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;Lx||Xl==null||Xl!==pm(v)||(v=Xl,"selectionStart"in v&&$x(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),pd&&md(pd,v)||(pd=v,v=up(Ix,"onSelect"),0>=P,S-=P,Ja=1<<32-lr(c)+S|h<at?(ht=Ie,Ie=null):ht=Ie.sibling;var yt=de(ne,Ie,ie[at],ye);if(yt===null){Ie===null&&(Ie=ht);break}o&&Ie&&yt.alternate===null&&c(ne,Ie),Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt,Ie=ht}if(at===ie.length)return h(ne,Ie),mt&&ki(ne,at),ze;if(Ie===null){for(;atat?(ht=Ie,Ie=null):ht=Ie.sibling;var zs=de(ne,Ie,yt.value,ye);if(zs===null){Ie===null&&(Ie=ht);break}o&&Ie&&zs.alternate===null&&c(ne,Ie),Z=_(zs,Z,at),gt===null?ze=zs:gt.sibling=zs,gt=zs,Ie=ht}if(yt.done)return h(ne,Ie),mt&&ki(ne,at),ze;if(Ie===null){for(;!yt.done;at++,yt=ie.next())yt=xe(ne,yt.value,ye),yt!==null&&(Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt);return mt&&ki(ne,at),ze}for(Ie=v(Ie);!yt.done;at++,yt=ie.next())yt=me(Ie,ne,at,yt.value,ye),yt!==null&&(o&&yt.alternate!==null&&Ie.delete(yt.key===null?at:yt.key),Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt);return o&&Ie.forEach(function(KV){return c(ne,KV)}),mt&&ki(ne,at),ze}function zt(ne,Z,ie,ye){if(typeof ie=="object"&&ie!==null&&ie.type===w&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case x:e:{for(var ze=ie.key;Z!==null;){if(Z.key===ze){if(ze=ie.type,ze===w){if(Z.tag===7){h(ne,Z.sibling),ye=S(Z,ie.props.children),ye.return=ne,ne=ye;break e}}else if(Z.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===M&&Po(ze)===Z.type){h(ne,Z.sibling),ye=S(Z,ie.props),wd(ye,ie),ye.return=ne,ne=ye;break e}h(ne,Z);break}else c(ne,Z);Z=Z.sibling}ie.type===w?(ye=Eo(ie.props.children,ne.mode,ye,ie.key),ye.return=ne,ne=ye):(ye=Om(ie.type,ie.key,ie.props,null,ne.mode,ye),wd(ye,ie),ye.return=ne,ne=ye)}return P(ne);case j:e:{for(ze=ie.key;Z!==null;){if(Z.key===ze)if(Z.tag===4&&Z.stateNode.containerInfo===ie.containerInfo&&Z.stateNode.implementation===ie.implementation){h(ne,Z.sibling),ye=S(Z,ie.children||[]),ye.return=ne,ne=ye;break e}else{h(ne,Z);break}else c(ne,Z);Z=Z.sibling}ye=Wx(ie,ne.mode,ye),ye.return=ne,ne=ye}return P(ne);case M:return ie=Po(ie),zt(ne,Z,ie,ye)}if(G(ie))return Me(ne,Z,ie,ye);if(H(ie)){if(ze=H(ie),typeof ze!="function")throw Error(r(150));return ie=ze.call(ie),Fe(ne,Z,ie,ye)}if(typeof ie.then=="function")return zt(ne,Z,Rm(ie),ye);if(ie.$$typeof===O)return zt(ne,Z,Tm(ne,ie),ye);Dm(ne,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"||typeof ie=="bigint"?(ie=""+ie,Z!==null&&Z.tag===6?(h(ne,Z.sibling),ye=S(Z,ie),ye.return=ne,ne=ye):(h(ne,Z),ye=Hx(ie,ne.mode,ye),ye.return=ne,ne=ye),P(ne)):h(ne,Z)}return function(ne,Z,ie,ye){try{bd=0;var ze=zt(ne,Z,ie,ye);return oc=null,ze}catch(Ie){if(Ie===sc||Ie===Mm)throw Ie;var gt=Hr(29,Ie,null,ne.mode);return gt.lanes=ye,gt.return=ne,gt}finally{}}}var Do=o2(!0),l2=o2(!1),Ss=!1;function rb(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ab(o,c){o=o.updateQueue,c.updateQueue===o&&(c.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function _s(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function Ns(o,c,h){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(jt&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=Cm(o),WA(o,null,h),c}return Nm(o,v,c,h),Cm(o)}function jd(o,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,JE(o,h)}}function ib(o,c){var h=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},o.updateQueue=h;return}o=h.lastBaseUpdate,o===null?h.firstBaseUpdate=c:o.next=c,h.lastBaseUpdate=c}var sb=!1;function Sd(){if(sb){var o=ic;if(o!==null)throw o}}function _d(o,c,h,v){sb=!1;var S=o.updateQueue;Ss=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,F=S.shared.pending;if(F!==null){S.shared.pending=null;var X=F,se=X.next;X.next=null,P===null?_=se:P.next=se,P=X;var pe=o.alternate;pe!==null&&(pe=pe.updateQueue,F=pe.lastBaseUpdate,F!==P&&(F===null?pe.firstBaseUpdate=se:F.next=se,pe.lastBaseUpdate=X))}if(_!==null){var xe=S.baseState;P=0,pe=se=X=null,F=_;do{var de=F.lane&-536870913,me=de!==F.lane;if(me?(ft&de)===de:(v&de)===de){de!==0&&de===ac&&(sb=!0),pe!==null&&(pe=pe.next={lane:0,tag:F.tag,payload:F.payload,callback:null,next:null});e:{var Me=o,Fe=F;de=c;var zt=h;switch(Fe.tag){case 1:if(Me=Fe.payload,typeof Me=="function"){xe=Me.call(zt,xe,de);break e}xe=Me;break e;case 3:Me.flags=Me.flags&-65537|128;case 0:if(Me=Fe.payload,de=typeof Me=="function"?Me.call(zt,xe,de):Me,de==null)break e;xe=p({},xe,de);break e;case 2:Ss=!0}}de=F.callback,de!==null&&(o.flags|=64,me&&(o.flags|=8192),me=S.callbacks,me===null?S.callbacks=[de]:me.push(de))}else me={lane:de,tag:F.tag,payload:F.payload,callback:F.callback,next:null},pe===null?(se=pe=me,X=xe):pe=pe.next=me,P|=de;if(F=F.next,F===null){if(F=S.shared.pending,F===null)break;me=F,F=me.next,me.next=null,S.lastBaseUpdate=me,S.shared.pending=null}}while(!0);pe===null&&(X=xe),S.baseState=X,S.firstBaseUpdate=se,S.lastBaseUpdate=pe,_===null&&(S.shared.lanes=0),Ts|=P,o.lanes=P,o.memoizedState=xe}}function c2(o,c){if(typeof o!="function")throw Error(r(191,o));o.call(c)}function u2(o,c){var h=o.callbacks;if(h!==null)for(o.callbacks=null,o=0;o_?_:8;var P=L.T,F={};L.T=F,Nb(o,!1,c,h);try{var X=S(),se=L.S;if(se!==null&&se(F,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var pe=L7(X,v);Od(o,c,pe,Kr(o))}else Od(o,c,v,Kr(o))}catch(xe){Od(o,c,{then:function(){},status:"rejected",reason:xe},Kr())}finally{D.p=_,P!==null&&F.types!==null&&(P.types=F.types),L.T=P}}function H7(){}function Sb(o,c,h,v){if(o.tag!==5)throw Error(r(476));var S=F2(o).queue;q2(o,S,c,U,h===null?H7:function(){return U2(o),h(v)})}function F2(o){var c=o.memoizedState;if(c!==null)return c;c={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:U},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:h},next:null},o.memoizedState=c,o=o.alternate,o!==null&&(o.memoizedState=c),c}function U2(o){var c=F2(o);c.next===null&&(c=o.alternate.memoizedState),Od(o,c.next.queue,{},Kr())}function _b(){return tr(Hd)}function H2(){return jn().memoizedState}function W2(){return jn().memoizedState}function W7(o){for(var c=o.return;c!==null;){switch(c.tag){case 24:case 3:var h=Kr();o=_s(h);var v=Ns(c,o,h);v!==null&&(Mr(v,c,h),jd(v,c,h)),c={cache:Jx()},o.payload=c;return}c=c.return}}function V7(o,c,h){var v=Kr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Wm(o)?G2(c,h):(h=Fx(o,c,h,v),h!==null&&(Mr(h,o,v),Y2(h,c,v)))}function V2(o,c,h){var v=Kr();Od(o,c,h,v)}function Od(o,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(Wm(o))G2(c,S);else{var _=o.alternate;if(o.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,F=_(P,h);if(S.hasEagerState=!0,S.eagerState=F,Ur(F,P))return Nm(o,c,S,0),Ht===null&&_m(),!1}catch{}finally{}if(h=Fx(o,c,S,v),h!==null)return Mr(h,o,v),Y2(h,c,v),!0}return!1}function Nb(o,c,h,v){if(v={lane:2,revertLane:r0(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},Wm(o)){if(c)throw Error(r(479))}else c=Fx(o,h,v,2),c!==null&&Mr(c,o,2)}function Wm(o){var c=o.alternate;return o===et||c!==null&&c===et}function G2(o,c){cc=Lm=!0;var h=o.pending;h===null?c.next=c:(c.next=h.next,h.next=c),o.pending=c}function Y2(o,c,h){if((h&4194048)!==0){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,JE(o,h)}}var Ed={readContext:tr,use:qm,useCallback:gn,useContext:gn,useEffect:gn,useImperativeHandle:gn,useLayoutEffect:gn,useInsertionEffect:gn,useMemo:gn,useReducer:gn,useRef:gn,useState:gn,useDebugValue:gn,useDeferredValue:gn,useTransition:gn,useSyncExternalStore:gn,useId:gn,useHostTransitionStatus:gn,useFormState:gn,useActionState:gn,useOptimistic:gn,useMemoCache:gn,useCacheRefresh:gn};Ed.useEffectEvent=gn;var K2={readContext:tr,use:qm,useCallback:function(o,c){return wr().memoizedState=[o,c===void 0?null:c],o},useContext:tr,useEffect:M2,useImperativeHandle:function(o,c,h){h=h!=null?h.concat([o]):null,Um(4194308,4,$2.bind(null,c,o),h)},useLayoutEffect:function(o,c){return Um(4194308,4,o,c)},useInsertionEffect:function(o,c){Um(4,2,o,c)},useMemo:function(o,c){var h=wr();c=c===void 0?null:c;var v=o();if($o){Qa(!0);try{o()}finally{Qa(!1)}}return h.memoizedState=[v,c],v},useReducer:function(o,c,h){var v=wr();if(h!==void 0){var S=h(c);if($o){Qa(!0);try{h(c)}finally{Qa(!1)}}}else S=c;return v.memoizedState=v.baseState=S,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:S},v.queue=o,o=o.dispatch=V7.bind(null,et,o),[v.memoizedState,o]},useRef:function(o){var c=wr();return o={current:o},c.memoizedState=o},useState:function(o){o=yb(o);var c=o.queue,h=V2.bind(null,et,c);return c.dispatch=h,[o.memoizedState,h]},useDebugValue:wb,useDeferredValue:function(o,c){var h=wr();return jb(h,o,c)},useTransition:function(){var o=yb(!1);return o=q2.bind(null,et,o.queue,!0,!1),wr().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,c,h){var v=et,S=wr();if(mt){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Ht===null)throw Error(r(349));(ft&127)!==0||v2(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,M2(y2.bind(null,v,_,o),[o]),v.flags|=2048,dc(9,{destroy:void 0},g2.bind(null,v,_,h,c),null),h},useId:function(){var o=wr(),c=Ht.identifierPrefix;if(mt){var h=ei,v=Ja;h=(v&~(1<<32-lr(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=Bm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Jn]=c,_[Cr]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(rr(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&Ii(c)}}return en(c),Bb(c,c.type,o===null?null:o.memoizedProps,c.pendingProps,h),null;case 6:if(o&&c.stateNode!=null)o.memoizedProps!==v&&Ii(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(o=ge.current,nc(c)){if(o=c.stateNode,h=c.memoizedProps,v=null,S=er,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}o[Jn]=c,o=!!(o.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||mk(o.nodeValue,h)),o||ws(c,!0)}else o=dp(o).createTextNode(v),o[Jn]=c,c.stateNode=o}return en(c),null;case 31:if(h=c.memoizedState,o===null||o.memoizedState!==null){if(v=nc(c),h!==null){if(o===null){if(!v)throw Error(r(318));if(o=c.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));o[Jn]=c}else Ao(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;en(c),o=!1}else h=Kx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=h),o=!0;if(!o)return c.flags&256?(Vr(c),c):(Vr(c),null);if((c.flags&128)!==0)throw Error(r(558))}return en(c),null;case 13:if(v=c.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(S=nc(c),v!==null&&v.dehydrated!==null){if(o===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Jn]=c}else Ao(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;en(c),S=!1}else S=Kx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Vr(c),c):(Vr(c),null)}return Vr(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,o=o!==null&&o.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==o&&h&&(c.child.flags|=8192),Xm(c,c.updateQueue),en(c),null);case 4:return re(),o===null&&o0(c.stateNode.containerInfo),en(c),null;case 10:return Pi(c.type),en(c),null;case 19:if(z(wn),v=c.memoizedState,v===null)return en(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)Td(v,!1);else{if(yn!==0||o!==null&&(o.flags&128)!==0)for(o=c.child;o!==null;){if(_=Im(o),_!==null){for(c.flags|=128,Td(v,!1),o=_.updateQueue,c.updateQueue=o,Xm(c,o),c.subtreeFlags=0,o=h,h=c.child;h!==null;)VA(h,o),h=h.sibling;return Y(wn,wn.current&1|2),mt&&ki(c,v.treeForkCount),c.child}o=o.sibling}v.tail!==null&&ue()>tp&&(c.flags|=128,S=!0,Td(v,!1),c.lanes=4194304)}else{if(!S)if(o=Im(_),o!==null){if(c.flags|=128,S=!0,o=o.updateQueue,c.updateQueue=o,Xm(c,o),Td(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!mt)return en(c),null}else 2*ue()-v.renderingStartTime>tp&&h!==536870912&&(c.flags|=128,S=!0,Td(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(o=v.last,o!==null?o.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=ue(),o.sibling=null,h=wn.current,Y(wn,S?h&1|2:h&1),mt&&ki(c,v.treeForkCount),o):(en(c),null);case 22:case 23:return Vr(c),lb(),v=c.memoizedState!==null,o!==null?o.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(en(c),c.subtreeFlags&6&&(c.flags|=8192)):en(c),h=c.updateQueue,h!==null&&Xm(c,h.retryQueue),h=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),o!==null&&z(Mo),null;case 24:return h=null,o!==null&&(h=o.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Pi(_n),en(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function Z7(o,c){switch(Gx(c),c.tag){case 1:return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 3:return Pi(_n),re(),o=c.flags,(o&65536)!==0&&(o&128)===0?(c.flags=o&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Vr(c),c.alternate===null)throw Error(r(340));Ao()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 13:if(Vr(c),o=c.memoizedState,o!==null&&o.dehydrated!==null){if(c.alternate===null)throw Error(r(340));Ao()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 19:return z(wn),null;case 4:return re(),null;case 10:return Pi(c.type),null;case 22:case 23:return Vr(c),lb(),o!==null&&z(Mo),o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 24:return Pi(_n),null;case 25:return null;default:return null}}function xT(o,c){switch(Gx(c),c.tag){case 3:Pi(_n),re();break;case 26:case 27:case 5:je(c);break;case 4:re();break;case 31:c.memoizedState!==null&&Vr(c);break;case 13:Vr(c);break;case 19:z(wn);break;case 10:Pi(c.type);break;case 22:case 23:Vr(c),lb(),o!==null&&z(Mo);break;case 24:Pi(_n)}}function kd(o,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&o)===o){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(F){Mt(c,c.return,F)}}function Es(o,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&o)===o){var P=v.inst,F=P.destroy;if(F!==void 0){P.destroy=void 0,S=c;var X=h,se=F;try{se()}catch(pe){Mt(S,X,pe)}}}v=v.next}while(v!==_)}}catch(pe){Mt(c,c.return,pe)}}function bT(o){var c=o.updateQueue;if(c!==null){var h=o.stateNode;try{u2(c,h)}catch(v){Mt(o,o.return,v)}}}function wT(o,c,h){h.props=Io(o.type,o.memoizedProps),h.state=o.memoizedState;try{h.componentWillUnmount()}catch(v){Mt(o,c,v)}}function Md(o,c){try{var h=o.ref;if(h!==null){switch(o.tag){case 26:case 27:case 5:var v=o.stateNode;break;case 30:v=o.stateNode;break;default:v=o.stateNode}typeof h=="function"?o.refCleanup=h(v):h.current=v}}catch(S){Mt(o,c,S)}}function ti(o,c){var h=o.ref,v=o.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){Mt(o,c,S)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){Mt(o,c,S)}else h.current=null}function jT(o){var c=o.type,h=o.memoizedProps,v=o.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){Mt(o,o.return,S)}}function zb(o,c,h){try{var v=o.stateNode;xV(v,o.type,h,c),v[Cr]=c}catch(S){Mt(o,o.return,S)}}function ST(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&Ds(o.type)||o.tag===4}function qb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||ST(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&Ds(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Fb(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(o,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(o),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ei));else if(v!==4&&(v===27&&Ds(o.type)&&(h=o.stateNode,c=null),o=o.child,o!==null))for(Fb(o,c,h),o=o.sibling;o!==null;)Fb(o,c,h),o=o.sibling}function Zm(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?h.insertBefore(o,c):h.appendChild(o);else if(v!==4&&(v===27&&Ds(o.type)&&(h=o.stateNode),o=o.child,o!==null))for(Zm(o,c,h),o=o.sibling;o!==null;)Zm(o,c,h),o=o.sibling}function _T(o){var c=o.stateNode,h=o.memoizedProps;try{for(var v=o.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);rr(c,v,h),c[Jn]=o,c[Cr]=h}catch(_){Mt(o,o.return,_)}}var Li=!1,On=!1,Ub=!1,NT=typeof WeakSet=="function"?WeakSet:Set,Un=null;function Q7(o,c){if(o=o.containerInfo,u0=yp,o=IA(o),$x(o)){if("selectionStart"in o)var h={start:o.selectionStart,end:o.selectionEnd};else e:{h=(h=o.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,F=-1,X=-1,se=0,pe=0,xe=o,de=null;t:for(;;){for(var me;xe!==h||S!==0&&xe.nodeType!==3||(F=P+S),xe!==_||v!==0&&xe.nodeType!==3||(X=P+v),xe.nodeType===3&&(P+=xe.nodeValue.length),(me=xe.firstChild)!==null;)de=xe,xe=me;for(;;){if(xe===o)break t;if(de===h&&++se===S&&(F=P),de===_&&++pe===v&&(X=P),(me=xe.nextSibling)!==null)break;xe=de,de=xe.parentNode}xe=me}h=F===-1||X===-1?null:{start:F,end:X}}else h=null}h=h||{start:0,end:0}}else h=null;for(d0={focusedElem:o,selectionRange:h},yp=!1,Un=c;Un!==null;)if(c=Un,o=c.child,(c.subtreeFlags&1028)!==0&&o!==null)o.return=c,Un=o;else for(;Un!==null;){switch(c=Un,_=c.alternate,o=c.flags,c.tag){case 0:if((o&4)!==0&&(o=c.updateQueue,o=o!==null?o.events:null,o!==null))for(h=0;h title"))),rr(_,v,h),_[Jn]=o,Fn(_),v=_;break e;case"link":var P=kk("link","href",S).get(v+(h.href||""));if(P){for(var F=0;Fzt&&(P=zt,zt=Fe,Fe=P);var ne=DA(F,Fe),Z=DA(F,zt);if(ne&&Z&&(me.rangeCount!==1||me.anchorNode!==ne.node||me.anchorOffset!==ne.offset||me.focusNode!==Z.node||me.focusOffset!==Z.offset)){var ie=xe.createRange();ie.setStart(ne.node,ne.offset),me.removeAllRanges(),Fe>zt?(me.addRange(ie),me.extend(Z.node,Z.offset)):(ie.setEnd(Z.node,Z.offset),me.addRange(ie))}}}}for(xe=[],me=F;me=me.parentNode;)me.nodeType===1&&xe.push({element:me,left:me.scrollLeft,top:me.scrollTop});for(typeof F.focus=="function"&&F.focus(),F=0;Fh?32:h,L.T=null,h=Xb,Xb=null;var _=Ms,P=Ui;if(Pn=0,vc=Ms=null,Ui=0,(jt&6)!==0)throw Error(r(331));var F=jt;if(jt|=4,$T(_.current),PT(_,_.current,P,h),jt=F,Ld(0,!1),br&&typeof br.onPostCommitFiberRoot=="function")try{br.onPostCommitFiberRoot(bo,_)}catch{}return!0}finally{D.p=S,L.T=v,ek(o,c)}}function nk(o,c,h){c=ha(h,c),c=Ab(o.stateNode,c,2),o=Ns(o,c,2),o!==null&&(ad(o,2),ni(o))}function Mt(o,c,h){if(o.tag===3)nk(o,o,h);else for(;c!==null;){if(c.tag===3){nk(c,o,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(ks===null||!ks.has(v))){o=ha(h,o),h=rT(2),v=Ns(c,h,2),v!==null&&(aT(h,v,c,o),ad(v,2),ni(v));break}}c=c.return}}function e0(o,c,h){var v=o.pingCache;if(v===null){v=o.pingCache=new tV;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Vb=!0,S.add(h),o=sV.bind(null,o,c,h),c.then(o,o))}function sV(o,c,h){var v=o.pingCache;v!==null&&v.delete(c),o.pingedLanes|=o.suspendedLanes&h,o.warmLanes&=~h,Ht===o&&(ft&h)===h&&(yn===4||yn===3&&(ft&62914560)===ft&&300>ue()-ep?(jt&2)===0&&gc(o,0):Gb|=h,pc===ft&&(pc=0)),ni(o)}function rk(o,c){c===0&&(c=Bl()),o=Oo(o,c),o!==null&&(ad(o,c),ni(o))}function oV(o){var c=o.memoizedState,h=0;c!==null&&(h=c.retryLane),rk(o,h)}function lV(o,c){var h=0;switch(o.tag){case 31:case 13:var v=o.stateNode,S=o.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=o.stateNode;break;case 22:v=o.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),rk(o,h)}function cV(o,c){return St(o,c)}var op=null,xc=null,t0=!1,lp=!1,n0=!1,Rs=0;function ni(o){o!==xc&&o.next===null&&(xc===null?op=xc=o:xc=xc.next=o),lp=!0,t0||(t0=!0,dV())}function Ld(o,c){if(!n0&&lp){n0=!0;do for(var h=!1,v=op;v!==null;){if(o!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,F=v.pingedLanes;_=(1<<31-lr(42|o)+1)-1,_&=S&~(P&~F),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,ok(v,_))}else _=ft,_=Ll(v,v===Ht?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||wo(v,_)||(h=!0,ok(v,_));v=v.next}while(h);n0=!1}}function uV(){ak()}function ak(){lp=t0=!1;var o=0;Rs!==0&&wV()&&(o=Rs);for(var c=ue(),h=null,v=op;v!==null;){var S=v.next,_=ik(v,c);_===0?(v.next=null,h===null?op=S:h.next=S,S===null&&(xc=h)):(h=v,(o!==0||(_&3)!==0)&&(lp=!0)),v=S}Pn!==0&&Pn!==5||Ld(o),Rs!==0&&(Rs=0)}function ik(o,c){for(var h=o.suspendedLanes,v=o.pingedLanes,S=o.expirationTimes,_=o.pendingLanes&-62914561;0<_;){var P=31-lr(_),F=1<F)break;var pe=X.transferSize,xe=X.initiatorType;pe&&pk(xe)&&(X=X.responseEnd,P+=pe*(X"u"?null:document;function Ok(o,c,h){var v=bc;if(v&&typeof c=="string"&&c){var S=da(c);S='link[rel="'+o+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),Ck.has(S)||(Ck.add(S),o={rel:o,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function TV(o){Hi.D(o),Ok("dns-prefetch",o,null)}function kV(o,c){Hi.C(o,c),Ok("preconnect",o,c)}function MV(o,c,h){Hi.L(o,c,h);var v=bc;if(v&&o&&c){var S='link[rel="preload"][as="'+da(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+da(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+da(h.imageSizes)+'"]')):S+='[href="'+da(o)+'"]';var _=S;switch(c){case"style":_=wc(o);break;case"script":_=jc(o)}xa.has(_)||(o=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:o,as:c},h),xa.set(_,o),v.querySelector(S)!==null||c==="style"&&v.querySelector(Fd(_))||c==="script"&&v.querySelector(Ud(_))||(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function PV(o,c){Hi.m(o,c);var h=bc;if(h&&o){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+da(v)+'"][href="'+da(o)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=jc(o)}if(!xa.has(_)&&(o=p({rel:"modulepreload",href:o},c),xa.set(_,o),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(Ud(_)))return}v=h.createElement("link"),rr(v,"link",o),Fn(v),h.head.appendChild(v)}}}function RV(o,c,h){Hi.S(o,c,h);var v=bc;if(v&&o){var S=Ul(v).hoistableStyles,_=wc(o);c=c||"default";var P=S.get(_);if(!P){var F={loading:0,preload:null};if(P=v.querySelector(Fd(_)))F.loading=5;else{o=p({rel:"stylesheet",href:o,"data-precedence":c},h),(h=xa.get(_))&&y0(o,h);var X=P=v.createElement("link");Fn(X),rr(X,"link",o),X._p=new Promise(function(se,pe){X.onload=se,X.onerror=pe}),X.addEventListener("load",function(){F.loading|=1}),X.addEventListener("error",function(){F.loading|=2}),F.loading|=4,hp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:F},S.set(_,P)}}}function DV(o,c){Hi.X(o,c);var h=bc;if(h&&o){var v=Ul(h).hoistableScripts,S=jc(o),_=v.get(S);_||(_=h.querySelector(Ud(S)),_||(o=p({src:o,async:!0},c),(c=xa.get(S))&&x0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function $V(o,c){Hi.M(o,c);var h=bc;if(h&&o){var v=Ul(h).hoistableScripts,S=jc(o),_=v.get(S);_||(_=h.querySelector(Ud(S)),_||(o=p({src:o,async:!0,type:"module"},c),(c=xa.get(S))&&x0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function Ek(o,c,h,v){var S=(S=ge.current)?fp(S):null;if(!S)throw Error(r(446));switch(o){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=wc(h.href),h=Ul(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){o=wc(h.href);var _=Ul(S).hoistableStyles,P=_.get(o);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(o,P),(_=S.querySelector(Fd(o)))&&!_._p&&(P.instance=_,P.state.loading=5),xa.has(o)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},xa.set(o,h),_||IV(S,o,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=jc(h),h=Ul(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,o))}}function wc(o){return'href="'+da(o)+'"'}function Fd(o){return'link[rel="stylesheet"]['+o+"]"}function Ak(o){return p({},o,{"data-precedence":o.precedence,precedence:null})}function IV(o,c,h,v){o.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=o.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),rr(c,"link",h),Fn(c),o.head.appendChild(c))}function jc(o){return'[src="'+da(o)+'"]'}function Ud(o){return"script[async]"+o}function Tk(o,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=o.querySelector('style[data-href~="'+da(h.href)+'"]');if(v)return c.instance=v,Fn(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(o.ownerDocument||o).createElement("style"),Fn(v),rr(v,"style",S),hp(v,h.precedence,o),c.instance=v;case"stylesheet":S=wc(h.href);var _=o.querySelector(Fd(S));if(_)return c.state.loading|=4,c.instance=_,Fn(_),_;v=Ak(h),(S=xa.get(S))&&y0(v,S),_=(o.ownerDocument||o).createElement("link"),Fn(_);var P=_;return P._p=new Promise(function(F,X){P.onload=F,P.onerror=X}),rr(_,"link",v),c.state.loading|=4,hp(_,h.precedence,o),c.instance=_;case"script":return _=jc(h.src),(S=o.querySelector(Ud(_)))?(c.instance=S,Fn(S),S):(v=h,(S=xa.get(_))&&(v=p({},h),x0(v,S)),o=o.ownerDocument||o,S=o.createElement("script"),Fn(S),rr(S,"link",v),o.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,hp(v,h.precedence,o));return c.instance}function hp(o,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function LV(o,c,h){if(h===1||c.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return o=c.disabled,typeof c.precedence=="string"&&o==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Pk(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function BV(o,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=wc(v.href),_=c.querySelector(Fd(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(o.count++,o=pp.bind(o),c.then(o,o)),h.state.loading|=4,h.instance=_,Fn(_);return}_=c.ownerDocument||c,v=Ak(v),(S=xa.get(S))&&y0(v,S),_=_.createElement("link"),Fn(_);var P=_;P._p=new Promise(function(F,X){P.onload=F,P.onerror=X}),rr(_,"link",v),h.instance=_}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(o.count++,h=pp.bind(o),c.addEventListener("load",h),c.addEventListener("error",h))}}var b0=0;function zV(o,c){return o.stylesheets&&o.count===0&&gp(o,o.stylesheets),0b0?50:800)+c);return o.unsuspend=h,function(){o.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function pp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)gp(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var vp=null;function gp(o,c){o.stylesheets=null,o.unsuspend!==null&&(o.count++,vp=new Map,c.forEach(qV,o),vp=null,pp.call(o))}function qV(o,c){if(!(c.state.loading&4)){var h=vp.get(o);if(h)var v=h.get(null);else{h=new Map,vp.set(o,h);for(var S=o.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),A0.exports=rG(),A0.exports}var iG=aG();const v_=new WeakMap,sG=new WeakMap,vv={current:[]};let P0=!1,jf=0;const hf=new Set,Cp=new Map;function e5(e){for(const t of e){if(vv.current.includes(t))continue;vv.current.push(t),t.recompute();const n=sG.get(t);if(n)for(const r of n){const a=v_.get(r);a?.length&&e5(a)}}}function oG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function lG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function t5(e){if(jf>0&&!Cp.has(e)&&Cp.set(e,e.prevState),hf.add(e),!(jf>0)&&!P0)try{for(P0=!0;hf.size>0;){const t=Array.from(hf);hf.clear();for(const n of t){const r=Cp.get(n)??n.prevState;n.prevState=r,oG(n)}for(const n of t){const r=v_.get(n);r&&(vv.current.push(n),e5(r))}for(const n of t){const r=v_.get(n);if(r)for(const a of r)lG(a)}}}finally{P0=!1,vv.current=[],Cp.clear()}}function Sf(e){jf++;try{e()}finally{if(jf--,jf===0){const t=hf.values().next().value;t&&t5(t)}}}function cG(e){return typeof e=="function"}class uG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,s;this.listeners.add(r);const l=(s=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:s.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):cG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),t5(this)}}const Ks="__TSR_index",rM="popstate",aM="beforeunload";function dG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},s=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=gv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Ks];u=iM(f+1,u),s({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Ks];u=iM(f,u),s({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{s({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{s({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{s({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Ks]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function iM(e,t){t||(t={});const n=EC();return{...t,key:n,__TSR_key:n,[Ks]:e}}function fG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const s=()=>a,l=M=>a=M,u=(M=>M),d=(()=>gv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=EC();t.history.replaceState({[Ks]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const w=()=>f;let b,N;const E=()=>{b&&(T._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),T._ignoreSubscribers=!1,b=void 0,N=void 0,m=void 0)},O=(M,R,B)=>{const $=u(R);N||(m=f),f=gv(R,B),b={href:$,state:B,isPush:b?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>E()))},A=M=>{f=d(),T.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),R=M.state[Ks]-f.state[Ks],B=R===1,$=R===-1,H=!B&&!$||p;p=!1;const V=H?"GO":$?"BACK":"FORWARD",q=H?{type:"GO",index:R}:{type:$?"BACK":"FORWARD"};if(x)x=!1;else{const G=s();if(typeof document<"u"&&G.length){for(const L of G)if(await L.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),T.notify(q);return}}}f=d(),T.notify(q)},k=M=>{if(j){j=!1;return}let R=!1;const B=s();if(typeof document<"u"&&B.length)for(const $ of B){const H=$.enableBeforeUnload??!0;if(H===!0){R=!0;break}if(typeof H=="function"&&H()===!0){R=!0;break}}if(R)return M.preventDefault(),M.returnValue=""},T=dG({getLocation:w,getLength:()=>t.history.length,pushState:(M,R)=>O("push",M,R),replaceState:(M,R)=>O("replace",M,R),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aM,k,{capture:!0}),t.removeEventListener(rM,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:s,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(aM,k,{capture:!0}),t.addEventListener(rM,C),t.history.pushState=function(...M){const R=n.apply(t.history,M);return T._ignoreSubscribers||A("PUSH"),R},t.history.replaceState=function(...M){const R=r.apply(t.history,M);return T._ignoreSubscribers||A("REPLACE"),R},T}function gv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=EC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Ks]:0,key:a,__TSR_key:a}}}function EC(){return(Math.random()+1).toString(36).substring(7)}function g_(e){return e[e.length-1]}function hG(e){return typeof e=="function"}function el(e,t){return hG(e)?e(t):e}const mG=Object.prototype.hasOwnProperty;function _a(e,t){if(e===t)return e;const n=t,r=lM(e)&&lM(n);if(!r&&!(yv(e)&&yv(n)))return n;const a=r?e:sM(e);if(!a)return n;const s=r?n:sM(n);if(!s)return n;const l=a.length,u=s.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!oM(n)||!n.hasOwnProperty("isPrototypeOf"))}function oM(e){return Object.prototype.toString.call(e)==="[object Object]"}function lM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function tl(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!tl(e[l],t[l],n)))return!1;return a===s}return!1}function tu(e){let t,n;const r=new Promise((a,s)=>{t=a,n=s});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function Xs(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const pG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function cM(e,t=pG){function n(a,s,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var vG="Invariant failed";function pr(e,t){if(!e)throw new Error(vG)}const mi=0,cl=1,nu=2,ru=3;function ts(e){return AC(e.filter(t=>t!==void 0).join("/"))}function AC(e){return e.replace(/\/{2,}/g,"/")}function TC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Zs(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function av(e){return Zs(TC(e))}function xv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function gG(e,t,n){return xv(e,n)===xv(t,n)}function yG(e){const{type:t,value:n}=e;if(t===mi)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===cl){const s=n.substring(1);if(r&&a)return`${r}{$${s}}${a}`;if(r)return`${r}{$${s}}`;if(a)return`{$${s}}${a}`}if(t===ru){const s=n.substring(1);return r&&a?`${r}{-$${s}}${a}`:r?`${r}{-$${s}}`:a?`{-$${s}}${a}`:`{-$${s}}`}if(t===nu){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function xG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=au(e,r).slice();const s=au(t,r);a.length>1&&g_(a)?.value==="/"&&a.pop();for(let d=0,f=s.length;d1&&(g_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:mi,value:"/"}));const l=a.map(yG);return ts(l)}const au=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=NG(e);return t?.set(e,r),r},bG=/^\$.{1,}$/,wG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,jG=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,SG=/^\$$/,_G=/^(.*?)\{\$\}(.*)$/;function NG(e){e=AC(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:mi,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(_G);if(a){const u=a[1],d=a[2];return{type:nu,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const s=r.match(jG);if(s){const u=s[1],d=s[2],f=s[3];return{type:ru,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(wG);if(l){const u=l[1],d=l[2],f=l[3];return{type:cl,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(bG.test(r)){const u=r.substring(1);return{type:cl,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return SG.test(r)?{type:nu,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:mi,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:mi,value:"/"})),t}function R0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=au(e,r);function s(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?CG(m,n):m}let l=!1;const u={},d=ts(a.map(f=>{if(f.type===mi)return f.value;if(f.type===nu){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=s("_splat");return`${m}${g}${p}`}if(f.type===cl){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${s(m)??"undefined"}${g}`}if(f.type===ru){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${s(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function CG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function y_(e,t,n){const r=OG(e,t,n);if(!(t.to&&!r))return r??{}}function OG(e,{to:t,fuzzy:n,caseSensitive:r},a){const s=t,l=au(e.startsWith("/")?e:`/${e}`,a),u=au(s.startsWith("/")?s:`/${s}`,a),d={};return EG(l,u,d,n,r)?d:void 0}function EG(e,t,n,r,a){let s=0,l=0;for(;sw.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(ts(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===mi){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;s++,l++;continue}else return!1}if(d.type===cl){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,s++),l++;continue}if(d.type===ru){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=ts(e.slice(s).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const s=TC(r.fullPath);let l=au(s),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return AG;if(p.type===mi)return TG;let x;p.type===cl?x=kG:p.type===ru?(x=MG,d++):x=PG;for(let j=g+1;j{const s=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function BG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(pr(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=Zs(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const s=LG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:s}}function Wa(e){return!!e?.isNotFound}function zG(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const bv="tsr-scroll-restoration-v1_3",qG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function FG(){const e=zG();if(!e)return null;const t=e.getItem(bv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=el(r,n)||n,e.setItem(bv,JSON.stringify(n)))}}const Op=FG(),x_=e=>e.state.__TSR_key||e.href;function UG(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let wv=!1;function n5({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:s}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];wv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(s??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}wv=!1}function HG(e,t){if(!Op&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!Op))return;e.isScrollRestorationSetup=!0,wv=!1;const r=e.options.getScrollRestorationKey||x_;window.history.scrollRestoration="manual";const a=s=>{if(wv||!e.isScrollRestoring)return;let l="";if(s.target===document||s.target===window)l="window";else{const d=s.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=UG(s.target)}const u=r(e.state.location);Op.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",qG(a,100),!0),e.subscribe("onRendered",s=>{const l=r(s.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(n5({storageKey:bv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&Op.set(u=>(u[l]||={},u)))})}function WG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function VG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function D0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function GG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const s=n[r];s==null?n[r]=D0(a):Array.isArray(s)?s.push(D0(a)):n[r]=[s,D0(a)]}return n}const YG=XG(JSON.parse),KG=ZG(JSON.stringify,JSON.parse);function XG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=GG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function ZG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const s=VG(a,r);return s?`?${s}`:""}}const ea="__root__";function r5(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function ci(e){return e instanceof Response&&!!e.options}function QG(e){const t=new Map;let n,r;const a=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,n=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){const l=t.get(s);if(l)return a(l),l.value},set(s,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(s);if(u)u.value=l,a(u);else{const d={key:s,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(s,d)}}}}const iv=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},zg=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),a5=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),pr(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);pr(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,a5(e,t))},Vs=(e,t,n)=>{if(!(!ci(n)&&!Wa(n))){if(ci(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=ci(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Wa(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw ci(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(a5(e,n),n)}},i5=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Xd=(e,t,n,r)=>{const{id:a,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Vs(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Vs(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},JG=(e,t,n,r)=>{const a=e.router.getMatch(t),s=e.matches[n-1]?.id,l=s?e.router.getMatch(s):void 0;if(e.router.isShell()){a.ssr=r.id===ea;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:Ep(f,a.searchError),params:Ep(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:Ep(x.search,x.searchError),params:Ep(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(Xs(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},s5=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!zg(e,t)&&(n.options.loader||n.options.beforeLoad||c5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{iv(e)},a);r._nonReactive.pendingTimeout=l}},eY=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;s5(e,t,n,r);const a=()=>{const s=e.router.getMatch(t);s.preload&&(s.status==="redirected"||s.status==="notFound")&&Vs(e,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},tY=(e,t,n,r)=>{const a=e.router.getMatch(t),s=a._nonReactive.loadPromise;a._nonReactive.loadPromise=tu(()=>{s?.resolve()});const{paramsError:l,searchError:u}=a;l&&Xd(e,n,l,"PARSE_PARAMS"),u&&Xd(e,n,u,"VALIDATE_SEARCH"),s5(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,T=>({...T,isFetching:"beforeLoad",fetchCount:T.fetchCount+1,abortController:d,context:g})))},w=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,T=>({...T,isFetching:!1}))};if(!r.options.beforeLoad){Sf(()=>{j(),w()});return}a._nonReactive.beforeLoadPromise=tu();const{search:b,params:N,cause:E}=a,O=zg(e,t),A={search:b,abortController:d,params:N,preload:O,context:g,location:e.location,navigate:T=>e.router.navigate({...T,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:O?"preload":E,matches:e.matches,...e.router.options.additionalContext},C=T=>{if(T===void 0){Sf(()=>{j(),w()});return}(ci(T)||Wa(T))&&(j(),Xd(e,n,T,"BEFORE_LOAD")),Sf(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:T,context:{...M.context,...T}})),w()})};let k;try{if(k=r.options.beforeLoad(A),Xs(k))return j(),k.catch(T=>{Xd(e,n,T,"BEFORE_LOAD")}).then(C)}catch(T){j(),Xd(e,n,T,"BEFORE_LOAD")}C(k)},nY=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],s=()=>{if(e.router.isServer){const d=JG(e,n,t,a);if(Xs(d))return d.then(u)}return u()},l=()=>tY(e,n,t,a),u=()=>{if(i5(e,n))return;const d=eY(e,n,a);return Xs(d)?d.then(l):l()};return s()},_f=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([s,l,u])=>{const d=s?.meta,f=s?.links,m=s?.scripts,p=s?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},o5=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:s,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=zg(e,t);return{params:s,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},hM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&l5(r);const s=r.options.loader?.(o5(e,t,n,r)),l=r.options.loader&&Xs(s);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await s:s;Vs(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=_f(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let l=s;const u=a._nonReactive.minPendingPromise;u&&await u,Wa(s)&&await r.options.notFoundComponent?.preload?.(),Vs(e,e.router.getMatch(t),s);try{r.options.onError?.(s)}catch(m){l=m,Vs(e,e.router.getMatch(t),m)}const d=_f(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const s=e.router.getMatch(t);if(s){const l=_f(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}s._nonReactive.loaderPromise=void 0}Vs(e,s,a)}},rY=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,s=!1;const l=e.router.looseRoutesById[r];if(i5(e,n)){if(e.router.isServer){const f=_f(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Vs(e,m,p)}else{const m=Date.now()-f.updatedAt,p=zg(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(o5(e,n,t,l)):x,w=!!p&&!e.router.state.matches.some(O=>O.id===n),b=e.router.getMatch(n);b._nonReactive.loaderPromise=tu(),w!==b.preload&&e.updateMatch(n,O=>({...O,preload:w}));const{status:N,invalid:E}=b;if(a=N==="success"&&(E||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)s=!0,(async()=>{try{await hM(e,n,t,l);const O=e.router.getMatch(n);O._nonReactive.loaderPromise?.resolve(),O._nonReactive.loadPromise?.resolve(),O._nonReactive.loaderPromise=void 0}catch(O){ci(O)&&await e.router.navigate(O.options)}})();else if(N!=="success"||a&&e.sync)await hM(e,n,t,l);else{const O=_f(e,n,l);if(O){const A=await O;e.updateMatch(n,C=>({...C,...A}))}}}}const u=e.router.getMatch(n);s||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,s||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=s?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function mM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&iv(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of u5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Ep(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function c5(e){for(const t of u5)if(e.options[t]?.preload)return!0;return!1}const u5=["component","errorComponent","pendingComponent","notFoundComponent"];function aY(e){return{input:({url:t})=>{for(const n of e)t=d5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=f5(e[n],t);return t}}}function iY(e){const t=av(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),s=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(s)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=ts(["/",t,l.pathname]),l)}}function d5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function f5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function nl(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,s=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:s}}class sY{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",s=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=fG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new uG(lY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),HG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(s||a!==d||l!==f){this.basepath=d;const g=[];av(d)!==""&&g.push(iY({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:aY(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=BG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=d5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:w,hash:b}=p;return{href:j,publicHref:d,url:p.href,pathname:cM(w),searchStr:x,search:_a(r?.search,g),hash:b.split("#").reverse()[0]??"",state:_a(r?.state,f)}},s=a(n),{__tempLocation:l,__tempKey:u}=s.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=s.state.key,d.state.__TSR_key=s.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:s}}return s},this.resolvePathWithBase=(n,r)=>xG({base:n,to:AC(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=QG(1e3),this.getMatchedRoutes=(n,r)=>cY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(s=>s.status==="pending"),r=this.state.matches.filter(s=>s.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(s=>{this.cancelMatch(s.id)})},this.buildLocation=n=>{const r=(s={})=>{const l=s._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=g_(u);s.from;const f=s.unsafeRelative==="path"?l.pathname:s.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=s.to?this.resolvePathWithBase(m,`${s.to}`):this.resolvePathWithBase(m,"."),j=s.params===!1||s.params===null?{}:(s.params??!0)===!0?g:Object.assign(g,el(s.params,g)),w=R0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(w,void 0,{_buildLocation:!0}).map(B=>this.looseRoutesById[B.routeId]);if(Object.keys(j).length>0)for(const B of b){const $=B.options.params?.stringify??B.options.stringifyParams;$&&Object.assign(j,$(j))}const N=n.leaveParams?x:cM(R0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let E=p;if(n._includeValidateSearch&&this.options.search?.strict){const B={};b.forEach($=>{if($.options.validateSearch)try{Object.assign(B,b_($.options.validateSearch,{...B,...E}))}catch{}}),E=B}E=uY({search:E,dest:s,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=_a(p,E);const O=this.options.stringifySearch(E),A=s.hash===!0?l.hash:s.hash?el(s.hash,l.hash):void 0,C=A?`#${A}`:"";let k=s.state===!0?l.state:s.state?el(s.state,l.state):{};k=_a(l.state,k);const T=`${N}${O}${C}`,M=new URL(T,this.origin),R=f5(this.rewrite,M);return{publicHref:R.pathname+R.search+R.hash,href:T,url:R.href,pathname:N,search:E,searchStr:O,state:k,hash:A??"",unmaskOnReload:s.unmaskOnReload}},a=(s={},l)=>{const u=r(s);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=y_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const s=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=tl(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=Zs(this.latestLocation.href)===Zs(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=tu(()=>{u?.resolve()}),l&&s())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:s,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=gv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:s,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...s})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...s}).url),s.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...s,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(av(a(this.latestLocation.href))!==av(a(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),r5({href:s})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(s=>s.id===a.id))}))},this.load=async n=>{let r,a,s;for(s=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...nl({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...nl({resolvedLocation:f,location:d})}),await mM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];Sf(()=>{this.__store.setState(x=>{const j=x.matches,w=x.pendingMatches||x.matches;return m=j.filter(b=>!w.some(N=>N.id===b.id)),p=w.filter(b=>!j.some(N=>N.id===b.id)),g=w.filter(b=>j.some(N=>N.id===b.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(b=>b.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(w=>{this.looseRoutesById[w.routeId].options[j]?.(w)})})})})}})}catch(d){ci(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wa(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const s=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(nl({resolvedLocation:l,location:s})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(s=>s.id===n)?"pendingMatches":this.state.matches.some(s=>s.id===n)?"matches":this.state.cachedMatches.some(s=>s.id===n)?"cachedMatches":"";a&&this.__store.setState(s=>({...s,[a]:s[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(s=>!r(s))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const s=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:n})},this.loadRouteChunk=l5,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...s,...this.state.cachedMatches.map(u=>u.id)]);Sf(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await mM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{s.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(ci(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Wa(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},s=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=y_(u.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!d||n.params&&!tl(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?tl(u.search,s.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??KG,parseSearch:t.parseSearch??YG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:s}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&s["**"]:Zs(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return ea}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,w]=(()=>{const H=g?.search??t.search,V=g?._strictSearch??void 0;try{const q=b_(m.options.validateSearch,{...H})??void 0;return[{...H,...q},{...V,...q},void 0]}catch(q){let G=q;if(q instanceof jv||(G=new jv(q.message,{cause:q})),n?.throwOnError)throw G;return[H,{},G]}})(),b=m.options.loaderDeps?.({search:x})??"",N=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:O}=R0({path:m.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),A=m.id+E+N,C=this.getMatch(A),k=this.state.matches.find(H=>H.routeId===m.id),T=C?._strictParams??O;let M;if(!C){const H=m.options.params?.parse??m.options.parseParams;if(H)try{Object.assign(T,H(T))}catch(V){if(M=new oY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(s,T);const R=k?"stay":"enter";let B;if(C)B={...C,cause:R,params:k?_a(k.params,s):s,_strictParams:T,search:_a(k?k.search:C.search,x),_strictSearch:j};else{const H=m.options.loader||m.options.beforeLoad||m.lazyFn||c5(m)?"pending":"success";B={id:A,index:p,routeId:m.id,params:k?_a(k.params,s):s,_strictParams:T,pathname:E,updatedAt:Date.now(),search:k?_a(k.search,x):x,_strictSearch:j,searchError:void 0,status:H,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:tu()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:R,loaderDeps:k?_a(k.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(B.globalNotFound=u===m.id),B.searchError=w;const $=f(g);B.context={...$,...B.__routeContext,...B.__beforeLoadContext},d.push(B)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],w=f(j);if(g.options.context){const b={deps:m.loaderDeps,params:m.params,context:w??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(b)??void 0}m.context={...w,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class jv extends Error{}class oY extends Error{}function lY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function b_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new jv("Async validation not supported");if(n.issues)throw new jv(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function cY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:s,parseCache:l}){let u={};const d=Zs(e),f=x=>y_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of s){const w=f(j);if(w)if(j.path!=="/"&&w["**"])x||(x={foundRoute:j,routeParams:w});else{m=j,u=w;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[ea];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function uY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((w,b)=>b(w),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((w,b)=>b(w),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...b_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],s=({search:u})=>t.search?t.search===!0?u:el(t.search,u):{};a.push(s);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const dY="Error preloading route! ☝️";class h5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=ea:this.parentRoute||pr(!1);let s=a?ea:r?.path;s&&s!=="/"&&(s=TC(s));const l=r?.id||s;let u=a?ea:ts([this.parentRoute.id===ea?"":this.parentRoute.id,l]);s===ea&&(s="/"),u!==ea&&(u=ts(["/",u]));const d=u===ea?"/":ts([this.parentRoute.fullPath,s]);this._path=s,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class fY extends h5{constructor(t){super(t)}}function kC(e){const t=e.errorComponent??qg;return i.jsx(hY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class hY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function qg({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function mY({children:e,fallback:t=null}){return pY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function pY(){return W.useSyncExternalStore(vY,()=>!0,()=>!1)}function vY(){return()=>{}}var $0={exports:{}},I0={},L0={exports:{}},B0={};var pM;function gY(){if(pM)return B0;pM=1;var e=Eh();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),w=j[0].inst,b=j[1];return s(function(){w.value=x,w.getSnapshot=g,d(w)&&b({inst:w})},[p,x,g]),a(function(){return d(w)&&b({inst:w}),p(function(){d(w)&&b({inst:w})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return B0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,B0}var vM;function yY(){return vM||(vM=1,L0.exports=gY()),L0.exports}var gM;function xY(){if(gM)return I0;gM=1;var e=Eh(),t=yY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return I0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=s(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=u(function(){function N(k){if(!E){if(E=!0,O=k,k=g(k),x!==void 0&&w.hasValue){var T=w.value;if(x(T,k))return A=T}return A=k}if(T=A,r(O,k))return T;var M=g(k);return x!==void 0&&x(T,M)?(O=k,T):(O=k,A=M)}var E=!1,O,A,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var b=a(f,j[0],j[1]);return l(function(){w.hasValue=!0,w.value=b},[b]),d(b),b},I0}var yM;function bY(){return yM||(yM=1,$0.exports=xY()),$0.exports}var wY=bY();function jY(e,t=r=>r,n={}){const r=n.equal??SY;return wY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function SY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=xM(e);if(n.length!==xM(t).length)return!1;for(let r=0;r"u"?z0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=z0,z0)}function zr(e){const t=y.useContext(m5());return e?.warn,t}function Nr(e){const t=zr({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return jY(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const s=_a(r.current,e.select(a));return r.current=s,s}return e.select(a)}return a})}const Fg=y.createContext(void 0),_Y=y.createContext(void 0);function yi(e){const t=y.useContext(e.from?_Y:Fg);return Nr({select:r=>{const a=r.matches.find(s=>e.from?e.from===s.routeId:s.id===t);if(pr(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function MC(e){return yi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function PC(e){const{select:t,...n}=e;return yi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function RC(e){return yi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function DC(e){return yi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function la(e){const t=zr();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var Sl=JL();const NY=At(Sl),Ap=typeof window<"u"?y.useLayoutEffect:y.useEffect;function q0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function CY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([s])=>{t(s)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function OY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function EY(e,t){const n=zr(),[r,a]=y.useState(!1),s=y.useRef(!1),l=OY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:w,resetScroll:b,viewTransition:N,children:E,target:O,disabled:A,style:C,className:k,onClick:T,onFocus:M,onMouseEnter:R,onMouseLeave:B,onTouchStart:$,ignoreBlocker:H,params:V,search:q,hash:G,state:L,mask:D,reloadDocument:U,unsafeRelative:K,from:J,_fromLocation:I,...z}=e,Y=Nr({select:le=>le.location.search,structuralSharing:!0}),te=e.from,ae=y.useMemo(()=>({...e,from:te}),[n,Y,te,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ge=y.useMemo(()=>n.buildLocation({...ae}),[n,ae]),ee=y.useMemo(()=>{if(A)return;let le=ge.maskedLocation?ge.maskedLocation.url:ge.url,ue=!1;return n.origin&&(le.startsWith(n.origin)?le=n.history.createHref(le.replace(n.origin,""))||"/":ue=!0),{href:le,external:ue}},[A,ge.maskedLocation,ge.url,n.origin,n.history]),Se=y.useMemo(()=>{if(ee?.external)return ee.href;try{return new URL(m),m}catch{}},[m,ee]),re=e.reloadDocument||Se?!1:p??n.options.defaultPreload,we=g??n.options.defaultPreloadDelay??0,je=Nr({select:le=>{if(Se)return!1;if(f?.exact){if(!gG(le.location.pathname,ge.pathname,n.basepath))return!1}else{const ue=xv(le.location.pathname,n.basepath),Ve=xv(ge.pathname,n.basepath);if(!(ue.startsWith(Ve)&&(ue.length===Ve.length||ue[Ve.length]==="/")))return!1}return(f?.includeSearch??!0)&&!tl(le.location.search,ge.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?le.location.hash===ge.hash:!0}}),fe=y.useCallback(()=>{n.preloadRoute({...ae}).catch(le=>{console.warn(le),console.warn(dY)})},[n,ae]),Le=y.useCallback(le=>{le?.isIntersecting&&fe()},[fe]);CY(l,Le,PY,{disabled:!!A||re!=="viewport"}),y.useEffect(()=>{s.current||!A&&re==="render"&&(fe(),s.current=!0)},[A,fe,re]);const Oe=le=>{const ue=le.currentTarget.getAttribute("target"),Ve=O!==void 0?O:ue;if(!A&&!RY(le)&&!le.defaultPrevented&&(!Ve||Ve==="_self")&&le.button===0){le.preventDefault(),Sl.flushSync(()=>{a(!0)});const Mn=n.subscribe("onResolved",()=>{Mn(),a(!1)});n.navigate({...ae,replace:j,resetScroll:b,hashScrollIntoView:x,startTransition:w,viewTransition:N,ignoreBlocker:H})}};if(Se)return{...z,ref:l,href:Se,...E&&{children:E},...O&&{target:O},...A&&{disabled:A},...C&&{style:C},...k&&{className:k},...T&&{onClick:T},...M&&{onFocus:M},...R&&{onMouseEnter:R},...B&&{onMouseLeave:B},...$&&{onTouchStart:$}};const We=le=>{A||re&&fe()},be=We,Ae=le=>{if(!(A||!re))if(!we)fe();else{const ue=le.target;if(Zd.has(ue))return;const Ve=setTimeout(()=>{Zd.delete(ue),fe()},we);Zd.set(ue,Ve)}},ke=le=>{if(A||!re||!we)return;const ue=le.target,Ve=Zd.get(ue);Ve&&(clearTimeout(Ve),Zd.delete(ue))},Qt=je?el(u,{})??AY:F0,St=je?F0:el(d,{})??F0,Tt=[k,Qt.className,St.className].filter(Boolean).join(" "),Sn=(C||Qt.style||St.style)&&{...C,...Qt.style,...St.style};return{...z,...Qt,...St,href:ee?.href,ref:l,onClick:Qd([T,Oe]),onFocus:Qd([M,We]),onMouseEnter:Qd([R,Ae]),onMouseLeave:Qd([B,ke]),onTouchStart:Qd([$,be]),disabled:!!A,target:O,...Sn&&{style:Sn},...Tt&&{className:Tt},...A&&TY,...je&&kY,...r&&MY}}const F0={},AY={className:"active"},TY={role:"link","aria-disabled":!0},kY={"data-status":"active","aria-current":"page"},MY={"data-transitioning":"transitioning"},Zd=new WeakMap,PY={rootMargin:"100px"},Qd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},$C=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:s,...l}=EY(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:s},u)});function RY(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class DY extends h5{constructor(t){super(t),this.useMatch=n=>yi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>RC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>PC({...n,from:this.id}),this.useLoaderData=n=>MC({...n,from:this.id}),this.useNavigate=()=>la({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx($C,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function or(e){return new DY(e)}class $Y extends fY{constructor(t){super(t),this.useMatch=n=>yi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>RC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>PC({...n,from:this.id}),this.useLoaderData=n=>MC({...n,from:this.id}),this.useNavigate=()=>la({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx($C,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function IY(e){return new $Y(e)}function bM(e){return typeof e=="object"?new wM(e,{silent:!0}).createRoute(e):new wM(e,{silent:!0}).createRoute}class wM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=or(r);return a.isRoot=!1,a},this.silent=n?.silent}}class jM{constructor(t){this.useMatch=n=>yi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>RC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>PC({...n,from:this.options.id}),this.useLoaderData=n=>MC({...n,from:this.options.id}),this.useNavigate=()=>{const n=zr();return la({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function SM(e){return typeof e=="object"?new jM(e):t=>new jM({id:e,...t})}function LY(){const e=zr(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:s}=Nr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=q0(s),u=s||n||a,d=q0(u),f=s||a,m=q0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Zs(e.latestLocation.href)!==Zs(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),Ap(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),Ap(()=>{l&&!s&&e.emit({type:"onLoad",...nl(e.state)})},[l,e,s]),Ap(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...nl(e.state)})},[f,m,e]),Ap(()=>{d&&!u&&(e.emit({type:"onResolved",...nl(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),WG(e))},[u,d,e]),null}function BY(e){const t=Nr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(kC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Wa(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Wa(n))return e.fallback?.(n);throw n},children:e.children})}function zY(){return i.jsx("p",{children:"Not Found"})}function Rc(e){return i.jsx(i.Fragment,{children:e.children})}function p5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx(zY,{})}function qY({children:e}){const t=zr();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function FY(){const e=zr();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||x_)(e.latestLocation),r=n!==x_(e.latestLocation)?n:void 0,a={storageKey:bv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(qY,{children:`(${n5.toString()})(${JSON.stringify(a)})`})}const v5=y.memo(function({matchId:t}){const n=zr(),r=Nr({select:N=>{const E=N.matches.find(O=>O.id===t);return pr(E),{routeId:E.routeId,ssr:E.ssr,_displayPending:E._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],s=a.options.pendingComponent??n.options.defaultPendingComponent,l=s?i.jsx(s,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??s??(a.options.errorComponent?.preload||m))?y.Suspense:Rc,g=u?kC:Rc,x=f?BY:Rc,j=Nr({select:N=>N.loadedAt}),w=Nr({select:N=>{const E=N.matches.findIndex(O=>O.id===t);return N.matches[E-1]?.routeId}}),b=a.isRoot?a.options.shellComponent??Rc:Rc;return i.jsxs(b,{children:[i.jsx(Fg.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||qg,onCatch:(N,E)=>{if(Wa(N))throw N;d?.(N,E)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(mY,{fallback:l,children:i.jsx(_M,{matchId:t})}):i.jsx(_M,{matchId:t})})})})}),w===ea&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx(UY,{}),i.jsx(FY,{})]}):null]})});function UY(){const e=zr(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...nl(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const _M=y.memo(function({matchId:t}){const n=zr(),{match:r,key:a,routeId:s}=Nr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[s],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(IC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=tu();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return pr(Wa(r.error)),p5(n,l,r.error);if(r.status==="redirected")throw pr(ci(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||qg;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),IC=y.memo(function(){const t=zr(),n=y.useContext(Fg),r=Nr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],s=Nr({select:f=>{const p=f.matches.find(g=>g.id===n);return pr(p),p.globalNotFound}}),l=Nr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(s)return p5(t,a,void 0);if(!l)return null;const d=i.jsx(v5,{matchId:l});return r===ea?i.jsx(y.Suspense,{fallback:u,children:d}):d});function HY(){const e=zr(),n=e.routesById[ea].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?Rc:y.Suspense,s=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(LY,{}),i.jsx(WY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:s}):s}function WY(){const e=zr(),t=Nr({select:a=>a.matches[0]?.id}),n=Nr({select:a=>a.loadedAt}),r=t?i.jsx(v5,{matchId:t}):null;return i.jsx(Fg.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(kC,{getResetKey:()=>n,errorComponent:qg,onCatch:a=>{a.message||a.toString()},children:r})})}function VY(){const e=zr();return Nr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s})},[e])}const GY=e=>new YY(e);class YY extends sY{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=bM,globalThis.createLazyFileRoute=SM):typeof window<"u"&&(window.createFileRoute=bM,window.createLazyFileRoute=SM);function KY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=m5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function XY({router:e,...t}){return i.jsx(KY,{router:e,...t,children:i.jsx(HY,{})})}function g5(e,t){return function(){return e.apply(t,arguments)}}const{toString:ZY}=Object.prototype,{getPrototypeOf:LC}=Object,{iterator:Ug,toStringTag:y5}=Symbol,Hg=(e=>t=>{const n=ZY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ka=e=>(e=e.toLowerCase(),t=>Hg(t)===e),Wg=e=>t=>typeof t===e,{isArray:Lu}=Array,iu=Wg("undefined");function Ah(e){return e!==null&&!iu(e)&&e.constructor!==null&&!iu(e.constructor)&&Dr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const x5=Ka("ArrayBuffer");function QY(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&x5(e.buffer),t}const JY=Wg("string"),Dr=Wg("function"),b5=Wg("number"),Th=e=>e!==null&&typeof e=="object",eK=e=>e===!0||e===!1,sv=e=>{if(Hg(e)!=="object")return!1;const t=LC(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(y5 in e)&&!(Ug in e)},tK=e=>{if(!Th(e)||Ah(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},nK=Ka("Date"),rK=Ka("File"),aK=Ka("Blob"),iK=Ka("FileList"),sK=e=>Th(e)&&Dr(e.pipe),oK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Dr(e.append)&&((t=Hg(e))==="formdata"||t==="object"&&Dr(e.toString)&&e.toString()==="[object FormData]"))},lK=Ka("URLSearchParams"),[cK,uK,dK,fK]=["ReadableStream","Request","Response","Headers"].map(Ka),hK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function kh(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),Lu(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Yo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,j5=e=>!iu(e)&&e!==Yo;function w_(){const{caseless:e,skipUndefined:t}=j5(this)&&this||{},n={},r=(a,s)=>{const l=e&&w5(n,s)||s;sv(n[l])&&sv(a)?n[l]=w_(n[l],a):sv(a)?n[l]=w_({},a):Lu(a)?n[l]=a.slice():(!t||!iu(a))&&(n[l]=a)};for(let a=0,s=arguments.length;a(kh(t,(a,s)=>{n&&Dr(a)?e[s]=g5(a,n):e[s]=a},{allOwnKeys:r}),e),pK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),vK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},gK=(e,t,n,r)=>{let a,s,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),s=a.length;s-- >0;)l=a[s],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&LC(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},yK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},xK=e=>{if(!e)return null;if(Lu(e))return e;let t=e.length;if(!b5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},bK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&LC(Uint8Array)),wK=(e,t)=>{const r=(e&&e[Ug]).call(e);let a;for(;(a=r.next())&&!a.done;){const s=a.value;t.call(e,s[0],s[1])}},jK=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},SK=Ka("HTMLFormElement"),_K=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),NM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),NK=Ka("RegExp"),S5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};kh(n,(a,s)=>{let l;(l=t(a,s,e))!==!1&&(r[s]=l||a)}),Object.defineProperties(e,r)},CK=e=>{S5(e,(t,n)=>{if(Dr(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Dr(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},OK=(e,t)=>{const n={},r=a=>{a.forEach(s=>{n[s]=!0})};return Lu(e)?r(e):r(String(e).split(t)),n},EK=()=>{},AK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function TK(e){return!!(e&&Dr(e.append)&&e[y5]==="FormData"&&e[Ug])}const kK=e=>{const t=new Array(10),n=(r,a)=>{if(Th(r)){if(t.indexOf(r)>=0)return;if(Ah(r))return r;if(!("toJSON"in r)){t[a]=r;const s=Lu(r)?[]:{};return kh(r,(l,u)=>{const d=n(l,a+1);!iu(d)&&(s[u]=d)}),t[a]=void 0,s}}return r};return n(e,0)},MK=Ka("AsyncFunction"),PK=e=>e&&(Th(e)||Dr(e))&&Dr(e.then)&&Dr(e.catch),_5=((e,t)=>e?setImmediate:t?((n,r)=>(Yo.addEventListener("message",({source:a,data:s})=>{a===Yo&&s===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Yo.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Dr(Yo.postMessage)),RK=typeof queueMicrotask<"u"?queueMicrotask.bind(Yo):typeof process<"u"&&process.nextTick||_5,DK=e=>e!=null&&Dr(e[Ug]),he={isArray:Lu,isArrayBuffer:x5,isBuffer:Ah,isFormData:oK,isArrayBufferView:QY,isString:JY,isNumber:b5,isBoolean:eK,isObject:Th,isPlainObject:sv,isEmptyObject:tK,isReadableStream:cK,isRequest:uK,isResponse:dK,isHeaders:fK,isUndefined:iu,isDate:nK,isFile:rK,isBlob:aK,isRegExp:NK,isFunction:Dr,isStream:sK,isURLSearchParams:lK,isTypedArray:bK,isFileList:iK,forEach:kh,merge:w_,extend:mK,trim:hK,stripBOM:pK,inherits:vK,toFlatObject:gK,kindOf:Hg,kindOfTest:Ka,endsWith:yK,toArray:xK,forEachEntry:wK,matchAll:jK,isHTMLForm:SK,hasOwnProperty:NM,hasOwnProp:NM,reduceDescriptors:S5,freezeMethods:CK,toObjectSet:OK,toCamelCase:_K,noop:EK,toFiniteNumber:AK,findKey:w5,global:Yo,isContextDefined:j5,isSpecCompliantForm:TK,toJSONObject:kK,isAsyncFn:MK,isThenable:PK,setImmediate:_5,asap:RK,isIterable:DK};function tt(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}he.inherits(tt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:he.toJSONObject(this.config),code:this.code,status:this.status}}});const N5=tt.prototype,C5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{C5[e]={value:e}});Object.defineProperties(tt,C5);Object.defineProperty(N5,"isAxiosError",{value:!0});tt.from=(e,t,n,r,a,s)=>{const l=Object.create(N5);he.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return tt.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",s&&Object.assign(l,s),l};const $K=null;function j_(e){return he.isPlainObject(e)||he.isArray(e)}function O5(e){return he.endsWith(e,"[]")?e.slice(0,-2):e}function CM(e,t,n){return e?e.concat(t).map(function(a,s){return a=O5(a),!n&&s?"["+a+"]":a}).join(n?".":""):t}function IK(e){return he.isArray(e)&&!e.some(j_)}const LK=he.toFlatObject(he,{},null,function(t){return/^is[A-Z]/.test(t)});function Vg(e,t,n){if(!he.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=he.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,b){return!he.isUndefined(b[w])});const r=n.metaTokens,a=n.visitor||m,s=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&he.isSpecCompliantForm(t);if(!he.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(he.isDate(j))return j.toISOString();if(he.isBoolean(j))return j.toString();if(!d&&he.isBlob(j))throw new tt("Blob is not supported. Use a Buffer instead.");return he.isArrayBuffer(j)||he.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,w,b){let N=j;if(j&&!b&&typeof j=="object"){if(he.endsWith(w,"{}"))w=r?w:w.slice(0,-2),j=JSON.stringify(j);else if(he.isArray(j)&&IK(j)||(he.isFileList(j)||he.endsWith(w,"[]"))&&(N=he.toArray(j)))return w=O5(w),N.forEach(function(O,A){!(he.isUndefined(O)||O===null)&&t.append(l===!0?CM([w],A,s):l===null?w:w+"[]",f(O))}),!1}return j_(j)?!0:(t.append(CM(b,w,s),f(j)),!1)}const p=[],g=Object.assign(LK,{defaultVisitor:m,convertValue:f,isVisitable:j_});function x(j,w){if(!he.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+w.join("."));p.push(j),he.forEach(j,function(N,E){(!(he.isUndefined(N)||N===null)&&a.call(t,N,he.isString(E)?E.trim():E,w,g))===!0&&x(N,w?w.concat(E):[E])}),p.pop()}}if(!he.isObject(e))throw new TypeError("data must be an object");return x(e),t}function OM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function BC(e,t){this._pairs=[],e&&Vg(e,this,t)}const E5=BC.prototype;E5.append=function(t,n){this._pairs.push([t,n])};E5.toString=function(t){const n=t?function(r){return t.call(this,r,OM)}:OM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function BK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function A5(e,t,n){if(!t)return e;const r=n&&n.encode||BK;he.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let s;if(a?s=a(t,n):s=he.isURLSearchParams(t)?t.toString():new BC(t,n).toString(r),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class EM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){he.forEach(this.handlers,function(r){r!==null&&t(r)})}}const T5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},zK=typeof URLSearchParams<"u"?URLSearchParams:BC,qK=typeof FormData<"u"?FormData:null,FK=typeof Blob<"u"?Blob:null,UK={isBrowser:!0,classes:{URLSearchParams:zK,FormData:qK,Blob:FK},protocols:["http","https","file","blob","url","data"]},zC=typeof window<"u"&&typeof document<"u",S_=typeof navigator=="object"&&navigator||void 0,HK=zC&&(!S_||["ReactNative","NativeScript","NS"].indexOf(S_.product)<0),WK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",VK=zC&&window.location.href||"http://localhost",GK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:zC,hasStandardBrowserEnv:HK,hasStandardBrowserWebWorkerEnv:WK,navigator:S_,origin:VK},Symbol.toStringTag,{value:"Module"})),hr={...GK,...UK};function YK(e,t){return Vg(e,new hr.classes.URLSearchParams,{visitor:function(n,r,a,s){return hr.isNode&&he.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function KK(e){return he.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function XK(e){const t={},n=Object.keys(e);let r;const a=n.length;let s;for(r=0;r=n.length;return l=!l&&he.isArray(a)?a.length:l,d?(he.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!he.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],s)&&he.isArray(a[l])&&(a[l]=XK(a[l])),!u)}if(he.isFormData(e)&&he.isFunction(e.entries)){const n={};return he.forEachEntry(e,(r,a)=>{t(KK(r),a,n,0)}),n}return null}function ZK(e,t,n){if(he.isString(e))try{return(t||JSON.parse)(e),he.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Mh={transitional:T5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,s=he.isObject(t);if(s&&he.isHTMLForm(t)&&(t=new FormData(t)),he.isFormData(t))return a?JSON.stringify(k5(t)):t;if(he.isArrayBuffer(t)||he.isBuffer(t)||he.isStream(t)||he.isFile(t)||he.isBlob(t)||he.isReadableStream(t))return t;if(he.isArrayBufferView(t))return t.buffer;if(he.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return YK(t,this.formSerializer).toString();if((u=he.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Vg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||a?(n.setContentType("application/json",!1),ZK(t)):t}],transformResponse:[function(t){const n=this.transitional||Mh.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(he.isResponse(t)||he.isReadableStream(t))return t;if(t&&he.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?tt.from(u,tt.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:hr.classes.FormData,Blob:hr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};he.forEach(["delete","get","head","post","put","patch"],e=>{Mh.headers[e]={}});const QK=he.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),JK=e=>{const t={};let n,r,a;return e&&e.split(` -`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&QK[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},AM=Symbol("internals");function Jd(e){return e&&String(e).trim().toLowerCase()}function ov(e){return e===!1||e==null?e:he.isArray(e)?e.map(ov):String(e)}function eX(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const tX=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function U0(e,t,n,r,a){if(he.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!he.isString(t)){if(he.isString(r))return t.indexOf(r)!==-1;if(he.isRegExp(r))return r.test(t)}}function nX(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function rX(e,t){const n=he.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,s,l){return this[r].call(this,t,a,s,l)},configurable:!0})})}let $r=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function s(u,d,f){const m=Jd(d);if(!m)throw new Error("header name must be a non-empty string");const p=he.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=ov(u))}const l=(u,d)=>he.forEach(u,(f,m)=>s(f,m,d));if(he.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(he.isString(t)&&(t=t.trim())&&!tX(t))l(JK(t),n);else if(he.isObject(t)&&he.isIterable(t)){let u={},d,f;for(const m of t){if(!he.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?he.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=Jd(t),t){const r=he.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return eX(a);if(he.isFunction(n))return n.call(this,a,r);if(he.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Jd(t),t){const r=he.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||U0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function s(l){if(l=Jd(l),l){const u=he.findKey(r,l);u&&(!n||U0(r,r[u],u,n))&&(delete r[u],a=!0)}}return he.isArray(t)?t.forEach(s):s(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const s=n[r];(!t||U0(this,this[s],s,t,!0))&&(delete this[s],a=!0)}return a}normalize(t){const n=this,r={};return he.forEach(this,(a,s)=>{const l=he.findKey(r,s);if(l){n[l]=ov(a),delete n[s];return}const u=t?nX(s):String(s).trim();u!==s&&delete n[s],n[u]=ov(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return he.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&he.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[AM]=this[AM]={accessors:{}}).accessors,a=this.prototype;function s(l){const u=Jd(l);r[u]||(rX(a,l),r[u]=!0)}return he.isArray(t)?t.forEach(s):s(t),this}};$r.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);he.reduceDescriptors($r.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});he.freezeMethods($r);function H0(e,t){const n=this||Mh,r=t||n,a=$r.from(r.headers);let s=r.data;return he.forEach(e,function(u){s=u.call(n,s,a.normalize(),t?t.status:void 0)}),a.normalize(),s}function M5(e){return!!(e&&e.__CANCEL__)}function Bu(e,t,n){tt.call(this,e??"canceled",tt.ERR_CANCELED,t,n),this.name="CanceledError"}he.inherits(Bu,tt,{__CANCEL__:!0});function P5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new tt("Request failed with status code "+n.status,[tt.ERR_BAD_REQUEST,tt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function aX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function iX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[s];l||(l=f),n[a]=d,r[a]=f;let p=s,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===s&&(s=(s+1)%e),f-l{n=m,a=null,s&&(clearTimeout(s),s=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,s||(s=setTimeout(()=>{s=null,l(a)},r-p)))},()=>a&&l(a)]}const Sv=(e,t,n=3)=>{let r=0;const a=iX(50,250);return sX(s=>{const l=s.loaded,u=s.lengthComputable?s.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:s,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},TM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},kM=e=>(...t)=>he.asap(()=>e(...t)),oX=hr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,hr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(hr.origin),hr.navigator&&/(msie|trident)/i.test(hr.navigator.userAgent)):()=>!0,lX=hr.hasStandardBrowserEnv?{write(e,t,n,r,a,s,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];he.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),he.isString(r)&&u.push(`path=${r}`),he.isString(a)&&u.push(`domain=${a}`),s===!0&&u.push("secure"),he.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function cX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function uX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function R5(e,t,n){let r=!cX(t);return e&&(r||n==!1)?uX(e,t):t}const MM=e=>e instanceof $r?{...e}:e;function ul(e,t){t=t||{};const n={};function r(f,m,p,g){return he.isPlainObject(f)&&he.isPlainObject(m)?he.merge.call({caseless:g},f,m):he.isPlainObject(m)?he.merge({},m):he.isArray(m)?m.slice():m}function a(f,m,p,g){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function s(f,m){if(!he.isUndefined(m))return r(void 0,m)}function l(f,m){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(MM(f),MM(m),p,!0)};return he.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);he.isUndefined(g)&&p!==u||(n[m]=g)}),n}const D5=e=>{const t=ul({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:s,headers:l,auth:u}=t;if(t.headers=l=$r.from(l),t.url=A5(R5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),he.isFormData(n)){if(hr.hasStandardBrowserEnv||hr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(he.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(hr.hasStandardBrowserEnv&&(r&&he.isFunction(r)&&(r=r(t)),r||r!==!1&&oX(t.url))){const d=a&&s&&lX.read(s);d&&l.set(a,d)}return t},dX=typeof XMLHttpRequest<"u",fX=dX&&function(e){return new Promise(function(n,r){const a=D5(e);let s=a.data;const l=$r.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function w(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function N(){if(!b)return;const O=$r.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:O,config:e,request:b};P5(function(T){n(T),w()},function(T){r(T),w()},C),b=null}"onloadend"in b?b.onloadend=N:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(N)},b.onabort=function(){b&&(r(new tt("Request aborted",tt.ECONNABORTED,e,b)),b=null)},b.onerror=function(A){const C=A&&A.message?A.message:"Network Error",k=new tt(C,tt.ERR_NETWORK,e,b);k.event=A||null,r(k),b=null},b.ontimeout=function(){let A=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||T5;a.timeoutErrorMessage&&(A=a.timeoutErrorMessage),r(new tt(A,C.clarifyTimeoutError?tt.ETIMEDOUT:tt.ECONNABORTED,e,b)),b=null},s===void 0&&l.setContentType(null),"setRequestHeader"in b&&he.forEach(l.toJSON(),function(A,C){b.setRequestHeader(C,A)}),he.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),u&&u!=="json"&&(b.responseType=a.responseType),f&&([g,j]=Sv(f,!0),b.addEventListener("progress",g)),d&&b.upload&&([p,x]=Sv(d),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=O=>{b&&(r(!O||O.type?new Bu(null,e,b):O),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const E=aX(a.url);if(E&&hr.protocols.indexOf(E)===-1){r(new tt("Unsupported protocol "+E+":",tt.ERR_BAD_REQUEST,e));return}b.send(s||null)})},hX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const s=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof tt?m:new Bu(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,s(new tt(`timeout ${t} of ms exceeded`,tt.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>he.asap(u),d}},mX=function*(e,t){let n=e.byteLength;if(n{const a=pX(e,t);let s=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=s+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},RM=64*1024,{isFunction:Tp}=he,gX=(({Request:e,Response:t})=>({Request:e,Response:t}))(he.global),{ReadableStream:DM,TextEncoder:$M}=he.global,IM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},yX=e=>{e=he.merge.call({skipUndefined:!0},gX,e);const{fetch:t,Request:n,Response:r}=e,a=t?Tp(t):typeof fetch=="function",s=Tp(n),l=Tp(r);if(!a)return!1;const u=a&&Tp(DM),d=a&&(typeof $M=="function"?(j=>w=>j.encode(w))(new $M):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=s&&u&&IM(()=>{let j=!1;const w=new n(hr.origin,{body:new DM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!w}),m=l&&u&&IM(()=>he.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(w,b)=>{let N=w&&w[j];if(N)return N.call(w);throw new tt(`Response type '${j}' is not supported`,tt.ERR_NOT_SUPPORT,b)})});const g=async j=>{if(j==null)return 0;if(he.isBlob(j))return j.size;if(he.isSpecCompliantForm(j))return(await new n(hr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(he.isArrayBufferView(j)||he.isArrayBuffer(j))return j.byteLength;if(he.isURLSearchParams(j)&&(j=j+""),he.isString(j))return(await d(j)).byteLength},x=async(j,w)=>{const b=he.toFiniteNumber(j.getContentLength());return b??g(w)};return async j=>{let{url:w,method:b,data:N,signal:E,cancelToken:O,timeout:A,onDownloadProgress:C,onUploadProgress:k,responseType:T,headers:M,withCredentials:R="same-origin",fetchOptions:B}=D5(j),$=t||fetch;T=T?(T+"").toLowerCase():"text";let H=hX([E,O&&O.toAbortSignal()],A),V=null;const q=H&&H.unsubscribe&&(()=>{H.unsubscribe()});let G;try{if(k&&f&&b!=="get"&&b!=="head"&&(G=await x(M,N))!==0){let I=new n(w,{method:"POST",body:N,duplex:"half"}),z;if(he.isFormData(N)&&(z=I.headers.get("content-type"))&&M.setContentType(z),I.body){const[Y,te]=TM(G,Sv(kM(k)));N=PM(I.body,RM,Y,te)}}he.isString(R)||(R=R?"include":"omit");const L=s&&"credentials"in n.prototype,D={...B,signal:H,method:b.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:L?R:void 0};V=s&&new n(w,D);let U=await(s?$(V,B):$(w,D));const K=m&&(T==="stream"||T==="response");if(m&&(C||K&&q)){const I={};["status","statusText","headers"].forEach(ae=>{I[ae]=U[ae]});const z=he.toFiniteNumber(U.headers.get("content-length")),[Y,te]=C&&TM(z,Sv(kM(C),!0))||[];U=new r(PM(U.body,RM,Y,()=>{te&&te(),q&&q()}),I)}T=T||"text";let J=await p[he.findKey(p,T)||"text"](U,j);return!K&&q&&q(),await new Promise((I,z)=>{P5(I,z,{data:J,headers:$r.from(U.headers),status:U.status,statusText:U.statusText,config:j,request:V})})}catch(L){throw q&&q(),L&&L.name==="TypeError"&&/Load failed|fetch/i.test(L.message)?Object.assign(new tt("Network Error",tt.ERR_NETWORK,j,V),{cause:L.cause||L}):tt.from(L,L&&L.code,j,V)}}},xX=new Map,$5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,s=[r,a,n];let l=s.length,u=l,d,f,m=xX;for(;u--;)d=s[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:yX(t)),m=f;return f};$5();const qC={http:$K,xhr:fX,fetch:{get:$5}};he.forEach(qC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const LM=e=>`- ${e}`,bX=e=>he.isFunction(e)||e===null||e===!1;function wX(e,t){e=he.isArray(e)?e:[e];const{length:n}=e;let r,a;const s={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : +`+v.stack}}var Qt=Object.prototype.hasOwnProperty,St=e.unstable_scheduleCallback,Tt=e.unstable_cancelCallback,Sn=e.unstable_shouldYield,le=e.unstable_requestPaint,ue=e.unstable_now,Ve=e.unstable_getCurrentPriorityLevel,Mn=e.unstable_ImmediatePriority,$l=e.unstable_UserBlockingPriority,Il=e.unstable_NormalPriority,fx=e.unstable_LowPriority,fm=e.unstable_IdlePriority,hx=e.log,mx=e.unstable_setDisableYieldValue,bo=null,br=null;function Qa(o){if(typeof hx=="function"&&mx(o),br&&typeof br.setStrictMode=="function")try{br.setStrictMode(bo,o)}catch{}}var lr=Math.clz32?Math.clz32:Gt,px=Math.log,it=Math.LN2;function Gt(o){return o>>>=0,o===0?32:31-(px(o)/it|0)|0}var Ye=256,wt=262144,qn=4194304;function st(o){var c=o&42;if(c!==0)return c;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function Ll(o,c,h){var v=o.pendingLanes;if(v===0)return 0;var S=0,_=o.suspendedLanes,P=o.pingedLanes;o=o.warmLanes;var F=v&134217727;return F!==0?(v=F&~_,v!==0?S=st(v):(P&=F,P!==0?S=st(P):h||(h=F&~o,h!==0&&(S=st(h))))):(F=v&~_,F!==0?S=st(F):P!==0?S=st(P):h||(h=v&~o,h!==0&&(S=st(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function wo(o,c){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&c)===0}function vx(o,c){switch(o){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bl(){var o=qn;return qn<<=1,(qn&62914560)===0&&(qn=4194304),o}function jo(o){for(var c=[],h=0;31>h;h++)c.push(o);return c}function ad(o,c){o.pendingLanes|=c,c!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function LW(o,c,h,v,S,_){var P=o.pendingLanes;o.pendingLanes=h,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=h,o.entangledLanes&=h,o.errorRecoveryDisabledLanes&=h,o.shellSuspendCounter=0;var F=o.entanglements,X=o.expirationTimes,se=o.hiddenUpdates;for(h=P&~h;0"u")return null;try{return o.activeElement||o.body}catch{return o.body}}var HW=/[\n"\\]/g;function da(o){return o.replace(HW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function jx(o,c,h,v,S,_,P,F){o.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?o.type=P:o.removeAttribute("type"),c!=null?P==="number"?(c===0&&o.value===""||o.value!=c)&&(o.value=""+ua(c)):o.value!==""+ua(c)&&(o.value=""+ua(c)):P!=="submit"&&P!=="reset"||o.removeAttribute("value"),c!=null?Sx(o,P,ua(c)):h!=null?Sx(o,P,ua(h)):v!=null&&o.removeAttribute("value"),S==null&&_!=null&&(o.defaultChecked=!!_),S!=null&&(o.checked=S&&typeof S!="function"&&typeof S!="symbol"),F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?o.name=""+ua(F):o.removeAttribute("name")}function uA(o,c,h,v,S,_,P,F){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(o.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){wx(o);return}h=h!=null?""+ua(h):"",c=c!=null?""+ua(c):h,F||c===o.value||(o.value=c),o.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,o.checked=F?o.checked:!!v,o.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(o.name=P),wx(o)}function Sx(o,c,h){c==="number"&&pm(o.ownerDocument)===o||o.defaultValue===""+h||(o.defaultValue=""+h)}function Wl(o,c,h,v){if(o=o.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ex=!1;if(Ai)try{var ld={};Object.defineProperty(ld,"passive",{get:function(){Ex=!0}}),window.addEventListener("test",ld,ld),window.removeEventListener("test",ld,ld)}catch{Ex=!1}var ys=null,Ax=null,gm=null;function gA(){if(gm)return gm;var o,c=Ax,h=c.length,v,S="value"in ys?ys.value:ys.textContent,_=S.length;for(o=0;o=dd),SA=" ",_A=!1;function NA(o,c){switch(o){case"keyup":return y7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function CA(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Kl=!1;function b7(o,c){switch(o){case"compositionend":return CA(c);case"keypress":return c.which!==32?null:(_A=!0,SA);case"textInput":return o=c.data,o===SA&&_A?null:o;default:return null}}function w7(o,c){if(Kl)return o==="compositionend"||!Rx&&NA(o,c)?(o=gA(),gm=Ax=ys=null,Kl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-o};o=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=RA(h)}}function $A(o,c){return o&&c?o===c?!0:o&&o.nodeType===3?!1:c&&c.nodeType===3?$A(o,c.parentNode):"contains"in o?o.contains(c):o.compareDocumentPosition?!!(o.compareDocumentPosition(c)&16):!1:!1}function IA(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var c=pm(o.document);c instanceof o.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)o=c.contentWindow;else break;c=pm(o.document)}return c}function Ix(o){var c=o&&o.nodeName&&o.nodeName.toLowerCase();return c&&(c==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||c==="textarea"||o.contentEditable==="true")}var A7=Ai&&"documentMode"in document&&11>=document.documentMode,Xl=null,Lx=null,pd=null,Bx=!1;function LA(o,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;Bx||Xl==null||Xl!==pm(v)||(v=Xl,"selectionStart"in v&&Ix(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),pd&&md(pd,v)||(pd=v,v=up(Lx,"onSelect"),0>=P,S-=P,Ja=1<<32-lr(c)+S|h<at?(ht=Ie,Ie=null):ht=Ie.sibling;var yt=de(ne,Ie,ie[at],ye);if(yt===null){Ie===null&&(Ie=ht);break}o&&Ie&&yt.alternate===null&&c(ne,Ie),Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt,Ie=ht}if(at===ie.length)return h(ne,Ie),mt&&ki(ne,at),ze;if(Ie===null){for(;atat?(ht=Ie,Ie=null):ht=Ie.sibling;var zs=de(ne,Ie,yt.value,ye);if(zs===null){Ie===null&&(Ie=ht);break}o&&Ie&&zs.alternate===null&&c(ne,Ie),Z=_(zs,Z,at),gt===null?ze=zs:gt.sibling=zs,gt=zs,Ie=ht}if(yt.done)return h(ne,Ie),mt&&ki(ne,at),ze;if(Ie===null){for(;!yt.done;at++,yt=ie.next())yt=xe(ne,yt.value,ye),yt!==null&&(Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt);return mt&&ki(ne,at),ze}for(Ie=v(Ie);!yt.done;at++,yt=ie.next())yt=me(Ie,ne,at,yt.value,ye),yt!==null&&(o&&yt.alternate!==null&&Ie.delete(yt.key===null?at:yt.key),Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt);return o&&Ie.forEach(function(KV){return c(ne,KV)}),mt&&ki(ne,at),ze}function zt(ne,Z,ie,ye){if(typeof ie=="object"&&ie!==null&&ie.type===w&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case x:e:{for(var ze=ie.key;Z!==null;){if(Z.key===ze){if(ze=ie.type,ze===w){if(Z.tag===7){h(ne,Z.sibling),ye=S(Z,ie.props.children),ye.return=ne,ne=ye;break e}}else if(Z.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===M&&Po(ze)===Z.type){h(ne,Z.sibling),ye=S(Z,ie.props),wd(ye,ie),ye.return=ne,ne=ye;break e}h(ne,Z);break}else c(ne,Z);Z=Z.sibling}ie.type===w?(ye=Eo(ie.props.children,ne.mode,ye,ie.key),ye.return=ne,ne=ye):(ye=Om(ie.type,ie.key,ie.props,null,ne.mode,ye),wd(ye,ie),ye.return=ne,ne=ye)}return P(ne);case j:e:{for(ze=ie.key;Z!==null;){if(Z.key===ze)if(Z.tag===4&&Z.stateNode.containerInfo===ie.containerInfo&&Z.stateNode.implementation===ie.implementation){h(ne,Z.sibling),ye=S(Z,ie.children||[]),ye.return=ne,ne=ye;break e}else{h(ne,Z);break}else c(ne,Z);Z=Z.sibling}ye=Vx(ie,ne.mode,ye),ye.return=ne,ne=ye}return P(ne);case M:return ie=Po(ie),zt(ne,Z,ie,ye)}if(G(ie))return Me(ne,Z,ie,ye);if(H(ie)){if(ze=H(ie),typeof ze!="function")throw Error(r(150));return ie=ze.call(ie),Fe(ne,Z,ie,ye)}if(typeof ie.then=="function")return zt(ne,Z,Rm(ie),ye);if(ie.$$typeof===O)return zt(ne,Z,Tm(ne,ie),ye);Dm(ne,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"||typeof ie=="bigint"?(ie=""+ie,Z!==null&&Z.tag===6?(h(ne,Z.sibling),ye=S(Z,ie),ye.return=ne,ne=ye):(h(ne,Z),ye=Wx(ie,ne.mode,ye),ye.return=ne,ne=ye),P(ne)):h(ne,Z)}return function(ne,Z,ie,ye){try{bd=0;var ze=zt(ne,Z,ie,ye);return oc=null,ze}catch(Ie){if(Ie===sc||Ie===Mm)throw Ie;var gt=Hr(29,Ie,null,ne.mode);return gt.lanes=ye,gt.return=ne,gt}finally{}}}var Do=o2(!0),l2=o2(!1),Ss=!1;function ab(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ib(o,c){o=o.updateQueue,c.updateQueue===o&&(c.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function _s(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function Ns(o,c,h){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(jt&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=Cm(o),WA(o,null,h),c}return Nm(o,v,c,h),Cm(o)}function jd(o,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,JE(o,h)}}function sb(o,c){var h=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},o.updateQueue=h;return}o=h.lastBaseUpdate,o===null?h.firstBaseUpdate=c:o.next=c,h.lastBaseUpdate=c}var ob=!1;function Sd(){if(ob){var o=ic;if(o!==null)throw o}}function _d(o,c,h,v){ob=!1;var S=o.updateQueue;Ss=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,F=S.shared.pending;if(F!==null){S.shared.pending=null;var X=F,se=X.next;X.next=null,P===null?_=se:P.next=se,P=X;var pe=o.alternate;pe!==null&&(pe=pe.updateQueue,F=pe.lastBaseUpdate,F!==P&&(F===null?pe.firstBaseUpdate=se:F.next=se,pe.lastBaseUpdate=X))}if(_!==null){var xe=S.baseState;P=0,pe=se=X=null,F=_;do{var de=F.lane&-536870913,me=de!==F.lane;if(me?(ft&de)===de:(v&de)===de){de!==0&&de===ac&&(ob=!0),pe!==null&&(pe=pe.next={lane:0,tag:F.tag,payload:F.payload,callback:null,next:null});e:{var Me=o,Fe=F;de=c;var zt=h;switch(Fe.tag){case 1:if(Me=Fe.payload,typeof Me=="function"){xe=Me.call(zt,xe,de);break e}xe=Me;break e;case 3:Me.flags=Me.flags&-65537|128;case 0:if(Me=Fe.payload,de=typeof Me=="function"?Me.call(zt,xe,de):Me,de==null)break e;xe=p({},xe,de);break e;case 2:Ss=!0}}de=F.callback,de!==null&&(o.flags|=64,me&&(o.flags|=8192),me=S.callbacks,me===null?S.callbacks=[de]:me.push(de))}else me={lane:de,tag:F.tag,payload:F.payload,callback:F.callback,next:null},pe===null?(se=pe=me,X=xe):pe=pe.next=me,P|=de;if(F=F.next,F===null){if(F=S.shared.pending,F===null)break;me=F,F=me.next,me.next=null,S.lastBaseUpdate=me,S.shared.pending=null}}while(!0);pe===null&&(X=xe),S.baseState=X,S.firstBaseUpdate=se,S.lastBaseUpdate=pe,_===null&&(S.shared.lanes=0),Ts|=P,o.lanes=P,o.memoizedState=xe}}function c2(o,c){if(typeof o!="function")throw Error(r(191,o));o.call(c)}function u2(o,c){var h=o.callbacks;if(h!==null)for(o.callbacks=null,o=0;o_?_:8;var P=L.T,F={};L.T=F,Cb(o,!1,c,h);try{var X=S(),se=L.S;if(se!==null&&se(F,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var pe=L7(X,v);Od(o,c,pe,Kr(o))}else Od(o,c,v,Kr(o))}catch(xe){Od(o,c,{then:function(){},status:"rejected",reason:xe},Kr())}finally{D.p=_,P!==null&&F.types!==null&&(P.types=F.types),L.T=P}}function H7(){}function _b(o,c,h,v){if(o.tag!==5)throw Error(r(476));var S=F2(o).queue;q2(o,S,c,U,h===null?H7:function(){return U2(o),h(v)})}function F2(o){var c=o.memoizedState;if(c!==null)return c;c={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:U},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:h},next:null},o.memoizedState=c,o=o.alternate,o!==null&&(o.memoizedState=c),c}function U2(o){var c=F2(o);c.next===null&&(c=o.alternate.memoizedState),Od(o,c.next.queue,{},Kr())}function Nb(){return tr(Hd)}function H2(){return jn().memoizedState}function W2(){return jn().memoizedState}function W7(o){for(var c=o.return;c!==null;){switch(c.tag){case 24:case 3:var h=Kr();o=_s(h);var v=Ns(c,o,h);v!==null&&(Mr(v,c,h),jd(v,c,h)),c={cache:eb()},o.payload=c;return}c=c.return}}function V7(o,c,h){var v=Kr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Wm(o)?G2(c,h):(h=Ux(o,c,h,v),h!==null&&(Mr(h,o,v),Y2(h,c,v)))}function V2(o,c,h){var v=Kr();Od(o,c,h,v)}function Od(o,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(Wm(o))G2(c,S);else{var _=o.alternate;if(o.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,F=_(P,h);if(S.hasEagerState=!0,S.eagerState=F,Ur(F,P))return Nm(o,c,S,0),Ht===null&&_m(),!1}catch{}finally{}if(h=Ux(o,c,S,v),h!==null)return Mr(h,o,v),Y2(h,c,v),!0}return!1}function Cb(o,c,h,v){if(v={lane:2,revertLane:a0(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},Wm(o)){if(c)throw Error(r(479))}else c=Ux(o,h,v,2),c!==null&&Mr(c,o,2)}function Wm(o){var c=o.alternate;return o===et||c!==null&&c===et}function G2(o,c){cc=Lm=!0;var h=o.pending;h===null?c.next=c:(c.next=h.next,h.next=c),o.pending=c}function Y2(o,c,h){if((h&4194048)!==0){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,JE(o,h)}}var Ed={readContext:tr,use:qm,useCallback:gn,useContext:gn,useEffect:gn,useImperativeHandle:gn,useLayoutEffect:gn,useInsertionEffect:gn,useMemo:gn,useReducer:gn,useRef:gn,useState:gn,useDebugValue:gn,useDeferredValue:gn,useTransition:gn,useSyncExternalStore:gn,useId:gn,useHostTransitionStatus:gn,useFormState:gn,useActionState:gn,useOptimistic:gn,useMemoCache:gn,useCacheRefresh:gn};Ed.useEffectEvent=gn;var K2={readContext:tr,use:qm,useCallback:function(o,c){return wr().memoizedState=[o,c===void 0?null:c],o},useContext:tr,useEffect:M2,useImperativeHandle:function(o,c,h){h=h!=null?h.concat([o]):null,Um(4194308,4,$2.bind(null,c,o),h)},useLayoutEffect:function(o,c){return Um(4194308,4,o,c)},useInsertionEffect:function(o,c){Um(4,2,o,c)},useMemo:function(o,c){var h=wr();c=c===void 0?null:c;var v=o();if($o){Qa(!0);try{o()}finally{Qa(!1)}}return h.memoizedState=[v,c],v},useReducer:function(o,c,h){var v=wr();if(h!==void 0){var S=h(c);if($o){Qa(!0);try{h(c)}finally{Qa(!1)}}}else S=c;return v.memoizedState=v.baseState=S,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:S},v.queue=o,o=o.dispatch=V7.bind(null,et,o),[v.memoizedState,o]},useRef:function(o){var c=wr();return o={current:o},c.memoizedState=o},useState:function(o){o=xb(o);var c=o.queue,h=V2.bind(null,et,c);return c.dispatch=h,[o.memoizedState,h]},useDebugValue:jb,useDeferredValue:function(o,c){var h=wr();return Sb(h,o,c)},useTransition:function(){var o=xb(!1);return o=q2.bind(null,et,o.queue,!0,!1),wr().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,c,h){var v=et,S=wr();if(mt){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Ht===null)throw Error(r(349));(ft&127)!==0||v2(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,M2(y2.bind(null,v,_,o),[o]),v.flags|=2048,dc(9,{destroy:void 0},g2.bind(null,v,_,h,c),null),h},useId:function(){var o=wr(),c=Ht.identifierPrefix;if(mt){var h=ei,v=Ja;h=(v&~(1<<32-lr(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=Bm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Jn]=c,_[Cr]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(rr(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&Ii(c)}}return en(c),zb(c,c.type,o===null?null:o.memoizedProps,c.pendingProps,h),null;case 6:if(o&&c.stateNode!=null)o.memoizedProps!==v&&Ii(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(o=ge.current,nc(c)){if(o=c.stateNode,h=c.memoizedProps,v=null,S=er,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}o[Jn]=c,o=!!(o.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||mk(o.nodeValue,h)),o||ws(c,!0)}else o=dp(o).createTextNode(v),o[Jn]=c,c.stateNode=o}return en(c),null;case 31:if(h=c.memoizedState,o===null||o.memoizedState!==null){if(v=nc(c),h!==null){if(o===null){if(!v)throw Error(r(318));if(o=c.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));o[Jn]=c}else Ao(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;en(c),o=!1}else h=Xx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=h),o=!0;if(!o)return c.flags&256?(Vr(c),c):(Vr(c),null);if((c.flags&128)!==0)throw Error(r(558))}return en(c),null;case 13:if(v=c.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(S=nc(c),v!==null&&v.dehydrated!==null){if(o===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Jn]=c}else Ao(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;en(c),S=!1}else S=Xx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Vr(c),c):(Vr(c),null)}return Vr(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,o=o!==null&&o.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==o&&h&&(c.child.flags|=8192),Xm(c,c.updateQueue),en(c),null);case 4:return re(),o===null&&l0(c.stateNode.containerInfo),en(c),null;case 10:return Pi(c.type),en(c),null;case 19:if(z(wn),v=c.memoizedState,v===null)return en(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)Td(v,!1);else{if(yn!==0||o!==null&&(o.flags&128)!==0)for(o=c.child;o!==null;){if(_=Im(o),_!==null){for(c.flags|=128,Td(v,!1),o=_.updateQueue,c.updateQueue=o,Xm(c,o),c.subtreeFlags=0,o=h,h=c.child;h!==null;)VA(h,o),h=h.sibling;return Y(wn,wn.current&1|2),mt&&ki(c,v.treeForkCount),c.child}o=o.sibling}v.tail!==null&&ue()>tp&&(c.flags|=128,S=!0,Td(v,!1),c.lanes=4194304)}else{if(!S)if(o=Im(_),o!==null){if(c.flags|=128,S=!0,o=o.updateQueue,c.updateQueue=o,Xm(c,o),Td(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!mt)return en(c),null}else 2*ue()-v.renderingStartTime>tp&&h!==536870912&&(c.flags|=128,S=!0,Td(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(o=v.last,o!==null?o.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=ue(),o.sibling=null,h=wn.current,Y(wn,S?h&1|2:h&1),mt&&ki(c,v.treeForkCount),o):(en(c),null);case 22:case 23:return Vr(c),cb(),v=c.memoizedState!==null,o!==null?o.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(en(c),c.subtreeFlags&6&&(c.flags|=8192)):en(c),h=c.updateQueue,h!==null&&Xm(c,h.retryQueue),h=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),o!==null&&z(Mo),null;case 24:return h=null,o!==null&&(h=o.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Pi(_n),en(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function Z7(o,c){switch(Yx(c),c.tag){case 1:return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 3:return Pi(_n),re(),o=c.flags,(o&65536)!==0&&(o&128)===0?(c.flags=o&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Vr(c),c.alternate===null)throw Error(r(340));Ao()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 13:if(Vr(c),o=c.memoizedState,o!==null&&o.dehydrated!==null){if(c.alternate===null)throw Error(r(340));Ao()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 19:return z(wn),null;case 4:return re(),null;case 10:return Pi(c.type),null;case 22:case 23:return Vr(c),cb(),o!==null&&z(Mo),o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 24:return Pi(_n),null;case 25:return null;default:return null}}function xT(o,c){switch(Yx(c),c.tag){case 3:Pi(_n),re();break;case 26:case 27:case 5:je(c);break;case 4:re();break;case 31:c.memoizedState!==null&&Vr(c);break;case 13:Vr(c);break;case 19:z(wn);break;case 10:Pi(c.type);break;case 22:case 23:Vr(c),cb(),o!==null&&z(Mo);break;case 24:Pi(_n)}}function kd(o,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&o)===o){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(F){Mt(c,c.return,F)}}function Es(o,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&o)===o){var P=v.inst,F=P.destroy;if(F!==void 0){P.destroy=void 0,S=c;var X=h,se=F;try{se()}catch(pe){Mt(S,X,pe)}}}v=v.next}while(v!==_)}}catch(pe){Mt(c,c.return,pe)}}function bT(o){var c=o.updateQueue;if(c!==null){var h=o.stateNode;try{u2(c,h)}catch(v){Mt(o,o.return,v)}}}function wT(o,c,h){h.props=Io(o.type,o.memoizedProps),h.state=o.memoizedState;try{h.componentWillUnmount()}catch(v){Mt(o,c,v)}}function Md(o,c){try{var h=o.ref;if(h!==null){switch(o.tag){case 26:case 27:case 5:var v=o.stateNode;break;case 30:v=o.stateNode;break;default:v=o.stateNode}typeof h=="function"?o.refCleanup=h(v):h.current=v}}catch(S){Mt(o,c,S)}}function ti(o,c){var h=o.ref,v=o.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){Mt(o,c,S)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){Mt(o,c,S)}else h.current=null}function jT(o){var c=o.type,h=o.memoizedProps,v=o.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){Mt(o,o.return,S)}}function qb(o,c,h){try{var v=o.stateNode;xV(v,o.type,h,c),v[Cr]=c}catch(S){Mt(o,o.return,S)}}function ST(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&Ds(o.type)||o.tag===4}function Fb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||ST(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&Ds(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Ub(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(o,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(o),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ei));else if(v!==4&&(v===27&&Ds(o.type)&&(h=o.stateNode,c=null),o=o.child,o!==null))for(Ub(o,c,h),o=o.sibling;o!==null;)Ub(o,c,h),o=o.sibling}function Zm(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?h.insertBefore(o,c):h.appendChild(o);else if(v!==4&&(v===27&&Ds(o.type)&&(h=o.stateNode),o=o.child,o!==null))for(Zm(o,c,h),o=o.sibling;o!==null;)Zm(o,c,h),o=o.sibling}function _T(o){var c=o.stateNode,h=o.memoizedProps;try{for(var v=o.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);rr(c,v,h),c[Jn]=o,c[Cr]=h}catch(_){Mt(o,o.return,_)}}var Li=!1,On=!1,Hb=!1,NT=typeof WeakSet=="function"?WeakSet:Set,Un=null;function Q7(o,c){if(o=o.containerInfo,d0=yp,o=IA(o),Ix(o)){if("selectionStart"in o)var h={start:o.selectionStart,end:o.selectionEnd};else e:{h=(h=o.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,F=-1,X=-1,se=0,pe=0,xe=o,de=null;t:for(;;){for(var me;xe!==h||S!==0&&xe.nodeType!==3||(F=P+S),xe!==_||v!==0&&xe.nodeType!==3||(X=P+v),xe.nodeType===3&&(P+=xe.nodeValue.length),(me=xe.firstChild)!==null;)de=xe,xe=me;for(;;){if(xe===o)break t;if(de===h&&++se===S&&(F=P),de===_&&++pe===v&&(X=P),(me=xe.nextSibling)!==null)break;xe=de,de=xe.parentNode}xe=me}h=F===-1||X===-1?null:{start:F,end:X}}else h=null}h=h||{start:0,end:0}}else h=null;for(f0={focusedElem:o,selectionRange:h},yp=!1,Un=c;Un!==null;)if(c=Un,o=c.child,(c.subtreeFlags&1028)!==0&&o!==null)o.return=c,Un=o;else for(;Un!==null;){switch(c=Un,_=c.alternate,o=c.flags,c.tag){case 0:if((o&4)!==0&&(o=c.updateQueue,o=o!==null?o.events:null,o!==null))for(h=0;h title"))),rr(_,v,h),_[Jn]=o,Fn(_),v=_;break e;case"link":var P=kk("link","href",S).get(v+(h.href||""));if(P){for(var F=0;Fzt&&(P=zt,zt=Fe,Fe=P);var ne=DA(F,Fe),Z=DA(F,zt);if(ne&&Z&&(me.rangeCount!==1||me.anchorNode!==ne.node||me.anchorOffset!==ne.offset||me.focusNode!==Z.node||me.focusOffset!==Z.offset)){var ie=xe.createRange();ie.setStart(ne.node,ne.offset),me.removeAllRanges(),Fe>zt?(me.addRange(ie),me.extend(Z.node,Z.offset)):(ie.setEnd(Z.node,Z.offset),me.addRange(ie))}}}}for(xe=[],me=F;me=me.parentNode;)me.nodeType===1&&xe.push({element:me,left:me.scrollLeft,top:me.scrollTop});for(typeof F.focus=="function"&&F.focus(),F=0;Fh?32:h,L.T=null,h=Zb,Zb=null;var _=Ms,P=Ui;if(Pn=0,vc=Ms=null,Ui=0,(jt&6)!==0)throw Error(r(331));var F=jt;if(jt|=4,$T(_.current),PT(_,_.current,P,h),jt=F,Ld(0,!1),br&&typeof br.onPostCommitFiberRoot=="function")try{br.onPostCommitFiberRoot(bo,_)}catch{}return!0}finally{D.p=S,L.T=v,ek(o,c)}}function nk(o,c,h){c=ha(h,c),c=Tb(o.stateNode,c,2),o=Ns(o,c,2),o!==null&&(ad(o,2),ni(o))}function Mt(o,c,h){if(o.tag===3)nk(o,o,h);else for(;c!==null;){if(c.tag===3){nk(c,o,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(ks===null||!ks.has(v))){o=ha(h,o),h=rT(2),v=Ns(c,h,2),v!==null&&(aT(h,v,c,o),ad(v,2),ni(v));break}}c=c.return}}function t0(o,c,h){var v=o.pingCache;if(v===null){v=o.pingCache=new tV;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Gb=!0,S.add(h),o=sV.bind(null,o,c,h),c.then(o,o))}function sV(o,c,h){var v=o.pingCache;v!==null&&v.delete(c),o.pingedLanes|=o.suspendedLanes&h,o.warmLanes&=~h,Ht===o&&(ft&h)===h&&(yn===4||yn===3&&(ft&62914560)===ft&&300>ue()-ep?(jt&2)===0&&gc(o,0):Yb|=h,pc===ft&&(pc=0)),ni(o)}function rk(o,c){c===0&&(c=Bl()),o=Oo(o,c),o!==null&&(ad(o,c),ni(o))}function oV(o){var c=o.memoizedState,h=0;c!==null&&(h=c.retryLane),rk(o,h)}function lV(o,c){var h=0;switch(o.tag){case 31:case 13:var v=o.stateNode,S=o.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=o.stateNode;break;case 22:v=o.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),rk(o,h)}function cV(o,c){return St(o,c)}var op=null,xc=null,n0=!1,lp=!1,r0=!1,Rs=0;function ni(o){o!==xc&&o.next===null&&(xc===null?op=xc=o:xc=xc.next=o),lp=!0,n0||(n0=!0,dV())}function Ld(o,c){if(!r0&&lp){r0=!0;do for(var h=!1,v=op;v!==null;){if(o!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,F=v.pingedLanes;_=(1<<31-lr(42|o)+1)-1,_&=S&~(P&~F),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,ok(v,_))}else _=ft,_=Ll(v,v===Ht?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||wo(v,_)||(h=!0,ok(v,_));v=v.next}while(h);r0=!1}}function uV(){ak()}function ak(){lp=n0=!1;var o=0;Rs!==0&&wV()&&(o=Rs);for(var c=ue(),h=null,v=op;v!==null;){var S=v.next,_=ik(v,c);_===0?(v.next=null,h===null?op=S:h.next=S,S===null&&(xc=h)):(h=v,(o!==0||(_&3)!==0)&&(lp=!0)),v=S}Pn!==0&&Pn!==5||Ld(o),Rs!==0&&(Rs=0)}function ik(o,c){for(var h=o.suspendedLanes,v=o.pingedLanes,S=o.expirationTimes,_=o.pendingLanes&-62914561;0<_;){var P=31-lr(_),F=1<F)break;var pe=X.transferSize,xe=X.initiatorType;pe&&pk(xe)&&(X=X.responseEnd,P+=pe*(X"u"?null:document;function Ok(o,c,h){var v=bc;if(v&&typeof c=="string"&&c){var S=da(c);S='link[rel="'+o+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),Ck.has(S)||(Ck.add(S),o={rel:o,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function TV(o){Hi.D(o),Ok("dns-prefetch",o,null)}function kV(o,c){Hi.C(o,c),Ok("preconnect",o,c)}function MV(o,c,h){Hi.L(o,c,h);var v=bc;if(v&&o&&c){var S='link[rel="preload"][as="'+da(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+da(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+da(h.imageSizes)+'"]')):S+='[href="'+da(o)+'"]';var _=S;switch(c){case"style":_=wc(o);break;case"script":_=jc(o)}xa.has(_)||(o=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:o,as:c},h),xa.set(_,o),v.querySelector(S)!==null||c==="style"&&v.querySelector(Fd(_))||c==="script"&&v.querySelector(Ud(_))||(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function PV(o,c){Hi.m(o,c);var h=bc;if(h&&o){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+da(v)+'"][href="'+da(o)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=jc(o)}if(!xa.has(_)&&(o=p({rel:"modulepreload",href:o},c),xa.set(_,o),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(Ud(_)))return}v=h.createElement("link"),rr(v,"link",o),Fn(v),h.head.appendChild(v)}}}function RV(o,c,h){Hi.S(o,c,h);var v=bc;if(v&&o){var S=Ul(v).hoistableStyles,_=wc(o);c=c||"default";var P=S.get(_);if(!P){var F={loading:0,preload:null};if(P=v.querySelector(Fd(_)))F.loading=5;else{o=p({rel:"stylesheet",href:o,"data-precedence":c},h),(h=xa.get(_))&&x0(o,h);var X=P=v.createElement("link");Fn(X),rr(X,"link",o),X._p=new Promise(function(se,pe){X.onload=se,X.onerror=pe}),X.addEventListener("load",function(){F.loading|=1}),X.addEventListener("error",function(){F.loading|=2}),F.loading|=4,hp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:F},S.set(_,P)}}}function DV(o,c){Hi.X(o,c);var h=bc;if(h&&o){var v=Ul(h).hoistableScripts,S=jc(o),_=v.get(S);_||(_=h.querySelector(Ud(S)),_||(o=p({src:o,async:!0},c),(c=xa.get(S))&&b0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function $V(o,c){Hi.M(o,c);var h=bc;if(h&&o){var v=Ul(h).hoistableScripts,S=jc(o),_=v.get(S);_||(_=h.querySelector(Ud(S)),_||(o=p({src:o,async:!0,type:"module"},c),(c=xa.get(S))&&b0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function Ek(o,c,h,v){var S=(S=ge.current)?fp(S):null;if(!S)throw Error(r(446));switch(o){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=wc(h.href),h=Ul(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){o=wc(h.href);var _=Ul(S).hoistableStyles,P=_.get(o);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(o,P),(_=S.querySelector(Fd(o)))&&!_._p&&(P.instance=_,P.state.loading=5),xa.has(o)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},xa.set(o,h),_||IV(S,o,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=jc(h),h=Ul(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,o))}}function wc(o){return'href="'+da(o)+'"'}function Fd(o){return'link[rel="stylesheet"]['+o+"]"}function Ak(o){return p({},o,{"data-precedence":o.precedence,precedence:null})}function IV(o,c,h,v){o.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=o.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),rr(c,"link",h),Fn(c),o.head.appendChild(c))}function jc(o){return'[src="'+da(o)+'"]'}function Ud(o){return"script[async]"+o}function Tk(o,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=o.querySelector('style[data-href~="'+da(h.href)+'"]');if(v)return c.instance=v,Fn(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(o.ownerDocument||o).createElement("style"),Fn(v),rr(v,"style",S),hp(v,h.precedence,o),c.instance=v;case"stylesheet":S=wc(h.href);var _=o.querySelector(Fd(S));if(_)return c.state.loading|=4,c.instance=_,Fn(_),_;v=Ak(h),(S=xa.get(S))&&x0(v,S),_=(o.ownerDocument||o).createElement("link"),Fn(_);var P=_;return P._p=new Promise(function(F,X){P.onload=F,P.onerror=X}),rr(_,"link",v),c.state.loading|=4,hp(_,h.precedence,o),c.instance=_;case"script":return _=jc(h.src),(S=o.querySelector(Ud(_)))?(c.instance=S,Fn(S),S):(v=h,(S=xa.get(_))&&(v=p({},h),b0(v,S)),o=o.ownerDocument||o,S=o.createElement("script"),Fn(S),rr(S,"link",v),o.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,hp(v,h.precedence,o));return c.instance}function hp(o,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function LV(o,c,h){if(h===1||c.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return o=c.disabled,typeof c.precedence=="string"&&o==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Pk(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function BV(o,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=wc(v.href),_=c.querySelector(Fd(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(o.count++,o=pp.bind(o),c.then(o,o)),h.state.loading|=4,h.instance=_,Fn(_);return}_=c.ownerDocument||c,v=Ak(v),(S=xa.get(S))&&x0(v,S),_=_.createElement("link"),Fn(_);var P=_;P._p=new Promise(function(F,X){P.onload=F,P.onerror=X}),rr(_,"link",v),h.instance=_}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(o.count++,h=pp.bind(o),c.addEventListener("load",h),c.addEventListener("error",h))}}var w0=0;function zV(o,c){return o.stylesheets&&o.count===0&&gp(o,o.stylesheets),0w0?50:800)+c);return o.unsuspend=h,function(){o.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function pp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)gp(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var vp=null;function gp(o,c){o.stylesheets=null,o.unsuspend!==null&&(o.count++,vp=new Map,c.forEach(qV,o),vp=null,pp.call(o))}function qV(o,c){if(!(c.state.loading&4)){var h=vp.get(o);if(h)var v=h.get(null);else{h=new Map,vp.set(o,h);for(var S=o.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),T0.exports=rG(),T0.exports}var iG=aG();const g_=new WeakMap,sG=new WeakMap,vv={current:[]};let R0=!1,jf=0;const hf=new Set,Cp=new Map;function e5(e){for(const t of e){if(vv.current.includes(t))continue;vv.current.push(t),t.recompute();const n=sG.get(t);if(n)for(const r of n){const a=g_.get(r);a?.length&&e5(a)}}}function oG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function lG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function t5(e){if(jf>0&&!Cp.has(e)&&Cp.set(e,e.prevState),hf.add(e),!(jf>0)&&!R0)try{for(R0=!0;hf.size>0;){const t=Array.from(hf);hf.clear();for(const n of t){const r=Cp.get(n)??n.prevState;n.prevState=r,oG(n)}for(const n of t){const r=g_.get(n);r&&(vv.current.push(n),e5(r))}for(const n of t){const r=g_.get(n);if(r)for(const a of r)lG(a)}}}finally{R0=!1,vv.current=[],Cp.clear()}}function Sf(e){jf++;try{e()}finally{if(jf--,jf===0){const t=hf.values().next().value;t&&t5(t)}}}function cG(e){return typeof e=="function"}class uG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,s;this.listeners.add(r);const l=(s=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:s.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):cG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),t5(this)}}const Ks="__TSR_index",rM="popstate",aM="beforeunload";function dG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},s=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=gv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Ks];u=iM(f+1,u),s({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Ks];u=iM(f,u),s({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{s({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{s({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{s({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Ks]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function iM(e,t){t||(t={});const n=AC();return{...t,key:n,__TSR_key:n,[Ks]:e}}function fG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const s=()=>a,l=M=>a=M,u=(M=>M),d=(()=>gv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=AC();t.history.replaceState({[Ks]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const w=()=>f;let b,N;const E=()=>{b&&(T._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),T._ignoreSubscribers=!1,b=void 0,N=void 0,m=void 0)},O=(M,R,B)=>{const $=u(R);N||(m=f),f=gv(R,B),b={href:$,state:B,isPush:b?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>E()))},A=M=>{f=d(),T.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),R=M.state[Ks]-f.state[Ks],B=R===1,$=R===-1,H=!B&&!$||p;p=!1;const V=H?"GO":$?"BACK":"FORWARD",q=H?{type:"GO",index:R}:{type:$?"BACK":"FORWARD"};if(x)x=!1;else{const G=s();if(typeof document<"u"&&G.length){for(const L of G)if(await L.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),T.notify(q);return}}}f=d(),T.notify(q)},k=M=>{if(j){j=!1;return}let R=!1;const B=s();if(typeof document<"u"&&B.length)for(const $ of B){const H=$.enableBeforeUnload??!0;if(H===!0){R=!0;break}if(typeof H=="function"&&H()===!0){R=!0;break}}if(R)return M.preventDefault(),M.returnValue=""},T=dG({getLocation:w,getLength:()=>t.history.length,pushState:(M,R)=>O("push",M,R),replaceState:(M,R)=>O("replace",M,R),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aM,k,{capture:!0}),t.removeEventListener(rM,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:s,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(aM,k,{capture:!0}),t.addEventListener(rM,C),t.history.pushState=function(...M){const R=n.apply(t.history,M);return T._ignoreSubscribers||A("PUSH"),R},t.history.replaceState=function(...M){const R=r.apply(t.history,M);return T._ignoreSubscribers||A("REPLACE"),R},T}function gv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=AC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Ks]:0,key:a,__TSR_key:a}}}function AC(){return(Math.random()+1).toString(36).substring(7)}function y_(e){return e[e.length-1]}function hG(e){return typeof e=="function"}function el(e,t){return hG(e)?e(t):e}const mG=Object.prototype.hasOwnProperty;function _a(e,t){if(e===t)return e;const n=t,r=lM(e)&&lM(n);if(!r&&!(yv(e)&&yv(n)))return n;const a=r?e:sM(e);if(!a)return n;const s=r?n:sM(n);if(!s)return n;const l=a.length,u=s.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!oM(n)||!n.hasOwnProperty("isPrototypeOf"))}function oM(e){return Object.prototype.toString.call(e)==="[object Object]"}function lM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function tl(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!tl(e[l],t[l],n)))return!1;return a===s}return!1}function tu(e){let t,n;const r=new Promise((a,s)=>{t=a,n=s});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function Xs(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const pG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function cM(e,t=pG){function n(a,s,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var vG="Invariant failed";function pr(e,t){if(!e)throw new Error(vG)}const mi=0,cl=1,nu=2,ru=3;function ts(e){return TC(e.filter(t=>t!==void 0).join("/"))}function TC(e){return e.replace(/\/{2,}/g,"/")}function kC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Zs(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function av(e){return Zs(kC(e))}function xv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function gG(e,t,n){return xv(e,n)===xv(t,n)}function yG(e){const{type:t,value:n}=e;if(t===mi)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===cl){const s=n.substring(1);if(r&&a)return`${r}{$${s}}${a}`;if(r)return`${r}{$${s}}`;if(a)return`{$${s}}${a}`}if(t===ru){const s=n.substring(1);return r&&a?`${r}{-$${s}}${a}`:r?`${r}{-$${s}}`:a?`{-$${s}}${a}`:`{-$${s}}`}if(t===nu){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function xG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=au(e,r).slice();const s=au(t,r);a.length>1&&y_(a)?.value==="/"&&a.pop();for(let d=0,f=s.length;d1&&(y_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:mi,value:"/"}));const l=a.map(yG);return ts(l)}const au=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=NG(e);return t?.set(e,r),r},bG=/^\$.{1,}$/,wG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,jG=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,SG=/^\$$/,_G=/^(.*?)\{\$\}(.*)$/;function NG(e){e=TC(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:mi,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(_G);if(a){const u=a[1],d=a[2];return{type:nu,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const s=r.match(jG);if(s){const u=s[1],d=s[2],f=s[3];return{type:ru,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(wG);if(l){const u=l[1],d=l[2],f=l[3];return{type:cl,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(bG.test(r)){const u=r.substring(1);return{type:cl,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return SG.test(r)?{type:nu,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:mi,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:mi,value:"/"})),t}function D0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=au(e,r);function s(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?CG(m,n):m}let l=!1;const u={},d=ts(a.map(f=>{if(f.type===mi)return f.value;if(f.type===nu){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=s("_splat");return`${m}${g}${p}`}if(f.type===cl){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${s(m)??"undefined"}${g}`}if(f.type===ru){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${s(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function CG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function x_(e,t,n){const r=OG(e,t,n);if(!(t.to&&!r))return r??{}}function OG(e,{to:t,fuzzy:n,caseSensitive:r},a){const s=t,l=au(e.startsWith("/")?e:`/${e}`,a),u=au(s.startsWith("/")?s:`/${s}`,a),d={};return EG(l,u,d,n,r)?d:void 0}function EG(e,t,n,r,a){let s=0,l=0;for(;sw.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(ts(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===mi){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;s++,l++;continue}else return!1}if(d.type===cl){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,s++),l++;continue}if(d.type===ru){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=ts(e.slice(s).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const s=kC(r.fullPath);let l=au(s),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return AG;if(p.type===mi)return TG;let x;p.type===cl?x=kG:p.type===ru?(x=MG,d++):x=PG;for(let j=g+1;j{const s=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function BG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(pr(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=Zs(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const s=LG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:s}}function Wa(e){return!!e?.isNotFound}function zG(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const bv="tsr-scroll-restoration-v1_3",qG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function FG(){const e=zG();if(!e)return null;const t=e.getItem(bv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=el(r,n)||n,e.setItem(bv,JSON.stringify(n)))}}const Op=FG(),b_=e=>e.state.__TSR_key||e.href;function UG(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let wv=!1;function n5({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:s}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];wv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(s??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}wv=!1}function HG(e,t){if(!Op&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!Op))return;e.isScrollRestorationSetup=!0,wv=!1;const r=e.options.getScrollRestorationKey||b_;window.history.scrollRestoration="manual";const a=s=>{if(wv||!e.isScrollRestoring)return;let l="";if(s.target===document||s.target===window)l="window";else{const d=s.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=UG(s.target)}const u=r(e.state.location);Op.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",qG(a,100),!0),e.subscribe("onRendered",s=>{const l=r(s.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(n5({storageKey:bv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&Op.set(u=>(u[l]||={},u)))})}function WG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function VG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function $0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function GG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const s=n[r];s==null?n[r]=$0(a):Array.isArray(s)?s.push($0(a)):n[r]=[s,$0(a)]}return n}const YG=XG(JSON.parse),KG=ZG(JSON.stringify,JSON.parse);function XG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=GG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function ZG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const s=VG(a,r);return s?`?${s}`:""}}const ea="__root__";function r5(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function ci(e){return e instanceof Response&&!!e.options}function QG(e){const t=new Map;let n,r;const a=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,n=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){const l=t.get(s);if(l)return a(l),l.value},set(s,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(s);if(u)u.value=l,a(u);else{const d={key:s,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(s,d)}}}}const iv=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},zg=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),a5=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),pr(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);pr(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,a5(e,t))},Vs=(e,t,n)=>{if(!(!ci(n)&&!Wa(n))){if(ci(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=ci(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Wa(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw ci(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(a5(e,n),n)}},i5=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Xd=(e,t,n,r)=>{const{id:a,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Vs(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Vs(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},JG=(e,t,n,r)=>{const a=e.router.getMatch(t),s=e.matches[n-1]?.id,l=s?e.router.getMatch(s):void 0;if(e.router.isShell()){a.ssr=r.id===ea;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:Ep(f,a.searchError),params:Ep(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:Ep(x.search,x.searchError),params:Ep(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(Xs(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},s5=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!zg(e,t)&&(n.options.loader||n.options.beforeLoad||c5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{iv(e)},a);r._nonReactive.pendingTimeout=l}},eY=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;s5(e,t,n,r);const a=()=>{const s=e.router.getMatch(t);s.preload&&(s.status==="redirected"||s.status==="notFound")&&Vs(e,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},tY=(e,t,n,r)=>{const a=e.router.getMatch(t),s=a._nonReactive.loadPromise;a._nonReactive.loadPromise=tu(()=>{s?.resolve()});const{paramsError:l,searchError:u}=a;l&&Xd(e,n,l,"PARSE_PARAMS"),u&&Xd(e,n,u,"VALIDATE_SEARCH"),s5(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,T=>({...T,isFetching:"beforeLoad",fetchCount:T.fetchCount+1,abortController:d,context:g})))},w=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,T=>({...T,isFetching:!1}))};if(!r.options.beforeLoad){Sf(()=>{j(),w()});return}a._nonReactive.beforeLoadPromise=tu();const{search:b,params:N,cause:E}=a,O=zg(e,t),A={search:b,abortController:d,params:N,preload:O,context:g,location:e.location,navigate:T=>e.router.navigate({...T,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:O?"preload":E,matches:e.matches,...e.router.options.additionalContext},C=T=>{if(T===void 0){Sf(()=>{j(),w()});return}(ci(T)||Wa(T))&&(j(),Xd(e,n,T,"BEFORE_LOAD")),Sf(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:T,context:{...M.context,...T}})),w()})};let k;try{if(k=r.options.beforeLoad(A),Xs(k))return j(),k.catch(T=>{Xd(e,n,T,"BEFORE_LOAD")}).then(C)}catch(T){j(),Xd(e,n,T,"BEFORE_LOAD")}C(k)},nY=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],s=()=>{if(e.router.isServer){const d=JG(e,n,t,a);if(Xs(d))return d.then(u)}return u()},l=()=>tY(e,n,t,a),u=()=>{if(i5(e,n))return;const d=eY(e,n,a);return Xs(d)?d.then(l):l()};return s()},_f=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([s,l,u])=>{const d=s?.meta,f=s?.links,m=s?.scripts,p=s?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},o5=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:s,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=zg(e,t);return{params:s,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},hM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&l5(r);const s=r.options.loader?.(o5(e,t,n,r)),l=r.options.loader&&Xs(s);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await s:s;Vs(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=_f(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let l=s;const u=a._nonReactive.minPendingPromise;u&&await u,Wa(s)&&await r.options.notFoundComponent?.preload?.(),Vs(e,e.router.getMatch(t),s);try{r.options.onError?.(s)}catch(m){l=m,Vs(e,e.router.getMatch(t),m)}const d=_f(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const s=e.router.getMatch(t);if(s){const l=_f(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}s._nonReactive.loaderPromise=void 0}Vs(e,s,a)}},rY=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,s=!1;const l=e.router.looseRoutesById[r];if(i5(e,n)){if(e.router.isServer){const f=_f(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Vs(e,m,p)}else{const m=Date.now()-f.updatedAt,p=zg(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(o5(e,n,t,l)):x,w=!!p&&!e.router.state.matches.some(O=>O.id===n),b=e.router.getMatch(n);b._nonReactive.loaderPromise=tu(),w!==b.preload&&e.updateMatch(n,O=>({...O,preload:w}));const{status:N,invalid:E}=b;if(a=N==="success"&&(E||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)s=!0,(async()=>{try{await hM(e,n,t,l);const O=e.router.getMatch(n);O._nonReactive.loaderPromise?.resolve(),O._nonReactive.loadPromise?.resolve(),O._nonReactive.loaderPromise=void 0}catch(O){ci(O)&&await e.router.navigate(O.options)}})();else if(N!=="success"||a&&e.sync)await hM(e,n,t,l);else{const O=_f(e,n,l);if(O){const A=await O;e.updateMatch(n,C=>({...C,...A}))}}}}const u=e.router.getMatch(n);s||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,s||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=s?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function mM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&iv(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of u5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Ep(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function c5(e){for(const t of u5)if(e.options[t]?.preload)return!0;return!1}const u5=["component","errorComponent","pendingComponent","notFoundComponent"];function aY(e){return{input:({url:t})=>{for(const n of e)t=d5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=f5(e[n],t);return t}}}function iY(e){const t=av(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),s=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(s)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=ts(["/",t,l.pathname]),l)}}function d5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function f5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function nl(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,s=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:s}}class sY{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",s=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=fG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new uG(lY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),HG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(s||a!==d||l!==f){this.basepath=d;const g=[];av(d)!==""&&g.push(iY({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:aY(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=BG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=d5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:w,hash:b}=p;return{href:j,publicHref:d,url:p.href,pathname:cM(w),searchStr:x,search:_a(r?.search,g),hash:b.split("#").reverse()[0]??"",state:_a(r?.state,f)}},s=a(n),{__tempLocation:l,__tempKey:u}=s.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=s.state.key,d.state.__TSR_key=s.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:s}}return s},this.resolvePathWithBase=(n,r)=>xG({base:n,to:TC(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=QG(1e3),this.getMatchedRoutes=(n,r)=>cY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(s=>s.status==="pending"),r=this.state.matches.filter(s=>s.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(s=>{this.cancelMatch(s.id)})},this.buildLocation=n=>{const r=(s={})=>{const l=s._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=y_(u);s.from;const f=s.unsafeRelative==="path"?l.pathname:s.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=s.to?this.resolvePathWithBase(m,`${s.to}`):this.resolvePathWithBase(m,"."),j=s.params===!1||s.params===null?{}:(s.params??!0)===!0?g:Object.assign(g,el(s.params,g)),w=D0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(w,void 0,{_buildLocation:!0}).map(B=>this.looseRoutesById[B.routeId]);if(Object.keys(j).length>0)for(const B of b){const $=B.options.params?.stringify??B.options.stringifyParams;$&&Object.assign(j,$(j))}const N=n.leaveParams?x:cM(D0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let E=p;if(n._includeValidateSearch&&this.options.search?.strict){const B={};b.forEach($=>{if($.options.validateSearch)try{Object.assign(B,w_($.options.validateSearch,{...B,...E}))}catch{}}),E=B}E=uY({search:E,dest:s,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=_a(p,E);const O=this.options.stringifySearch(E),A=s.hash===!0?l.hash:s.hash?el(s.hash,l.hash):void 0,C=A?`#${A}`:"";let k=s.state===!0?l.state:s.state?el(s.state,l.state):{};k=_a(l.state,k);const T=`${N}${O}${C}`,M=new URL(T,this.origin),R=f5(this.rewrite,M);return{publicHref:R.pathname+R.search+R.hash,href:T,url:R.href,pathname:N,search:E,searchStr:O,state:k,hash:A??"",unmaskOnReload:s.unmaskOnReload}},a=(s={},l)=>{const u=r(s);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=x_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const s=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=tl(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=Zs(this.latestLocation.href)===Zs(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=tu(()=>{u?.resolve()}),l&&s())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:s,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=gv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:s,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...s})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...s}).url),s.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...s,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(av(a(this.latestLocation.href))!==av(a(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),r5({href:s})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(s=>s.id===a.id))}))},this.load=async n=>{let r,a,s;for(s=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...nl({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...nl({resolvedLocation:f,location:d})}),await mM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];Sf(()=>{this.__store.setState(x=>{const j=x.matches,w=x.pendingMatches||x.matches;return m=j.filter(b=>!w.some(N=>N.id===b.id)),p=w.filter(b=>!j.some(N=>N.id===b.id)),g=w.filter(b=>j.some(N=>N.id===b.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(b=>b.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(w=>{this.looseRoutesById[w.routeId].options[j]?.(w)})})})})}})}catch(d){ci(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wa(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const s=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(nl({resolvedLocation:l,location:s})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(s=>s.id===n)?"pendingMatches":this.state.matches.some(s=>s.id===n)?"matches":this.state.cachedMatches.some(s=>s.id===n)?"cachedMatches":"";a&&this.__store.setState(s=>({...s,[a]:s[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(s=>!r(s))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const s=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:n})},this.loadRouteChunk=l5,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...s,...this.state.cachedMatches.map(u=>u.id)]);Sf(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await mM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{s.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(ci(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Wa(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},s=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=x_(u.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!d||n.params&&!tl(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?tl(u.search,s.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??KG,parseSearch:t.parseSearch??YG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:s}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&s["**"]:Zs(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return ea}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,w]=(()=>{const H=g?.search??t.search,V=g?._strictSearch??void 0;try{const q=w_(m.options.validateSearch,{...H})??void 0;return[{...H,...q},{...V,...q},void 0]}catch(q){let G=q;if(q instanceof jv||(G=new jv(q.message,{cause:q})),n?.throwOnError)throw G;return[H,{},G]}})(),b=m.options.loaderDeps?.({search:x})??"",N=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:O}=D0({path:m.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),A=m.id+E+N,C=this.getMatch(A),k=this.state.matches.find(H=>H.routeId===m.id),T=C?._strictParams??O;let M;if(!C){const H=m.options.params?.parse??m.options.parseParams;if(H)try{Object.assign(T,H(T))}catch(V){if(M=new oY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(s,T);const R=k?"stay":"enter";let B;if(C)B={...C,cause:R,params:k?_a(k.params,s):s,_strictParams:T,search:_a(k?k.search:C.search,x),_strictSearch:j};else{const H=m.options.loader||m.options.beforeLoad||m.lazyFn||c5(m)?"pending":"success";B={id:A,index:p,routeId:m.id,params:k?_a(k.params,s):s,_strictParams:T,pathname:E,updatedAt:Date.now(),search:k?_a(k.search,x):x,_strictSearch:j,searchError:void 0,status:H,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:tu()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:R,loaderDeps:k?_a(k.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(B.globalNotFound=u===m.id),B.searchError=w;const $=f(g);B.context={...$,...B.__routeContext,...B.__beforeLoadContext},d.push(B)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],w=f(j);if(g.options.context){const b={deps:m.loaderDeps,params:m.params,context:w??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(b)??void 0}m.context={...w,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class jv extends Error{}class oY extends Error{}function lY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function w_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new jv("Async validation not supported");if(n.issues)throw new jv(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function cY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:s,parseCache:l}){let u={};const d=Zs(e),f=x=>x_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of s){const w=f(j);if(w)if(j.path!=="/"&&w["**"])x||(x={foundRoute:j,routeParams:w});else{m=j,u=w;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[ea];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function uY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((w,b)=>b(w),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((w,b)=>b(w),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...w_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],s=({search:u})=>t.search?t.search===!0?u:el(t.search,u):{};a.push(s);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const dY="Error preloading route! ☝️";class h5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=ea:this.parentRoute||pr(!1);let s=a?ea:r?.path;s&&s!=="/"&&(s=kC(s));const l=r?.id||s;let u=a?ea:ts([this.parentRoute.id===ea?"":this.parentRoute.id,l]);s===ea&&(s="/"),u!==ea&&(u=ts(["/",u]));const d=u===ea?"/":ts([this.parentRoute.fullPath,s]);this._path=s,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class fY extends h5{constructor(t){super(t)}}function MC(e){const t=e.errorComponent??qg;return i.jsx(hY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class hY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function qg({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function mY({children:e,fallback:t=null}){return pY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function pY(){return W.useSyncExternalStore(vY,()=>!0,()=>!1)}function vY(){return()=>{}}var I0={exports:{}},L0={},B0={exports:{}},z0={};var pM;function gY(){if(pM)return z0;pM=1;var e=Eh();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),w=j[0].inst,b=j[1];return s(function(){w.value=x,w.getSnapshot=g,d(w)&&b({inst:w})},[p,x,g]),a(function(){return d(w)&&b({inst:w}),p(function(){d(w)&&b({inst:w})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return z0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,z0}var vM;function yY(){return vM||(vM=1,B0.exports=gY()),B0.exports}var gM;function xY(){if(gM)return L0;gM=1;var e=Eh(),t=yY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return L0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=s(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=u(function(){function N(k){if(!E){if(E=!0,O=k,k=g(k),x!==void 0&&w.hasValue){var T=w.value;if(x(T,k))return A=T}return A=k}if(T=A,r(O,k))return T;var M=g(k);return x!==void 0&&x(T,M)?(O=k,T):(O=k,A=M)}var E=!1,O,A,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var b=a(f,j[0],j[1]);return l(function(){w.hasValue=!0,w.value=b},[b]),d(b),b},L0}var yM;function bY(){return yM||(yM=1,I0.exports=xY()),I0.exports}var wY=bY();function jY(e,t=r=>r,n={}){const r=n.equal??SY;return wY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function SY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=xM(e);if(n.length!==xM(t).length)return!1;for(let r=0;r"u"?q0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=q0,q0)}function zr(e){const t=y.useContext(m5());return e?.warn,t}function Nr(e){const t=zr({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return jY(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const s=_a(r.current,e.select(a));return r.current=s,s}return e.select(a)}return a})}const Fg=y.createContext(void 0),_Y=y.createContext(void 0);function yi(e){const t=y.useContext(e.from?_Y:Fg);return Nr({select:r=>{const a=r.matches.find(s=>e.from?e.from===s.routeId:s.id===t);if(pr(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function PC(e){return yi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function RC(e){const{select:t,...n}=e;return yi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function DC(e){return yi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function $C(e){return yi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function la(e){const t=zr();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var Sl=JL();const NY=At(Sl),Ap=typeof window<"u"?y.useLayoutEffect:y.useEffect;function F0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function CY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([s])=>{t(s)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function OY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function EY(e,t){const n=zr(),[r,a]=y.useState(!1),s=y.useRef(!1),l=OY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:w,resetScroll:b,viewTransition:N,children:E,target:O,disabled:A,style:C,className:k,onClick:T,onFocus:M,onMouseEnter:R,onMouseLeave:B,onTouchStart:$,ignoreBlocker:H,params:V,search:q,hash:G,state:L,mask:D,reloadDocument:U,unsafeRelative:K,from:J,_fromLocation:I,...z}=e,Y=Nr({select:le=>le.location.search,structuralSharing:!0}),te=e.from,ae=y.useMemo(()=>({...e,from:te}),[n,Y,te,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ge=y.useMemo(()=>n.buildLocation({...ae}),[n,ae]),ee=y.useMemo(()=>{if(A)return;let le=ge.maskedLocation?ge.maskedLocation.url:ge.url,ue=!1;return n.origin&&(le.startsWith(n.origin)?le=n.history.createHref(le.replace(n.origin,""))||"/":ue=!0),{href:le,external:ue}},[A,ge.maskedLocation,ge.url,n.origin,n.history]),Se=y.useMemo(()=>{if(ee?.external)return ee.href;try{return new URL(m),m}catch{}},[m,ee]),re=e.reloadDocument||Se?!1:p??n.options.defaultPreload,we=g??n.options.defaultPreloadDelay??0,je=Nr({select:le=>{if(Se)return!1;if(f?.exact){if(!gG(le.location.pathname,ge.pathname,n.basepath))return!1}else{const ue=xv(le.location.pathname,n.basepath),Ve=xv(ge.pathname,n.basepath);if(!(ue.startsWith(Ve)&&(ue.length===Ve.length||ue[Ve.length]==="/")))return!1}return(f?.includeSearch??!0)&&!tl(le.location.search,ge.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?le.location.hash===ge.hash:!0}}),fe=y.useCallback(()=>{n.preloadRoute({...ae}).catch(le=>{console.warn(le),console.warn(dY)})},[n,ae]),Le=y.useCallback(le=>{le?.isIntersecting&&fe()},[fe]);CY(l,Le,PY,{disabled:!!A||re!=="viewport"}),y.useEffect(()=>{s.current||!A&&re==="render"&&(fe(),s.current=!0)},[A,fe,re]);const Oe=le=>{const ue=le.currentTarget.getAttribute("target"),Ve=O!==void 0?O:ue;if(!A&&!RY(le)&&!le.defaultPrevented&&(!Ve||Ve==="_self")&&le.button===0){le.preventDefault(),Sl.flushSync(()=>{a(!0)});const Mn=n.subscribe("onResolved",()=>{Mn(),a(!1)});n.navigate({...ae,replace:j,resetScroll:b,hashScrollIntoView:x,startTransition:w,viewTransition:N,ignoreBlocker:H})}};if(Se)return{...z,ref:l,href:Se,...E&&{children:E},...O&&{target:O},...A&&{disabled:A},...C&&{style:C},...k&&{className:k},...T&&{onClick:T},...M&&{onFocus:M},...R&&{onMouseEnter:R},...B&&{onMouseLeave:B},...$&&{onTouchStart:$}};const We=le=>{A||re&&fe()},be=We,Ae=le=>{if(!(A||!re))if(!we)fe();else{const ue=le.target;if(Zd.has(ue))return;const Ve=setTimeout(()=>{Zd.delete(ue),fe()},we);Zd.set(ue,Ve)}},ke=le=>{if(A||!re||!we)return;const ue=le.target,Ve=Zd.get(ue);Ve&&(clearTimeout(Ve),Zd.delete(ue))},Qt=je?el(u,{})??AY:U0,St=je?U0:el(d,{})??U0,Tt=[k,Qt.className,St.className].filter(Boolean).join(" "),Sn=(C||Qt.style||St.style)&&{...C,...Qt.style,...St.style};return{...z,...Qt,...St,href:ee?.href,ref:l,onClick:Qd([T,Oe]),onFocus:Qd([M,We]),onMouseEnter:Qd([R,Ae]),onMouseLeave:Qd([B,ke]),onTouchStart:Qd([$,be]),disabled:!!A,target:O,...Sn&&{style:Sn},...Tt&&{className:Tt},...A&&TY,...je&&kY,...r&&MY}}const U0={},AY={className:"active"},TY={role:"link","aria-disabled":!0},kY={"data-status":"active","aria-current":"page"},MY={"data-transitioning":"transitioning"},Zd=new WeakMap,PY={rootMargin:"100px"},Qd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},IC=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:s,...l}=EY(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:s},u)});function RY(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class DY extends h5{constructor(t){super(t),this.useMatch=n=>yi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>$C({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>RC({...n,from:this.id}),this.useLoaderData=n=>PC({...n,from:this.id}),this.useNavigate=()=>la({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(IC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function or(e){return new DY(e)}class $Y extends fY{constructor(t){super(t),this.useMatch=n=>yi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>$C({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>RC({...n,from:this.id}),this.useLoaderData=n=>PC({...n,from:this.id}),this.useNavigate=()=>la({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(IC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function IY(e){return new $Y(e)}function bM(e){return typeof e=="object"?new wM(e,{silent:!0}).createRoute(e):new wM(e,{silent:!0}).createRoute}class wM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=or(r);return a.isRoot=!1,a},this.silent=n?.silent}}class jM{constructor(t){this.useMatch=n=>yi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>$C({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>RC({...n,from:this.options.id}),this.useLoaderData=n=>PC({...n,from:this.options.id}),this.useNavigate=()=>{const n=zr();return la({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function SM(e){return typeof e=="object"?new jM(e):t=>new jM({id:e,...t})}function LY(){const e=zr(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:s}=Nr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=F0(s),u=s||n||a,d=F0(u),f=s||a,m=F0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Zs(e.latestLocation.href)!==Zs(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),Ap(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),Ap(()=>{l&&!s&&e.emit({type:"onLoad",...nl(e.state)})},[l,e,s]),Ap(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...nl(e.state)})},[f,m,e]),Ap(()=>{d&&!u&&(e.emit({type:"onResolved",...nl(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),WG(e))},[u,d,e]),null}function BY(e){const t=Nr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(MC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Wa(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Wa(n))return e.fallback?.(n);throw n},children:e.children})}function zY(){return i.jsx("p",{children:"Not Found"})}function Rc(e){return i.jsx(i.Fragment,{children:e.children})}function p5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx(zY,{})}function qY({children:e}){const t=zr();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` +`)+";$_TSR.c()"}}):null}function FY(){const e=zr();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||b_)(e.latestLocation),r=n!==b_(e.latestLocation)?n:void 0,a={storageKey:bv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(qY,{children:`(${n5.toString()})(${JSON.stringify(a)})`})}const v5=y.memo(function({matchId:t}){const n=zr(),r=Nr({select:N=>{const E=N.matches.find(O=>O.id===t);return pr(E),{routeId:E.routeId,ssr:E.ssr,_displayPending:E._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],s=a.options.pendingComponent??n.options.defaultPendingComponent,l=s?i.jsx(s,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??s??(a.options.errorComponent?.preload||m))?y.Suspense:Rc,g=u?MC:Rc,x=f?BY:Rc,j=Nr({select:N=>N.loadedAt}),w=Nr({select:N=>{const E=N.matches.findIndex(O=>O.id===t);return N.matches[E-1]?.routeId}}),b=a.isRoot?a.options.shellComponent??Rc:Rc;return i.jsxs(b,{children:[i.jsx(Fg.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||qg,onCatch:(N,E)=>{if(Wa(N))throw N;d?.(N,E)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(mY,{fallback:l,children:i.jsx(_M,{matchId:t})}):i.jsx(_M,{matchId:t})})})})}),w===ea&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx(UY,{}),i.jsx(FY,{})]}):null]})});function UY(){const e=zr(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...nl(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const _M=y.memo(function({matchId:t}){const n=zr(),{match:r,key:a,routeId:s}=Nr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[s],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(LC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=tu();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return pr(Wa(r.error)),p5(n,l,r.error);if(r.status==="redirected")throw pr(ci(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||qg;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),LC=y.memo(function(){const t=zr(),n=y.useContext(Fg),r=Nr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],s=Nr({select:f=>{const p=f.matches.find(g=>g.id===n);return pr(p),p.globalNotFound}}),l=Nr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(s)return p5(t,a,void 0);if(!l)return null;const d=i.jsx(v5,{matchId:l});return r===ea?i.jsx(y.Suspense,{fallback:u,children:d}):d});function HY(){const e=zr(),n=e.routesById[ea].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?Rc:y.Suspense,s=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(LY,{}),i.jsx(WY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:s}):s}function WY(){const e=zr(),t=Nr({select:a=>a.matches[0]?.id}),n=Nr({select:a=>a.loadedAt}),r=t?i.jsx(v5,{matchId:t}):null;return i.jsx(Fg.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(MC,{getResetKey:()=>n,errorComponent:qg,onCatch:a=>{a.message||a.toString()},children:r})})}function VY(){const e=zr();return Nr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s})},[e])}const GY=e=>new YY(e);class YY extends sY{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=bM,globalThis.createLazyFileRoute=SM):typeof window<"u"&&(window.createFileRoute=bM,window.createLazyFileRoute=SM);function KY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=m5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function XY({router:e,...t}){return i.jsx(KY,{router:e,...t,children:i.jsx(HY,{})})}function g5(e,t){return function(){return e.apply(t,arguments)}}const{toString:ZY}=Object.prototype,{getPrototypeOf:BC}=Object,{iterator:Ug,toStringTag:y5}=Symbol,Hg=(e=>t=>{const n=ZY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ka=e=>(e=e.toLowerCase(),t=>Hg(t)===e),Wg=e=>t=>typeof t===e,{isArray:Lu}=Array,iu=Wg("undefined");function Ah(e){return e!==null&&!iu(e)&&e.constructor!==null&&!iu(e.constructor)&&Dr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const x5=Ka("ArrayBuffer");function QY(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&x5(e.buffer),t}const JY=Wg("string"),Dr=Wg("function"),b5=Wg("number"),Th=e=>e!==null&&typeof e=="object",eK=e=>e===!0||e===!1,sv=e=>{if(Hg(e)!=="object")return!1;const t=BC(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(y5 in e)&&!(Ug in e)},tK=e=>{if(!Th(e)||Ah(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},nK=Ka("Date"),rK=Ka("File"),aK=Ka("Blob"),iK=Ka("FileList"),sK=e=>Th(e)&&Dr(e.pipe),oK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Dr(e.append)&&((t=Hg(e))==="formdata"||t==="object"&&Dr(e.toString)&&e.toString()==="[object FormData]"))},lK=Ka("URLSearchParams"),[cK,uK,dK,fK]=["ReadableStream","Request","Response","Headers"].map(Ka),hK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function kh(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),Lu(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Yo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,j5=e=>!iu(e)&&e!==Yo;function j_(){const{caseless:e,skipUndefined:t}=j5(this)&&this||{},n={},r=(a,s)=>{const l=e&&w5(n,s)||s;sv(n[l])&&sv(a)?n[l]=j_(n[l],a):sv(a)?n[l]=j_({},a):Lu(a)?n[l]=a.slice():(!t||!iu(a))&&(n[l]=a)};for(let a=0,s=arguments.length;a(kh(t,(a,s)=>{n&&Dr(a)?e[s]=g5(a,n):e[s]=a},{allOwnKeys:r}),e),pK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),vK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},gK=(e,t,n,r)=>{let a,s,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),s=a.length;s-- >0;)l=a[s],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&BC(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},yK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},xK=e=>{if(!e)return null;if(Lu(e))return e;let t=e.length;if(!b5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},bK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&BC(Uint8Array)),wK=(e,t)=>{const r=(e&&e[Ug]).call(e);let a;for(;(a=r.next())&&!a.done;){const s=a.value;t.call(e,s[0],s[1])}},jK=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},SK=Ka("HTMLFormElement"),_K=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),NM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),NK=Ka("RegExp"),S5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};kh(n,(a,s)=>{let l;(l=t(a,s,e))!==!1&&(r[s]=l||a)}),Object.defineProperties(e,r)},CK=e=>{S5(e,(t,n)=>{if(Dr(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Dr(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},OK=(e,t)=>{const n={},r=a=>{a.forEach(s=>{n[s]=!0})};return Lu(e)?r(e):r(String(e).split(t)),n},EK=()=>{},AK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function TK(e){return!!(e&&Dr(e.append)&&e[y5]==="FormData"&&e[Ug])}const kK=e=>{const t=new Array(10),n=(r,a)=>{if(Th(r)){if(t.indexOf(r)>=0)return;if(Ah(r))return r;if(!("toJSON"in r)){t[a]=r;const s=Lu(r)?[]:{};return kh(r,(l,u)=>{const d=n(l,a+1);!iu(d)&&(s[u]=d)}),t[a]=void 0,s}}return r};return n(e,0)},MK=Ka("AsyncFunction"),PK=e=>e&&(Th(e)||Dr(e))&&Dr(e.then)&&Dr(e.catch),_5=((e,t)=>e?setImmediate:t?((n,r)=>(Yo.addEventListener("message",({source:a,data:s})=>{a===Yo&&s===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Yo.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Dr(Yo.postMessage)),RK=typeof queueMicrotask<"u"?queueMicrotask.bind(Yo):typeof process<"u"&&process.nextTick||_5,DK=e=>e!=null&&Dr(e[Ug]),he={isArray:Lu,isArrayBuffer:x5,isBuffer:Ah,isFormData:oK,isArrayBufferView:QY,isString:JY,isNumber:b5,isBoolean:eK,isObject:Th,isPlainObject:sv,isEmptyObject:tK,isReadableStream:cK,isRequest:uK,isResponse:dK,isHeaders:fK,isUndefined:iu,isDate:nK,isFile:rK,isBlob:aK,isRegExp:NK,isFunction:Dr,isStream:sK,isURLSearchParams:lK,isTypedArray:bK,isFileList:iK,forEach:kh,merge:j_,extend:mK,trim:hK,stripBOM:pK,inherits:vK,toFlatObject:gK,kindOf:Hg,kindOfTest:Ka,endsWith:yK,toArray:xK,forEachEntry:wK,matchAll:jK,isHTMLForm:SK,hasOwnProperty:NM,hasOwnProp:NM,reduceDescriptors:S5,freezeMethods:CK,toObjectSet:OK,toCamelCase:_K,noop:EK,toFiniteNumber:AK,findKey:w5,global:Yo,isContextDefined:j5,isSpecCompliantForm:TK,toJSONObject:kK,isAsyncFn:MK,isThenable:PK,setImmediate:_5,asap:RK,isIterable:DK};function tt(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}he.inherits(tt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:he.toJSONObject(this.config),code:this.code,status:this.status}}});const N5=tt.prototype,C5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{C5[e]={value:e}});Object.defineProperties(tt,C5);Object.defineProperty(N5,"isAxiosError",{value:!0});tt.from=(e,t,n,r,a,s)=>{const l=Object.create(N5);he.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return tt.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",s&&Object.assign(l,s),l};const $K=null;function S_(e){return he.isPlainObject(e)||he.isArray(e)}function O5(e){return he.endsWith(e,"[]")?e.slice(0,-2):e}function CM(e,t,n){return e?e.concat(t).map(function(a,s){return a=O5(a),!n&&s?"["+a+"]":a}).join(n?".":""):t}function IK(e){return he.isArray(e)&&!e.some(S_)}const LK=he.toFlatObject(he,{},null,function(t){return/^is[A-Z]/.test(t)});function Vg(e,t,n){if(!he.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=he.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,b){return!he.isUndefined(b[w])});const r=n.metaTokens,a=n.visitor||m,s=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&he.isSpecCompliantForm(t);if(!he.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(he.isDate(j))return j.toISOString();if(he.isBoolean(j))return j.toString();if(!d&&he.isBlob(j))throw new tt("Blob is not supported. Use a Buffer instead.");return he.isArrayBuffer(j)||he.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,w,b){let N=j;if(j&&!b&&typeof j=="object"){if(he.endsWith(w,"{}"))w=r?w:w.slice(0,-2),j=JSON.stringify(j);else if(he.isArray(j)&&IK(j)||(he.isFileList(j)||he.endsWith(w,"[]"))&&(N=he.toArray(j)))return w=O5(w),N.forEach(function(O,A){!(he.isUndefined(O)||O===null)&&t.append(l===!0?CM([w],A,s):l===null?w:w+"[]",f(O))}),!1}return S_(j)?!0:(t.append(CM(b,w,s),f(j)),!1)}const p=[],g=Object.assign(LK,{defaultVisitor:m,convertValue:f,isVisitable:S_});function x(j,w){if(!he.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+w.join("."));p.push(j),he.forEach(j,function(N,E){(!(he.isUndefined(N)||N===null)&&a.call(t,N,he.isString(E)?E.trim():E,w,g))===!0&&x(N,w?w.concat(E):[E])}),p.pop()}}if(!he.isObject(e))throw new TypeError("data must be an object");return x(e),t}function OM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function zC(e,t){this._pairs=[],e&&Vg(e,this,t)}const E5=zC.prototype;E5.append=function(t,n){this._pairs.push([t,n])};E5.toString=function(t){const n=t?function(r){return t.call(this,r,OM)}:OM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function BK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function A5(e,t,n){if(!t)return e;const r=n&&n.encode||BK;he.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let s;if(a?s=a(t,n):s=he.isURLSearchParams(t)?t.toString():new zC(t,n).toString(r),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class EM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){he.forEach(this.handlers,function(r){r!==null&&t(r)})}}const T5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},zK=typeof URLSearchParams<"u"?URLSearchParams:zC,qK=typeof FormData<"u"?FormData:null,FK=typeof Blob<"u"?Blob:null,UK={isBrowser:!0,classes:{URLSearchParams:zK,FormData:qK,Blob:FK},protocols:["http","https","file","blob","url","data"]},qC=typeof window<"u"&&typeof document<"u",__=typeof navigator=="object"&&navigator||void 0,HK=qC&&(!__||["ReactNative","NativeScript","NS"].indexOf(__.product)<0),WK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",VK=qC&&window.location.href||"http://localhost",GK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:qC,hasStandardBrowserEnv:HK,hasStandardBrowserWebWorkerEnv:WK,navigator:__,origin:VK},Symbol.toStringTag,{value:"Module"})),hr={...GK,...UK};function YK(e,t){return Vg(e,new hr.classes.URLSearchParams,{visitor:function(n,r,a,s){return hr.isNode&&he.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function KK(e){return he.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function XK(e){const t={},n=Object.keys(e);let r;const a=n.length;let s;for(r=0;r=n.length;return l=!l&&he.isArray(a)?a.length:l,d?(he.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!he.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],s)&&he.isArray(a[l])&&(a[l]=XK(a[l])),!u)}if(he.isFormData(e)&&he.isFunction(e.entries)){const n={};return he.forEachEntry(e,(r,a)=>{t(KK(r),a,n,0)}),n}return null}function ZK(e,t,n){if(he.isString(e))try{return(t||JSON.parse)(e),he.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Mh={transitional:T5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,s=he.isObject(t);if(s&&he.isHTMLForm(t)&&(t=new FormData(t)),he.isFormData(t))return a?JSON.stringify(k5(t)):t;if(he.isArrayBuffer(t)||he.isBuffer(t)||he.isStream(t)||he.isFile(t)||he.isBlob(t)||he.isReadableStream(t))return t;if(he.isArrayBufferView(t))return t.buffer;if(he.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return YK(t,this.formSerializer).toString();if((u=he.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Vg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||a?(n.setContentType("application/json",!1),ZK(t)):t}],transformResponse:[function(t){const n=this.transitional||Mh.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(he.isResponse(t)||he.isReadableStream(t))return t;if(t&&he.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?tt.from(u,tt.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:hr.classes.FormData,Blob:hr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};he.forEach(["delete","get","head","post","put","patch"],e=>{Mh.headers[e]={}});const QK=he.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),JK=e=>{const t={};let n,r,a;return e&&e.split(` +`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&QK[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},AM=Symbol("internals");function Jd(e){return e&&String(e).trim().toLowerCase()}function ov(e){return e===!1||e==null?e:he.isArray(e)?e.map(ov):String(e)}function eX(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const tX=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function H0(e,t,n,r,a){if(he.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!he.isString(t)){if(he.isString(r))return t.indexOf(r)!==-1;if(he.isRegExp(r))return r.test(t)}}function nX(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function rX(e,t){const n=he.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,s,l){return this[r].call(this,t,a,s,l)},configurable:!0})})}let $r=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function s(u,d,f){const m=Jd(d);if(!m)throw new Error("header name must be a non-empty string");const p=he.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=ov(u))}const l=(u,d)=>he.forEach(u,(f,m)=>s(f,m,d));if(he.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(he.isString(t)&&(t=t.trim())&&!tX(t))l(JK(t),n);else if(he.isObject(t)&&he.isIterable(t)){let u={},d,f;for(const m of t){if(!he.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?he.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=Jd(t),t){const r=he.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return eX(a);if(he.isFunction(n))return n.call(this,a,r);if(he.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Jd(t),t){const r=he.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||H0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function s(l){if(l=Jd(l),l){const u=he.findKey(r,l);u&&(!n||H0(r,r[u],u,n))&&(delete r[u],a=!0)}}return he.isArray(t)?t.forEach(s):s(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const s=n[r];(!t||H0(this,this[s],s,t,!0))&&(delete this[s],a=!0)}return a}normalize(t){const n=this,r={};return he.forEach(this,(a,s)=>{const l=he.findKey(r,s);if(l){n[l]=ov(a),delete n[s];return}const u=t?nX(s):String(s).trim();u!==s&&delete n[s],n[u]=ov(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return he.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&he.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[AM]=this[AM]={accessors:{}}).accessors,a=this.prototype;function s(l){const u=Jd(l);r[u]||(rX(a,l),r[u]=!0)}return he.isArray(t)?t.forEach(s):s(t),this}};$r.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);he.reduceDescriptors($r.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});he.freezeMethods($r);function W0(e,t){const n=this||Mh,r=t||n,a=$r.from(r.headers);let s=r.data;return he.forEach(e,function(u){s=u.call(n,s,a.normalize(),t?t.status:void 0)}),a.normalize(),s}function M5(e){return!!(e&&e.__CANCEL__)}function Bu(e,t,n){tt.call(this,e??"canceled",tt.ERR_CANCELED,t,n),this.name="CanceledError"}he.inherits(Bu,tt,{__CANCEL__:!0});function P5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new tt("Request failed with status code "+n.status,[tt.ERR_BAD_REQUEST,tt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function aX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function iX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[s];l||(l=f),n[a]=d,r[a]=f;let p=s,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===s&&(s=(s+1)%e),f-l{n=m,a=null,s&&(clearTimeout(s),s=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,s||(s=setTimeout(()=>{s=null,l(a)},r-p)))},()=>a&&l(a)]}const Sv=(e,t,n=3)=>{let r=0;const a=iX(50,250);return sX(s=>{const l=s.loaded,u=s.lengthComputable?s.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:s,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},TM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},kM=e=>(...t)=>he.asap(()=>e(...t)),oX=hr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,hr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(hr.origin),hr.navigator&&/(msie|trident)/i.test(hr.navigator.userAgent)):()=>!0,lX=hr.hasStandardBrowserEnv?{write(e,t,n,r,a,s,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];he.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),he.isString(r)&&u.push(`path=${r}`),he.isString(a)&&u.push(`domain=${a}`),s===!0&&u.push("secure"),he.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function cX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function uX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function R5(e,t,n){let r=!cX(t);return e&&(r||n==!1)?uX(e,t):t}const MM=e=>e instanceof $r?{...e}:e;function ul(e,t){t=t||{};const n={};function r(f,m,p,g){return he.isPlainObject(f)&&he.isPlainObject(m)?he.merge.call({caseless:g},f,m):he.isPlainObject(m)?he.merge({},m):he.isArray(m)?m.slice():m}function a(f,m,p,g){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function s(f,m){if(!he.isUndefined(m))return r(void 0,m)}function l(f,m){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(MM(f),MM(m),p,!0)};return he.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);he.isUndefined(g)&&p!==u||(n[m]=g)}),n}const D5=e=>{const t=ul({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:s,headers:l,auth:u}=t;if(t.headers=l=$r.from(l),t.url=A5(R5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),he.isFormData(n)){if(hr.hasStandardBrowserEnv||hr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(he.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(hr.hasStandardBrowserEnv&&(r&&he.isFunction(r)&&(r=r(t)),r||r!==!1&&oX(t.url))){const d=a&&s&&lX.read(s);d&&l.set(a,d)}return t},dX=typeof XMLHttpRequest<"u",fX=dX&&function(e){return new Promise(function(n,r){const a=D5(e);let s=a.data;const l=$r.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function w(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function N(){if(!b)return;const O=$r.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:O,config:e,request:b};P5(function(T){n(T),w()},function(T){r(T),w()},C),b=null}"onloadend"in b?b.onloadend=N:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(N)},b.onabort=function(){b&&(r(new tt("Request aborted",tt.ECONNABORTED,e,b)),b=null)},b.onerror=function(A){const C=A&&A.message?A.message:"Network Error",k=new tt(C,tt.ERR_NETWORK,e,b);k.event=A||null,r(k),b=null},b.ontimeout=function(){let A=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||T5;a.timeoutErrorMessage&&(A=a.timeoutErrorMessage),r(new tt(A,C.clarifyTimeoutError?tt.ETIMEDOUT:tt.ECONNABORTED,e,b)),b=null},s===void 0&&l.setContentType(null),"setRequestHeader"in b&&he.forEach(l.toJSON(),function(A,C){b.setRequestHeader(C,A)}),he.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),u&&u!=="json"&&(b.responseType=a.responseType),f&&([g,j]=Sv(f,!0),b.addEventListener("progress",g)),d&&b.upload&&([p,x]=Sv(d),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=O=>{b&&(r(!O||O.type?new Bu(null,e,b):O),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const E=aX(a.url);if(E&&hr.protocols.indexOf(E)===-1){r(new tt("Unsupported protocol "+E+":",tt.ERR_BAD_REQUEST,e));return}b.send(s||null)})},hX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const s=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof tt?m:new Bu(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,s(new tt(`timeout ${t} of ms exceeded`,tt.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>he.asap(u),d}},mX=function*(e,t){let n=e.byteLength;if(n{const a=pX(e,t);let s=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=s+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},RM=64*1024,{isFunction:Tp}=he,gX=(({Request:e,Response:t})=>({Request:e,Response:t}))(he.global),{ReadableStream:DM,TextEncoder:$M}=he.global,IM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},yX=e=>{e=he.merge.call({skipUndefined:!0},gX,e);const{fetch:t,Request:n,Response:r}=e,a=t?Tp(t):typeof fetch=="function",s=Tp(n),l=Tp(r);if(!a)return!1;const u=a&&Tp(DM),d=a&&(typeof $M=="function"?(j=>w=>j.encode(w))(new $M):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=s&&u&&IM(()=>{let j=!1;const w=new n(hr.origin,{body:new DM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!w}),m=l&&u&&IM(()=>he.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(w,b)=>{let N=w&&w[j];if(N)return N.call(w);throw new tt(`Response type '${j}' is not supported`,tt.ERR_NOT_SUPPORT,b)})});const g=async j=>{if(j==null)return 0;if(he.isBlob(j))return j.size;if(he.isSpecCompliantForm(j))return(await new n(hr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(he.isArrayBufferView(j)||he.isArrayBuffer(j))return j.byteLength;if(he.isURLSearchParams(j)&&(j=j+""),he.isString(j))return(await d(j)).byteLength},x=async(j,w)=>{const b=he.toFiniteNumber(j.getContentLength());return b??g(w)};return async j=>{let{url:w,method:b,data:N,signal:E,cancelToken:O,timeout:A,onDownloadProgress:C,onUploadProgress:k,responseType:T,headers:M,withCredentials:R="same-origin",fetchOptions:B}=D5(j),$=t||fetch;T=T?(T+"").toLowerCase():"text";let H=hX([E,O&&O.toAbortSignal()],A),V=null;const q=H&&H.unsubscribe&&(()=>{H.unsubscribe()});let G;try{if(k&&f&&b!=="get"&&b!=="head"&&(G=await x(M,N))!==0){let I=new n(w,{method:"POST",body:N,duplex:"half"}),z;if(he.isFormData(N)&&(z=I.headers.get("content-type"))&&M.setContentType(z),I.body){const[Y,te]=TM(G,Sv(kM(k)));N=PM(I.body,RM,Y,te)}}he.isString(R)||(R=R?"include":"omit");const L=s&&"credentials"in n.prototype,D={...B,signal:H,method:b.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:L?R:void 0};V=s&&new n(w,D);let U=await(s?$(V,B):$(w,D));const K=m&&(T==="stream"||T==="response");if(m&&(C||K&&q)){const I={};["status","statusText","headers"].forEach(ae=>{I[ae]=U[ae]});const z=he.toFiniteNumber(U.headers.get("content-length")),[Y,te]=C&&TM(z,Sv(kM(C),!0))||[];U=new r(PM(U.body,RM,Y,()=>{te&&te(),q&&q()}),I)}T=T||"text";let J=await p[he.findKey(p,T)||"text"](U,j);return!K&&q&&q(),await new Promise((I,z)=>{P5(I,z,{data:J,headers:$r.from(U.headers),status:U.status,statusText:U.statusText,config:j,request:V})})}catch(L){throw q&&q(),L&&L.name==="TypeError"&&/Load failed|fetch/i.test(L.message)?Object.assign(new tt("Network Error",tt.ERR_NETWORK,j,V),{cause:L.cause||L}):tt.from(L,L&&L.code,j,V)}}},xX=new Map,$5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,s=[r,a,n];let l=s.length,u=l,d,f,m=xX;for(;u--;)d=s[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:yX(t)),m=f;return f};$5();const FC={http:$K,xhr:fX,fetch:{get:$5}};he.forEach(FC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const LM=e=>`- ${e}`,bX=e=>he.isFunction(e)||e===null||e===!1;function wX(e,t){e=he.isArray(e)?e:[e];const{length:n}=e;let r,a;const s={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : `+l.map(LM).join(` -`):" "+LM(l[0]):"as no adapter specified";throw new tt("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const I5={getAdapter:wX,adapters:qC};function W0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Bu(null,e)}function BM(e){return W0(e),e.headers=$r.from(e.headers),e.data=H0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),I5.getAdapter(e.adapter||Mh.adapter,e)(e).then(function(r){return W0(e),r.data=H0.call(e,e.transformResponse,r),r.headers=$r.from(r.headers),r},function(r){return M5(r)||(W0(e),r&&r.response&&(r.response.data=H0.call(e,e.transformResponse,r.response),r.response.headers=$r.from(r.response.headers))),Promise.reject(r)})}const L5="1.13.2",Gg={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Gg[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const zM={};Gg.transitional=function(t,n,r){function a(s,l){return"[Axios v"+L5+"] Transitional option '"+s+"'"+l+(r?". "+r:"")}return(s,l,u)=>{if(t===!1)throw new tt(a(l," has been removed"+(n?" in "+n:"")),tt.ERR_DEPRECATED);return n&&!zM[l]&&(zM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,l,u):!0}};Gg.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function jX(e,t,n){if(typeof e!="object")throw new tt("options must be an object",tt.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const s=r[a],l=t[s];if(l){const u=e[s],d=u===void 0||l(u,s,e);if(d!==!0)throw new tt("option "+s+" must be "+d,tt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new tt("Unknown option "+s,tt.ERR_BAD_OPTION)}}const lv={assertOptions:jX,validators:Gg},ri=lv.validators;let rl=class{constructor(t){this.defaults=t||{},this.interceptors={request:new EM,response:new EM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const s=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ul(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:s}=n;r!==void 0&&lv.assertOptions(r,{silentJSONParsing:ri.transitional(ri.boolean),forcedJSONParsing:ri.transitional(ri.boolean),clarifyTimeoutError:ri.transitional(ri.boolean)},!1),a!=null&&(he.isFunction(a)?n.paramsSerializer={serialize:a}:lv.assertOptions(a,{encode:ri.function,serialize:ri.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),lv.assertOptions(n,{baseUrl:ri.spelling("baseURL"),withXsrfToken:ri.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=s&&he.merge(s.common,s[n.method]);s&&he.forEach(["delete","get","head","post","put","patch","common"],j=>{delete s[j]}),n.headers=$r.concat(l,s);const u=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,u.unshift(w.fulfilled,w.rejected))});const f=[];this.interceptors.response.forEach(function(w){f.push(w.fulfilled,w.rejected)});let m,p=0,g;if(!d){const j=[BM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](a);r._listeners=null}),this.promise.then=a=>{let s;const l=new Promise(u=>{r.subscribe(u),s=u}).then(a);return l.cancel=function(){r.unsubscribe(s)},l},t(function(s,l,u){r.reason||(r.reason=new Bu(s,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new B5(function(a){t=a}),cancel:t}}};function _X(e){return function(n){return e.apply(null,n)}}function NX(e){return he.isObject(e)&&e.isAxiosError===!0}const __={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(__).forEach(([e,t])=>{__[t]=e});function z5(e){const t=new rl(e),n=g5(rl.prototype.request,t);return he.extend(n,rl.prototype,t,{allOwnKeys:!0}),he.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return z5(ul(e,a))},n}const vn=z5(Mh);vn.Axios=rl;vn.CanceledError=Bu;vn.CancelToken=SX;vn.isCancel=M5;vn.VERSION=L5;vn.toFormData=Vg;vn.AxiosError=tt;vn.Cancel=vn.CanceledError;vn.all=function(t){return Promise.all(t)};vn.spread=_X;vn.isAxiosError=NX;vn.mergeConfig=ul;vn.AxiosHeaders=$r;vn.formToJSON=e=>k5(he.isHTMLForm(e)?new FormData(e):e);vn.getAdapter=I5.getAdapter;vn.HttpStatusCode=__;vn.default=vn;const{Axios:CAe,AxiosError:OAe,CanceledError:EAe,isCancel:AAe,CancelToken:TAe,VERSION:kAe,all:MAe,Cancel:PAe,isAxiosError:RAe,spread:DAe,toFormData:$Ae,AxiosHeaders:IAe,HttpStatusCode:LAe,formToJSON:BAe,getAdapter:zAe,mergeConfig:qAe}=vn;function q5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),F5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),_v="-",qM=[],EX="arbitrary..",AX=e=>{const t=kX(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return TX(l);const u=l.split(_v),d=u[0]===""&&u.length>1?1:0;return U5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?CX(f,d):d:f||qM}return n[l]||qM}}},U5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],s=n.nextPart.get(a);if(s){const f=U5(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(_v):e.slice(t).join(_v),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?EX+r:void 0})(),kX=e=>{const{theme:t,classGroups:n}=e;return MX(n,t)},MX=(e,t)=>{const n=F5();for(const r in e){const a=e[r];FC(a,n,r,t)}return n},FC=(e,t,n,r)=>{const a=e.length;for(let s=0;s{if(typeof e=="string"){RX(e,t,n);return}if(typeof e=="function"){DX(e,t,n,r);return}$X(e,t,n,r)},RX=(e,t,n)=>{const r=e===""?t:H5(t,e);r.classGroupId=n},DX=(e,t,n,r)=>{if(IX(e)){FC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(OX(n,e))},$X=(e,t,n,r)=>{const a=Object.entries(e),s=a.length;for(let l=0;l{let n=e;const r=t.split(_v),a=r.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,LX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(s,l)=>{n[s]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=r[s])!==void 0)return a(s,l),l},set(s,l){s in n?n[s]=l:a(s,l)}}},N_="!",FM=":",BX=[],UM=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),zX=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const s=[];let l=0,u=0,d=0,f;const m=a.length;for(let w=0;wd?f-d:void 0;return UM(s,x,g,j)};if(t){const a=t+FM,s=r;r=l=>l.startsWith(a)?s(l.slice(a.length)):UM(BX,!1,l,void 0,!0)}if(n){const a=r;r=s=>n({className:s,parseClassName:a})}return r},qX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let s=0;s0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},FX=e=>({cache:LX(e.cacheSize),parseClassName:zX(e),sortModifiers:qX(e),...AX(e)}),UX=/\s+/,HX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:s}=t,l=[],u=e.trim().split(UX);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:w}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let b=!!w,N=r(b?j.substring(0,w):j);if(!N){if(!b){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}b=!1}const E=g.length===0?"":g.length===1?g[0]:s(g).join(":"),O=x?E+N_:E,A=O+N;if(l.indexOf(A)>-1)continue;l.push(A);const C=a(N,b);for(let k=0;k0?" "+d:d)}return d},WX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,s;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=FX(f),r=n.cache.get,a=n.cache.set,s=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=HX(d,n);return a(d,m),m};return s=l,(...d)=>s(WX(...d))},GX=[],Rn=e=>{const t=n=>n[e]||GX;return t.isThemeGetter=!0,t},V5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,G5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,YX=/^\d+\/\d+$/,KX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,XX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,QX=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,JX=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,_c=e=>YX.test(e),ot=e=>!!e&&!Number.isNaN(Number(e)),qs=e=>!!e&&Number.isInteger(Number(e)),V0=e=>e.endsWith("%")&&ot(e.slice(0,-1)),Wi=e=>KX.test(e),eZ=()=>!0,tZ=e=>XX.test(e)&&!ZX.test(e),Y5=()=>!1,nZ=e=>QX.test(e),rZ=e=>JX.test(e),aZ=e=>!Pe(e)&&!Re(e),iZ=e=>zu(e,Z5,Y5),Pe=e=>V5.test(e),zo=e=>zu(e,Q5,tZ),G0=e=>zu(e,uZ,ot),HM=e=>zu(e,K5,Y5),sZ=e=>zu(e,X5,rZ),kp=e=>zu(e,J5,nZ),Re=e=>G5.test(e),ef=e=>qu(e,Q5),oZ=e=>qu(e,dZ),WM=e=>qu(e,K5),lZ=e=>qu(e,Z5),cZ=e=>qu(e,X5),Mp=e=>qu(e,J5,!0),zu=(e,t,n)=>{const r=V5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},qu=(e,t,n=!1)=>{const r=G5.exec(e);return r?r[1]?t(r[1]):n:!1},K5=e=>e==="position"||e==="percentage",X5=e=>e==="image"||e==="url",Z5=e=>e==="length"||e==="size"||e==="bg-size",Q5=e=>e==="length",uZ=e=>e==="number",dZ=e=>e==="family-name",J5=e=>e==="shadow",fZ=()=>{const e=Rn("color"),t=Rn("font"),n=Rn("text"),r=Rn("font-weight"),a=Rn("tracking"),s=Rn("leading"),l=Rn("breakpoint"),u=Rn("container"),d=Rn("spacing"),f=Rn("radius"),m=Rn("shadow"),p=Rn("inset-shadow"),g=Rn("text-shadow"),x=Rn("drop-shadow"),j=Rn("blur"),w=Rn("perspective"),b=Rn("aspect"),N=Rn("ease"),E=Rn("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...A(),Re,Pe],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],M=()=>[Re,Pe,d],R=()=>[_c,"full","auto",...M()],B=()=>[qs,"none","subgrid",Re,Pe],$=()=>["auto",{span:["full",qs,Re,Pe]},qs,Re,Pe],H=()=>[qs,"auto",Re,Pe],V=()=>["auto","min","max","fr",Re,Pe],q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...M()],D=()=>[_c,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],U=()=>[e,Re,Pe],K=()=>[...A(),WM,HM,{position:[Re,Pe]}],J=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",lZ,iZ,{size:[Re,Pe]}],z=()=>[V0,ef,zo],Y=()=>["","none","full",f,Re,Pe],te=()=>["",ot,ef,zo],ae=()=>["solid","dashed","dotted","double"],ge=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[ot,V0,WM,HM],Se=()=>["","none",j,Re,Pe],re=()=>["none",ot,Re,Pe],we=()=>["none",ot,Re,Pe],je=()=>[ot,Re,Pe],fe=()=>[_c,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Wi],breakpoint:[Wi],color:[eZ],container:[Wi],"drop-shadow":[Wi],ease:["in","out","in-out"],font:[aZ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Wi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Wi],shadow:[Wi],spacing:["px",ot],text:[Wi],"text-shadow":[Wi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",_c,Pe,Re,b]}],container:["container"],columns:[{columns:[ot,Pe,Re,u]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[qs,"auto",Re,Pe]}],basis:[{basis:[_c,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ot,_c,"auto","initial","none",Pe]}],grow:[{grow:["",ot,Re,Pe]}],shrink:[{shrink:["",ot,Re,Pe]}],order:[{order:[qs,"first","last","none",Re,Pe]}],"grid-cols":[{"grid-cols":B()}],"col-start-end":[{col:$()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":B()}],"row-start-end":[{row:$()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...q(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...q()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":q()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:D()}],w:[{w:[u,"screen",...D()]}],"min-w":[{"min-w":[u,"screen","none",...D()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...D()]}],h:[{h:["screen","lh",...D()]}],"min-h":[{"min-h":["screen","lh","none",...D()]}],"max-h":[{"max-h":["screen","lh",...D()]}],"font-size":[{text:["base",n,ef,zo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Re,G0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",V0,Pe]}],"font-family":[{font:[oZ,Pe,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,Re,Pe]}],"line-clamp":[{"line-clamp":[ot,"none",Re,G0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",Re,Pe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Re,Pe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:U()}],"text-color":[{text:U()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ae(),"wavy"]}],"text-decoration-thickness":[{decoration:[ot,"from-font","auto",Re,zo]}],"text-decoration-color":[{decoration:U()}],"underline-offset":[{"underline-offset":[ot,"auto",Re,Pe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Re,Pe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Re,Pe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:K()}],"bg-repeat":[{bg:J()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},qs,Re,Pe],radial:["",Re,Pe],conic:[qs,Re,Pe]},cZ,sZ]}],"bg-color":[{bg:U()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:U()}],"gradient-via":[{via:U()}],"gradient-to":[{to:U()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:te()}],"border-w-x":[{"border-x":te()}],"border-w-y":[{"border-y":te()}],"border-w-s":[{"border-s":te()}],"border-w-e":[{"border-e":te()}],"border-w-t":[{"border-t":te()}],"border-w-r":[{"border-r":te()}],"border-w-b":[{"border-b":te()}],"border-w-l":[{"border-l":te()}],"divide-x":[{"divide-x":te()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":te()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ae(),"hidden","none"]}],"divide-style":[{divide:[...ae(),"hidden","none"]}],"border-color":[{border:U()}],"border-color-x":[{"border-x":U()}],"border-color-y":[{"border-y":U()}],"border-color-s":[{"border-s":U()}],"border-color-e":[{"border-e":U()}],"border-color-t":[{"border-t":U()}],"border-color-r":[{"border-r":U()}],"border-color-b":[{"border-b":U()}],"border-color-l":[{"border-l":U()}],"divide-color":[{divide:U()}],"outline-style":[{outline:[...ae(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ot,Re,Pe]}],"outline-w":[{outline:["",ot,ef,zo]}],"outline-color":[{outline:U()}],shadow:[{shadow:["","none",m,Mp,kp]}],"shadow-color":[{shadow:U()}],"inset-shadow":[{"inset-shadow":["none",p,Mp,kp]}],"inset-shadow-color":[{"inset-shadow":U()}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:U()}],"ring-offset-w":[{"ring-offset":[ot,zo]}],"ring-offset-color":[{"ring-offset":U()}],"inset-ring-w":[{"inset-ring":te()}],"inset-ring-color":[{"inset-ring":U()}],"text-shadow":[{"text-shadow":["none",g,Mp,kp]}],"text-shadow-color":[{"text-shadow":U()}],opacity:[{opacity:[ot,Re,Pe]}],"mix-blend":[{"mix-blend":[...ge(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ge()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ot]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":U()}],"mask-image-linear-to-color":[{"mask-linear-to":U()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":U()}],"mask-image-t-to-color":[{"mask-t-to":U()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":U()}],"mask-image-r-to-color":[{"mask-r-to":U()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":U()}],"mask-image-b-to-color":[{"mask-b-to":U()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":U()}],"mask-image-l-to-color":[{"mask-l-to":U()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":U()}],"mask-image-x-to-color":[{"mask-x-to":U()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":U()}],"mask-image-y-to-color":[{"mask-y-to":U()}],"mask-image-radial":[{"mask-radial":[Re,Pe]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":U()}],"mask-image-radial-to-color":[{"mask-radial-to":U()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":A()}],"mask-image-conic-pos":[{"mask-conic":[ot]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":U()}],"mask-image-conic-to-color":[{"mask-conic-to":U()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:K()}],"mask-repeat":[{mask:J()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Re,Pe]}],filter:[{filter:["","none",Re,Pe]}],blur:[{blur:Se()}],brightness:[{brightness:[ot,Re,Pe]}],contrast:[{contrast:[ot,Re,Pe]}],"drop-shadow":[{"drop-shadow":["","none",x,Mp,kp]}],"drop-shadow-color":[{"drop-shadow":U()}],grayscale:[{grayscale:["",ot,Re,Pe]}],"hue-rotate":[{"hue-rotate":[ot,Re,Pe]}],invert:[{invert:["",ot,Re,Pe]}],saturate:[{saturate:[ot,Re,Pe]}],sepia:[{sepia:["",ot,Re,Pe]}],"backdrop-filter":[{"backdrop-filter":["","none",Re,Pe]}],"backdrop-blur":[{"backdrop-blur":Se()}],"backdrop-brightness":[{"backdrop-brightness":[ot,Re,Pe]}],"backdrop-contrast":[{"backdrop-contrast":[ot,Re,Pe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ot,Re,Pe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ot,Re,Pe]}],"backdrop-invert":[{"backdrop-invert":["",ot,Re,Pe]}],"backdrop-opacity":[{"backdrop-opacity":[ot,Re,Pe]}],"backdrop-saturate":[{"backdrop-saturate":[ot,Re,Pe]}],"backdrop-sepia":[{"backdrop-sepia":["",ot,Re,Pe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Re,Pe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ot,"initial",Re,Pe]}],ease:[{ease:["linear","initial",N,Re,Pe]}],delay:[{delay:[ot,Re,Pe]}],animate:[{animate:["none",E,Re,Pe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,Re,Pe]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:we()}],"scale-x":[{"scale-x":we()}],"scale-y":[{"scale-y":we()}],"scale-z":[{"scale-z":we()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[Re,Pe,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:fe()}],"translate-x":[{"translate-x":fe()}],"translate-y":[{"translate-y":fe()}],"translate-z":[{"translate-z":fe()}],"translate-none":["translate-none"],accent:[{accent:U()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:U()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Re,Pe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Re,Pe]}],fill:[{fill:["none",...U()]}],"stroke-w":[{stroke:[ot,ef,zo,G0]}],stroke:[{stroke:["none",...U()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},hZ=VX(fZ);function ce(...e){return hZ(Je(e))}const Xe=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("rounded-xl border bg-card text-card-foreground shadow",e),...t}));Xe.displayName="Card";const pt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex flex-col space-y-1.5 p-6",e),...t}));pt.displayName="CardHeader";const vt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("font-semibold leading-none tracking-tight",e),...t}));vt.displayName="CardTitle";const Wn=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));Wn.displayName="CardDescription";const Ct=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("p-6 pt-0",e),...t}));Ct.displayName="CardContent";const eB=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex items-center p-6 pt-0",e),...t}));eB.displayName="CardFooter";function _e(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function mZ(e,t){const n=y.createContext(t),r=s=>{const{children:l,...u}=s,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(s){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function gr(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,pZ(a,...t)]}function pZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function VM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ir(...e){return t=>{let n=!1;const r=e.map(a=>{const s=VM(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(yZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=bZ(a),u=xZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gZ=Symbol("radix.slottable");function yZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gZ}function xZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Ph(e){const t=e+"CollectionProvider",[n,r]=gr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=w=>{const{scope:b,children:N}=w,E=W.useRef(null),O=W.useRef(new Map).current;return i.jsx(a,{scope:b,itemMap:O,collectionRef:E,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=GM(u),f=W.forwardRef((w,b)=>{const{scope:N,children:E}=w,O=s(u,N),A=Ue(b,O.collectionRef);return i.jsx(d,{ref:A,children:E})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=GM(m),x=W.forwardRef((w,b)=>{const{scope:N,children:E,...O}=w,A=W.useRef(null),C=Ue(b,A),k=s(m,N);return W.useEffect(()=>(k.itemMap.set(A,{ref:A,...O}),()=>void k.itemMap.delete(A))),i.jsx(g,{[p]:"",ref:C,children:E})});x.displayName=m;function j(w){const b=s(e+"CollectionConsumer",w);return W.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const O=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(b.itemMap.values()).sort((k,T)=>O.indexOf(k.ref.current)-O.indexOf(T.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Yn=globalThis?.document?y.useLayoutEffect:()=>{},wZ=OC[" useId ".trim().toString()]||(()=>{}),jZ=0;function Gn(e){const[t,n]=y.useState(wZ());return Yn(()=>{n(r=>r??String(jZ++))},[e]),t?`radix-${t}`:""}function SZ(e){const t=_Z(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(CZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function _Z(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=EZ(a),u=OZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var NZ=Symbol("radix.slottable");function CZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===NZ}function OZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function EZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var AZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$e=AZ.reduce((e,t)=>{const n=SZ(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function UC(e,t){e&&Sl.flushSync(()=>e.dispatchEvent(t))}function ln(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var TZ=OC[" useInsertionEffect ".trim().toString()]||Yn;function Ea({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,l]=kZ({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=MZ(m)?m(e):m;p!==e&&l.current?.(p)}else s(m)},[u,e,s,l]);return[d,f]}function kZ({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),s=y.useRef(t);return TZ(()=>{s.current=t},[t]),y.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function MZ(e){return typeof e=="function"}var PZ=y.createContext(void 0);function Fu(e){const t=y.useContext(PZ);return e||t||"ltr"}var Y0="rovingFocusGroup.onEntryFocus",RZ={bubbles:!1,cancelable:!0},Rh="RovingFocusGroup",[C_,tB,DZ]=Ph(Rh),[$Z,Yg]=gr(Rh,[DZ]),[IZ,LZ]=$Z(Rh),nB=y.forwardRef((e,t)=>i.jsx(C_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(C_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(BZ,{...e,ref:t})})}));nB.displayName=Rh;var BZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=Ue(t,g),j=Fu(s),[w,b]=Ea({prop:l,defaultProp:u??null,onChange:d,caller:Rh}),[N,E]=y.useState(!1),O=ln(f),A=tB(n),C=y.useRef(!1),[k,T]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(Y0,O),()=>M.removeEventListener(Y0,O)},[O]),i.jsx(IZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:w,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>T(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>T(M=>M-1),[]),children:i.jsx($e.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:_e(e.onMouseDown,()=>{C.current=!0}),onFocus:_e(e.onFocus,M=>{const R=!C.current;if(M.target===M.currentTarget&&R&&!N){const B=new CustomEvent(Y0,RZ);if(M.currentTarget.dispatchEvent(B),!B.defaultPrevented){const $=A().filter(L=>L.focusable),H=$.find(L=>L.active),V=$.find(L=>L.id===w),G=[H,V,...$].filter(Boolean).map(L=>L.ref.current);iB(G,m)}}C.current=!1}),onBlur:_e(e.onBlur,()=>E(!1))})})}),rB="RovingFocusGroupItem",aB=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:l,...u}=e,d=Gn(),f=s||d,m=LZ(rB,n),p=m.currentTabStopId===f,g=tB(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:w}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(C_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx($e.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:_e(e.onMouseDown,b=>{r?m.onItemFocus(f):b.preventDefault()}),onFocus:_e(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:_e(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){m.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const N=FZ(b,m.orientation,m.dir);if(N!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let O=g().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")O.reverse();else if(N==="prev"||N==="next"){N==="prev"&&O.reverse();const A=O.indexOf(b.currentTarget);O=m.loop?UZ(O,A+1):O.slice(A+1)}setTimeout(()=>iB(O))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:w!=null}):l})})});aB.displayName=rB;var zZ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function qZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function FZ(e,t,n){const r=qZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return zZ[r]}function iB(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function UZ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var sB=nB,oB=aB;function HZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Bn=e=>{const{present:t,children:n}=e,r=WZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),s=Ue(r.ref,VZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:s}):null};Bn.displayName="Presence";function WZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),s=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=HZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Pp(r.current);s.current=u==="mounted"?f:"none"},[u]),Yn(()=>{const f=r.current,m=a.current;if(m!==e){const g=s.current,x=Pp(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Yn(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const w=Pp(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&w&&(d("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=x=>{x.target===t&&(s.current=Pp(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Pp(e){return e?.animationName||"none"}function VZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Kg="Tabs",[GZ]=gr(Kg,[Yg]),lB=Yg(),[YZ,HC]=GZ(Kg),cB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Fu(u),[p,g]=Ea({prop:r,onChange:a,defaultProp:s??"",caller:Kg});return i.jsx(YZ,{scope:n,baseId:Gn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx($e.div,{dir:m,"data-orientation":l,...f,ref:t})})});cB.displayName=Kg;var uB="TabsList",dB=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=HC(uB,n),l=lB(n);return i.jsx(sB,{asChild:!0,...l,orientation:s.orientation,dir:s.dir,loop:r,children:i.jsx($e.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});dB.displayName=uB;var fB="TabsTrigger",hB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,l=HC(fB,n),u=lB(n),d=vB(l.baseId,r),f=gB(l.baseId,r),m=r===l.value;return i.jsx(oB,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx($e.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...s,ref:t,onMouseDown:_e(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:_e(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:_e(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});hB.displayName=fB;var mB="TabsContent",pB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...l}=e,u=HC(mB,n),d=vB(u.baseId,r),f=gB(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(Bn,{present:a||m,children:({present:g})=>i.jsx($e.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&s})})});pB.displayName=mB;function vB(e,t){return`${e}-trigger-${t}`}function gB(e,t){return`${e}-content-${t}`}var KZ=cB,yB=dB,xB=hB,bB=pB;const dl=KZ,eo=y.forwardRef(({className:e,...t},n)=>i.jsx(yB,{ref:n,className:ce("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));eo.displayName=yB.displayName;const Rt=y.forwardRef(({className:e,...t},n)=>i.jsx(xB,{ref:n,className:ce("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Rt.displayName=xB.displayName;const sn=y.forwardRef(({className:e,...t},n)=>i.jsx(bB,{ref:n,className:ce("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));sn.displayName=bB.displayName;function Rf(e,[t,n]){return Math.min(n,Math.max(t,e))}function XZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var WC="ScrollArea",[wB]=gr(WC),[ZZ,Ta]=wB(WC),jB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:s=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(0),[O,A]=y.useState(0),[C,k]=y.useState(!1),[T,M]=y.useState(!1),R=Ue(t,$=>d($)),B=Fu(a);return i.jsx(ZZ,{scope:n,type:r,dir:B,scrollHideDelay:s,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:w,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:E,onCornerHeightChange:A,children:i.jsx($e.div,{dir:B,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":O+"px",...e.style}})})});jB.displayName=WC;var SB="ScrollAreaViewport",_B=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...s}=e,l=Ta(SB,n),u=y.useRef(null),d=Ue(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx($e.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});_B.displayName=SB;var ji="ScrollAreaScrollbar",VC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)}),[u,s,l]),a.type==="hover"?i.jsx(QZ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(JZ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(NB,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(GC,{...r,ref:t}):null});VC.displayName=ji;var QZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),[s,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(Bn,{present:n||s,children:i.jsx(NB,{"data-state":s?"visible":"hidden",...r,ref:t})})}),JZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),s=e.orientation==="horizontal",l=Zg(()=>d("SCROLL_END"),100),[u,d]=XZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=s?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,s,d,l]),i.jsx(Bn,{present:n||u!=="hidden",children:i.jsx(GC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:_e(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:_e(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),NB=y.forwardRef((e,t)=>{const n=Ta(ji,e.__scopeScrollArea),{forceMount:r,...a}=e,[s,l]=y.useState(!1),u=e.orientation==="horizontal",d=Zg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Ta(ji,e.__scopeScrollArea),s=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=TB(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>s.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return iQ(g,l.current,u,x)}return n==="horizontal"?i.jsx(eQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollLeft,x=YM(g,u,a.dir);s.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(tQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollTop,x=YM(g,u);s.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),eQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ta(ji,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(OB,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Xg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),MB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:Cv(l.paddingLeft),paddingEnd:Cv(l.paddingRight)}})}})}),tQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ta(ji,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(OB,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Xg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),MB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:Cv(l.paddingTop),paddingEnd:Cv(l.paddingBottom)}})}})}),[nQ,CB]=wB(ji),OB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Ta(ji,n),[j,w]=y.useState(null),b=Ue(t,R=>w(R)),N=y.useRef(null),E=y.useRef(""),O=x.viewport,A=r.content-r.viewport,C=ln(m),k=ln(d),T=Zg(p,10);function M(R){if(N.current){const B=R.clientX-N.current.left,$=R.clientY-N.current.top;f({x:B,y:$})}}return y.useEffect(()=>{const R=B=>{const $=B.target;j?.contains($)&&C(B,A)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[O,j,A,C]),y.useEffect(k,[r,k]),su(j,T),su(x.content,T),i.jsx(nQ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:ln(s),onThumbPointerUp:ln(l),onThumbPositionChange:k,onThumbPointerDown:ln(u),children:i.jsx($e.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:_e(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),N.current=j.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(R))}),onPointerMove:_e(e.onPointerMove,M),onPointerUp:_e(e.onPointerUp,R=>{const B=R.target;B.hasPointerCapture(R.pointerId)&&B.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),Nv="ScrollAreaThumb",EB=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=CB(Nv,e.__scopeScrollArea);return i.jsx(Bn,{present:n||a.hasThumb,children:i.jsx(rQ,{ref:t,...r})})}),rQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,s=Ta(Nv,n),l=CB(Nv,n),{onThumbPositionChange:u}=l,d=Ue(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Zg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=s.viewport;if(p){const g=()=>{if(m(),!f.current){const x=sQ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[s.viewport,m,u]),i.jsx($e.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:_e(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,w=p.clientY-x.top;l.onThumbPointerDown({x:j,y:w})}),onPointerUp:_e(e.onPointerUp,l.onThumbPointerUp)})});EB.displayName=Nv;var YC="ScrollAreaCorner",AB=y.forwardRef((e,t)=>{const n=Ta(YC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(aQ,{...e,ref:t}):null});AB.displayName=YC;var aQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Ta(YC,n),[s,l]=y.useState(0),[u,d]=y.useState(0),f=!!(s&&u);return su(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),su(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx($e.div,{...r,ref:t,style:{width:s,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Cv(e){return e?parseInt(e,10):0}function TB(e,t){const n=e/t;return isNaN(n)?0:n}function Xg(e){const t=TB(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function iQ(e,t,n,r="ltr"){const a=Xg(n),s=a/2,l=t||s,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return kB([d,f],p)(e)}function YM(e,t,n="ltr"){const r=Xg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,u=s-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Rf(e,d);return kB([0,l],[0,u])(f)}function kB(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function MB(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const s={left:e.scrollLeft,top:e.scrollTop},l=n.left!==s.left,u=n.top!==s.top;(l||u)&&t(),n=s,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Zg(e,t){const n=ln(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function su(e,t){const n=ln(t);Yn(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var PB=jB,oQ=_B,lQ=AB;const Wt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(PB,{ref:r,className:ce("relative overflow-hidden",e),...n,children:[i.jsx(oQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(RB,{}),i.jsx(lQ,{})]}));Wt.displayName=PB.displayName;const RB=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(VC,{ref:r,orientation:t,className:ce("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(EB,{className:"relative flex-1 rounded-full bg-border"})}));RB.displayName=VC.displayName;function KM({className:e,...t}){return i.jsx("div",{className:ce("animate-pulse rounded-md bg-primary/10",e),...t})}function cQ(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l);u.displayName=s+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,uQ(a,...t)]}function uQ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var dQ=Symbol.for("react.lazy"),Ov=OC[" use ".trim().toString()];function fQ(e){return typeof e=="object"&&e!==null&&"then"in e}function DB(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===dQ&&"_payload"in e&&fQ(e._payload)}function Dh(e){const t=mQ(e),n=y.forwardRef((r,a)=>{let{children:s,...l}=r;DB(s)&&typeof Ov=="function"&&(s=Ov(s._payload));const u=y.Children.toArray(s),d=u.find(vQ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var hQ=Dh("Slot");function mQ(e){const t=y.forwardRef((n,r)=>{let{children:a,...s}=n;if(DB(a)&&typeof Ov=="function"&&(a=Ov(a._payload)),y.isValidElement(a)){const l=yQ(a),u=gQ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var pQ=Symbol("radix.slottable");function vQ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===pQ}function gQ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function yQ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var xQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$B=xQ.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),KC="Progress",XC=100,[bQ]=cQ(KC),[wQ,jQ]=bQ(KC),IB=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:s=SQ,...l}=e;(a||a===0)&&!XM(a)&&console.error(_Q(`${a}`,"Progress"));const u=XM(a)?a:XC;r!==null&&!ZM(r,u)&&console.error(NQ(`${r}`,"Progress"));const d=ZM(r,u)?r:null,f=Ev(d)?s(d,u):void 0;return i.jsx(wQ,{scope:n,value:d,max:u,children:i.jsx($B.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":Ev(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":zB(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});IB.displayName=KC;var LB="ProgressIndicator",BB=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=jQ(LB,n);return i.jsx($B.div,{"data-state":zB(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});BB.displayName=LB;function SQ(e,t){return`${Math.round(e/t*100)}%`}function zB(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Ev(e){return typeof e=="number"}function XM(e){return Ev(e)&&!isNaN(e)&&e>0}function ZM(e,t){return Ev(e)&&!isNaN(e)&&e<=t&&e>=0}function _Q(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${XC}\`.`}function NQ(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: +`):" "+LM(l[0]):"as no adapter specified";throw new tt("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const I5={getAdapter:wX,adapters:FC};function V0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Bu(null,e)}function BM(e){return V0(e),e.headers=$r.from(e.headers),e.data=W0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),I5.getAdapter(e.adapter||Mh.adapter,e)(e).then(function(r){return V0(e),r.data=W0.call(e,e.transformResponse,r),r.headers=$r.from(r.headers),r},function(r){return M5(r)||(V0(e),r&&r.response&&(r.response.data=W0.call(e,e.transformResponse,r.response),r.response.headers=$r.from(r.response.headers))),Promise.reject(r)})}const L5="1.13.2",Gg={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Gg[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const zM={};Gg.transitional=function(t,n,r){function a(s,l){return"[Axios v"+L5+"] Transitional option '"+s+"'"+l+(r?". "+r:"")}return(s,l,u)=>{if(t===!1)throw new tt(a(l," has been removed"+(n?" in "+n:"")),tt.ERR_DEPRECATED);return n&&!zM[l]&&(zM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,l,u):!0}};Gg.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function jX(e,t,n){if(typeof e!="object")throw new tt("options must be an object",tt.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const s=r[a],l=t[s];if(l){const u=e[s],d=u===void 0||l(u,s,e);if(d!==!0)throw new tt("option "+s+" must be "+d,tt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new tt("Unknown option "+s,tt.ERR_BAD_OPTION)}}const lv={assertOptions:jX,validators:Gg},ri=lv.validators;let rl=class{constructor(t){this.defaults=t||{},this.interceptors={request:new EM,response:new EM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const s=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ul(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:s}=n;r!==void 0&&lv.assertOptions(r,{silentJSONParsing:ri.transitional(ri.boolean),forcedJSONParsing:ri.transitional(ri.boolean),clarifyTimeoutError:ri.transitional(ri.boolean)},!1),a!=null&&(he.isFunction(a)?n.paramsSerializer={serialize:a}:lv.assertOptions(a,{encode:ri.function,serialize:ri.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),lv.assertOptions(n,{baseUrl:ri.spelling("baseURL"),withXsrfToken:ri.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=s&&he.merge(s.common,s[n.method]);s&&he.forEach(["delete","get","head","post","put","patch","common"],j=>{delete s[j]}),n.headers=$r.concat(l,s);const u=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,u.unshift(w.fulfilled,w.rejected))});const f=[];this.interceptors.response.forEach(function(w){f.push(w.fulfilled,w.rejected)});let m,p=0,g;if(!d){const j=[BM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](a);r._listeners=null}),this.promise.then=a=>{let s;const l=new Promise(u=>{r.subscribe(u),s=u}).then(a);return l.cancel=function(){r.unsubscribe(s)},l},t(function(s,l,u){r.reason||(r.reason=new Bu(s,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new B5(function(a){t=a}),cancel:t}}};function _X(e){return function(n){return e.apply(null,n)}}function NX(e){return he.isObject(e)&&e.isAxiosError===!0}const N_={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(N_).forEach(([e,t])=>{N_[t]=e});function z5(e){const t=new rl(e),n=g5(rl.prototype.request,t);return he.extend(n,rl.prototype,t,{allOwnKeys:!0}),he.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return z5(ul(e,a))},n}const vn=z5(Mh);vn.Axios=rl;vn.CanceledError=Bu;vn.CancelToken=SX;vn.isCancel=M5;vn.VERSION=L5;vn.toFormData=Vg;vn.AxiosError=tt;vn.Cancel=vn.CanceledError;vn.all=function(t){return Promise.all(t)};vn.spread=_X;vn.isAxiosError=NX;vn.mergeConfig=ul;vn.AxiosHeaders=$r;vn.formToJSON=e=>k5(he.isHTMLForm(e)?new FormData(e):e);vn.getAdapter=I5.getAdapter;vn.HttpStatusCode=N_;vn.default=vn;const{Axios:CAe,AxiosError:OAe,CanceledError:EAe,isCancel:AAe,CancelToken:TAe,VERSION:kAe,all:MAe,Cancel:PAe,isAxiosError:RAe,spread:DAe,toFormData:$Ae,AxiosHeaders:IAe,HttpStatusCode:LAe,formToJSON:BAe,getAdapter:zAe,mergeConfig:qAe}=vn;function q5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),F5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),_v="-",qM=[],EX="arbitrary..",AX=e=>{const t=kX(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return TX(l);const u=l.split(_v),d=u[0]===""&&u.length>1?1:0;return U5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?CX(f,d):d:f||qM}return n[l]||qM}}},U5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],s=n.nextPart.get(a);if(s){const f=U5(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(_v):e.slice(t).join(_v),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?EX+r:void 0})(),kX=e=>{const{theme:t,classGroups:n}=e;return MX(n,t)},MX=(e,t)=>{const n=F5();for(const r in e){const a=e[r];UC(a,n,r,t)}return n},UC=(e,t,n,r)=>{const a=e.length;for(let s=0;s{if(typeof e=="string"){RX(e,t,n);return}if(typeof e=="function"){DX(e,t,n,r);return}$X(e,t,n,r)},RX=(e,t,n)=>{const r=e===""?t:H5(t,e);r.classGroupId=n},DX=(e,t,n,r)=>{if(IX(e)){UC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(OX(n,e))},$X=(e,t,n,r)=>{const a=Object.entries(e),s=a.length;for(let l=0;l{let n=e;const r=t.split(_v),a=r.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,LX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(s,l)=>{n[s]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=r[s])!==void 0)return a(s,l),l},set(s,l){s in n?n[s]=l:a(s,l)}}},C_="!",FM=":",BX=[],UM=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),zX=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const s=[];let l=0,u=0,d=0,f;const m=a.length;for(let w=0;wd?f-d:void 0;return UM(s,x,g,j)};if(t){const a=t+FM,s=r;r=l=>l.startsWith(a)?s(l.slice(a.length)):UM(BX,!1,l,void 0,!0)}if(n){const a=r;r=s=>n({className:s,parseClassName:a})}return r},qX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let s=0;s0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},FX=e=>({cache:LX(e.cacheSize),parseClassName:zX(e),sortModifiers:qX(e),...AX(e)}),UX=/\s+/,HX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:s}=t,l=[],u=e.trim().split(UX);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:w}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let b=!!w,N=r(b?j.substring(0,w):j);if(!N){if(!b){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}b=!1}const E=g.length===0?"":g.length===1?g[0]:s(g).join(":"),O=x?E+C_:E,A=O+N;if(l.indexOf(A)>-1)continue;l.push(A);const C=a(N,b);for(let k=0;k0?" "+d:d)}return d},WX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,s;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=FX(f),r=n.cache.get,a=n.cache.set,s=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=HX(d,n);return a(d,m),m};return s=l,(...d)=>s(WX(...d))},GX=[],Rn=e=>{const t=n=>n[e]||GX;return t.isThemeGetter=!0,t},V5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,G5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,YX=/^\d+\/\d+$/,KX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,XX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,QX=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,JX=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,_c=e=>YX.test(e),ot=e=>!!e&&!Number.isNaN(Number(e)),qs=e=>!!e&&Number.isInteger(Number(e)),G0=e=>e.endsWith("%")&&ot(e.slice(0,-1)),Wi=e=>KX.test(e),eZ=()=>!0,tZ=e=>XX.test(e)&&!ZX.test(e),Y5=()=>!1,nZ=e=>QX.test(e),rZ=e=>JX.test(e),aZ=e=>!Pe(e)&&!Re(e),iZ=e=>zu(e,Z5,Y5),Pe=e=>V5.test(e),zo=e=>zu(e,Q5,tZ),Y0=e=>zu(e,uZ,ot),HM=e=>zu(e,K5,Y5),sZ=e=>zu(e,X5,rZ),kp=e=>zu(e,J5,nZ),Re=e=>G5.test(e),ef=e=>qu(e,Q5),oZ=e=>qu(e,dZ),WM=e=>qu(e,K5),lZ=e=>qu(e,Z5),cZ=e=>qu(e,X5),Mp=e=>qu(e,J5,!0),zu=(e,t,n)=>{const r=V5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},qu=(e,t,n=!1)=>{const r=G5.exec(e);return r?r[1]?t(r[1]):n:!1},K5=e=>e==="position"||e==="percentage",X5=e=>e==="image"||e==="url",Z5=e=>e==="length"||e==="size"||e==="bg-size",Q5=e=>e==="length",uZ=e=>e==="number",dZ=e=>e==="family-name",J5=e=>e==="shadow",fZ=()=>{const e=Rn("color"),t=Rn("font"),n=Rn("text"),r=Rn("font-weight"),a=Rn("tracking"),s=Rn("leading"),l=Rn("breakpoint"),u=Rn("container"),d=Rn("spacing"),f=Rn("radius"),m=Rn("shadow"),p=Rn("inset-shadow"),g=Rn("text-shadow"),x=Rn("drop-shadow"),j=Rn("blur"),w=Rn("perspective"),b=Rn("aspect"),N=Rn("ease"),E=Rn("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...A(),Re,Pe],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],M=()=>[Re,Pe,d],R=()=>[_c,"full","auto",...M()],B=()=>[qs,"none","subgrid",Re,Pe],$=()=>["auto",{span:["full",qs,Re,Pe]},qs,Re,Pe],H=()=>[qs,"auto",Re,Pe],V=()=>["auto","min","max","fr",Re,Pe],q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...M()],D=()=>[_c,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],U=()=>[e,Re,Pe],K=()=>[...A(),WM,HM,{position:[Re,Pe]}],J=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",lZ,iZ,{size:[Re,Pe]}],z=()=>[G0,ef,zo],Y=()=>["","none","full",f,Re,Pe],te=()=>["",ot,ef,zo],ae=()=>["solid","dashed","dotted","double"],ge=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[ot,G0,WM,HM],Se=()=>["","none",j,Re,Pe],re=()=>["none",ot,Re,Pe],we=()=>["none",ot,Re,Pe],je=()=>[ot,Re,Pe],fe=()=>[_c,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Wi],breakpoint:[Wi],color:[eZ],container:[Wi],"drop-shadow":[Wi],ease:["in","out","in-out"],font:[aZ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Wi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Wi],shadow:[Wi],spacing:["px",ot],text:[Wi],"text-shadow":[Wi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",_c,Pe,Re,b]}],container:["container"],columns:[{columns:[ot,Pe,Re,u]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[qs,"auto",Re,Pe]}],basis:[{basis:[_c,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ot,_c,"auto","initial","none",Pe]}],grow:[{grow:["",ot,Re,Pe]}],shrink:[{shrink:["",ot,Re,Pe]}],order:[{order:[qs,"first","last","none",Re,Pe]}],"grid-cols":[{"grid-cols":B()}],"col-start-end":[{col:$()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":B()}],"row-start-end":[{row:$()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...q(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...q()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":q()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:D()}],w:[{w:[u,"screen",...D()]}],"min-w":[{"min-w":[u,"screen","none",...D()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...D()]}],h:[{h:["screen","lh",...D()]}],"min-h":[{"min-h":["screen","lh","none",...D()]}],"max-h":[{"max-h":["screen","lh",...D()]}],"font-size":[{text:["base",n,ef,zo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Re,Y0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",G0,Pe]}],"font-family":[{font:[oZ,Pe,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,Re,Pe]}],"line-clamp":[{"line-clamp":[ot,"none",Re,Y0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",Re,Pe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Re,Pe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:U()}],"text-color":[{text:U()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ae(),"wavy"]}],"text-decoration-thickness":[{decoration:[ot,"from-font","auto",Re,zo]}],"text-decoration-color":[{decoration:U()}],"underline-offset":[{"underline-offset":[ot,"auto",Re,Pe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Re,Pe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Re,Pe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:K()}],"bg-repeat":[{bg:J()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},qs,Re,Pe],radial:["",Re,Pe],conic:[qs,Re,Pe]},cZ,sZ]}],"bg-color":[{bg:U()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:U()}],"gradient-via":[{via:U()}],"gradient-to":[{to:U()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:te()}],"border-w-x":[{"border-x":te()}],"border-w-y":[{"border-y":te()}],"border-w-s":[{"border-s":te()}],"border-w-e":[{"border-e":te()}],"border-w-t":[{"border-t":te()}],"border-w-r":[{"border-r":te()}],"border-w-b":[{"border-b":te()}],"border-w-l":[{"border-l":te()}],"divide-x":[{"divide-x":te()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":te()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ae(),"hidden","none"]}],"divide-style":[{divide:[...ae(),"hidden","none"]}],"border-color":[{border:U()}],"border-color-x":[{"border-x":U()}],"border-color-y":[{"border-y":U()}],"border-color-s":[{"border-s":U()}],"border-color-e":[{"border-e":U()}],"border-color-t":[{"border-t":U()}],"border-color-r":[{"border-r":U()}],"border-color-b":[{"border-b":U()}],"border-color-l":[{"border-l":U()}],"divide-color":[{divide:U()}],"outline-style":[{outline:[...ae(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ot,Re,Pe]}],"outline-w":[{outline:["",ot,ef,zo]}],"outline-color":[{outline:U()}],shadow:[{shadow:["","none",m,Mp,kp]}],"shadow-color":[{shadow:U()}],"inset-shadow":[{"inset-shadow":["none",p,Mp,kp]}],"inset-shadow-color":[{"inset-shadow":U()}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:U()}],"ring-offset-w":[{"ring-offset":[ot,zo]}],"ring-offset-color":[{"ring-offset":U()}],"inset-ring-w":[{"inset-ring":te()}],"inset-ring-color":[{"inset-ring":U()}],"text-shadow":[{"text-shadow":["none",g,Mp,kp]}],"text-shadow-color":[{"text-shadow":U()}],opacity:[{opacity:[ot,Re,Pe]}],"mix-blend":[{"mix-blend":[...ge(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ge()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ot]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":U()}],"mask-image-linear-to-color":[{"mask-linear-to":U()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":U()}],"mask-image-t-to-color":[{"mask-t-to":U()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":U()}],"mask-image-r-to-color":[{"mask-r-to":U()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":U()}],"mask-image-b-to-color":[{"mask-b-to":U()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":U()}],"mask-image-l-to-color":[{"mask-l-to":U()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":U()}],"mask-image-x-to-color":[{"mask-x-to":U()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":U()}],"mask-image-y-to-color":[{"mask-y-to":U()}],"mask-image-radial":[{"mask-radial":[Re,Pe]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":U()}],"mask-image-radial-to-color":[{"mask-radial-to":U()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":A()}],"mask-image-conic-pos":[{"mask-conic":[ot]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":U()}],"mask-image-conic-to-color":[{"mask-conic-to":U()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:K()}],"mask-repeat":[{mask:J()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Re,Pe]}],filter:[{filter:["","none",Re,Pe]}],blur:[{blur:Se()}],brightness:[{brightness:[ot,Re,Pe]}],contrast:[{contrast:[ot,Re,Pe]}],"drop-shadow":[{"drop-shadow":["","none",x,Mp,kp]}],"drop-shadow-color":[{"drop-shadow":U()}],grayscale:[{grayscale:["",ot,Re,Pe]}],"hue-rotate":[{"hue-rotate":[ot,Re,Pe]}],invert:[{invert:["",ot,Re,Pe]}],saturate:[{saturate:[ot,Re,Pe]}],sepia:[{sepia:["",ot,Re,Pe]}],"backdrop-filter":[{"backdrop-filter":["","none",Re,Pe]}],"backdrop-blur":[{"backdrop-blur":Se()}],"backdrop-brightness":[{"backdrop-brightness":[ot,Re,Pe]}],"backdrop-contrast":[{"backdrop-contrast":[ot,Re,Pe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ot,Re,Pe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ot,Re,Pe]}],"backdrop-invert":[{"backdrop-invert":["",ot,Re,Pe]}],"backdrop-opacity":[{"backdrop-opacity":[ot,Re,Pe]}],"backdrop-saturate":[{"backdrop-saturate":[ot,Re,Pe]}],"backdrop-sepia":[{"backdrop-sepia":["",ot,Re,Pe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Re,Pe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ot,"initial",Re,Pe]}],ease:[{ease:["linear","initial",N,Re,Pe]}],delay:[{delay:[ot,Re,Pe]}],animate:[{animate:["none",E,Re,Pe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,Re,Pe]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:we()}],"scale-x":[{"scale-x":we()}],"scale-y":[{"scale-y":we()}],"scale-z":[{"scale-z":we()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[Re,Pe,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:fe()}],"translate-x":[{"translate-x":fe()}],"translate-y":[{"translate-y":fe()}],"translate-z":[{"translate-z":fe()}],"translate-none":["translate-none"],accent:[{accent:U()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:U()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Re,Pe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Re,Pe]}],fill:[{fill:["none",...U()]}],"stroke-w":[{stroke:[ot,ef,zo,Y0]}],stroke:[{stroke:["none",...U()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},hZ=VX(fZ);function ce(...e){return hZ(Je(e))}const Xe=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("rounded-xl border bg-card text-card-foreground shadow",e),...t}));Xe.displayName="Card";const pt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex flex-col space-y-1.5 p-6",e),...t}));pt.displayName="CardHeader";const vt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("font-semibold leading-none tracking-tight",e),...t}));vt.displayName="CardTitle";const Wn=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));Wn.displayName="CardDescription";const Ct=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("p-6 pt-0",e),...t}));Ct.displayName="CardContent";const eB=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex items-center p-6 pt-0",e),...t}));eB.displayName="CardFooter";function _e(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function mZ(e,t){const n=y.createContext(t),r=s=>{const{children:l,...u}=s,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(s){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function gr(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,pZ(a,...t)]}function pZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function VM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ir(...e){return t=>{let n=!1;const r=e.map(a=>{const s=VM(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(yZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=bZ(a),u=xZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gZ=Symbol("radix.slottable");function yZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gZ}function xZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Ph(e){const t=e+"CollectionProvider",[n,r]=gr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=w=>{const{scope:b,children:N}=w,E=W.useRef(null),O=W.useRef(new Map).current;return i.jsx(a,{scope:b,itemMap:O,collectionRef:E,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=GM(u),f=W.forwardRef((w,b)=>{const{scope:N,children:E}=w,O=s(u,N),A=Ue(b,O.collectionRef);return i.jsx(d,{ref:A,children:E})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=GM(m),x=W.forwardRef((w,b)=>{const{scope:N,children:E,...O}=w,A=W.useRef(null),C=Ue(b,A),k=s(m,N);return W.useEffect(()=>(k.itemMap.set(A,{ref:A,...O}),()=>void k.itemMap.delete(A))),i.jsx(g,{[p]:"",ref:C,children:E})});x.displayName=m;function j(w){const b=s(e+"CollectionConsumer",w);return W.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const O=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(b.itemMap.values()).sort((k,T)=>O.indexOf(k.ref.current)-O.indexOf(T.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Yn=globalThis?.document?y.useLayoutEffect:()=>{},wZ=EC[" useId ".trim().toString()]||(()=>{}),jZ=0;function Gn(e){const[t,n]=y.useState(wZ());return Yn(()=>{n(r=>r??String(jZ++))},[e]),t?`radix-${t}`:""}function SZ(e){const t=_Z(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(CZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function _Z(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=EZ(a),u=OZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var NZ=Symbol("radix.slottable");function CZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===NZ}function OZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function EZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var AZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$e=AZ.reduce((e,t)=>{const n=SZ(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function HC(e,t){e&&Sl.flushSync(()=>e.dispatchEvent(t))}function ln(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var TZ=EC[" useInsertionEffect ".trim().toString()]||Yn;function Ea({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,l]=kZ({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=MZ(m)?m(e):m;p!==e&&l.current?.(p)}else s(m)},[u,e,s,l]);return[d,f]}function kZ({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),s=y.useRef(t);return TZ(()=>{s.current=t},[t]),y.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function MZ(e){return typeof e=="function"}var PZ=y.createContext(void 0);function Fu(e){const t=y.useContext(PZ);return e||t||"ltr"}var K0="rovingFocusGroup.onEntryFocus",RZ={bubbles:!1,cancelable:!0},Rh="RovingFocusGroup",[O_,tB,DZ]=Ph(Rh),[$Z,Yg]=gr(Rh,[DZ]),[IZ,LZ]=$Z(Rh),nB=y.forwardRef((e,t)=>i.jsx(O_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(O_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(BZ,{...e,ref:t})})}));nB.displayName=Rh;var BZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=Ue(t,g),j=Fu(s),[w,b]=Ea({prop:l,defaultProp:u??null,onChange:d,caller:Rh}),[N,E]=y.useState(!1),O=ln(f),A=tB(n),C=y.useRef(!1),[k,T]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(K0,O),()=>M.removeEventListener(K0,O)},[O]),i.jsx(IZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:w,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>T(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>T(M=>M-1),[]),children:i.jsx($e.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:_e(e.onMouseDown,()=>{C.current=!0}),onFocus:_e(e.onFocus,M=>{const R=!C.current;if(M.target===M.currentTarget&&R&&!N){const B=new CustomEvent(K0,RZ);if(M.currentTarget.dispatchEvent(B),!B.defaultPrevented){const $=A().filter(L=>L.focusable),H=$.find(L=>L.active),V=$.find(L=>L.id===w),G=[H,V,...$].filter(Boolean).map(L=>L.ref.current);iB(G,m)}}C.current=!1}),onBlur:_e(e.onBlur,()=>E(!1))})})}),rB="RovingFocusGroupItem",aB=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:l,...u}=e,d=Gn(),f=s||d,m=LZ(rB,n),p=m.currentTabStopId===f,g=tB(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:w}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(O_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx($e.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:_e(e.onMouseDown,b=>{r?m.onItemFocus(f):b.preventDefault()}),onFocus:_e(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:_e(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){m.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const N=FZ(b,m.orientation,m.dir);if(N!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let O=g().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")O.reverse();else if(N==="prev"||N==="next"){N==="prev"&&O.reverse();const A=O.indexOf(b.currentTarget);O=m.loop?UZ(O,A+1):O.slice(A+1)}setTimeout(()=>iB(O))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:w!=null}):l})})});aB.displayName=rB;var zZ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function qZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function FZ(e,t,n){const r=qZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return zZ[r]}function iB(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function UZ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var sB=nB,oB=aB;function HZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Bn=e=>{const{present:t,children:n}=e,r=WZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),s=Ue(r.ref,VZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:s}):null};Bn.displayName="Presence";function WZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),s=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=HZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Pp(r.current);s.current=u==="mounted"?f:"none"},[u]),Yn(()=>{const f=r.current,m=a.current;if(m!==e){const g=s.current,x=Pp(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Yn(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const w=Pp(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&w&&(d("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=x=>{x.target===t&&(s.current=Pp(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Pp(e){return e?.animationName||"none"}function VZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Kg="Tabs",[GZ]=gr(Kg,[Yg]),lB=Yg(),[YZ,WC]=GZ(Kg),cB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Fu(u),[p,g]=Ea({prop:r,onChange:a,defaultProp:s??"",caller:Kg});return i.jsx(YZ,{scope:n,baseId:Gn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx($e.div,{dir:m,"data-orientation":l,...f,ref:t})})});cB.displayName=Kg;var uB="TabsList",dB=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=WC(uB,n),l=lB(n);return i.jsx(sB,{asChild:!0,...l,orientation:s.orientation,dir:s.dir,loop:r,children:i.jsx($e.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});dB.displayName=uB;var fB="TabsTrigger",hB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,l=WC(fB,n),u=lB(n),d=vB(l.baseId,r),f=gB(l.baseId,r),m=r===l.value;return i.jsx(oB,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx($e.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...s,ref:t,onMouseDown:_e(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:_e(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:_e(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});hB.displayName=fB;var mB="TabsContent",pB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...l}=e,u=WC(mB,n),d=vB(u.baseId,r),f=gB(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(Bn,{present:a||m,children:({present:g})=>i.jsx($e.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&s})})});pB.displayName=mB;function vB(e,t){return`${e}-trigger-${t}`}function gB(e,t){return`${e}-content-${t}`}var KZ=cB,yB=dB,xB=hB,bB=pB;const dl=KZ,eo=y.forwardRef(({className:e,...t},n)=>i.jsx(yB,{ref:n,className:ce("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));eo.displayName=yB.displayName;const Rt=y.forwardRef(({className:e,...t},n)=>i.jsx(xB,{ref:n,className:ce("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Rt.displayName=xB.displayName;const sn=y.forwardRef(({className:e,...t},n)=>i.jsx(bB,{ref:n,className:ce("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));sn.displayName=bB.displayName;function Rf(e,[t,n]){return Math.min(n,Math.max(t,e))}function XZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var VC="ScrollArea",[wB]=gr(VC),[ZZ,Ta]=wB(VC),jB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:s=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(0),[O,A]=y.useState(0),[C,k]=y.useState(!1),[T,M]=y.useState(!1),R=Ue(t,$=>d($)),B=Fu(a);return i.jsx(ZZ,{scope:n,type:r,dir:B,scrollHideDelay:s,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:w,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:E,onCornerHeightChange:A,children:i.jsx($e.div,{dir:B,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":O+"px",...e.style}})})});jB.displayName=VC;var SB="ScrollAreaViewport",_B=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...s}=e,l=Ta(SB,n),u=y.useRef(null),d=Ue(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx($e.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});_B.displayName=SB;var ji="ScrollAreaScrollbar",GC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)}),[u,s,l]),a.type==="hover"?i.jsx(QZ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(JZ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(NB,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(YC,{...r,ref:t}):null});GC.displayName=ji;var QZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),[s,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(Bn,{present:n||s,children:i.jsx(NB,{"data-state":s?"visible":"hidden",...r,ref:t})})}),JZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),s=e.orientation==="horizontal",l=Zg(()=>d("SCROLL_END"),100),[u,d]=XZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=s?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,s,d,l]),i.jsx(Bn,{present:n||u!=="hidden",children:i.jsx(YC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:_e(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:_e(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),NB=y.forwardRef((e,t)=>{const n=Ta(ji,e.__scopeScrollArea),{forceMount:r,...a}=e,[s,l]=y.useState(!1),u=e.orientation==="horizontal",d=Zg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Ta(ji,e.__scopeScrollArea),s=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=TB(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>s.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return iQ(g,l.current,u,x)}return n==="horizontal"?i.jsx(eQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollLeft,x=YM(g,u,a.dir);s.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(tQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollTop,x=YM(g,u);s.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),eQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ta(ji,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(OB,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Xg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),MB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:Cv(l.paddingLeft),paddingEnd:Cv(l.paddingRight)}})}})}),tQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ta(ji,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(OB,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Xg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),MB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:Cv(l.paddingTop),paddingEnd:Cv(l.paddingBottom)}})}})}),[nQ,CB]=wB(ji),OB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Ta(ji,n),[j,w]=y.useState(null),b=Ue(t,R=>w(R)),N=y.useRef(null),E=y.useRef(""),O=x.viewport,A=r.content-r.viewport,C=ln(m),k=ln(d),T=Zg(p,10);function M(R){if(N.current){const B=R.clientX-N.current.left,$=R.clientY-N.current.top;f({x:B,y:$})}}return y.useEffect(()=>{const R=B=>{const $=B.target;j?.contains($)&&C(B,A)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[O,j,A,C]),y.useEffect(k,[r,k]),su(j,T),su(x.content,T),i.jsx(nQ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:ln(s),onThumbPointerUp:ln(l),onThumbPositionChange:k,onThumbPointerDown:ln(u),children:i.jsx($e.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:_e(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),N.current=j.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(R))}),onPointerMove:_e(e.onPointerMove,M),onPointerUp:_e(e.onPointerUp,R=>{const B=R.target;B.hasPointerCapture(R.pointerId)&&B.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),Nv="ScrollAreaThumb",EB=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=CB(Nv,e.__scopeScrollArea);return i.jsx(Bn,{present:n||a.hasThumb,children:i.jsx(rQ,{ref:t,...r})})}),rQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,s=Ta(Nv,n),l=CB(Nv,n),{onThumbPositionChange:u}=l,d=Ue(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Zg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=s.viewport;if(p){const g=()=>{if(m(),!f.current){const x=sQ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[s.viewport,m,u]),i.jsx($e.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:_e(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,w=p.clientY-x.top;l.onThumbPointerDown({x:j,y:w})}),onPointerUp:_e(e.onPointerUp,l.onThumbPointerUp)})});EB.displayName=Nv;var KC="ScrollAreaCorner",AB=y.forwardRef((e,t)=>{const n=Ta(KC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(aQ,{...e,ref:t}):null});AB.displayName=KC;var aQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Ta(KC,n),[s,l]=y.useState(0),[u,d]=y.useState(0),f=!!(s&&u);return su(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),su(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx($e.div,{...r,ref:t,style:{width:s,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Cv(e){return e?parseInt(e,10):0}function TB(e,t){const n=e/t;return isNaN(n)?0:n}function Xg(e){const t=TB(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function iQ(e,t,n,r="ltr"){const a=Xg(n),s=a/2,l=t||s,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return kB([d,f],p)(e)}function YM(e,t,n="ltr"){const r=Xg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,u=s-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Rf(e,d);return kB([0,l],[0,u])(f)}function kB(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function MB(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const s={left:e.scrollLeft,top:e.scrollTop},l=n.left!==s.left,u=n.top!==s.top;(l||u)&&t(),n=s,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Zg(e,t){const n=ln(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function su(e,t){const n=ln(t);Yn(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var PB=jB,oQ=_B,lQ=AB;const Wt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(PB,{ref:r,className:ce("relative overflow-hidden",e),...n,children:[i.jsx(oQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(RB,{}),i.jsx(lQ,{})]}));Wt.displayName=PB.displayName;const RB=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(GC,{ref:r,orientation:t,className:ce("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(EB,{className:"relative flex-1 rounded-full bg-border"})}));RB.displayName=GC.displayName;function KM({className:e,...t}){return i.jsx("div",{className:ce("animate-pulse rounded-md bg-primary/10",e),...t})}function cQ(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l);u.displayName=s+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,uQ(a,...t)]}function uQ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var dQ=Symbol.for("react.lazy"),Ov=EC[" use ".trim().toString()];function fQ(e){return typeof e=="object"&&e!==null&&"then"in e}function DB(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===dQ&&"_payload"in e&&fQ(e._payload)}function Dh(e){const t=mQ(e),n=y.forwardRef((r,a)=>{let{children:s,...l}=r;DB(s)&&typeof Ov=="function"&&(s=Ov(s._payload));const u=y.Children.toArray(s),d=u.find(vQ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var hQ=Dh("Slot");function mQ(e){const t=y.forwardRef((n,r)=>{let{children:a,...s}=n;if(DB(a)&&typeof Ov=="function"&&(a=Ov(a._payload)),y.isValidElement(a)){const l=yQ(a),u=gQ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var pQ=Symbol("radix.slottable");function vQ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===pQ}function gQ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function yQ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var xQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$B=xQ.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),XC="Progress",ZC=100,[bQ]=cQ(XC),[wQ,jQ]=bQ(XC),IB=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:s=SQ,...l}=e;(a||a===0)&&!XM(a)&&console.error(_Q(`${a}`,"Progress"));const u=XM(a)?a:ZC;r!==null&&!ZM(r,u)&&console.error(NQ(`${r}`,"Progress"));const d=ZM(r,u)?r:null,f=Ev(d)?s(d,u):void 0;return i.jsx(wQ,{scope:n,value:d,max:u,children:i.jsx($B.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":Ev(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":zB(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});IB.displayName=XC;var LB="ProgressIndicator",BB=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=jQ(LB,n);return i.jsx($B.div,{"data-state":zB(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});BB.displayName=LB;function SQ(e,t){return`${Math.round(e/t*100)}%`}function zB(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Ev(e){return typeof e=="number"}function XM(e){return Ev(e)&&!isNaN(e)&&e>0}function ZM(e,t){return Ev(e)&&!isNaN(e)&&e<=t&&e>=0}function _Q(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${ZC}\`.`}function NQ(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - a positive number - - less than the value passed to \`max\` (or ${XC} if no \`max\` prop is set) + - less than the value passed to \`max\` (or ${ZC} if no \`max\` prop is set) - \`null\` or \`undefined\` if the progress is indeterminate. -Defaulting to \`null\`.`}var qB=IB,CQ=BB;const $h=y.forwardRef(({className:e,value:t,...n},r)=>i.jsx(qB,{ref:r,className:ce("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(CQ,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));$h.displayName=qB.displayName;var K0,QM;function qr(){if(QM)return K0;QM=1;var e=Array.isArray;return K0=e,K0}var X0,JM;function FB(){if(JM)return X0;JM=1;var e=typeof Np=="object"&&Np&&Np.Object===Object&&Np;return X0=e,X0}var Z0,eP;function Si(){if(eP)return Z0;eP=1;var e=FB(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Z0=n,Z0}var Q0,tP;function Ih(){if(tP)return Q0;tP=1;var e=Si(),t=e.Symbol;return Q0=t,Q0}var J0,nP;function OQ(){if(nP)return J0;nP=1;var e=Ih(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function s(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return J0=s,J0}var ew,rP;function EQ(){if(rP)return ew;rP=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return ew=n,ew}var tw,aP;function fs(){if(aP)return tw;aP=1;var e=Ih(),t=OQ(),n=EQ(),r="[object Null]",a="[object Undefined]",s=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:s&&s in Object(u)?t(u):n(u)}return tw=l,tw}var nw,iP;function hs(){if(iP)return nw;iP=1;function e(t){return t!=null&&typeof t=="object"}return nw=e,nw}var rw,sP;function Uu(){if(sP)return rw;sP=1;var e=fs(),t=hs(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return rw=r,rw}var aw,oP;function ZC(){if(oP)return aw;oP=1;var e=qr(),t=Uu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(s,l){if(e(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||t(s)?!0:r.test(s)||!n.test(s)||l!=null&&s in Object(l)}return aw=a,aw}var iw,lP;function lo(){if(lP)return iw;lP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return iw=e,iw}var sw,cP;function QC(){if(cP)return sw;cP=1;var e=fs(),t=lo(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==s}return sw=l,sw}var ow,uP;function AQ(){if(uP)return ow;uP=1;var e=Si(),t=e["__core-js_shared__"];return ow=t,ow}var lw,dP;function TQ(){if(dP)return lw;dP=1;var e=AQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return lw=n,lw}var cw,fP;function UB(){if(fP)return cw;fP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return cw=n,cw}var uw,hP;function kQ(){if(hP)return uw;hP=1;var e=QC(),t=TQ(),n=lo(),r=UB(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:s;return x.test(r(g))}return uw=p,uw}var dw,mP;function MQ(){if(mP)return dw;mP=1;function e(t,n){return t?.[n]}return dw=e,dw}var fw,pP;function _l(){if(pP)return fw;pP=1;var e=kQ(),t=MQ();function n(r,a){var s=t(r,a);return e(s)?s:void 0}return fw=n,fw}var hw,vP;function Qg(){if(vP)return hw;vP=1;var e=_l(),t=e(Object,"create");return hw=t,hw}var mw,gP;function PQ(){if(gP)return mw;gP=1;var e=Qg();function t(){this.__data__=e?e(null):{},this.size=0}return mw=t,mw}var pw,yP;function RQ(){if(yP)return pw;yP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return pw=e,pw}var vw,xP;function DQ(){if(xP)return vw;xP=1;var e=Qg(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(s){var l=this.__data__;if(e){var u=l[s];return u===t?void 0:u}return r.call(l,s)?l[s]:void 0}return vw=a,vw}var gw,bP;function $Q(){if(bP)return gw;bP=1;var e=Qg(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var s=this.__data__;return e?s[a]!==void 0:n.call(s,a)}return gw=r,gw}var yw,wP;function IQ(){if(wP)return yw;wP=1;var e=Qg(),t="__lodash_hash_undefined__";function n(r,a){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=e&&a===void 0?t:a,this}return yw=n,yw}var xw,jP;function LQ(){if(jP)return xw;jP=1;var e=PQ(),t=RQ(),n=DQ(),r=$Q(),a=IQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return Nw=t,Nw}var Cw,AP;function UQ(){if(AP)return Cw;AP=1;var e=Jg();function t(n,r){var a=this.__data__,s=e(a,n);return s<0?(++this.size,a.push([n,r])):a[s][1]=r,this}return Cw=t,Cw}var Ow,TP;function ey(){if(TP)return Ow;TP=1;var e=BQ(),t=zQ(),n=qQ(),r=FQ(),a=UQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Ko=function(t){return fl(t)&&t.indexOf("%")===t.length-1},Ce=function(t){return fJ(t)&&!Lh(t)},hJ=function(t){return Qe(t)},Ln=function(t){return Ce(t)||fl(t)},mJ=0,Wu=function(t){var n=++mJ;return"".concat(t||"").concat(n)},Sr=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ce(t)&&!fl(t))return r;var s;if(Ko(t)){var l=t.indexOf("%");s=n*parseFloat(t.slice(0,l))/100}else s=+t;return Lh(s)&&(s=r),a&&s>n&&(s=n),s},Ws=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},pJ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function E_(e){"@babel/helpers - typeof";return E_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},E_(e)}var aR={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},ns=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},iR=null,Jw=null,iO=function e(t){if(t===iR&&Array.isArray(Jw))return Jw;var n=[];return y.Children.forEach(t,function(r){Qe(r)||(lJ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),Jw=n,iR=t,n};function ia(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return ns(a)}):r=[ns(t)],iO(e).forEach(function(a){var s=aa(a,"type.displayName")||aa(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function Qr(e,t){var n=ia(e,t);return n&&n[0]}var sR=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ce(r)||r<=0||!Ce(a)||a<=0)},SJ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],_J=function(t){return t&&t.type&&fl(t.type)&&SJ.indexOf(t.type)>=0},NJ=function(t){return t&&E_(t)==="object"&&"clipDot"in t},CJ=function(t,n,r,a){var s,l=(s=Qw?.[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!Ke(t)&&(a&&l.includes(n)||yJ.includes(n))||r&&aO.includes(n)},qe=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!Hu(a))return null;var s={};return Object.keys(a).forEach(function(l){var u;CJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(s[l]=a[l])}),s},A_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return oR(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function k_(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=TJ(e,AJ),m=a||{width:n,height:r,x:0,y:0},p=Je("recharts-surface",s);return W.createElement("svg",T_({},qe(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var MJ=["children","className"];function M_(){return M_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function RJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var xt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=PJ(e,MJ),s=Je("recharts-layer",r);return W.createElement("g",M_({className:s},qe(a,!0),{ref:t}),n)}),Ha=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;ss?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(s);++a=s?n:e(n,r,a)}return tj=t,tj}var nj,dR;function KB(){if(dR)return nj;dR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+s+"]");function d(f){return u.test(f)}return nj=d,nj}var rj,fR;function IJ(){if(fR)return rj;fR=1;function e(t){return t.split("")}return rj=e,rj}var aj,hR;function LJ(){if(hR)return aj;hR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",w="["+s+"]?",b="(?:"+x+"(?:"+[m,p,g].join("|")+")"+w+j+")*",N=w+j+b,E="(?:"+[m+u+"?",u,p,g,l].join("|")+")",O=RegExp(d+"(?="+d+")|"+E+N,"g");function A(C){return C.match(O)||[]}return aj=A,aj}var ij,mR;function BJ(){if(mR)return ij;mR=1;var e=IJ(),t=KB(),n=LJ();function r(a){return t(a)?n(a):e(a)}return ij=r,ij}var sj,pR;function zJ(){if(pR)return sj;pR=1;var e=$J(),t=KB(),n=BJ(),r=WB();function a(s){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[s]()+f}}return sj=a,sj}var oj,vR;function qJ(){if(vR)return oj;vR=1;var e=zJ(),t=e("toUpperCase");return oj=t,oj}var FJ=qJ();const ry=At(FJ);function Kt(e){return function(){return e}}const XB=Math.cos,kv=Math.sin,Xa=Math.sqrt,Mv=Math.PI,ay=2*Mv,P_=Math.PI,R_=2*P_,Ho=1e-6,UJ=R_-Ho;function ZB(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return ZB;const n=10**t;return function(r){this._+=r[0];for(let a=1,s=r.length;aHo)if(!(Math.abs(p*d-f*m)>Ho)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,w=d*d+f*f,b=x*x+j*j,N=Math.sqrt(w),E=Math.sqrt(g),O=s*Math.tan((P_-Math.acos((w+g-b)/(2*N*E)))/2),A=O/E,C=O/N;Math.abs(A-1)>Ho&&this._append`L${t+A*m},${n+A*p}`,this._append`A${s},${s},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,s,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-s:s-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Ho||Math.abs(this._y1-m)>Ho)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%R_+R_),g>UJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Ho&&this._append`A${r},${r},0,${+(g>=P_)},${p},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function sO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new WJ(t)}function oO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function QB(e){this._context=e}QB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function iy(e){return new QB(e)}function JB(e){return e[0]}function ez(e){return e[1]}function tz(e,t){var n=Kt(!0),r=null,a=iy,s=null,l=sO(u);e=typeof e=="function"?e:e===void 0?JB:Kt(e),t=typeof t=="function"?t:t===void 0?ez:Kt(t);function u(d){var f,m=(d=oO(d)).length,p,g=!1,x;for(r==null&&(s=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(O[j],A[j]);u.lineEnd(),u.areaEnd()}N&&(O[g]=+e(b,g,p),A[g]=+t(b,g,p),u.point(r?+r(b,g,p):O[g],n?+n(b,g,p):A[g]))}if(E)return u=null,E+""||null}function m(){return tz().defined(a).curve(l).context(s)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Kt(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Kt(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Kt(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Kt(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Kt(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Kt(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Kt(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,s!=null&&(u=l(s)),f):l},f.context=function(p){return arguments.length?(p==null?s=u=null:u=l(s=p),f):s},f}class nz{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function VJ(e){return new nz(e,!0)}function GJ(e){return new nz(e,!1)}const lO={draw(e,t){const n=Xa(t/Mv);e.moveTo(n,0),e.arc(0,0,n,0,ay)}},YJ={draw(e,t){const n=Xa(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},rz=Xa(1/3),KJ=rz*2,XJ={draw(e,t){const n=Xa(t/KJ),r=n*rz;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},ZJ={draw(e,t){const n=Xa(t),r=-n/2;e.rect(r,r,n,n)}},QJ=.8908130915292852,az=kv(Mv/10)/kv(7*Mv/10),JJ=kv(ay/10)*az,eee=-XB(ay/10)*az,tee={draw(e,t){const n=Xa(t*QJ),r=JJ*n,a=eee*n;e.moveTo(0,-n),e.lineTo(r,a);for(let s=1;s<5;++s){const l=ay*s/5,u=XB(l),d=kv(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},lj=Xa(3),nee={draw(e,t){const n=-Xa(t/(lj*3));e.moveTo(0,n*2),e.lineTo(-lj*n,-n),e.lineTo(lj*n,-n),e.closePath()}},ba=-.5,wa=Xa(3)/2,D_=1/Xa(12),ree=(D_/2+1)*3,aee={draw(e,t){const n=Xa(t/ree),r=n/2,a=n*D_,s=r,l=n*D_+n,u=-s,d=l;e.moveTo(r,a),e.lineTo(s,l),e.lineTo(u,d),e.lineTo(ba*r-wa*a,wa*r+ba*a),e.lineTo(ba*s-wa*l,wa*s+ba*l),e.lineTo(ba*u-wa*d,wa*u+ba*d),e.lineTo(ba*r+wa*a,ba*a-wa*r),e.lineTo(ba*s+wa*l,ba*l-wa*s),e.lineTo(ba*u+wa*d,ba*d-wa*u),e.closePath()}};function iee(e,t){let n=null,r=sO(a);e=typeof e=="function"?e:Kt(e||lO),t=typeof t=="function"?t:Kt(t===void 0?64:+t);function a(){let s;if(n||(n=s=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(e=typeof s=="function"?s:Kt(s),a):e},a.size=function(s){return arguments.length?(t=typeof s=="function"?s:Kt(+s),a):t},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function Pv(){}function Rv(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function iz(e){this._context=e}iz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Rv(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function see(e){return new iz(e)}function sz(e){this._context=e}sz.prototype={areaStart:Pv,areaEnd:Pv,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function oee(e){return new sz(e)}function oz(e){this._context=e}oz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lee(e){return new oz(e)}function lz(e){this._context=e}lz.prototype={areaStart:Pv,areaEnd:Pv,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function cee(e){return new lz(e)}function gR(e){return e<0?-1:1}function yR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(s*a+l*r)/(r+a);return(gR(s)+gR(l))*Math.min(Math.abs(s),Math.abs(l),.5*Math.abs(u))||0}function xR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function cj(e,t,n){var r=e._x0,a=e._y0,s=e._x1,l=e._y1,u=(s-r)/3;e._context.bezierCurveTo(r+u,a+u*t,s-u,l-u*n,s,l)}function Dv(e){this._context=e}Dv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:cj(this,this._t0,xR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,cj(this,xR(this,n=yR(this,e,t)),n);break;default:cj(this,this._t0,n=yR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function cz(e){this._context=new uz(e)}(cz.prototype=Object.create(Dv.prototype)).point=function(e,t){Dv.prototype.point.call(this,t,e)};function uz(e){this._context=e}uz.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,s){this._context.bezierCurveTo(t,e,r,n,s,a)}};function uee(e){return new Dv(e)}function dee(e){return new cz(e)}function dz(e){this._context=e}dz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=bR(e),a=bR(t),s=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/s[t];for(s[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function hee(e){return new sy(e,.5)}function mee(e){return new sy(e,0)}function pee(e){return new sy(e,1)}function ou(e,t){if((l=e.length)>1)for(var n=1,r,a,s=e[t[0]],l,u=s.length;n=0;)n[t]=t;return n}function vee(e,t){return e[t]}function gee(e){const t=[];return t.key=e,t}function yee(){var e=Kt([]),t=$_,n=ou,r=vee;function a(s){var l=Array.from(e.apply(this,arguments),gee),u,d=l.length,f=-1,m;for(const p of s)for(u=0,++f;u0){for(var n,r,a=0,s=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,s=r.length;n0)||!((s=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,s,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Oee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var fz={symbolCircle:lO,symbolCross:YJ,symbolDiamond:XJ,symbolSquare:ZJ,symbolStar:tee,symbolTriangle:nee,symbolWye:aee},Eee=Math.PI/180,Aee=function(t){var n="symbol".concat(ry(t));return fz[n]||lO},Tee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*Eee;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},kee=function(t,n){fz["symbol".concat(ry(t))]=n},cO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,s=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=Cee(t,jee),f=jR(jR({},d),{},{type:r,size:s,sizeType:u}),m=function(){var b=Aee(r),N=iee().type(b).size(Tee(s,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=qe(f,!0);return g===+g&&x===+x&&s===+s?W.createElement("path",I_({},j,{className:Je("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};cO.registerSymbol=kee;function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function L_(){return L_=Object.assign?Object.assign.bind():function(e){for(var t=1;ti.jsx(qB,{ref:r,className:ce("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(CQ,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));$h.displayName=qB.displayName;var X0,QM;function qr(){if(QM)return X0;QM=1;var e=Array.isArray;return X0=e,X0}var Z0,JM;function FB(){if(JM)return Z0;JM=1;var e=typeof Np=="object"&&Np&&Np.Object===Object&&Np;return Z0=e,Z0}var Q0,eP;function Si(){if(eP)return Q0;eP=1;var e=FB(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Q0=n,Q0}var J0,tP;function Ih(){if(tP)return J0;tP=1;var e=Si(),t=e.Symbol;return J0=t,J0}var ew,nP;function OQ(){if(nP)return ew;nP=1;var e=Ih(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function s(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return ew=s,ew}var tw,rP;function EQ(){if(rP)return tw;rP=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return tw=n,tw}var nw,aP;function fs(){if(aP)return nw;aP=1;var e=Ih(),t=OQ(),n=EQ(),r="[object Null]",a="[object Undefined]",s=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:s&&s in Object(u)?t(u):n(u)}return nw=l,nw}var rw,iP;function hs(){if(iP)return rw;iP=1;function e(t){return t!=null&&typeof t=="object"}return rw=e,rw}var aw,sP;function Uu(){if(sP)return aw;sP=1;var e=fs(),t=hs(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return aw=r,aw}var iw,oP;function QC(){if(oP)return iw;oP=1;var e=qr(),t=Uu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(s,l){if(e(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||t(s)?!0:r.test(s)||!n.test(s)||l!=null&&s in Object(l)}return iw=a,iw}var sw,lP;function lo(){if(lP)return sw;lP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return sw=e,sw}var ow,cP;function JC(){if(cP)return ow;cP=1;var e=fs(),t=lo(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==s}return ow=l,ow}var lw,uP;function AQ(){if(uP)return lw;uP=1;var e=Si(),t=e["__core-js_shared__"];return lw=t,lw}var cw,dP;function TQ(){if(dP)return cw;dP=1;var e=AQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return cw=n,cw}var uw,fP;function UB(){if(fP)return uw;fP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return uw=n,uw}var dw,hP;function kQ(){if(hP)return dw;hP=1;var e=JC(),t=TQ(),n=lo(),r=UB(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:s;return x.test(r(g))}return dw=p,dw}var fw,mP;function MQ(){if(mP)return fw;mP=1;function e(t,n){return t?.[n]}return fw=e,fw}var hw,pP;function _l(){if(pP)return hw;pP=1;var e=kQ(),t=MQ();function n(r,a){var s=t(r,a);return e(s)?s:void 0}return hw=n,hw}var mw,vP;function Qg(){if(vP)return mw;vP=1;var e=_l(),t=e(Object,"create");return mw=t,mw}var pw,gP;function PQ(){if(gP)return pw;gP=1;var e=Qg();function t(){this.__data__=e?e(null):{},this.size=0}return pw=t,pw}var vw,yP;function RQ(){if(yP)return vw;yP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return vw=e,vw}var gw,xP;function DQ(){if(xP)return gw;xP=1;var e=Qg(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(s){var l=this.__data__;if(e){var u=l[s];return u===t?void 0:u}return r.call(l,s)?l[s]:void 0}return gw=a,gw}var yw,bP;function $Q(){if(bP)return yw;bP=1;var e=Qg(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var s=this.__data__;return e?s[a]!==void 0:n.call(s,a)}return yw=r,yw}var xw,wP;function IQ(){if(wP)return xw;wP=1;var e=Qg(),t="__lodash_hash_undefined__";function n(r,a){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=e&&a===void 0?t:a,this}return xw=n,xw}var bw,jP;function LQ(){if(jP)return bw;jP=1;var e=PQ(),t=RQ(),n=DQ(),r=$Q(),a=IQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return Cw=t,Cw}var Ow,AP;function UQ(){if(AP)return Ow;AP=1;var e=Jg();function t(n,r){var a=this.__data__,s=e(a,n);return s<0?(++this.size,a.push([n,r])):a[s][1]=r,this}return Ow=t,Ow}var Ew,TP;function ey(){if(TP)return Ew;TP=1;var e=BQ(),t=zQ(),n=qQ(),r=FQ(),a=UQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Ko=function(t){return fl(t)&&t.indexOf("%")===t.length-1},Ce=function(t){return fJ(t)&&!Lh(t)},hJ=function(t){return Qe(t)},Ln=function(t){return Ce(t)||fl(t)},mJ=0,Wu=function(t){var n=++mJ;return"".concat(t||"").concat(n)},Sr=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ce(t)&&!fl(t))return r;var s;if(Ko(t)){var l=t.indexOf("%");s=n*parseFloat(t.slice(0,l))/100}else s=+t;return Lh(s)&&(s=r),a&&s>n&&(s=n),s},Ws=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},pJ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function A_(e){"@babel/helpers - typeof";return A_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},A_(e)}var aR={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},ns=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},iR=null,ej=null,sO=function e(t){if(t===iR&&Array.isArray(ej))return ej;var n=[];return y.Children.forEach(t,function(r){Qe(r)||(lJ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),ej=n,iR=t,n};function ia(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return ns(a)}):r=[ns(t)],sO(e).forEach(function(a){var s=aa(a,"type.displayName")||aa(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function Qr(e,t){var n=ia(e,t);return n&&n[0]}var sR=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ce(r)||r<=0||!Ce(a)||a<=0)},SJ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],_J=function(t){return t&&t.type&&fl(t.type)&&SJ.indexOf(t.type)>=0},NJ=function(t){return t&&A_(t)==="object"&&"clipDot"in t},CJ=function(t,n,r,a){var s,l=(s=Jw?.[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!Ke(t)&&(a&&l.includes(n)||yJ.includes(n))||r&&iO.includes(n)},qe=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!Hu(a))return null;var s={};return Object.keys(a).forEach(function(l){var u;CJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(s[l]=a[l])}),s},T_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return oR(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function M_(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=TJ(e,AJ),m=a||{width:n,height:r,x:0,y:0},p=Je("recharts-surface",s);return W.createElement("svg",k_({},qe(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var MJ=["children","className"];function P_(){return P_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function RJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var xt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=PJ(e,MJ),s=Je("recharts-layer",r);return W.createElement("g",P_({className:s},qe(a,!0),{ref:t}),n)}),Ha=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;ss?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(s);++a=s?n:e(n,r,a)}return nj=t,nj}var rj,dR;function KB(){if(dR)return rj;dR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+s+"]");function d(f){return u.test(f)}return rj=d,rj}var aj,fR;function IJ(){if(fR)return aj;fR=1;function e(t){return t.split("")}return aj=e,aj}var ij,hR;function LJ(){if(hR)return ij;hR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",w="["+s+"]?",b="(?:"+x+"(?:"+[m,p,g].join("|")+")"+w+j+")*",N=w+j+b,E="(?:"+[m+u+"?",u,p,g,l].join("|")+")",O=RegExp(d+"(?="+d+")|"+E+N,"g");function A(C){return C.match(O)||[]}return ij=A,ij}var sj,mR;function BJ(){if(mR)return sj;mR=1;var e=IJ(),t=KB(),n=LJ();function r(a){return t(a)?n(a):e(a)}return sj=r,sj}var oj,pR;function zJ(){if(pR)return oj;pR=1;var e=$J(),t=KB(),n=BJ(),r=WB();function a(s){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[s]()+f}}return oj=a,oj}var lj,vR;function qJ(){if(vR)return lj;vR=1;var e=zJ(),t=e("toUpperCase");return lj=t,lj}var FJ=qJ();const ry=At(FJ);function Kt(e){return function(){return e}}const XB=Math.cos,kv=Math.sin,Xa=Math.sqrt,Mv=Math.PI,ay=2*Mv,R_=Math.PI,D_=2*R_,Ho=1e-6,UJ=D_-Ho;function ZB(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return ZB;const n=10**t;return function(r){this._+=r[0];for(let a=1,s=r.length;aHo)if(!(Math.abs(p*d-f*m)>Ho)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,w=d*d+f*f,b=x*x+j*j,N=Math.sqrt(w),E=Math.sqrt(g),O=s*Math.tan((R_-Math.acos((w+g-b)/(2*N*E)))/2),A=O/E,C=O/N;Math.abs(A-1)>Ho&&this._append`L${t+A*m},${n+A*p}`,this._append`A${s},${s},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,s,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-s:s-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Ho||Math.abs(this._y1-m)>Ho)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%D_+D_),g>UJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Ho&&this._append`A${r},${r},0,${+(g>=R_)},${p},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function oO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new WJ(t)}function lO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function QB(e){this._context=e}QB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function iy(e){return new QB(e)}function JB(e){return e[0]}function ez(e){return e[1]}function tz(e,t){var n=Kt(!0),r=null,a=iy,s=null,l=oO(u);e=typeof e=="function"?e:e===void 0?JB:Kt(e),t=typeof t=="function"?t:t===void 0?ez:Kt(t);function u(d){var f,m=(d=lO(d)).length,p,g=!1,x;for(r==null&&(s=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(O[j],A[j]);u.lineEnd(),u.areaEnd()}N&&(O[g]=+e(b,g,p),A[g]=+t(b,g,p),u.point(r?+r(b,g,p):O[g],n?+n(b,g,p):A[g]))}if(E)return u=null,E+""||null}function m(){return tz().defined(a).curve(l).context(s)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Kt(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Kt(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Kt(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Kt(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Kt(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Kt(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Kt(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,s!=null&&(u=l(s)),f):l},f.context=function(p){return arguments.length?(p==null?s=u=null:u=l(s=p),f):s},f}class nz{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function VJ(e){return new nz(e,!0)}function GJ(e){return new nz(e,!1)}const cO={draw(e,t){const n=Xa(t/Mv);e.moveTo(n,0),e.arc(0,0,n,0,ay)}},YJ={draw(e,t){const n=Xa(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},rz=Xa(1/3),KJ=rz*2,XJ={draw(e,t){const n=Xa(t/KJ),r=n*rz;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},ZJ={draw(e,t){const n=Xa(t),r=-n/2;e.rect(r,r,n,n)}},QJ=.8908130915292852,az=kv(Mv/10)/kv(7*Mv/10),JJ=kv(ay/10)*az,eee=-XB(ay/10)*az,tee={draw(e,t){const n=Xa(t*QJ),r=JJ*n,a=eee*n;e.moveTo(0,-n),e.lineTo(r,a);for(let s=1;s<5;++s){const l=ay*s/5,u=XB(l),d=kv(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},cj=Xa(3),nee={draw(e,t){const n=-Xa(t/(cj*3));e.moveTo(0,n*2),e.lineTo(-cj*n,-n),e.lineTo(cj*n,-n),e.closePath()}},ba=-.5,wa=Xa(3)/2,$_=1/Xa(12),ree=($_/2+1)*3,aee={draw(e,t){const n=Xa(t/ree),r=n/2,a=n*$_,s=r,l=n*$_+n,u=-s,d=l;e.moveTo(r,a),e.lineTo(s,l),e.lineTo(u,d),e.lineTo(ba*r-wa*a,wa*r+ba*a),e.lineTo(ba*s-wa*l,wa*s+ba*l),e.lineTo(ba*u-wa*d,wa*u+ba*d),e.lineTo(ba*r+wa*a,ba*a-wa*r),e.lineTo(ba*s+wa*l,ba*l-wa*s),e.lineTo(ba*u+wa*d,ba*d-wa*u),e.closePath()}};function iee(e,t){let n=null,r=oO(a);e=typeof e=="function"?e:Kt(e||cO),t=typeof t=="function"?t:Kt(t===void 0?64:+t);function a(){let s;if(n||(n=s=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(e=typeof s=="function"?s:Kt(s),a):e},a.size=function(s){return arguments.length?(t=typeof s=="function"?s:Kt(+s),a):t},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function Pv(){}function Rv(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function iz(e){this._context=e}iz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Rv(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function see(e){return new iz(e)}function sz(e){this._context=e}sz.prototype={areaStart:Pv,areaEnd:Pv,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function oee(e){return new sz(e)}function oz(e){this._context=e}oz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lee(e){return new oz(e)}function lz(e){this._context=e}lz.prototype={areaStart:Pv,areaEnd:Pv,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function cee(e){return new lz(e)}function gR(e){return e<0?-1:1}function yR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(s*a+l*r)/(r+a);return(gR(s)+gR(l))*Math.min(Math.abs(s),Math.abs(l),.5*Math.abs(u))||0}function xR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function uj(e,t,n){var r=e._x0,a=e._y0,s=e._x1,l=e._y1,u=(s-r)/3;e._context.bezierCurveTo(r+u,a+u*t,s-u,l-u*n,s,l)}function Dv(e){this._context=e}Dv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:uj(this,this._t0,xR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,uj(this,xR(this,n=yR(this,e,t)),n);break;default:uj(this,this._t0,n=yR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function cz(e){this._context=new uz(e)}(cz.prototype=Object.create(Dv.prototype)).point=function(e,t){Dv.prototype.point.call(this,t,e)};function uz(e){this._context=e}uz.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,s){this._context.bezierCurveTo(t,e,r,n,s,a)}};function uee(e){return new Dv(e)}function dee(e){return new cz(e)}function dz(e){this._context=e}dz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=bR(e),a=bR(t),s=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/s[t];for(s[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function hee(e){return new sy(e,.5)}function mee(e){return new sy(e,0)}function pee(e){return new sy(e,1)}function ou(e,t){if((l=e.length)>1)for(var n=1,r,a,s=e[t[0]],l,u=s.length;n=0;)n[t]=t;return n}function vee(e,t){return e[t]}function gee(e){const t=[];return t.key=e,t}function yee(){var e=Kt([]),t=I_,n=ou,r=vee;function a(s){var l=Array.from(e.apply(this,arguments),gee),u,d=l.length,f=-1,m;for(const p of s)for(u=0,++f;u0){for(var n,r,a=0,s=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,s=r.length;n0)||!((s=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,s,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Oee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var fz={symbolCircle:cO,symbolCross:YJ,symbolDiamond:XJ,symbolSquare:ZJ,symbolStar:tee,symbolTriangle:nee,symbolWye:aee},Eee=Math.PI/180,Aee=function(t){var n="symbol".concat(ry(t));return fz[n]||cO},Tee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*Eee;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},kee=function(t,n){fz["symbol".concat(ry(t))]=n},uO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,s=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=Cee(t,jee),f=jR(jR({},d),{},{type:r,size:s,sizeType:u}),m=function(){var b=Aee(r),N=iee().type(b).size(Tee(s,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=qe(f,!0);return g===+g&&x===+x&&s===+s?W.createElement("path",L_({},j,{className:Je("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};uO.registerSymbol=kee;function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function B_(){return B_=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var E=x.inactive?f:x.color;return W.createElement("li",L_({className:b,style:p,key:"legend-item-".concat(j)},hl(r.props,x,j)),W.createElement(k_,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:s==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);$f(uO,"displayName","Legend");$f(uO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var uj,_R;function qee(){if(_R)return uj;_R=1;var e=ey();function t(){this.__data__=new e,this.size=0}return uj=t,uj}var dj,NR;function Fee(){if(NR)return dj;NR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return dj=e,dj}var fj,CR;function Uee(){if(CR)return fj;CR=1;function e(t){return this.__data__.get(t)}return fj=e,fj}var hj,OR;function Hee(){if(OR)return hj;OR=1;function e(t){return this.__data__.has(t)}return hj=e,hj}var mj,ER;function Wee(){if(ER)return mj;ER=1;var e=ey(),t=eO(),n=tO(),r=200;function a(s,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var w=p.get(l),b=p.get(u);if(w&&b)return w==u&&b==l;var N=-1,E=!0,O=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return $j=t,$j}var Ij,QR;function ate(){if(QR)return Ij;QR=1;var e=fs(),t=mO(),n=hs(),r="[object Arguments]",a="[object Array]",s="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",w="[object WeakMap]",b="[object ArrayBuffer]",N="[object DataView]",E="[object Float32Array]",O="[object Float64Array]",A="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",R="[object Uint16Array]",B="[object Uint32Array]",$={};$[E]=$[O]=$[A]=$[C]=$[k]=$[T]=$[M]=$[R]=$[B]=!0,$[r]=$[a]=$[b]=$[s]=$[N]=$[l]=$[u]=$[d]=$[f]=$[m]=$[p]=$[g]=$[x]=$[j]=$[w]=!1;function H(V){return n(V)&&t(V.length)&&!!$[e(V)]}return Ij=H,Ij}var Lj,JR;function jz(){if(JR)return Lj;JR=1;function e(t){return function(n){return t(n)}}return Lj=e,Lj}var pf={exports:{}};pf.exports;var eD;function ite(){return eD||(eD=1,(function(e,t){var n=FB(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(pf,pf.exports)),pf.exports}var Bj,tD;function Sz(){if(tD)return Bj;tD=1;var e=ate(),t=jz(),n=ite(),r=n&&n.isTypedArray,a=r?t(r):e;return Bj=a,Bj}var zj,nD;function ste(){if(nD)return zj;nD=1;var e=tte(),t=fO(),n=qr(),r=wz(),a=hO(),s=Sz(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&s(f),w=p||g||x||j,b=w?e(f.length,String):[],N=b.length;for(var E in f)(m||u.call(f,E))&&!(w&&(E=="length"||x&&(E=="offset"||E=="parent")||j&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||a(E,N)))&&b.push(E);return b}return zj=d,zj}var qj,rD;function ote(){if(rD)return qj;rD=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return qj=t,qj}var Fj,aD;function _z(){if(aD)return Fj;aD=1;function e(t,n){return function(r){return t(n(r))}}return Fj=e,Fj}var Uj,iD;function lte(){if(iD)return Uj;iD=1;var e=_z(),t=e(Object.keys,Object);return Uj=t,Uj}var Hj,sD;function cte(){if(sD)return Hj;sD=1;var e=ote(),t=lte(),n=Object.prototype,r=n.hasOwnProperty;function a(s){if(!e(s))return t(s);var l=[];for(var u in Object(s))r.call(s,u)&&u!="constructor"&&l.push(u);return l}return Hj=a,Hj}var Wj,oD;function Bh(){if(oD)return Wj;oD=1;var e=QC(),t=mO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Wj=n,Wj}var Vj,lD;function oy(){if(lD)return Vj;lD=1;var e=ste(),t=cte(),n=Bh();function r(a){return n(a)?e(a):t(a)}return Vj=r,Vj}var Gj,cD;function ute(){if(cD)return Gj;cD=1;var e=Zee(),t=ete(),n=oy();function r(a){return e(a,n,t)}return Gj=r,Gj}var Yj,uD;function dte(){if(uD)return Yj;uD=1;var e=ute(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(s,l,u,d,f,m){var p=u&t,g=e(s),x=g.length,j=e(l),w=j.length;if(x!=w&&!p)return!1;for(var b=x;b--;){var N=g[b];if(!(p?N in l:r.call(l,N)))return!1}var E=m.get(s),O=m.get(l);if(E&&O)return E==l&&O==s;var A=!0;m.set(s,l),m.set(l,s);for(var C=p;++b-1}return b1=t,b1}var w1,ID;function kte(){if(ID)return w1;ID=1;function e(t,n,r){for(var a=-1,s=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return s(N);j=!1,g=r,b=new e}else b=f?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Vte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Gte(e){return e.value}function Yte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=Wte(t,Ite);return W.createElement(uO,n)}var WD=1,al=(function(e){function t(){var n;Lte(this,t);for(var r=arguments.length,a=new Array(r),s=0;sWD||Math.abs(a.height-this.lastBoundingBox.height)>WD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Vi({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&s==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Vi(Vi({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Vi(Vi({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Yte(s,Vi(Vi({},this.props),{},{payload:Az(m,f,Gte)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Vi(Vi({},this.defaultProps),r.props),l=s.layout;return l==="vertical"&&Ce(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);ly(al,"displayName","Legend");ly(al,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var C1,VD;function Kte(){if(VD)return C1;VD=1;var e=Ih(),t=fO(),n=qr(),r=e?e.isConcatSpreadable:void 0;function a(s){return n(s)||t(s)||!!(r&&s&&s[r])}return C1=a,C1}var O1,GD;function Mz(){if(GD)return O1;GD=1;var e=bz(),t=Kte();function n(r,a,s,l,u){var d=-1,f=r.length;for(s||(s=t),u||(u=[]);++d0&&s(m)?a>1?n(m,a-1,s,l,u):e(u,m):l||(u[u.length]=m)}return u}return O1=n,O1}var E1,YD;function Xte(){if(YD)return E1;YD=1;function e(t){return function(n,r,a){for(var s=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++s];if(r(l[f],f,l)===!1)break}return n}}return E1=e,E1}var A1,KD;function Zte(){if(KD)return A1;KD=1;var e=Xte(),t=e();return A1=t,A1}var T1,XD;function Pz(){if(XD)return T1;XD=1;var e=Zte(),t=oy();function n(r,a){return r&&e(r,a,t)}return T1=n,T1}var k1,ZD;function Qte(){if(ZD)return k1;ZD=1;var e=Bh();function t(n,r){return function(a,s){if(a==null)return a;if(!e(a))return n(a,s);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||s&&d&&m||!a&&m||!l)return 1;if(!s&&!u&&!p&&n=f)return m;var p=a[s];return m*(p=="desc"?-1:1)}}return n.index-r.index}return $1=t,$1}var I1,r4;function nne(){if(r4)return I1;r4=1;var e=nO(),t=rO(),n=_i(),r=Rz(),a=Jte(),s=jz(),l=tne(),u=Vu(),d=qr();function f(m,p,g){p.length?p=e(p,function(w){return d(w)?function(b){return t(b,w.length===1?w[0]:w)}:w}):p=[u];var x=-1;p=e(p,s(n));var j=r(m,function(w,b,N){var E=e(p,function(O){return O(w)});return{criteria:E,index:++x,value:w}});return a(j,function(w,b){return l(w,b,g)})}return I1=f,I1}var L1,a4;function rne(){if(a4)return L1;a4=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return L1=e,L1}var B1,i4;function ane(){if(i4)return B1;i4=1;var e=rne(),t=Math.max;function n(r,a,s){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++s>=e)return arguments[0]}else s=0;return a.apply(void 0,arguments)}}return U1=r,U1}var H1,u4;function lne(){if(u4)return H1;u4=1;var e=sne(),t=one(),n=t(e);return H1=n,H1}var W1,d4;function cne(){if(d4)return W1;d4=1;var e=Vu(),t=ane(),n=lne();function r(a,s){return n(t(a,s,e),a+"")}return W1=r,W1}var V1,f4;function cy(){if(f4)return V1;f4=1;var e=JC(),t=Bh(),n=hO(),r=lo();function a(s,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],s):!1}return V1=a,V1}var G1,h4;function une(){if(h4)return G1;h4=1;var e=Mz(),t=nne(),n=cne(),r=cy(),a=n(function(s,l){if(s==null)return[];var u=l.length;return u>1&&r(s,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(s,e(l,1),[])});return G1=a,G1}var dne=une();const gO=At(dne);function If(e){"@babel/helpers - typeof";return If=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},If(e)}function q_(){return q_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(tf,"-left"),Ce(n)&&t&&Ce(t.x)&&n=t.y),"".concat(tf,"-top"),Ce(r)&&t&&Ce(t.y)&&rw?Math.max(m,d[r]):Math.max(p,d[r])}function Cne(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function One(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,s=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=v4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=v4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=Cne({translateX:m,translateY:p,useTranslate3d:u})):f=_ne,{cssProperties:f,cssClasses:Nne({translateX:m,translateY:p,coordinate:n})}}function uu(e){"@babel/helpers - typeof";return uu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uu(e)}function g4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function y4(e){for(var t=1;tx4||Math.abs(r.height-this.state.lastBoundingBox.height)>x4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,w=a.reverseDirection,b=a.useTranslate3d,N=a.viewBox,E=a.wrapperStyle,O=One({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:N}),A=O.cssClasses,C=O.cssProperties,k=y4(y4({transition:g&&s?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return W.createElement("div",{tabIndex:-1,className:A,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),Ine=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Nl={isSsr:Ine()};function du(e){"@babel/helpers - typeof";return du=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},du(e)}function b4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function w4(e){for(var t=1;t0;return W.createElement($ne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:s,coordinate:m,hasPayload:k,offset:x,position:b,reverseDirection:N,useTranslate3d:E,viewBox:O,wrapperStyle:A},Gne(f,w4(w4({},this.props),{},{payload:C})))}}])})(y.PureComponent);yO(ii,"displayName","Tooltip");yO(ii,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Nl.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var K1,j4;function Yne(){if(j4)return K1;j4=1;var e=Si(),t=function(){return e.Date.now()};return K1=t,K1}var X1,S4;function Kne(){if(S4)return X1;S4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return X1=t,X1}var Z1,_4;function Xne(){if(_4)return Z1;_4=1;var e=Kne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Z1=n,Z1}var Q1,N4;function zz(){if(N4)return Q1;N4=1;var e=Xne(),t=lo(),n=Uu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=s.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return Q1=d,Q1}var J1,C4;function Zne(){if(C4)return J1;C4=1;var e=lo(),t=Yne(),n=zz(),r="Expected a function",a=Math.max,s=Math.min;function l(u,d,f){var m,p,g,x,j,w,b=0,N=!1,E=!1,O=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,E="maxWait"in f,g=E?a(n(f.maxWait)||0,d):g,O="trailing"in f?!!f.trailing:O);function A(V){var q=m,G=p;return m=p=void 0,b=V,x=u.apply(G,q),x}function C(V){return b=V,j=setTimeout(M,d),N?A(V):x}function k(V){var q=V-w,G=V-b,L=d-q;return E?s(L,g-G):L}function T(V){var q=V-w,G=V-b;return w===void 0||q>=d||q<0||E&&G>=g}function M(){var V=t();if(T(V))return R(V);j=setTimeout(M,k(V))}function R(V){return j=void 0,O&&m?A(V):(m=p=void 0,x)}function B(){j!==void 0&&clearTimeout(j),b=0,m=w=p=j=void 0}function $(){return j===void 0?x:R(t())}function H(){var V=t(),q=T(V);if(m=arguments,p=this,w=V,q){if(j===void 0)return C(w);if(E)return clearTimeout(j),j=setTimeout(M,d),A(w)}return j===void 0&&(j=setTimeout(M,d)),x}return H.cancel=B,H.flush=$,H}return J1=l,J1}var eS,O4;function Qne(){if(O4)return eS;O4=1;var e=Zne(),t=lo(),n="Expected a function";function r(a,s,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,s,{leading:u,maxWait:s,trailing:d})}return eS=r,eS}var Jne=Qne();const qz=At(Jne);function Bf(e){"@babel/helpers - typeof";return Bf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bf(e)}function E4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $p(e){for(var t=1;t`);var E=x.inactive?f:x.color;return W.createElement("li",B_({className:b,style:p,key:"legend-item-".concat(j)},hl(r.props,x,j)),W.createElement(M_,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:s==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);$f(dO,"displayName","Legend");$f(dO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var dj,_R;function qee(){if(_R)return dj;_R=1;var e=ey();function t(){this.__data__=new e,this.size=0}return dj=t,dj}var fj,NR;function Fee(){if(NR)return fj;NR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return fj=e,fj}var hj,CR;function Uee(){if(CR)return hj;CR=1;function e(t){return this.__data__.get(t)}return hj=e,hj}var mj,OR;function Hee(){if(OR)return mj;OR=1;function e(t){return this.__data__.has(t)}return mj=e,mj}var pj,ER;function Wee(){if(ER)return pj;ER=1;var e=ey(),t=tO(),n=nO(),r=200;function a(s,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var w=p.get(l),b=p.get(u);if(w&&b)return w==u&&b==l;var N=-1,E=!0,O=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return Ij=t,Ij}var Lj,QR;function ate(){if(QR)return Lj;QR=1;var e=fs(),t=pO(),n=hs(),r="[object Arguments]",a="[object Array]",s="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",w="[object WeakMap]",b="[object ArrayBuffer]",N="[object DataView]",E="[object Float32Array]",O="[object Float64Array]",A="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",R="[object Uint16Array]",B="[object Uint32Array]",$={};$[E]=$[O]=$[A]=$[C]=$[k]=$[T]=$[M]=$[R]=$[B]=!0,$[r]=$[a]=$[b]=$[s]=$[N]=$[l]=$[u]=$[d]=$[f]=$[m]=$[p]=$[g]=$[x]=$[j]=$[w]=!1;function H(V){return n(V)&&t(V.length)&&!!$[e(V)]}return Lj=H,Lj}var Bj,JR;function jz(){if(JR)return Bj;JR=1;function e(t){return function(n){return t(n)}}return Bj=e,Bj}var pf={exports:{}};pf.exports;var eD;function ite(){return eD||(eD=1,(function(e,t){var n=FB(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(pf,pf.exports)),pf.exports}var zj,tD;function Sz(){if(tD)return zj;tD=1;var e=ate(),t=jz(),n=ite(),r=n&&n.isTypedArray,a=r?t(r):e;return zj=a,zj}var qj,nD;function ste(){if(nD)return qj;nD=1;var e=tte(),t=hO(),n=qr(),r=wz(),a=mO(),s=Sz(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&s(f),w=p||g||x||j,b=w?e(f.length,String):[],N=b.length;for(var E in f)(m||u.call(f,E))&&!(w&&(E=="length"||x&&(E=="offset"||E=="parent")||j&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||a(E,N)))&&b.push(E);return b}return qj=d,qj}var Fj,rD;function ote(){if(rD)return Fj;rD=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return Fj=t,Fj}var Uj,aD;function _z(){if(aD)return Uj;aD=1;function e(t,n){return function(r){return t(n(r))}}return Uj=e,Uj}var Hj,iD;function lte(){if(iD)return Hj;iD=1;var e=_z(),t=e(Object.keys,Object);return Hj=t,Hj}var Wj,sD;function cte(){if(sD)return Wj;sD=1;var e=ote(),t=lte(),n=Object.prototype,r=n.hasOwnProperty;function a(s){if(!e(s))return t(s);var l=[];for(var u in Object(s))r.call(s,u)&&u!="constructor"&&l.push(u);return l}return Wj=a,Wj}var Vj,oD;function Bh(){if(oD)return Vj;oD=1;var e=JC(),t=pO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Vj=n,Vj}var Gj,lD;function oy(){if(lD)return Gj;lD=1;var e=ste(),t=cte(),n=Bh();function r(a){return n(a)?e(a):t(a)}return Gj=r,Gj}var Yj,cD;function ute(){if(cD)return Yj;cD=1;var e=Zee(),t=ete(),n=oy();function r(a){return e(a,n,t)}return Yj=r,Yj}var Kj,uD;function dte(){if(uD)return Kj;uD=1;var e=ute(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(s,l,u,d,f,m){var p=u&t,g=e(s),x=g.length,j=e(l),w=j.length;if(x!=w&&!p)return!1;for(var b=x;b--;){var N=g[b];if(!(p?N in l:r.call(l,N)))return!1}var E=m.get(s),O=m.get(l);if(E&&O)return E==l&&O==s;var A=!0;m.set(s,l),m.set(l,s);for(var C=p;++b-1}return w1=t,w1}var j1,ID;function kte(){if(ID)return j1;ID=1;function e(t,n,r){for(var a=-1,s=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return s(N);j=!1,g=r,b=new e}else b=f?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Vte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Gte(e){return e.value}function Yte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=Wte(t,Ite);return W.createElement(dO,n)}var WD=1,al=(function(e){function t(){var n;Lte(this,t);for(var r=arguments.length,a=new Array(r),s=0;sWD||Math.abs(a.height-this.lastBoundingBox.height)>WD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Vi({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&s==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Vi(Vi({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Vi(Vi({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Yte(s,Vi(Vi({},this.props),{},{payload:Az(m,f,Gte)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Vi(Vi({},this.defaultProps),r.props),l=s.layout;return l==="vertical"&&Ce(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);ly(al,"displayName","Legend");ly(al,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var O1,VD;function Kte(){if(VD)return O1;VD=1;var e=Ih(),t=hO(),n=qr(),r=e?e.isConcatSpreadable:void 0;function a(s){return n(s)||t(s)||!!(r&&s&&s[r])}return O1=a,O1}var E1,GD;function Mz(){if(GD)return E1;GD=1;var e=bz(),t=Kte();function n(r,a,s,l,u){var d=-1,f=r.length;for(s||(s=t),u||(u=[]);++d0&&s(m)?a>1?n(m,a-1,s,l,u):e(u,m):l||(u[u.length]=m)}return u}return E1=n,E1}var A1,YD;function Xte(){if(YD)return A1;YD=1;function e(t){return function(n,r,a){for(var s=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++s];if(r(l[f],f,l)===!1)break}return n}}return A1=e,A1}var T1,KD;function Zte(){if(KD)return T1;KD=1;var e=Xte(),t=e();return T1=t,T1}var k1,XD;function Pz(){if(XD)return k1;XD=1;var e=Zte(),t=oy();function n(r,a){return r&&e(r,a,t)}return k1=n,k1}var M1,ZD;function Qte(){if(ZD)return M1;ZD=1;var e=Bh();function t(n,r){return function(a,s){if(a==null)return a;if(!e(a))return n(a,s);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||s&&d&&m||!a&&m||!l)return 1;if(!s&&!u&&!p&&n=f)return m;var p=a[s];return m*(p=="desc"?-1:1)}}return n.index-r.index}return I1=t,I1}var L1,r4;function nne(){if(r4)return L1;r4=1;var e=rO(),t=aO(),n=_i(),r=Rz(),a=Jte(),s=jz(),l=tne(),u=Vu(),d=qr();function f(m,p,g){p.length?p=e(p,function(w){return d(w)?function(b){return t(b,w.length===1?w[0]:w)}:w}):p=[u];var x=-1;p=e(p,s(n));var j=r(m,function(w,b,N){var E=e(p,function(O){return O(w)});return{criteria:E,index:++x,value:w}});return a(j,function(w,b){return l(w,b,g)})}return L1=f,L1}var B1,a4;function rne(){if(a4)return B1;a4=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return B1=e,B1}var z1,i4;function ane(){if(i4)return z1;i4=1;var e=rne(),t=Math.max;function n(r,a,s){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++s>=e)return arguments[0]}else s=0;return a.apply(void 0,arguments)}}return H1=r,H1}var W1,u4;function lne(){if(u4)return W1;u4=1;var e=sne(),t=one(),n=t(e);return W1=n,W1}var V1,d4;function cne(){if(d4)return V1;d4=1;var e=Vu(),t=ane(),n=lne();function r(a,s){return n(t(a,s,e),a+"")}return V1=r,V1}var G1,f4;function cy(){if(f4)return G1;f4=1;var e=eO(),t=Bh(),n=mO(),r=lo();function a(s,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],s):!1}return G1=a,G1}var Y1,h4;function une(){if(h4)return Y1;h4=1;var e=Mz(),t=nne(),n=cne(),r=cy(),a=n(function(s,l){if(s==null)return[];var u=l.length;return u>1&&r(s,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(s,e(l,1),[])});return Y1=a,Y1}var dne=une();const yO=At(dne);function If(e){"@babel/helpers - typeof";return If=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},If(e)}function F_(){return F_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(tf,"-left"),Ce(n)&&t&&Ce(t.x)&&n=t.y),"".concat(tf,"-top"),Ce(r)&&t&&Ce(t.y)&&rw?Math.max(m,d[r]):Math.max(p,d[r])}function Cne(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function One(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,s=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=v4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=v4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=Cne({translateX:m,translateY:p,useTranslate3d:u})):f=_ne,{cssProperties:f,cssClasses:Nne({translateX:m,translateY:p,coordinate:n})}}function uu(e){"@babel/helpers - typeof";return uu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uu(e)}function g4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function y4(e){for(var t=1;tx4||Math.abs(r.height-this.state.lastBoundingBox.height)>x4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,w=a.reverseDirection,b=a.useTranslate3d,N=a.viewBox,E=a.wrapperStyle,O=One({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:N}),A=O.cssClasses,C=O.cssProperties,k=y4(y4({transition:g&&s?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return W.createElement("div",{tabIndex:-1,className:A,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),Ine=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Nl={isSsr:Ine()};function du(e){"@babel/helpers - typeof";return du=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},du(e)}function b4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function w4(e){for(var t=1;t0;return W.createElement($ne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:s,coordinate:m,hasPayload:k,offset:x,position:b,reverseDirection:N,useTranslate3d:E,viewBox:O,wrapperStyle:A},Gne(f,w4(w4({},this.props),{},{payload:C})))}}])})(y.PureComponent);xO(ii,"displayName","Tooltip");xO(ii,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Nl.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var X1,j4;function Yne(){if(j4)return X1;j4=1;var e=Si(),t=function(){return e.Date.now()};return X1=t,X1}var Z1,S4;function Kne(){if(S4)return Z1;S4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return Z1=t,Z1}var Q1,_4;function Xne(){if(_4)return Q1;_4=1;var e=Kne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Q1=n,Q1}var J1,N4;function zz(){if(N4)return J1;N4=1;var e=Xne(),t=lo(),n=Uu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=s.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return J1=d,J1}var eS,C4;function Zne(){if(C4)return eS;C4=1;var e=lo(),t=Yne(),n=zz(),r="Expected a function",a=Math.max,s=Math.min;function l(u,d,f){var m,p,g,x,j,w,b=0,N=!1,E=!1,O=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,E="maxWait"in f,g=E?a(n(f.maxWait)||0,d):g,O="trailing"in f?!!f.trailing:O);function A(V){var q=m,G=p;return m=p=void 0,b=V,x=u.apply(G,q),x}function C(V){return b=V,j=setTimeout(M,d),N?A(V):x}function k(V){var q=V-w,G=V-b,L=d-q;return E?s(L,g-G):L}function T(V){var q=V-w,G=V-b;return w===void 0||q>=d||q<0||E&&G>=g}function M(){var V=t();if(T(V))return R(V);j=setTimeout(M,k(V))}function R(V){return j=void 0,O&&m?A(V):(m=p=void 0,x)}function B(){j!==void 0&&clearTimeout(j),b=0,m=w=p=j=void 0}function $(){return j===void 0?x:R(t())}function H(){var V=t(),q=T(V);if(m=arguments,p=this,w=V,q){if(j===void 0)return C(w);if(E)return clearTimeout(j),j=setTimeout(M,d),A(w)}return j===void 0&&(j=setTimeout(M,d)),x}return H.cancel=B,H.flush=$,H}return eS=l,eS}var tS,O4;function Qne(){if(O4)return tS;O4=1;var e=Zne(),t=lo(),n="Expected a function";function r(a,s,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,s,{leading:u,maxWait:s,trailing:d})}return tS=r,tS}var Jne=Qne();const qz=At(Jne);function Bf(e){"@babel/helpers - typeof";return Bf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bf(e)}function E4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $p(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(V=qz(V,w,{trailing:!0,leading:!1}));var q=new ResizeObserver(V),G=C.current.getBoundingClientRect(),L=G.width,D=G.height;return $(L,D),q.observe(C.current),function(){q.disconnect()}},[$,w]);var H=y.useMemo(function(){var V=R.containerWidth,q=R.containerHeight;if(V<0||q<0)return null;Ha(Ko(l)||Ko(d),`The width(%s) and height(%s) are both fixed numbers, maybe you don't need to use a ResponsiveContainer.`,l,d),Ha(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Ko(l)?V:l,L=Ko(d)?q:d;n&&n>0&&(G?L=G/n:L&&(G=L*n),g&&L>g&&(L=g)),Ha(G>0||L>0,`The width(%s) and height(%s) of chart should be greater than 0, please check the style of container, or the props width(%s) and height(%s), or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,G,L,l,d,m,p,n);var D=!Array.isArray(x)&&ns(x.type).endsWith("Chart");return W.Children.map(x,function(U){return W.isValidElement(U)?y.cloneElement(U,$p({width:G,height:L},D?{style:$p({height:"100%",width:"100%",maxHeight:L,maxWidth:G},U.props.style)}:{})):U})},[n,x,d,g,p,m,R,l]);return W.createElement("div",{id:b?"".concat(b):void 0,className:Je("recharts-responsive-container",N),style:$p($p({},A),{},{width:l,height:d,minWidth:m,minHeight:p,maxHeight:g}),ref:C},H)}),uy=function(t){return null};uy.displayName="Cell";function zf(e){"@babel/helpers - typeof";return zf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zf(e)}function T4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function W_(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Nl.isSsr)return{width:0,height:0};var r=mre(n),a=JSON.stringify({text:t,copyStyle:r});if(Nc.widthCache[a])return Nc.widthCache[a];try{var s=document.getElementById(k4);s||(s=document.createElement("span"),s.setAttribute("id",k4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var l=W_(W_({},hre),r);Object.assign(s.style,l),s.textContent="".concat(t);var u=s.getBoundingClientRect(),d={width:u.width,height:u.height};return Nc.widthCache[a]=d,++Nc.cacheCount>fre&&(Nc.cacheCount=0,Nc.widthCache={}),d}catch{return{width:0,height:0}}},pre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function qf(e){"@babel/helpers - typeof";return qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qf(e)}function zv(e,t){return xre(e)||yre(e,t)||gre(e,t)||vre()}function vre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gre(e,t){if(e){if(typeof e=="string")return M4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M4(e,t)}}function M4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Pre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function L4(e,t){return Ire(e)||$re(e,t)||Dre(e,t)||Rre()}function Rre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dre(e,t){if(e){if(typeof e=="string")return B4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return B4(e,t)}}function B4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function(L,D){var U=D.word,K=D.width,J=L[L.length-1];if(J&&(a==null||s||J.width+K+rD.width?L:D})};if(!m)return x;for(var w="…",b=function(G){var L=p.slice(0,G),D=Wz({breakAll:f,style:d,children:L+w}).wordsWithComputedWidth,U=g(D),K=U.length>l||j(U).width>Number(a);return[K,U]},N=0,E=p.length-1,O=0,A;N<=E&&O<=p.length-1;){var C=Math.floor((N+E)/2),k=C-1,T=b(k),M=L4(T,2),R=M[0],B=M[1],$=b(C),H=L4($,1),V=H[0];if(!R&&!V&&(N=C+1),R&&V&&(E=C-1),!R&&V){A=B;break}O++}return A||x},z4=function(t){var n=Qe(t)?[]:t.toString().split(Hz);return[{words:n}]},Bre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,s=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Nl.isSsr){var d,f,m=Wz({breakAll:l,children:a,style:s});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return z4(a);return Lre({breakAll:l,children:a,maxLines:u,style:s},d,f,n,r)}return z4(a)},q4="#808080",ml=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,w=j===void 0?"end":j,b=t.fill,N=b===void 0?q4:b,E=I4(t,kre),O=y.useMemo(function(){return Bre({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),A=E.dx,C=E.dy,k=E.angle,T=E.className,M=E.breakAll,R=I4(E,Mre);if(!Ln(r)||!Ln(s))return null;var B=r+(Ce(A)?A:0),$=s+(Ce(C)?C:0),H;switch(w){case"start":H=tS("calc(".concat(f,")"));break;case"middle":H=tS("calc(".concat((O.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:H=tS("calc(".concat(O.length-1," * -").concat(u,")"));break}var V=[];if(p){var q=O[0].width,G=E.width;V.push("scale(".concat((Ce(G)?G/q:1)/q,")"))}return k&&V.push("rotate(".concat(k,", ").concat(B,", ").concat($,")")),V.length&&(R.transform=V.join(" ")),W.createElement("text",V_({},qe(R,!0),{x:B,y:$,className:Je("recharts-text",T),textAnchor:x,fill:N.includes("url")?q4:N}),O.map(function(L,D){var U=L.words.join(M?"":" ");return W.createElement("tspan",{x:B,dy:D===0?H:u,key:"".concat(U,"-").concat(D)},U)}))};function Qs(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function zre(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function xO(e){let t,n,r;e.length!==2?(t=Qs,n=(u,d)=>Qs(e(u),d),r=(u,d)=>e(u)-d):(t=e===Qs||e===zre?e:qre,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:s}}function qre(){return 0}function Vz(e){return e===null?NaN:+e}function*Fre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Ure=xO(Qs),zh=Ure.right;xO(Vz).center;class F4 extends Map{constructor(t,n=Vre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(U4(this,t))}has(t){return super.has(U4(this,t))}set(t,n){return super.set(Hre(this,t),n)}delete(t){return super.delete(Wre(this,t))}}function U4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Hre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Wre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Vre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Gre(e=Qs){if(e===Qs)return Gz;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function Gz(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Yre=Math.sqrt(50),Kre=Math.sqrt(10),Xre=Math.sqrt(2);function qv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),l=s>=Yre?10:s>=Kre?5:s>=Xre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=s-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function W4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function Yz(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?Gz:Gre(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));Yz(e,t,x,j,a)}const s=e[t];let l=n,u=r;for(nf(e,n,t),a(e[r],s)>0&&nf(e,n,r);l0;)--u}a(e[n],s)===0?nf(e,n,u):(++u,nf(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function nf(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Zre(e,t,n){if(e=Float64Array.from(Fre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return W4(e);if(t>=1)return H4(e);var r,a=(r-1)*t,s=Math.floor(a),l=H4(Yz(e,s).subarray(0,s+1)),u=W4(e.subarray(s+1));return l+(u-l)*(a-s)}}function Qre(e,t,n=Vz){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,s=Math.floor(a),l=+n(e[s],s,e),u=+n(e[s+1],s+1,e);return l+(u-l)*(a-s)}}function Jre(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Lp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Lp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=tae.exec(e))?new Rr(t[1],t[2],t[3],1):(t=nae.exec(e))?new Rr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=rae.exec(e))?Lp(t[1],t[2],t[3],t[4]):(t=aae.exec(e))?Lp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=iae.exec(e))?Q4(t[1],t[2]/100,t[3]/100,1):(t=sae.exec(e))?Q4(t[1],t[2]/100,t[3]/100,t[4]):V4.hasOwnProperty(e)?K4(V4[e]):e==="transparent"?new Rr(NaN,NaN,NaN,0):null}function K4(e){return new Rr(e>>16&255,e>>8&255,e&255,1)}function Lp(e,t,n,r){return r<=0&&(e=t=n=NaN),new Rr(e,t,n,r)}function cae(e){return e instanceof qh||(e=Wf(e)),e?(e=e.rgb(),new Rr(e.r,e.g,e.b,e.opacity)):new Rr}function Z_(e,t,n,r){return arguments.length===1?cae(e):new Rr(e,t,n,r??1)}function Rr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}wO(Rr,Z_,Xz(qh,{brighter(e){return e=e==null?Fv:Math.pow(Fv,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Uf:Math.pow(Uf,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rr(il(this.r),il(this.g),il(this.b),Uv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:X4,formatHex:X4,formatHex8:uae,formatRgb:Z4,toString:Z4}));function X4(){return`#${Xo(this.r)}${Xo(this.g)}${Xo(this.b)}`}function uae(){return`#${Xo(this.r)}${Xo(this.g)}${Xo(this.b)}${Xo((isNaN(this.opacity)?1:this.opacity)*255)}`}function Z4(){const e=Uv(this.opacity);return`${e===1?"rgb(":"rgba("}${il(this.r)}, ${il(this.g)}, ${il(this.b)}${e===1?")":`, ${e})`}`}function Uv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function il(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Xo(e){return e=il(e),(e<16?"0":"")+e.toString(16)}function Q4(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new qa(e,t,n,r)}function Zz(e){if(e instanceof qa)return new qa(e.h,e.s,e.l,e.opacity);if(e instanceof qh||(e=Wf(e)),!e)return new qa;if(e instanceof qa)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,u=s-a,d=(s+a)/2;return u?(t===s?l=(n-r)/u+(n0&&d<1?0:l,new qa(l,u,d,e.opacity)}function dae(e,t,n,r){return arguments.length===1?Zz(e):new qa(e,t,n,r??1)}function qa(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}wO(qa,dae,Xz(qh,{brighter(e){return e=e==null?Fv:Math.pow(Fv,e),new qa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Uf:Math.pow(Uf,e),new qa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new Rr(nS(e>=240?e-240:e+120,a,r),nS(e,a,r),nS(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new qa(J4(this.h),Bp(this.s),Bp(this.l),Uv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Uv(this.opacity);return`${e===1?"hsl(":"hsla("}${J4(this.h)}, ${Bp(this.s)*100}%, ${Bp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function J4(e){return e=(e||0)%360,e<0?e+360:e}function Bp(e){return Math.max(0,Math.min(1,e||0))}function nS(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const jO=e=>()=>e;function fae(e,t){return function(n){return e+n*t}}function hae(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function mae(e){return(e=+e)==1?Qz:function(t,n){return n-t?hae(t,n,e):jO(isNaN(t)?n:t)}}function Qz(e,t){var n=t-e;return n?fae(e,n):jO(isNaN(e)?t:e)}const e3=(function e(t){var n=mae(t);function r(a,s){var l=n((a=Z_(a)).r,(s=Z_(s)).r),u=n(a.g,s.g),d=n(a.b,s.b),f=Qz(a.opacity,s.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function pae(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(s){for(a=0;an&&(s=t.slice(n,s),u[l]?u[l]+=s:u[++l]=s),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:Hv(r,a)})),n=rS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Cae(e,t,n){var r=e[0],a=e[1],s=t[0],l=t[1];return a2?Oae:Cae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?s:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),Hv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,Wv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=SO,m()},p.clamp=function(g){return arguments.length?(l=g?!0:_r,m()):l!==_r},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(s=g,p):s},function(g,x){return r=g,a=x,m()}}function _O(){return dy()(_r,_r)}function Eae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Vv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function fu(e){return e=Vv(Math.abs(e)),e?e[1]:NaN}function Aae(e,t){return function(n,r){for(var a=n.length,s=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),s.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return s.reverse().join(t)}}function Tae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var kae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vf(e){if(!(t=kae.exec(e)))throw new Error("invalid format: "+e);var t;return new NO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Vf.prototype=NO.prototype;function NO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}NO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Mae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var Jz;function Pae(e,t){var n=Vv(e,t);if(!n)return e+"";var r=n[0],a=n[1],s=a-(Jz=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Vv(e,Math.max(0,t+s-1))[0]}function n3(e,t){var n=Vv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const r3={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Eae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>n3(e*100,t),r:n3,s:Pae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function a3(e){return e}var i3=Array.prototype.map,s3=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Rae(e){var t=e.grouping===void 0||e.thousands===void 0?a3:Aae(i3.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?a3:Tae(i3.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=Vf(p);var g=p.fill,x=p.align,j=p.sign,w=p.symbol,b=p.zero,N=p.width,E=p.comma,O=p.precision,A=p.trim,C=p.type;C==="n"?(E=!0,C="g"):r3[C]||(O===void 0&&(O=12),A=!0,C="g"),(b||g==="0"&&x==="=")&&(b=!0,g="0",x="=");var k=w==="$"?n:w==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=w==="$"?r:/[%p]/.test(C)?l:"",M=r3[C],R=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function B($){var H=k,V=T,q,G,L;if(C==="c")V=M($)+V,$="";else{$=+$;var D=$<0||1/$<0;if($=isNaN($)?d:M(Math.abs($),O),A&&($=Mae($)),D&&+$==0&&j!=="+"&&(D=!1),H=(D?j==="("?j:u:j==="-"||j==="("?"":j)+H,V=(C==="s"?s3[8+Jz/3]:"")+V+(D&&j==="("?")":""),R){for(q=-1,G=$.length;++qL||L>57){V=(L===46?a+$.slice(q+1):$.slice(q))+V,$=$.slice(0,q);break}}}E&&!b&&($=t($,1/0));var U=H.length+$.length+V.length,K=U>1)+H+$+V+K.slice(U);break;default:$=K+H+$+V;break}return s($)}return B.toString=function(){return p+""},B}function m(p,g){var x=f((p=Vf(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(fu(g)/3)))*3,w=Math.pow(10,-j),b=s3[8+j/3];return function(N){return x(w*N)+b}}return{format:f,formatPrefix:m}}var zp,CO,e6;Dae({thousands:",",grouping:[3],currency:["$",""]});function Dae(e){return zp=Rae(e),CO=zp.format,e6=zp.formatPrefix,zp}function $ae(e){return Math.max(0,-fu(Math.abs(e)))}function Iae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fu(t)/3)))*3-fu(Math.abs(e)))}function Lae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,fu(t)-fu(e))+1}function t6(e,t,n,r){var a=K_(e,t,n),s;switch(r=Vf(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(s=Iae(a,l))&&(r.precision=s),e6(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Lae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=$ae(a))&&(r.precision=s-(r.type==="%")*2);break}}return CO(r)}function co(e){var t=e.domain;return e.ticks=function(n){var r=t();return G_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return t6(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,s=r.length-1,l=r[a],u=r[s],d,f,m=10;for(u0;){if(f=Y_(l,u,n),f===d)return r[a]=l,r[s]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function Gv(){var e=_O();return e.copy=function(){return Fh(e,Gv())},ka.apply(e,arguments),co(e)}function n6(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Wv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return n6(e).unknown(t)},e=arguments.length?Array.from(e,Wv):[0,1],co(n)}function r6(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],s=e[r],l;return sMath.pow(e,t)}function Uae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function c3(e){return(t,n)=>-e(-t,n)}function OO(e){const t=e(o3,l3),n=t.domain;let r=10,a,s;function l(){return a=Uae(r),s=Fae(r),n()[0]<0?(a=c3(a),s=c3(s),e(Bae,zae)):e(o3,l3),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(w)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(w=g>0?j/s(-g):j*s(g),!(wm)break;N.push(w)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=Vf(d)).precision==null&&(d.trim=!0),d=CO(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/s(Math.round(a(m)));return p*rn(r6(n(),{floor:u=>s(Math.floor(a(u))),ceil:u=>s(Math.ceil(a(u)))})),t}function a6(){const e=OO(dy()).domain([1,10]);return e.copy=()=>Fh(e,a6()).base(e.base()),ka.apply(e,arguments),e}function u3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function d3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function EO(e){var t=1,n=e(u3(t),d3(t));return n.constant=function(r){return arguments.length?e(u3(t=+r),d3(t)):t},co(n)}function i6(){var e=EO(dy());return e.copy=function(){return Fh(e,i6()).constant(e.constant())},ka.apply(e,arguments)}function f3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Hae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Wae(e){return e<0?-e*e:e*e}function AO(e){var t=e(_r,_r),n=1;function r(){return n===1?e(_r,_r):n===.5?e(Hae,Wae):e(f3(n),f3(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},co(t)}function TO(){var e=AO(dy());return e.copy=function(){return Fh(e,TO()).exponent(e.exponent())},ka.apply(e,arguments),e}function Vae(){return TO.apply(null,arguments).exponent(.5)}function h3(e){return Math.sign(e)*e*e}function Gae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function s6(){var e=_O(),t=[0,1],n=!1,r;function a(s){var l=Gae(e(s));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(s){return e.invert(h3(s))},a.domain=function(s){return arguments.length?(e.domain(s),a):e.domain()},a.range=function(s){return arguments.length?(e.range((t=Array.from(s,Wv)).map(h3)),a):t.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(e.clamp(s),a):e.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return s6(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},ka.apply(a,arguments),co(a)}function o6(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(s=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return l6().domain([e,t]).range(a).unknown(s)},ka.apply(co(l),arguments)}function c6(){var e=[.5],t=[0,1],n,r=1;function a(s){return s!=null&&s<=s?t[zh(e,s,0,r)]:n}return a.domain=function(s){return arguments.length?(e=Array.from(s),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(s){return arguments.length?(t=Array.from(s),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(s){var l=t.indexOf(s);return[e[l-1],e[l]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return c6().domain(e).range(t).unknown(n)},ka.apply(a,arguments)}const aS=new Date,iS=new Date;function zn(e,t,n,r){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const l=a(s),u=a.ceil(s);return s-l(t(s=new Date(+s),l==null?1:Math.floor(l)),s),a.range=(s,l,u)=>{const d=[];if(s=a.ceil(s),u=u==null?1:Math.floor(u),!(s0))return d;let f;do d.push(f=new Date(+s)),t(s,u),e(s);while(fzn(l=>{if(l>=l)for(;e(l),!s(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!s(l););else for(;--u>=0;)for(;t(l,1),!s(l););}),n&&(a.count=(s,l)=>(aS.setTime(+s),iS.setTime(+l),e(aS),e(iS),Math.floor(n(aS,iS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?l=>r(l)%s===0:l=>a.count(0,l)%s===0):a)),a}const Yv=zn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Yv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?zn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Yv);Yv.range;const Xi=1e3,Ca=Xi*60,Zi=Ca*60,ss=Zi*24,kO=ss*7,m3=ss*30,sS=ss*365,Zo=zn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Xi)},(e,t)=>(t-e)/Xi,e=>e.getUTCSeconds());Zo.range;const MO=zn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xi)},(e,t)=>{e.setTime(+e+t*Ca)},(e,t)=>(t-e)/Ca,e=>e.getMinutes());MO.range;const PO=zn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ca)},(e,t)=>(t-e)/Ca,e=>e.getUTCMinutes());PO.range;const RO=zn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xi-e.getMinutes()*Ca)},(e,t)=>{e.setTime(+e+t*Zi)},(e,t)=>(t-e)/Zi,e=>e.getHours());RO.range;const DO=zn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Zi)},(e,t)=>(t-e)/Zi,e=>e.getUTCHours());DO.range;const Uh=zn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ca)/ss,e=>e.getDate()-1);Uh.range;const fy=zn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ss,e=>e.getUTCDate()-1);fy.range;const u6=zn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ss,e=>Math.floor(e/ss));u6.range;function Cl(e){return zn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Ca)/kO)}const hy=Cl(0),Kv=Cl(1),Yae=Cl(2),Kae=Cl(3),hu=Cl(4),Xae=Cl(5),Zae=Cl(6);hy.range;Kv.range;Yae.range;Kae.range;hu.range;Xae.range;Zae.range;function Ol(e){return zn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/kO)}const my=Ol(0),Xv=Ol(1),Qae=Ol(2),Jae=Ol(3),mu=Ol(4),eie=Ol(5),tie=Ol(6);my.range;Xv.range;Qae.range;Jae.range;mu.range;eie.range;tie.range;const $O=zn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());$O.range;const IO=zn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());IO.range;const os=zn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());os.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:zn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});os.range;const ls=zn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ls.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:zn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});ls.range;function d6(e,t,n,r,a,s){const l=[[Zo,1,Xi],[Zo,5,5*Xi],[Zo,15,15*Xi],[Zo,30,30*Xi],[s,1,Ca],[s,5,5*Ca],[s,15,15*Ca],[s,30,30*Ca],[a,1,Zi],[a,3,3*Zi],[a,6,6*Zi],[a,12,12*Zi],[r,1,ss],[r,2,2*ss],[n,1,kO],[t,1,m3],[t,3,3*m3],[e,1,sS]];function u(f,m,p){const g=mb).right(l,g);if(x===l.length)return e.every(K_(f/sS,m/sS,p));if(x===0)return Yv.every(Math.max(K_(f,m,p),1));const[j,w]=l[g/l[x-1][2]53)return null;"w"in fe||(fe.w=1),"Z"in fe?(Oe=lS(rf(fe.y,0,1)),We=Oe.getUTCDay(),Oe=We>4||We===0?Xv.ceil(Oe):Xv(Oe),Oe=fy.offset(Oe,(fe.V-1)*7),fe.y=Oe.getUTCFullYear(),fe.m=Oe.getUTCMonth(),fe.d=Oe.getUTCDate()+(fe.w+6)%7):(Oe=oS(rf(fe.y,0,1)),We=Oe.getDay(),Oe=We>4||We===0?Kv.ceil(Oe):Kv(Oe),Oe=Uh.offset(Oe,(fe.V-1)*7),fe.y=Oe.getFullYear(),fe.m=Oe.getMonth(),fe.d=Oe.getDate()+(fe.w+6)%7)}else("W"in fe||"U"in fe)&&("w"in fe||(fe.w="u"in fe?fe.u%7:"W"in fe?1:0),We="Z"in fe?lS(rf(fe.y,0,1)).getUTCDay():oS(rf(fe.y,0,1)).getDay(),fe.m=0,fe.d="W"in fe?(fe.w+6)%7+fe.W*7-(We+5)%7:fe.w+fe.U*7-(We+6)%7);return"Z"in fe?(fe.H+=fe.Z/100|0,fe.M+=fe.Z%100,lS(fe)):oS(fe)}}function M(re,we,je,fe){for(var Le=0,Oe=we.length,We=je.length,be,Ae;Le=We)return-1;if(be=we.charCodeAt(Le++),be===37){if(be=we.charAt(Le++),Ae=C[be in p3?we.charAt(Le++):be],!Ae||(fe=Ae(re,je,fe))<0)return-1}else if(be!=je.charCodeAt(fe++))return-1}return fe}function R(re,we,je){var fe=f.exec(we.slice(je));return fe?(re.p=m.get(fe[0].toLowerCase()),je+fe[0].length):-1}function B(re,we,je){var fe=x.exec(we.slice(je));return fe?(re.w=j.get(fe[0].toLowerCase()),je+fe[0].length):-1}function $(re,we,je){var fe=p.exec(we.slice(je));return fe?(re.w=g.get(fe[0].toLowerCase()),je+fe[0].length):-1}function H(re,we,je){var fe=N.exec(we.slice(je));return fe?(re.m=E.get(fe[0].toLowerCase()),je+fe[0].length):-1}function V(re,we,je){var fe=w.exec(we.slice(je));return fe?(re.m=b.get(fe[0].toLowerCase()),je+fe[0].length):-1}function q(re,we,je){return M(re,t,we,je)}function G(re,we,je){return M(re,n,we,je)}function L(re,we,je){return M(re,r,we,je)}function D(re){return l[re.getDay()]}function U(re){return s[re.getDay()]}function K(re){return d[re.getMonth()]}function J(re){return u[re.getMonth()]}function I(re){return a[+(re.getHours()>=12)]}function z(re){return 1+~~(re.getMonth()/3)}function Y(re){return l[re.getUTCDay()]}function te(re){return s[re.getUTCDay()]}function ae(re){return d[re.getUTCMonth()]}function ge(re){return u[re.getUTCMonth()]}function ee(re){return a[+(re.getUTCHours()>=12)]}function Se(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var we=k(re+="",O);return we.toString=function(){return re},we},parse:function(re){var we=T(re+="",!1);return we.toString=function(){return re},we},utcFormat:function(re){var we=k(re+="",A);return we.toString=function(){return re},we},utcParse:function(re){var we=T(re+="",!0);return we.toString=function(){return re},we}}}var p3={"-":"",_:" ",0:"0"},Qn=/^\s*\d+/,oie=/^%/,lie=/[\\^$*+?|[\]().{}]/g;function bt(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",s=a.length;return r+(s[t.toLowerCase(),n]))}function uie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function die(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function fie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function hie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function mie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function v3(e,t,n){var r=Qn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function g3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function pie(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function vie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function gie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function y3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function yie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function x3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function xie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function bie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function wie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function jie(e,t,n){var r=Qn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Sie(e,t,n){var r=oie.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function _ie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Nie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function b3(e,t){return bt(e.getDate(),t,2)}function Cie(e,t){return bt(e.getHours(),t,2)}function Oie(e,t){return bt(e.getHours()%12||12,t,2)}function Eie(e,t){return bt(1+Uh.count(os(e),e),t,3)}function f6(e,t){return bt(e.getMilliseconds(),t,3)}function Aie(e,t){return f6(e,t)+"000"}function Tie(e,t){return bt(e.getMonth()+1,t,2)}function kie(e,t){return bt(e.getMinutes(),t,2)}function Mie(e,t){return bt(e.getSeconds(),t,2)}function Pie(e){var t=e.getDay();return t===0?7:t}function Rie(e,t){return bt(hy.count(os(e)-1,e),t,2)}function h6(e){var t=e.getDay();return t>=4||t===0?hu(e):hu.ceil(e)}function Die(e,t){return e=h6(e),bt(hu.count(os(e),e)+(os(e).getDay()===4),t,2)}function $ie(e){return e.getDay()}function Iie(e,t){return bt(Kv.count(os(e)-1,e),t,2)}function Lie(e,t){return bt(e.getFullYear()%100,t,2)}function Bie(e,t){return e=h6(e),bt(e.getFullYear()%100,t,2)}function zie(e,t){return bt(e.getFullYear()%1e4,t,4)}function qie(e,t){var n=e.getDay();return e=n>=4||n===0?hu(e):hu.ceil(e),bt(e.getFullYear()%1e4,t,4)}function Fie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+bt(t/60|0,"0",2)+bt(t%60,"0",2)}function w3(e,t){return bt(e.getUTCDate(),t,2)}function Uie(e,t){return bt(e.getUTCHours(),t,2)}function Hie(e,t){return bt(e.getUTCHours()%12||12,t,2)}function Wie(e,t){return bt(1+fy.count(ls(e),e),t,3)}function m6(e,t){return bt(e.getUTCMilliseconds(),t,3)}function Vie(e,t){return m6(e,t)+"000"}function Gie(e,t){return bt(e.getUTCMonth()+1,t,2)}function Yie(e,t){return bt(e.getUTCMinutes(),t,2)}function Kie(e,t){return bt(e.getUTCSeconds(),t,2)}function Xie(e){var t=e.getUTCDay();return t===0?7:t}function Zie(e,t){return bt(my.count(ls(e)-1,e),t,2)}function p6(e){var t=e.getUTCDay();return t>=4||t===0?mu(e):mu.ceil(e)}function Qie(e,t){return e=p6(e),bt(mu.count(ls(e),e)+(ls(e).getUTCDay()===4),t,2)}function Jie(e){return e.getUTCDay()}function ese(e,t){return bt(Xv.count(ls(e)-1,e),t,2)}function tse(e,t){return bt(e.getUTCFullYear()%100,t,2)}function nse(e,t){return e=p6(e),bt(e.getUTCFullYear()%100,t,2)}function rse(e,t){return bt(e.getUTCFullYear()%1e4,t,4)}function ase(e,t){var n=e.getUTCDay();return e=n>=4||n===0?mu(e):mu.ceil(e),bt(e.getUTCFullYear()%1e4,t,4)}function ise(){return"+0000"}function j3(){return"%"}function S3(e){return+e}function _3(e){return Math.floor(+e/1e3)}var Cc,v6,g6;sse({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function sse(e){return Cc=sie(e),v6=Cc.format,Cc.parse,g6=Cc.utcFormat,Cc.utcParse,Cc}function ose(e){return new Date(e)}function lse(e){return e instanceof Date?+e:+new Date(+e)}function LO(e,t,n,r,a,s,l,u,d,f){var m=_O(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),w=f("%I:%M"),b=f("%I %p"),N=f("%a %d"),E=f("%b %d"),O=f("%B"),A=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>Zre(e,s/r))},n.copy=function(){return w6(t).domain(e)},ms.apply(n,arguments)}function vy(){var e=0,t=.5,n=1,r=1,a,s,l,u,d,f=_r,m,p=!1,g;function x(w){return isNaN(w=+w)?g:(w=.5+((w=+m(w))-s)*(r*wn}return uS=e,uS}var dS,E3;function hse(){if(E3)return dS;E3=1;var e=gy(),t=N6(),n=Vu();function r(a){return a&&a.length?e(a,n,t):void 0}return dS=r,dS}var mse=hse();const yy=At(mse);var fS,A3;function C6(){if(A3)return fS;A3=1;function e(t,n){return te.e^s.s<0?1:-1;for(r=s.d.length,a=e.d.length,t=0,n=re.d[t]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};Te.decimalPlaces=Te.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*tn;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Te.dividedBy=Te.div=function(e){return rs(this,new this.constructor(e))};Te.dividedToIntegerBy=Te.idiv=function(e){var t=this,n=t.constructor;return Vt(rs(t,new n(e),0,1),n.precision)};Te.equals=Te.eq=function(e){return!this.cmp(e)};Te.exponent=function(){return Tn(this)};Te.greaterThan=Te.gt=function(e){return this.cmp(e)>0};Te.greaterThanOrEqualTo=Te.gte=function(e){return this.cmp(e)>=0};Te.isInteger=Te.isint=function(){return this.e>this.d.length-2};Te.isNegative=Te.isneg=function(){return this.s<0};Te.isPositive=Te.ispos=function(){return this.s>0};Te.isZero=function(){return this.s===0};Te.lessThan=Te.lt=function(e){return this.cmp(e)<0};Te.lessThanOrEqualTo=Te.lte=function(e){return this.cmp(e)<1};Te.logarithm=Te.log=function(e){var t,n=this,r=n.constructor,a=r.precision,s=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ra))throw Error(Aa+"NaN");if(n.s<1)throw Error(Aa+(n.s?"NaN":"-Infinity"));return n.eq(ra)?new r(0):(rn=!1,t=rs(Gf(n,s),Gf(e,s),s),rn=!0,Vt(t,a))};Te.minus=Te.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?T6(t,e):E6(t,(e.s=-e.s,e))};Te.modulo=Te.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(Aa+"NaN");return n.s?(rn=!1,t=rs(n,e,0,1).times(e),rn=!0,n.minus(t)):Vt(new r(n),a)};Te.naturalExponential=Te.exp=function(){return A6(this)};Te.naturalLogarithm=Te.ln=function(){return Gf(this)};Te.negated=Te.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Te.plus=Te.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?E6(t,e):T6(t,(e.s=-e.s,e))};Te.precision=Te.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(sl+e);if(t=Tn(a)+1,r=a.d.length-1,n=r*tn+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Te.squareRoot=Te.sqrt=function(){var e,t,n,r,a,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Aa+"NaN")}for(e=Tn(u),rn=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=ui(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Ku((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(s=r,r=s.plus(rs(u,s,l+2)).times(.5),ui(s.d).slice(0,l)===(t=ui(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Vt(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!="9999")break;l+=4}return rn=!0,Vt(r,n)};Te.times=Te.mul=function(e){var t,n,r,a,s,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=s[a]+x[r]*g[a-r-1]+t,s[a--]=u%Hn|0,t=u/Hn|0;s[a]=(s[a]+t)%Hn|0}for(;!s[--l];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,rn?Vt(e,p.precision):e};Te.toDecimalPlaces=Te.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(xi(e,0,Yu),t===void 0?t=r.rounding:xi(t,0,8),Vt(n,e+Tn(n)+1,t))};Te.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=pl(r,!0):(xi(e,0,Yu),t===void 0?t=a.rounding:xi(t,0,8),r=Vt(new a(r),e+1,t),n=pl(r,!0,e+1)),n};Te.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?pl(a):(xi(e,0,Yu),t===void 0?t=s.rounding:xi(t,0,8),r=Vt(new s(a),e+Tn(a)+1,t),n=pl(r.abs(),!1,e+Tn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Te.toInteger=Te.toint=function(){var e=this,t=e.constructor;return Vt(new t(e),Tn(e)+1,t.rounding)};Te.toNumber=function(){return+this};Te.toPower=Te.pow=function(e){var t,n,r,a,s,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ra);if(u=new d(u),!u.s){if(e.s<1)throw Error(Aa+"Infinity");return u}if(u.eq(ra))return u;if(r=d.precision,e.eq(ra))return Vt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,l){if((n=m<0?-m:m)<=O6){for(a=new d(ra),t=Math.ceil(r/tn+4),rn=!1;n%2&&(a=a.times(u),D3(a.d,t)),n=Ku(n/2),n!==0;)u=u.times(u),D3(u.d,t);return rn=!0,e.s<0?new d(ra).div(a):Vt(a,r)}}else if(s<0)throw Error(Aa+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,rn=!1,a=e.times(Gf(u,r+f)),rn=!0,a=A6(a),a.s=s,a};Te.toPrecision=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?(n=Tn(a),r=pl(a,n<=s.toExpNeg||n>=s.toExpPos)):(xi(e,1,Yu),t===void 0?t=s.rounding:xi(t,0,8),a=Vt(new s(a),e,t),n=Tn(a),r=pl(a,e<=n||n<=s.toExpNeg,e)),r};Te.toSignificantDigits=Te.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(xi(e,1,Yu),t===void 0?t=r.rounding:xi(t,0,8)),Vt(new r(n),e,t)};Te.toString=Te.valueOf=Te.val=Te.toJSON=Te[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=Tn(e),n=e.constructor;return pl(e,t<=n.toExpNeg||t>=n.toExpPos)};function E6(e,t){var n,r,a,s,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),rn?Vt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),s=l-a,s){for(s<0?(r=d,s=-s,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/tn),u=l>u?l+1:u+1,s>u&&(s=u,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(u=d.length,s=f.length,u-s<0&&(s=u,r=f,f=d,d=r),n=0;s;)n=(d[--s]=d[s]+f[s]+n)/Hn|0,d[s]%=Hn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,rn?Vt(t,p):t}function xi(e,t,n){if(e!==~~e||en)throw Error(sl+e)}function ui(e){var t,n,r,a=e.length-1,s="",l=e[0];if(a>0){for(s+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,s){for(var l=0;s--;)r[s]-=l,l=r[s]1;)r.shift()}return function(r,a,s,l){var u,d,f,m,p,g,x,j,w,b,N,E,O,A,C,k,T,M,R=r.constructor,B=r.s==a.s?1:-1,$=r.d,H=a.d;if(!r.s)return new R(r);if(!a.s)throw Error(Aa+"Division by zero");for(d=r.e-a.e,T=H.length,C=$.length,x=new R(B),j=x.d=[],f=0;H[f]==($[f]||0);)++f;if(H[f]>($[f]||0)&&--d,s==null?E=s=R.precision:l?E=s+(Tn(r)-Tn(a))+1:E=s,E<0)return new R(0);if(E=E/tn+2|0,f=0,T==1)for(m=0,H=H[0],E++;(f1&&(H=e(H,m),$=e($,m),T=H.length,C=$.length),A=T,w=$.slice(0,T),b=w.length;b=Hn/2&&++k;do m=0,u=t(H,w,T,b),u<0?(N=w[0],T!=b&&(N=N*Hn+(w[1]||0)),m=N/k|0,m>1?(m>=Hn&&(m=Hn-1),p=e(H,m),g=p.length,b=w.length,u=t(p,w,g,b),u==1&&(m--,n(p,T16)throw Error(qO+Tn(e));if(!e.s)return new m(ra);for(rn=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Wo(2,f))/Math.LN10*2+5|0,u+=r,n=a=s=new m(ra),m.precision=u;;){if(a=Vt(a.times(e),u),n=n.times(++d),l=s.plus(rs(a,n,u)),ui(l.d).slice(0,u)===ui(s.d).slice(0,u)){for(;f--;)s=Vt(s.times(s),u);return m.precision=p,t==null?(rn=!0,Vt(s,p)):s}s=l}}function Tn(e){for(var t=e.e*tn,n=e.d[0];n>=10;n/=10)t++;return t}function gS(e,t,n){if(t>e.LN10.sd())throw rn=!0,n&&(e.precision=n),Error(Aa+"LN10 precision limit exceeded");return Vt(new e(e.LN10),t)}function Hs(e){for(var t="";e--;)t+="0";return t}function Gf(e,t){var n,r,a,s,l,u,d,f,m,p=1,g=10,x=e,j=x.d,w=x.constructor,b=w.precision;if(x.s<1)throw Error(Aa+(x.s?"NaN":"-Infinity"));if(x.eq(ra))return new w(0);if(t==null?(rn=!1,f=b):f=t,x.eq(10))return t==null&&(rn=!0),gS(w,f);if(f+=g,w.precision=f,n=ui(j),r=n.charAt(0),s=Tn(x),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=ui(x.d),r=n.charAt(0),p++;s=Tn(x),r>1?(x=new w("0."+n),s++):x=new w(r+"."+n.slice(1))}else return d=gS(w,f+2,b).times(s+""),x=Gf(new w(r+"."+n.slice(1)),f-g).plus(d),w.precision=b,t==null?(rn=!0,Vt(x,b)):x;for(u=l=x=rs(x.minus(ra),x.plus(ra),f),m=Vt(x.times(x),f),a=3;;){if(l=Vt(l.times(m),f),d=u.plus(rs(l,new w(a),f)),ui(d.d).slice(0,f)===ui(u.d).slice(0,f))return u=u.times(2),s!==0&&(u=u.plus(gS(w,f+2,b).times(s+""))),u=rs(u,new w(p),f),w.precision=b,t==null?(rn=!0,Vt(u,b)):u;u=d,a+=2}}function R3(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Ku(n/tn),e.d=[],r=(n+1)%tn,n<0&&(r+=tn),rZv||e.e<-Zv))throw Error(qO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Vt(e,t,n){var r,a,s,l,u,d,f,m,p=e.d;for(l=1,s=p[0];s>=10;s/=10)l++;if(r=t-l,r<0)r+=tn,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/tn),s=p.length,m>=s)return e;for(f=s=p[m],l=1;s>=10;s/=10)l++;r%=tn,a=r-tn+l}if(n!==void 0&&(s=Wo(10,l-a-1),u=f/s%10|0,d=t<0||p[m+1]!==void 0||f%s,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Wo(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(s=Tn(e),p.length=1,t=t-s-1,p[0]=Wo(10,(tn-t%tn)%tn),e.e=Ku(-t/tn)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,s=1,m--):(p.length=m+1,s=Wo(10,tn-r),p[m]=a>0?(f/Wo(10,l-a)%Wo(10,a)|0)*s:0),d)for(;;)if(m==0){(p[0]+=s)==Hn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=Hn)break;p[m--]=0,s=1}for(r=p.length;p[--r]===0;)p.pop();if(rn&&(e.e>Zv||e.e<-Zv))throw Error(qO+Tn(e));return e}function T6(e,t){var n,r,a,s,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),rn?Vt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/tn),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?s=s.charAt(0)+"."+s.slice(1)+Hs(r):l>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+Hs(-a-1)+s,n&&(r=n-l)>0&&(s+=Hs(r))):a>=l?(s+=Hs(a+1-l),n&&(r=n-a-1)>0&&(s=s+"."+Hs(r))):((r=a+1)0&&(a+1===l&&(s+="."),s+=Hs(r))),e.s<0?"-"+s:s}function D3(e,t){if(e.length>t)return e.length=t,!0}function k6(e){var t,n,r;function a(s){var l=this;if(!(l instanceof a))return new a(s);if(l.constructor=a,s instanceof a){l.s=s.s,l.e=s.e,l.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(sl+s);if(s>0)l.s=1;else if(s<0)s=-s,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(s===~~s&&s<1e7){l.e=0,l.d=[s];return}return R3(l,s.toString())}else if(typeof s!="string")throw Error(sl+s);if(s.charCodeAt(0)===45?(s=s.slice(1),l.s=-1):l.s=1,_se.test(s))R3(l,s);else throw Error(sl+s)}if(a.prototype=Te,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=k6,a.config=a.set=Nse,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(sl+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(sl+n+": "+r);return this}var FO=k6(Sse);ra=new FO(1);const qt=FO;function Cse(e){return Tse(e)||Ase(e)||Ese(e)||Ose()}function Ose(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ese(e,t){if(e){if(typeof e=="string")return eN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return eN(e,t)}}function Ase(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Tse(e){if(Array.isArray(e))return eN(e)}function eN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,$3(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,s=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw s}}return n}}function Wse(e){if(Array.isArray(e))return e}function $6(e){var t=Yf(e,2),n=t[0],r=t[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function I6(e,t,n){if(e.lte(0))return new qt(0);var r=wy.getDigitCount(e.toNumber()),a=new qt(10).pow(r),s=e.div(a),l=r!==1?.05:.1,u=new qt(Math.ceil(s.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new qt(Math.ceil(d))}function Vse(e,t,n){var r=1,a=new qt(e);if(!a.isint()&&n){var s=Math.abs(e);s<1?(r=new qt(10).pow(wy.getDigitCount(e)-1),a=new qt(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new qt(Math.floor(e)))}else e===0?a=new qt(Math.floor((t-1)/2)):n||(a=new qt(Math.floor(e)));var l=Math.floor((t-1)/2),u=Rse(Pse(function(d){return a.add(new qt(d-l).mul(r)).toNumber()}),tN);return u(0,t)}function L6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new qt(0),tickMin:new qt(0),tickMax:new qt(0)};var s=I6(new qt(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new qt(0):(l=new qt(e).add(t).div(2),l=l.sub(new qt(l).mod(s)));var u=Math.ceil(l.sub(e).div(s).toNumber()),d=Math.ceil(new qt(t).sub(l).div(s).toNumber()),f=u+d+1;return f>n?L6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:s,tickMin:l.sub(new qt(u).mul(s)),tickMax:l.add(new qt(d).mul(s))})}function Gse(e){var t=Yf(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=$6([n,r]),d=Yf(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(rN(tN(0,a-1).map(function(){return 1/0}))):[].concat(rN(tN(0,a-1).map(function(){return-1/0})),[m]);return n>r?nN(p):p}if(f===m)return Vse(f,a,s);var g=L6(f,m,l,s),x=g.step,j=g.tickMin,w=g.tickMax,b=wy.rangeStep(j,w.add(new qt(.1).mul(x)),x);return n>r?nN(b):b}function Yse(e,t){var n=Yf(e,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=$6([r,a]),u=Yf(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=I6(new qt(f).sub(d).div(m-1),s,0),g=[].concat(rN(wy.rangeStep(new qt(d),new qt(f).sub(new qt(.99).mul(p)),p)),[f]);return r>a?nN(g):g}var Kse=R6(Gse),Xse=R6(Yse),Zse=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function pu(e){"@babel/helpers - typeof";return pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pu(e)}function Qv(){return Qv=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function aoe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ioe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function soe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var d=s.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(jr(p-m)!==jr(g-p)){var j=[];if(jr(g-p)===jr(d[1]-d[0])){x=g;var w=p+d[1]-d[0];j[0]=Math.min(w,(w+m)/2),j[1]=Math.max(w,(w+m)/2)}else{x=m;var b=g+d[1]-d[0];j[0]=Math.min(p,(b+p)/2),j[1]=Math.max(p,(b+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var E=Math.min(m,g),O=Math.max(m,g);if(t>(E+p)/2&&t<=(O+p)/2){l=a[f].index;break}}}else for(var A=0;A0&&A(r[A].coordinate+r[A-1].coordinate)/2&&t<=(r[A].coordinate+r[A+1].coordinate)/2||A===u-1&&t>(r[A].coordinate+r[A-1].coordinate)/2){l=r[A].index;break}return l},UO=function(t){var n,r=t,a=r.type.displayName,s=(n=t.type)!==null&&n!==void 0&&n.defaultProps?xn(xn({},t.type.defaultProps),t.props):t.props,l=s.stroke,u=s.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},Soe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var l={},u=Object.keys(s),d=0,f=u.length;d=0});if(N&&N.length){var E=N[0].type.defaultProps,O=E!==void 0?xn(xn({},E),N[0].props):N[0].props,A=O.barSize,C=O[b];l[C]||(l[C]=[]);var k=Qe(A)?n:A;l[C].push({item:N[0],stackList:N.slice(1),barSize:Qe(k)?void 0:Sr(k,r,0)})}}return l},_oe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,s=t.sizeList,l=s===void 0?[]:s,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=Sr(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(A,C){return A+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var w=(a-j)/2>>0,b={offset:w-f,size:0};m=l.reduce(function(A,C){var k={item:C.item,position:{offset:b.offset+b.size+f,size:g?x:C.barSize}},T=[].concat(B3(A),[k]);return b=T[T.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:b})}),T},p)}else{var N=Sr(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var E=(a-2*N-(d-1)*f)/d;E>1&&(E>>=0);var O=u===+u?Math.min(E,u):E;m=l.reduce(function(A,C,k){var T=[].concat(B3(A),[{item:C.item,position:{offset:N+(E+f)*k+(E-O)/2,size:O}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:T[T.length-1].position})}),T},p)}return m},Noe=function(t,n,r,a){var s=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=F6({children:s,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,w=f.layout;if((w==="vertical"||w==="horizontal"&&j==="middle")&&x!=="center"&&Ce(t[x]))return xn(xn({},t),{},Yc({},x,t[x]+(p||0)));if((w==="horizontal"||w==="vertical"&&x==="center")&&j!=="middle"&&Ce(t[j]))return xn(xn({},t),{},Yc({},j,t[j]+(g||0)))}return t},Coe=function(t,n,r){return Qe(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},U6=function(t,n,r,a,s){var l=n.props.children,u=ia(l,Wh).filter(function(f){return Coe(a,s,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=In(m,r);if(Qe(p))return f;var g=Array.isArray(p)?[xy(p),yy(p)]:[p,p],x=d.reduce(function(j,w){var b=In(m,w,0),N=g[0]-Math.abs(Array.isArray(b)?b[0]:b),E=g[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(N,j[0]),Math.max(E,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},Ooe=function(t,n,r,a,s){var l=n.map(function(u){return U6(t,u,r,s,a)}).filter(function(u){return!Qe(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},H6=function(t,n,r,a,s){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&U6(t,d,f,a)||Of(t,f,r,s)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?jr(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=s?s.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!Lh(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:s?s[p]:p,index:g,offset:f}})},yS=new WeakMap,qp=function(t,n){if(typeof n!="function")return t;yS.has(t)||yS.set(t,new WeakMap);var r=yS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},G6=function(t,n,r){var a=t.scale,s=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:Ff(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:Gv(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Cf(),realScaleType:"point"}:s==="category"?{scale:Ff(),realScaleType:"band"}:{scale:Gv(),realScaleType:"linear"};if(fl(a)){var d="scale".concat(ry(a));return{scale:(N3[d]||Cf)(),realScaleType:N3[d]?d:"point"}}return Ke(a)?{scale:a}:{scale:Cf(),realScaleType:"point"}},q3=1e-4,Y6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),s=Math.min(a[0],a[1])-q3,l=Math.max(a[0],a[1])+q3,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},Eoe=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(t[u][r][0]=s,t[u][r][1]=s+d,s=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},koe=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},Moe={sign:Toe,expand:xee,none:ou,silhouette:bee,wiggle:wee,positive:koe},Poe=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),s=Moe[r],l=yee().keys(a).value(function(u,d){return+In(u,d,0)}).order($_).offset(s);return l(t)},Roe=function(t,n,r,a,s,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?xn(xn({},g.type.defaultProps),g.props):g.props,w=j.stackId,b=j.hide;if(b)return p;var N=j[r],E=p[N]||{hasStack:!1,stackGroups:{}};if(Ln(w)){var O=E.stackGroups[w]||{numericAxisId:r,cateAxisId:a,items:[]};O.items.push(g),E.hasStack=!0,E.stackGroups[w]=O}else E.stackGroups[Wu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return xn(xn({},p),{},Yc({},N,E))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(w,b){var N=x.stackGroups[b];return xn(xn({},w),{},Yc({},b,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:Poe(t,N.items,s)}))},j)}return xn(xn({},p),{},Yc({},g,x))},m)},K6=function(t,n){var r=n.realScaleType,a=n.type,s=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(s&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=Kse(f,s,u);return t.domain([xy(m),yy(m)]),{niceTicks:m}}if(s&&a==="number"){var p=t.domain(),g=Xse(p,s,u);return{niceTicks:g}}return null};function F3(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,s=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Qe(a[t.dataKey])){var u=Av(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var d=In(a,Qe(l)?t.dataKey:l);return Qe(d)?null:t.scale(d)}var U3=function(t){var n=t.axis,r=t.ticks,a=t.offset,s=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=In(l,n.dataKey,n.domain[u]);return Qe(d)?null:n.scale(d)-s/2+a},Doe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},$oe=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?xn(xn({},t.type.defaultProps),t.props):t.props,s=a.stackId;if(Ln(s)){var l=n[s];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},Ioe=function(t){return t.reduce(function(n,r){return[xy(r.concat([n[0]]).filter(Ce)),yy(r.concat([n[1]]).filter(Ce))]},[1/0,-1/0])},X6=function(t,n,r){return Object.keys(t).reduce(function(a,s){var l=t[s],u=l.stackedData,d=u.reduce(function(f,m){var p=Ioe(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},H3=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,W3=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,oN=function(t,n,r){if(Ke(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ce(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(H3.test(t[0])){var s=+H3.exec(t[0])[1];a[0]=n[0]-s}else Ke(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ce(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(W3.test(t[1])){var l=+W3.exec(t[1])[1];a[1]=n[1]+l}else Ke(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},eg=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var s=gO(n,function(p){return p.coordinate}),l=1/0,u=1,d=s.length;u1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Nl.isSsr)return{width:0,height:0};var r=mre(n),a=JSON.stringify({text:t,copyStyle:r});if(Nc.widthCache[a])return Nc.widthCache[a];try{var s=document.getElementById(k4);s||(s=document.createElement("span"),s.setAttribute("id",k4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var l=V_(V_({},hre),r);Object.assign(s.style,l),s.textContent="".concat(t);var u=s.getBoundingClientRect(),d={width:u.width,height:u.height};return Nc.widthCache[a]=d,++Nc.cacheCount>fre&&(Nc.cacheCount=0,Nc.widthCache={}),d}catch{return{width:0,height:0}}},pre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function qf(e){"@babel/helpers - typeof";return qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qf(e)}function zv(e,t){return xre(e)||yre(e,t)||gre(e,t)||vre()}function vre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gre(e,t){if(e){if(typeof e=="string")return M4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M4(e,t)}}function M4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Pre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function L4(e,t){return Ire(e)||$re(e,t)||Dre(e,t)||Rre()}function Rre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dre(e,t){if(e){if(typeof e=="string")return B4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return B4(e,t)}}function B4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function(L,D){var U=D.word,K=D.width,J=L[L.length-1];if(J&&(a==null||s||J.width+K+rD.width?L:D})};if(!m)return x;for(var w="…",b=function(G){var L=p.slice(0,G),D=Wz({breakAll:f,style:d,children:L+w}).wordsWithComputedWidth,U=g(D),K=U.length>l||j(U).width>Number(a);return[K,U]},N=0,E=p.length-1,O=0,A;N<=E&&O<=p.length-1;){var C=Math.floor((N+E)/2),k=C-1,T=b(k),M=L4(T,2),R=M[0],B=M[1],$=b(C),H=L4($,1),V=H[0];if(!R&&!V&&(N=C+1),R&&V&&(E=C-1),!R&&V){A=B;break}O++}return A||x},z4=function(t){var n=Qe(t)?[]:t.toString().split(Hz);return[{words:n}]},Bre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,s=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Nl.isSsr){var d,f,m=Wz({breakAll:l,children:a,style:s});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return z4(a);return Lre({breakAll:l,children:a,maxLines:u,style:s},d,f,n,r)}return z4(a)},q4="#808080",ml=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,w=j===void 0?"end":j,b=t.fill,N=b===void 0?q4:b,E=I4(t,kre),O=y.useMemo(function(){return Bre({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),A=E.dx,C=E.dy,k=E.angle,T=E.className,M=E.breakAll,R=I4(E,Mre);if(!Ln(r)||!Ln(s))return null;var B=r+(Ce(A)?A:0),$=s+(Ce(C)?C:0),H;switch(w){case"start":H=nS("calc(".concat(f,")"));break;case"middle":H=nS("calc(".concat((O.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:H=nS("calc(".concat(O.length-1," * -").concat(u,")"));break}var V=[];if(p){var q=O[0].width,G=E.width;V.push("scale(".concat((Ce(G)?G/q:1)/q,")"))}return k&&V.push("rotate(".concat(k,", ").concat(B,", ").concat($,")")),V.length&&(R.transform=V.join(" ")),W.createElement("text",G_({},qe(R,!0),{x:B,y:$,className:Je("recharts-text",T),textAnchor:x,fill:N.includes("url")?q4:N}),O.map(function(L,D){var U=L.words.join(M?"":" ");return W.createElement("tspan",{x:B,dy:D===0?H:u,key:"".concat(U,"-").concat(D)},U)}))};function Qs(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function zre(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function bO(e){let t,n,r;e.length!==2?(t=Qs,n=(u,d)=>Qs(e(u),d),r=(u,d)=>e(u)-d):(t=e===Qs||e===zre?e:qre,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:s}}function qre(){return 0}function Vz(e){return e===null?NaN:+e}function*Fre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Ure=bO(Qs),zh=Ure.right;bO(Vz).center;class F4 extends Map{constructor(t,n=Vre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(U4(this,t))}has(t){return super.has(U4(this,t))}set(t,n){return super.set(Hre(this,t),n)}delete(t){return super.delete(Wre(this,t))}}function U4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Hre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Wre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Vre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Gre(e=Qs){if(e===Qs)return Gz;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function Gz(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Yre=Math.sqrt(50),Kre=Math.sqrt(10),Xre=Math.sqrt(2);function qv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),l=s>=Yre?10:s>=Kre?5:s>=Xre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=s-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function W4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function Yz(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?Gz:Gre(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));Yz(e,t,x,j,a)}const s=e[t];let l=n,u=r;for(nf(e,n,t),a(e[r],s)>0&&nf(e,n,r);l0;)--u}a(e[n],s)===0?nf(e,n,u):(++u,nf(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function nf(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Zre(e,t,n){if(e=Float64Array.from(Fre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return W4(e);if(t>=1)return H4(e);var r,a=(r-1)*t,s=Math.floor(a),l=H4(Yz(e,s).subarray(0,s+1)),u=W4(e.subarray(s+1));return l+(u-l)*(a-s)}}function Qre(e,t,n=Vz){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,s=Math.floor(a),l=+n(e[s],s,e),u=+n(e[s+1],s+1,e);return l+(u-l)*(a-s)}}function Jre(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Lp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Lp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=tae.exec(e))?new Rr(t[1],t[2],t[3],1):(t=nae.exec(e))?new Rr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=rae.exec(e))?Lp(t[1],t[2],t[3],t[4]):(t=aae.exec(e))?Lp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=iae.exec(e))?Q4(t[1],t[2]/100,t[3]/100,1):(t=sae.exec(e))?Q4(t[1],t[2]/100,t[3]/100,t[4]):V4.hasOwnProperty(e)?K4(V4[e]):e==="transparent"?new Rr(NaN,NaN,NaN,0):null}function K4(e){return new Rr(e>>16&255,e>>8&255,e&255,1)}function Lp(e,t,n,r){return r<=0&&(e=t=n=NaN),new Rr(e,t,n,r)}function cae(e){return e instanceof qh||(e=Wf(e)),e?(e=e.rgb(),new Rr(e.r,e.g,e.b,e.opacity)):new Rr}function Q_(e,t,n,r){return arguments.length===1?cae(e):new Rr(e,t,n,r??1)}function Rr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}jO(Rr,Q_,Xz(qh,{brighter(e){return e=e==null?Fv:Math.pow(Fv,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Uf:Math.pow(Uf,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rr(il(this.r),il(this.g),il(this.b),Uv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:X4,formatHex:X4,formatHex8:uae,formatRgb:Z4,toString:Z4}));function X4(){return`#${Xo(this.r)}${Xo(this.g)}${Xo(this.b)}`}function uae(){return`#${Xo(this.r)}${Xo(this.g)}${Xo(this.b)}${Xo((isNaN(this.opacity)?1:this.opacity)*255)}`}function Z4(){const e=Uv(this.opacity);return`${e===1?"rgb(":"rgba("}${il(this.r)}, ${il(this.g)}, ${il(this.b)}${e===1?")":`, ${e})`}`}function Uv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function il(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Xo(e){return e=il(e),(e<16?"0":"")+e.toString(16)}function Q4(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new qa(e,t,n,r)}function Zz(e){if(e instanceof qa)return new qa(e.h,e.s,e.l,e.opacity);if(e instanceof qh||(e=Wf(e)),!e)return new qa;if(e instanceof qa)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,u=s-a,d=(s+a)/2;return u?(t===s?l=(n-r)/u+(n0&&d<1?0:l,new qa(l,u,d,e.opacity)}function dae(e,t,n,r){return arguments.length===1?Zz(e):new qa(e,t,n,r??1)}function qa(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}jO(qa,dae,Xz(qh,{brighter(e){return e=e==null?Fv:Math.pow(Fv,e),new qa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Uf:Math.pow(Uf,e),new qa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new Rr(rS(e>=240?e-240:e+120,a,r),rS(e,a,r),rS(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new qa(J4(this.h),Bp(this.s),Bp(this.l),Uv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Uv(this.opacity);return`${e===1?"hsl(":"hsla("}${J4(this.h)}, ${Bp(this.s)*100}%, ${Bp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function J4(e){return e=(e||0)%360,e<0?e+360:e}function Bp(e){return Math.max(0,Math.min(1,e||0))}function rS(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const SO=e=>()=>e;function fae(e,t){return function(n){return e+n*t}}function hae(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function mae(e){return(e=+e)==1?Qz:function(t,n){return n-t?hae(t,n,e):SO(isNaN(t)?n:t)}}function Qz(e,t){var n=t-e;return n?fae(e,n):SO(isNaN(e)?t:e)}const e3=(function e(t){var n=mae(t);function r(a,s){var l=n((a=Q_(a)).r,(s=Q_(s)).r),u=n(a.g,s.g),d=n(a.b,s.b),f=Qz(a.opacity,s.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function pae(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(s){for(a=0;an&&(s=t.slice(n,s),u[l]?u[l]+=s:u[++l]=s),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:Hv(r,a)})),n=aS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Cae(e,t,n){var r=e[0],a=e[1],s=t[0],l=t[1];return a2?Oae:Cae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?s:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),Hv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,Wv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=_O,m()},p.clamp=function(g){return arguments.length?(l=g?!0:_r,m()):l!==_r},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(s=g,p):s},function(g,x){return r=g,a=x,m()}}function NO(){return dy()(_r,_r)}function Eae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Vv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function fu(e){return e=Vv(Math.abs(e)),e?e[1]:NaN}function Aae(e,t){return function(n,r){for(var a=n.length,s=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),s.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return s.reverse().join(t)}}function Tae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var kae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vf(e){if(!(t=kae.exec(e)))throw new Error("invalid format: "+e);var t;return new CO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Vf.prototype=CO.prototype;function CO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}CO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Mae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var Jz;function Pae(e,t){var n=Vv(e,t);if(!n)return e+"";var r=n[0],a=n[1],s=a-(Jz=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Vv(e,Math.max(0,t+s-1))[0]}function n3(e,t){var n=Vv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const r3={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Eae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>n3(e*100,t),r:n3,s:Pae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function a3(e){return e}var i3=Array.prototype.map,s3=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Rae(e){var t=e.grouping===void 0||e.thousands===void 0?a3:Aae(i3.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?a3:Tae(i3.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=Vf(p);var g=p.fill,x=p.align,j=p.sign,w=p.symbol,b=p.zero,N=p.width,E=p.comma,O=p.precision,A=p.trim,C=p.type;C==="n"?(E=!0,C="g"):r3[C]||(O===void 0&&(O=12),A=!0,C="g"),(b||g==="0"&&x==="=")&&(b=!0,g="0",x="=");var k=w==="$"?n:w==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=w==="$"?r:/[%p]/.test(C)?l:"",M=r3[C],R=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function B($){var H=k,V=T,q,G,L;if(C==="c")V=M($)+V,$="";else{$=+$;var D=$<0||1/$<0;if($=isNaN($)?d:M(Math.abs($),O),A&&($=Mae($)),D&&+$==0&&j!=="+"&&(D=!1),H=(D?j==="("?j:u:j==="-"||j==="("?"":j)+H,V=(C==="s"?s3[8+Jz/3]:"")+V+(D&&j==="("?")":""),R){for(q=-1,G=$.length;++qL||L>57){V=(L===46?a+$.slice(q+1):$.slice(q))+V,$=$.slice(0,q);break}}}E&&!b&&($=t($,1/0));var U=H.length+$.length+V.length,K=U>1)+H+$+V+K.slice(U);break;default:$=K+H+$+V;break}return s($)}return B.toString=function(){return p+""},B}function m(p,g){var x=f((p=Vf(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(fu(g)/3)))*3,w=Math.pow(10,-j),b=s3[8+j/3];return function(N){return x(w*N)+b}}return{format:f,formatPrefix:m}}var zp,OO,e6;Dae({thousands:",",grouping:[3],currency:["$",""]});function Dae(e){return zp=Rae(e),OO=zp.format,e6=zp.formatPrefix,zp}function $ae(e){return Math.max(0,-fu(Math.abs(e)))}function Iae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fu(t)/3)))*3-fu(Math.abs(e)))}function Lae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,fu(t)-fu(e))+1}function t6(e,t,n,r){var a=X_(e,t,n),s;switch(r=Vf(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(s=Iae(a,l))&&(r.precision=s),e6(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Lae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=$ae(a))&&(r.precision=s-(r.type==="%")*2);break}}return OO(r)}function co(e){var t=e.domain;return e.ticks=function(n){var r=t();return Y_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return t6(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,s=r.length-1,l=r[a],u=r[s],d,f,m=10;for(u0;){if(f=K_(l,u,n),f===d)return r[a]=l,r[s]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function Gv(){var e=NO();return e.copy=function(){return Fh(e,Gv())},ka.apply(e,arguments),co(e)}function n6(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Wv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return n6(e).unknown(t)},e=arguments.length?Array.from(e,Wv):[0,1],co(n)}function r6(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],s=e[r],l;return sMath.pow(e,t)}function Uae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function c3(e){return(t,n)=>-e(-t,n)}function EO(e){const t=e(o3,l3),n=t.domain;let r=10,a,s;function l(){return a=Uae(r),s=Fae(r),n()[0]<0?(a=c3(a),s=c3(s),e(Bae,zae)):e(o3,l3),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(w)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(w=g>0?j/s(-g):j*s(g),!(wm)break;N.push(w)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=Vf(d)).precision==null&&(d.trim=!0),d=OO(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/s(Math.round(a(m)));return p*rn(r6(n(),{floor:u=>s(Math.floor(a(u))),ceil:u=>s(Math.ceil(a(u)))})),t}function a6(){const e=EO(dy()).domain([1,10]);return e.copy=()=>Fh(e,a6()).base(e.base()),ka.apply(e,arguments),e}function u3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function d3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function AO(e){var t=1,n=e(u3(t),d3(t));return n.constant=function(r){return arguments.length?e(u3(t=+r),d3(t)):t},co(n)}function i6(){var e=AO(dy());return e.copy=function(){return Fh(e,i6()).constant(e.constant())},ka.apply(e,arguments)}function f3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Hae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Wae(e){return e<0?-e*e:e*e}function TO(e){var t=e(_r,_r),n=1;function r(){return n===1?e(_r,_r):n===.5?e(Hae,Wae):e(f3(n),f3(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},co(t)}function kO(){var e=TO(dy());return e.copy=function(){return Fh(e,kO()).exponent(e.exponent())},ka.apply(e,arguments),e}function Vae(){return kO.apply(null,arguments).exponent(.5)}function h3(e){return Math.sign(e)*e*e}function Gae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function s6(){var e=NO(),t=[0,1],n=!1,r;function a(s){var l=Gae(e(s));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(s){return e.invert(h3(s))},a.domain=function(s){return arguments.length?(e.domain(s),a):e.domain()},a.range=function(s){return arguments.length?(e.range((t=Array.from(s,Wv)).map(h3)),a):t.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(e.clamp(s),a):e.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return s6(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},ka.apply(a,arguments),co(a)}function o6(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(s=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return l6().domain([e,t]).range(a).unknown(s)},ka.apply(co(l),arguments)}function c6(){var e=[.5],t=[0,1],n,r=1;function a(s){return s!=null&&s<=s?t[zh(e,s,0,r)]:n}return a.domain=function(s){return arguments.length?(e=Array.from(s),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(s){return arguments.length?(t=Array.from(s),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(s){var l=t.indexOf(s);return[e[l-1],e[l]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return c6().domain(e).range(t).unknown(n)},ka.apply(a,arguments)}const iS=new Date,sS=new Date;function zn(e,t,n,r){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const l=a(s),u=a.ceil(s);return s-l(t(s=new Date(+s),l==null?1:Math.floor(l)),s),a.range=(s,l,u)=>{const d=[];if(s=a.ceil(s),u=u==null?1:Math.floor(u),!(s0))return d;let f;do d.push(f=new Date(+s)),t(s,u),e(s);while(fzn(l=>{if(l>=l)for(;e(l),!s(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!s(l););else for(;--u>=0;)for(;t(l,1),!s(l););}),n&&(a.count=(s,l)=>(iS.setTime(+s),sS.setTime(+l),e(iS),e(sS),Math.floor(n(iS,sS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?l=>r(l)%s===0:l=>a.count(0,l)%s===0):a)),a}const Yv=zn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Yv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?zn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Yv);Yv.range;const Xi=1e3,Ca=Xi*60,Zi=Ca*60,ss=Zi*24,MO=ss*7,m3=ss*30,oS=ss*365,Zo=zn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Xi)},(e,t)=>(t-e)/Xi,e=>e.getUTCSeconds());Zo.range;const PO=zn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xi)},(e,t)=>{e.setTime(+e+t*Ca)},(e,t)=>(t-e)/Ca,e=>e.getMinutes());PO.range;const RO=zn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ca)},(e,t)=>(t-e)/Ca,e=>e.getUTCMinutes());RO.range;const DO=zn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xi-e.getMinutes()*Ca)},(e,t)=>{e.setTime(+e+t*Zi)},(e,t)=>(t-e)/Zi,e=>e.getHours());DO.range;const $O=zn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Zi)},(e,t)=>(t-e)/Zi,e=>e.getUTCHours());$O.range;const Uh=zn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ca)/ss,e=>e.getDate()-1);Uh.range;const fy=zn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ss,e=>e.getUTCDate()-1);fy.range;const u6=zn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ss,e=>Math.floor(e/ss));u6.range;function Cl(e){return zn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Ca)/MO)}const hy=Cl(0),Kv=Cl(1),Yae=Cl(2),Kae=Cl(3),hu=Cl(4),Xae=Cl(5),Zae=Cl(6);hy.range;Kv.range;Yae.range;Kae.range;hu.range;Xae.range;Zae.range;function Ol(e){return zn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/MO)}const my=Ol(0),Xv=Ol(1),Qae=Ol(2),Jae=Ol(3),mu=Ol(4),eie=Ol(5),tie=Ol(6);my.range;Xv.range;Qae.range;Jae.range;mu.range;eie.range;tie.range;const IO=zn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());IO.range;const LO=zn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());LO.range;const os=zn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());os.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:zn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});os.range;const ls=zn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ls.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:zn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});ls.range;function d6(e,t,n,r,a,s){const l=[[Zo,1,Xi],[Zo,5,5*Xi],[Zo,15,15*Xi],[Zo,30,30*Xi],[s,1,Ca],[s,5,5*Ca],[s,15,15*Ca],[s,30,30*Ca],[a,1,Zi],[a,3,3*Zi],[a,6,6*Zi],[a,12,12*Zi],[r,1,ss],[r,2,2*ss],[n,1,MO],[t,1,m3],[t,3,3*m3],[e,1,oS]];function u(f,m,p){const g=mb).right(l,g);if(x===l.length)return e.every(X_(f/oS,m/oS,p));if(x===0)return Yv.every(Math.max(X_(f,m,p),1));const[j,w]=l[g/l[x-1][2]53)return null;"w"in fe||(fe.w=1),"Z"in fe?(Oe=cS(rf(fe.y,0,1)),We=Oe.getUTCDay(),Oe=We>4||We===0?Xv.ceil(Oe):Xv(Oe),Oe=fy.offset(Oe,(fe.V-1)*7),fe.y=Oe.getUTCFullYear(),fe.m=Oe.getUTCMonth(),fe.d=Oe.getUTCDate()+(fe.w+6)%7):(Oe=lS(rf(fe.y,0,1)),We=Oe.getDay(),Oe=We>4||We===0?Kv.ceil(Oe):Kv(Oe),Oe=Uh.offset(Oe,(fe.V-1)*7),fe.y=Oe.getFullYear(),fe.m=Oe.getMonth(),fe.d=Oe.getDate()+(fe.w+6)%7)}else("W"in fe||"U"in fe)&&("w"in fe||(fe.w="u"in fe?fe.u%7:"W"in fe?1:0),We="Z"in fe?cS(rf(fe.y,0,1)).getUTCDay():lS(rf(fe.y,0,1)).getDay(),fe.m=0,fe.d="W"in fe?(fe.w+6)%7+fe.W*7-(We+5)%7:fe.w+fe.U*7-(We+6)%7);return"Z"in fe?(fe.H+=fe.Z/100|0,fe.M+=fe.Z%100,cS(fe)):lS(fe)}}function M(re,we,je,fe){for(var Le=0,Oe=we.length,We=je.length,be,Ae;Le=We)return-1;if(be=we.charCodeAt(Le++),be===37){if(be=we.charAt(Le++),Ae=C[be in p3?we.charAt(Le++):be],!Ae||(fe=Ae(re,je,fe))<0)return-1}else if(be!=je.charCodeAt(fe++))return-1}return fe}function R(re,we,je){var fe=f.exec(we.slice(je));return fe?(re.p=m.get(fe[0].toLowerCase()),je+fe[0].length):-1}function B(re,we,je){var fe=x.exec(we.slice(je));return fe?(re.w=j.get(fe[0].toLowerCase()),je+fe[0].length):-1}function $(re,we,je){var fe=p.exec(we.slice(je));return fe?(re.w=g.get(fe[0].toLowerCase()),je+fe[0].length):-1}function H(re,we,je){var fe=N.exec(we.slice(je));return fe?(re.m=E.get(fe[0].toLowerCase()),je+fe[0].length):-1}function V(re,we,je){var fe=w.exec(we.slice(je));return fe?(re.m=b.get(fe[0].toLowerCase()),je+fe[0].length):-1}function q(re,we,je){return M(re,t,we,je)}function G(re,we,je){return M(re,n,we,je)}function L(re,we,je){return M(re,r,we,je)}function D(re){return l[re.getDay()]}function U(re){return s[re.getDay()]}function K(re){return d[re.getMonth()]}function J(re){return u[re.getMonth()]}function I(re){return a[+(re.getHours()>=12)]}function z(re){return 1+~~(re.getMonth()/3)}function Y(re){return l[re.getUTCDay()]}function te(re){return s[re.getUTCDay()]}function ae(re){return d[re.getUTCMonth()]}function ge(re){return u[re.getUTCMonth()]}function ee(re){return a[+(re.getUTCHours()>=12)]}function Se(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var we=k(re+="",O);return we.toString=function(){return re},we},parse:function(re){var we=T(re+="",!1);return we.toString=function(){return re},we},utcFormat:function(re){var we=k(re+="",A);return we.toString=function(){return re},we},utcParse:function(re){var we=T(re+="",!0);return we.toString=function(){return re},we}}}var p3={"-":"",_:" ",0:"0"},Qn=/^\s*\d+/,oie=/^%/,lie=/[\\^$*+?|[\]().{}]/g;function bt(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",s=a.length;return r+(s[t.toLowerCase(),n]))}function uie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function die(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function fie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function hie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function mie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function v3(e,t,n){var r=Qn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function g3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function pie(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function vie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function gie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function y3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function yie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function x3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function xie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function bie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function wie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function jie(e,t,n){var r=Qn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Sie(e,t,n){var r=oie.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function _ie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Nie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function b3(e,t){return bt(e.getDate(),t,2)}function Cie(e,t){return bt(e.getHours(),t,2)}function Oie(e,t){return bt(e.getHours()%12||12,t,2)}function Eie(e,t){return bt(1+Uh.count(os(e),e),t,3)}function f6(e,t){return bt(e.getMilliseconds(),t,3)}function Aie(e,t){return f6(e,t)+"000"}function Tie(e,t){return bt(e.getMonth()+1,t,2)}function kie(e,t){return bt(e.getMinutes(),t,2)}function Mie(e,t){return bt(e.getSeconds(),t,2)}function Pie(e){var t=e.getDay();return t===0?7:t}function Rie(e,t){return bt(hy.count(os(e)-1,e),t,2)}function h6(e){var t=e.getDay();return t>=4||t===0?hu(e):hu.ceil(e)}function Die(e,t){return e=h6(e),bt(hu.count(os(e),e)+(os(e).getDay()===4),t,2)}function $ie(e){return e.getDay()}function Iie(e,t){return bt(Kv.count(os(e)-1,e),t,2)}function Lie(e,t){return bt(e.getFullYear()%100,t,2)}function Bie(e,t){return e=h6(e),bt(e.getFullYear()%100,t,2)}function zie(e,t){return bt(e.getFullYear()%1e4,t,4)}function qie(e,t){var n=e.getDay();return e=n>=4||n===0?hu(e):hu.ceil(e),bt(e.getFullYear()%1e4,t,4)}function Fie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+bt(t/60|0,"0",2)+bt(t%60,"0",2)}function w3(e,t){return bt(e.getUTCDate(),t,2)}function Uie(e,t){return bt(e.getUTCHours(),t,2)}function Hie(e,t){return bt(e.getUTCHours()%12||12,t,2)}function Wie(e,t){return bt(1+fy.count(ls(e),e),t,3)}function m6(e,t){return bt(e.getUTCMilliseconds(),t,3)}function Vie(e,t){return m6(e,t)+"000"}function Gie(e,t){return bt(e.getUTCMonth()+1,t,2)}function Yie(e,t){return bt(e.getUTCMinutes(),t,2)}function Kie(e,t){return bt(e.getUTCSeconds(),t,2)}function Xie(e){var t=e.getUTCDay();return t===0?7:t}function Zie(e,t){return bt(my.count(ls(e)-1,e),t,2)}function p6(e){var t=e.getUTCDay();return t>=4||t===0?mu(e):mu.ceil(e)}function Qie(e,t){return e=p6(e),bt(mu.count(ls(e),e)+(ls(e).getUTCDay()===4),t,2)}function Jie(e){return e.getUTCDay()}function ese(e,t){return bt(Xv.count(ls(e)-1,e),t,2)}function tse(e,t){return bt(e.getUTCFullYear()%100,t,2)}function nse(e,t){return e=p6(e),bt(e.getUTCFullYear()%100,t,2)}function rse(e,t){return bt(e.getUTCFullYear()%1e4,t,4)}function ase(e,t){var n=e.getUTCDay();return e=n>=4||n===0?mu(e):mu.ceil(e),bt(e.getUTCFullYear()%1e4,t,4)}function ise(){return"+0000"}function j3(){return"%"}function S3(e){return+e}function _3(e){return Math.floor(+e/1e3)}var Cc,v6,g6;sse({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function sse(e){return Cc=sie(e),v6=Cc.format,Cc.parse,g6=Cc.utcFormat,Cc.utcParse,Cc}function ose(e){return new Date(e)}function lse(e){return e instanceof Date?+e:+new Date(+e)}function BO(e,t,n,r,a,s,l,u,d,f){var m=NO(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),w=f("%I:%M"),b=f("%I %p"),N=f("%a %d"),E=f("%b %d"),O=f("%B"),A=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>Zre(e,s/r))},n.copy=function(){return w6(t).domain(e)},ms.apply(n,arguments)}function vy(){var e=0,t=.5,n=1,r=1,a,s,l,u,d,f=_r,m,p=!1,g;function x(w){return isNaN(w=+w)?g:(w=.5+((w=+m(w))-s)*(r*wn}return dS=e,dS}var fS,E3;function hse(){if(E3)return fS;E3=1;var e=gy(),t=N6(),n=Vu();function r(a){return a&&a.length?e(a,n,t):void 0}return fS=r,fS}var mse=hse();const yy=At(mse);var hS,A3;function C6(){if(A3)return hS;A3=1;function e(t,n){return te.e^s.s<0?1:-1;for(r=s.d.length,a=e.d.length,t=0,n=re.d[t]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};Te.decimalPlaces=Te.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*tn;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Te.dividedBy=Te.div=function(e){return rs(this,new this.constructor(e))};Te.dividedToIntegerBy=Te.idiv=function(e){var t=this,n=t.constructor;return Vt(rs(t,new n(e),0,1),n.precision)};Te.equals=Te.eq=function(e){return!this.cmp(e)};Te.exponent=function(){return Tn(this)};Te.greaterThan=Te.gt=function(e){return this.cmp(e)>0};Te.greaterThanOrEqualTo=Te.gte=function(e){return this.cmp(e)>=0};Te.isInteger=Te.isint=function(){return this.e>this.d.length-2};Te.isNegative=Te.isneg=function(){return this.s<0};Te.isPositive=Te.ispos=function(){return this.s>0};Te.isZero=function(){return this.s===0};Te.lessThan=Te.lt=function(e){return this.cmp(e)<0};Te.lessThanOrEqualTo=Te.lte=function(e){return this.cmp(e)<1};Te.logarithm=Te.log=function(e){var t,n=this,r=n.constructor,a=r.precision,s=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ra))throw Error(Aa+"NaN");if(n.s<1)throw Error(Aa+(n.s?"NaN":"-Infinity"));return n.eq(ra)?new r(0):(rn=!1,t=rs(Gf(n,s),Gf(e,s),s),rn=!0,Vt(t,a))};Te.minus=Te.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?T6(t,e):E6(t,(e.s=-e.s,e))};Te.modulo=Te.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(Aa+"NaN");return n.s?(rn=!1,t=rs(n,e,0,1).times(e),rn=!0,n.minus(t)):Vt(new r(n),a)};Te.naturalExponential=Te.exp=function(){return A6(this)};Te.naturalLogarithm=Te.ln=function(){return Gf(this)};Te.negated=Te.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Te.plus=Te.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?E6(t,e):T6(t,(e.s=-e.s,e))};Te.precision=Te.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(sl+e);if(t=Tn(a)+1,r=a.d.length-1,n=r*tn+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Te.squareRoot=Te.sqrt=function(){var e,t,n,r,a,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Aa+"NaN")}for(e=Tn(u),rn=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=ui(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Ku((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(s=r,r=s.plus(rs(u,s,l+2)).times(.5),ui(s.d).slice(0,l)===(t=ui(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Vt(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!="9999")break;l+=4}return rn=!0,Vt(r,n)};Te.times=Te.mul=function(e){var t,n,r,a,s,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=s[a]+x[r]*g[a-r-1]+t,s[a--]=u%Hn|0,t=u/Hn|0;s[a]=(s[a]+t)%Hn|0}for(;!s[--l];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,rn?Vt(e,p.precision):e};Te.toDecimalPlaces=Te.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(xi(e,0,Yu),t===void 0?t=r.rounding:xi(t,0,8),Vt(n,e+Tn(n)+1,t))};Te.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=pl(r,!0):(xi(e,0,Yu),t===void 0?t=a.rounding:xi(t,0,8),r=Vt(new a(r),e+1,t),n=pl(r,!0,e+1)),n};Te.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?pl(a):(xi(e,0,Yu),t===void 0?t=s.rounding:xi(t,0,8),r=Vt(new s(a),e+Tn(a)+1,t),n=pl(r.abs(),!1,e+Tn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Te.toInteger=Te.toint=function(){var e=this,t=e.constructor;return Vt(new t(e),Tn(e)+1,t.rounding)};Te.toNumber=function(){return+this};Te.toPower=Te.pow=function(e){var t,n,r,a,s,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ra);if(u=new d(u),!u.s){if(e.s<1)throw Error(Aa+"Infinity");return u}if(u.eq(ra))return u;if(r=d.precision,e.eq(ra))return Vt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,l){if((n=m<0?-m:m)<=O6){for(a=new d(ra),t=Math.ceil(r/tn+4),rn=!1;n%2&&(a=a.times(u),D3(a.d,t)),n=Ku(n/2),n!==0;)u=u.times(u),D3(u.d,t);return rn=!0,e.s<0?new d(ra).div(a):Vt(a,r)}}else if(s<0)throw Error(Aa+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,rn=!1,a=e.times(Gf(u,r+f)),rn=!0,a=A6(a),a.s=s,a};Te.toPrecision=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?(n=Tn(a),r=pl(a,n<=s.toExpNeg||n>=s.toExpPos)):(xi(e,1,Yu),t===void 0?t=s.rounding:xi(t,0,8),a=Vt(new s(a),e,t),n=Tn(a),r=pl(a,e<=n||n<=s.toExpNeg,e)),r};Te.toSignificantDigits=Te.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(xi(e,1,Yu),t===void 0?t=r.rounding:xi(t,0,8)),Vt(new r(n),e,t)};Te.toString=Te.valueOf=Te.val=Te.toJSON=Te[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=Tn(e),n=e.constructor;return pl(e,t<=n.toExpNeg||t>=n.toExpPos)};function E6(e,t){var n,r,a,s,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),rn?Vt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),s=l-a,s){for(s<0?(r=d,s=-s,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/tn),u=l>u?l+1:u+1,s>u&&(s=u,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(u=d.length,s=f.length,u-s<0&&(s=u,r=f,f=d,d=r),n=0;s;)n=(d[--s]=d[s]+f[s]+n)/Hn|0,d[s]%=Hn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,rn?Vt(t,p):t}function xi(e,t,n){if(e!==~~e||en)throw Error(sl+e)}function ui(e){var t,n,r,a=e.length-1,s="",l=e[0];if(a>0){for(s+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,s){for(var l=0;s--;)r[s]-=l,l=r[s]1;)r.shift()}return function(r,a,s,l){var u,d,f,m,p,g,x,j,w,b,N,E,O,A,C,k,T,M,R=r.constructor,B=r.s==a.s?1:-1,$=r.d,H=a.d;if(!r.s)return new R(r);if(!a.s)throw Error(Aa+"Division by zero");for(d=r.e-a.e,T=H.length,C=$.length,x=new R(B),j=x.d=[],f=0;H[f]==($[f]||0);)++f;if(H[f]>($[f]||0)&&--d,s==null?E=s=R.precision:l?E=s+(Tn(r)-Tn(a))+1:E=s,E<0)return new R(0);if(E=E/tn+2|0,f=0,T==1)for(m=0,H=H[0],E++;(f1&&(H=e(H,m),$=e($,m),T=H.length,C=$.length),A=T,w=$.slice(0,T),b=w.length;b=Hn/2&&++k;do m=0,u=t(H,w,T,b),u<0?(N=w[0],T!=b&&(N=N*Hn+(w[1]||0)),m=N/k|0,m>1?(m>=Hn&&(m=Hn-1),p=e(H,m),g=p.length,b=w.length,u=t(p,w,g,b),u==1&&(m--,n(p,T16)throw Error(FO+Tn(e));if(!e.s)return new m(ra);for(rn=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Wo(2,f))/Math.LN10*2+5|0,u+=r,n=a=s=new m(ra),m.precision=u;;){if(a=Vt(a.times(e),u),n=n.times(++d),l=s.plus(rs(a,n,u)),ui(l.d).slice(0,u)===ui(s.d).slice(0,u)){for(;f--;)s=Vt(s.times(s),u);return m.precision=p,t==null?(rn=!0,Vt(s,p)):s}s=l}}function Tn(e){for(var t=e.e*tn,n=e.d[0];n>=10;n/=10)t++;return t}function yS(e,t,n){if(t>e.LN10.sd())throw rn=!0,n&&(e.precision=n),Error(Aa+"LN10 precision limit exceeded");return Vt(new e(e.LN10),t)}function Hs(e){for(var t="";e--;)t+="0";return t}function Gf(e,t){var n,r,a,s,l,u,d,f,m,p=1,g=10,x=e,j=x.d,w=x.constructor,b=w.precision;if(x.s<1)throw Error(Aa+(x.s?"NaN":"-Infinity"));if(x.eq(ra))return new w(0);if(t==null?(rn=!1,f=b):f=t,x.eq(10))return t==null&&(rn=!0),yS(w,f);if(f+=g,w.precision=f,n=ui(j),r=n.charAt(0),s=Tn(x),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=ui(x.d),r=n.charAt(0),p++;s=Tn(x),r>1?(x=new w("0."+n),s++):x=new w(r+"."+n.slice(1))}else return d=yS(w,f+2,b).times(s+""),x=Gf(new w(r+"."+n.slice(1)),f-g).plus(d),w.precision=b,t==null?(rn=!0,Vt(x,b)):x;for(u=l=x=rs(x.minus(ra),x.plus(ra),f),m=Vt(x.times(x),f),a=3;;){if(l=Vt(l.times(m),f),d=u.plus(rs(l,new w(a),f)),ui(d.d).slice(0,f)===ui(u.d).slice(0,f))return u=u.times(2),s!==0&&(u=u.plus(yS(w,f+2,b).times(s+""))),u=rs(u,new w(p),f),w.precision=b,t==null?(rn=!0,Vt(u,b)):u;u=d,a+=2}}function R3(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Ku(n/tn),e.d=[],r=(n+1)%tn,n<0&&(r+=tn),rZv||e.e<-Zv))throw Error(FO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Vt(e,t,n){var r,a,s,l,u,d,f,m,p=e.d;for(l=1,s=p[0];s>=10;s/=10)l++;if(r=t-l,r<0)r+=tn,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/tn),s=p.length,m>=s)return e;for(f=s=p[m],l=1;s>=10;s/=10)l++;r%=tn,a=r-tn+l}if(n!==void 0&&(s=Wo(10,l-a-1),u=f/s%10|0,d=t<0||p[m+1]!==void 0||f%s,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Wo(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(s=Tn(e),p.length=1,t=t-s-1,p[0]=Wo(10,(tn-t%tn)%tn),e.e=Ku(-t/tn)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,s=1,m--):(p.length=m+1,s=Wo(10,tn-r),p[m]=a>0?(f/Wo(10,l-a)%Wo(10,a)|0)*s:0),d)for(;;)if(m==0){(p[0]+=s)==Hn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=Hn)break;p[m--]=0,s=1}for(r=p.length;p[--r]===0;)p.pop();if(rn&&(e.e>Zv||e.e<-Zv))throw Error(FO+Tn(e));return e}function T6(e,t){var n,r,a,s,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),rn?Vt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/tn),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?s=s.charAt(0)+"."+s.slice(1)+Hs(r):l>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+Hs(-a-1)+s,n&&(r=n-l)>0&&(s+=Hs(r))):a>=l?(s+=Hs(a+1-l),n&&(r=n-a-1)>0&&(s=s+"."+Hs(r))):((r=a+1)0&&(a+1===l&&(s+="."),s+=Hs(r))),e.s<0?"-"+s:s}function D3(e,t){if(e.length>t)return e.length=t,!0}function k6(e){var t,n,r;function a(s){var l=this;if(!(l instanceof a))return new a(s);if(l.constructor=a,s instanceof a){l.s=s.s,l.e=s.e,l.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(sl+s);if(s>0)l.s=1;else if(s<0)s=-s,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(s===~~s&&s<1e7){l.e=0,l.d=[s];return}return R3(l,s.toString())}else if(typeof s!="string")throw Error(sl+s);if(s.charCodeAt(0)===45?(s=s.slice(1),l.s=-1):l.s=1,_se.test(s))R3(l,s);else throw Error(sl+s)}if(a.prototype=Te,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=k6,a.config=a.set=Nse,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(sl+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(sl+n+": "+r);return this}var UO=k6(Sse);ra=new UO(1);const qt=UO;function Cse(e){return Tse(e)||Ase(e)||Ese(e)||Ose()}function Ose(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ese(e,t){if(e){if(typeof e=="string")return tN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tN(e,t)}}function Ase(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Tse(e){if(Array.isArray(e))return tN(e)}function tN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,$3(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,s=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw s}}return n}}function Wse(e){if(Array.isArray(e))return e}function $6(e){var t=Yf(e,2),n=t[0],r=t[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function I6(e,t,n){if(e.lte(0))return new qt(0);var r=wy.getDigitCount(e.toNumber()),a=new qt(10).pow(r),s=e.div(a),l=r!==1?.05:.1,u=new qt(Math.ceil(s.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new qt(Math.ceil(d))}function Vse(e,t,n){var r=1,a=new qt(e);if(!a.isint()&&n){var s=Math.abs(e);s<1?(r=new qt(10).pow(wy.getDigitCount(e)-1),a=new qt(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new qt(Math.floor(e)))}else e===0?a=new qt(Math.floor((t-1)/2)):n||(a=new qt(Math.floor(e)));var l=Math.floor((t-1)/2),u=Rse(Pse(function(d){return a.add(new qt(d-l).mul(r)).toNumber()}),nN);return u(0,t)}function L6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new qt(0),tickMin:new qt(0),tickMax:new qt(0)};var s=I6(new qt(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new qt(0):(l=new qt(e).add(t).div(2),l=l.sub(new qt(l).mod(s)));var u=Math.ceil(l.sub(e).div(s).toNumber()),d=Math.ceil(new qt(t).sub(l).div(s).toNumber()),f=u+d+1;return f>n?L6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:s,tickMin:l.sub(new qt(u).mul(s)),tickMax:l.add(new qt(d).mul(s))})}function Gse(e){var t=Yf(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=$6([n,r]),d=Yf(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(aN(nN(0,a-1).map(function(){return 1/0}))):[].concat(aN(nN(0,a-1).map(function(){return-1/0})),[m]);return n>r?rN(p):p}if(f===m)return Vse(f,a,s);var g=L6(f,m,l,s),x=g.step,j=g.tickMin,w=g.tickMax,b=wy.rangeStep(j,w.add(new qt(.1).mul(x)),x);return n>r?rN(b):b}function Yse(e,t){var n=Yf(e,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=$6([r,a]),u=Yf(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=I6(new qt(f).sub(d).div(m-1),s,0),g=[].concat(aN(wy.rangeStep(new qt(d),new qt(f).sub(new qt(.99).mul(p)),p)),[f]);return r>a?rN(g):g}var Kse=R6(Gse),Xse=R6(Yse),Zse=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function pu(e){"@babel/helpers - typeof";return pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pu(e)}function Qv(){return Qv=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function aoe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ioe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function soe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var d=s.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(jr(p-m)!==jr(g-p)){var j=[];if(jr(g-p)===jr(d[1]-d[0])){x=g;var w=p+d[1]-d[0];j[0]=Math.min(w,(w+m)/2),j[1]=Math.max(w,(w+m)/2)}else{x=m;var b=g+d[1]-d[0];j[0]=Math.min(p,(b+p)/2),j[1]=Math.max(p,(b+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var E=Math.min(m,g),O=Math.max(m,g);if(t>(E+p)/2&&t<=(O+p)/2){l=a[f].index;break}}}else for(var A=0;A0&&A(r[A].coordinate+r[A-1].coordinate)/2&&t<=(r[A].coordinate+r[A+1].coordinate)/2||A===u-1&&t>(r[A].coordinate+r[A-1].coordinate)/2){l=r[A].index;break}return l},HO=function(t){var n,r=t,a=r.type.displayName,s=(n=t.type)!==null&&n!==void 0&&n.defaultProps?xn(xn({},t.type.defaultProps),t.props):t.props,l=s.stroke,u=s.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},Soe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var l={},u=Object.keys(s),d=0,f=u.length;d=0});if(N&&N.length){var E=N[0].type.defaultProps,O=E!==void 0?xn(xn({},E),N[0].props):N[0].props,A=O.barSize,C=O[b];l[C]||(l[C]=[]);var k=Qe(A)?n:A;l[C].push({item:N[0],stackList:N.slice(1),barSize:Qe(k)?void 0:Sr(k,r,0)})}}return l},_oe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,s=t.sizeList,l=s===void 0?[]:s,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=Sr(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(A,C){return A+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var w=(a-j)/2>>0,b={offset:w-f,size:0};m=l.reduce(function(A,C){var k={item:C.item,position:{offset:b.offset+b.size+f,size:g?x:C.barSize}},T=[].concat(B3(A),[k]);return b=T[T.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:b})}),T},p)}else{var N=Sr(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var E=(a-2*N-(d-1)*f)/d;E>1&&(E>>=0);var O=u===+u?Math.min(E,u):E;m=l.reduce(function(A,C,k){var T=[].concat(B3(A),[{item:C.item,position:{offset:N+(E+f)*k+(E-O)/2,size:O}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:T[T.length-1].position})}),T},p)}return m},Noe=function(t,n,r,a){var s=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=F6({children:s,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,w=f.layout;if((w==="vertical"||w==="horizontal"&&j==="middle")&&x!=="center"&&Ce(t[x]))return xn(xn({},t),{},Yc({},x,t[x]+(p||0)));if((w==="horizontal"||w==="vertical"&&x==="center")&&j!=="middle"&&Ce(t[j]))return xn(xn({},t),{},Yc({},j,t[j]+(g||0)))}return t},Coe=function(t,n,r){return Qe(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},U6=function(t,n,r,a,s){var l=n.props.children,u=ia(l,Wh).filter(function(f){return Coe(a,s,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=In(m,r);if(Qe(p))return f;var g=Array.isArray(p)?[xy(p),yy(p)]:[p,p],x=d.reduce(function(j,w){var b=In(m,w,0),N=g[0]-Math.abs(Array.isArray(b)?b[0]:b),E=g[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(N,j[0]),Math.max(E,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},Ooe=function(t,n,r,a,s){var l=n.map(function(u){return U6(t,u,r,s,a)}).filter(function(u){return!Qe(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},H6=function(t,n,r,a,s){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&U6(t,d,f,a)||Of(t,f,r,s)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?jr(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=s?s.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!Lh(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:s?s[p]:p,index:g,offset:f}})},xS=new WeakMap,qp=function(t,n){if(typeof n!="function")return t;xS.has(t)||xS.set(t,new WeakMap);var r=xS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},G6=function(t,n,r){var a=t.scale,s=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:Ff(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:Gv(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Cf(),realScaleType:"point"}:s==="category"?{scale:Ff(),realScaleType:"band"}:{scale:Gv(),realScaleType:"linear"};if(fl(a)){var d="scale".concat(ry(a));return{scale:(N3[d]||Cf)(),realScaleType:N3[d]?d:"point"}}return Ke(a)?{scale:a}:{scale:Cf(),realScaleType:"point"}},q3=1e-4,Y6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),s=Math.min(a[0],a[1])-q3,l=Math.max(a[0],a[1])+q3,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},Eoe=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(t[u][r][0]=s,t[u][r][1]=s+d,s=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},koe=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},Moe={sign:Toe,expand:xee,none:ou,silhouette:bee,wiggle:wee,positive:koe},Poe=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),s=Moe[r],l=yee().keys(a).value(function(u,d){return+In(u,d,0)}).order(I_).offset(s);return l(t)},Roe=function(t,n,r,a,s,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?xn(xn({},g.type.defaultProps),g.props):g.props,w=j.stackId,b=j.hide;if(b)return p;var N=j[r],E=p[N]||{hasStack:!1,stackGroups:{}};if(Ln(w)){var O=E.stackGroups[w]||{numericAxisId:r,cateAxisId:a,items:[]};O.items.push(g),E.hasStack=!0,E.stackGroups[w]=O}else E.stackGroups[Wu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return xn(xn({},p),{},Yc({},N,E))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(w,b){var N=x.stackGroups[b];return xn(xn({},w),{},Yc({},b,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:Poe(t,N.items,s)}))},j)}return xn(xn({},p),{},Yc({},g,x))},m)},K6=function(t,n){var r=n.realScaleType,a=n.type,s=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(s&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=Kse(f,s,u);return t.domain([xy(m),yy(m)]),{niceTicks:m}}if(s&&a==="number"){var p=t.domain(),g=Xse(p,s,u);return{niceTicks:g}}return null};function F3(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,s=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Qe(a[t.dataKey])){var u=Av(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var d=In(a,Qe(l)?t.dataKey:l);return Qe(d)?null:t.scale(d)}var U3=function(t){var n=t.axis,r=t.ticks,a=t.offset,s=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=In(l,n.dataKey,n.domain[u]);return Qe(d)?null:n.scale(d)-s/2+a},Doe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},$oe=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?xn(xn({},t.type.defaultProps),t.props):t.props,s=a.stackId;if(Ln(s)){var l=n[s];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},Ioe=function(t){return t.reduce(function(n,r){return[xy(r.concat([n[0]]).filter(Ce)),yy(r.concat([n[1]]).filter(Ce))]},[1/0,-1/0])},X6=function(t,n,r){return Object.keys(t).reduce(function(a,s){var l=t[s],u=l.stackedData,d=u.reduce(function(f,m){var p=Ioe(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},H3=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,W3=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,lN=function(t,n,r){if(Ke(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ce(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(H3.test(t[0])){var s=+H3.exec(t[0])[1];a[0]=n[0]-s}else Ke(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ce(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(W3.test(t[1])){var l=+W3.exec(t[1])[1];a[1]=n[1]+l}else Ke(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},eg=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var s=yO(n,function(p){return p.coordinate}),l=1/0,u=1,d=s.length;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},Voe=function(t,n,r,a,s){var l=t.width,u=t.height,d=t.startAngle,f=t.endAngle,m=Sr(t.cx,l,l/2),p=Sr(t.cy,u,u/2),g=J6(l,u,r),x=Sr(t.innerRadius,g,0),j=Sr(t.outerRadius,g,g*.8),w=Object.keys(n);return w.reduce(function(b,N){var E=n[N],O=E.domain,A=E.reversed,C;if(Qe(E.range))a==="angleAxis"?C=[d,f]:a==="radiusAxis"&&(C=[x,j]),A&&(C=[C[1],C[0]]);else{C=E.range;var k=C,T=zoe(k,2);d=T[0],f=T[1]}var M=G6(E,s),R=M.realScaleType,B=M.scale;B.domain(O).range(C),Y6(B);var $=K6(B,Yi(Yi({},E),{},{realScaleType:R})),H=Yi(Yi(Yi({},E),$),{},{range:C,radius:j,realScaleType:R,scale:B,cx:m,cy:p,innerRadius:x,outerRadius:j,startAngle:d,endAngle:f});return Yi(Yi({},b),{},Q6({},N,H))},{})},Goe=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return Math.sqrt(Math.pow(r-s,2)+Math.pow(a-l,2))},Yoe=function(t,n){var r=t.x,a=t.y,s=n.cx,l=n.cy,u=Goe({x:r,y:a},{x:s,y:l});if(u<=0)return{radius:u};var d=(r-s)/u,f=Math.acos(d);return a>l&&(f=2*Math.PI-f),{radius:u,angle:Woe(f),angleInRadian:f}},Koe=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),l=Math.min(a,s);return{startAngle:n-l*360,endAngle:r-l*360}},Xoe=function(t,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),l=Math.floor(a/360),u=Math.min(s,l);return t+u*360},K3=function(t,n){var r=t.x,a=t.y,s=Yoe({x:r,y:a},n),l=s.radius,u=s.angle,d=n.innerRadius,f=n.outerRadius;if(lf)return!1;if(l===0)return!0;var m=Koe(n),p=m.startAngle,g=m.endAngle,x=u,j;if(p<=g){for(;x>g;)x-=360;for(;x=p&&x<=g}else{for(;x>p;)x-=360;for(;x=g&&x<=p}return j?Yi(Yi({},n),{},{radius:l,angle:Xoe(x,n)}):null},eq=function(t){return!y.isValidElement(t)&&!Ke(t)&&typeof t!="boolean"?t.className:""};function Qf(e){"@babel/helpers - typeof";return Qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qf(e)}var Zoe=["offset"];function Qoe(e){return nle(e)||tle(e)||ele(e)||Joe()}function Joe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ele(e,t){if(e){if(typeof e=="string")return lN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return lN(e,t)}}function tle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function nle(e){if(Array.isArray(e))return lN(e)}function lN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function X3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $n(e){for(var t=1;t=0?1:-1,O,A;a==="insideStart"?(O=x+E*l,A=w):a==="insideEnd"?(O=j-E*l,A=!w):a==="end"&&(O=j+E*l,A=w),A=N<=0?A:!A;var C=Zt(f,m,b,O),k=Zt(f,m,b,O+(A?1:-1)*359),T="M".concat(C.x,",").concat(C.y,` +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ele(e,t){if(e){if(typeof e=="string")return cN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cN(e,t)}}function tle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function nle(e){if(Array.isArray(e))return cN(e)}function cN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function X3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $n(e){for(var t=1;t=0?1:-1,O,A;a==="insideStart"?(O=x+E*l,A=w):a==="insideEnd"?(O=j-E*l,A=!w):a==="end"&&(O=j+E*l,A=w),A=N<=0?A:!A;var C=Zt(f,m,b,O),k=Zt(f,m,b,O+(A?1:-1)*359),T="M".concat(C.x,",").concat(C.y,` A`).concat(b,",").concat(b,",0,1,").concat(A?0:1,`, - `).concat(k.x,",").concat(k.y),M=Qe(t.id)?Wu("recharts-radial-line-"):t.id;return W.createElement("text",Jf({},r,{dominantBaseline:"central",className:Je("recharts-radial-bar-label",u)}),W.createElement("defs",null,W.createElement("path",{id:M,d:T})),W.createElement("textPath",{xlinkHref:"#".concat(M)},n))},dle=function(t){var n=t.viewBox,r=t.offset,a=t.position,s=n,l=s.cx,u=s.cy,d=s.innerRadius,f=s.outerRadius,m=s.startAngle,p=s.endAngle,g=(m+p)/2;if(a==="outside"){var x=Zt(l,u,f+r,g),j=x.x,w=x.y;return{x:j,y:w,textAnchor:j>=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var b=(d+f)/2,N=Zt(l,u,b,g),E=N.x,O=N.y;return{x:E,y:O,textAnchor:"middle",verticalAnchor:"middle"}},fle=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,s=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",w=f>=0?1:-1,b=w*a,N=w>0?"end":"start",E=w>0?"start":"end";if(s==="top"){var O={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return $n($n({},O),r?{height:Math.max(d-r.y,0),width:f}:{})}if(s==="bottom"){var A={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return $n($n({},A),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(s==="left"){var C={x:u-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return $n($n({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(s==="right"){var k={x:u+f+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"};return $n($n({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var T=r?{width:f,height:m}:{};return s==="insideLeft"?$n({x:u+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"},T):s==="insideRight"?$n({x:u+f-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},T):s==="insideTop"?$n({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},T):s==="insideBottom"?$n({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},T):s==="insideTopLeft"?$n({x:u+b,y:d+g,textAnchor:E,verticalAnchor:j},T):s==="insideTopRight"?$n({x:u+f-b,y:d+g,textAnchor:N,verticalAnchor:j},T):s==="insideBottomLeft"?$n({x:u+b,y:d+m-g,textAnchor:E,verticalAnchor:x},T):s==="insideBottomRight"?$n({x:u+f-b,y:d+m-g,textAnchor:N,verticalAnchor:x},T):Hu(s)&&(Ce(s.x)||Ko(s.x))&&(Ce(s.y)||Ko(s.y))?$n({x:u+Sr(s.x,f),y:d+Sr(s.y,m),textAnchor:"end",verticalAnchor:"end"},T):$n({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},T)},hle=function(t){return"cx"in t&&Ce(t.cx)};function Vn(e){var t=e.offset,n=t===void 0?5:t,r=rle(e,Zoe),a=$n({offset:n},r),s=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!s||Qe(u)&&Qe(d)&&!y.isValidElement(f)&&!Ke(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(Ke(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=lle(a);var j=hle(s),w=qe(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return ule(a,x,w);var b=j?dle(a):fle(a);return W.createElement(ml,Jf({className:Je("recharts-label",p)},w,b,{breakAll:g}),x)}Vn.displayName="Label";var tq=function(t){var n=t.cx,r=t.cy,a=t.angle,s=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,w=t.width,b=t.height,N=t.clockWise,E=t.labelViewBox;if(E)return E;if(Ce(w)&&Ce(b)){if(Ce(p)&&Ce(g))return{x:p,y:g,width:w,height:b};if(Ce(x)&&Ce(j))return{x,y:j,width:w,height:b}}return Ce(p)&&Ce(g)?{x:p,y:g,width:0,height:0}:Ce(n)&&Ce(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},mle=function(t,n){return t?t===!0?W.createElement(Vn,{key:"label-implicit",viewBox:n}):Ln(t)?W.createElement(Vn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===Vn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Ke(t)?W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Hu(t)?W.createElement(Vn,Jf({viewBox:n},t,{key:"label-implicit"})):null:null},ple=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,s=tq(t),l=ia(a,Vn).map(function(d,f){return y.cloneElement(d,{viewBox:n||s,key:"label-".concat(f)})});if(!r)return l;var u=mle(t.label,n||s);return[u].concat(Qoe(l))};Vn.parseViewBox=tq;Vn.renderCallByParent=ple;var xS,Z3;function vle(){if(Z3)return xS;Z3=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return xS=e,xS}var gle=vle();const yle=At(gle);function eh(e){"@babel/helpers - typeof";return eh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eh(e)}var xle=["valueAccessor"],ble=["data","dataKey","clockWise","id","textBreakAll"];function wle(e){return Nle(e)||_le(e)||Sle(e)||jle()}function jle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sle(e,t){if(e){if(typeof e=="string")return cN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cN(e,t)}}function _le(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Nle(e){if(Array.isArray(e))return cN(e)}function cN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Tle=function(t){return Array.isArray(t.value)?yle(t.value):t.value};function as(e){var t=e.valueAccessor,n=t===void 0?Tle:t,r=e$(e,xle),a=r.data,s=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=e$(r,ble);return!a||!a.length?null:W.createElement(xt,{className:"recharts-label-list"},a.map(function(m,p){var g=Qe(s)?n(m,p):In(m&&m.payload,s),x=Qe(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(Vn,ng({},qe(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:Vn.parseViewBox(Qe(l)?m:J3(J3({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}as.displayName="LabelList";function kle(e,t){return e?e===!0?W.createElement(as,{key:"labelList-implicit",data:t}):W.isValidElement(e)||Ke(e)?W.createElement(as,{key:"labelList-implicit",data:t,content:e}):Hu(e)?W.createElement(as,ng({data:t},e,{key:"labelList-implicit"})):null:null}function Mle(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=ia(r,as).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var s=kle(e.label,t);return[s].concat(wle(a))}as.renderCallByParent=Mle;function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function uN(){return uN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var b=(d+f)/2,N=Zt(l,u,b,g),E=N.x,O=N.y;return{x:E,y:O,textAnchor:"middle",verticalAnchor:"middle"}},fle=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,s=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",w=f>=0?1:-1,b=w*a,N=w>0?"end":"start",E=w>0?"start":"end";if(s==="top"){var O={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return $n($n({},O),r?{height:Math.max(d-r.y,0),width:f}:{})}if(s==="bottom"){var A={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return $n($n({},A),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(s==="left"){var C={x:u-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return $n($n({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(s==="right"){var k={x:u+f+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"};return $n($n({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var T=r?{width:f,height:m}:{};return s==="insideLeft"?$n({x:u+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"},T):s==="insideRight"?$n({x:u+f-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},T):s==="insideTop"?$n({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},T):s==="insideBottom"?$n({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},T):s==="insideTopLeft"?$n({x:u+b,y:d+g,textAnchor:E,verticalAnchor:j},T):s==="insideTopRight"?$n({x:u+f-b,y:d+g,textAnchor:N,verticalAnchor:j},T):s==="insideBottomLeft"?$n({x:u+b,y:d+m-g,textAnchor:E,verticalAnchor:x},T):s==="insideBottomRight"?$n({x:u+f-b,y:d+m-g,textAnchor:N,verticalAnchor:x},T):Hu(s)&&(Ce(s.x)||Ko(s.x))&&(Ce(s.y)||Ko(s.y))?$n({x:u+Sr(s.x,f),y:d+Sr(s.y,m),textAnchor:"end",verticalAnchor:"end"},T):$n({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},T)},hle=function(t){return"cx"in t&&Ce(t.cx)};function Vn(e){var t=e.offset,n=t===void 0?5:t,r=rle(e,Zoe),a=$n({offset:n},r),s=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!s||Qe(u)&&Qe(d)&&!y.isValidElement(f)&&!Ke(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(Ke(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=lle(a);var j=hle(s),w=qe(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return ule(a,x,w);var b=j?dle(a):fle(a);return W.createElement(ml,Jf({className:Je("recharts-label",p)},w,b,{breakAll:g}),x)}Vn.displayName="Label";var tq=function(t){var n=t.cx,r=t.cy,a=t.angle,s=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,w=t.width,b=t.height,N=t.clockWise,E=t.labelViewBox;if(E)return E;if(Ce(w)&&Ce(b)){if(Ce(p)&&Ce(g))return{x:p,y:g,width:w,height:b};if(Ce(x)&&Ce(j))return{x,y:j,width:w,height:b}}return Ce(p)&&Ce(g)?{x:p,y:g,width:0,height:0}:Ce(n)&&Ce(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},mle=function(t,n){return t?t===!0?W.createElement(Vn,{key:"label-implicit",viewBox:n}):Ln(t)?W.createElement(Vn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===Vn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Ke(t)?W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Hu(t)?W.createElement(Vn,Jf({viewBox:n},t,{key:"label-implicit"})):null:null},ple=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,s=tq(t),l=ia(a,Vn).map(function(d,f){return y.cloneElement(d,{viewBox:n||s,key:"label-".concat(f)})});if(!r)return l;var u=mle(t.label,n||s);return[u].concat(Qoe(l))};Vn.parseViewBox=tq;Vn.renderCallByParent=ple;var bS,Z3;function vle(){if(Z3)return bS;Z3=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return bS=e,bS}var gle=vle();const yle=At(gle);function eh(e){"@babel/helpers - typeof";return eh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eh(e)}var xle=["valueAccessor"],ble=["data","dataKey","clockWise","id","textBreakAll"];function wle(e){return Nle(e)||_le(e)||Sle(e)||jle()}function jle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sle(e,t){if(e){if(typeof e=="string")return uN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return uN(e,t)}}function _le(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Nle(e){if(Array.isArray(e))return uN(e)}function uN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Tle=function(t){return Array.isArray(t.value)?yle(t.value):t.value};function as(e){var t=e.valueAccessor,n=t===void 0?Tle:t,r=e$(e,xle),a=r.data,s=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=e$(r,ble);return!a||!a.length?null:W.createElement(xt,{className:"recharts-label-list"},a.map(function(m,p){var g=Qe(s)?n(m,p):In(m&&m.payload,s),x=Qe(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(Vn,ng({},qe(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:Vn.parseViewBox(Qe(l)?m:J3(J3({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}as.displayName="LabelList";function kle(e,t){return e?e===!0?W.createElement(as,{key:"labelList-implicit",data:t}):W.isValidElement(e)||Ke(e)?W.createElement(as,{key:"labelList-implicit",data:t,content:e}):Hu(e)?W.createElement(as,ng({data:t},e,{key:"labelList-implicit"})):null:null}function Mle(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=ia(r,as).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var s=kle(e.label,t);return[s].concat(wle(a))}as.renderCallByParent=Mle;function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function dN(){return dN=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(l>f),`, `).concat(p.x,",").concat(p.y,` @@ -55,13 +55,13 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho `);if(a>0){var k=Fp({cx:n,cy:r,radius:a,angle:f,sign:p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),T=k.circleTangency,M=k.lineTangency,R=k.theta,B=Fp({cx:n,cy:r,radius:a,angle:m,sign:-p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),$=B.circleTangency,H=B.lineTangency,V=B.theta,q=d?Math.abs(f-m):Math.abs(f-m)-R-V;if(q<0&&l===0)return"".concat(C,"L").concat(n,",").concat(r,"Z");C+="L".concat(H.x,",").concat(H.y,` A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat($.x,",").concat($.y,` A`).concat(a,",").concat(a,",0,").concat(+(q>180),",").concat(+(p>0),",").concat(T.x,",").concat(T.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(M.x,",").concat(M.y,"Z")}else C+="L".concat(n,",").concat(r,"Z");return C},Lle={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},rq=function(t){var n=n$(n$({},Lle),t),r=n.cx,a=n.cy,s=n.innerRadius,l=n.outerRadius,u=n.cornerRadius,d=n.forceCornerRadius,f=n.cornerIsExternal,m=n.startAngle,p=n.endAngle,g=n.className;if(l0&&Math.abs(m-p)<360?b=Ile({cx:r,cy:a,innerRadius:s,outerRadius:l,cornerRadius:Math.min(w,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):b=nq({cx:r,cy:a,innerRadius:s,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",uN({},qe(n,!0),{className:x,d:b,role:"img"}))};function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function dN(){return dN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function rce(e,t){return El(e.getTime(),t.getTime())}function ace(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function ice(e,t){return e===t}function h$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.entries(),l,u,d=0;(l=s.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var sce=El;function oce(e,t,n){var r=f$(e),a=r.length;if(f$(t).length!==a)return!1;for(;a-- >0;)if(!aq(e,t,n,r[a]))return!1;return!0}function cf(e,t,n){var r=u$(e),a=r.length;if(u$(t).length!==a)return!1;for(var s,l,u;a-- >0;)if(s=r[a],!aq(e,t,n,s)||(l=d$(e,s),u=d$(t,s),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function lce(e,t){return El(e.valueOf(),t.valueOf())}function cce(e,t){return e.source===t.source&&e.flags===t.flags}function m$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.values(),l,u;(l=s.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function uce(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function dce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function aq(e,t,n,r){return(r===tce||r===ece||r===Jle)&&(e.$$typeof||t.$$typeof)?!0:Qle(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var fce="[object Arguments]",hce="[object Boolean]",mce="[object Date]",pce="[object Error]",vce="[object Map]",gce="[object Number]",yce="[object Object]",xce="[object RegExp]",bce="[object Set]",wce="[object String]",jce="[object URL]",Sce=Array.isArray,p$=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,v$=Object.assign,_ce=Object.prototype.toString.call.bind(Object.prototype.toString);function Nce(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,s=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(w,b,N){if(w===b)return!0;if(w==null||b==null)return!1;var E=typeof w;if(E!==typeof b)return!1;if(E!=="object")return E==="number"?l(w,b,N):E==="function"?a(w,b,N):!1;var O=w.constructor;if(O!==b.constructor)return!1;if(O===Object)return u(w,b,N);if(Sce(w))return t(w,b,N);if(p$!=null&&p$(w))return p(w,b,N);if(O===Date)return n(w,b,N);if(O===RegExp)return f(w,b,N);if(O===Map)return s(w,b,N);if(O===Set)return m(w,b,N);var A=_ce(w);if(A===mce)return n(w,b,N);if(A===xce)return f(w,b,N);if(A===vce)return s(w,b,N);if(A===bce)return m(w,b,N);if(A===yce)return typeof w.then!="function"&&typeof b.then!="function"&&u(w,b,N);if(A===jce)return g(w,b,N);if(A===pce)return r(w,b,N);if(A===fce)return u(w,b,N);if(A===hce||A===gce||A===wce)return d(w,b,N);if(x){var C=x[A];if(!C){var k=Zle(w);k&&(C=x[k])}if(C)return C(w,b,N)}return!1}}function Cce(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?cf:nce,areDatesEqual:rce,areErrorsEqual:ace,areFunctionsEqual:ice,areMapsEqual:r?c$(h$,cf):h$,areNumbersEqual:sce,areObjectsEqual:r?cf:oce,arePrimitiveWrappersEqual:lce,areRegExpsEqual:cce,areSetsEqual:r?c$(m$,cf):m$,areTypedArraysEqual:r?cf:uce,areUrlsEqual:dce,unknownTagComparators:void 0};if(n&&(a=v$({},a,n(a))),t){var s=Hp(a.areArraysEqual),l=Hp(a.areMapsEqual),u=Hp(a.areObjectsEqual),d=Hp(a.areSetsEqual);a=v$({},a,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function Oce(e){return function(t,n,r,a,s,l,u){return e(t,n,u)}}function Ece(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,s=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:s})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:s})};var l={cache:void 0,equals:a,meta:void 0,strict:s};return function(d,f){return n(d,f,l)}}var Ace=fo();fo({strict:!0});fo({circular:!0});fo({circular:!0,strict:!0});fo({createInternalComparator:function(){return El}});fo({strict:!0,createInternalComparator:function(){return El}});fo({circular:!0,createInternalComparator:function(){return El}});fo({circular:!0,createInternalComparator:function(){return El},strict:!0});function fo(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,s=e.strict,l=s===void 0?!1:s,u=Cce(e),d=Nce(u),f=r?r(d):Oce(d);return Ece({circular:n,comparator:d,createState:a,equals:f,strict:l})}function Tce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function g$(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>t?(e(s),n=-1):Tce(a)};requestAnimationFrame(r)}function fN(e){"@babel/helpers - typeof";return fN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fN(e)}function kce(e){return Dce(e)||Rce(e)||Pce(e)||Mce()}function Mce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Pce(e,t){if(e){if(typeof e=="string")return y$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y$(e,t)}}function y$(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&Math.abs(m-p)<360?b=Ile({cx:r,cy:a,innerRadius:s,outerRadius:l,cornerRadius:Math.min(w,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):b=nq({cx:r,cy:a,innerRadius:s,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",dN({},qe(n,!0),{className:x,d:b,role:"img"}))};function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function fN(){return fN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function rce(e,t){return El(e.getTime(),t.getTime())}function ace(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function ice(e,t){return e===t}function h$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.entries(),l,u,d=0;(l=s.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var sce=El;function oce(e,t,n){var r=f$(e),a=r.length;if(f$(t).length!==a)return!1;for(;a-- >0;)if(!aq(e,t,n,r[a]))return!1;return!0}function cf(e,t,n){var r=u$(e),a=r.length;if(u$(t).length!==a)return!1;for(var s,l,u;a-- >0;)if(s=r[a],!aq(e,t,n,s)||(l=d$(e,s),u=d$(t,s),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function lce(e,t){return El(e.valueOf(),t.valueOf())}function cce(e,t){return e.source===t.source&&e.flags===t.flags}function m$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.values(),l,u;(l=s.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function uce(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function dce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function aq(e,t,n,r){return(r===tce||r===ece||r===Jle)&&(e.$$typeof||t.$$typeof)?!0:Qle(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var fce="[object Arguments]",hce="[object Boolean]",mce="[object Date]",pce="[object Error]",vce="[object Map]",gce="[object Number]",yce="[object Object]",xce="[object RegExp]",bce="[object Set]",wce="[object String]",jce="[object URL]",Sce=Array.isArray,p$=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,v$=Object.assign,_ce=Object.prototype.toString.call.bind(Object.prototype.toString);function Nce(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,s=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(w,b,N){if(w===b)return!0;if(w==null||b==null)return!1;var E=typeof w;if(E!==typeof b)return!1;if(E!=="object")return E==="number"?l(w,b,N):E==="function"?a(w,b,N):!1;var O=w.constructor;if(O!==b.constructor)return!1;if(O===Object)return u(w,b,N);if(Sce(w))return t(w,b,N);if(p$!=null&&p$(w))return p(w,b,N);if(O===Date)return n(w,b,N);if(O===RegExp)return f(w,b,N);if(O===Map)return s(w,b,N);if(O===Set)return m(w,b,N);var A=_ce(w);if(A===mce)return n(w,b,N);if(A===xce)return f(w,b,N);if(A===vce)return s(w,b,N);if(A===bce)return m(w,b,N);if(A===yce)return typeof w.then!="function"&&typeof b.then!="function"&&u(w,b,N);if(A===jce)return g(w,b,N);if(A===pce)return r(w,b,N);if(A===fce)return u(w,b,N);if(A===hce||A===gce||A===wce)return d(w,b,N);if(x){var C=x[A];if(!C){var k=Zle(w);k&&(C=x[k])}if(C)return C(w,b,N)}return!1}}function Cce(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?cf:nce,areDatesEqual:rce,areErrorsEqual:ace,areFunctionsEqual:ice,areMapsEqual:r?c$(h$,cf):h$,areNumbersEqual:sce,areObjectsEqual:r?cf:oce,arePrimitiveWrappersEqual:lce,areRegExpsEqual:cce,areSetsEqual:r?c$(m$,cf):m$,areTypedArraysEqual:r?cf:uce,areUrlsEqual:dce,unknownTagComparators:void 0};if(n&&(a=v$({},a,n(a))),t){var s=Hp(a.areArraysEqual),l=Hp(a.areMapsEqual),u=Hp(a.areObjectsEqual),d=Hp(a.areSetsEqual);a=v$({},a,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function Oce(e){return function(t,n,r,a,s,l,u){return e(t,n,u)}}function Ece(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,s=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:s})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:s})};var l={cache:void 0,equals:a,meta:void 0,strict:s};return function(d,f){return n(d,f,l)}}var Ace=fo();fo({strict:!0});fo({circular:!0});fo({circular:!0,strict:!0});fo({createInternalComparator:function(){return El}});fo({strict:!0,createInternalComparator:function(){return El}});fo({circular:!0,createInternalComparator:function(){return El}});fo({circular:!0,createInternalComparator:function(){return El},strict:!0});function fo(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,s=e.strict,l=s===void 0?!1:s,u=Cce(e),d=Nce(u),f=r?r(d):Oce(d);return Ece({circular:n,comparator:d,createState:a,equals:f,strict:l})}function Tce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function g$(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>t?(e(s),n=-1):Tce(a)};requestAnimationFrame(r)}function hN(e){"@babel/helpers - typeof";return hN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hN(e)}function kce(e){return Dce(e)||Rce(e)||Pce(e)||Mce()}function Mce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Pce(e,t){if(e){if(typeof e=="string")return y$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y$(e,t)}}function y$(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},w=function(N){for(var E=N>1?1:N,O=E,A=0;A<8;++A){var C=p(O)-E,k=x(O);if(Math.abs(C-E)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,s=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*s,w=g+(x-j)*u/1e3,b=g*u/1e3+m;return Math.abs(b-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function fue(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,s;for(s=0;s=0)&&(n[a]=e[a]);return n}function SS(e){return vue(e)||pue(e)||mue(e)||hue()}function hue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mue(e,t){if(e){if(typeof e=="string")return gN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return gN(e,t)}}function pue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function vue(e){if(Array.isArray(e))return gN(e)}function gN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function sg(e){return sg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},sg(e)}var bi=(function(e){wue(n,e);var t=jue(n);function n(r,a){var s;gue(this,n),s=t.call(this,r,a);var l=s.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(s.handleStyleChange=s.handleStyleChange.bind(bN(s)),s.changeStyle=s.changeStyle.bind(bN(s)),!u||x<=0)return s.state={style:{}},typeof g=="function"&&(s.state={style:m}),xN(s);if(p&&p.length)s.state={style:p[0].style};else if(f){if(typeof g=="function")return s.state={style:f},xN(s);s.state={style:d?vf({},d,f):f}}else s.state={style:{}};return s}return xue(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,l=a.canBegin;this.mounted=!0,!(!s||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,l=s.isActive,u=s.canBegin,d=s.attributeName,f=s.shouldReAnimate,m=s.to,p=s.from,g=this.state.style;if(u){if(!l){var x={style:d?vf({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(Ace(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=j||f?p:a.to;if(this.state&&g){var b={style:d?vf({},d,w):w};(d&&g[d]!==w||!d&&g!==w)&&this.setState(b)}this.runAnimation(Da(Da({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=cue(l,u,Qce(f),d,this.changeStyle),j=function(){s.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var s=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(w,b,N){if(N===0)return w;var E=b.duration,O=b.easing,A=O===void 0?"ease":O,C=b.style,k=b.properties,T=b.onAnimationEnd,M=N>0?l[N-1]:b,R=k||Object.keys(C);if(typeof A=="function"||A==="spring")return[].concat(SS(w),[s.runJSAnimation.bind(s,{from:M.style,to:C,duration:E,easing:A}),E]);var B=w$(R,E,A),$=Da(Da(Da({},M.style),C),{},{transition:B});return[].concat(SS(w),[$,E,T]).filter(zce)};return this.manager.start([d].concat(SS(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=$ce());var s=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var w=u?vf({},u,d):d,b=w$(Object.keys(w),l,f);j.start([m,s,Da(Da({},w),{},{transition:b}),l,p])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=due(a,uue),f=y.Children.count(s),m=this.state.style;if(typeof s=="function")return s(m);if(!u||f===0||l<=0)return s;var p=function(x){var j=x.props,w=j.style,b=w===void 0?{}:w,N=j.className,E=y.cloneElement(x,Da(Da({},d),{},{style:Da(Da({},b),m),className:N}));return E};return f===1?p(y.Children.only(s)):W.createElement("div",null,y.Children.map(s,function(g){return p(g)}))}}]),n})(y.PureComponent);bi.displayName="Animate";bi.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};bi.propTypes={from:Nt.oneOfType([Nt.object,Nt.string]),to:Nt.oneOfType([Nt.object,Nt.string]),attributeName:Nt.string,duration:Nt.number,begin:Nt.number,easing:Nt.oneOfType([Nt.string,Nt.func]),steps:Nt.arrayOf(Nt.shape({duration:Nt.number.isRequired,style:Nt.object.isRequired,easing:Nt.oneOfType([Nt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Nt.func]),properties:Nt.arrayOf("string"),onAnimationEnd:Nt.func})),children:Nt.oneOfType([Nt.node,Nt.func]),isActive:Nt.bool,canBegin:Nt.bool,onAnimationEnd:Nt.func,shouldReAnimate:Nt.bool,onAnimationStart:Nt.func,onAnimationReStart:Nt.func};function ih(e){"@babel/helpers - typeof";return ih=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ih(e)}function og(){return og=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},w=function(N){for(var E=N>1?1:N,O=E,A=0;A<8;++A){var C=p(O)-E,k=x(O);if(Math.abs(C-E)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,s=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*s,w=g+(x-j)*u/1e3,b=g*u/1e3+m;return Math.abs(b-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function fue(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,s;for(s=0;s=0)&&(n[a]=e[a]);return n}function _S(e){return vue(e)||pue(e)||mue(e)||hue()}function hue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mue(e,t){if(e){if(typeof e=="string")return yN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return yN(e,t)}}function pue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function vue(e){if(Array.isArray(e))return yN(e)}function yN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function sg(e){return sg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},sg(e)}var bi=(function(e){wue(n,e);var t=jue(n);function n(r,a){var s;gue(this,n),s=t.call(this,r,a);var l=s.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(s.handleStyleChange=s.handleStyleChange.bind(wN(s)),s.changeStyle=s.changeStyle.bind(wN(s)),!u||x<=0)return s.state={style:{}},typeof g=="function"&&(s.state={style:m}),bN(s);if(p&&p.length)s.state={style:p[0].style};else if(f){if(typeof g=="function")return s.state={style:f},bN(s);s.state={style:d?vf({},d,f):f}}else s.state={style:{}};return s}return xue(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,l=a.canBegin;this.mounted=!0,!(!s||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,l=s.isActive,u=s.canBegin,d=s.attributeName,f=s.shouldReAnimate,m=s.to,p=s.from,g=this.state.style;if(u){if(!l){var x={style:d?vf({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(Ace(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=j||f?p:a.to;if(this.state&&g){var b={style:d?vf({},d,w):w};(d&&g[d]!==w||!d&&g!==w)&&this.setState(b)}this.runAnimation(Da(Da({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=cue(l,u,Qce(f),d,this.changeStyle),j=function(){s.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var s=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(w,b,N){if(N===0)return w;var E=b.duration,O=b.easing,A=O===void 0?"ease":O,C=b.style,k=b.properties,T=b.onAnimationEnd,M=N>0?l[N-1]:b,R=k||Object.keys(C);if(typeof A=="function"||A==="spring")return[].concat(_S(w),[s.runJSAnimation.bind(s,{from:M.style,to:C,duration:E,easing:A}),E]);var B=w$(R,E,A),$=Da(Da(Da({},M.style),C),{},{transition:B});return[].concat(_S(w),[$,E,T]).filter(zce)};return this.manager.start([d].concat(_S(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=$ce());var s=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var w=u?vf({},u,d):d,b=w$(Object.keys(w),l,f);j.start([m,s,Da(Da({},w),{},{transition:b}),l,p])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=due(a,uue),f=y.Children.count(s),m=this.state.style;if(typeof s=="function")return s(m);if(!u||f===0||l<=0)return s;var p=function(x){var j=x.props,w=j.style,b=w===void 0?{}:w,N=j.className,E=y.cloneElement(x,Da(Da({},d),{},{style:Da(Da({},b),m),className:N}));return E};return f===1?p(y.Children.only(s)):W.createElement("div",null,y.Children.map(s,function(g){return p(g)}))}}]),n})(y.PureComponent);bi.displayName="Animate";bi.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};bi.propTypes={from:Nt.oneOfType([Nt.object,Nt.string]),to:Nt.oneOfType([Nt.object,Nt.string]),attributeName:Nt.string,duration:Nt.number,begin:Nt.number,easing:Nt.oneOfType([Nt.string,Nt.func]),steps:Nt.arrayOf(Nt.shape({duration:Nt.number.isRequired,style:Nt.object.isRequired,easing:Nt.oneOfType([Nt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Nt.func]),properties:Nt.arrayOf("string"),onAnimationEnd:Nt.func})),children:Nt.oneOfType([Nt.node,Nt.func]),isActive:Nt.bool,canBegin:Nt.bool,onAnimationEnd:Nt.func,shouldReAnimate:Nt.bool,onAnimationStart:Nt.func,onAnimationReStart:Nt.func};function ih(e){"@babel/helpers - typeof";return ih=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ih(e)}function og(){return og=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,d=r>=0?1:-1,f=a>=0&&r>=0||a<0&&r<0?1:0,m;if(l>0&&s instanceof Array){for(var p=[0,0,0,0],g=0,x=4;gl?l:s[g];m="M".concat(t,",").concat(n+u*p[0]),p[0]>0&&(m+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(f,",").concat(t+d*p[0],",").concat(n)),m+="L ".concat(t+r-d*p[1],",").concat(n),p[1]>0&&(m+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(f,`, `).concat(t+r,",").concat(n+u*p[1])),m+="L ".concat(t+r,",").concat(n+a-u*p[2]),p[2]>0&&(m+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(f,`, `).concat(t+r-d*p[2],",").concat(n+a)),m+="L ".concat(t+d*p[3],",").concat(n+a),p[3]>0&&(m+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(f,`, @@ -72,22 +72,22 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho L `).concat(t+r,",").concat(n+a-u*j,` A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r-d*j,",").concat(n+a,` L `).concat(t+d*j,",").concat(n+a,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t,",").concat(n+a-u*j," Z")}else m="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return m},Mue=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,s=n.x,l=n.y,u=n.width,d=n.height;if(Math.abs(u)>0&&Math.abs(d)>0){var f=Math.min(s,s+u),m=Math.max(s,s+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},Pue={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},HO=function(t){var n=A$(A$({},Pue),t),r=y.useRef(),a=y.useState(-1),s=_ue(a,2),l=s[0],u=s[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var A=r.current.getTotalLength();A&&u(A)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,w=n.animationDuration,b=n.animationBegin,N=n.isAnimationActive,E=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var O=Je("recharts-rectangle",x);return E?W.createElement(bi,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:w,animationEasing:j,isActive:E},function(A){var C=A.width,k=A.height,T=A.x,M=A.y;return W.createElement(bi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,isActive:N,easing:j},W.createElement("path",og({},qe(n,!0),{className:O,d:T$(T,M,C,k,g),ref:r})))}):W.createElement("path",og({},qe(n,!0),{className:O,d:T$(d,f,m,p,g)}))},Rue=["points","className","baseLinePoints","connectNulls"];function Fc(){return Fc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $ue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function k$(e){return zue(e)||Bue(e)||Lue(e)||Iue()}function Iue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Lue(e,t){if(e){if(typeof e=="string")return wN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return wN(e,t)}}function Bue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function zue(e){if(Array.isArray(e))return wN(e)}function wN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){M$(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),M$(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Af=function(t,n){var r=que(t);n&&(r=[r.reduce(function(s,l){return[].concat(k$(s),k$(l))},[])]);var a=r.map(function(s){return s.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},Fue=function(t,n,r){var a=Af(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Af(n.reverse(),r).slice(1))},Uue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,s=t.connectNulls,l=Due(t,Rue);if(!n||!n.length)return null;var u=Je("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=Fue(n,a,s);return W.createElement("g",{className:u},W.createElement("path",Fc({},qe(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Fc({},qe(l,!0),{fill:"none",d:Af(n,s)})):null,d?W.createElement("path",Fc({},qe(l,!0),{fill:"none",d:Af(a,s)})):null)}var m=Af(n,s);return W.createElement("path",Fc({},qe(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function jN(){return jN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Xue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Zue=function(t,n,r,a,s,l){return"M".concat(t,",").concat(s,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},Que=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,w=Kue(t,Hue),b=Wue({x:r,y:s,top:u,left:f,width:p,height:x},w);return!Ce(r)||!Ce(s)||!Ce(p)||!Ce(x)||!Ce(u)||!Ce(f)?null:W.createElement("path",SN({},qe(b,!0),{className:Je("recharts-cross",j),d:Zue(r,s,p,x,u,f)}))},_S,R$;function Jue(){if(R$)return _S;R$=1;var e=gy(),t=N6(),n=_i();function r(a,s){return a&&a.length?e(a,n(s,2),t):void 0}return _S=r,_S}var ede=Jue();const tde=At(ede);var NS,D$;function nde(){if(D$)return NS;D$=1;var e=gy(),t=_i(),n=C6();function r(a,s){return a&&a.length?e(a,t(s,2),n):void 0}return NS=r,NS}var rde=nde();const ade=At(rde);var ide=["cx","cy","angle","ticks","axisLine"],sde=["ticks","tick","angle","tickFormatter","stroke"];function gu(e){"@babel/helpers - typeof";return gu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gu(e)}function Tf(){return Tf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ode(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function lde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function L$(e,t){for(var n=0;nq$?l=a==="outer"?"start":"end":s<-q$?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,s=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=Uo(Uo({},qe(this.props,!1)),{},{fill:"none"},qe(u,!1));if(d==="circle")return W.createElement(jy,Go({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:s,r:l}));var m=this.props.ticks,p=m.map(function(g){return Zt(a,s,l,g.coordinate)});return W.createElement(Uue,Go({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,s=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=qe(this.props,!1),p=qe(l,!1),g=Uo(Uo({},m),{},{fill:"none"},qe(u,!1)),x=s.map(function(j,w){var b=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),E=Uo(Uo(Uo({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:w,payload:j,x:b.x2,y:b.y2});return W.createElement(xt,Go({className:Je("recharts-polar-angle-axis-tick",eq(l)),key:"tick-".concat(j.coordinate)},hl(r.props,j,w)),u&&W.createElement("line",Go({className:"recharts-polar-angle-axis-tick-line"},g,b)),l&&t.renderTickItem(l,E,d?d(j.value,w):j.value))});return W.createElement(xt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,s=r.radius,l=r.axisLine;return s<=0||!a||!a.length?null:W.createElement(xt,{className:Je("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,s){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):Ke(r)?l=r(a):l=W.createElement(ml,Go({},a,{className:"recharts-polar-angle-axis-tick-value"}),s),l}}])})(y.PureComponent);Ny(Cy,"displayName","PolarAngleAxis");Ny(Cy,"axisType","angleAxis");Ny(Cy,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var CS,F$;function Sde(){if(F$)return CS;F$=1;var e=_z(),t=e(Object.getPrototypeOf,Object);return CS=t,CS}var OS,U$;function _de(){if(U$)return OS;U$=1;var e=fs(),t=Sde(),n=hs(),r="[object Object]",a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return OS=f,OS}var Nde=_de();const Cde=At(Nde);var ES,H$;function Ode(){if(H$)return ES;H$=1;var e=fs(),t=hs(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return ES=r,ES}var Ede=Ode();const Ade=At(Ede);function oh(e){"@babel/helpers - typeof";return oh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oh(e)}function ug(){return ug=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:w,animationEasing:j,isActive:N},function(O){var A=O.upperWidth,C=O.lowerWidth,k=O.height,T=O.x,M=O.y;return W.createElement(bi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,easing:j},W.createElement("path",ug({},qe(n,!0),{className:E,d:Y$(T,M,A,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",ug({},qe(n,!0),{className:E,d:Y$(d,f,m,p,g)})))},zde=["option","shapeType","propTransformer","activeClassName","isActive"];function lh(e){"@babel/helpers - typeof";return lh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lh(e)}function qde(e,t){if(e==null)return{};var n=Fde(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function K$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function dg(e){for(var t=1;t0?aa(O,"paddingAngle",0):0;if(C){var T=ta(C.endAngle-C.startAngle,O.endAngle-O.startAngle),M=Yt(Yt({},O),{},{startAngle:E+k,endAngle:E+T(w)+k});b.push(M),E=M.endAngle}else{var R=O.endAngle,B=O.startAngle,$=ta(0,R-B),H=$(w),V=Yt(Yt({},O),{},{startAngle:E+k,endAngle:E+H+k});b.push(V),E=V.endAngle}}),W.createElement(xt,null,r.renderSectorsStatically(b))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(s){if(!s.altKey)switch(s.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,s=r.isAnimationActive,l=this.state.prevSectors;return s&&a&&a.length&&(!l||!Hh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,s=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(s||!l||!l.length||!Ce(f)||!Ce(m)||!Ce(p)||!Ce(g))return null;var w=Je("recharts-pie",u);return W.createElement(xt,{tabIndex:this.props.rootTabIndex,className:w,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),Vn.renderCallByParent(this.props,null,!1),(!x||j)&&as.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r0&&Math.abs(d)>0){var f=Math.min(s,s+u),m=Math.max(s,s+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},Pue={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},WO=function(t){var n=A$(A$({},Pue),t),r=y.useRef(),a=y.useState(-1),s=_ue(a,2),l=s[0],u=s[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var A=r.current.getTotalLength();A&&u(A)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,w=n.animationDuration,b=n.animationBegin,N=n.isAnimationActive,E=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var O=Je("recharts-rectangle",x);return E?W.createElement(bi,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:w,animationEasing:j,isActive:E},function(A){var C=A.width,k=A.height,T=A.x,M=A.y;return W.createElement(bi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,isActive:N,easing:j},W.createElement("path",og({},qe(n,!0),{className:O,d:T$(T,M,C,k,g),ref:r})))}):W.createElement("path",og({},qe(n,!0),{className:O,d:T$(d,f,m,p,g)}))},Rue=["points","className","baseLinePoints","connectNulls"];function Fc(){return Fc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $ue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function k$(e){return zue(e)||Bue(e)||Lue(e)||Iue()}function Iue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Lue(e,t){if(e){if(typeof e=="string")return jN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jN(e,t)}}function Bue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function zue(e){if(Array.isArray(e))return jN(e)}function jN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){M$(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),M$(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Af=function(t,n){var r=que(t);n&&(r=[r.reduce(function(s,l){return[].concat(k$(s),k$(l))},[])]);var a=r.map(function(s){return s.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},Fue=function(t,n,r){var a=Af(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Af(n.reverse(),r).slice(1))},Uue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,s=t.connectNulls,l=Due(t,Rue);if(!n||!n.length)return null;var u=Je("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=Fue(n,a,s);return W.createElement("g",{className:u},W.createElement("path",Fc({},qe(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Fc({},qe(l,!0),{fill:"none",d:Af(n,s)})):null,d?W.createElement("path",Fc({},qe(l,!0),{fill:"none",d:Af(a,s)})):null)}var m=Af(n,s);return W.createElement("path",Fc({},qe(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function SN(){return SN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Xue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Zue=function(t,n,r,a,s,l){return"M".concat(t,",").concat(s,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},Que=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,w=Kue(t,Hue),b=Wue({x:r,y:s,top:u,left:f,width:p,height:x},w);return!Ce(r)||!Ce(s)||!Ce(p)||!Ce(x)||!Ce(u)||!Ce(f)?null:W.createElement("path",_N({},qe(b,!0),{className:Je("recharts-cross",j),d:Zue(r,s,p,x,u,f)}))},NS,R$;function Jue(){if(R$)return NS;R$=1;var e=gy(),t=N6(),n=_i();function r(a,s){return a&&a.length?e(a,n(s,2),t):void 0}return NS=r,NS}var ede=Jue();const tde=At(ede);var CS,D$;function nde(){if(D$)return CS;D$=1;var e=gy(),t=_i(),n=C6();function r(a,s){return a&&a.length?e(a,t(s,2),n):void 0}return CS=r,CS}var rde=nde();const ade=At(rde);var ide=["cx","cy","angle","ticks","axisLine"],sde=["ticks","tick","angle","tickFormatter","stroke"];function gu(e){"@babel/helpers - typeof";return gu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gu(e)}function Tf(){return Tf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ode(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function lde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function L$(e,t){for(var n=0;nq$?l=a==="outer"?"start":"end":s<-q$?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,s=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=Uo(Uo({},qe(this.props,!1)),{},{fill:"none"},qe(u,!1));if(d==="circle")return W.createElement(jy,Go({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:s,r:l}));var m=this.props.ticks,p=m.map(function(g){return Zt(a,s,l,g.coordinate)});return W.createElement(Uue,Go({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,s=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=qe(this.props,!1),p=qe(l,!1),g=Uo(Uo({},m),{},{fill:"none"},qe(u,!1)),x=s.map(function(j,w){var b=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),E=Uo(Uo(Uo({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:w,payload:j,x:b.x2,y:b.y2});return W.createElement(xt,Go({className:Je("recharts-polar-angle-axis-tick",eq(l)),key:"tick-".concat(j.coordinate)},hl(r.props,j,w)),u&&W.createElement("line",Go({className:"recharts-polar-angle-axis-tick-line"},g,b)),l&&t.renderTickItem(l,E,d?d(j.value,w):j.value))});return W.createElement(xt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,s=r.radius,l=r.axisLine;return s<=0||!a||!a.length?null:W.createElement(xt,{className:Je("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,s){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):Ke(r)?l=r(a):l=W.createElement(ml,Go({},a,{className:"recharts-polar-angle-axis-tick-value"}),s),l}}])})(y.PureComponent);Ny(Cy,"displayName","PolarAngleAxis");Ny(Cy,"axisType","angleAxis");Ny(Cy,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var OS,F$;function Sde(){if(F$)return OS;F$=1;var e=_z(),t=e(Object.getPrototypeOf,Object);return OS=t,OS}var ES,U$;function _de(){if(U$)return ES;U$=1;var e=fs(),t=Sde(),n=hs(),r="[object Object]",a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return ES=f,ES}var Nde=_de();const Cde=At(Nde);var AS,H$;function Ode(){if(H$)return AS;H$=1;var e=fs(),t=hs(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return AS=r,AS}var Ede=Ode();const Ade=At(Ede);function oh(e){"@babel/helpers - typeof";return oh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oh(e)}function ug(){return ug=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:w,animationEasing:j,isActive:N},function(O){var A=O.upperWidth,C=O.lowerWidth,k=O.height,T=O.x,M=O.y;return W.createElement(bi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,easing:j},W.createElement("path",ug({},qe(n,!0),{className:E,d:Y$(T,M,A,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",ug({},qe(n,!0),{className:E,d:Y$(d,f,m,p,g)})))},zde=["option","shapeType","propTransformer","activeClassName","isActive"];function lh(e){"@babel/helpers - typeof";return lh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lh(e)}function qde(e,t){if(e==null)return{};var n=Fde(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function K$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function dg(e){for(var t=1;t0?aa(O,"paddingAngle",0):0;if(C){var T=ta(C.endAngle-C.startAngle,O.endAngle-O.startAngle),M=Yt(Yt({},O),{},{startAngle:E+k,endAngle:E+T(w)+k});b.push(M),E=M.endAngle}else{var R=O.endAngle,B=O.startAngle,$=ta(0,R-B),H=$(w),V=Yt(Yt({},O),{},{startAngle:E+k,endAngle:E+H+k});b.push(V),E=V.endAngle}}),W.createElement(xt,null,r.renderSectorsStatically(b))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(s){if(!s.altKey)switch(s.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,s=r.isAnimationActive,l=this.state.prevSectors;return s&&a&&a.length&&(!l||!Hh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,s=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(s||!l||!l.length||!Ce(f)||!Ce(m)||!Ce(p)||!Ce(g))return null;var w=Je("recharts-pie",u);return W.createElement(xt,{tabIndex:this.props.rootTabIndex,className:w,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),Vn.renderCallByParent(this.props,null,!1),(!x||j)&&as.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r=360?E:E-1)*d,A=b-E*x-O,C=a.reduce(function(M,R){var B=In(R,N,0);return M+(Ce(B)?B:0)},0),k;if(C>0){var T;k=a.map(function(M,R){var B=In(M,N,0),$=In(M,m,R),H=(Ce(B)?B:0)/C,V;R?V=T.endAngle+jr(w)*d*(B!==0?1:0):V=l;var q=V+jr(w)*((B!==0?x:0)+H*A),G=(V+q)/2,L=(j.innerRadius+j.outerRadius)/2,D=[{name:$,value:B,payload:M,dataKey:N,type:g}],U=Zt(j.cx,j.cy,L,G);return T=Yt(Yt(Yt({percent:H,cornerRadius:s,name:$,tooltipPayload:D,midAngle:G,middleRadius:L,tooltipPosition:U},M),j),{},{value:In(M,N),startAngle:V,endAngle:q,payload:M,paddingAngle:jr(w)*d}),T})}return Yt(Yt({},j),{},{sectors:k,data:a})});var AS,J$;function cfe(){if(J$)return AS;J$=1;var e=Math.ceil,t=Math.max;function n(r,a,s,l){for(var u=-1,d=t(e((a-r)/(s||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=s;return f}return AS=n,AS}var TS,eI;function yq(){if(eI)return TS;eI=1;var e=zz(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var s=a<0?-1:1;return s*n}return a===a?a:0}return TS=r,TS}var kS,tI;function ufe(){if(tI)return kS;tI=1;var e=cfe(),t=cy(),n=yq();function r(a){return function(s,l,u){return u&&typeof u!="number"&&t(s,l,u)&&(l=u=void 0),s=n(s),l===void 0?(l=s,s=0):l=n(l),u=u===void 0?s0&&r.handleDrag(a.changedTouches[0])}),Zr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:s,startIndex:u})}),r.detachDragEndListener()}),Zr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Zr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Zr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Zr(r,"handleSlideDragStart",function(a){var s=oI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return jfe(t,e),yfe(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,s),g=Math.max(a,s),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,l=a.tickFormatter,u=a.dataKey,d=In(s[r],u,r);return Ke(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,w=r.pageX-s;w>0?w=Math.min(w,f+m-p-u,f+m-p-l):w<0&&(w=Math.max(w,f-l,f-u));var b=this.getIndex({startX:l+w,endX:u+w});(b.startIndex!==g||b.endIndex!==x)&&j&&j(b),this.setState({startX:l+w,endX:u+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=oI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,w=m.gap,b=m.data,N={startX:this.state.startX,endX:this.state.endX},E=r.pageX-s;E>0?E=Math.min(E,p+g-x-f):E<0&&(E=Math.max(E,p-f)),N[l]=f+E;var O=this.getIndex(N),A=O.startIndex,C=O.endIndex,k=function(){var M=b.length-1;return l==="startX"&&(u>d?A%w===0:C%w===0)||ud?C%w===0:A%w===0)||u>d&&C===M};this.setState(Zr(Zr({},l,f+E),"brushMoveStartX",r.pageX),function(){j&&k()&&j(O)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Zr({},a,x),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:s,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:s,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,w=d.startIndex,b=d.endIndex,N=Math.max(r,this.props.x),E=PS(PS({},qe(this.props,!1)),{},{x:N,y:f,width:m,height:p}),O=x||"Min value: ".concat((s=j[w])===null||s===void 0?void 0:s.name,", Max value: ").concat((l=j[b])===null||l===void 0?void 0:l.name);return W.createElement(xt,{tabIndex:0,role:"slider","aria-label":O,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,E))}},{key:"renderSlide",value:function(r,a){var s=this.props,l=s.y,u=s.height,d=s.stroke,f=s.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(xt,{className:"recharts-brush-texts"},W.createElement(ml,mg({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(ml,mg({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,w=g.isTextActive,b=g.isSlideMoving,N=g.isTravellerMoving,E=g.isTravellerFocused;if(!a||!a.length||!Ce(u)||!Ce(d)||!Ce(f)||!Ce(m)||f<=0||m<=0)return null;var O=Je("recharts-brush",s),A=W.Children.count(l)===1,C=vfe("userSelect","none");return W.createElement(xt,{className:O,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(w||b||N||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(s+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:s,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return W.isValidElement(r)?s=W.cloneElement(r,a):Ke(r)?s=r(a):s=t.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(s!==a.prevData||f!==a.prevUpdateId)return PS({prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},s&&s.length?_fe({data:s,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,l=0,u=s-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Zr(wu,"displayName","Brush");Zr(wu,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var RS,lI;function Nfe(){if(lI)return RS;lI=1;var e=vO();function t(n,r){var a;return e(n,function(s,l,u){return a=r(s,l,u),!a}),!!a}return RS=t,RS}var DS,cI;function Cfe(){if(cI)return DS;cI=1;var e=gz(),t=_i(),n=Nfe(),r=qr(),a=cy();function s(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return DS=s,DS}var Ofe=Cfe();const Efe=At(Ofe);var vi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},$S,uI;function Afe(){if(uI)return $S;uI=1;var e=Dz();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return $S=t,$S}var IS,dI;function Tfe(){if(dI)return IS;dI=1;var e=Afe(),t=Pz(),n=_i();function r(a,s){var l={};return s=n(s,3),t(a,function(u,d,f){e(l,d,s(u,d,f))}),l}return IS=r,IS}var kfe=Tfe();const Mfe=At(kfe);var LS,fI;function Pfe(){if(fI)return LS;fI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ffe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ufe(e,t){var n=e.x,r=e.y,a=qfe(e,Ife),s="".concat(n),l=parseInt(s,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return uf(uf(uf(uf(uf({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function vI(e){return W.createElement(pq,EN({shapeType:"rectangle",propTransformer:Ufe,activeClassName:"recharts-active-bar"},e))}var Hfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var s=Ce(r)||hJ(r);return s?t(r,a):(s||pr(!1),n)}},Wfe=["value","background"],Sq;function ju(e){"@babel/helpers - typeof";return ju=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ju(e)}function Vfe(e,t){if(e==null)return{};var n=Gfe(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Gfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vg(){return vg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(q)0&&(V=Math.min((te||0)-(q[ae-1]||0),V))}),Number.isFinite(V)){var G=V/H,L=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(T=G*L/2),w.padding==="no-gap"){var D=Sr(t.barCategoryGap,G*L),U=G*L/2;T=U-D-(U-D)/L*D}}}a==="xAxis"?M=[r.left+(O.left||0)+(T||0),r.left+r.width-(O.right||0)-(T||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(O.bottom||0),r.top+(O.top||0)]:[r.top+(O.top||0)+(T||0),r.top+r.height-(O.bottom||0)-(T||0)]:M=w.range,C&&(M=[M[1],M[0]]);var K=G6(w,s,g),J=K.scale,I=K.realScaleType;J.domain(N).range(M),Y6(J);var z=K6(J,Ba(Ba({},w),{},{realScaleType:I}));a==="xAxis"?($=b==="top"&&!A||b==="bottom"&&A,R=r.left,B=p[k]-$*w.height):a==="yAxis"&&($=b==="left"&&!A||b==="right"&&A,R=p[k]-$*w.width,B=r.top);var Y=Ba(Ba(Ba({},w),z),{},{realScaleType:I,x:R,y:B,scale:J,width:a==="xAxis"?r.width:w.width,height:a==="yAxis"?r.height:w.height});return Y.bandSize=eg(Y,z),!w.hide&&a==="xAxis"?p[k]+=($?-1:1)*Y.height:w.hide||(p[k]+=($?-1:1)*Y.width),Ba(Ba({},x),{},Ay({},j,Y))},{})},Eq=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return{x:Math.min(r,s),y:Math.min(a,l),width:Math.abs(s-r),height:Math.abs(l-a)}},ahe=function(t){var n=t.x1,r=t.y1,a=t.x2,s=t.y2;return Eq({x:n,y:r},{x:a,y:s})},Aq=(function(){function e(t){the(this,e),this.scale=t}return nhe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();Ay(Aq,"EPS",1e-4);var WO=function(t){var n=Object.keys(t).reduce(function(r,a){return Ba(Ba({},r),{},Ay({},a,Aq.create(t[a])))},{});return Ba(Ba({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=s.bandAware,u=s.position;return Mfe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return jq(a,function(s,l){return n[l].isInRange(s)})}})};function ihe(e){return(e%180+180)%180}var she=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=ihe(a),l=s*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?s[m]:m]:void 0}}return qS=r,qS}var FS,jI;function lhe(){if(jI)return FS;jI=1;var e=yq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return FS=t,FS}var US,SI;function che(){if(SI)return US;SI=1;var e=Ez(),t=_i(),n=lhe(),r=Math.max;function a(s,l,u){var d=s==null?0:s.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(s,t(l,3),f)}return US=a,US}var HS,_I;function uhe(){if(_I)return HS;_I=1;var e=ohe(),t=che(),n=e(t);return HS=n,HS}var dhe=uhe();const fhe=At(dhe);var hhe=HB();const mhe=At(hhe);var phe=mhe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),VO=y.createContext(void 0),GO=y.createContext(void 0),Tq=y.createContext(void 0),kq=y.createContext({}),Mq=y.createContext(void 0),Pq=y.createContext(0),Rq=y.createContext(0),NI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=phe(s);return W.createElement(VO.Provider,{value:r},W.createElement(GO.Provider,{value:a},W.createElement(kq.Provider,{value:s},W.createElement(Tq.Provider,{value:m},W.createElement(Mq.Provider,{value:l},W.createElement(Pq.Provider,{value:f},W.createElement(Rq.Provider,{value:d},u)))))))},vhe=function(){return y.useContext(Mq)},Dq=function(t){var n=y.useContext(VO);n==null&&pr(!1);var r=n[t];return r==null&&pr(!1),r},ghe=function(){var t=y.useContext(VO);return Ws(t)},yhe=function(){var t=y.useContext(GO),n=fhe(t,function(r){return jq(r.domain,Number.isFinite)});return n||Ws(t)},$q=function(t){var n=y.useContext(GO);n==null&&pr(!1);var r=n[t];return r==null&&pr(!1),r},xhe=function(){var t=y.useContext(Tq);return t},bhe=function(){return y.useContext(kq)},YO=function(){return y.useContext(Rq)},KO=function(){return y.useContext(Pq)};function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function whe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jhe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var s=n();return e*(t-e*s/2-r)>=0&&e*(t+e*s/2-a)<=0}function rme(e,t){return Uq(e,t+1)}function ame(e,t,n,r,a){for(var s=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Uq(r,f)};var w=d,b,N=function(){return b===void 0&&(b=n(j,w)),b},E=j.coordinate,O=d===0||wg(e,E,N,m,u);O||(d=0,m=l,f+=1),O&&(m=E+e*(N()/2+a),d+=f)},g;f<=s.length;)if(g=p(),g)return g.v;return[]}function hh(e){"@babel/helpers - typeof";return hh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hh(e)}function PI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t0?x.coordinate-b*e:x.coordinate})}else s[g]=x=ur(ur({},x),{},{tickCoord:x.coordinate});var N=wg(e,x.tickCoord,w,u,d);N&&(d=x.tickCoord-e*(w()/2+a),s[g]=ur(ur({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return s}function cme(e,t,n,r,a,s){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(s){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=ur(ur({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=wg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=ur(ur({},m),{},{isShow:!0}))}for(var j=s?u-1:u,w=function(E){var O=l[E],A,C=function(){return A===void 0&&(A=n(O,E)),A};if(E===0){var k=e*(O.coordinate-e*C()/2-d);l[E]=O=ur(ur({},O),{},{tickCoord:k<0?O.coordinate-k*e:O.coordinate})}else l[E]=O=ur(ur({},O),{},{tickCoord:O.coordinate});var T=wg(e,O.tickCoord,C,d,f);T&&(d=O.tickCoord+e*(C()/2+a),l[E]=ur(ur({},O),{},{isShow:!0}))},b=0;b=2?jr(a[1].coordinate-a[0].coordinate):1,N=nme(s,b,x);return d==="equidistantPreserveStart"?ame(b,N,w,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=cme(b,N,w,a,l,d==="preserveStartEnd"):g=lme(b,N,w,a,l),g.filter(function(E){return E.isShow}))}var ume=["viewBox"],dme=["viewBox"],fme=["ticks"];function Cu(e){"@babel/helpers - typeof";return Cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cu(e)}function Hc(){return Hc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function hme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function mme(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function DI(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(xt,{className:Je("recharts-cartesian-axis",f),ref:function(b){r.layerReference=b}},s&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),Vn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var l,u=Je(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,Dn(Dn({},a),{},{className:u})):Ke(r)?l=r(Dn(Dn({},a),{},{className:u})):l=W.createElement(ml,Hc({},a,{className:"recharts-cartesian-axis-tick-value"}),s),l}}])})(y.Component);JO(Xu,"displayName","CartesianAxis");JO(Xu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var wme=["x1","y1","x2","y2","key"],jme=["offset"];function vl(e){"@babel/helpers - typeof";return vl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vl(e)}function $I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function fr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Cme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Ome=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,s=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:s,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function Vq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(Ke(e))n=e(t);else{var r=t.x1,a=t.y1,s=t.x2,l=t.y2,u=t.key,d=II(t,wme),f=qe(d,!1);f.offset;var m=II(f,jme);n=W.createElement("line",Qo({},m,{x1:r,y1:a,x2:s,y2:l,fill:"none",key:u}))}return n}function Eme(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,s=e.horizontalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return Vq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function Ame(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,s=e.verticalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return Vq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Tme(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,s=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?a+l-g:m[x+1]-g;if(w<=0)return null;var b=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:w,width:s,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function kme(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,s=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+s-s)}).sort(function(g,x){return g-x});s!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?s+u-g:m[x+1]-g;if(w<=0)return null;var b=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:w,height:d,stroke:"none",fill:r[b],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Mme=function(t,n){var r=t.xAxis,a=t.width,s=t.height,l=t.offset;return V6(QO(fr(fr(fr({},Xu.defaultProps),r),{},{ticks:Qi(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.left,l.left+l.width,n)},Pme=function(t,n){var r=t.yAxis,a=t.width,s=t.height,l=t.offset;return V6(QO(fr(fr(fr({},Xu.defaultProps),r),{},{ticks:Qi(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.top,l.top+l.height,n)},Oc={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function gf(e){var t,n,r,a,s,l,u=YO(),d=KO(),f=bhe(),m=fr(fr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Oc.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Oc.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Oc.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:Oc.horizontalFill,vertical:(s=e.vertical)!==null&&s!==void 0?s:Oc.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:Oc.verticalFill,x:Ce(e.x)?e.x:f.left,y:Ce(e.y)?e.y:f.top,width:Ce(e.width)?e.width:f.width,height:Ce(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,w=m.syncWithTicks,b=m.horizontalValues,N=m.verticalValues,E=ghe(),O=yhe();if(!Ce(x)||x<=0||!Ce(j)||j<=0||!Ce(p)||p!==+p||!Ce(g)||g!==+g)return null;var A=m.verticalCoordinatesGenerator||Mme,C=m.horizontalCoordinatesGenerator||Pme,k=m.horizontalPoints,T=m.verticalPoints;if((!k||!k.length)&&Ke(C)){var M=b&&b.length,R=C({yAxis:O?fr(fr({},O),{},{ticks:M?b:O.ticks}):void 0,width:u,height:d,offset:f},M?!0:w);Ha(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(vl(R),"]")),Array.isArray(R)&&(k=R)}if((!T||!T.length)&&Ke(A)){var B=N&&N.length,$=A({xAxis:E?fr(fr({},E),{},{ticks:B?N:E.ticks}):void 0,width:u,height:d,offset:f},B?!0:w);Ha(Array.isArray($),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(vl($),"]")),Array.isArray($)&&(T=$)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Ome,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(Eme,Qo({},m,{offset:f,horizontalPoints:k,xAxis:E,yAxis:O})),W.createElement(Ame,Qo({},m,{offset:f,verticalPoints:T,xAxis:E,yAxis:O})),W.createElement(Tme,Qo({},m,{horizontalPoints:k})),W.createElement(kme,Qo({},m,{verticalPoints:T})))}gf.displayName="CartesianGrid";var Rme=["type","layout","connectNulls","ref"],Dme=["key"];function Ou(e){"@babel/helpers - typeof";return Ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(e)}function LI(e,t){if(e==null)return{};var n=$me(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $me(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function kf(){return kf=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Ec(d.slice(0,j)),[p-w]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(Ec(t.repeat(d,m)),Ec(x),b).map(function(N){return"".concat(N,"px")}).join(", ")}),za(n,"id",Wu("recharts-line-")),za(n,"pathRef",function(l){n.mainCurve=l}),za(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),za(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Vme(t,e),Fme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.points,u=s.xAxis,d=s.yAxis,f=s.layout,m=s.children,p=ia(m,Wh);if(!p)return null;var g=function(w,b){return{x:w.x,y:w.y,value:w.value,errorVal:In(w.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(xt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,s){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=qe(this.props,!1),g=qe(d,!0),x=f.map(function(w,b){var N=Xr(Xr(Xr({key:"dot-".concat(b),r:3},p),g),{},{index:b,cx:w.x,cy:w.y,value:w.value,dataKey:m,payload:w.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return W.createElement(xt,kf({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,s,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=LI(u,Rme),g=Xr(Xr(Xr({},qe(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(rg,kf({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,w=l.width,b=l.height,N=this.state,E=N.prevPoints,O=N.totalLength;return W.createElement(bi,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(A){var C=A.t;if(E){var k=E.length/u.length,T=u.map(function(H,V){var q=Math.floor(V*k);if(E[q]){var G=E[q],L=ta(G.x,H.x),D=ta(G.y,H.y);return Xr(Xr({},H),{},{x:L(C),y:D(C)})}if(j){var U=ta(w*2,H.x),K=ta(b/2,H.y);return Xr(Xr({},H),{},{x:U(C),y:K(C)})}return Xr(Xr({},H),{},{x:H.x,y:H.y})});return s.renderCurveStatically(T,r,a)}var M=ta(0,O),R=M(C),B;if(d){var $="".concat(d).split(/[,\s]+/gim).map(function(H){return parseFloat(H)});B=s.getStrokeDasharray(R,O,$)}else B=s.generateSimpleStrokeDasharray(O,R);return s.renderCurveStatically(u,r,a,{strokeDasharray:B})})}},{key:"renderCurve",value:function(r,a){var s=this.props,l=s.points,u=s.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Hh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,w=a.isAnimationActive,b=a.id;if(s||!u||!u.length)return null;var N=this.state.isAnimationFinished,E=u.length===1,O=Je("recharts-line",d),A=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=A||C,T=Qe(b)?this.id:b,M=(r=qe(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},R=M.r,B=R===void 0?3:R,$=M.strokeWidth,H=$===void 0?2:$,V=NJ(l)?l:{},q=V.clipDot,G=q===void 0?!0:q,L=B*2+H;return W.createElement(xt,{className:O},A||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(T)},W.createElement("rect",{x:A?g:g-x/2,y:C?p:p-j/2,width:A?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(T)},W.createElement("rect",{x:g-L/2,y:p-L/2,width:x+L,height:j+L}))):null,!E&&this.renderCurve(k,T),this.renderErrorBar(k,T),(E||l)&&this.renderDots(k,G,T),(!w||N)&&as.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Ec(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $pe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ipe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Lpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ce(a)&&Ce(s)?t.slice(a,s+1):[]};function oF(e){return e==="number"?[0,"auto"]:void 0}var GN=function(t,n,r,a){var s=t.graphicalItems,l=t.tooltipAxis,u=Ry(n,t);return r<0||!s||!s.length||r>=u.length?null:s.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=Av(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(ku(d),[Z6(f,g)]):d},[])},GI=function(t,n,r,a){var s=a||{x:t.chartX,y:t.chartY},l=Xpe(s,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=joe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=GN(t,n,m,p),x=Zpe(r,u,m,s);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},Qpe=function(t,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=W6(m,s);return r.reduce(function(j,w){var b,N=w.type.defaultProps!==void 0?ve(ve({},w.type.defaultProps),w.props):w.props,E=N.type,O=N.dataKey,A=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,T=N.ticks,M=N.includeHidden,R=N[l];if(j[R])return j;var B=Ry(t.data,{graphicalItems:a.filter(function(z){var Y,te=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l];return te===R}),dataStartIndex:d,dataEndIndex:f}),$=B.length,H,V,q;_pe(N.domain,A,E)&&(H=oN(N.domain,null,A),x&&(E==="number"||k!=="auto")&&(q=Of(B,O,"category")));var G=oF(E);if(!H||H.length===0){var L,D=(L=N.domain)!==null&&L!==void 0?L:G;if(O){if(H=Of(B,O,E),E==="category"&&x){var U=pJ(H);C&&U?(V=H,H=hg(0,$)):C||(H=V3(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0?z:[].concat(ku(z),[Y])},[]))}else if(E==="category")C?H=H.filter(function(z){return z!==""&&!Qe(z)}):H=V3(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0||Y===""||Qe(Y)?z:[].concat(ku(z),[Y])},[]);else if(E==="number"){var K=Ooe(B,a.filter(function(z){var Y,te,ae=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l],ge="hide"in z.props?z.props.hide:(te=z.type.defaultProps)===null||te===void 0?void 0:te.hide;return ae===R&&(M||!ge)}),O,s,m);K&&(H=K)}x&&(E==="number"||k!=="auto")&&(q=Of(B,O,"category"))}else x?H=hg(0,$):u&&u[R]&&u[R].hasStack&&E==="number"?H=g==="expand"?[0,1]:X6(u[R].stackGroups,d,f):H=H6(B,a.filter(function(z){var Y=l in z.props?z.props[l]:z.type.defaultProps[l],te="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return Y===R&&(M||!te)}),E,m,!0);if(E==="number")H=HN(p,H,R,s,T),D&&(H=oN(D,H,A));else if(E==="category"&&D){var J=D,I=H.every(function(z){return J.indexOf(z)>=0});I&&(H=J)}}return ve(ve({},j),{},He({},R,ve(ve({},N),{},{axisType:s,domain:H,categoricalDomain:q,duplicateDomain:V,originalDomain:(b=N.domain)!==null&&b!==void 0?b:G,isCategorical:x,layout:m})))},{})},Jpe=function(t,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=Ry(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=W6(m,s),w=-1;return r.reduce(function(b,N){var E=N.type.defaultProps!==void 0?ve(ve({},N.type.defaultProps),N.props):N.props,O=E[l],A=oF("number");if(!b[O]){w++;var C;return j?C=hg(0,x):u&&u[O]&&u[O].hasStack?(C=X6(u[O].stackGroups,d,f),C=HN(p,C,O,s)):(C=oN(A,H6(g,r.filter(function(k){var T,M,R=l in k.props?k.props[l]:(T=k.type.defaultProps)===null||T===void 0?void 0:T[l],B="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return R===O&&!B}),"number",m),a.defaultProps.allowDataOverflow),C=HN(p,C,O,s)),ve(ve({},b),{},He({},O,ve(ve({axisType:s},a.defaultProps),{},{hide:!0,orientation:aa(Ype,"".concat(s,".").concat(w%2),null),domain:C,originalDomain:A,isCategorical:j,layout:m})))}return b},{})},eve=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=ia(m,s),x={};return g&&g.length?x=Qpe(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=Jpe(t,{Axis:s,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},tve=function(t){var n=Ws(t),r=Qi(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:gO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:eg(n,r)}},YI=function(t){var n=t.children,r=t.defaultShowTooltip,a=Qr(n,wu),s=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},nve=function(t){return!t||!t.length?!1:t.some(function(n){var r=ns(n&&n.type);return r&&r.indexOf("Bar")>=0})},KI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},rve=function(t,n){var r=t.props,a=t.graphicalItems,s=t.xAxisMap,l=s===void 0?{}:s,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=Qr(p,wu),j=Qr(p,al),w=Object.keys(d).reduce(function(C,k){var T=d[k],M=T.orientation;return!T.mirror&&!T.hide?ve(ve({},C),{},He({},M,C[M]+T.width)):C},{left:g.left||0,right:g.right||0}),b=Object.keys(l).reduce(function(C,k){var T=l[k],M=T.orientation;return!T.mirror&&!T.hide?ve(ve({},C),{},He({},M,aa(C,"".concat(M))+T.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ve(ve({},b),w),E=N.bottom;x&&(N.bottom+=x.props.height||wu.defaultProps.height),j&&n&&(N=Noe(N,a,r,n));var O=f-N.left-N.right,A=m-N.top-N.bottom;return ve(ve({brushBottom:E},N),{},{width:Math.max(O,0),height:Math.max(A,0)})},ave=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},eE=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,s=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,E){var O=E.graphicalItems,A=E.stackGroups,C=E.offset,k=E.updateId,T=E.dataStartIndex,M=E.dataEndIndex,R=N.barSize,B=N.layout,$=N.barGap,H=N.barCategoryGap,V=N.maxBarSize,q=KI(B),G=q.numericAxisName,L=q.cateAxisName,D=nve(O),U=[];return O.forEach(function(K,J){var I=Ry(N.data,{graphicalItems:[K],dataStartIndex:T,dataEndIndex:M}),z=K.type.defaultProps!==void 0?ve(ve({},K.type.defaultProps),K.props):K.props,Y=z.dataKey,te=z.maxBarSize,ae=z["".concat(G,"Id")],ge=z["".concat(L,"Id")],ee={},Se=d.reduce(function(Tt,Sn){var le=E["".concat(Sn.axisType,"Map")],ue=z["".concat(Sn.axisType,"Id")];le&&le[ue]||Sn.axisType==="zAxis"||pr(!1);var Ve=le[ue];return ve(ve({},Tt),{},He(He({},Sn.axisType,Ve),"".concat(Sn.axisType,"Ticks"),Qi(Ve)))},ee),re=Se[L],we=Se["".concat(L,"Ticks")],je=A&&A[ae]&&A[ae].hasStack&&$oe(K,A[ae].stackGroups),fe=ns(K.type).indexOf("Bar")>=0,Le=eg(re,we),Oe=[],We=D&&Soe({barSize:R,stackGroups:A,totalSize:ave(Se,L)});if(fe){var be,Ae,ke=Qe(te)?V:te,Qt=(be=(Ae=eg(re,we,!0))!==null&&Ae!==void 0?Ae:ke)!==null&&be!==void 0?be:0;Oe=_oe({barGap:$,barCategoryGap:H,bandSize:Qt!==Le?Qt:Le,sizeList:We[ge],maxBarSize:ke}),Qt!==Le&&(Oe=Oe.map(function(Tt){return ve(ve({},Tt),{},{position:ve(ve({},Tt.position),{},{offset:Tt.position.offset-Qt/2})})}))}var St=K&&K.type&&K.type.getComposedData;St&&U.push({props:ve(ve({},St(ve(ve({},Se),{},{displayedData:I,props:N,dataKey:Y,item:K,bandSize:Le,barPosition:Oe,offset:C,stackedData:je,layout:B,dataStartIndex:T,dataEndIndex:M}))),{},He(He(He({key:K.key||"item-".concat(J)},G,Se[G]),L,Se[L]),"animationId",k)),childIndex:EJ(K,N.children),item:K})}),U},x=function(N,E){var O=N.props,A=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!sR({props:O}))return null;var T=O.children,M=O.layout,R=O.stackOffset,B=O.data,$=O.reverseStackOrder,H=KI(M),V=H.numericAxisName,q=H.cateAxisName,G=ia(T,r),L=Roe(B,G,"".concat(V,"Id"),"".concat(q,"Id"),R,$),D=d.reduce(function(z,Y){var te="".concat(Y.axisType,"Map");return ve(ve({},z),{},He({},te,eve(O,ve(ve({},Y),{},{graphicalItems:G,stackGroups:Y.axisType===V&&L,dataStartIndex:A,dataEndIndex:C}))))},{}),U=rve(ve(ve({},D),{},{props:O,graphicalItems:G}),E?.legendBBox);Object.keys(D).forEach(function(z){D[z]=m(O,D[z],U,z.replace("Map",""),n)});var K=D["".concat(q,"Map")],J=tve(K),I=g(O,ve(ve({},D),{},{dataStartIndex:A,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:L,offset:U}));return ve(ve({formattedGraphicalItems:I,graphicalItems:G,offset:U,stackGroups:L},J),D)},j=(function(b){function N(E){var O,A,C;return Ipe(this,N),C=zpe(this,N,[E]),He(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),He(C,"accessibilityManager",new Spe),He(C,"handleLegendBBoxUpdate",function(k){if(k){var T=C.state,M=T.dataStartIndex,R=T.dataEndIndex,B=T.updateId;C.setState(ve({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:R,updateId:B},ve(ve({},C.state),{},{legendBBox:k}))))}}),He(C,"handleReceiveSyncEvent",function(k,T,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(T)}}),He(C,"handleBrushChange",function(k){var T=k.startIndex,M=k.endIndex;if(T!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var R=C.state.updateId;C.setState(function(){return ve({dataStartIndex:T,dataEndIndex:M},x({props:C.props,dataStartIndex:T,dataEndIndex:M,updateId:R},C.state))}),C.triggerSyncEvent({dataStartIndex:T,dataEndIndex:M})}}),He(C,"handleMouseEnter",function(k){var T=C.getMouseInfo(k);if(T){var M=ve(ve({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseEnter;Ke(R)&&R(M,k)}}),He(C,"triggeredAfterMouseMove",function(k){var T=C.getMouseInfo(k),M=T?ve(ve({},T),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseMove;Ke(R)&&R(M,k)}),He(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),He(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),He(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),He(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var T={isTooltipActive:!1};C.setState(T),C.triggerSyncEvent(T);var M=C.props.onMouseLeave;Ke(M)&&M(T,k)}),He(C,"handleOuterEvent",function(k){var T=OJ(k),M=aa(C.props,"".concat(T));if(T&&Ke(M)){var R,B;/.*touch.*/i.test(T)?B=C.getMouseInfo(k.changedTouches[0]):B=C.getMouseInfo(k),M((R=B)!==null&&R!==void 0?R:{},k)}}),He(C,"handleClick",function(k){var T=C.getMouseInfo(k);if(T){var M=ve(ve({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onClick;Ke(R)&&R(M,k)}}),He(C,"handleMouseDown",function(k){var T=C.props.onMouseDown;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleMouseUp",function(k){var T=C.props.onMouseUp;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),He(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),He(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),He(C,"handleDoubleClick",function(k){var T=C.props.onDoubleClick;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleContextMenu",function(k){var T=C.props.onContextMenu;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&GS.emit(YS,C.props.syncId,k,C.eventEmitterSymbol)}),He(C,"applySyncEvent",function(k){var T=C.props,M=T.layout,R=T.syncMethod,B=C.state.updateId,$=k.dataStartIndex,H=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ve({dataStartIndex:$,dataEndIndex:H},x({props:C.props,dataStartIndex:$,dataEndIndex:H,updateId:B},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,q=k.chartY,G=k.activeTooltipIndex,L=C.state,D=L.offset,U=L.tooltipTicks;if(!D)return;if(typeof R=="function")G=R(U,k);else if(R==="value"){G=-1;for(var K=0;K=0){var je,fe;if(V.dataKey&&!V.allowDuplicatedCategory){var Le=typeof V.dataKey=="function"?we:"payload.".concat(V.dataKey.toString());je=Av(K,Le,G),fe=J&&I&&Av(I,Le,G)}else je=K?.[q],fe=J&&I&&I[q];if(ge||ae){var Oe=k.props.activeIndex!==void 0?k.props.activeIndex:q;return[y.cloneElement(k,ve(ve(ve({},R.props),Se),{},{activeIndex:Oe})),null,null]}if(!Qe(je))return[re].concat(ku(C.renderActivePoints({item:R,activePoint:je,basePoint:fe,childIndex:q,isRange:J})))}else{var We,be=(We=C.getItemByXY(C.state.activeCoordinate))!==null&&We!==void 0?We:{graphicalItem:re},Ae=be.graphicalItem,ke=Ae.item,Qt=ke===void 0?k:ke,St=Ae.childIndex,Tt=ve(ve(ve({},R.props),Se),{},{activeIndex:St});return[y.cloneElement(Qt,Tt),null,null]}return J?[re,null,null]:[re,null]}),He(C,"renderCustomized",function(k,T,M){return y.cloneElement(k,ve(ve({key:"recharts-customized-".concat(M)},C.props),C.state))}),He(C,"renderMap",{CartesianGrid:{handler:Vp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:Vp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:Vp},YAxis:{handler:Vp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((O=E.id)!==null&&O!==void 0?O:Wu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=qz(C.triggeredAfterMouseMove,(A=E.throttleDelay)!==null&&A!==void 0?A:1e3/60),C.state={},C}return Upe(N,b),Bpe(N,[{key:"componentDidMount",value:function(){var O,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(O=this.props.margin.left)!==null&&O!==void 0?O:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var O=this.props,A=O.children,C=O.data,k=O.height,T=O.layout,M=Qr(A,ii);if(M){var R=M.props.defaultIndex;if(!(typeof R!="number"||R<0||R>this.state.tooltipTicks.length-1)){var B=this.state.tooltipTicks[R]&&this.state.tooltipTicks[R].value,$=GN(this.state,C,R,B),H=this.state.tooltipTicks[R].coordinate,V=(this.state.offset.top+k)/2,q=T==="horizontal",G=q?{x:H,y:V}:{y:H,x:V},L=this.state.formattedGraphicalItems.find(function(U){var K=U.item;return K.type.name==="Scatter"});L&&(G=ve(ve({},G),L.props.points[R].tooltipPosition),$=L.props.points[R].tooltipPayload);var D={activeTooltipIndex:R,isTooltipActive:!0,activeLabel:B,activePayload:$,activeCoordinate:G};this.setState(D),this.renderCursor(M),this.accessibilityManager.setIndex(R)}}}},{key:"getSnapshotBeforeUpdate",value:function(O,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==O.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==O.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(O){A_([Qr(O.children,ii)],[Qr(this.props.children,ii)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var O=Qr(this.props.children,ii);if(O&&typeof O.props.shared=="boolean"){var A=O.props.shared?"axis":"item";return u.indexOf(A)>=0?A:s}return s}},{key:"getMouseInfo",value:function(O){if(!this.container)return null;var A=this.container,C=A.getBoundingClientRect(),k=pre(C),T={chartX:Math.round(O.pageX-k.left),chartY:Math.round(O.pageY-k.top)},M=C.width/A.offsetWidth||1,R=this.inRange(T.chartX,T.chartY,M);if(!R)return null;var B=this.state,$=B.xAxisMap,H=B.yAxisMap,V=this.getTooltipEventType(),q=GI(this.state,this.props.data,this.props.layout,R);if(V!=="axis"&&$&&H){var G=Ws($).scale,L=Ws(H).scale,D=G&&G.invert?G.invert(T.chartX):null,U=L&&L.invert?L.invert(T.chartY):null;return ve(ve({},T),{},{xValue:D,yValue:U},q)}return q?ve(ve({},T),q):null}},{key:"inRange",value:function(O,A){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,T=O/C,M=A/C;if(k==="horizontal"||k==="vertical"){var R=this.state.offset,B=T>=R.left&&T<=R.left+R.width&&M>=R.top&&M<=R.top+R.height;return B?{x:T,y:M}:null}var $=this.state,H=$.angleAxisMap,V=$.radiusAxisMap;if(H&&V){var q=Ws(H);return K3({x:T,y:M},q)}return null}},{key:"parseEventsOfWrapper",value:function(){var O=this.props.children,A=this.getTooltipEventType(),C=Qr(O,ii),k={};C&&A==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var T=Tv(this.props,this.handleOuterEvent);return ve(ve({},T),k)}},{key:"addListener",value:function(){GS.on(YS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){GS.removeListener(YS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(O,A,C){for(var k=this.state.formattedGraphicalItems,T=0,M=k.length;T");return e}const Dc=y.forwardRef(({id:e,className:t,children:n,config:r,...a},s)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(lF.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:s,className:ce("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(lve,{id:u,config:r}),i.jsx(lre,{children:n})]})})});Dc.displayName="Chart";const lve=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(ove).map(([r,a])=>` + the props "valueKey" will be deprecated in 1.1.0`),N=p);var E=a.filter(function(M){return In(M,N,0)!==0}).length,O=(b>=360?E:E-1)*d,A=b-E*x-O,C=a.reduce(function(M,R){var B=In(R,N,0);return M+(Ce(B)?B:0)},0),k;if(C>0){var T;k=a.map(function(M,R){var B=In(M,N,0),$=In(M,m,R),H=(Ce(B)?B:0)/C,V;R?V=T.endAngle+jr(w)*d*(B!==0?1:0):V=l;var q=V+jr(w)*((B!==0?x:0)+H*A),G=(V+q)/2,L=(j.innerRadius+j.outerRadius)/2,D=[{name:$,value:B,payload:M,dataKey:N,type:g}],U=Zt(j.cx,j.cy,L,G);return T=Yt(Yt(Yt({percent:H,cornerRadius:s,name:$,tooltipPayload:D,midAngle:G,middleRadius:L,tooltipPosition:U},M),j),{},{value:In(M,N),startAngle:V,endAngle:q,payload:M,paddingAngle:jr(w)*d}),T})}return Yt(Yt({},j),{},{sectors:k,data:a})});var TS,J$;function cfe(){if(J$)return TS;J$=1;var e=Math.ceil,t=Math.max;function n(r,a,s,l){for(var u=-1,d=t(e((a-r)/(s||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=s;return f}return TS=n,TS}var kS,eI;function yq(){if(eI)return kS;eI=1;var e=zz(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var s=a<0?-1:1;return s*n}return a===a?a:0}return kS=r,kS}var MS,tI;function ufe(){if(tI)return MS;tI=1;var e=cfe(),t=cy(),n=yq();function r(a){return function(s,l,u){return u&&typeof u!="number"&&t(s,l,u)&&(l=u=void 0),s=n(s),l===void 0?(l=s,s=0):l=n(l),u=u===void 0?s0&&r.handleDrag(a.changedTouches[0])}),Zr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:s,startIndex:u})}),r.detachDragEndListener()}),Zr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Zr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Zr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Zr(r,"handleSlideDragStart",function(a){var s=oI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return jfe(t,e),yfe(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,s),g=Math.max(a,s),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,l=a.tickFormatter,u=a.dataKey,d=In(s[r],u,r);return Ke(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,w=r.pageX-s;w>0?w=Math.min(w,f+m-p-u,f+m-p-l):w<0&&(w=Math.max(w,f-l,f-u));var b=this.getIndex({startX:l+w,endX:u+w});(b.startIndex!==g||b.endIndex!==x)&&j&&j(b),this.setState({startX:l+w,endX:u+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=oI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,w=m.gap,b=m.data,N={startX:this.state.startX,endX:this.state.endX},E=r.pageX-s;E>0?E=Math.min(E,p+g-x-f):E<0&&(E=Math.max(E,p-f)),N[l]=f+E;var O=this.getIndex(N),A=O.startIndex,C=O.endIndex,k=function(){var M=b.length-1;return l==="startX"&&(u>d?A%w===0:C%w===0)||ud?C%w===0:A%w===0)||u>d&&C===M};this.setState(Zr(Zr({},l,f+E),"brushMoveStartX",r.pageX),function(){j&&k()&&j(O)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Zr({},a,x),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:s,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:s,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,w=d.startIndex,b=d.endIndex,N=Math.max(r,this.props.x),E=RS(RS({},qe(this.props,!1)),{},{x:N,y:f,width:m,height:p}),O=x||"Min value: ".concat((s=j[w])===null||s===void 0?void 0:s.name,", Max value: ").concat((l=j[b])===null||l===void 0?void 0:l.name);return W.createElement(xt,{tabIndex:0,role:"slider","aria-label":O,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,E))}},{key:"renderSlide",value:function(r,a){var s=this.props,l=s.y,u=s.height,d=s.stroke,f=s.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(xt,{className:"recharts-brush-texts"},W.createElement(ml,mg({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(ml,mg({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,w=g.isTextActive,b=g.isSlideMoving,N=g.isTravellerMoving,E=g.isTravellerFocused;if(!a||!a.length||!Ce(u)||!Ce(d)||!Ce(f)||!Ce(m)||f<=0||m<=0)return null;var O=Je("recharts-brush",s),A=W.Children.count(l)===1,C=vfe("userSelect","none");return W.createElement(xt,{className:O,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(w||b||N||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(s+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:s,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return W.isValidElement(r)?s=W.cloneElement(r,a):Ke(r)?s=r(a):s=t.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(s!==a.prevData||f!==a.prevUpdateId)return RS({prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},s&&s.length?_fe({data:s,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,l=0,u=s-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Zr(wu,"displayName","Brush");Zr(wu,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var DS,lI;function Nfe(){if(lI)return DS;lI=1;var e=gO();function t(n,r){var a;return e(n,function(s,l,u){return a=r(s,l,u),!a}),!!a}return DS=t,DS}var $S,cI;function Cfe(){if(cI)return $S;cI=1;var e=gz(),t=_i(),n=Nfe(),r=qr(),a=cy();function s(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return $S=s,$S}var Ofe=Cfe();const Efe=At(Ofe);var vi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},IS,uI;function Afe(){if(uI)return IS;uI=1;var e=Dz();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return IS=t,IS}var LS,dI;function Tfe(){if(dI)return LS;dI=1;var e=Afe(),t=Pz(),n=_i();function r(a,s){var l={};return s=n(s,3),t(a,function(u,d,f){e(l,d,s(u,d,f))}),l}return LS=r,LS}var kfe=Tfe();const Mfe=At(kfe);var BS,fI;function Pfe(){if(fI)return BS;fI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ffe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ufe(e,t){var n=e.x,r=e.y,a=qfe(e,Ife),s="".concat(n),l=parseInt(s,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return uf(uf(uf(uf(uf({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function vI(e){return W.createElement(pq,AN({shapeType:"rectangle",propTransformer:Ufe,activeClassName:"recharts-active-bar"},e))}var Hfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var s=Ce(r)||hJ(r);return s?t(r,a):(s||pr(!1),n)}},Wfe=["value","background"],Sq;function ju(e){"@babel/helpers - typeof";return ju=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ju(e)}function Vfe(e,t){if(e==null)return{};var n=Gfe(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Gfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vg(){return vg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(q)0&&(V=Math.min((te||0)-(q[ae-1]||0),V))}),Number.isFinite(V)){var G=V/H,L=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(T=G*L/2),w.padding==="no-gap"){var D=Sr(t.barCategoryGap,G*L),U=G*L/2;T=U-D-(U-D)/L*D}}}a==="xAxis"?M=[r.left+(O.left||0)+(T||0),r.left+r.width-(O.right||0)-(T||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(O.bottom||0),r.top+(O.top||0)]:[r.top+(O.top||0)+(T||0),r.top+r.height-(O.bottom||0)-(T||0)]:M=w.range,C&&(M=[M[1],M[0]]);var K=G6(w,s,g),J=K.scale,I=K.realScaleType;J.domain(N).range(M),Y6(J);var z=K6(J,Ba(Ba({},w),{},{realScaleType:I}));a==="xAxis"?($=b==="top"&&!A||b==="bottom"&&A,R=r.left,B=p[k]-$*w.height):a==="yAxis"&&($=b==="left"&&!A||b==="right"&&A,R=p[k]-$*w.width,B=r.top);var Y=Ba(Ba(Ba({},w),z),{},{realScaleType:I,x:R,y:B,scale:J,width:a==="xAxis"?r.width:w.width,height:a==="yAxis"?r.height:w.height});return Y.bandSize=eg(Y,z),!w.hide&&a==="xAxis"?p[k]+=($?-1:1)*Y.height:w.hide||(p[k]+=($?-1:1)*Y.width),Ba(Ba({},x),{},Ay({},j,Y))},{})},Eq=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return{x:Math.min(r,s),y:Math.min(a,l),width:Math.abs(s-r),height:Math.abs(l-a)}},ahe=function(t){var n=t.x1,r=t.y1,a=t.x2,s=t.y2;return Eq({x:n,y:r},{x:a,y:s})},Aq=(function(){function e(t){the(this,e),this.scale=t}return nhe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();Ay(Aq,"EPS",1e-4);var VO=function(t){var n=Object.keys(t).reduce(function(r,a){return Ba(Ba({},r),{},Ay({},a,Aq.create(t[a])))},{});return Ba(Ba({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=s.bandAware,u=s.position;return Mfe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return jq(a,function(s,l){return n[l].isInRange(s)})}})};function ihe(e){return(e%180+180)%180}var she=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=ihe(a),l=s*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?s[m]:m]:void 0}}return FS=r,FS}var US,jI;function lhe(){if(jI)return US;jI=1;var e=yq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return US=t,US}var HS,SI;function che(){if(SI)return HS;SI=1;var e=Ez(),t=_i(),n=lhe(),r=Math.max;function a(s,l,u){var d=s==null?0:s.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(s,t(l,3),f)}return HS=a,HS}var WS,_I;function uhe(){if(_I)return WS;_I=1;var e=ohe(),t=che(),n=e(t);return WS=n,WS}var dhe=uhe();const fhe=At(dhe);var hhe=HB();const mhe=At(hhe);var phe=mhe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),GO=y.createContext(void 0),YO=y.createContext(void 0),Tq=y.createContext(void 0),kq=y.createContext({}),Mq=y.createContext(void 0),Pq=y.createContext(0),Rq=y.createContext(0),NI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=phe(s);return W.createElement(GO.Provider,{value:r},W.createElement(YO.Provider,{value:a},W.createElement(kq.Provider,{value:s},W.createElement(Tq.Provider,{value:m},W.createElement(Mq.Provider,{value:l},W.createElement(Pq.Provider,{value:f},W.createElement(Rq.Provider,{value:d},u)))))))},vhe=function(){return y.useContext(Mq)},Dq=function(t){var n=y.useContext(GO);n==null&&pr(!1);var r=n[t];return r==null&&pr(!1),r},ghe=function(){var t=y.useContext(GO);return Ws(t)},yhe=function(){var t=y.useContext(YO),n=fhe(t,function(r){return jq(r.domain,Number.isFinite)});return n||Ws(t)},$q=function(t){var n=y.useContext(YO);n==null&&pr(!1);var r=n[t];return r==null&&pr(!1),r},xhe=function(){var t=y.useContext(Tq);return t},bhe=function(){return y.useContext(kq)},KO=function(){return y.useContext(Rq)},XO=function(){return y.useContext(Pq)};function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function whe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jhe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var s=n();return e*(t-e*s/2-r)>=0&&e*(t+e*s/2-a)<=0}function rme(e,t){return Uq(e,t+1)}function ame(e,t,n,r,a){for(var s=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Uq(r,f)};var w=d,b,N=function(){return b===void 0&&(b=n(j,w)),b},E=j.coordinate,O=d===0||wg(e,E,N,m,u);O||(d=0,m=l,f+=1),O&&(m=E+e*(N()/2+a),d+=f)},g;f<=s.length;)if(g=p(),g)return g.v;return[]}function hh(e){"@babel/helpers - typeof";return hh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hh(e)}function PI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t0?x.coordinate-b*e:x.coordinate})}else s[g]=x=ur(ur({},x),{},{tickCoord:x.coordinate});var N=wg(e,x.tickCoord,w,u,d);N&&(d=x.tickCoord-e*(w()/2+a),s[g]=ur(ur({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return s}function cme(e,t,n,r,a,s){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(s){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=ur(ur({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=wg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=ur(ur({},m),{},{isShow:!0}))}for(var j=s?u-1:u,w=function(E){var O=l[E],A,C=function(){return A===void 0&&(A=n(O,E)),A};if(E===0){var k=e*(O.coordinate-e*C()/2-d);l[E]=O=ur(ur({},O),{},{tickCoord:k<0?O.coordinate-k*e:O.coordinate})}else l[E]=O=ur(ur({},O),{},{tickCoord:O.coordinate});var T=wg(e,O.tickCoord,C,d,f);T&&(d=O.tickCoord+e*(C()/2+a),l[E]=ur(ur({},O),{},{isShow:!0}))},b=0;b=2?jr(a[1].coordinate-a[0].coordinate):1,N=nme(s,b,x);return d==="equidistantPreserveStart"?ame(b,N,w,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=cme(b,N,w,a,l,d==="preserveStartEnd"):g=lme(b,N,w,a,l),g.filter(function(E){return E.isShow}))}var ume=["viewBox"],dme=["viewBox"],fme=["ticks"];function Cu(e){"@babel/helpers - typeof";return Cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cu(e)}function Hc(){return Hc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function hme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function mme(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function DI(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(xt,{className:Je("recharts-cartesian-axis",f),ref:function(b){r.layerReference=b}},s&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),Vn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var l,u=Je(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,Dn(Dn({},a),{},{className:u})):Ke(r)?l=r(Dn(Dn({},a),{},{className:u})):l=W.createElement(ml,Hc({},a,{className:"recharts-cartesian-axis-tick-value"}),s),l}}])})(y.Component);eE(Xu,"displayName","CartesianAxis");eE(Xu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var wme=["x1","y1","x2","y2","key"],jme=["offset"];function vl(e){"@babel/helpers - typeof";return vl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vl(e)}function $I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function fr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Cme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Ome=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,s=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:s,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function Vq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(Ke(e))n=e(t);else{var r=t.x1,a=t.y1,s=t.x2,l=t.y2,u=t.key,d=II(t,wme),f=qe(d,!1);f.offset;var m=II(f,jme);n=W.createElement("line",Qo({},m,{x1:r,y1:a,x2:s,y2:l,fill:"none",key:u}))}return n}function Eme(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,s=e.horizontalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return Vq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function Ame(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,s=e.verticalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return Vq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Tme(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,s=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?a+l-g:m[x+1]-g;if(w<=0)return null;var b=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:w,width:s,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function kme(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,s=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+s-s)}).sort(function(g,x){return g-x});s!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?s+u-g:m[x+1]-g;if(w<=0)return null;var b=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:w,height:d,stroke:"none",fill:r[b],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Mme=function(t,n){var r=t.xAxis,a=t.width,s=t.height,l=t.offset;return V6(JO(fr(fr(fr({},Xu.defaultProps),r),{},{ticks:Qi(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.left,l.left+l.width,n)},Pme=function(t,n){var r=t.yAxis,a=t.width,s=t.height,l=t.offset;return V6(JO(fr(fr(fr({},Xu.defaultProps),r),{},{ticks:Qi(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.top,l.top+l.height,n)},Oc={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function gf(e){var t,n,r,a,s,l,u=KO(),d=XO(),f=bhe(),m=fr(fr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Oc.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Oc.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Oc.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:Oc.horizontalFill,vertical:(s=e.vertical)!==null&&s!==void 0?s:Oc.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:Oc.verticalFill,x:Ce(e.x)?e.x:f.left,y:Ce(e.y)?e.y:f.top,width:Ce(e.width)?e.width:f.width,height:Ce(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,w=m.syncWithTicks,b=m.horizontalValues,N=m.verticalValues,E=ghe(),O=yhe();if(!Ce(x)||x<=0||!Ce(j)||j<=0||!Ce(p)||p!==+p||!Ce(g)||g!==+g)return null;var A=m.verticalCoordinatesGenerator||Mme,C=m.horizontalCoordinatesGenerator||Pme,k=m.horizontalPoints,T=m.verticalPoints;if((!k||!k.length)&&Ke(C)){var M=b&&b.length,R=C({yAxis:O?fr(fr({},O),{},{ticks:M?b:O.ticks}):void 0,width:u,height:d,offset:f},M?!0:w);Ha(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(vl(R),"]")),Array.isArray(R)&&(k=R)}if((!T||!T.length)&&Ke(A)){var B=N&&N.length,$=A({xAxis:E?fr(fr({},E),{},{ticks:B?N:E.ticks}):void 0,width:u,height:d,offset:f},B?!0:w);Ha(Array.isArray($),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(vl($),"]")),Array.isArray($)&&(T=$)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Ome,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(Eme,Qo({},m,{offset:f,horizontalPoints:k,xAxis:E,yAxis:O})),W.createElement(Ame,Qo({},m,{offset:f,verticalPoints:T,xAxis:E,yAxis:O})),W.createElement(Tme,Qo({},m,{horizontalPoints:k})),W.createElement(kme,Qo({},m,{verticalPoints:T})))}gf.displayName="CartesianGrid";var Rme=["type","layout","connectNulls","ref"],Dme=["key"];function Ou(e){"@babel/helpers - typeof";return Ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(e)}function LI(e,t){if(e==null)return{};var n=$me(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $me(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function kf(){return kf=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Ec(d.slice(0,j)),[p-w]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(Ec(t.repeat(d,m)),Ec(x),b).map(function(N){return"".concat(N,"px")}).join(", ")}),za(n,"id",Wu("recharts-line-")),za(n,"pathRef",function(l){n.mainCurve=l}),za(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),za(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Vme(t,e),Fme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.points,u=s.xAxis,d=s.yAxis,f=s.layout,m=s.children,p=ia(m,Wh);if(!p)return null;var g=function(w,b){return{x:w.x,y:w.y,value:w.value,errorVal:In(w.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(xt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,s){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=qe(this.props,!1),g=qe(d,!0),x=f.map(function(w,b){var N=Xr(Xr(Xr({key:"dot-".concat(b),r:3},p),g),{},{index:b,cx:w.x,cy:w.y,value:w.value,dataKey:m,payload:w.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return W.createElement(xt,kf({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,s,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=LI(u,Rme),g=Xr(Xr(Xr({},qe(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(rg,kf({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,w=l.width,b=l.height,N=this.state,E=N.prevPoints,O=N.totalLength;return W.createElement(bi,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(A){var C=A.t;if(E){var k=E.length/u.length,T=u.map(function(H,V){var q=Math.floor(V*k);if(E[q]){var G=E[q],L=ta(G.x,H.x),D=ta(G.y,H.y);return Xr(Xr({},H),{},{x:L(C),y:D(C)})}if(j){var U=ta(w*2,H.x),K=ta(b/2,H.y);return Xr(Xr({},H),{},{x:U(C),y:K(C)})}return Xr(Xr({},H),{},{x:H.x,y:H.y})});return s.renderCurveStatically(T,r,a)}var M=ta(0,O),R=M(C),B;if(d){var $="".concat(d).split(/[,\s]+/gim).map(function(H){return parseFloat(H)});B=s.getStrokeDasharray(R,O,$)}else B=s.generateSimpleStrokeDasharray(O,R);return s.renderCurveStatically(u,r,a,{strokeDasharray:B})})}},{key:"renderCurve",value:function(r,a){var s=this.props,l=s.points,u=s.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Hh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,w=a.isAnimationActive,b=a.id;if(s||!u||!u.length)return null;var N=this.state.isAnimationFinished,E=u.length===1,O=Je("recharts-line",d),A=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=A||C,T=Qe(b)?this.id:b,M=(r=qe(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},R=M.r,B=R===void 0?3:R,$=M.strokeWidth,H=$===void 0?2:$,V=NJ(l)?l:{},q=V.clipDot,G=q===void 0?!0:q,L=B*2+H;return W.createElement(xt,{className:O},A||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(T)},W.createElement("rect",{x:A?g:g-x/2,y:C?p:p-j/2,width:A?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(T)},W.createElement("rect",{x:g-L/2,y:p-L/2,width:x+L,height:j+L}))):null,!E&&this.renderCurve(k,T),this.renderErrorBar(k,T),(E||l)&&this.renderDots(k,G,T),(!w||N)&&as.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Ec(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $pe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ipe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Lpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ce(a)&&Ce(s)?t.slice(a,s+1):[]};function oF(e){return e==="number"?[0,"auto"]:void 0}var YN=function(t,n,r,a){var s=t.graphicalItems,l=t.tooltipAxis,u=Ry(n,t);return r<0||!s||!s.length||r>=u.length?null:s.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=Av(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(ku(d),[Z6(f,g)]):d},[])},GI=function(t,n,r,a){var s=a||{x:t.chartX,y:t.chartY},l=Xpe(s,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=joe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=YN(t,n,m,p),x=Zpe(r,u,m,s);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},Qpe=function(t,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=W6(m,s);return r.reduce(function(j,w){var b,N=w.type.defaultProps!==void 0?ve(ve({},w.type.defaultProps),w.props):w.props,E=N.type,O=N.dataKey,A=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,T=N.ticks,M=N.includeHidden,R=N[l];if(j[R])return j;var B=Ry(t.data,{graphicalItems:a.filter(function(z){var Y,te=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l];return te===R}),dataStartIndex:d,dataEndIndex:f}),$=B.length,H,V,q;_pe(N.domain,A,E)&&(H=lN(N.domain,null,A),x&&(E==="number"||k!=="auto")&&(q=Of(B,O,"category")));var G=oF(E);if(!H||H.length===0){var L,D=(L=N.domain)!==null&&L!==void 0?L:G;if(O){if(H=Of(B,O,E),E==="category"&&x){var U=pJ(H);C&&U?(V=H,H=hg(0,$)):C||(H=V3(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0?z:[].concat(ku(z),[Y])},[]))}else if(E==="category")C?H=H.filter(function(z){return z!==""&&!Qe(z)}):H=V3(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0||Y===""||Qe(Y)?z:[].concat(ku(z),[Y])},[]);else if(E==="number"){var K=Ooe(B,a.filter(function(z){var Y,te,ae=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l],ge="hide"in z.props?z.props.hide:(te=z.type.defaultProps)===null||te===void 0?void 0:te.hide;return ae===R&&(M||!ge)}),O,s,m);K&&(H=K)}x&&(E==="number"||k!=="auto")&&(q=Of(B,O,"category"))}else x?H=hg(0,$):u&&u[R]&&u[R].hasStack&&E==="number"?H=g==="expand"?[0,1]:X6(u[R].stackGroups,d,f):H=H6(B,a.filter(function(z){var Y=l in z.props?z.props[l]:z.type.defaultProps[l],te="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return Y===R&&(M||!te)}),E,m,!0);if(E==="number")H=WN(p,H,R,s,T),D&&(H=lN(D,H,A));else if(E==="category"&&D){var J=D,I=H.every(function(z){return J.indexOf(z)>=0});I&&(H=J)}}return ve(ve({},j),{},He({},R,ve(ve({},N),{},{axisType:s,domain:H,categoricalDomain:q,duplicateDomain:V,originalDomain:(b=N.domain)!==null&&b!==void 0?b:G,isCategorical:x,layout:m})))},{})},Jpe=function(t,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=Ry(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=W6(m,s),w=-1;return r.reduce(function(b,N){var E=N.type.defaultProps!==void 0?ve(ve({},N.type.defaultProps),N.props):N.props,O=E[l],A=oF("number");if(!b[O]){w++;var C;return j?C=hg(0,x):u&&u[O]&&u[O].hasStack?(C=X6(u[O].stackGroups,d,f),C=WN(p,C,O,s)):(C=lN(A,H6(g,r.filter(function(k){var T,M,R=l in k.props?k.props[l]:(T=k.type.defaultProps)===null||T===void 0?void 0:T[l],B="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return R===O&&!B}),"number",m),a.defaultProps.allowDataOverflow),C=WN(p,C,O,s)),ve(ve({},b),{},He({},O,ve(ve({axisType:s},a.defaultProps),{},{hide:!0,orientation:aa(Ype,"".concat(s,".").concat(w%2),null),domain:C,originalDomain:A,isCategorical:j,layout:m})))}return b},{})},eve=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=ia(m,s),x={};return g&&g.length?x=Qpe(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=Jpe(t,{Axis:s,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},tve=function(t){var n=Ws(t),r=Qi(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:yO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:eg(n,r)}},YI=function(t){var n=t.children,r=t.defaultShowTooltip,a=Qr(n,wu),s=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},nve=function(t){return!t||!t.length?!1:t.some(function(n){var r=ns(n&&n.type);return r&&r.indexOf("Bar")>=0})},KI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},rve=function(t,n){var r=t.props,a=t.graphicalItems,s=t.xAxisMap,l=s===void 0?{}:s,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=Qr(p,wu),j=Qr(p,al),w=Object.keys(d).reduce(function(C,k){var T=d[k],M=T.orientation;return!T.mirror&&!T.hide?ve(ve({},C),{},He({},M,C[M]+T.width)):C},{left:g.left||0,right:g.right||0}),b=Object.keys(l).reduce(function(C,k){var T=l[k],M=T.orientation;return!T.mirror&&!T.hide?ve(ve({},C),{},He({},M,aa(C,"".concat(M))+T.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ve(ve({},b),w),E=N.bottom;x&&(N.bottom+=x.props.height||wu.defaultProps.height),j&&n&&(N=Noe(N,a,r,n));var O=f-N.left-N.right,A=m-N.top-N.bottom;return ve(ve({brushBottom:E},N),{},{width:Math.max(O,0),height:Math.max(A,0)})},ave=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},tE=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,s=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,E){var O=E.graphicalItems,A=E.stackGroups,C=E.offset,k=E.updateId,T=E.dataStartIndex,M=E.dataEndIndex,R=N.barSize,B=N.layout,$=N.barGap,H=N.barCategoryGap,V=N.maxBarSize,q=KI(B),G=q.numericAxisName,L=q.cateAxisName,D=nve(O),U=[];return O.forEach(function(K,J){var I=Ry(N.data,{graphicalItems:[K],dataStartIndex:T,dataEndIndex:M}),z=K.type.defaultProps!==void 0?ve(ve({},K.type.defaultProps),K.props):K.props,Y=z.dataKey,te=z.maxBarSize,ae=z["".concat(G,"Id")],ge=z["".concat(L,"Id")],ee={},Se=d.reduce(function(Tt,Sn){var le=E["".concat(Sn.axisType,"Map")],ue=z["".concat(Sn.axisType,"Id")];le&&le[ue]||Sn.axisType==="zAxis"||pr(!1);var Ve=le[ue];return ve(ve({},Tt),{},He(He({},Sn.axisType,Ve),"".concat(Sn.axisType,"Ticks"),Qi(Ve)))},ee),re=Se[L],we=Se["".concat(L,"Ticks")],je=A&&A[ae]&&A[ae].hasStack&&$oe(K,A[ae].stackGroups),fe=ns(K.type).indexOf("Bar")>=0,Le=eg(re,we),Oe=[],We=D&&Soe({barSize:R,stackGroups:A,totalSize:ave(Se,L)});if(fe){var be,Ae,ke=Qe(te)?V:te,Qt=(be=(Ae=eg(re,we,!0))!==null&&Ae!==void 0?Ae:ke)!==null&&be!==void 0?be:0;Oe=_oe({barGap:$,barCategoryGap:H,bandSize:Qt!==Le?Qt:Le,sizeList:We[ge],maxBarSize:ke}),Qt!==Le&&(Oe=Oe.map(function(Tt){return ve(ve({},Tt),{},{position:ve(ve({},Tt.position),{},{offset:Tt.position.offset-Qt/2})})}))}var St=K&&K.type&&K.type.getComposedData;St&&U.push({props:ve(ve({},St(ve(ve({},Se),{},{displayedData:I,props:N,dataKey:Y,item:K,bandSize:Le,barPosition:Oe,offset:C,stackedData:je,layout:B,dataStartIndex:T,dataEndIndex:M}))),{},He(He(He({key:K.key||"item-".concat(J)},G,Se[G]),L,Se[L]),"animationId",k)),childIndex:EJ(K,N.children),item:K})}),U},x=function(N,E){var O=N.props,A=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!sR({props:O}))return null;var T=O.children,M=O.layout,R=O.stackOffset,B=O.data,$=O.reverseStackOrder,H=KI(M),V=H.numericAxisName,q=H.cateAxisName,G=ia(T,r),L=Roe(B,G,"".concat(V,"Id"),"".concat(q,"Id"),R,$),D=d.reduce(function(z,Y){var te="".concat(Y.axisType,"Map");return ve(ve({},z),{},He({},te,eve(O,ve(ve({},Y),{},{graphicalItems:G,stackGroups:Y.axisType===V&&L,dataStartIndex:A,dataEndIndex:C}))))},{}),U=rve(ve(ve({},D),{},{props:O,graphicalItems:G}),E?.legendBBox);Object.keys(D).forEach(function(z){D[z]=m(O,D[z],U,z.replace("Map",""),n)});var K=D["".concat(q,"Map")],J=tve(K),I=g(O,ve(ve({},D),{},{dataStartIndex:A,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:L,offset:U}));return ve(ve({formattedGraphicalItems:I,graphicalItems:G,offset:U,stackGroups:L},J),D)},j=(function(b){function N(E){var O,A,C;return Ipe(this,N),C=zpe(this,N,[E]),He(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),He(C,"accessibilityManager",new Spe),He(C,"handleLegendBBoxUpdate",function(k){if(k){var T=C.state,M=T.dataStartIndex,R=T.dataEndIndex,B=T.updateId;C.setState(ve({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:R,updateId:B},ve(ve({},C.state),{},{legendBBox:k}))))}}),He(C,"handleReceiveSyncEvent",function(k,T,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(T)}}),He(C,"handleBrushChange",function(k){var T=k.startIndex,M=k.endIndex;if(T!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var R=C.state.updateId;C.setState(function(){return ve({dataStartIndex:T,dataEndIndex:M},x({props:C.props,dataStartIndex:T,dataEndIndex:M,updateId:R},C.state))}),C.triggerSyncEvent({dataStartIndex:T,dataEndIndex:M})}}),He(C,"handleMouseEnter",function(k){var T=C.getMouseInfo(k);if(T){var M=ve(ve({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseEnter;Ke(R)&&R(M,k)}}),He(C,"triggeredAfterMouseMove",function(k){var T=C.getMouseInfo(k),M=T?ve(ve({},T),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseMove;Ke(R)&&R(M,k)}),He(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),He(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),He(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),He(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var T={isTooltipActive:!1};C.setState(T),C.triggerSyncEvent(T);var M=C.props.onMouseLeave;Ke(M)&&M(T,k)}),He(C,"handleOuterEvent",function(k){var T=OJ(k),M=aa(C.props,"".concat(T));if(T&&Ke(M)){var R,B;/.*touch.*/i.test(T)?B=C.getMouseInfo(k.changedTouches[0]):B=C.getMouseInfo(k),M((R=B)!==null&&R!==void 0?R:{},k)}}),He(C,"handleClick",function(k){var T=C.getMouseInfo(k);if(T){var M=ve(ve({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onClick;Ke(R)&&R(M,k)}}),He(C,"handleMouseDown",function(k){var T=C.props.onMouseDown;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleMouseUp",function(k){var T=C.props.onMouseUp;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),He(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),He(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),He(C,"handleDoubleClick",function(k){var T=C.props.onDoubleClick;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleContextMenu",function(k){var T=C.props.onContextMenu;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&YS.emit(KS,C.props.syncId,k,C.eventEmitterSymbol)}),He(C,"applySyncEvent",function(k){var T=C.props,M=T.layout,R=T.syncMethod,B=C.state.updateId,$=k.dataStartIndex,H=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ve({dataStartIndex:$,dataEndIndex:H},x({props:C.props,dataStartIndex:$,dataEndIndex:H,updateId:B},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,q=k.chartY,G=k.activeTooltipIndex,L=C.state,D=L.offset,U=L.tooltipTicks;if(!D)return;if(typeof R=="function")G=R(U,k);else if(R==="value"){G=-1;for(var K=0;K=0){var je,fe;if(V.dataKey&&!V.allowDuplicatedCategory){var Le=typeof V.dataKey=="function"?we:"payload.".concat(V.dataKey.toString());je=Av(K,Le,G),fe=J&&I&&Av(I,Le,G)}else je=K?.[q],fe=J&&I&&I[q];if(ge||ae){var Oe=k.props.activeIndex!==void 0?k.props.activeIndex:q;return[y.cloneElement(k,ve(ve(ve({},R.props),Se),{},{activeIndex:Oe})),null,null]}if(!Qe(je))return[re].concat(ku(C.renderActivePoints({item:R,activePoint:je,basePoint:fe,childIndex:q,isRange:J})))}else{var We,be=(We=C.getItemByXY(C.state.activeCoordinate))!==null&&We!==void 0?We:{graphicalItem:re},Ae=be.graphicalItem,ke=Ae.item,Qt=ke===void 0?k:ke,St=Ae.childIndex,Tt=ve(ve(ve({},R.props),Se),{},{activeIndex:St});return[y.cloneElement(Qt,Tt),null,null]}return J?[re,null,null]:[re,null]}),He(C,"renderCustomized",function(k,T,M){return y.cloneElement(k,ve(ve({key:"recharts-customized-".concat(M)},C.props),C.state))}),He(C,"renderMap",{CartesianGrid:{handler:Vp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:Vp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:Vp},YAxis:{handler:Vp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((O=E.id)!==null&&O!==void 0?O:Wu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=qz(C.triggeredAfterMouseMove,(A=E.throttleDelay)!==null&&A!==void 0?A:1e3/60),C.state={},C}return Upe(N,b),Bpe(N,[{key:"componentDidMount",value:function(){var O,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(O=this.props.margin.left)!==null&&O!==void 0?O:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var O=this.props,A=O.children,C=O.data,k=O.height,T=O.layout,M=Qr(A,ii);if(M){var R=M.props.defaultIndex;if(!(typeof R!="number"||R<0||R>this.state.tooltipTicks.length-1)){var B=this.state.tooltipTicks[R]&&this.state.tooltipTicks[R].value,$=YN(this.state,C,R,B),H=this.state.tooltipTicks[R].coordinate,V=(this.state.offset.top+k)/2,q=T==="horizontal",G=q?{x:H,y:V}:{y:H,x:V},L=this.state.formattedGraphicalItems.find(function(U){var K=U.item;return K.type.name==="Scatter"});L&&(G=ve(ve({},G),L.props.points[R].tooltipPosition),$=L.props.points[R].tooltipPayload);var D={activeTooltipIndex:R,isTooltipActive:!0,activeLabel:B,activePayload:$,activeCoordinate:G};this.setState(D),this.renderCursor(M),this.accessibilityManager.setIndex(R)}}}},{key:"getSnapshotBeforeUpdate",value:function(O,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==O.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==O.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(O){T_([Qr(O.children,ii)],[Qr(this.props.children,ii)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var O=Qr(this.props.children,ii);if(O&&typeof O.props.shared=="boolean"){var A=O.props.shared?"axis":"item";return u.indexOf(A)>=0?A:s}return s}},{key:"getMouseInfo",value:function(O){if(!this.container)return null;var A=this.container,C=A.getBoundingClientRect(),k=pre(C),T={chartX:Math.round(O.pageX-k.left),chartY:Math.round(O.pageY-k.top)},M=C.width/A.offsetWidth||1,R=this.inRange(T.chartX,T.chartY,M);if(!R)return null;var B=this.state,$=B.xAxisMap,H=B.yAxisMap,V=this.getTooltipEventType(),q=GI(this.state,this.props.data,this.props.layout,R);if(V!=="axis"&&$&&H){var G=Ws($).scale,L=Ws(H).scale,D=G&&G.invert?G.invert(T.chartX):null,U=L&&L.invert?L.invert(T.chartY):null;return ve(ve({},T),{},{xValue:D,yValue:U},q)}return q?ve(ve({},T),q):null}},{key:"inRange",value:function(O,A){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,T=O/C,M=A/C;if(k==="horizontal"||k==="vertical"){var R=this.state.offset,B=T>=R.left&&T<=R.left+R.width&&M>=R.top&&M<=R.top+R.height;return B?{x:T,y:M}:null}var $=this.state,H=$.angleAxisMap,V=$.radiusAxisMap;if(H&&V){var q=Ws(H);return K3({x:T,y:M},q)}return null}},{key:"parseEventsOfWrapper",value:function(){var O=this.props.children,A=this.getTooltipEventType(),C=Qr(O,ii),k={};C&&A==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var T=Tv(this.props,this.handleOuterEvent);return ve(ve({},T),k)}},{key:"addListener",value:function(){YS.on(KS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){YS.removeListener(KS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(O,A,C){for(var k=this.state.formattedGraphicalItems,T=0,M=k.length;T");return e}const Dc=y.forwardRef(({id:e,className:t,children:n,config:r,...a},s)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(lF.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:s,className:ce("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(lve,{id:u,config:r}),i.jsx(lre,{children:n})]})})});Dc.displayName="Chart";const lve=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(ove).map(([r,a])=>` ${a} [data-chart=${e}] { ${n.map(([s,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${s}: ${u};`:null}).join(` `)} } `).join(` -`)}}):null},df=ii,$c=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:s=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=cF(),w=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,E=`${g||N?.dataKey||N?.name||"value"}`,O=YN(j,N,E),A=!g&&typeof l=="string"?j[l]?.label||l:O?.label;return u?i.jsx("div",{className:ce("font-medium",d),children:u(A,t)}):A?i.jsx("div",{className:ce("font-medium",d),children:A}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const b=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:ce("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[b?null:w,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,E)=>{const O=`${p||N.name||N.dataKey||"value"}`,A=YN(j,N,O),C=m||N.payload.fill||N.color;return i.jsx("div",{className:ce("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,E,N.payload):i.jsxs(i.Fragment,{children:[A?.icon?i.jsx(A.icon,{}):!s&&i.jsx("div",{className:ce("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":b&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:ce("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[b?w:null,i.jsx("span",{className:"text-muted-foreground",children:A?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});$c.displayName="ChartTooltip";const cve=al,uF=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},s)=>{const{config:l}=cF();return n?.length?i.jsx("div",{ref:s,className:ce("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=YN(l,u,d);return i.jsxs("div",{className:ce("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});uF.displayName="ChartLegend";function YN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const uve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),dve=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),XI=e=>{const t=dve(e);return t.charAt(0).toUpperCase()+t.slice(1)},dF=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),fve=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var hve={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const mve=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...hve,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:dF("lucide",a),...!s&&!fve(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(s)?s:[s]]));const Ee=(e,t)=>{const n=y.forwardRef(({className:r,...a},s)=>y.createElement(mve,{ref:s,iconNode:t,className:dF(`lucide-${uve(XI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=XI(e),n};const pve=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],vve=Ee("activity",pve);const gve=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],fF=Ee("arrow-left",gve);const yve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],xve=Ee("arrow-right",yve);const bve=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ZI=Ee("ban",bve);const wve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],jve=Ee("book-open",wve);const Sve=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],_ve=Ee("bot",Sve);const Nve=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],hF=Ee("boxes",Nve);const Cve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],QI=Ee("calendar",Cve);const Ove=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],Eve=Ee("chart-column",Ove);const Ave=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ol=Ee("check",Ave);const Tve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],vh=Ee("chevron-down",Tve);const kve=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],tE=Ee("chevron-left",kve);const Mve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],nE=Ee("chevron-right",Mve);const Pve=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],KN=Ee("chevron-up",Pve);const Rve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],Dve=Ee("chevrons-up-down",Rve);const $ve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],gl=Ee("circle-alert",$ve);const Ive=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Pr=Ee("circle-check",Ive);const Lve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Bve=Ee("circle-question-mark",Lve);const zve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],mF=Ee("circle-user",zve);const qve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],XN=Ee("circle-x",qve);const Fve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Uve=Ee("circle",Fve);const Hve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ll=Ee("clock",Hve);const Wve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],ZN=Ee("copy",Wve);const Vve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Gve=Ee("database",Vve);const Yve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Kve=Ee("dollar-sign",Yve);const Xve=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],QN=Ee("download",Xve);const Zve=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Mf=Ee("external-link",Zve);const Qve=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],JN=Ee("eye-off",Qve);const Jve=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Va=Ee("eye",Jve);const ege=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],Og=Ee("file-search",ege);const tge=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],rE=Ee("file-text",tge);const nge=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],eC=Ee("funnel",nge);const rge=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Eg=Ee("hash",rge);const age=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Ag=Ee("house",age);const ige=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Mu=Ee("info",ige);const sge=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],oge=Ee("key",sge);const lge=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],gh=Ee("loader-circle",lge);const cge=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],JI=Ee("lock",cge);const uge=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],eL=Ee("log-out",uge);const dge=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],fge=Ee("menu",dge);const hge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Gh=Ee("message-square",hge);const mge=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],tC=Ee("moon",mge);const pge=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Tg=Ee("package",pge);const vge=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],pF=Ee("palette",vge);const gge=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],yge=Ee("pause",gge);const xge=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Pu=Ee("pencil",xge);const bge=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],wge=Ee("play",bge);const jge=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ir=Ee("plus",jge);const Sge=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],aE=Ee("power",Sge);const _ge=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],is=Ee("refresh-cw",_ge);const Nge=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Cge=Ee("rotate-ccw",Nge);const Oge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Ege=Ee("rotate-cw",Oge);const Age=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],iE=Ee("save",Age);const Tge=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Lr=Ee("search",Tge);const kge=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],vF=Ee("server",kge);const Mge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Pge=Ee("settings-2",Mge);const Rge=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Fa=Ee("settings",Rge);const Dge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],$ge=Ee("shield",Dge);const Ige=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Lge=Ee("skip-forward",Ige);const Bge=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],zge=Ee("sliders-vertical",Bge);const qge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],sE=Ee("smile",qge);const Fge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Uge=Ee("sparkles",Fge);const Hge=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Ru=Ee("square-pen",Hge);const Wge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],tL=Ee("star",Wge);const Vge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],nC=Ee("sun",Vge);const Gge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Yge=Ee("terminal",Gge);const Kge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],It=Ee("trash-2",Kge);const Xge=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Zge=Ee("trending-up",Xge);const Qge=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Kc=Ee("triangle-alert",Qge);const Jge=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],gF=Ee("user",Jge);const eye=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],tye=Ee("users",eye);const nye=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Yh=Ee("x",nye);const rye=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],yh=Ee("zap",rye),nL=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,rL=Je,Zu=(e,t)=>n=>{var r;if(t?.variants==null)return rL(e,n?.class,n?.className);const{variants:a,defaultVariants:s}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=s?.[f];if(m===null)return null;const g=nL(m)||nL(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[w,b]=j;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...f,p,g]:f},[]);return rL(e,l,d,n?.class,n?.className)},xh=Zu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),oe=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const l=r?hQ:"button";return i.jsx(l,{className:ce(xh({variant:t,size:n,className:e})),ref:s,...a})});oe.displayName="Button";function aye(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(24),[d,f]=y.useState(!0),[m,p]=y.useState(null),[g,x]=y.useState(!0),j=y.useCallback(async()=>{try{x(!0);const R=await vn.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");p({hitokoto:R.data.hitokoto,from:R.data.from||R.data.from_who||"未知"})}catch(R){console.error("获取一言失败:",R),p({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{x(!1)}},[]),w=y.useCallback(async()=>{try{const R=localStorage.getItem("access-token"),B=await vn.get(`/api/webui/statistics/dashboard?hours=${l}`,{headers:{Authorization:`Bearer ${R}`}});t(B.data),r(!1),s(100)}catch(R){console.error("Failed to fetch dashboard data:",R),r(!1),s(100)}},[l]);if(y.useEffect(()=>{if(!n)return;s(0);const R=setTimeout(()=>s(15),200),B=setTimeout(()=>s(30),800),$=setTimeout(()=>s(45),2e3),H=setTimeout(()=>s(60),4e3),V=setTimeout(()=>s(75),6500),q=setTimeout(()=>s(85),9e3),G=setTimeout(()=>s(92),11e3);return()=>{clearTimeout(R),clearTimeout(B),clearTimeout($),clearTimeout(H),clearTimeout(V),clearTimeout(q),clearTimeout(G)}},[n]),y.useEffect(()=>{w(),j()},[w,j]),y.useEffect(()=>{if(!d)return;const R=setInterval(()=>{w()},3e4);return()=>clearInterval(R)},[d,w]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[i.jsx(is,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx($h,{value:a,className:"h-2"}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:[a,"%"]})]})]})});const{summary:b,model_stats:N,hourly_data:E,daily_data:O,recent_activity:A}=e,C=R=>{const B=Math.floor(R/3600),$=Math.floor(R%3600/60);return`${B}小时${$}分钟`},k=R=>new Date(R).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),T=N.slice(0,6).map(R=>({name:R.model_name,value:R.request_count,fill:`hsl(var(--chart-${N.indexOf(R)%5+1}))`})),M={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(dl,{value:l.toString(),onValueChange:R=>u(Number(R)),children:i.jsxs(eo,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Rt,{value:"24",children:"24小时"}),i.jsx(Rt,{value:"168",children:"7天"}),i.jsx(Rt,{value:"720",children:"30天"})]})}),i.jsxs(oe,{variant:d?"default":"outline",size:"sm",onClick:()=>f(!d),className:"gap-2",children:[i.jsx(is,{className:`h-4 w-4 ${d?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:w,children:i.jsx(is,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(vve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",l<48?l+"小时":Math.floor(l/24)+"天"]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"总花费"}),i.jsx(Kve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",b.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.cost_per_hour>0?`¥${b.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(Gve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(b.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.tokens_per_hour>0?`${(b.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(yh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[b.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(ll,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(Ct,{children:i.jsx("div",{className:"text-xl font-bold",children:C(b.online_time)})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(Gh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",b.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(Zge,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages>0?`¥${(b.total_cost/b.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(dl,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Rt,{value:"trends",children:"趋势"}),i.jsx(Rt,{value:"models",children:"模型"}),i.jsx(Rt,{value:"activity",children:"活动"}),i.jsx(Rt,{value:"daily",children:"日统计"})]}),i.jsxs(sn,{value:"trends",className:"space-y-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"请求趋势"}),i.jsxs(Wn,{children:["最近",l,"小时的请求量变化"]})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(ive,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(Vh,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"花费趋势"}),i.jsx(Wn,{children:"API调用成本变化"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(XS,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(di,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"Token消耗"}),i.jsx(Wn,{children:"Token使用量变化"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(XS,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(di,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(sn,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"模型请求分布"}),i.jsx(Wn,{children:"各模型使用占比"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:Object.fromEntries(N.slice(0,6).map((R,B)=>[R.model_name,{label:R.model_name,color:`hsl(var(--chart-${B%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(sve,{children:[i.jsx(df,{content:i.jsx($c,{})}),i.jsx(ps,{data:T,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percent:B})=>`${R} ${B?(B*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:T.map((R,B)=>i.jsx(uy,{fill:R.fill},`cell-${B}`))})]})})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"模型详细统计"}),i.jsx(Wn,{children:"请求数、花费和性能"})]}),i.jsx(Ct,{children:i.jsx(Wt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:N.map((R,B)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:R.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${B%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:R.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",R.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(R.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[R.avg_response_time.toFixed(2),"s"]})]})]})]},B))})})})]})]})}),i.jsx(sn,{value:"activity",children:i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"最近活动"}),i.jsx(Wn,{children:"最新的API调用记录"})]}),i.jsx(Ct,{children:i.jsx(Wt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((R,B)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:R.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:R.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:k(R.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:R.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",R.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[R.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${R.status==="success"?"text-green-600":"text-red-600"}`,children:R.status})]})]})]},B))})})})]})}),i.jsx(sn,{value:"daily",children:i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"每日统计"}),i.jsx(Wn,{children:"最近7天的数据汇总"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(XS,{data:O,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>{const B=new Date(R);return`${B.getMonth()+1}/${B.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>new Date(R).toLocaleDateString("zh-CN")})}),i.jsx(cve,{content:i.jsx(uF,{})}),i.jsx(di,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(di,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(Xe,{className:"border-2 border-primary/20",children:[i.jsx(pt,{className:"pb-3",children:i.jsx(vt,{className:"text-lg",children:"每日一言"})}),i.jsx(Ct,{children:g?i.jsxs("div",{className:"space-y-2",children:[i.jsx(KM,{className:"h-6 w-3/4"}),i.jsx(KM,{className:"h-4 w-1/4"})]}):m?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',m.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",m.from]})]}):null})]})]})})}const iye={theme:"system",setTheme:()=>null},yF=y.createContext(iye),oE=()=>{const e=y.useContext(yF);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},sye=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,s=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(s,innerHeight-s));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},xF=y.createContext(void 0),bF=()=>{const e=y.useContext(xF);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function Dy(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function $y(e){const[t,n]=y.useState(void 0);return Yn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let l,u;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Iy="Switch",[oye]=gr(Iy),[lye,cye]=oye(Iy),wF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=Ue(t,O=>x(O)),w=y.useRef(!1),b=g?m||!!g.closest("form"):!0,[N,E]=Ea({prop:a,defaultProp:s??!1,onChange:f,caller:Iy});return i.jsxs(lye,{scope:n,checked:N,disabled:u,children:[i.jsx($e.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":NF(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:_e(e.onClick,O=>{E(A=>!A),b&&(w.current=O.isPropagationStopped(),w.current||O.stopPropagation())})}),b&&i.jsx(_F,{control:g,bubbles:!w.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});wF.displayName=Iy;var jF="SwitchThumb",SF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=cye(jF,n);return i.jsx($e.span,{"data-state":NF(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});SF.displayName=jF;var uye="SwitchBubbleInput",_F=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const l=y.useRef(null),u=Ue(l,s),d=Dy(n),f=$y(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});_F.displayName=uye;function NF(e){return e?"checked":"unchecked"}var CF=wF,dye=SF;const lt=y.forwardRef(({className:e,...t},n)=>i.jsx(CF,{className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(dye,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));lt.displayName=CF.displayName;var fye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],hye=fye.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),mye="Label",OF=y.forwardRef((e,t)=>i.jsx(hye.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));OF.displayName=mye;var EF=OF;const pye=Zu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Q=y.forwardRef(({className:e,...t},n)=>i.jsx(EF,{ref:n,className:ce(pye(),e),...t}));Q.displayName=EF.displayName;const Ne=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:ce("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ne.displayName="Input";const vye=1,gye=1e6;let ZS=0;function yye(){return ZS=(ZS+1)%Number.MAX_SAFE_INTEGER,ZS.toString()}const QS=new Map,aL=e=>{if(QS.has(e))return;const t=setTimeout(()=>{QS.delete(e),Pf({type:"REMOVE_TOAST",toastId:e})},gye);QS.set(e,t)},xye=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,vye)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?aL(n):e.toasts.forEach(r=>{aL(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},uv=[];let dv={toasts:[]};function Pf(e){dv=xye(dv,e),uv.forEach(t=>{t(dv)})}function bye({...e}){const t=yye(),n=a=>Pf({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Pf({type:"DISMISS_TOAST",toastId:t});return Pf({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function yr(){const[e,t]=y.useState(dv);return y.useEffect(()=>(uv.push(t),()=>{const n=uv.indexOf(t);n>-1&&uv.splice(n,1)}),[e]),{...e,toast:bye,dismiss:n=>Pf({type:"DISMISS_TOAST",toastId:n})}}const wye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function jye(e){const t=wye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const lE="0.11.5 Beta",cE="MaiBot Dashboard",Sye=`${cE} v${lE}`,_ye=(e="v")=>`${e}${lE}`;function Nye(e,t=globalThis?.document){const n=ln(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Cye="DismissableLayer",rC="dismissableLayer.update",Oye="dismissableLayer.pointerDownOutside",Eye="dismissableLayer.focusOutside",iL,AF=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Al=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(AF),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=Ue(t,T=>p(T)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=w.indexOf(b),E=m?w.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,A=E>=N,C=Tye(T=>{const M=T.target,R=[...f.branches].some(B=>B.contains(M));!A||R||(a?.(T),l?.(T),T.defaultPrevented||u?.())},g),k=kye(T=>{const M=T.target;[...f.branches].some(B=>B.contains(M))||(s?.(T),l?.(T),T.defaultPrevented||u?.())},g);return Nye(T=>{E===f.layers.size-1&&(r?.(T),!T.defaultPrevented&&u&&(T.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(iL=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),sL(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=iL)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),sL())},[m,f]),y.useEffect(()=>{const T=()=>x({});return document.addEventListener(rC,T),()=>document.removeEventListener(rC,T)},[]),i.jsx($e.div,{...d,ref:j,style:{pointerEvents:O?A?"auto":"none":void 0,...e.style},onFocusCapture:_e(e.onFocusCapture,k.onFocusCapture),onBlurCapture:_e(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:_e(e.onPointerDownCapture,C.onPointerDownCapture)})});Al.displayName=Cye;var Aye="DismissableLayerBranch",TF=y.forwardRef((e,t)=>{const n=y.useContext(AF),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),i.jsx($e.div,{...e,ref:a})});TF.displayName=Aye;function Tye(e,t=globalThis?.document){const n=ln(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let d=function(){kF(Oye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function kye(e,t=globalThis?.document){const n=ln(e),r=y.useRef(!1);return y.useEffect(()=>{const a=s=>{s.target&&!r.current&&kF(Eye,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function sL(){const e=new CustomEvent(rC);document.dispatchEvent(e)}function kF(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?UC(a,s):a.dispatchEvent(s)}var Mye=Al,Pye=TF,JS="focusScope.autoFocusOnMount",e_="focusScope.autoFocusOnUnmount",oL={bubbles:!1,cancelable:!0},Rye="FocusScope",Kh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...l}=e,[u,d]=y.useState(null),f=ln(a),m=ln(s),p=y.useRef(null),g=Ue(t,w=>d(w)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let w=function(O){if(x.paused||!u)return;const A=O.target;u.contains(A)?p.current=A:Us(p.current,{select:!0})},b=function(O){if(x.paused||!u)return;const A=O.relatedTarget;A!==null&&(u.contains(A)||Us(p.current,{select:!0}))},N=function(O){if(document.activeElement===document.body)for(const C of O)C.removedNodes.length>0&&Us(u)};document.addEventListener("focusin",w),document.addEventListener("focusout",b);const E=new MutationObserver(N);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",b),E.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){cL.add(x);const w=document.activeElement;if(!u.contains(w)){const N=new CustomEvent(JS,oL);u.addEventListener(JS,f),u.dispatchEvent(N),N.defaultPrevented||(Dye(zye(MF(u)),{select:!0}),document.activeElement===w&&Us(u))}return()=>{u.removeEventListener(JS,f),setTimeout(()=>{const N=new CustomEvent(e_,oL);u.addEventListener(e_,m),u.dispatchEvent(N),N.defaultPrevented||Us(w??document.body,{select:!0}),u.removeEventListener(e_,m),cL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(w=>{if(!n&&!r||x.paused)return;const b=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,N=document.activeElement;if(b&&N){const E=w.currentTarget,[O,A]=$ye(E);O&&A?!w.shiftKey&&N===A?(w.preventDefault(),n&&Us(O,{select:!0})):w.shiftKey&&N===O&&(w.preventDefault(),n&&Us(A,{select:!0})):N===E&&w.preventDefault()}},[n,r,x.paused]);return i.jsx($e.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Kh.displayName=Rye;function Dye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Us(r,{select:t}),document.activeElement!==n)return}function $ye(e){const t=MF(e),n=lL(t,e),r=lL(t.reverse(),e);return[n,r]}function MF(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function lL(e,t){for(const n of e)if(!Iye(n,{upTo:t}))return n}function Iye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Lye(e){return e instanceof HTMLInputElement&&"select"in e}function Us(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Lye(e)&&t&&e.select()}}var cL=Bye();function Bye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=uL(e,t),e.unshift(t)},remove(t){e=uL(e,t),e[0]?.resume()}}}function uL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function zye(e){return e.filter(t=>t.tagName!=="A")}var qye="Portal",Tl=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,s]=y.useState(!1);Yn(()=>s(!0),[]);const l=n||a&&globalThis?.document?.body;return l?NY.createPortal(i.jsx($e.div,{...r,ref:t}),l):null});Tl.displayName=qye;var t_=0;function Ly(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??dL()),document.body.insertAdjacentElement("beforeend",e[1]??dL()),t_++,()=>{t_===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),t_--}},[])}function dL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var si=function(){return si=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return axe;var t=ixe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},oxe=$F(),Xc="data-scroll-locked",lxe=function(e,t,n,r){var a=e.left,s=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` +`)}}):null},df=ii,$c=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:s=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=cF(),w=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,E=`${g||N?.dataKey||N?.name||"value"}`,O=KN(j,N,E),A=!g&&typeof l=="string"?j[l]?.label||l:O?.label;return u?i.jsx("div",{className:ce("font-medium",d),children:u(A,t)}):A?i.jsx("div",{className:ce("font-medium",d),children:A}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const b=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:ce("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[b?null:w,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,E)=>{const O=`${p||N.name||N.dataKey||"value"}`,A=KN(j,N,O),C=m||N.payload.fill||N.color;return i.jsx("div",{className:ce("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,E,N.payload):i.jsxs(i.Fragment,{children:[A?.icon?i.jsx(A.icon,{}):!s&&i.jsx("div",{className:ce("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":b&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:ce("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[b?w:null,i.jsx("span",{className:"text-muted-foreground",children:A?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});$c.displayName="ChartTooltip";const cve=al,uF=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},s)=>{const{config:l}=cF();return n?.length?i.jsx("div",{ref:s,className:ce("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=KN(l,u,d);return i.jsxs("div",{className:ce("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});uF.displayName="ChartLegend";function KN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const uve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),dve=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),XI=e=>{const t=dve(e);return t.charAt(0).toUpperCase()+t.slice(1)},dF=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),fve=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var hve={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const mve=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...hve,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:dF("lucide",a),...!s&&!fve(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(s)?s:[s]]));const Ee=(e,t)=>{const n=y.forwardRef(({className:r,...a},s)=>y.createElement(mve,{ref:s,iconNode:t,className:dF(`lucide-${uve(XI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=XI(e),n};const pve=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],vve=Ee("activity",pve);const gve=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],fF=Ee("arrow-left",gve);const yve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],xve=Ee("arrow-right",yve);const bve=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ZI=Ee("ban",bve);const wve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],jve=Ee("book-open",wve);const Sve=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],_ve=Ee("bot",Sve);const Nve=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],hF=Ee("boxes",Nve);const Cve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],QI=Ee("calendar",Cve);const Ove=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],Eve=Ee("chart-column",Ove);const Ave=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ol=Ee("check",Ave);const Tve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],vh=Ee("chevron-down",Tve);const kve=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],nE=Ee("chevron-left",kve);const Mve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],rE=Ee("chevron-right",Mve);const Pve=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],XN=Ee("chevron-up",Pve);const Rve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],Dve=Ee("chevrons-up-down",Rve);const $ve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],gl=Ee("circle-alert",$ve);const Ive=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Pr=Ee("circle-check",Ive);const Lve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Bve=Ee("circle-question-mark",Lve);const zve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],mF=Ee("circle-user",zve);const qve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],ZN=Ee("circle-x",qve);const Fve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Uve=Ee("circle",Fve);const Hve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ll=Ee("clock",Hve);const Wve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],QN=Ee("copy",Wve);const Vve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Gve=Ee("database",Vve);const Yve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Kve=Ee("dollar-sign",Yve);const Xve=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],JN=Ee("download",Xve);const Zve=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Mf=Ee("external-link",Zve);const Qve=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],eC=Ee("eye-off",Qve);const Jve=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Va=Ee("eye",Jve);const ege=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],Og=Ee("file-search",ege);const tge=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],aE=Ee("file-text",tge);const nge=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],tC=Ee("funnel",nge);const rge=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Eg=Ee("hash",rge);const age=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Ag=Ee("house",age);const ige=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Mu=Ee("info",ige);const sge=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],oge=Ee("key",sge);const lge=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],gh=Ee("loader-circle",lge);const cge=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],JI=Ee("lock",cge);const uge=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],eL=Ee("log-out",uge);const dge=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],fge=Ee("menu",dge);const hge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Gh=Ee("message-square",hge);const mge=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],nC=Ee("moon",mge);const pge=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Tg=Ee("package",pge);const vge=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],pF=Ee("palette",vge);const gge=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],yge=Ee("pause",gge);const xge=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Pu=Ee("pencil",xge);const bge=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],wge=Ee("play",bge);const jge=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ir=Ee("plus",jge);const Sge=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],iE=Ee("power",Sge);const _ge=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],is=Ee("refresh-cw",_ge);const Nge=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Cge=Ee("rotate-ccw",Nge);const Oge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Ege=Ee("rotate-cw",Oge);const Age=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],sE=Ee("save",Age);const Tge=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Lr=Ee("search",Tge);const kge=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],vF=Ee("server",kge);const Mge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Pge=Ee("settings-2",Mge);const Rge=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Fa=Ee("settings",Rge);const Dge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],$ge=Ee("shield",Dge);const Ige=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Lge=Ee("skip-forward",Ige);const Bge=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],zge=Ee("sliders-vertical",Bge);const qge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],oE=Ee("smile",qge);const Fge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Uge=Ee("sparkles",Fge);const Hge=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Ru=Ee("square-pen",Hge);const Wge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],tL=Ee("star",Wge);const Vge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],rC=Ee("sun",Vge);const Gge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Yge=Ee("terminal",Gge);const Kge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],It=Ee("trash-2",Kge);const Xge=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Zge=Ee("trending-up",Xge);const Qge=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Kc=Ee("triangle-alert",Qge);const Jge=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],gF=Ee("user",Jge);const eye=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],tye=Ee("users",eye);const nye=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Yh=Ee("x",nye);const rye=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],yh=Ee("zap",rye),nL=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,rL=Je,Zu=(e,t)=>n=>{var r;if(t?.variants==null)return rL(e,n?.class,n?.className);const{variants:a,defaultVariants:s}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=s?.[f];if(m===null)return null;const g=nL(m)||nL(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[w,b]=j;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...f,p,g]:f},[]);return rL(e,l,d,n?.class,n?.className)},xh=Zu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),oe=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const l=r?hQ:"button";return i.jsx(l,{className:ce(xh({variant:t,size:n,className:e})),ref:s,...a})});oe.displayName="Button";function aye(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(24),[d,f]=y.useState(!0),[m,p]=y.useState(null),[g,x]=y.useState(!0),j=y.useCallback(async()=>{try{x(!0);const R=await vn.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");p({hitokoto:R.data.hitokoto,from:R.data.from||R.data.from_who||"未知"})}catch(R){console.error("获取一言失败:",R),p({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{x(!1)}},[]),w=y.useCallback(async()=>{try{const R=localStorage.getItem("access-token"),B=await vn.get(`/api/webui/statistics/dashboard?hours=${l}`,{headers:{Authorization:`Bearer ${R}`}});t(B.data),r(!1),s(100)}catch(R){console.error("Failed to fetch dashboard data:",R),r(!1),s(100)}},[l]);if(y.useEffect(()=>{if(!n)return;s(0);const R=setTimeout(()=>s(15),200),B=setTimeout(()=>s(30),800),$=setTimeout(()=>s(45),2e3),H=setTimeout(()=>s(60),4e3),V=setTimeout(()=>s(75),6500),q=setTimeout(()=>s(85),9e3),G=setTimeout(()=>s(92),11e3);return()=>{clearTimeout(R),clearTimeout(B),clearTimeout($),clearTimeout(H),clearTimeout(V),clearTimeout(q),clearTimeout(G)}},[n]),y.useEffect(()=>{w(),j()},[w,j]),y.useEffect(()=>{if(!d)return;const R=setInterval(()=>{w()},3e4);return()=>clearInterval(R)},[d,w]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[i.jsx(is,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx($h,{value:a,className:"h-2"}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:[a,"%"]})]})]})});const{summary:b,model_stats:N,hourly_data:E,daily_data:O,recent_activity:A}=e,C=R=>{const B=Math.floor(R/3600),$=Math.floor(R%3600/60);return`${B}小时${$}分钟`},k=R=>new Date(R).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),T=N.slice(0,6).map(R=>({name:R.model_name,value:R.request_count,fill:`hsl(var(--chart-${N.indexOf(R)%5+1}))`})),M={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(dl,{value:l.toString(),onValueChange:R=>u(Number(R)),children:i.jsxs(eo,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Rt,{value:"24",children:"24小时"}),i.jsx(Rt,{value:"168",children:"7天"}),i.jsx(Rt,{value:"720",children:"30天"})]})}),i.jsxs(oe,{variant:d?"default":"outline",size:"sm",onClick:()=>f(!d),className:"gap-2",children:[i.jsx(is,{className:`h-4 w-4 ${d?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:w,children:i.jsx(is,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(vve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",l<48?l+"小时":Math.floor(l/24)+"天"]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"总花费"}),i.jsx(Kve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",b.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.cost_per_hour>0?`¥${b.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(Gve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(b.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.tokens_per_hour>0?`${(b.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(yh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[b.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(ll,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(Ct,{children:i.jsx("div",{className:"text-xl font-bold",children:C(b.online_time)})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(Gh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",b.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(Zge,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages>0?`¥${(b.total_cost/b.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(dl,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Rt,{value:"trends",children:"趋势"}),i.jsx(Rt,{value:"models",children:"模型"}),i.jsx(Rt,{value:"activity",children:"活动"}),i.jsx(Rt,{value:"daily",children:"日统计"})]}),i.jsxs(sn,{value:"trends",className:"space-y-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"请求趋势"}),i.jsxs(Wn,{children:["最近",l,"小时的请求量变化"]})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(ive,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(Vh,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"花费趋势"}),i.jsx(Wn,{children:"API调用成本变化"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(ZS,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(di,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"Token消耗"}),i.jsx(Wn,{children:"Token使用量变化"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(ZS,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(di,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(sn,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"模型请求分布"}),i.jsx(Wn,{children:"各模型使用占比"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:Object.fromEntries(N.slice(0,6).map((R,B)=>[R.model_name,{label:R.model_name,color:`hsl(var(--chart-${B%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(sve,{children:[i.jsx(df,{content:i.jsx($c,{})}),i.jsx(ps,{data:T,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percent:B})=>`${R} ${B?(B*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:T.map((R,B)=>i.jsx(uy,{fill:R.fill},`cell-${B}`))})]})})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"模型详细统计"}),i.jsx(Wn,{children:"请求数、花费和性能"})]}),i.jsx(Ct,{children:i.jsx(Wt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:N.map((R,B)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:R.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${B%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:R.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",R.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(R.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[R.avg_response_time.toFixed(2),"s"]})]})]})]},B))})})})]})]})}),i.jsx(sn,{value:"activity",children:i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"最近活动"}),i.jsx(Wn,{children:"最新的API调用记录"})]}),i.jsx(Ct,{children:i.jsx(Wt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((R,B)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:R.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:R.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:k(R.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:R.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",R.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[R.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${R.status==="success"?"text-green-600":"text-red-600"}`,children:R.status})]})]})]},B))})})})]})}),i.jsx(sn,{value:"daily",children:i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"每日统计"}),i.jsx(Wn,{children:"最近7天的数据汇总"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(ZS,{data:O,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>{const B=new Date(R);return`${B.getMonth()+1}/${B.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>new Date(R).toLocaleDateString("zh-CN")})}),i.jsx(cve,{content:i.jsx(uF,{})}),i.jsx(di,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(di,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(Xe,{className:"border-2 border-primary/20",children:[i.jsx(pt,{className:"pb-3",children:i.jsx(vt,{className:"text-lg",children:"每日一言"})}),i.jsx(Ct,{children:g?i.jsxs("div",{className:"space-y-2",children:[i.jsx(KM,{className:"h-6 w-3/4"}),i.jsx(KM,{className:"h-4 w-1/4"})]}):m?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',m.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",m.from]})]}):null})]})]})})}const iye={theme:"system",setTheme:()=>null},yF=y.createContext(iye),lE=()=>{const e=y.useContext(yF);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},sye=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,s=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(s,innerHeight-s));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},xF=y.createContext(void 0),bF=()=>{const e=y.useContext(xF);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function Dy(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function $y(e){const[t,n]=y.useState(void 0);return Yn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let l,u;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Iy="Switch",[oye]=gr(Iy),[lye,cye]=oye(Iy),wF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=Ue(t,O=>x(O)),w=y.useRef(!1),b=g?m||!!g.closest("form"):!0,[N,E]=Ea({prop:a,defaultProp:s??!1,onChange:f,caller:Iy});return i.jsxs(lye,{scope:n,checked:N,disabled:u,children:[i.jsx($e.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":NF(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:_e(e.onClick,O=>{E(A=>!A),b&&(w.current=O.isPropagationStopped(),w.current||O.stopPropagation())})}),b&&i.jsx(_F,{control:g,bubbles:!w.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});wF.displayName=Iy;var jF="SwitchThumb",SF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=cye(jF,n);return i.jsx($e.span,{"data-state":NF(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});SF.displayName=jF;var uye="SwitchBubbleInput",_F=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const l=y.useRef(null),u=Ue(l,s),d=Dy(n),f=$y(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});_F.displayName=uye;function NF(e){return e?"checked":"unchecked"}var CF=wF,dye=SF;const lt=y.forwardRef(({className:e,...t},n)=>i.jsx(CF,{className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(dye,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));lt.displayName=CF.displayName;var fye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],hye=fye.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),mye="Label",OF=y.forwardRef((e,t)=>i.jsx(hye.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));OF.displayName=mye;var EF=OF;const pye=Zu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Q=y.forwardRef(({className:e,...t},n)=>i.jsx(EF,{ref:n,className:ce(pye(),e),...t}));Q.displayName=EF.displayName;const Ne=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:ce("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ne.displayName="Input";const vye=1,gye=1e6;let QS=0;function yye(){return QS=(QS+1)%Number.MAX_SAFE_INTEGER,QS.toString()}const JS=new Map,aL=e=>{if(JS.has(e))return;const t=setTimeout(()=>{JS.delete(e),Pf({type:"REMOVE_TOAST",toastId:e})},gye);JS.set(e,t)},xye=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,vye)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?aL(n):e.toasts.forEach(r=>{aL(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},uv=[];let dv={toasts:[]};function Pf(e){dv=xye(dv,e),uv.forEach(t=>{t(dv)})}function bye({...e}){const t=yye(),n=a=>Pf({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Pf({type:"DISMISS_TOAST",toastId:t});return Pf({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function yr(){const[e,t]=y.useState(dv);return y.useEffect(()=>(uv.push(t),()=>{const n=uv.indexOf(t);n>-1&&uv.splice(n,1)}),[e]),{...e,toast:bye,dismiss:n=>Pf({type:"DISMISS_TOAST",toastId:n})}}const wye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function jye(e){const t=wye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const cE="0.11.5 Beta",uE="MaiBot Dashboard",Sye=`${uE} v${cE}`,_ye=(e="v")=>`${e}${cE}`;function Nye(e,t=globalThis?.document){const n=ln(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Cye="DismissableLayer",aC="dismissableLayer.update",Oye="dismissableLayer.pointerDownOutside",Eye="dismissableLayer.focusOutside",iL,AF=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Al=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(AF),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=Ue(t,T=>p(T)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=w.indexOf(b),E=m?w.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,A=E>=N,C=Tye(T=>{const M=T.target,R=[...f.branches].some(B=>B.contains(M));!A||R||(a?.(T),l?.(T),T.defaultPrevented||u?.())},g),k=kye(T=>{const M=T.target;[...f.branches].some(B=>B.contains(M))||(s?.(T),l?.(T),T.defaultPrevented||u?.())},g);return Nye(T=>{E===f.layers.size-1&&(r?.(T),!T.defaultPrevented&&u&&(T.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(iL=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),sL(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=iL)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),sL())},[m,f]),y.useEffect(()=>{const T=()=>x({});return document.addEventListener(aC,T),()=>document.removeEventListener(aC,T)},[]),i.jsx($e.div,{...d,ref:j,style:{pointerEvents:O?A?"auto":"none":void 0,...e.style},onFocusCapture:_e(e.onFocusCapture,k.onFocusCapture),onBlurCapture:_e(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:_e(e.onPointerDownCapture,C.onPointerDownCapture)})});Al.displayName=Cye;var Aye="DismissableLayerBranch",TF=y.forwardRef((e,t)=>{const n=y.useContext(AF),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),i.jsx($e.div,{...e,ref:a})});TF.displayName=Aye;function Tye(e,t=globalThis?.document){const n=ln(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let d=function(){kF(Oye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function kye(e,t=globalThis?.document){const n=ln(e),r=y.useRef(!1);return y.useEffect(()=>{const a=s=>{s.target&&!r.current&&kF(Eye,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function sL(){const e=new CustomEvent(aC);document.dispatchEvent(e)}function kF(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?HC(a,s):a.dispatchEvent(s)}var Mye=Al,Pye=TF,e_="focusScope.autoFocusOnMount",t_="focusScope.autoFocusOnUnmount",oL={bubbles:!1,cancelable:!0},Rye="FocusScope",Kh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...l}=e,[u,d]=y.useState(null),f=ln(a),m=ln(s),p=y.useRef(null),g=Ue(t,w=>d(w)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let w=function(O){if(x.paused||!u)return;const A=O.target;u.contains(A)?p.current=A:Us(p.current,{select:!0})},b=function(O){if(x.paused||!u)return;const A=O.relatedTarget;A!==null&&(u.contains(A)||Us(p.current,{select:!0}))},N=function(O){if(document.activeElement===document.body)for(const C of O)C.removedNodes.length>0&&Us(u)};document.addEventListener("focusin",w),document.addEventListener("focusout",b);const E=new MutationObserver(N);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",b),E.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){cL.add(x);const w=document.activeElement;if(!u.contains(w)){const N=new CustomEvent(e_,oL);u.addEventListener(e_,f),u.dispatchEvent(N),N.defaultPrevented||(Dye(zye(MF(u)),{select:!0}),document.activeElement===w&&Us(u))}return()=>{u.removeEventListener(e_,f),setTimeout(()=>{const N=new CustomEvent(t_,oL);u.addEventListener(t_,m),u.dispatchEvent(N),N.defaultPrevented||Us(w??document.body,{select:!0}),u.removeEventListener(t_,m),cL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(w=>{if(!n&&!r||x.paused)return;const b=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,N=document.activeElement;if(b&&N){const E=w.currentTarget,[O,A]=$ye(E);O&&A?!w.shiftKey&&N===A?(w.preventDefault(),n&&Us(O,{select:!0})):w.shiftKey&&N===O&&(w.preventDefault(),n&&Us(A,{select:!0})):N===E&&w.preventDefault()}},[n,r,x.paused]);return i.jsx($e.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Kh.displayName=Rye;function Dye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Us(r,{select:t}),document.activeElement!==n)return}function $ye(e){const t=MF(e),n=lL(t,e),r=lL(t.reverse(),e);return[n,r]}function MF(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function lL(e,t){for(const n of e)if(!Iye(n,{upTo:t}))return n}function Iye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Lye(e){return e instanceof HTMLInputElement&&"select"in e}function Us(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Lye(e)&&t&&e.select()}}var cL=Bye();function Bye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=uL(e,t),e.unshift(t)},remove(t){e=uL(e,t),e[0]?.resume()}}}function uL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function zye(e){return e.filter(t=>t.tagName!=="A")}var qye="Portal",Tl=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,s]=y.useState(!1);Yn(()=>s(!0),[]);const l=n||a&&globalThis?.document?.body;return l?NY.createPortal(i.jsx($e.div,{...r,ref:t}),l):null});Tl.displayName=qye;var n_=0;function Ly(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??dL()),document.body.insertAdjacentElement("beforeend",e[1]??dL()),n_++,()=>{n_===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),n_--}},[])}function dL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var si=function(){return si=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return axe;var t=ixe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},oxe=$F(),Xc="data-scroll-locked",lxe=function(e,t,n,r){var a=e.left,s=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` .`.concat(Uye,` { overflow: hidden `).concat(r,`; padding-right: `).concat(u,"px ").concat(r,`; @@ -124,34 +124,34 @@ ${n.map(([s,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${s}: ${u};` body[`).concat(Xc,`] { `).concat(Hye,": ").concat(u,`px; } -`)},hL=function(){var e=parseInt(document.body.getAttribute(Xc)||"0",10);return isFinite(e)?e:0},cxe=function(){y.useEffect(function(){return document.body.setAttribute(Xc,(hL()+1).toString()),function(){var e=hL()-1;e<=0?document.body.removeAttribute(Xc):document.body.setAttribute(Xc,e.toString())}},[])},uxe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;cxe();var s=y.useMemo(function(){return sxe(a)},[a]);return y.createElement(oxe,{styles:lxe(s,!t,a,n?"":"!important")})},aC=!1;if(typeof window<"u")try{var Gp=Object.defineProperty({},"passive",{get:function(){return aC=!0,!0}});window.addEventListener("test",Gp,Gp),window.removeEventListener("test",Gp,Gp)}catch{aC=!1}var Ac=aC?{passive:!1}:!1,dxe=function(e){return e.tagName==="TEXTAREA"},IF=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!dxe(e)&&n[t]==="visible")},fxe=function(e){return IF(e,"overflowY")},hxe=function(e){return IF(e,"overflowX")},mL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=LF(e,r);if(a){var s=BF(e,r),l=s[1],u=s[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},mxe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},pxe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},LF=function(e,t){return e==="v"?fxe(t):hxe(t)},BF=function(e,t){return e==="v"?mxe(t):pxe(t)},vxe=function(e,t){return e==="h"&&t==="rtl"?-1:1},gxe=function(e,t,n,r,a){var s=vxe(e,window.getComputedStyle(t).direction),l=s*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=BF(e,u),j=x[0],w=x[1],b=x[2],N=w-b-s*j;(j||N)&&LF(e,u)&&(p+=N,g+=j);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Yp=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},pL=function(e){return[e.deltaX,e.deltaY]},vL=function(e){return e&&"current"in e?e.current:e},yxe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},xxe=function(e){return` +`)},hL=function(){var e=parseInt(document.body.getAttribute(Xc)||"0",10);return isFinite(e)?e:0},cxe=function(){y.useEffect(function(){return document.body.setAttribute(Xc,(hL()+1).toString()),function(){var e=hL()-1;e<=0?document.body.removeAttribute(Xc):document.body.setAttribute(Xc,e.toString())}},[])},uxe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;cxe();var s=y.useMemo(function(){return sxe(a)},[a]);return y.createElement(oxe,{styles:lxe(s,!t,a,n?"":"!important")})},iC=!1;if(typeof window<"u")try{var Gp=Object.defineProperty({},"passive",{get:function(){return iC=!0,!0}});window.addEventListener("test",Gp,Gp),window.removeEventListener("test",Gp,Gp)}catch{iC=!1}var Ac=iC?{passive:!1}:!1,dxe=function(e){return e.tagName==="TEXTAREA"},IF=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!dxe(e)&&n[t]==="visible")},fxe=function(e){return IF(e,"overflowY")},hxe=function(e){return IF(e,"overflowX")},mL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=LF(e,r);if(a){var s=BF(e,r),l=s[1],u=s[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},mxe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},pxe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},LF=function(e,t){return e==="v"?fxe(t):hxe(t)},BF=function(e,t){return e==="v"?mxe(t):pxe(t)},vxe=function(e,t){return e==="h"&&t==="rtl"?-1:1},gxe=function(e,t,n,r,a){var s=vxe(e,window.getComputedStyle(t).direction),l=s*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=BF(e,u),j=x[0],w=x[1],b=x[2],N=w-b-s*j;(j||N)&&LF(e,u)&&(p+=N,g+=j);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Yp=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},pL=function(e){return[e.deltaX,e.deltaY]},vL=function(e){return e&&"current"in e?e.current:e},yxe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},xxe=function(e){return` .block-interactivity-`.concat(e,` {pointer-events: none;} .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},bxe=0,Tc=[];function wxe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(bxe++)[0],s=y.useState($F)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var w=Fye([e.lockRef.current],(e.shards||[]).map(vL),!0).filter(Boolean);return w.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(w,b){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var N=Yp(w),E=n.current,O="deltaX"in w?w.deltaX:E[0]-N[0],A="deltaY"in w?w.deltaY:E[1]-N[1],C,k=w.target,T=Math.abs(O)>Math.abs(A)?"h":"v";if("touches"in w&&T==="h"&&k.type==="range")return!1;var M=mL(T,k);if(!M)return!0;if(M?C=T:(C=T==="v"?"h":"v",M=mL(T,k)),!M)return!1;if(!r.current&&"changedTouches"in w&&(O||A)&&(r.current=C),!C)return!0;var R=r.current||C;return gxe(R,b,w,R==="h"?O:A)},[]),d=y.useCallback(function(w){var b=w;if(!(!Tc.length||Tc[Tc.length-1]!==s)){var N="deltaY"in b?pL(b):Yp(b),E=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&yxe(C.delta,N)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var O=(l.current.shards||[]).map(vL).filter(Boolean).filter(function(C){return C.contains(b.target)}),A=O.length>0?u(b,O[0]):!l.current.noIsolation;A&&b.cancelable&&b.preventDefault()}}},[]),f=y.useCallback(function(w,b,N,E){var O={name:w,delta:b,target:N,should:E,shadowParent:jxe(N)};t.current.push(O),setTimeout(function(){t.current=t.current.filter(function(A){return A!==O})},1)},[]),m=y.useCallback(function(w){n.current=Yp(w),r.current=void 0},[]),p=y.useCallback(function(w){f(w.type,pL(w),w.target,u(w,e.lockRef.current))},[]),g=y.useCallback(function(w){f(w.type,Yp(w),w.target,u(w,e.lockRef.current))},[]);y.useEffect(function(){return Tc.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Ac),document.addEventListener("touchmove",d,Ac),document.addEventListener("touchstart",m,Ac),function(){Tc=Tc.filter(function(w){return w!==s}),document.removeEventListener("wheel",d,Ac),document.removeEventListener("touchmove",d,Ac),document.removeEventListener("touchstart",m,Ac)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(s,{styles:xxe(a)}):null,x?y.createElement(uxe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function jxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Sxe=Zye(DF,wxe);var Xh=y.forwardRef(function(e,t){return y.createElement(By,si({},e,{ref:t,sideCar:Sxe}))});Xh.classNames=By.classNames;var _xe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},kc=new WeakMap,Kp=new WeakMap,Xp={},i_=0,zF=function(e){return e&&(e.host||zF(e.parentNode))},Nxe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=zF(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Cxe=function(e,t,n,r){var a=Nxe(t,Array.isArray(e)?e:[e]);Xp[n]||(Xp[n]=new WeakMap);var s=Xp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",w=(kc.get(g)||0)+1,b=(s.get(g)||0)+1;kc.set(g,w),s.set(g,b),l.push(g),w===1&&j&&Kp.set(g,!0),b===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),i_++,function(){l.forEach(function(p){var g=kc.get(p)-1,x=s.get(p)-1;kc.set(p,g),s.set(p,x),g||(Kp.has(p)||p.removeAttribute(r),Kp.delete(p)),x||p.removeAttribute(n)}),i_--,i_||(kc=new WeakMap,kc=new WeakMap,Kp=new WeakMap,Xp={})}},zy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=_xe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),Cxe(r,a,n,"aria-hidden")):function(){return null}};function Oxe(e){const t=Exe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Txe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function Exe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=Mxe(a),u=kxe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Axe=Symbol("radix.slottable");function Txe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Axe}function kxe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function Mxe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var qy="Dialog",[qF,FF]=gr(qy),[Pxe,Za]=qF(qy),UF=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:qy});return i.jsx(Pxe,{scope:t,triggerRef:u,contentRef:d,contentId:Gn(),titleId:Gn(),descriptionId:Gn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};UF.displayName=qy;var HF="DialogTrigger",WF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(HF,n),s=Ue(t,a.triggerRef);return i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":fE(a.open),...r,ref:s,onClick:_e(e.onClick,a.onOpenToggle)})});WF.displayName=HF;var uE="DialogPortal",[Rxe,VF]=qF(uE,{forceMount:void 0}),GF=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=Za(uE,t);return i.jsx(Rxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:l})}))})};GF.displayName=uE;var kg="DialogOverlay",YF=y.forwardRef((e,t)=>{const n=VF(kg,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Za(kg,e.__scopeDialog);return s.modal?i.jsx(Bn,{present:r||s.open,children:i.jsx($xe,{...a,ref:t})}):null});YF.displayName=kg;var Dxe=Oxe("DialogOverlay.RemoveScroll"),$xe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(kg,n);return i.jsx(Xh,{as:Dxe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx($e.div,{"data-state":fE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),yl="DialogContent",KF=y.forwardRef((e,t)=>{const n=VF(yl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Za(yl,e.__scopeDialog);return i.jsx(Bn,{present:r||s.open,children:s.modal?i.jsx(Ixe,{...a,ref:t}):i.jsx(Lxe,{...a,ref:t})})});KF.displayName=yl;var Ixe=y.forwardRef((e,t)=>{const n=Za(yl,e.__scopeDialog),r=y.useRef(null),a=Ue(t,n.contentRef,r);return y.useEffect(()=>{const s=r.current;if(s)return zy(s)},[]),i.jsx(XF,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:_e(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:_e(e.onPointerDownOutside,s=>{const l=s.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&s.preventDefault()}),onFocusOutside:_e(e.onFocusOutside,s=>s.preventDefault())})}),Lxe=y.forwardRef((e,t)=>{const n=Za(yl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(XF,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),XF=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...l}=e,u=Za(yl,n),d=y.useRef(null),f=Ue(t,d);return Ly(),i.jsxs(i.Fragment,{children:[i.jsx(Kh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Al,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":fE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(zxe,{titleId:u.titleId}),i.jsx(Fxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),dE="DialogTitle",ZF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(dE,n);return i.jsx($e.h2,{id:a.titleId,...r,ref:t})});ZF.displayName=dE;var QF="DialogDescription",JF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(QF,n);return i.jsx($e.p,{id:a.descriptionId,...r,ref:t})});JF.displayName=QF;var e8="DialogClose",t8=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(e8,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,()=>a.onOpenChange(!1))})});t8.displayName=e8;function fE(e){return e?"open":"closed"}var n8="DialogTitleWarning",[Bxe,r8]=mZ(n8,{contentName:yl,titleName:dE,docsSlug:"dialog"}),zxe=({titleId:e})=>{const t=r8(n8),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. +`)},bxe=0,Tc=[];function wxe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(bxe++)[0],s=y.useState($F)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var w=Fye([e.lockRef.current],(e.shards||[]).map(vL),!0).filter(Boolean);return w.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(w,b){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var N=Yp(w),E=n.current,O="deltaX"in w?w.deltaX:E[0]-N[0],A="deltaY"in w?w.deltaY:E[1]-N[1],C,k=w.target,T=Math.abs(O)>Math.abs(A)?"h":"v";if("touches"in w&&T==="h"&&k.type==="range")return!1;var M=mL(T,k);if(!M)return!0;if(M?C=T:(C=T==="v"?"h":"v",M=mL(T,k)),!M)return!1;if(!r.current&&"changedTouches"in w&&(O||A)&&(r.current=C),!C)return!0;var R=r.current||C;return gxe(R,b,w,R==="h"?O:A)},[]),d=y.useCallback(function(w){var b=w;if(!(!Tc.length||Tc[Tc.length-1]!==s)){var N="deltaY"in b?pL(b):Yp(b),E=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&yxe(C.delta,N)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var O=(l.current.shards||[]).map(vL).filter(Boolean).filter(function(C){return C.contains(b.target)}),A=O.length>0?u(b,O[0]):!l.current.noIsolation;A&&b.cancelable&&b.preventDefault()}}},[]),f=y.useCallback(function(w,b,N,E){var O={name:w,delta:b,target:N,should:E,shadowParent:jxe(N)};t.current.push(O),setTimeout(function(){t.current=t.current.filter(function(A){return A!==O})},1)},[]),m=y.useCallback(function(w){n.current=Yp(w),r.current=void 0},[]),p=y.useCallback(function(w){f(w.type,pL(w),w.target,u(w,e.lockRef.current))},[]),g=y.useCallback(function(w){f(w.type,Yp(w),w.target,u(w,e.lockRef.current))},[]);y.useEffect(function(){return Tc.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Ac),document.addEventListener("touchmove",d,Ac),document.addEventListener("touchstart",m,Ac),function(){Tc=Tc.filter(function(w){return w!==s}),document.removeEventListener("wheel",d,Ac),document.removeEventListener("touchmove",d,Ac),document.removeEventListener("touchstart",m,Ac)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(s,{styles:xxe(a)}):null,x?y.createElement(uxe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function jxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Sxe=Zye(DF,wxe);var Xh=y.forwardRef(function(e,t){return y.createElement(By,si({},e,{ref:t,sideCar:Sxe}))});Xh.classNames=By.classNames;var _xe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},kc=new WeakMap,Kp=new WeakMap,Xp={},s_=0,zF=function(e){return e&&(e.host||zF(e.parentNode))},Nxe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=zF(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Cxe=function(e,t,n,r){var a=Nxe(t,Array.isArray(e)?e:[e]);Xp[n]||(Xp[n]=new WeakMap);var s=Xp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",w=(kc.get(g)||0)+1,b=(s.get(g)||0)+1;kc.set(g,w),s.set(g,b),l.push(g),w===1&&j&&Kp.set(g,!0),b===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),s_++,function(){l.forEach(function(p){var g=kc.get(p)-1,x=s.get(p)-1;kc.set(p,g),s.set(p,x),g||(Kp.has(p)||p.removeAttribute(r),Kp.delete(p)),x||p.removeAttribute(n)}),s_--,s_||(kc=new WeakMap,kc=new WeakMap,Kp=new WeakMap,Xp={})}},zy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=_xe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),Cxe(r,a,n,"aria-hidden")):function(){return null}};function Oxe(e){const t=Exe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Txe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function Exe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=Mxe(a),u=kxe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Axe=Symbol("radix.slottable");function Txe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Axe}function kxe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function Mxe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var qy="Dialog",[qF,FF]=gr(qy),[Pxe,Za]=qF(qy),UF=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:qy});return i.jsx(Pxe,{scope:t,triggerRef:u,contentRef:d,contentId:Gn(),titleId:Gn(),descriptionId:Gn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};UF.displayName=qy;var HF="DialogTrigger",WF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(HF,n),s=Ue(t,a.triggerRef);return i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":hE(a.open),...r,ref:s,onClick:_e(e.onClick,a.onOpenToggle)})});WF.displayName=HF;var dE="DialogPortal",[Rxe,VF]=qF(dE,{forceMount:void 0}),GF=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=Za(dE,t);return i.jsx(Rxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:l})}))})};GF.displayName=dE;var kg="DialogOverlay",YF=y.forwardRef((e,t)=>{const n=VF(kg,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Za(kg,e.__scopeDialog);return s.modal?i.jsx(Bn,{present:r||s.open,children:i.jsx($xe,{...a,ref:t})}):null});YF.displayName=kg;var Dxe=Oxe("DialogOverlay.RemoveScroll"),$xe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(kg,n);return i.jsx(Xh,{as:Dxe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx($e.div,{"data-state":hE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),yl="DialogContent",KF=y.forwardRef((e,t)=>{const n=VF(yl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Za(yl,e.__scopeDialog);return i.jsx(Bn,{present:r||s.open,children:s.modal?i.jsx(Ixe,{...a,ref:t}):i.jsx(Lxe,{...a,ref:t})})});KF.displayName=yl;var Ixe=y.forwardRef((e,t)=>{const n=Za(yl,e.__scopeDialog),r=y.useRef(null),a=Ue(t,n.contentRef,r);return y.useEffect(()=>{const s=r.current;if(s)return zy(s)},[]),i.jsx(XF,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:_e(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:_e(e.onPointerDownOutside,s=>{const l=s.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&s.preventDefault()}),onFocusOutside:_e(e.onFocusOutside,s=>s.preventDefault())})}),Lxe=y.forwardRef((e,t)=>{const n=Za(yl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(XF,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),XF=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...l}=e,u=Za(yl,n),d=y.useRef(null),f=Ue(t,d);return Ly(),i.jsxs(i.Fragment,{children:[i.jsx(Kh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Al,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":hE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(zxe,{titleId:u.titleId}),i.jsx(Fxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),fE="DialogTitle",ZF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(fE,n);return i.jsx($e.h2,{id:a.titleId,...r,ref:t})});ZF.displayName=fE;var QF="DialogDescription",JF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(QF,n);return i.jsx($e.p,{id:a.descriptionId,...r,ref:t})});JF.displayName=QF;var e8="DialogClose",t8=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(e8,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,()=>a.onOpenChange(!1))})});t8.displayName=e8;function hE(e){return e?"open":"closed"}var n8="DialogTitleWarning",[Bxe,r8]=mZ(n8,{contentName:yl,titleName:fE,docsSlug:"dialog"}),zxe=({titleId:e})=>{const t=r8(n8),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},qxe="DialogDescriptionWarning",Fxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r8(qxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},hE=UF,a8=WF,mE=GF,Fy=YF,Uy=KF,pE=ZF,vE=JF,gE=t8;const sr=hE,i8=a8,Uxe=mE,s8=y.forwardRef(({className:e,...t},n)=>i.jsx(Fy,{ref:n,className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));s8.displayName=Fy.displayName;const Kn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Uxe,{children:[i.jsx(s8,{}),i.jsxs(Uy,{ref:r,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(gE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Yh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Kn.displayName=Uy.displayName;const Xn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Xn.displayName="DialogHeader";const Br=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Br.displayName="DialogFooter";const Zn=y.forwardRef(({className:e,...t},n)=>i.jsx(pE,{ref:n,className:ce("text-lg font-semibold leading-none tracking-tight",e),...t}));Zn.displayName=pE.displayName;const vr=y.forwardRef(({className:e,...t},n)=>i.jsx(vE,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));vr.displayName=vE.displayName;var Hxe=Symbol("radix.slottable");function Wxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Hxe,t}var o8="AlertDialog",[Vxe]=gr(o8,[FF]),vs=FF(),l8=e=>{const{__scopeAlertDialog:t,...n}=e,r=vs(t);return i.jsx(hE,{...r,...n,modal:!0})};l8.displayName=o8;var Gxe="AlertDialogTrigger",c8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(a8,{...a,...r,ref:t})});c8.displayName=Gxe;var Yxe="AlertDialogPortal",u8=e=>{const{__scopeAlertDialog:t,...n}=e,r=vs(t);return i.jsx(mE,{...r,...n})};u8.displayName=Yxe;var Kxe="AlertDialogOverlay",d8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(Fy,{...a,...r,ref:t})});d8.displayName=Kxe;var Zc="AlertDialogContent",[Xxe,Zxe]=Vxe(Zc),Qxe=Wxe("AlertDialogContent"),f8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,s=vs(n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return i.jsx(Bxe,{contentName:Zc,titleName:h8,docsSlug:"alert-dialog",children:i.jsx(Xxe,{scope:n,cancelRef:d,children:i.jsxs(Uy,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:_e(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(Qxe,{children:r}),i.jsx(ebe,{contentRef:l})]})})})});f8.displayName=Zc;var h8="AlertDialogTitle",m8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(pE,{...a,...r,ref:t})});m8.displayName=h8;var p8="AlertDialogDescription",v8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(vE,{...a,...r,ref:t})});v8.displayName=p8;var Jxe="AlertDialogAction",g8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(gE,{...a,...r,ref:t})});g8.displayName=Jxe;var y8="AlertDialogCancel",x8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=Zxe(y8,n),s=vs(n),l=Ue(t,a);return i.jsx(gE,{...s,...r,ref:l})});x8.displayName=y8;var ebe=({contentRef:e})=>{const t=`\`${Zc}\` requires a description for the component to be accessible for screen reader users. +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},qxe="DialogDescriptionWarning",Fxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r8(qxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},mE=UF,a8=WF,pE=GF,Fy=YF,Uy=KF,vE=ZF,gE=JF,yE=t8;const sr=mE,i8=a8,Uxe=pE,s8=y.forwardRef(({className:e,...t},n)=>i.jsx(Fy,{ref:n,className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));s8.displayName=Fy.displayName;const Kn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Uxe,{children:[i.jsx(s8,{}),i.jsxs(Uy,{ref:r,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(yE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Yh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Kn.displayName=Uy.displayName;const Xn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Xn.displayName="DialogHeader";const Br=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Br.displayName="DialogFooter";const Zn=y.forwardRef(({className:e,...t},n)=>i.jsx(vE,{ref:n,className:ce("text-lg font-semibold leading-none tracking-tight",e),...t}));Zn.displayName=vE.displayName;const vr=y.forwardRef(({className:e,...t},n)=>i.jsx(gE,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));vr.displayName=gE.displayName;var Hxe=Symbol("radix.slottable");function Wxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Hxe,t}var o8="AlertDialog",[Vxe]=gr(o8,[FF]),vs=FF(),l8=e=>{const{__scopeAlertDialog:t,...n}=e,r=vs(t);return i.jsx(mE,{...r,...n,modal:!0})};l8.displayName=o8;var Gxe="AlertDialogTrigger",c8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(a8,{...a,...r,ref:t})});c8.displayName=Gxe;var Yxe="AlertDialogPortal",u8=e=>{const{__scopeAlertDialog:t,...n}=e,r=vs(t);return i.jsx(pE,{...r,...n})};u8.displayName=Yxe;var Kxe="AlertDialogOverlay",d8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(Fy,{...a,...r,ref:t})});d8.displayName=Kxe;var Zc="AlertDialogContent",[Xxe,Zxe]=Vxe(Zc),Qxe=Wxe("AlertDialogContent"),f8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,s=vs(n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return i.jsx(Bxe,{contentName:Zc,titleName:h8,docsSlug:"alert-dialog",children:i.jsx(Xxe,{scope:n,cancelRef:d,children:i.jsxs(Uy,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:_e(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(Qxe,{children:r}),i.jsx(ebe,{contentRef:l})]})})})});f8.displayName=Zc;var h8="AlertDialogTitle",m8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(vE,{...a,...r,ref:t})});m8.displayName=h8;var p8="AlertDialogDescription",v8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(gE,{...a,...r,ref:t})});v8.displayName=p8;var Jxe="AlertDialogAction",g8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(yE,{...a,...r,ref:t})});g8.displayName=Jxe;var y8="AlertDialogCancel",x8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=Zxe(y8,n),s=vs(n),l=Ue(t,a);return i.jsx(yE,{...s,...r,ref:l})});x8.displayName=y8;var ebe=({contentRef:e})=>{const t=`\`${Zc}\` requires a description for the component to be accessible for screen reader users. You can add a description to the \`${Zc}\` by passing a \`${p8}\` component as a child, which also benefits sighted users by adding visible context to the dialog. Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Zc}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},tbe=l8,nbe=c8,rbe=u8,b8=d8,w8=f8,j8=g8,S8=x8,_8=m8,N8=v8;const bn=tbe,mr=nbe,abe=rbe,C8=y.forwardRef(({className:e,...t},n)=>i.jsx(b8,{className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));C8.displayName=b8.displayName;const cn=y.forwardRef(({className:e,...t},n)=>i.jsxs(abe,{children:[i.jsx(C8,{}),i.jsx(w8,{ref:n,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));cn.displayName=w8.displayName;const un=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-2 text-center sm:text-left",e),...t});un.displayName="AlertDialogHeader";const dn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});dn.displayName="AlertDialogFooter";const fn=y.forwardRef(({className:e,...t},n)=>i.jsx(_8,{ref:n,className:ce("text-lg font-semibold",e),...t}));fn.displayName=_8.displayName;const hn=y.forwardRef(({className:e,...t},n)=>i.jsx(N8,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));hn.displayName=N8.displayName;const mn=y.forwardRef(({className:e,...t},n)=>i.jsx(j8,{ref:n,className:ce(xh(),e),...t}));mn.displayName=j8.displayName;const pn=y.forwardRef(({className:e,...t},n)=>i.jsx(S8,{ref:n,className:ce(xh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));pn.displayName=S8.displayName;function ibe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(dl,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Rt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(pF,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Rt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx($ge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Rt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Fa,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Rt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Mu,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Wt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(sn,{value:"appearance",className:"mt-0",children:i.jsx(sbe,{})}),i.jsx(sn,{value:"security",className:"mt-0",children:i.jsx(obe,{})}),i.jsx(sn,{value:"other",className:"mt-0",children:i.jsx(lbe,{})}),i.jsx(sn,{value:"about",className:"mt-0",children:i.jsx(cbe,{})})]})]})]})}function gL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=s=>{s=s.replace("#","");const l=parseInt(s.substring(0,2),16)/255,u=parseInt(s.substring(2,4),16)/255,d=parseInt(s.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";gL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),gL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(s_,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(s_,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(s_,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Sa,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(Sa,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(Sa,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(Sa,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(Sa,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(Sa,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Sa,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(Sa,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(Sa,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(Sa,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(Sa,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(Sa,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ne,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(Q,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(lt,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(Q,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(lt,{id:"waves-background",checked:a,onCheckedChange:s})]})})]})]})]})}function obe(){const e=la(),[t,n]=y.useState(""),[r,a]=y.useState(""),[s,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(""),[O,A]=y.useState(!1),{toast:C}=yr(),k=y.useMemo(()=>jye(r),[r]),T=()=>localStorage.getItem("access-token")||"",M=async q=>{try{await navigator.clipboard.writeText(q),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},R=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const q=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${q}`,variant:"destructive"});return}m(!0);try{const q=T(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`},body:JSON.stringify({new_token:r.trim()})}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:L.message||"无法更新 Token",variant:"destructive"})}catch(q){console.error("更新 Token 错误:",q),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},B=async()=>{g(!0);try{const q=T(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`}}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",L.token),n(L.token),E(L.token),b(!0),A(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:L.message||"无法生成新 Token",variant:"destructive"})}catch(q){console.error("生成 Token 错误:",q),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},$=async()=>{try{await navigator.clipboard.writeText(N),A(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},H=()=>{b(!1),setTimeout(()=>{E(""),A(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=q=>{q||H()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(sr,{open:w,onOpenChange:V,children:i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(Kc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(vr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(Q,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Kc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs(Br,{className:"gap-2 sm:gap-0",children:[i.jsx(oe,{variant:"outline",onClick:$,className:"gap-2",children:O?i.jsxs(i.Fragment,{children:[i.jsx(ol,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(ZN,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(oe,{onClick:H,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ne,{id:"current-token",type:s?"text":"password",value:t||T(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(T()),l(!s)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:s?"隐藏":"显示",children:s?i.jsx(JN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(oe,{variant:"outline",size:"icon",onClick:()=>M(T()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(ol,{className:"h-4 w-4 text-green-500"}):i.jsx(ZN,{className:"h-4 w-4"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(is,{className:ce("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重新生成 Token"}),i.jsx(hn,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:B,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ne,{id:"new-token",type:u?"text":"password",value:r,onChange:q=>a(q.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(JN,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(q=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[q.passed?i.jsx(Pr,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(XN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:ce(q.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:q.label})]},q.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(ol,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(oe,{onClick:R,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function lbe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const s=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${s}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(s){console.error("重置配置状态错误:",s),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(Cge,{className:ce("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重新配置"}),i.jsx(hn,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function cbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",cE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",lE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Wt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(an,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(an,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(an,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(an,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(an,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(an,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(an,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(an,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(an,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(an,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(an,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(an,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(an,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(an,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(an,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(an,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function an({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function s_({value:e,current:t,onChange:n,label:r,description:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function Sa({value:e,current:t,onChange:n,label:r,colorClass:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:ce("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class ube{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const s=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),s),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),s),l)}}function dbe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new ube(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,s=e.current;if(!a||!s)return;const l=r.current,u=()=>{const w=a.getBoundingClientRect();l.bounding=w,s.style.width=`${w.width}px`,s.style.height=`${w.height}px`},d=()=>{if(!l.bounding)return;const{width:w,height:b}=l.bounding;l.lines=[],l.paths.forEach(R=>R.remove()),l.paths=[];const N=10,E=32,O=w+200,A=b+30,C=Math.ceil(O/N),k=Math.ceil(A/E),T=(w-N*C)/2,M=(b-E*k)/2;for(let R=0;R<=C;R++){const B=[];for(let H=0;H<=k;H++){const V={x:T+N*R,y:M+E*H,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};B.push(V)}const $=document.createElementNS("http://www.w3.org/2000/svg","path");s.appendChild($),l.paths.push($),l.lines.push(B)}},f=w=>{const{lines:b,mouse:N,noise:E}=l;b.forEach(O=>{O.forEach(A=>{const C=E.perlin2((A.x+w*.0125)*.002,(A.y+w*.005)*.0015)*12;A.wave.x=Math.cos(C)*32,A.wave.y=Math.sin(C)*16;const k=A.x-N.sx,T=A.y-N.sy,M=Math.hypot(k,T),R=Math.max(175,N.vs);if(M{const N={x:w.x+w.wave.x+(b?w.cursor.x:0),y:w.y+w.wave.y+(b?w.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:w,paths:b}=l;w.forEach((N,E)=>{let O=m(N[0],!1),A=`M ${O.x} ${O.y}`;N.forEach((C,k)=>{const T=k===N.length-1;O=m(C,!T),A+=`L ${O.x} ${O.y}`}),b[E].setAttribute("d",A)})},g=w=>{const{mouse:b}=l;b.sx+=(b.x-b.sx)*.1,b.sy+=(b.y-b.sy)*.1;const N=b.x-b.lx,E=b.y-b.ly,O=Math.hypot(N,E);b.v=O,b.vs+=(O-b.vs)*.1,b.vs=Math.min(100,b.vs),b.lx=b.x,b.ly=b.y,b.a=Math.atan2(E,N),a&&(a.style.setProperty("--x",`${b.sx}px`),a.style.setProperty("--y",`${b.sy}px`)),f(w),p(),n.current=requestAnimationFrame(g)},x=w=>{if(!l.bounding)return;const{mouse:b}=l;b.x=w.pageX-l.bounding.left,b.y=w.pageY-l.bounding.top+window.scrollY,b.set||(b.sx=b.x,b.sy=b.y,b.lx=b.x,b.ly=b.y,b.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},tbe=l8,nbe=c8,rbe=u8,b8=d8,w8=f8,j8=g8,S8=x8,_8=m8,N8=v8;const bn=tbe,mr=nbe,abe=rbe,C8=y.forwardRef(({className:e,...t},n)=>i.jsx(b8,{className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));C8.displayName=b8.displayName;const cn=y.forwardRef(({className:e,...t},n)=>i.jsxs(abe,{children:[i.jsx(C8,{}),i.jsx(w8,{ref:n,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));cn.displayName=w8.displayName;const un=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-2 text-center sm:text-left",e),...t});un.displayName="AlertDialogHeader";const dn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});dn.displayName="AlertDialogFooter";const fn=y.forwardRef(({className:e,...t},n)=>i.jsx(_8,{ref:n,className:ce("text-lg font-semibold",e),...t}));fn.displayName=_8.displayName;const hn=y.forwardRef(({className:e,...t},n)=>i.jsx(N8,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));hn.displayName=N8.displayName;const mn=y.forwardRef(({className:e,...t},n)=>i.jsx(j8,{ref:n,className:ce(xh(),e),...t}));mn.displayName=j8.displayName;const pn=y.forwardRef(({className:e,...t},n)=>i.jsx(S8,{ref:n,className:ce(xh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));pn.displayName=S8.displayName;function ibe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(dl,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Rt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(pF,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Rt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx($ge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Rt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Fa,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Rt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Mu,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Wt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(sn,{value:"appearance",className:"mt-0",children:i.jsx(sbe,{})}),i.jsx(sn,{value:"security",className:"mt-0",children:i.jsx(obe,{})}),i.jsx(sn,{value:"other",className:"mt-0",children:i.jsx(lbe,{})}),i.jsx(sn,{value:"about",className:"mt-0",children:i.jsx(cbe,{})})]})]})]})}function gL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=s=>{s=s.replace("#","");const l=parseInt(s.substring(0,2),16)/255,u=parseInt(s.substring(2,4),16)/255,d=parseInt(s.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";gL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),gL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(o_,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(o_,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(o_,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Sa,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(Sa,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(Sa,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(Sa,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(Sa,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(Sa,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Sa,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(Sa,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(Sa,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(Sa,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(Sa,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(Sa,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ne,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(Q,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(lt,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(Q,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(lt,{id:"waves-background",checked:a,onCheckedChange:s})]})})]})]})]})}function obe(){const e=la(),[t,n]=y.useState(""),[r,a]=y.useState(""),[s,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(""),[O,A]=y.useState(!1),{toast:C}=yr(),k=y.useMemo(()=>jye(r),[r]),T=()=>localStorage.getItem("access-token")||"",M=async q=>{try{await navigator.clipboard.writeText(q),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},R=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const q=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${q}`,variant:"destructive"});return}m(!0);try{const q=T(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`},body:JSON.stringify({new_token:r.trim()})}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:L.message||"无法更新 Token",variant:"destructive"})}catch(q){console.error("更新 Token 错误:",q),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},B=async()=>{g(!0);try{const q=T(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`}}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",L.token),n(L.token),E(L.token),b(!0),A(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:L.message||"无法生成新 Token",variant:"destructive"})}catch(q){console.error("生成 Token 错误:",q),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},$=async()=>{try{await navigator.clipboard.writeText(N),A(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},H=()=>{b(!1),setTimeout(()=>{E(""),A(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=q=>{q||H()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(sr,{open:w,onOpenChange:V,children:i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(Kc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(vr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(Q,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Kc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs(Br,{className:"gap-2 sm:gap-0",children:[i.jsx(oe,{variant:"outline",onClick:$,className:"gap-2",children:O?i.jsxs(i.Fragment,{children:[i.jsx(ol,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(QN,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(oe,{onClick:H,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ne,{id:"current-token",type:s?"text":"password",value:t||T(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(T()),l(!s)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:s?"隐藏":"显示",children:s?i.jsx(eC,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(oe,{variant:"outline",size:"icon",onClick:()=>M(T()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(ol,{className:"h-4 w-4 text-green-500"}):i.jsx(QN,{className:"h-4 w-4"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(is,{className:ce("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重新生成 Token"}),i.jsx(hn,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:B,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ne,{id:"new-token",type:u?"text":"password",value:r,onChange:q=>a(q.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(eC,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(q=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[q.passed?i.jsx(Pr,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(ZN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:ce(q.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:q.label})]},q.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(ol,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(oe,{onClick:R,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function lbe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const s=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${s}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(s){console.error("重置配置状态错误:",s),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(Cge,{className:ce("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重新配置"}),i.jsx(hn,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function cbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",uE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",cE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Wt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(an,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(an,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(an,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(an,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(an,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(an,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(an,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(an,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(an,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(an,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(an,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(an,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(an,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(an,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(an,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(an,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function an({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function o_({value:e,current:t,onChange:n,label:r,description:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function Sa({value:e,current:t,onChange:n,label:r,colorClass:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:ce("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class ube{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const s=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),s),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),s),l)}}function dbe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new ube(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,s=e.current;if(!a||!s)return;const l=r.current,u=()=>{const w=a.getBoundingClientRect();l.bounding=w,s.style.width=`${w.width}px`,s.style.height=`${w.height}px`},d=()=>{if(!l.bounding)return;const{width:w,height:b}=l.bounding;l.lines=[],l.paths.forEach(R=>R.remove()),l.paths=[];const N=10,E=32,O=w+200,A=b+30,C=Math.ceil(O/N),k=Math.ceil(A/E),T=(w-N*C)/2,M=(b-E*k)/2;for(let R=0;R<=C;R++){const B=[];for(let H=0;H<=k;H++){const V={x:T+N*R,y:M+E*H,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};B.push(V)}const $=document.createElementNS("http://www.w3.org/2000/svg","path");s.appendChild($),l.paths.push($),l.lines.push(B)}},f=w=>{const{lines:b,mouse:N,noise:E}=l;b.forEach(O=>{O.forEach(A=>{const C=E.perlin2((A.x+w*.0125)*.002,(A.y+w*.005)*.0015)*12;A.wave.x=Math.cos(C)*32,A.wave.y=Math.sin(C)*16;const k=A.x-N.sx,T=A.y-N.sy,M=Math.hypot(k,T),R=Math.max(175,N.vs);if(M{const N={x:w.x+w.wave.x+(b?w.cursor.x:0),y:w.y+w.wave.y+(b?w.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:w,paths:b}=l;w.forEach((N,E)=>{let O=m(N[0],!1),A=`M ${O.x} ${O.y}`;N.forEach((C,k)=>{const T=k===N.length-1;O=m(C,!T),A+=`L ${O.x} ${O.y}`}),b[E].setAttribute("d",A)})},g=w=>{const{mouse:b}=l;b.sx+=(b.x-b.sx)*.1,b.sy+=(b.y-b.sy)*.1;const N=b.x-b.lx,E=b.y-b.ly,O=Math.hypot(N,E);b.v=O,b.vs+=(O-b.vs)*.1,b.vs=Math.min(100,b.vs),b.lx=b.x,b.ly=b.y,b.a=Math.atan2(E,N),a&&(a.style.setProperty("--x",`${b.sx}px`),a.style.setProperty("--y",`${b.sy}px`)),f(w),p(),n.current=requestAnimationFrame(g)},x=w=>{if(!l.bounding)return;const{mouse:b}=l;b.x=w.pageX-l.bounding.left,b.y=w.pageY-l.bounding.top+window.scrollY,b.set||(b.sx=b.x,b.sy=b.y,b.lx=b.x,b.ly=b.y,b.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` path { fill: none; stroke: hsl(var(--primary) / 0.20); stroke-width: 1px; } - `})})]})}function fbe(){const e=la();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function O8(){return!!localStorage.getItem("access-token")}function hbe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,s]=y.useState(""),l=la(),{enableWavesBackground:u,setEnableWavesBackground:d}=bF(),{theme:f,setTheme:m}=oE();y.useEffect(()=>{O8()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async w=>{if(w.preventDefault(),s(""),!e.trim()){s("请输入 Access Token");return}r(!0);try{const b=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await b.json();if(b.ok&&N.valid){localStorage.setItem("access-token",e.trim());const E=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),O=await E.json();E.ok&&O.is_first_setup?l({to:"/setup"}):l({to:"/"})}else s(N.message||"Token 验证失败,请检查后重试")}catch(b){console.error("Token 验证错误:",b),s("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(dbe,{}),i.jsxs(Xe,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(nC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(tC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(pt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(JI,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(vt,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(Wn,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(Ct,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx(oge,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ne,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:w=>t(w.target.value),className:ce("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(gl,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(oe,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(sr,{children:[i.jsx(i8,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(Bve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(JI,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(vr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(Yge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(rE,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(gl,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(yh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsxs(fn,{className:"flex items-center gap-2",children:[i.jsx(yh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(hn,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:Sye})})]})}const Xt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Xt.displayName="Textarea";var mbe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pbe=mbe.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),vbe="Separator",yL="horizontal",gbe=["horizontal","vertical"],E8=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=yL,...a}=e,s=ybe(r)?r:yL,u=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return i.jsx(pbe.div,{"data-orientation":s,...u,...a,ref:t})});E8.displayName=vbe;function ybe(e){return gbe.includes(e)}var A8=E8;const bh=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(A8,{ref:a,decorative:n,orientation:t,className:ce("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));bh.displayName=A8.displayName;const xbe=Zu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Ft({className:e,variant:t,...n}){return i.jsx("div",{className:ce(xbe({variant:t}),e),...n})}function bbe({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((s,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ne,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ne,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,s)=>i.jsxs(Ft,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(s),className:"ml-1 hover:text-destructive",children:i.jsx(Yh,{className:"h-3 w-3"})})]},s))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(oe,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function wbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Xt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Xt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Xt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(bh,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Xt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Xt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function jbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ne,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(lt,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(lt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(lt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function Sbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(lt,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(lt,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ne,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Xt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(lt,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function rt(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function dt(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function _be(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function Nbe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function Cbe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function Obe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},s=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:s.all_global??!0}}async function Ebe(e){const t=await rt("/api/webui/config/bot/section/bot",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function Abe(e){const t=await rt("/api/webui/config/bot/section/personality",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function Tbe(e){const t=await rt("/api/webui/config/bot/section/emoji",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function kbe(e){const t=[];t.push(rt("/api/webui/config/bot/section/tool",{method:"POST",headers:dt(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(rt("/api/webui/config/bot/section/jargon",{method:"POST",headers:dt(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(rt("/api/webui/config/bot/section/mood",{method:"POST",headers:dt(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const s=await a.json();throw new Error(s.detail||"保存其他配置失败")}return{success:!0}}async function xL(){const e=localStorage.getItem("access-token"),t=await rt("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function Mbe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState(0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 + `})})]})}function fbe(){const e=la();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function O8(){return!!localStorage.getItem("access-token")}function hbe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,s]=y.useState(""),l=la(),{enableWavesBackground:u,setEnableWavesBackground:d}=bF(),{theme:f,setTheme:m}=lE();y.useEffect(()=>{O8()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async w=>{if(w.preventDefault(),s(""),!e.trim()){s("请输入 Access Token");return}r(!0);try{const b=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await b.json();if(b.ok&&N.valid){localStorage.setItem("access-token",e.trim());const E=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),O=await E.json();E.ok&&O.is_first_setup?l({to:"/setup"}):l({to:"/"})}else s(N.message||"Token 验证失败,请检查后重试")}catch(b){console.error("Token 验证错误:",b),s("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(dbe,{}),i.jsxs(Xe,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(rC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(nC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(pt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(JI,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(vt,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(Wn,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(Ct,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx(oge,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ne,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:w=>t(w.target.value),className:ce("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(gl,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(oe,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(sr,{children:[i.jsx(i8,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(Bve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(JI,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(vr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(Yge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(aE,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(gl,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(yh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsxs(fn,{className:"flex items-center gap-2",children:[i.jsx(yh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(hn,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:Sye})})]})}const Xt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Xt.displayName="Textarea";var mbe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pbe=mbe.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),vbe="Separator",yL="horizontal",gbe=["horizontal","vertical"],E8=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=yL,...a}=e,s=ybe(r)?r:yL,u=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return i.jsx(pbe.div,{"data-orientation":s,...u,...a,ref:t})});E8.displayName=vbe;function ybe(e){return gbe.includes(e)}var A8=E8;const bh=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(A8,{ref:a,decorative:n,orientation:t,className:ce("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));bh.displayName=A8.displayName;const xbe=Zu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Ft({className:e,variant:t,...n}){return i.jsx("div",{className:ce(xbe({variant:t}),e),...n})}function bbe({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((s,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ne,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ne,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,s)=>i.jsxs(Ft,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(s),className:"ml-1 hover:text-destructive",children:i.jsx(Yh,{className:"h-3 w-3"})})]},s))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(oe,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function wbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Xt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Xt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Xt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(bh,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Xt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Xt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function jbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ne,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(lt,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(lt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(lt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function Sbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(lt,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(lt,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ne,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Xt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(lt,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function rt(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function dt(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function _be(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function Nbe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function Cbe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function Obe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},s=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:s.all_global??!0}}async function Ebe(e){const t=await rt("/api/webui/config/bot/section/bot",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function Abe(e){const t=await rt("/api/webui/config/bot/section/personality",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function Tbe(e){const t=await rt("/api/webui/config/bot/section/emoji",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function kbe(e){const t=[];t.push(rt("/api/webui/config/bot/section/tool",{method:"POST",headers:dt(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(rt("/api/webui/config/bot/section/jargon",{method:"POST",headers:dt(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(rt("/api/webui/config/bot/section/mood",{method:"POST",headers:dt(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const s=await a.json();throw new Error(s.detail||"保存其他配置失败")}return{success:!0}}async function xL(){const e=localStorage.getItem("access-token"),t=await rt("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function Mbe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState(0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 2.如果相同的内容已经被执行,请不要重复执行 3.请控制你的发言频率,不要太过频繁的发言 4.如果有人对你感到厌烦,请减少回复 5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 2.如果相同的内容已经被执行,请不要重复执行 -3.某句话如果已经被回复过,不要重复回复`}),[j,w]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[b,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),E=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:_ve},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:gF},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:sE},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Fa},{id:"complete",title:"完成设置",description:"后续配置提示",icon:yh}],O=(n+1)/E.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[$,H,V,q]=await Promise.all([_be(),Nbe(),Cbe(),Obe()]);p($),x(H),w(V),N(q)}catch($){t({title:"加载配置失败",description:$ instanceof Error?$.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const A=async()=>{u(!0);try{switch(n){case 0:await Ebe(m);break;case 1:await Abe(g);break;case 2:await Tbe(j);break;case 3:await kbe(b);break}return t({title:"保存成功",description:`${E[n].title}配置已保存`}),!0}catch(B){return t({title:"保存失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await A()&&n{n>0&&r(n-1)},T=async()=>{s(!0);try{if(!await A()){s(!1);return}await xL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(B){t({title:"完成失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}finally{s(!1)}},M=async()=>{try{await xL(),e({to:"/"})}catch(B){t({title:"跳过失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}},R=()=>{switch(n){case 0:return i.jsx(bbe,{config:m,onChange:p});case 1:return i.jsx(wbe,{config:g,onChange:x});case 2:return i.jsx(jbe,{config:j,onChange:w});case 3:return i.jsx(Sbe,{config:b,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(yh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(Uge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",cE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",E.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(O),"%"]})]}),i.jsx($h,{value:O,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:E.map((B,$)=>{const H=B.icon;return i.jsxs("div",{className:ce("flex flex-1 flex-col items-center gap-1 md:gap-2",$e({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(Ag,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(oe,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(fF,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var k8=["PageUp","PageDown"],M8=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],P8={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Qu="Slider",[iC,Pbe,Rbe]=Ph(Qu),[R8]=gr(Qu,[Rbe]),[Dbe,Hy]=R8(Qu),D8=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:s=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...w}=e,b=y.useRef(new Set),N=y.useRef(0),O=l==="horizontal"?$be:Ibe,[A=[],C]=Ea({prop:m,defaultProp:f,onChange:$=>{[...b.current][N.current]?.focus(),p($)}}),k=y.useRef(A);function T($){const H=Fbe(A,$);B($,H)}function M($){B($,N.current)}function R(){const $=k.current[N.current];A[N.current]!==$&&g(A)}function B($,H,{commit:V}={commit:!1}){const q=Vbe(s),G=Gbe(Math.round(($-r)/s)*s+r,q),L=Rf(G,[r,a]);C((D=[])=>{const U=zbe(D,L,H);if(Wbe(U,d*s)){N.current=U.indexOf(L);const K=String(U)!==String(D);return K&&V&&g(U),K?U:D}else return D})}return i.jsx(Dbe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:b.current,values:A,orientation:l,form:j,children:i.jsx(iC.Provider,{scope:e.__scopeSlider,children:i.jsx(iC.Slot,{scope:e.__scopeSlider,children:i.jsx(O,{"aria-disabled":u,"data-disabled":u?"":void 0,...w,ref:t,onPointerDown:_e(w.onPointerDown,()=>{u||(k.current=A)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:T,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:R,onHomeKeyDown:()=>!u&&B(r,0,{commit:!0}),onEndKeyDown:()=>!u&&B(a,A.length-1,{commit:!0}),onStepKeyDown:({event:$,direction:H})=>{if(!u){const G=k8.includes($.key)||$.shiftKey&&M8.includes($.key)?10:1,L=N.current,D=A[L],U=s*G*H;B(D+U,L,{commit:!0})}}})})})})});D8.displayName=Qu;var[$8,I8]=R8(Qu,{startEdge:"left",endEdge:"right",size:"width",direction:1}),$be=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:s,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=Ue(t,O=>g(O)),j=y.useRef(void 0),w=Fu(a),b=w==="ltr",N=b&&!s||!b&&s;function E(O){const A=j.current||p.getBoundingClientRect(),C=[0,A.width],T=yE(C,N?[n,r]:[r,n]);return j.current=A,T(O-A.left)}return i.jsx($8,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(L8,{dir:w,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:O=>{const A=E(O.clientX);l?.(A)},onSlideMove:O=>{const A=E(O.clientX);u?.(A)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:O=>{const C=P8[N?"from-left":"from-right"].includes(O.key);f?.({event:O,direction:C?-1:1})}})})}),Ibe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:s,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=Ue(t,m),g=y.useRef(void 0),x=!a;function j(w){const b=g.current||m.current.getBoundingClientRect(),N=[0,b.height],O=yE(N,x?[r,n]:[n,r]);return g.current=b,O(w-b.top)}return i.jsx($8,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(L8,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const b=j(w.clientY);s?.(b)},onSlideMove:w=>{const b=j(w.clientY);l?.(b)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:w=>{const N=P8[x?"from-bottom":"from-top"].includes(w.key);d?.({event:w,direction:N?-1:1})}})})}),L8=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:s,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=Hy(Qu,n);return i.jsx($e.span,{...f,ref:t,onKeyDown:_e(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):k8.concat(M8).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:_e(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:_e(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:_e(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),s(p))})})}),B8="SliderTrack",z8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Hy(B8,n);return i.jsx($e.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});z8.displayName=B8;var sC="SliderRange",q8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Hy(sC,n),s=I8(sC,n),l=y.useRef(null),u=Ue(t,l),d=a.values.length,f=a.values.map(g=>H8(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx($e.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[s.startEdge]:m+"%",[s.endEdge]:p+"%"}})});q8.displayName=sC;var oC="SliderThumb",F8=y.forwardRef((e,t)=>{const n=Pbe(e.__scopeSlider),[r,a]=y.useState(null),s=Ue(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(Lbe,{...e,ref:s,index:l})}),Lbe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...s}=e,l=Hy(oC,n),u=I8(oC,n),[d,f]=y.useState(null),m=Ue(t,E=>f(E)),p=d?l.form||!!d.closest("form"):!0,g=$y(d),x=l.values[r],j=x===void 0?0:H8(x,l.min,l.max),w=qbe(r,l.values.length),b=g?.[u.size],N=b?Ube(b,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(iC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx($e.span,{role:"slider","aria-label":e["aria-label"]||w,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...s,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:_e(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(U8,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});F8.displayName=oC;var Bbe="RadioBubbleInput",U8=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(a,r),l=Dy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.input,{style:{display:"none"},...n,ref:s,defaultValue:t})});U8.displayName=Bbe;function zbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,s)=>a-s)}function H8(e,t,n){const s=100/(n-t)*(e-t);return Rf(s,[0,100])}function qbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Fbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function Ube(e,t,n){const r=e/2,s=yE([0,50],[0,r]);return(r-s(t)*n)*n}function Hbe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Wbe(e,t){if(t>0){const n=Hbe(e);return Math.min(...n)>=t}return!0}function yE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Vbe(e){return(String(e).split(".")[1]||"").length}function Gbe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var W8=D8,Ybe=z8,Kbe=q8,Xbe=F8;const xE=y.forwardRef(({className:e,...t},n)=>i.jsxs(W8,{ref:n,className:ce("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(Ybe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Kbe,{className:"absolute h-full bg-primary"})}),i.jsx(Xbe,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));xE.displayName=W8.displayName;const Zbe=["top","right","bottom","left"],to=Math.min,na=Math.max,Mg=Math.round,Zp=Math.floor,gi=e=>({x:e,y:e}),Qbe={left:"right",right:"left",bottom:"top",top:"bottom"},Jbe={start:"end",end:"start"};function lC(e,t,n){return na(e,to(t,n))}function cs(e,t){return typeof e=="function"?e(t):e}function us(e){return e.split("-")[0]}function Ju(e){return e.split("-")[1]}function bE(e){return e==="x"?"y":"x"}function wE(e){return e==="y"?"height":"width"}const e0e=new Set(["top","bottom"]);function fi(e){return e0e.has(us(e))?"y":"x"}function jE(e){return bE(fi(e))}function t0e(e,t,n){n===void 0&&(n=!1);const r=Ju(e),a=jE(e),s=wE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Pg(l)),[l,Pg(l)]}function n0e(e){const t=Pg(e);return[cC(e),t,cC(t)]}function cC(e){return e.replace(/start|end/g,t=>Jbe[t])}const bL=["left","right"],wL=["right","left"],r0e=["top","bottom"],a0e=["bottom","top"];function i0e(e,t,n){switch(e){case"top":case"bottom":return n?t?wL:bL:t?bL:wL;case"left":case"right":return t?r0e:a0e;default:return[]}}function s0e(e,t,n,r){const a=Ju(e);let s=i0e(us(e),n==="start",r);return a&&(s=s.map(l=>l+"-"+a),t&&(s=s.concat(s.map(cC)))),s}function Pg(e){return e.replace(/left|right|bottom|top/g,t=>Qbe[t])}function o0e(e){return{top:0,right:0,bottom:0,left:0,...e}}function V8(e){return typeof e!="number"?o0e(e):{top:e,right:e,bottom:e,left:e}}function Rg(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function jL(e,t,n){let{reference:r,floating:a}=e;const s=fi(t),l=jE(t),u=wE(l),d=us(t),f=s==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(Ju(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const l0e=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:l}=n,u=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=jL(f,r,d),g=r,x={},j=0;for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=cs(e,t)||{};if(f==null)return{};const p=V8(m),g={x:n,y:r},x=jE(a),j=wE(x),w=await l.getDimensions(f),b=x==="y",N=b?"top":"left",E=b?"bottom":"right",O=b?"clientHeight":"clientWidth",A=s.reference[j]+s.reference[x]-g[x]-s.floating[j],C=g[x]-s.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let T=k?k[O]:0;(!T||!await(l.isElement==null?void 0:l.isElement(k)))&&(T=u.floating[O]||s.floating[j]);const M=A/2-C/2,R=T/2-w[j]/2-1,B=to(p[N],R),$=to(p[E],R),H=B,V=T-w[j]-$,q=T/2-w[j]/2+M,G=lC(H,q,V),L=!d.arrow&&Ju(a)!=null&&q!==G&&s.reference[j]/2-(qq<=0)){var $,H;const q=((($=s.flip)==null?void 0:$.index)||0)+1,G=T[q];if(G&&(!(p==="alignment"?E!==fi(G):!1)||B.every(U=>fi(U.placement)===E?U.overflows[0]>0:!0)))return{data:{index:q,overflows:B},reset:{placement:G}};let L=(H=B.filter(D=>D.overflows[0]<=0).sort((D,U)=>D.overflows[1]-U.overflows[1])[0])==null?void 0:H.placement;if(!L)switch(x){case"bestFit":{var V;const D=(V=B.filter(U=>{if(k){const K=fi(U.placement);return K===E||K==="y"}return!0}).map(U=>[U.placement,U.overflows.filter(K=>K>0).reduce((K,J)=>K+J,0)]).sort((U,K)=>U[1]-K[1])[0])==null?void 0:V[0];D&&(L=D);break}case"initialPlacement":L=u;break}if(a!==L)return{reset:{placement:L}}}return{}}}};function SL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function _L(e){return Zbe.some(t=>e[t]>=0)}const d0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=cs(e,t);switch(r){case"referenceHidden":{const s=await wh(t,{...a,elementContext:"reference"}),l=SL(s,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:_L(l)}}}case"escaped":{const s=await wh(t,{...a,altBoundary:!0}),l=SL(s,n.floating);return{data:{escapedOffsets:l,escaped:_L(l)}}}default:return{}}}}},G8=new Set(["left","top"]);async function f0e(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=us(n),u=Ju(n),d=fi(n)==="y",f=G8.has(l)?-1:1,m=s&&d?-1:1,p=cs(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const h0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:l,middlewareData:u}=t,d=await f0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:s+d.y,data:{...d,placement:l}}}}},m0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:b=>{let{x:N,y:E}=b;return{x:N,y:E}}},...d}=cs(e,t),f={x:n,y:r},m=await wh(t,d),p=fi(us(a)),g=bE(p);let x=f[g],j=f[p];if(s){const b=g==="y"?"top":"left",N=g==="y"?"bottom":"right",E=x+m[b],O=x-m[N];x=lC(E,x,O)}if(l){const b=p==="y"?"top":"left",N=p==="y"?"bottom":"right",E=j+m[b],O=j-m[N];j=lC(E,j,O)}const w=u.fn({...t,[g]:x,[p]:j});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[g]:s,[p]:l}}}}}},p0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=cs(e,t),m={x:n,y:r},p=fi(a),g=bE(p);let x=m[g],j=m[p];const w=cs(u,t),b=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const O=g==="y"?"height":"width",A=s.reference[g]-s.floating[O]+b.mainAxis,C=s.reference[g]+s.reference[O]-b.mainAxis;xC&&(x=C)}if(f){var N,E;const O=g==="y"?"width":"height",A=G8.has(us(a)),C=s.reference[p]-s.floating[O]+(A&&((N=l.offset)==null?void 0:N[p])||0)+(A?0:b.crossAxis),k=s.reference[p]+s.reference[O]+(A?0:((E=l.offset)==null?void 0:E[p])||0)-(A?b.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},v0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:l,elements:u}=t,{apply:d=()=>{},...f}=cs(e,t),m=await wh(t,f),p=us(a),g=Ju(a),x=fi(a)==="y",{width:j,height:w}=s.floating;let b,N;p==="top"||p==="bottom"?(b=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,b=g==="end"?"top":"bottom");const E=w-m.top-m.bottom,O=j-m.left-m.right,A=to(w-m[b],E),C=to(j-m[N],O),k=!t.middlewareData.shift;let T=A,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=O),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=E),k&&!g){const B=na(m.left,0),$=na(m.right,0),H=na(m.top,0),V=na(m.bottom,0);x?M=j-2*(B!==0||$!==0?B+$:na(m.left,m.right)):T=w-2*(H!==0||V!==0?H+V:na(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:T});const R=await l.getDimensions(u.floating);return j!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function Wy(){return typeof window<"u"}function ed(e){return Y8(e)?(e.nodeName||"").toLowerCase():"#document"}function sa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ni(e){var t;return(t=(Y8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Y8(e){return Wy()?e instanceof Node||e instanceof sa(e).Node:!1}function Ga(e){return Wy()?e instanceof Element||e instanceof sa(e).Element:!1}function wi(e){return Wy()?e instanceof HTMLElement||e instanceof sa(e).HTMLElement:!1}function NL(e){return!Wy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof sa(e).ShadowRoot}const g0e=new Set(["inline","contents"]);function Zh(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Ya(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!g0e.has(a)}const y0e=new Set(["table","td","th"]);function x0e(e){return y0e.has(ed(e))}const b0e=[":popover-open",":modal"];function Vy(e){return b0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const w0e=["transform","translate","scale","rotate","perspective"],j0e=["transform","translate","scale","rotate","perspective","filter"],S0e=["paint","layout","strict","content"];function SE(e){const t=_E(),n=Ga(e)?Ya(e):e;return w0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||j0e.some(r=>(n.willChange||"").includes(r))||S0e.some(r=>(n.contain||"").includes(r))}function _0e(e){let t=no(e);for(;wi(t)&&!Du(t);){if(SE(t))return t;if(Vy(t))return null;t=no(t)}return null}function _E(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const N0e=new Set(["html","body","#document"]);function Du(e){return N0e.has(ed(e))}function Ya(e){return sa(e).getComputedStyle(e)}function Gy(e){return Ga(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function no(e){if(ed(e)==="html")return e;const t=e.assignedSlot||e.parentNode||NL(e)&&e.host||Ni(e);return NL(t)?t.host:t}function K8(e){const t=no(e);return Du(t)?e.ownerDocument?e.ownerDocument.body:e.body:wi(t)&&Zh(t)?t:K8(t)}function jh(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=K8(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),l=sa(a);if(s){const u=uC(l);return t.concat(l,l.visualViewport||[],Zh(a)?a:[],u&&n?jh(u):[])}return t.concat(a,jh(a,[],n))}function uC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function X8(e){const t=Ya(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=wi(e),s=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Mg(n)!==s||Mg(r)!==l;return u&&(n=s,r=l),{width:n,height:r,$:u}}function NE(e){return Ga(e)?e:e.contextElement}function Qc(e){const t=NE(e);if(!wi(t))return gi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=X8(t);let l=(s?Mg(n.width):n.width)/r,u=(s?Mg(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const C0e=gi(0);function Z8(e){const t=sa(e);return!_E()||!t.visualViewport?C0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function O0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==sa(e)?!1:t}function xl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=NE(e);let l=gi(1);t&&(r?Ga(r)&&(l=Qc(r)):l=Qc(e));const u=O0e(s,n,r)?Z8(s):gi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(s){const g=sa(s),x=r&&Ga(r)?sa(r):r;let j=g,w=uC(j);for(;w&&r&&x!==j;){const b=Qc(w),N=w.getBoundingClientRect(),E=Ya(w),O=N.left+(w.clientLeft+parseFloat(E.paddingLeft))*b.x,A=N.top+(w.clientTop+parseFloat(E.paddingTop))*b.y;d*=b.x,f*=b.y,m*=b.x,p*=b.y,d+=O,f+=A,j=sa(w),w=uC(j)}}return Rg({width:m,height:p,x:d,y:f})}function Yy(e,t){const n=Gy(e).scrollLeft;return t?t.left+n:xl(Ni(e)).left+n}function Q8(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Yy(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function E0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",l=Ni(r),u=t?Vy(t.floating):!1;if(r===l||u&&s)return n;let d={scrollLeft:0,scrollTop:0},f=gi(1);const m=gi(0),p=wi(r);if((p||!p&&!s)&&((ed(r)!=="body"||Zh(l))&&(d=Gy(r)),wi(r))){const x=xl(r);f=Qc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!s?Q8(l,d):gi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function A0e(e){return Array.from(e.getClientRects())}function T0e(e){const t=Ni(e),n=Gy(e),r=e.ownerDocument.body,a=na(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=na(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Yy(e);const u=-n.scrollTop;return Ya(r).direction==="rtl"&&(l+=na(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:l,y:u}}const CL=25;function k0e(e,t){const n=sa(e),r=Ni(e),a=n.visualViewport;let s=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){s=a.width,l=a.height;const m=_E();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Yy(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=CL&&(s-=j)}else f<=CL&&(s+=f);return{width:s,height:l,x:u,y:d}}const M0e=new Set(["absolute","fixed"]);function P0e(e,t){const n=xl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=wi(e)?Qc(e):gi(1),l=e.clientWidth*s.x,u=e.clientHeight*s.y,d=a*s.x,f=r*s.y;return{width:l,height:u,x:d,y:f}}function OL(e,t,n){let r;if(t==="viewport")r=k0e(e,n);else if(t==="document")r=T0e(Ni(e));else if(Ga(t))r=P0e(t,n);else{const a=Z8(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return Rg(r)}function J8(e,t){const n=no(e);return n===t||!Ga(n)||Du(n)?!1:Ya(n).position==="fixed"||J8(n,t)}function R0e(e,t){const n=t.get(e);if(n)return n;let r=jh(e,[],!1).filter(u=>Ga(u)&&ed(u)!=="body"),a=null;const s=Ya(e).position==="fixed";let l=s?no(e):e;for(;Ga(l)&&!Du(l);){const u=Ya(l),d=SE(l);!d&&u.position==="fixed"&&(a=null),(s?!d&&!a:!d&&u.position==="static"&&!!a&&M0e.has(a.position)||Zh(l)&&!d&&J8(e,l))?r=r.filter(m=>m!==l):a=u,l=no(l)}return t.set(e,r),r}function D0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?Vy(t)?[]:R0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=OL(t,m,a);return f.top=na(p.top,f.top),f.right=to(p.right,f.right),f.bottom=to(p.bottom,f.bottom),f.left=na(p.left,f.left),f},OL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function $0e(e){const{width:t,height:n}=X8(e);return{width:t,height:n}}function I0e(e,t,n){const r=wi(t),a=Ni(t),s=n==="fixed",l=xl(e,!0,s,t);let u={scrollLeft:0,scrollTop:0};const d=gi(0);function f(){d.x=Yy(a)}if(r||!r&&!s)if((ed(t)!=="body"||Zh(a))&&(u=Gy(t)),r){const x=xl(t,!0,s,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();s&&!r&&a&&f();const m=a&&!r&&!s?Q8(a,u):gi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function o_(e){return Ya(e).position==="static"}function EL(e,t){if(!wi(e)||Ya(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Ni(e)===n&&(n=n.ownerDocument.body),n}function eU(e,t){const n=sa(e);if(Vy(e))return n;if(!wi(e)){let a=no(e);for(;a&&!Du(a);){if(Ga(a)&&!o_(a))return a;a=no(a)}return n}let r=EL(e,t);for(;r&&x0e(r)&&o_(r);)r=EL(r,t);return r&&Du(r)&&o_(r)&&!SE(r)?n:r||_0e(e)||n}const L0e=async function(e){const t=this.getOffsetParent||eU,n=this.getDimensions,r=await n(e.floating);return{reference:I0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function B0e(e){return Ya(e).direction==="rtl"}const z0e={convertOffsetParentRelativeRectToViewportRelativeRect:E0e,getDocumentElement:Ni,getClippingRect:D0e,getOffsetParent:eU,getElementRects:L0e,getClientRects:A0e,getDimensions:$0e,getScale:Qc,isElement:Ga,isRTL:B0e};function tU(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function q0e(e,t){let n=null,r;const a=Ni(e);function s(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),s();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Zp(p),w=Zp(a.clientWidth-(m+g)),b=Zp(a.clientHeight-(p+x)),N=Zp(m),O={rootMargin:-j+"px "+-w+"px "+-b+"px "+-N+"px",threshold:na(0,to(1,d))||1};let A=!0;function C(k){const T=k[0].intersectionRatio;if(T!==d){if(!A)return l();T?l(!1,T):r=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!tU(f,e.getBoundingClientRect())&&l(),A=!1}try{n=new IntersectionObserver(C,{...O,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,O)}n.observe(e)}return l(!0),s}function F0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=NE(e),m=a||s?[...f?jh(f):[],...jh(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),s&&N.addEventListener("resize",n)});const p=f&&u?q0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[E]=N;E&&E.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var O;(O=x)==null||O.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,w=d?xl(e):null;d&&b();function b(){const N=xl(e);w&&!tU(w,N)&&n(),w=N,j=requestAnimationFrame(b)}return n(),()=>{var N;m.forEach(E=>{a&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const U0e=h0e,H0e=m0e,W0e=u0e,V0e=v0e,G0e=d0e,AL=c0e,Y0e=p0e,K0e=(e,t,n)=>{const r=new Map,a={platform:z0e,...n},s={...a.platform,_c:r};return l0e(e,t,{...a,platform:s})};var X0e=typeof document<"u",Z0e=function(){},mv=X0e?y.useLayoutEffect:Z0e;function Dg(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Dg(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!Dg(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function nU(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function TL(e,t){const n=nU(e);return Math.round(t*n)/n}function l_(e){const t=y.useRef(e);return mv(()=>{t.current=e}),t}function Q0e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);Dg(g,r)||x(r);const[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useCallback(U=>{U!==k.current&&(k.current=U,w(U))},[]),O=y.useCallback(U=>{U!==T.current&&(T.current=U,N(U))},[]),A=s||j,C=l||b,k=y.useRef(null),T=y.useRef(null),M=y.useRef(m),R=d!=null,B=l_(d),$=l_(a),H=l_(f),V=y.useCallback(()=>{if(!k.current||!T.current)return;const U={placement:t,strategy:n,middleware:g};$.current&&(U.platform=$.current),K0e(k.current,T.current,U).then(K=>{const J={...K,isPositioned:H.current!==!1};q.current&&!Dg(M.current,J)&&(M.current=J,Sl.flushSync(()=>{p(J)}))})},[g,t,n,$,H]);mv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(U=>({...U,isPositioned:!1})))},[f]);const q=y.useRef(!1);mv(()=>(q.current=!0,()=>{q.current=!1}),[]),mv(()=>{if(A&&(k.current=A),C&&(T.current=C),A&&C){if(B.current)return B.current(A,C,V);V()}},[A,C,V,B,R]);const G=y.useMemo(()=>({reference:k,floating:T,setReference:E,setFloating:O}),[E,O]),L=y.useMemo(()=>({reference:A,floating:C}),[A,C]),D=y.useMemo(()=>{const U={position:n,left:0,top:0};if(!L.floating)return U;const K=TL(L.floating,m.x),J=TL(L.floating,m.y);return u?{...U,transform:"translate("+K+"px, "+J+"px)",...nU(L.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:K,top:J}},[n,u,L.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:L,floatingStyles:D}),[m,V,G,L,D])}const J0e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?AL({element:r.current,padding:a}).fn(n):{}:r?AL({element:r,padding:a}).fn(n):{}}}},ewe=(e,t)=>({...U0e(e),options:[e,t]}),twe=(e,t)=>({...H0e(e),options:[e,t]}),nwe=(e,t)=>({...Y0e(e),options:[e,t]}),rwe=(e,t)=>({...W0e(e),options:[e,t]}),awe=(e,t)=>({...V0e(e),options:[e,t]}),iwe=(e,t)=>({...G0e(e),options:[e,t]}),swe=(e,t)=>({...J0e(e),options:[e,t]});var owe="Arrow",rU=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return i.jsx($e.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});rU.displayName=owe;var lwe=rU,CE="Popper",[aU,ho]=gr(CE),[cwe,iU]=aU(CE),sU=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(cwe,{scope:t,anchor:r,onAnchorChange:a,children:n})};sU.displayName=CE;var oU="PopperAnchor",lU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=iU(oU,n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&s.onAnchorChange(d.current)}),r?null:i.jsx($e.div,{...a,ref:u})});lU.displayName=oU;var OE="PopperContent",[uwe,dwe]=aU(OE),cU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...w}=e,b=iU(OE,n),[N,E]=y.useState(null),O=Ue(t,ee=>E(ee)),[A,C]=y.useState(null),k=$y(A),T=k?.width??0,M=k?.height??0,R=r+(s!=="center"?"-"+s:""),B=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},$=Array.isArray(f)?f:[f],H=$.length>0,V={padding:B,boundary:$.filter(hwe),altBoundary:H},{refs:q,floatingStyles:G,placement:L,isPositioned:D,middlewareData:U}=Q0e({strategy:"fixed",placement:R,whileElementsMounted:(...ee)=>F0e(...ee,{animationFrame:x==="always"}),elements:{reference:b.anchor},middleware:[ewe({mainAxis:a+M,alignmentAxis:l}),d&&twe({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?nwe():void 0,...V}),d&&rwe({...V}),awe({...V,apply:({elements:ee,rects:Se,availableWidth:re,availableHeight:we})=>{const{width:je,height:fe}=Se.reference,Le=ee.floating.style;Le.setProperty("--radix-popper-available-width",`${re}px`),Le.setProperty("--radix-popper-available-height",`${we}px`),Le.setProperty("--radix-popper-anchor-width",`${je}px`),Le.setProperty("--radix-popper-anchor-height",`${fe}px`)}}),A&&swe({element:A,padding:u}),mwe({arrowWidth:T,arrowHeight:M}),g&&iwe({strategy:"referenceHidden",...V})]}),[K,J]=fU(L),I=ln(j);Yn(()=>{D&&I?.()},[D,I]);const z=U.arrow?.x,Y=U.arrow?.y,te=U.arrow?.centerOffset!==0,[ae,ge]=y.useState();return Yn(()=>{N&&ge(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:q.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:D?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ae,"--radix-popper-transform-origin":[U.transformOrigin?.x,U.transformOrigin?.y].join(" "),...U.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(uwe,{scope:n,placedSide:K,onArrowChange:C,arrowX:z,arrowY:Y,shouldHideArrow:te,children:i.jsx($e.div,{"data-side":K,"data-align":J,...w,ref:O,style:{...w.style,animation:D?void 0:"none"}})})})});cU.displayName=OE;var uU="PopperArrow",fwe={top:"bottom",right:"left",bottom:"top",left:"right"},dU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=dwe(uU,r),l=fwe[s.placedSide];return i.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:i.jsx(lwe,{...a,ref:n,style:{...a.style,display:"block"}})})});dU.displayName=uU;function hwe(e){return e!==null}var mwe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=fU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",w="";return f==="bottom"?(j=l?p:`${g}px`,w=`${-d}px`):f==="top"?(j=l?p:`${g}px`,w=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,w=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,w=l?p:`${x}px`),{data:{x:j,y:w}}}});function fU(e){const[t,n="center"]=e.split("-");return[t,n]}var Qh=sU,Jh=lU,Ky=cU,Xy=dU;function pwe(e){const t=vwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(ywe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=bwe(a),u=xwe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gwe=Symbol("radix.slottable");function ywe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gwe}function xwe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var hU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),wwe="VisuallyHidden",Zy=y.forwardRef((e,t)=>i.jsx($e.span,{...e,ref:t,style:{...hU,...e.style}}));Zy.displayName=wwe;var jwe=Zy,Swe=[" ","Enter","ArrowUp","ArrowDown"],_we=[" ","Enter"],bl="Select",[Qy,Jy,Nwe]=Ph(bl),[td]=gr(bl,[Nwe,ho]),ex=ho(),[Cwe,mo]=td(bl),[Owe,Ewe]=td(bl),mU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,w=ex(t),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),k=Fu(f),[T,M]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:bl}),[R,B]=Ea({prop:l,defaultProp:u,onChange:d,caller:bl}),$=y.useRef(null),H=b?j||!!b.closest("form"):!0,[V,q]=y.useState(new Set),G=Array.from(V).map(L=>L.props.value).join(";");return i.jsx(Qh,{...w,children:i.jsxs(Cwe,{required:x,scope:t,trigger:b,onTriggerChange:N,valueNode:E,onValueNodeChange:O,valueNodeHasChildren:A,onValueNodeHasChildrenChange:C,contentId:Gn(),value:R,onValueChange:B,open:T,onOpenChange:M,dir:k,triggerPointerDownPosRef:$,disabled:g,children:[i.jsx(Qy.Provider,{scope:t,children:i.jsx(Owe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback(L=>{q(D=>new Set(D).add(L))},[]),onNativeOptionRemove:y.useCallback(L=>{q(D=>{const U=new Set(D);return U.delete(L),U})},[]),children:n})}),H?i.jsxs(LU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:R,onChange:L=>B(L.target.value),disabled:g,form:j,children:[R===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};mU.displayName=bl;var pU="SelectTrigger",vU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=ex(n),l=mo(pU,n),u=l.disabled||r,d=Ue(t,l.onTriggerChange),f=Jy(n),m=y.useRef("touch"),[p,g,x]=zU(w=>{const b=f().filter(O=>!O.disabled),N=b.find(O=>O.value===l.value),E=qU(b,w,N);E!==void 0&&l.onValueChange(E.value)}),j=w=>{u||(l.onOpenChange(!0),x()),w&&(l.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return i.jsx(Jh,{asChild:!0,...s,children:i.jsx($e.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":BU(l.value)?"":void 0,...a,ref:d,onClick:_e(a.onClick,w=>{w.currentTarget.focus(),m.current!=="mouse"&&j(w)}),onPointerDown:_e(a.onPointerDown,w=>{m.current=w.pointerType;const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(j(w),w.preventDefault())}),onKeyDown:_e(a.onKeyDown,w=>{const b=p.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(b&&w.key===" ")&&Swe.includes(w.key)&&(j(),w.preventDefault())})})})});vU.displayName=pU;var gU="SelectValue",yU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:l="",...u}=e,d=mo(gU,n),{onValueNodeHasChildrenChange:f}=d,m=s!==void 0,p=Ue(t,d.onValueNodeChange);return Yn(()=>{f(m)},[f,m]),i.jsx($e.span,{...u,ref:p,style:{pointerEvents:"none"},children:BU(d.value)?i.jsx(i.Fragment,{children:l}):s})});yU.displayName=gU;var Awe="SelectIcon",xU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx($e.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});xU.displayName=Awe;var Twe="SelectPortal",bU=e=>i.jsx(Tl,{asChild:!0,...e});bU.displayName=Twe;var wl="SelectContent",wU=y.forwardRef((e,t)=>{const n=mo(wl,e.__scopeSelect),[r,a]=y.useState();if(Yn(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?Sl.createPortal(i.jsx(jU,{scope:e.__scopeSelect,children:i.jsx(Qy.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),s):null}return i.jsx(SU,{...e,ref:t})});wU.displayName=wl;var La=10,[jU,po]=td(wl),kwe="SelectContentImpl",Mwe=pwe("SelectContent.RemoveScroll"),SU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b,...N}=e,E=mo(wl,n),[O,A]=y.useState(null),[C,k]=y.useState(null),T=Ue(t,ee=>A(ee)),[M,R]=y.useState(null),[B,$]=y.useState(null),H=Jy(n),[V,q]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(O)return zy(O)},[O]),Ly();const L=y.useCallback(ee=>{const[Se,...re]=H().map(fe=>fe.ref.current),[we]=re.slice(-1),je=document.activeElement;for(const fe of ee)if(fe===je||(fe?.scrollIntoView({block:"nearest"}),fe===Se&&C&&(C.scrollTop=0),fe===we&&C&&(C.scrollTop=C.scrollHeight),fe?.focus(),document.activeElement!==je))return},[H,C]),D=y.useCallback(()=>L([M,O]),[L,M,O]);y.useEffect(()=>{V&&D()},[V,D]);const{onOpenChange:U,triggerPointerDownPosRef:K}=E;y.useEffect(()=>{if(O){let ee={x:0,y:0};const Se=we=>{ee={x:Math.abs(Math.round(we.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(we.pageY)-(K.current?.y??0))}},re=we=>{ee.x<=10&&ee.y<=10?we.preventDefault():O.contains(we.target)||U(!1),document.removeEventListener("pointermove",Se),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",Se),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Se),document.removeEventListener("pointerup",re,{capture:!0})}}},[O,U,K]),y.useEffect(()=>{const ee=()=>U(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[U]);const[J,I]=zU(ee=>{const Se=H().filter(je=>!je.disabled),re=Se.find(je=>je.ref.current===document.activeElement),we=qU(Se,ee,re);we&&setTimeout(()=>we.ref.current.focus())}),z=y.useCallback((ee,Se,re)=>{const we=!G.current&&!re;(E.value!==void 0&&E.value===Se||we)&&(R(ee),we&&(G.current=!0))},[E.value]),Y=y.useCallback(()=>O?.focus(),[O]),te=y.useCallback((ee,Se,re)=>{const we=!G.current&&!re;(E.value!==void 0&&E.value===Se||we)&&$(ee)},[E.value]),ae=r==="popper"?dC:_U,ge=ae===dC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b}:{};return i.jsx(jU,{scope:n,content:O,viewport:C,onViewportChange:k,itemRefCallback:z,selectedItem:M,onItemLeave:Y,itemTextRefCallback:te,focusSelectedItem:D,selectedItemText:B,position:r,isPositioned:V,searchRef:J,children:i.jsx(Xh,{as:Mwe,allowPinchZoom:!0,children:i.jsx(Kh,{asChild:!0,trapped:E.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:_e(a,ee=>{E.trigger?.focus({preventScroll:!0}),ee.preventDefault()}),children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:i.jsx(ae,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:ee=>ee.preventDefault(),...N,...ge,onPlaced:()=>q(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:_e(N.onKeyDown,ee=>{const Se=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!Se&&ee.key.length===1&&I(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let we=H().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(we=we.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const je=ee.target,fe=we.indexOf(je);we=we.slice(fe+1)}setTimeout(()=>L(we)),ee.preventDefault()}})})})})})})});SU.displayName=kwe;var Pwe="SelectItemAlignedPosition",_U=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=mo(wl,n),l=po(wl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=Ue(t,T=>m(T)),g=Jy(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:N,focusSelectedItem:E}=l,O=y.useCallback(()=>{if(s.trigger&&s.valueNode&&u&&f&&w&&b&&N){const T=s.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),B=N.getBoundingClientRect();if(s.dir!=="rtl"){const je=B.left-M.left,fe=R.left-je,Le=T.left-fe,Oe=T.width+Le,We=Math.max(Oe,M.width),be=window.innerWidth-La,Ae=Rf(fe,[La,Math.max(La,be-We)]);u.style.minWidth=Oe+"px",u.style.left=Ae+"px"}else{const je=M.right-B.right,fe=window.innerWidth-R.right-je,Le=window.innerWidth-T.right-fe,Oe=T.width+Le,We=Math.max(Oe,M.width),be=window.innerWidth-La,Ae=Rf(fe,[La,Math.max(La,be-We)]);u.style.minWidth=Oe+"px",u.style.right=Ae+"px"}const $=g(),H=window.innerHeight-La*2,V=w.scrollHeight,q=window.getComputedStyle(f),G=parseInt(q.borderTopWidth,10),L=parseInt(q.paddingTop,10),D=parseInt(q.borderBottomWidth,10),U=parseInt(q.paddingBottom,10),K=G+L+V+U+D,J=Math.min(b.offsetHeight*5,K),I=window.getComputedStyle(w),z=parseInt(I.paddingTop,10),Y=parseInt(I.paddingBottom,10),te=T.top+T.height/2-La,ae=H-te,ge=b.offsetHeight/2,ee=b.offsetTop+ge,Se=G+L+ee,re=K-Se;if(Se<=te){const je=$.length>0&&b===$[$.length-1].ref.current;u.style.bottom="0px";const fe=f.clientHeight-w.offsetTop-w.offsetHeight,Le=Math.max(ae,ge+(je?Y:0)+fe+D),Oe=Se+Le;u.style.height=Oe+"px"}else{const je=$.length>0&&b===$[0].ref.current;u.style.top="0px";const Le=Math.max(te,G+w.offsetTop+(je?z:0)+ge)+re;u.style.height=Le+"px",w.scrollTop=Se-te+w.offsetTop}u.style.margin=`${La}px 0`,u.style.minHeight=J+"px",u.style.maxHeight=H+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,s.trigger,s.valueNode,u,f,w,b,N,s.dir,r]);Yn(()=>O(),[O]);const[A,C]=y.useState();Yn(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(T=>{T&&j.current===!0&&(O(),E?.(),j.current=!1)},[O,E]);return i.jsx(Dwe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:i.jsx($e.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});_U.displayName=Pwe;var Rwe="SelectPopperPosition",dC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=La,...s}=e,l=ex(n);return i.jsx(Ky,{...l,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.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)"}})});dC.displayName=Rwe;var[Dwe,EE]=td(wl,{}),fC="SelectViewport",NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=po(fC,n),l=EE(fC,n),u=Ue(t,s.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(Qy.Slot,{scope:n,children:i.jsx($e.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:_e(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-La*2,w=parseFloat(p.style.minHeight),b=parseFloat(p.style.height),N=Math.max(w,b);if(N0?A:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});NU.displayName=fC;var CU="SelectGroup",[$we,Iwe]=td(CU),Lwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Gn();return i.jsx($we,{scope:n,id:a,children:i.jsx($e.div,{role:"group","aria-labelledby":a,...r,ref:t})})});Lwe.displayName=CU;var OU="SelectLabel",EU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Iwe(OU,n);return i.jsx($e.div,{id:a.id,...r,ref:t})});EU.displayName=OU;var $g="SelectItem",[Bwe,AU]=td($g),TU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...l}=e,u=mo($g,n),d=po($g,n),f=u.value===r,[m,p]=y.useState(s??""),[g,x]=y.useState(!1),j=Ue(t,E=>d.itemRefCallback?.(E,r,a)),w=Gn(),b=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Bwe,{scope:n,value:r,disabled:a,textId:w,isSelected:f,onItemTextChange:y.useCallback(E=>{p(O=>O||(E?.textContent??"").trim())},[]),children:i.jsx(Qy.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx($e.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:_e(l.onFocus,()=>x(!0)),onBlur:_e(l.onBlur,()=>x(!1)),onClick:_e(l.onClick,()=>{b.current!=="mouse"&&N()}),onPointerUp:_e(l.onPointerUp,()=>{b.current==="mouse"&&N()}),onPointerDown:_e(l.onPointerDown,E=>{b.current=E.pointerType}),onPointerMove:_e(l.onPointerMove,E=>{b.current=E.pointerType,a?d.onItemLeave?.():b.current==="mouse"&&E.currentTarget.focus({preventScroll:!0})}),onPointerLeave:_e(l.onPointerLeave,E=>{E.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:_e(l.onKeyDown,E=>{d.searchRef?.current!==""&&E.key===" "||(_we.includes(E.key)&&N(),E.key===" "&&E.preventDefault())})})})})});TU.displayName=$g;var yf="SelectItemText",kU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,l=mo(yf,n),u=po(yf,n),d=AU(yf,n),f=Ewe(yf,n),[m,p]=y.useState(null),g=Ue(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return Yn(()=>(w(j),()=>b(j)),[w,b,j]),i.jsxs(i.Fragment,{children:[i.jsx($e.span,{id:d.textId,...s,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Sl.createPortal(s.children,l.valueNode):null]})});kU.displayName=yf;var MU="SelectItemIndicator",PU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return AU(MU,n).isSelected?i.jsx($e.span,{"aria-hidden":!0,...r,ref:t}):null});PU.displayName=MU;var hC="SelectScrollUpButton",RU=y.forwardRef((e,t)=>{const n=po(hC,e.__scopeSelect),r=EE(hC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;s(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx($U,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});RU.displayName=hC;var mC="SelectScrollDownButton",DU=y.forwardRef((e,t)=>{const n=po(mC,e.__scopeSelect),r=EE(mC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx($U,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});DU.displayName=mC;var $U=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=po("SelectScrollButton",n),l=y.useRef(null),u=Jy(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Yn(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx($e.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:_e(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:_e(a.onPointerMove,()=>{s.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:_e(a.onPointerLeave,()=>{d()})})}),zwe="SelectSeparator",IU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx($e.div,{"aria-hidden":!0,...r,ref:t})});IU.displayName=zwe;var pC="SelectArrow",qwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=ex(n),s=mo(pC,n),l=po(pC,n);return s.open&&l.position==="popper"?i.jsx(Xy,{...a,...r,ref:t}):null});qwe.displayName=pC;var Fwe="SelectBubbleInput",LU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(r,a),l=Dy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.select,{...n,style:{...hU,...n.style},ref:s,defaultValue:t})});LU.displayName=Fwe;function BU(e){return e===""||e===void 0}function zU(e){const t=ln(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),s=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}function qU(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=Uwe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function Uwe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Hwe=mU,FU=vU,Wwe=yU,Vwe=xU,Gwe=bU,UU=wU,Ywe=NU,HU=EU,WU=TU,Kwe=kU,Xwe=PU,VU=RU,GU=DU,YU=IU;const Dt=Hwe,$t=Wwe,Ot=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(FU,{ref:r,className:ce("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx(Vwe,{asChild:!0,children:i.jsx(vh,{className:"h-4 w-4 opacity-50"})})]}));Ot.displayName=FU.displayName;const KU=y.forwardRef(({className:e,...t},n)=>i.jsx(VU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(KN,{className:"h-4 w-4"})}));KU.displayName=VU.displayName;const XU=y.forwardRef(({className:e,...t},n)=>i.jsx(GU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(vh,{className:"h-4 w-4"})}));XU.displayName=GU.displayName;const Et=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(Gwe,{children:i.jsxs(UU,{ref:a,className:ce("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(KU,{}),i.jsx(Ywe,{className:ce("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(XU,{})]})}));Et.displayName=UU.displayName;const Zwe=y.forwardRef(({className:e,...t},n)=>i.jsx(HU,{ref:n,className:ce("px-2 py-1.5 text-sm font-semibold",e),...t}));Zwe.displayName=HU.displayName;const De=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(WU,{ref:r,className:ce("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Xwe,{children:i.jsx(ol,{className:"h-4 w-4"})})}),i.jsx(Kwe,{children:t})]}));De.displayName=WU.displayName;const Qwe=y.forwardRef(({className:e,...t},n)=>i.jsx(YU,{ref:n,className:ce("-mx-1 my-1 h-px bg-muted",e),...t}));Qwe.displayName=YU.displayName;function Jwe(e){const t=eje(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(nje);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function eje(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=aje(a),u=rje(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tje=Symbol("radix.slottable");function nje(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tje}function rje(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function aje(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var tx="Popover",[ZU]=gr(tx,[ho]),em=ho(),[ije,vo]=ZU(tx),QU=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=em(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:tx});return i.jsx(Qh,{...u,children:i.jsx(ije,{scope:t,contentId:Gn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};QU.displayName=tx;var JU="PopoverAnchor",sje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(JU,n),s=em(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(Jh,{...s,...r,ref:t})});sje.displayName=JU;var eH="PopoverTrigger",tH=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(eH,n),s=em(n),l=Ue(t,a.triggerRef),u=i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":sH(a.open),...r,ref:l,onClick:_e(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(Jh,{asChild:!0,...s,children:u})});tH.displayName=eH;var AE="PopoverPortal",[oje,lje]=ZU(AE,{forceMount:void 0}),nH=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,s=vo(AE,t);return i.jsx(oje,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};nH.displayName=AE;var $u="PopoverContent",rH=y.forwardRef((e,t)=>{const n=lje($u,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,s=vo($u,e.__scopePopover);return i.jsx(Bn,{present:r||s.open,children:s.modal?i.jsx(uje,{...a,ref:t}):i.jsx(dje,{...a,ref:t})})});rH.displayName=$u;var cje=Jwe("PopoverContent.RemoveScroll"),uje=y.forwardRef((e,t)=>{const n=vo($u,e.__scopePopover),r=y.useRef(null),a=Ue(t,r),s=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return zy(l)},[]),i.jsx(Xh,{as:cje,allowPinchZoom:!0,children:i.jsx(aH,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:_e(e.onCloseAutoFocus,l=>{l.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:_e(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;s.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:_e(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),dje=y.forwardRef((e,t)=>{const n=vo($u,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(aH,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),aH=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=vo($u,n),x=em(n);return Ly(),i.jsx(Kh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Ky,{"data-state":sH(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),iH="PopoverClose",fje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(iH,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,()=>a.onOpenChange(!1))})});fje.displayName=iH;var hje="PopoverArrow",mje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=em(n);return i.jsx(Xy,{...a,...r,ref:t})});mje.displayName=hje;function sH(e){return e?"open":"closed"}var pje=QU,vje=tH,gje=nH,oH=rH;const ro=pje,ao=vje,ds=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(gje,{children:i.jsx(oH,{ref:a,align:t,sideOffset:n,className:ce("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));ds.displayName=oH.displayName;const nd="/api/webui/config";async function yje(){const t=await(await rt(`${nd}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function Jc(){const t=await(await rt(`${nd}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function kL(e){const n=await(await rt(`${nd}/bot`,{method:"POST",headers:dt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function Ig(e){const n=await(await rt(`${nd}/model`,{method:"POST",headers:dt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function xje(e,t){const r=await(await rt(`${nd}/bot/section/${e}`,{method:"POST",headers:dt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function vC(e,t){const r=await(await rt(`${nd}/model/section/${e}`,{method:"POST",headers:dt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}const bje=vn.create({baseURL:"",timeout:1e4});async function TE(){try{return(await bje.post("/api/webui/system/restart")).data}catch(e){throw console.error("重启麦麦失败:",e),e}}const wje=Zu("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),nx=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx("div",{ref:r,role:"alert",className:ce(wje({variant:t}),e),...n}));nx.displayName="Alert";const jje=y.forwardRef(({className:e,...t},n)=>i.jsx("h5",{ref:n,className:ce("mb-1 font-medium leading-none tracking-tight",e),...t}));jje.displayName="AlertTitle";const rx=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm [&_p]:leading-relaxed",e),...t}));rx.displayName="AlertDescription";function kE({onRestartComplete:e,onRestartFailed:t}){const[n,r]=y.useState(0),[a,s]=y.useState("restarting"),[l,u]=y.useState(0),[d,f]=y.useState(0);y.useEffect(()=>{const g=setInterval(()=>{r(w=>w>=90?w:w+1)},200),x=setInterval(()=>{u(w=>w+1)},1e3),j=setTimeout(()=>{s("checking"),m()},3e3);return()=>{clearInterval(g),clearInterval(x),clearTimeout(j)}},[]);const m=()=>{const x=async()=>{try{if(f(w=>w+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)r(100),s("success"),setTimeout(()=>{e?.()},1500);else throw new Error("Status check failed")}catch{d<60?setTimeout(x,2e3):(s("failed"),t?.())}};x()},p=g=>{const x=Math.floor(g/60),j=g%60;return`${x}:${j.toString().padStart(2,"0")}`};return i.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:i.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[i.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[a==="restarting"&&i.jsxs(i.Fragment,{children:[i.jsx(gh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),a==="checking"&&i.jsxs(i.Fragment,{children:[i.jsx(gh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),i.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",d,"/60)"]})]}),a==="success"&&i.jsxs(i.Fragment,{children:[i.jsx(Pr,{className:"h-16 w-16 text-green-500"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),a==="failed"&&i.jsxs(i.Fragment,{children:[i.jsx(gl,{className:"h-16 w-16 text-destructive"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),a!=="failed"&&i.jsxs("div",{className:"space-y-2",children:[i.jsx($h,{value:n,className:"h-2"}),i.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[i.jsxs("span",{children:[n,"%"]}),i.jsxs("span",{children:["已用时: ",p(l)]})]})]}),i.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:i.jsxs("p",{className:"text-sm text-muted-foreground",children:[a==="restarting"&&"🔄 配置已保存,正在重启主程序...",a==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",a==="success"&&"✅ 配置已生效,服务运行正常",a==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),a==="failed"&&i.jsxs("div",{className:"flex gap-2",children:[i.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),i.jsx("button",{onClick:()=>{s("checking"),f(0),m()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function Sje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),{toast:g}=yr(),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[T,M]=y.useState(null),[R,B]=y.useState(null),[$,H]=y.useState(null),[V,q]=y.useState(null),[G,L]=y.useState(null),[D,U]=y.useState(null),[K,J]=y.useState(null),[I,z]=y.useState(null),[Y,te]=y.useState(null),[ae,ge]=y.useState(null),[ee,Se]=y.useState(null),[re,we]=y.useState(null),[je,fe]=y.useState(null),Le=y.useRef(null),Oe=y.useRef(!0),We=y.useRef({}),be=y.useCallback(async()=>{try{t(!0);const ue=await yje();We.current=ue,j(ue.bot),b(ue.personality);const Ve=ue.chat;Ve.talk_value_rules||(Ve.talk_value_rules=[]),E(Ve),A(ue.expression),k(ue.emoji),M(ue.memory),B(ue.tool),H(ue.mood),q(ue.voice),L(ue.lpmm_knowledge),U(ue.keyword_reaction),J(ue.response_post_process),z(ue.chinese_typo),te(ue.response_splitter),ge(ue.log),Se(ue.debug),we(ue.maim_message),fe(ue.telemetry),u(!1),Oe.current=!1}catch(ue){console.error("加载配置失败:",ue),g({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[g]);y.useEffect(()=>{be()},[be]);const Ae=y.useCallback(async(ue,Ve)=>{if(!Oe.current)try{s(!0),await xje(ue,Ve),u(!1)}catch(Mn){console.error(`自动保存 ${ue} 失败:`,Mn),u(!0)}finally{s(!1)}},[]),ke=y.useCallback((ue,Ve)=>{Oe.current||(u(!0),Le.current&&clearTimeout(Le.current),Le.current=setTimeout(()=>{Ae(ue,Ve)},2e3))},[Ae]);y.useEffect(()=>{x&&!Oe.current&&ke("bot",x)},[x,ke]),y.useEffect(()=>{w&&!Oe.current&&ke("personality",w)},[w,ke]),y.useEffect(()=>{N&&!Oe.current&&ke("chat",N)},[N,ke]),y.useEffect(()=>{O&&!Oe.current&&ke("expression",O)},[O,ke]),y.useEffect(()=>{C&&!Oe.current&&ke("emoji",C)},[C,ke]),y.useEffect(()=>{T&&!Oe.current&&ke("memory",T)},[T,ke]),y.useEffect(()=>{R&&!Oe.current&&ke("tool",R)},[R,ke]),y.useEffect(()=>{$&&!Oe.current&&ke("mood",$)},[$,ke]),y.useEffect(()=>{V&&!Oe.current&&ke("voice",V)},[V,ke]),y.useEffect(()=>{G&&!Oe.current&&ke("lpmm_knowledge",G)},[G,ke]),y.useEffect(()=>{D&&!Oe.current&&ke("keyword_reaction",D)},[D,ke]),y.useEffect(()=>{K&&!Oe.current&&ke("response_post_process",K)},[K,ke]),y.useEffect(()=>{I&&!Oe.current&&ke("chinese_typo",I)},[I,ke]),y.useEffect(()=>{Y&&!Oe.current&&ke("response_splitter",Y)},[Y,ke]),y.useEffect(()=>{ae&&!Oe.current&&ke("log",ae)},[ae,ke]),y.useEffect(()=>{ee&&!Oe.current&&ke("debug",ee)},[ee,ke]),y.useEffect(()=>{re&&!Oe.current&&ke("maim_message",re)},[re,ke]),y.useEffect(()=>{je&&!Oe.current&&ke("telemetry",je)},[je,ke]);const Qt=async()=>{try{r(!0),Le.current&&clearTimeout(Le.current);const ue={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:$,voice:V,lpmm_knowledge:G,keyword_reaction:D,response_post_process:K,chinese_typo:I,response_splitter:Y,log:ae,debug:ee,maim_message:re,telemetry:je};await kL(ue),u(!1),g({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(ue){console.error("保存配置失败:",ue),g({title:"保存失败",description:ue.message,variant:"destructive"})}finally{r(!1)}},St=async()=>{try{f(!0),TE().catch(()=>{}),p(!0)}catch(ue){console.error("重启失败:",ue),p(!1),g({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),f(!1)}},Tt=async()=>{try{r(!0),Le.current&&clearTimeout(Le.current);const ue={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:$,voice:V,lpmm_knowledge:G,keyword_reaction:D,response_post_process:K,chinese_typo:I,response_splitter:Y,log:ae,debug:ee,maim_message:re,telemetry:je};await kL(ue),u(!1),g({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(Ve=>setTimeout(Ve,500)),await St()}catch(ue){console.error("保存失败:",ue),g({title:"保存失败",description:ue.message,variant:"destructive"})}finally{r(!1)}},Sn=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},le=()=>{p(!1),f(!1),g({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return e?i.jsx(Wt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:Qt,disabled:n||a||!l||d,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(iE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:n||a||d,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(aE,{className:"mr-2 h-4 w-4"}),d?"重启中...":l?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:l?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:l?Tt:St,children:l?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(nx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(rx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(dl,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(eo,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Rt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Rt,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Rt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Rt,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Rt,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Rt,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Rt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Rt,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Rt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Rt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(sn,{value:"bot",className:"space-y-4",children:x&&i.jsx(_je,{config:x,onChange:j})}),i.jsx(sn,{value:"personality",className:"space-y-4",children:w&&i.jsx(Nje,{config:w,onChange:b})}),i.jsx(sn,{value:"chat",className:"space-y-4",children:N&&i.jsx(Cje,{config:N,onChange:E})}),i.jsx(sn,{value:"expression",className:"space-y-4",children:O&&i.jsx(Oje,{config:O,onChange:A})}),i.jsx(sn,{value:"features",className:"space-y-4",children:C&&T&&R&&i.jsx(Eje,{emojiConfig:C,memoryConfig:T,toolConfig:R,onEmojiChange:k,onMemoryChange:M,onToolChange:B})}),i.jsx(sn,{value:"processing",className:"space-y-4",children:D&&K&&I&&Y&&i.jsx(Aje,{keywordReactionConfig:D,responsePostProcessConfig:K,chineseTypoConfig:I,responseSplitterConfig:Y,onKeywordReactionChange:U,onResponsePostProcessChange:J,onChineseTypoChange:z,onResponseSplitterChange:te})}),i.jsx(sn,{value:"mood",className:"space-y-4",children:$&&i.jsx(Tje,{config:$,onChange:H})}),i.jsx(sn,{value:"voice",className:"space-y-4",children:V&&i.jsx(kje,{config:V,onChange:q})}),i.jsx(sn,{value:"lpmm",className:"space-y-4",children:G&&i.jsx(Mje,{config:G,onChange:L})}),i.jsxs(sn,{value:"other",className:"space-y-4",children:[ae&&i.jsx(Pje,{config:ae,onChange:ge}),ee&&i.jsx(Rje,{config:ee,onChange:Se}),re&&i.jsx(Dje,{config:re,onChange:we}),je&&i.jsx($je,{config:je,onChange:fe})]})]}),m&&i.jsx(kE,{onRestartComplete:Sn,onRestartFailed:le})]})})}function _je({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},s=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"platform",children:"平台"}),i.jsx(Ne,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ne,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"其他平台账号"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"别名"}),i.jsxs(oe,{onClick:s,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function Nje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=s=>{t({...e,states:e.states.filter((l,u)=>u!==s)})},a=(s,l)=>{const u=[...e.states];u[s]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"personality",children:"人格特质"}),i.jsx(Xt,{id:"personality",value:e.personality,onChange:s=>t({...e,personality:s.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Xt,{id:"reply_style",value:e.reply_style,onChange:s=>t({...e,reply_style:s.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"interest",children:"兴趣"}),i.jsx(Xt,{id:"interest",value:e.interest,onChange:s=>t({...e,interest:s.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Xt,{id:"plan_style",value:e.plan_style,onChange:s=>t({...e,plan_style:s.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Xt,{id:"visual_style",value:e.visual_style,onChange:s=>t({...e,visual_style:s.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Xt,{id:"private_plan_style",value:e.private_plan_style,onChange:s=>t({...e,private_plan_style:s.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"状态列表(人格多样性)"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((s,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Xt,{value:s,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsx(hn,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ne,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:s=>t({...e,state_probability:parseFloat(s.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function Cje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},s=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[w,b]=y.useState("59");y.useEffect(()=>{const E=u.split("-");if(E.length===2){const[O,A]=E,[C,k]=O.split(":"),[T,M]=A.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),T&&j(T.padStart(2,"0")),M&&b(M.padStart(2,"0"))}},[u]);const N=(E,O,A,C)=>{const k=`${E}:${O}-${A}:${C}`;d(k)};return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(ll,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(ds,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"小时"}),i.jsxs(Dt,{value:f,onValueChange:E=>{m(E),N(E,p,x,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"分钟"}),i.jsxs(Dt,{value:p,onValueChange:E=>{g(E),N(f,E,x,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"小时"}),i.jsxs(Dt,{value:x,onValueChange:E=>{j(E),N(f,p,E,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"分钟"}),i.jsxs(Dt,{value:w,onValueChange:E=>{b(E),N(f,p,x,E)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ne,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ne,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ne,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ne,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(Q,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(Q,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(oe,{onClick:n,size:"sm",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{variant:"ghost",size:"sm",children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Dt,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"global",children:"全局配置"}),i.jsx(De,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Dt,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"qq",children:"QQ"}),i.jsx(De,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Dt,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"group",children:"群组(group)"}),i.jsx(De,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(s,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ne,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(xE,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function Oje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const w=[...e.learning_list];w[g][x]=j,t({...e,learning_list:w})},s=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:w})=>{const b=w.includes(g)||g==="*",[N,E]=y.useState(!b);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ne,{value:g,onChange:O=>p(x,j,O.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),w.length>0&&i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(Dt,{value:g,onValueChange:O=>p(x,j,O),children:[i.jsx(Ot,{className:"flex-1",children:i.jsx($t,{placeholder:"选择聊天流"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"*",children:"* (全局共享)"}),w.map((O,A)=>i.jsx(De,{value:O,children:O},A))]})]}),i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((w,b)=>b!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const w=[...e.expression_groups];w[g][x]=j,t({...e,expression_groups:w})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((A,C)=>C!==x&&A[0]===""),w=g[0]==="",b=g[0].split(":"),N=b[0]||"qq",E=b[1]||"",O=b[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",w&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(s,{rule:g}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Dt,{value:w?"global":"specific",onValueChange:A=>{A==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!w,children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"global",children:"全局配置"}),i.jsx(De,{value:"specific",disabled:j&&!w,children:"详细配置"})]})]}),j&&!w&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!w&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Dt,{value:N,onValueChange:A=>{a(x,0,`${A}:${E}:${O}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"qq",children:"QQ"}),i.jsx(De,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:E,onChange:A=>{a(x,0,`${N}:${A.target.value}:${O}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Dt,{value:O,onValueChange:A=>{a(x,0,`${N}:${E}:${A}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"group",children:"群组(group)"}),i.jsx(De,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(lt,{checked:g[1]==="enable",onCheckedChange:A=>a(x,1,A?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(lt,{checked:g[2]==="enable",onCheckedChange:A=>a(x,2,A?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:A=>{const C=parseFloat(A.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(xE,{value:[parseFloat(g[3])||1],onValueChange:A=>a(x,3,A[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(oe,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(w=>w[0]).filter(w=>w!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(ir,{className:"h-4 w-4"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((w,b)=>i.jsx(l,{member:w,groupIndex:x,memberIndex:b,availableChatIds:j},b))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function Eje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:s}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>s({...n,enable_tool:l})}),i.jsx(Q,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ne,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ne,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(Q,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(Q,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(Q,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function Aje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:s,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=A=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==A)})},m=(A,C,k)=>{const T=[...e.regex_rules];C==="regex"&&typeof k=="string"?T[A]={...T[A],regex:[k]}:C==="reaction"&&typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,regex_rules:T})},p=({regex:A,reaction:C,onRegexChange:k,onReactionChange:T})=>{const[M,R]=y.useState(!1),[B,$]=y.useState(""),[H,V]=y.useState(null),[q,G]=y.useState(""),[L,D]=y.useState({}),[U,K]=y.useState(""),J=y.useRef(null),[I,z]=y.useState("build"),Y=ee=>ee.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),te=(ee,Se=0)=>{const re=J.current;if(!re)return;const we=re.selectionStart||0,je=re.selectionEnd||0,fe=A.substring(0,we)+ee+A.substring(je);k(fe),setTimeout(()=>{const Le=we+ee.length+Se;re.setSelectionRange(Le,Le),re.focus()},0)};y.useEffect(()=>{if(!A||!B){V(null),D({}),K(C),G("");return}try{const ee=Y(A),Se=new RegExp(ee,"g"),re=B.match(Se);V(re),G("");const je=new RegExp(ee).exec(B);if(je&&je.groups){D(je.groups);let fe=C;Object.entries(je.groups).forEach(([Le,Oe])=>{fe=fe.replace(new RegExp(`\\[${Le}\\]`,"g"),Oe||"")}),K(fe)}else D({}),K(C)}catch(ee){G(ee.message),V(null),D({}),K(C)}},[A,B,C]);const ae=()=>{if(!B||!H||H.length===0)return i.jsx("span",{className:"text-muted-foreground",children:B||"请输入测试文本"});try{const ee=Y(A),Se=new RegExp(ee,"g");let re=0;const we=[];let je;for(;(je=Se.exec(B))!==null;)je.index>re&&we.push(i.jsx("span",{children:B.substring(re,je.index)},`text-${re}`)),we.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),re=je.index+je[0].length;return re)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(sr,{open:M,onOpenChange:R,children:[i.jsx(i8,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Og,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"正则表达式编辑器"}),i.jsx(vr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Wt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(dl,{value:I,onValueChange:ee=>z(ee),className:"w-full",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2",children:[i.jsx(Rt,{value:"build",children:"🔧 构建器"}),i.jsx(Rt,{value:"test",children:"🧪 测试器"})]}),i.jsxs(sn,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ne,{ref:J,value:A,onChange:ee=>k(ee.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Xt,{value:C,onChange:ee=>T(ee.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[ge.map(ee=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ee.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ee.items.map(Se=>i.jsx(oe,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>te(Se.pattern,Se.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:Se.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:Se.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:Se.desc})]})},Se.label))})]},ee.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(sn,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:A||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Xt,{id:"test-text",value:B,onChange:ee=>$(ee.target.value),placeholder:`在此输入要测试的文本... +3.某句话如果已经被回复过,不要重复回复`}),[j,w]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[b,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),E=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:_ve},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:gF},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:oE},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Fa},{id:"complete",title:"完成设置",description:"后续配置提示",icon:yh}],O=(n+1)/E.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[$,H,V,q]=await Promise.all([_be(),Nbe(),Cbe(),Obe()]);p($),x(H),w(V),N(q)}catch($){t({title:"加载配置失败",description:$ instanceof Error?$.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const A=async()=>{u(!0);try{switch(n){case 0:await Ebe(m);break;case 1:await Abe(g);break;case 2:await Tbe(j);break;case 3:await kbe(b);break}return t({title:"保存成功",description:`${E[n].title}配置已保存`}),!0}catch(B){return t({title:"保存失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await A()&&n{n>0&&r(n-1)},T=async()=>{s(!0);try{if(!await A()){s(!1);return}await xL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(B){t({title:"完成失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}finally{s(!1)}},M=async()=>{try{await xL(),e({to:"/"})}catch(B){t({title:"跳过失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}},R=()=>{switch(n){case 0:return i.jsx(bbe,{config:m,onChange:p});case 1:return i.jsx(wbe,{config:g,onChange:x});case 2:return i.jsx(jbe,{config:j,onChange:w});case 3:return i.jsx(Sbe,{config:b,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(yh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(Uge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",uE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",E.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(O),"%"]})]}),i.jsx($h,{value:O,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:E.map((B,$)=>{const H=B.icon;return i.jsxs("div",{className:ce("flex flex-1 flex-col items-center gap-1 md:gap-2",$e({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(Ag,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(oe,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(fF,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var k8=["PageUp","PageDown"],M8=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],P8={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Qu="Slider",[sC,Pbe,Rbe]=Ph(Qu),[R8]=gr(Qu,[Rbe]),[Dbe,Hy]=R8(Qu),D8=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:s=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...w}=e,b=y.useRef(new Set),N=y.useRef(0),O=l==="horizontal"?$be:Ibe,[A=[],C]=Ea({prop:m,defaultProp:f,onChange:$=>{[...b.current][N.current]?.focus(),p($)}}),k=y.useRef(A);function T($){const H=Fbe(A,$);B($,H)}function M($){B($,N.current)}function R(){const $=k.current[N.current];A[N.current]!==$&&g(A)}function B($,H,{commit:V}={commit:!1}){const q=Vbe(s),G=Gbe(Math.round(($-r)/s)*s+r,q),L=Rf(G,[r,a]);C((D=[])=>{const U=zbe(D,L,H);if(Wbe(U,d*s)){N.current=U.indexOf(L);const K=String(U)!==String(D);return K&&V&&g(U),K?U:D}else return D})}return i.jsx(Dbe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:b.current,values:A,orientation:l,form:j,children:i.jsx(sC.Provider,{scope:e.__scopeSlider,children:i.jsx(sC.Slot,{scope:e.__scopeSlider,children:i.jsx(O,{"aria-disabled":u,"data-disabled":u?"":void 0,...w,ref:t,onPointerDown:_e(w.onPointerDown,()=>{u||(k.current=A)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:T,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:R,onHomeKeyDown:()=>!u&&B(r,0,{commit:!0}),onEndKeyDown:()=>!u&&B(a,A.length-1,{commit:!0}),onStepKeyDown:({event:$,direction:H})=>{if(!u){const G=k8.includes($.key)||$.shiftKey&&M8.includes($.key)?10:1,L=N.current,D=A[L],U=s*G*H;B(D+U,L,{commit:!0})}}})})})})});D8.displayName=Qu;var[$8,I8]=R8(Qu,{startEdge:"left",endEdge:"right",size:"width",direction:1}),$be=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:s,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=Ue(t,O=>g(O)),j=y.useRef(void 0),w=Fu(a),b=w==="ltr",N=b&&!s||!b&&s;function E(O){const A=j.current||p.getBoundingClientRect(),C=[0,A.width],T=xE(C,N?[n,r]:[r,n]);return j.current=A,T(O-A.left)}return i.jsx($8,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(L8,{dir:w,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:O=>{const A=E(O.clientX);l?.(A)},onSlideMove:O=>{const A=E(O.clientX);u?.(A)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:O=>{const C=P8[N?"from-left":"from-right"].includes(O.key);f?.({event:O,direction:C?-1:1})}})})}),Ibe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:s,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=Ue(t,m),g=y.useRef(void 0),x=!a;function j(w){const b=g.current||m.current.getBoundingClientRect(),N=[0,b.height],O=xE(N,x?[r,n]:[n,r]);return g.current=b,O(w-b.top)}return i.jsx($8,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(L8,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const b=j(w.clientY);s?.(b)},onSlideMove:w=>{const b=j(w.clientY);l?.(b)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:w=>{const N=P8[x?"from-bottom":"from-top"].includes(w.key);d?.({event:w,direction:N?-1:1})}})})}),L8=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:s,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=Hy(Qu,n);return i.jsx($e.span,{...f,ref:t,onKeyDown:_e(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):k8.concat(M8).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:_e(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:_e(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:_e(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),s(p))})})}),B8="SliderTrack",z8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Hy(B8,n);return i.jsx($e.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});z8.displayName=B8;var oC="SliderRange",q8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Hy(oC,n),s=I8(oC,n),l=y.useRef(null),u=Ue(t,l),d=a.values.length,f=a.values.map(g=>H8(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx($e.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[s.startEdge]:m+"%",[s.endEdge]:p+"%"}})});q8.displayName=oC;var lC="SliderThumb",F8=y.forwardRef((e,t)=>{const n=Pbe(e.__scopeSlider),[r,a]=y.useState(null),s=Ue(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(Lbe,{...e,ref:s,index:l})}),Lbe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...s}=e,l=Hy(lC,n),u=I8(lC,n),[d,f]=y.useState(null),m=Ue(t,E=>f(E)),p=d?l.form||!!d.closest("form"):!0,g=$y(d),x=l.values[r],j=x===void 0?0:H8(x,l.min,l.max),w=qbe(r,l.values.length),b=g?.[u.size],N=b?Ube(b,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(sC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx($e.span,{role:"slider","aria-label":e["aria-label"]||w,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...s,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:_e(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(U8,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});F8.displayName=lC;var Bbe="RadioBubbleInput",U8=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(a,r),l=Dy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.input,{style:{display:"none"},...n,ref:s,defaultValue:t})});U8.displayName=Bbe;function zbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,s)=>a-s)}function H8(e,t,n){const s=100/(n-t)*(e-t);return Rf(s,[0,100])}function qbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Fbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function Ube(e,t,n){const r=e/2,s=xE([0,50],[0,r]);return(r-s(t)*n)*n}function Hbe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Wbe(e,t){if(t>0){const n=Hbe(e);return Math.min(...n)>=t}return!0}function xE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Vbe(e){return(String(e).split(".")[1]||"").length}function Gbe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var W8=D8,Ybe=z8,Kbe=q8,Xbe=F8;const Wy=y.forwardRef(({className:e,...t},n)=>i.jsxs(W8,{ref:n,className:ce("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(Ybe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Kbe,{className:"absolute h-full bg-primary"})}),i.jsx(Xbe,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));Wy.displayName=W8.displayName;const Zbe=["top","right","bottom","left"],to=Math.min,na=Math.max,Mg=Math.round,Zp=Math.floor,gi=e=>({x:e,y:e}),Qbe={left:"right",right:"left",bottom:"top",top:"bottom"},Jbe={start:"end",end:"start"};function cC(e,t,n){return na(e,to(t,n))}function cs(e,t){return typeof e=="function"?e(t):e}function us(e){return e.split("-")[0]}function Ju(e){return e.split("-")[1]}function bE(e){return e==="x"?"y":"x"}function wE(e){return e==="y"?"height":"width"}const e0e=new Set(["top","bottom"]);function fi(e){return e0e.has(us(e))?"y":"x"}function jE(e){return bE(fi(e))}function t0e(e,t,n){n===void 0&&(n=!1);const r=Ju(e),a=jE(e),s=wE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Pg(l)),[l,Pg(l)]}function n0e(e){const t=Pg(e);return[uC(e),t,uC(t)]}function uC(e){return e.replace(/start|end/g,t=>Jbe[t])}const bL=["left","right"],wL=["right","left"],r0e=["top","bottom"],a0e=["bottom","top"];function i0e(e,t,n){switch(e){case"top":case"bottom":return n?t?wL:bL:t?bL:wL;case"left":case"right":return t?r0e:a0e;default:return[]}}function s0e(e,t,n,r){const a=Ju(e);let s=i0e(us(e),n==="start",r);return a&&(s=s.map(l=>l+"-"+a),t&&(s=s.concat(s.map(uC)))),s}function Pg(e){return e.replace(/left|right|bottom|top/g,t=>Qbe[t])}function o0e(e){return{top:0,right:0,bottom:0,left:0,...e}}function V8(e){return typeof e!="number"?o0e(e):{top:e,right:e,bottom:e,left:e}}function Rg(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function jL(e,t,n){let{reference:r,floating:a}=e;const s=fi(t),l=jE(t),u=wE(l),d=us(t),f=s==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(Ju(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const l0e=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:l}=n,u=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=jL(f,r,d),g=r,x={},j=0;for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=cs(e,t)||{};if(f==null)return{};const p=V8(m),g={x:n,y:r},x=jE(a),j=wE(x),w=await l.getDimensions(f),b=x==="y",N=b?"top":"left",E=b?"bottom":"right",O=b?"clientHeight":"clientWidth",A=s.reference[j]+s.reference[x]-g[x]-s.floating[j],C=g[x]-s.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let T=k?k[O]:0;(!T||!await(l.isElement==null?void 0:l.isElement(k)))&&(T=u.floating[O]||s.floating[j]);const M=A/2-C/2,R=T/2-w[j]/2-1,B=to(p[N],R),$=to(p[E],R),H=B,V=T-w[j]-$,q=T/2-w[j]/2+M,G=cC(H,q,V),L=!d.arrow&&Ju(a)!=null&&q!==G&&s.reference[j]/2-(qq<=0)){var $,H;const q=((($=s.flip)==null?void 0:$.index)||0)+1,G=T[q];if(G&&(!(p==="alignment"?E!==fi(G):!1)||B.every(U=>fi(U.placement)===E?U.overflows[0]>0:!0)))return{data:{index:q,overflows:B},reset:{placement:G}};let L=(H=B.filter(D=>D.overflows[0]<=0).sort((D,U)=>D.overflows[1]-U.overflows[1])[0])==null?void 0:H.placement;if(!L)switch(x){case"bestFit":{var V;const D=(V=B.filter(U=>{if(k){const K=fi(U.placement);return K===E||K==="y"}return!0}).map(U=>[U.placement,U.overflows.filter(K=>K>0).reduce((K,J)=>K+J,0)]).sort((U,K)=>U[1]-K[1])[0])==null?void 0:V[0];D&&(L=D);break}case"initialPlacement":L=u;break}if(a!==L)return{reset:{placement:L}}}return{}}}};function SL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function _L(e){return Zbe.some(t=>e[t]>=0)}const d0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=cs(e,t);switch(r){case"referenceHidden":{const s=await wh(t,{...a,elementContext:"reference"}),l=SL(s,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:_L(l)}}}case"escaped":{const s=await wh(t,{...a,altBoundary:!0}),l=SL(s,n.floating);return{data:{escapedOffsets:l,escaped:_L(l)}}}default:return{}}}}},G8=new Set(["left","top"]);async function f0e(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=us(n),u=Ju(n),d=fi(n)==="y",f=G8.has(l)?-1:1,m=s&&d?-1:1,p=cs(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const h0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:l,middlewareData:u}=t,d=await f0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:s+d.y,data:{...d,placement:l}}}}},m0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:b=>{let{x:N,y:E}=b;return{x:N,y:E}}},...d}=cs(e,t),f={x:n,y:r},m=await wh(t,d),p=fi(us(a)),g=bE(p);let x=f[g],j=f[p];if(s){const b=g==="y"?"top":"left",N=g==="y"?"bottom":"right",E=x+m[b],O=x-m[N];x=cC(E,x,O)}if(l){const b=p==="y"?"top":"left",N=p==="y"?"bottom":"right",E=j+m[b],O=j-m[N];j=cC(E,j,O)}const w=u.fn({...t,[g]:x,[p]:j});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[g]:s,[p]:l}}}}}},p0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=cs(e,t),m={x:n,y:r},p=fi(a),g=bE(p);let x=m[g],j=m[p];const w=cs(u,t),b=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const O=g==="y"?"height":"width",A=s.reference[g]-s.floating[O]+b.mainAxis,C=s.reference[g]+s.reference[O]-b.mainAxis;xC&&(x=C)}if(f){var N,E;const O=g==="y"?"width":"height",A=G8.has(us(a)),C=s.reference[p]-s.floating[O]+(A&&((N=l.offset)==null?void 0:N[p])||0)+(A?0:b.crossAxis),k=s.reference[p]+s.reference[O]+(A?0:((E=l.offset)==null?void 0:E[p])||0)-(A?b.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},v0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:l,elements:u}=t,{apply:d=()=>{},...f}=cs(e,t),m=await wh(t,f),p=us(a),g=Ju(a),x=fi(a)==="y",{width:j,height:w}=s.floating;let b,N;p==="top"||p==="bottom"?(b=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,b=g==="end"?"top":"bottom");const E=w-m.top-m.bottom,O=j-m.left-m.right,A=to(w-m[b],E),C=to(j-m[N],O),k=!t.middlewareData.shift;let T=A,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=O),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=E),k&&!g){const B=na(m.left,0),$=na(m.right,0),H=na(m.top,0),V=na(m.bottom,0);x?M=j-2*(B!==0||$!==0?B+$:na(m.left,m.right)):T=w-2*(H!==0||V!==0?H+V:na(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:T});const R=await l.getDimensions(u.floating);return j!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function Vy(){return typeof window<"u"}function ed(e){return Y8(e)?(e.nodeName||"").toLowerCase():"#document"}function sa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ni(e){var t;return(t=(Y8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Y8(e){return Vy()?e instanceof Node||e instanceof sa(e).Node:!1}function Ga(e){return Vy()?e instanceof Element||e instanceof sa(e).Element:!1}function wi(e){return Vy()?e instanceof HTMLElement||e instanceof sa(e).HTMLElement:!1}function NL(e){return!Vy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof sa(e).ShadowRoot}const g0e=new Set(["inline","contents"]);function Zh(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Ya(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!g0e.has(a)}const y0e=new Set(["table","td","th"]);function x0e(e){return y0e.has(ed(e))}const b0e=[":popover-open",":modal"];function Gy(e){return b0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const w0e=["transform","translate","scale","rotate","perspective"],j0e=["transform","translate","scale","rotate","perspective","filter"],S0e=["paint","layout","strict","content"];function SE(e){const t=_E(),n=Ga(e)?Ya(e):e;return w0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||j0e.some(r=>(n.willChange||"").includes(r))||S0e.some(r=>(n.contain||"").includes(r))}function _0e(e){let t=no(e);for(;wi(t)&&!Du(t);){if(SE(t))return t;if(Gy(t))return null;t=no(t)}return null}function _E(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const N0e=new Set(["html","body","#document"]);function Du(e){return N0e.has(ed(e))}function Ya(e){return sa(e).getComputedStyle(e)}function Yy(e){return Ga(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function no(e){if(ed(e)==="html")return e;const t=e.assignedSlot||e.parentNode||NL(e)&&e.host||Ni(e);return NL(t)?t.host:t}function K8(e){const t=no(e);return Du(t)?e.ownerDocument?e.ownerDocument.body:e.body:wi(t)&&Zh(t)?t:K8(t)}function jh(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=K8(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),l=sa(a);if(s){const u=dC(l);return t.concat(l,l.visualViewport||[],Zh(a)?a:[],u&&n?jh(u):[])}return t.concat(a,jh(a,[],n))}function dC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function X8(e){const t=Ya(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=wi(e),s=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Mg(n)!==s||Mg(r)!==l;return u&&(n=s,r=l),{width:n,height:r,$:u}}function NE(e){return Ga(e)?e:e.contextElement}function Qc(e){const t=NE(e);if(!wi(t))return gi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=X8(t);let l=(s?Mg(n.width):n.width)/r,u=(s?Mg(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const C0e=gi(0);function Z8(e){const t=sa(e);return!_E()||!t.visualViewport?C0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function O0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==sa(e)?!1:t}function xl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=NE(e);let l=gi(1);t&&(r?Ga(r)&&(l=Qc(r)):l=Qc(e));const u=O0e(s,n,r)?Z8(s):gi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(s){const g=sa(s),x=r&&Ga(r)?sa(r):r;let j=g,w=dC(j);for(;w&&r&&x!==j;){const b=Qc(w),N=w.getBoundingClientRect(),E=Ya(w),O=N.left+(w.clientLeft+parseFloat(E.paddingLeft))*b.x,A=N.top+(w.clientTop+parseFloat(E.paddingTop))*b.y;d*=b.x,f*=b.y,m*=b.x,p*=b.y,d+=O,f+=A,j=sa(w),w=dC(j)}}return Rg({width:m,height:p,x:d,y:f})}function Ky(e,t){const n=Yy(e).scrollLeft;return t?t.left+n:xl(Ni(e)).left+n}function Q8(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Ky(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function E0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",l=Ni(r),u=t?Gy(t.floating):!1;if(r===l||u&&s)return n;let d={scrollLeft:0,scrollTop:0},f=gi(1);const m=gi(0),p=wi(r);if((p||!p&&!s)&&((ed(r)!=="body"||Zh(l))&&(d=Yy(r)),wi(r))){const x=xl(r);f=Qc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!s?Q8(l,d):gi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function A0e(e){return Array.from(e.getClientRects())}function T0e(e){const t=Ni(e),n=Yy(e),r=e.ownerDocument.body,a=na(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=na(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Ky(e);const u=-n.scrollTop;return Ya(r).direction==="rtl"&&(l+=na(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:l,y:u}}const CL=25;function k0e(e,t){const n=sa(e),r=Ni(e),a=n.visualViewport;let s=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){s=a.width,l=a.height;const m=_E();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Ky(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=CL&&(s-=j)}else f<=CL&&(s+=f);return{width:s,height:l,x:u,y:d}}const M0e=new Set(["absolute","fixed"]);function P0e(e,t){const n=xl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=wi(e)?Qc(e):gi(1),l=e.clientWidth*s.x,u=e.clientHeight*s.y,d=a*s.x,f=r*s.y;return{width:l,height:u,x:d,y:f}}function OL(e,t,n){let r;if(t==="viewport")r=k0e(e,n);else if(t==="document")r=T0e(Ni(e));else if(Ga(t))r=P0e(t,n);else{const a=Z8(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return Rg(r)}function J8(e,t){const n=no(e);return n===t||!Ga(n)||Du(n)?!1:Ya(n).position==="fixed"||J8(n,t)}function R0e(e,t){const n=t.get(e);if(n)return n;let r=jh(e,[],!1).filter(u=>Ga(u)&&ed(u)!=="body"),a=null;const s=Ya(e).position==="fixed";let l=s?no(e):e;for(;Ga(l)&&!Du(l);){const u=Ya(l),d=SE(l);!d&&u.position==="fixed"&&(a=null),(s?!d&&!a:!d&&u.position==="static"&&!!a&&M0e.has(a.position)||Zh(l)&&!d&&J8(e,l))?r=r.filter(m=>m!==l):a=u,l=no(l)}return t.set(e,r),r}function D0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?Gy(t)?[]:R0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=OL(t,m,a);return f.top=na(p.top,f.top),f.right=to(p.right,f.right),f.bottom=to(p.bottom,f.bottom),f.left=na(p.left,f.left),f},OL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function $0e(e){const{width:t,height:n}=X8(e);return{width:t,height:n}}function I0e(e,t,n){const r=wi(t),a=Ni(t),s=n==="fixed",l=xl(e,!0,s,t);let u={scrollLeft:0,scrollTop:0};const d=gi(0);function f(){d.x=Ky(a)}if(r||!r&&!s)if((ed(t)!=="body"||Zh(a))&&(u=Yy(t)),r){const x=xl(t,!0,s,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();s&&!r&&a&&f();const m=a&&!r&&!s?Q8(a,u):gi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function l_(e){return Ya(e).position==="static"}function EL(e,t){if(!wi(e)||Ya(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Ni(e)===n&&(n=n.ownerDocument.body),n}function eU(e,t){const n=sa(e);if(Gy(e))return n;if(!wi(e)){let a=no(e);for(;a&&!Du(a);){if(Ga(a)&&!l_(a))return a;a=no(a)}return n}let r=EL(e,t);for(;r&&x0e(r)&&l_(r);)r=EL(r,t);return r&&Du(r)&&l_(r)&&!SE(r)?n:r||_0e(e)||n}const L0e=async function(e){const t=this.getOffsetParent||eU,n=this.getDimensions,r=await n(e.floating);return{reference:I0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function B0e(e){return Ya(e).direction==="rtl"}const z0e={convertOffsetParentRelativeRectToViewportRelativeRect:E0e,getDocumentElement:Ni,getClippingRect:D0e,getOffsetParent:eU,getElementRects:L0e,getClientRects:A0e,getDimensions:$0e,getScale:Qc,isElement:Ga,isRTL:B0e};function tU(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function q0e(e,t){let n=null,r;const a=Ni(e);function s(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),s();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Zp(p),w=Zp(a.clientWidth-(m+g)),b=Zp(a.clientHeight-(p+x)),N=Zp(m),O={rootMargin:-j+"px "+-w+"px "+-b+"px "+-N+"px",threshold:na(0,to(1,d))||1};let A=!0;function C(k){const T=k[0].intersectionRatio;if(T!==d){if(!A)return l();T?l(!1,T):r=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!tU(f,e.getBoundingClientRect())&&l(),A=!1}try{n=new IntersectionObserver(C,{...O,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,O)}n.observe(e)}return l(!0),s}function F0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=NE(e),m=a||s?[...f?jh(f):[],...jh(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),s&&N.addEventListener("resize",n)});const p=f&&u?q0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[E]=N;E&&E.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var O;(O=x)==null||O.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,w=d?xl(e):null;d&&b();function b(){const N=xl(e);w&&!tU(w,N)&&n(),w=N,j=requestAnimationFrame(b)}return n(),()=>{var N;m.forEach(E=>{a&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const U0e=h0e,H0e=m0e,W0e=u0e,V0e=v0e,G0e=d0e,AL=c0e,Y0e=p0e,K0e=(e,t,n)=>{const r=new Map,a={platform:z0e,...n},s={...a.platform,_c:r};return l0e(e,t,{...a,platform:s})};var X0e=typeof document<"u",Z0e=function(){},mv=X0e?y.useLayoutEffect:Z0e;function Dg(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Dg(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!Dg(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function nU(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function TL(e,t){const n=nU(e);return Math.round(t*n)/n}function c_(e){const t=y.useRef(e);return mv(()=>{t.current=e}),t}function Q0e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);Dg(g,r)||x(r);const[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useCallback(U=>{U!==k.current&&(k.current=U,w(U))},[]),O=y.useCallback(U=>{U!==T.current&&(T.current=U,N(U))},[]),A=s||j,C=l||b,k=y.useRef(null),T=y.useRef(null),M=y.useRef(m),R=d!=null,B=c_(d),$=c_(a),H=c_(f),V=y.useCallback(()=>{if(!k.current||!T.current)return;const U={placement:t,strategy:n,middleware:g};$.current&&(U.platform=$.current),K0e(k.current,T.current,U).then(K=>{const J={...K,isPositioned:H.current!==!1};q.current&&!Dg(M.current,J)&&(M.current=J,Sl.flushSync(()=>{p(J)}))})},[g,t,n,$,H]);mv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(U=>({...U,isPositioned:!1})))},[f]);const q=y.useRef(!1);mv(()=>(q.current=!0,()=>{q.current=!1}),[]),mv(()=>{if(A&&(k.current=A),C&&(T.current=C),A&&C){if(B.current)return B.current(A,C,V);V()}},[A,C,V,B,R]);const G=y.useMemo(()=>({reference:k,floating:T,setReference:E,setFloating:O}),[E,O]),L=y.useMemo(()=>({reference:A,floating:C}),[A,C]),D=y.useMemo(()=>{const U={position:n,left:0,top:0};if(!L.floating)return U;const K=TL(L.floating,m.x),J=TL(L.floating,m.y);return u?{...U,transform:"translate("+K+"px, "+J+"px)",...nU(L.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:K,top:J}},[n,u,L.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:L,floatingStyles:D}),[m,V,G,L,D])}const J0e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?AL({element:r.current,padding:a}).fn(n):{}:r?AL({element:r,padding:a}).fn(n):{}}}},ewe=(e,t)=>({...U0e(e),options:[e,t]}),twe=(e,t)=>({...H0e(e),options:[e,t]}),nwe=(e,t)=>({...Y0e(e),options:[e,t]}),rwe=(e,t)=>({...W0e(e),options:[e,t]}),awe=(e,t)=>({...V0e(e),options:[e,t]}),iwe=(e,t)=>({...G0e(e),options:[e,t]}),swe=(e,t)=>({...J0e(e),options:[e,t]});var owe="Arrow",rU=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return i.jsx($e.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});rU.displayName=owe;var lwe=rU,CE="Popper",[aU,ho]=gr(CE),[cwe,iU]=aU(CE),sU=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(cwe,{scope:t,anchor:r,onAnchorChange:a,children:n})};sU.displayName=CE;var oU="PopperAnchor",lU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=iU(oU,n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&s.onAnchorChange(d.current)}),r?null:i.jsx($e.div,{...a,ref:u})});lU.displayName=oU;var OE="PopperContent",[uwe,dwe]=aU(OE),cU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...w}=e,b=iU(OE,n),[N,E]=y.useState(null),O=Ue(t,ee=>E(ee)),[A,C]=y.useState(null),k=$y(A),T=k?.width??0,M=k?.height??0,R=r+(s!=="center"?"-"+s:""),B=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},$=Array.isArray(f)?f:[f],H=$.length>0,V={padding:B,boundary:$.filter(hwe),altBoundary:H},{refs:q,floatingStyles:G,placement:L,isPositioned:D,middlewareData:U}=Q0e({strategy:"fixed",placement:R,whileElementsMounted:(...ee)=>F0e(...ee,{animationFrame:x==="always"}),elements:{reference:b.anchor},middleware:[ewe({mainAxis:a+M,alignmentAxis:l}),d&&twe({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?nwe():void 0,...V}),d&&rwe({...V}),awe({...V,apply:({elements:ee,rects:Se,availableWidth:re,availableHeight:we})=>{const{width:je,height:fe}=Se.reference,Le=ee.floating.style;Le.setProperty("--radix-popper-available-width",`${re}px`),Le.setProperty("--radix-popper-available-height",`${we}px`),Le.setProperty("--radix-popper-anchor-width",`${je}px`),Le.setProperty("--radix-popper-anchor-height",`${fe}px`)}}),A&&swe({element:A,padding:u}),mwe({arrowWidth:T,arrowHeight:M}),g&&iwe({strategy:"referenceHidden",...V})]}),[K,J]=fU(L),I=ln(j);Yn(()=>{D&&I?.()},[D,I]);const z=U.arrow?.x,Y=U.arrow?.y,te=U.arrow?.centerOffset!==0,[ae,ge]=y.useState();return Yn(()=>{N&&ge(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:q.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:D?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ae,"--radix-popper-transform-origin":[U.transformOrigin?.x,U.transformOrigin?.y].join(" "),...U.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(uwe,{scope:n,placedSide:K,onArrowChange:C,arrowX:z,arrowY:Y,shouldHideArrow:te,children:i.jsx($e.div,{"data-side":K,"data-align":J,...w,ref:O,style:{...w.style,animation:D?void 0:"none"}})})})});cU.displayName=OE;var uU="PopperArrow",fwe={top:"bottom",right:"left",bottom:"top",left:"right"},dU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=dwe(uU,r),l=fwe[s.placedSide];return i.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:i.jsx(lwe,{...a,ref:n,style:{...a.style,display:"block"}})})});dU.displayName=uU;function hwe(e){return e!==null}var mwe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=fU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",w="";return f==="bottom"?(j=l?p:`${g}px`,w=`${-d}px`):f==="top"?(j=l?p:`${g}px`,w=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,w=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,w=l?p:`${x}px`),{data:{x:j,y:w}}}});function fU(e){const[t,n="center"]=e.split("-");return[t,n]}var Qh=sU,Jh=lU,Xy=cU,Zy=dU;function pwe(e){const t=vwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(ywe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=bwe(a),u=xwe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gwe=Symbol("radix.slottable");function ywe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gwe}function xwe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var hU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),wwe="VisuallyHidden",Qy=y.forwardRef((e,t)=>i.jsx($e.span,{...e,ref:t,style:{...hU,...e.style}}));Qy.displayName=wwe;var jwe=Qy,Swe=[" ","Enter","ArrowUp","ArrowDown"],_we=[" ","Enter"],bl="Select",[Jy,ex,Nwe]=Ph(bl),[td]=gr(bl,[Nwe,ho]),tx=ho(),[Cwe,mo]=td(bl),[Owe,Ewe]=td(bl),mU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,w=tx(t),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),k=Fu(f),[T,M]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:bl}),[R,B]=Ea({prop:l,defaultProp:u,onChange:d,caller:bl}),$=y.useRef(null),H=b?j||!!b.closest("form"):!0,[V,q]=y.useState(new Set),G=Array.from(V).map(L=>L.props.value).join(";");return i.jsx(Qh,{...w,children:i.jsxs(Cwe,{required:x,scope:t,trigger:b,onTriggerChange:N,valueNode:E,onValueNodeChange:O,valueNodeHasChildren:A,onValueNodeHasChildrenChange:C,contentId:Gn(),value:R,onValueChange:B,open:T,onOpenChange:M,dir:k,triggerPointerDownPosRef:$,disabled:g,children:[i.jsx(Jy.Provider,{scope:t,children:i.jsx(Owe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback(L=>{q(D=>new Set(D).add(L))},[]),onNativeOptionRemove:y.useCallback(L=>{q(D=>{const U=new Set(D);return U.delete(L),U})},[]),children:n})}),H?i.jsxs(LU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:R,onChange:L=>B(L.target.value),disabled:g,form:j,children:[R===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};mU.displayName=bl;var pU="SelectTrigger",vU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=tx(n),l=mo(pU,n),u=l.disabled||r,d=Ue(t,l.onTriggerChange),f=ex(n),m=y.useRef("touch"),[p,g,x]=zU(w=>{const b=f().filter(O=>!O.disabled),N=b.find(O=>O.value===l.value),E=qU(b,w,N);E!==void 0&&l.onValueChange(E.value)}),j=w=>{u||(l.onOpenChange(!0),x()),w&&(l.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return i.jsx(Jh,{asChild:!0,...s,children:i.jsx($e.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":BU(l.value)?"":void 0,...a,ref:d,onClick:_e(a.onClick,w=>{w.currentTarget.focus(),m.current!=="mouse"&&j(w)}),onPointerDown:_e(a.onPointerDown,w=>{m.current=w.pointerType;const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(j(w),w.preventDefault())}),onKeyDown:_e(a.onKeyDown,w=>{const b=p.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(b&&w.key===" ")&&Swe.includes(w.key)&&(j(),w.preventDefault())})})})});vU.displayName=pU;var gU="SelectValue",yU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:l="",...u}=e,d=mo(gU,n),{onValueNodeHasChildrenChange:f}=d,m=s!==void 0,p=Ue(t,d.onValueNodeChange);return Yn(()=>{f(m)},[f,m]),i.jsx($e.span,{...u,ref:p,style:{pointerEvents:"none"},children:BU(d.value)?i.jsx(i.Fragment,{children:l}):s})});yU.displayName=gU;var Awe="SelectIcon",xU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx($e.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});xU.displayName=Awe;var Twe="SelectPortal",bU=e=>i.jsx(Tl,{asChild:!0,...e});bU.displayName=Twe;var wl="SelectContent",wU=y.forwardRef((e,t)=>{const n=mo(wl,e.__scopeSelect),[r,a]=y.useState();if(Yn(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?Sl.createPortal(i.jsx(jU,{scope:e.__scopeSelect,children:i.jsx(Jy.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),s):null}return i.jsx(SU,{...e,ref:t})});wU.displayName=wl;var La=10,[jU,po]=td(wl),kwe="SelectContentImpl",Mwe=pwe("SelectContent.RemoveScroll"),SU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b,...N}=e,E=mo(wl,n),[O,A]=y.useState(null),[C,k]=y.useState(null),T=Ue(t,ee=>A(ee)),[M,R]=y.useState(null),[B,$]=y.useState(null),H=ex(n),[V,q]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(O)return zy(O)},[O]),Ly();const L=y.useCallback(ee=>{const[Se,...re]=H().map(fe=>fe.ref.current),[we]=re.slice(-1),je=document.activeElement;for(const fe of ee)if(fe===je||(fe?.scrollIntoView({block:"nearest"}),fe===Se&&C&&(C.scrollTop=0),fe===we&&C&&(C.scrollTop=C.scrollHeight),fe?.focus(),document.activeElement!==je))return},[H,C]),D=y.useCallback(()=>L([M,O]),[L,M,O]);y.useEffect(()=>{V&&D()},[V,D]);const{onOpenChange:U,triggerPointerDownPosRef:K}=E;y.useEffect(()=>{if(O){let ee={x:0,y:0};const Se=we=>{ee={x:Math.abs(Math.round(we.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(we.pageY)-(K.current?.y??0))}},re=we=>{ee.x<=10&&ee.y<=10?we.preventDefault():O.contains(we.target)||U(!1),document.removeEventListener("pointermove",Se),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",Se),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Se),document.removeEventListener("pointerup",re,{capture:!0})}}},[O,U,K]),y.useEffect(()=>{const ee=()=>U(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[U]);const[J,I]=zU(ee=>{const Se=H().filter(je=>!je.disabled),re=Se.find(je=>je.ref.current===document.activeElement),we=qU(Se,ee,re);we&&setTimeout(()=>we.ref.current.focus())}),z=y.useCallback((ee,Se,re)=>{const we=!G.current&&!re;(E.value!==void 0&&E.value===Se||we)&&(R(ee),we&&(G.current=!0))},[E.value]),Y=y.useCallback(()=>O?.focus(),[O]),te=y.useCallback((ee,Se,re)=>{const we=!G.current&&!re;(E.value!==void 0&&E.value===Se||we)&&$(ee)},[E.value]),ae=r==="popper"?fC:_U,ge=ae===fC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b}:{};return i.jsx(jU,{scope:n,content:O,viewport:C,onViewportChange:k,itemRefCallback:z,selectedItem:M,onItemLeave:Y,itemTextRefCallback:te,focusSelectedItem:D,selectedItemText:B,position:r,isPositioned:V,searchRef:J,children:i.jsx(Xh,{as:Mwe,allowPinchZoom:!0,children:i.jsx(Kh,{asChild:!0,trapped:E.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:_e(a,ee=>{E.trigger?.focus({preventScroll:!0}),ee.preventDefault()}),children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:i.jsx(ae,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:ee=>ee.preventDefault(),...N,...ge,onPlaced:()=>q(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:_e(N.onKeyDown,ee=>{const Se=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!Se&&ee.key.length===1&&I(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let we=H().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(we=we.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const je=ee.target,fe=we.indexOf(je);we=we.slice(fe+1)}setTimeout(()=>L(we)),ee.preventDefault()}})})})})})})});SU.displayName=kwe;var Pwe="SelectItemAlignedPosition",_U=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=mo(wl,n),l=po(wl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=Ue(t,T=>m(T)),g=ex(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:N,focusSelectedItem:E}=l,O=y.useCallback(()=>{if(s.trigger&&s.valueNode&&u&&f&&w&&b&&N){const T=s.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),B=N.getBoundingClientRect();if(s.dir!=="rtl"){const je=B.left-M.left,fe=R.left-je,Le=T.left-fe,Oe=T.width+Le,We=Math.max(Oe,M.width),be=window.innerWidth-La,Ae=Rf(fe,[La,Math.max(La,be-We)]);u.style.minWidth=Oe+"px",u.style.left=Ae+"px"}else{const je=M.right-B.right,fe=window.innerWidth-R.right-je,Le=window.innerWidth-T.right-fe,Oe=T.width+Le,We=Math.max(Oe,M.width),be=window.innerWidth-La,Ae=Rf(fe,[La,Math.max(La,be-We)]);u.style.minWidth=Oe+"px",u.style.right=Ae+"px"}const $=g(),H=window.innerHeight-La*2,V=w.scrollHeight,q=window.getComputedStyle(f),G=parseInt(q.borderTopWidth,10),L=parseInt(q.paddingTop,10),D=parseInt(q.borderBottomWidth,10),U=parseInt(q.paddingBottom,10),K=G+L+V+U+D,J=Math.min(b.offsetHeight*5,K),I=window.getComputedStyle(w),z=parseInt(I.paddingTop,10),Y=parseInt(I.paddingBottom,10),te=T.top+T.height/2-La,ae=H-te,ge=b.offsetHeight/2,ee=b.offsetTop+ge,Se=G+L+ee,re=K-Se;if(Se<=te){const je=$.length>0&&b===$[$.length-1].ref.current;u.style.bottom="0px";const fe=f.clientHeight-w.offsetTop-w.offsetHeight,Le=Math.max(ae,ge+(je?Y:0)+fe+D),Oe=Se+Le;u.style.height=Oe+"px"}else{const je=$.length>0&&b===$[0].ref.current;u.style.top="0px";const Le=Math.max(te,G+w.offsetTop+(je?z:0)+ge)+re;u.style.height=Le+"px",w.scrollTop=Se-te+w.offsetTop}u.style.margin=`${La}px 0`,u.style.minHeight=J+"px",u.style.maxHeight=H+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,s.trigger,s.valueNode,u,f,w,b,N,s.dir,r]);Yn(()=>O(),[O]);const[A,C]=y.useState();Yn(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(T=>{T&&j.current===!0&&(O(),E?.(),j.current=!1)},[O,E]);return i.jsx(Dwe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:i.jsx($e.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});_U.displayName=Pwe;var Rwe="SelectPopperPosition",fC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=La,...s}=e,l=tx(n);return i.jsx(Xy,{...l,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.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)"}})});fC.displayName=Rwe;var[Dwe,EE]=td(wl,{}),hC="SelectViewport",NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=po(hC,n),l=EE(hC,n),u=Ue(t,s.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(Jy.Slot,{scope:n,children:i.jsx($e.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:_e(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-La*2,w=parseFloat(p.style.minHeight),b=parseFloat(p.style.height),N=Math.max(w,b);if(N0?A:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});NU.displayName=hC;var CU="SelectGroup",[$we,Iwe]=td(CU),Lwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Gn();return i.jsx($we,{scope:n,id:a,children:i.jsx($e.div,{role:"group","aria-labelledby":a,...r,ref:t})})});Lwe.displayName=CU;var OU="SelectLabel",EU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Iwe(OU,n);return i.jsx($e.div,{id:a.id,...r,ref:t})});EU.displayName=OU;var $g="SelectItem",[Bwe,AU]=td($g),TU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...l}=e,u=mo($g,n),d=po($g,n),f=u.value===r,[m,p]=y.useState(s??""),[g,x]=y.useState(!1),j=Ue(t,E=>d.itemRefCallback?.(E,r,a)),w=Gn(),b=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Bwe,{scope:n,value:r,disabled:a,textId:w,isSelected:f,onItemTextChange:y.useCallback(E=>{p(O=>O||(E?.textContent??"").trim())},[]),children:i.jsx(Jy.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx($e.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:_e(l.onFocus,()=>x(!0)),onBlur:_e(l.onBlur,()=>x(!1)),onClick:_e(l.onClick,()=>{b.current!=="mouse"&&N()}),onPointerUp:_e(l.onPointerUp,()=>{b.current==="mouse"&&N()}),onPointerDown:_e(l.onPointerDown,E=>{b.current=E.pointerType}),onPointerMove:_e(l.onPointerMove,E=>{b.current=E.pointerType,a?d.onItemLeave?.():b.current==="mouse"&&E.currentTarget.focus({preventScroll:!0})}),onPointerLeave:_e(l.onPointerLeave,E=>{E.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:_e(l.onKeyDown,E=>{d.searchRef?.current!==""&&E.key===" "||(_we.includes(E.key)&&N(),E.key===" "&&E.preventDefault())})})})})});TU.displayName=$g;var yf="SelectItemText",kU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,l=mo(yf,n),u=po(yf,n),d=AU(yf,n),f=Ewe(yf,n),[m,p]=y.useState(null),g=Ue(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return Yn(()=>(w(j),()=>b(j)),[w,b,j]),i.jsxs(i.Fragment,{children:[i.jsx($e.span,{id:d.textId,...s,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Sl.createPortal(s.children,l.valueNode):null]})});kU.displayName=yf;var MU="SelectItemIndicator",PU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return AU(MU,n).isSelected?i.jsx($e.span,{"aria-hidden":!0,...r,ref:t}):null});PU.displayName=MU;var mC="SelectScrollUpButton",RU=y.forwardRef((e,t)=>{const n=po(mC,e.__scopeSelect),r=EE(mC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;s(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx($U,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});RU.displayName=mC;var pC="SelectScrollDownButton",DU=y.forwardRef((e,t)=>{const n=po(pC,e.__scopeSelect),r=EE(pC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx($U,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});DU.displayName=pC;var $U=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=po("SelectScrollButton",n),l=y.useRef(null),u=ex(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Yn(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx($e.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:_e(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:_e(a.onPointerMove,()=>{s.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:_e(a.onPointerLeave,()=>{d()})})}),zwe="SelectSeparator",IU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx($e.div,{"aria-hidden":!0,...r,ref:t})});IU.displayName=zwe;var vC="SelectArrow",qwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=tx(n),s=mo(vC,n),l=po(vC,n);return s.open&&l.position==="popper"?i.jsx(Zy,{...a,...r,ref:t}):null});qwe.displayName=vC;var Fwe="SelectBubbleInput",LU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(r,a),l=Dy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.select,{...n,style:{...hU,...n.style},ref:s,defaultValue:t})});LU.displayName=Fwe;function BU(e){return e===""||e===void 0}function zU(e){const t=ln(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),s=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}function qU(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=Uwe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function Uwe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Hwe=mU,FU=vU,Wwe=yU,Vwe=xU,Gwe=bU,UU=wU,Ywe=NU,HU=EU,WU=TU,Kwe=kU,Xwe=PU,VU=RU,GU=DU,YU=IU;const Dt=Hwe,$t=Wwe,Ot=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(FU,{ref:r,className:ce("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx(Vwe,{asChild:!0,children:i.jsx(vh,{className:"h-4 w-4 opacity-50"})})]}));Ot.displayName=FU.displayName;const KU=y.forwardRef(({className:e,...t},n)=>i.jsx(VU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(XN,{className:"h-4 w-4"})}));KU.displayName=VU.displayName;const XU=y.forwardRef(({className:e,...t},n)=>i.jsx(GU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(vh,{className:"h-4 w-4"})}));XU.displayName=GU.displayName;const Et=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(Gwe,{children:i.jsxs(UU,{ref:a,className:ce("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(KU,{}),i.jsx(Ywe,{className:ce("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(XU,{})]})}));Et.displayName=UU.displayName;const Zwe=y.forwardRef(({className:e,...t},n)=>i.jsx(HU,{ref:n,className:ce("px-2 py-1.5 text-sm font-semibold",e),...t}));Zwe.displayName=HU.displayName;const De=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(WU,{ref:r,className:ce("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Xwe,{children:i.jsx(ol,{className:"h-4 w-4"})})}),i.jsx(Kwe,{children:t})]}));De.displayName=WU.displayName;const Qwe=y.forwardRef(({className:e,...t},n)=>i.jsx(YU,{ref:n,className:ce("-mx-1 my-1 h-px bg-muted",e),...t}));Qwe.displayName=YU.displayName;function Jwe(e){const t=eje(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(nje);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function eje(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=aje(a),u=rje(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tje=Symbol("radix.slottable");function nje(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tje}function rje(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function aje(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var nx="Popover",[ZU]=gr(nx,[ho]),em=ho(),[ije,vo]=ZU(nx),QU=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=em(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:nx});return i.jsx(Qh,{...u,children:i.jsx(ije,{scope:t,contentId:Gn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};QU.displayName=nx;var JU="PopoverAnchor",sje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(JU,n),s=em(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(Jh,{...s,...r,ref:t})});sje.displayName=JU;var eH="PopoverTrigger",tH=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(eH,n),s=em(n),l=Ue(t,a.triggerRef),u=i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":sH(a.open),...r,ref:l,onClick:_e(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(Jh,{asChild:!0,...s,children:u})});tH.displayName=eH;var AE="PopoverPortal",[oje,lje]=ZU(AE,{forceMount:void 0}),nH=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,s=vo(AE,t);return i.jsx(oje,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};nH.displayName=AE;var $u="PopoverContent",rH=y.forwardRef((e,t)=>{const n=lje($u,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,s=vo($u,e.__scopePopover);return i.jsx(Bn,{present:r||s.open,children:s.modal?i.jsx(uje,{...a,ref:t}):i.jsx(dje,{...a,ref:t})})});rH.displayName=$u;var cje=Jwe("PopoverContent.RemoveScroll"),uje=y.forwardRef((e,t)=>{const n=vo($u,e.__scopePopover),r=y.useRef(null),a=Ue(t,r),s=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return zy(l)},[]),i.jsx(Xh,{as:cje,allowPinchZoom:!0,children:i.jsx(aH,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:_e(e.onCloseAutoFocus,l=>{l.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:_e(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;s.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:_e(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),dje=y.forwardRef((e,t)=>{const n=vo($u,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(aH,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),aH=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=vo($u,n),x=em(n);return Ly(),i.jsx(Kh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Xy,{"data-state":sH(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),iH="PopoverClose",fje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(iH,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,()=>a.onOpenChange(!1))})});fje.displayName=iH;var hje="PopoverArrow",mje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=em(n);return i.jsx(Zy,{...a,...r,ref:t})});mje.displayName=hje;function sH(e){return e?"open":"closed"}var pje=QU,vje=tH,gje=nH,oH=rH;const ro=pje,ao=vje,ds=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(gje,{children:i.jsx(oH,{ref:a,align:t,sideOffset:n,className:ce("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));ds.displayName=oH.displayName;const nd="/api/webui/config";async function yje(){const t=await(await rt(`${nd}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function Jc(){const t=await(await rt(`${nd}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function kL(e){const n=await(await rt(`${nd}/bot`,{method:"POST",headers:dt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function Ig(e){const n=await(await rt(`${nd}/model`,{method:"POST",headers:dt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function xje(e,t){const r=await(await rt(`${nd}/bot/section/${e}`,{method:"POST",headers:dt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function gC(e,t){const r=await(await rt(`${nd}/model/section/${e}`,{method:"POST",headers:dt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}const bje=vn.create({baseURL:"",timeout:1e4});async function TE(){try{return(await bje.post("/api/webui/system/restart")).data}catch(e){throw console.error("重启麦麦失败:",e),e}}const wje=Zu("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),rx=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx("div",{ref:r,role:"alert",className:ce(wje({variant:t}),e),...n}));rx.displayName="Alert";const jje=y.forwardRef(({className:e,...t},n)=>i.jsx("h5",{ref:n,className:ce("mb-1 font-medium leading-none tracking-tight",e),...t}));jje.displayName="AlertTitle";const ax=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm [&_p]:leading-relaxed",e),...t}));ax.displayName="AlertDescription";function kE({onRestartComplete:e,onRestartFailed:t}){const[n,r]=y.useState(0),[a,s]=y.useState("restarting"),[l,u]=y.useState(0),[d,f]=y.useState(0);y.useEffect(()=>{const g=setInterval(()=>{r(w=>w>=90?w:w+1)},200),x=setInterval(()=>{u(w=>w+1)},1e3),j=setTimeout(()=>{s("checking"),m()},3e3);return()=>{clearInterval(g),clearInterval(x),clearTimeout(j)}},[]);const m=()=>{const x=async()=>{try{if(f(w=>w+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)r(100),s("success"),setTimeout(()=>{e?.()},1500);else throw new Error("Status check failed")}catch{d<60?setTimeout(x,2e3):(s("failed"),t?.())}};x()},p=g=>{const x=Math.floor(g/60),j=g%60;return`${x}:${j.toString().padStart(2,"0")}`};return i.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:i.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[i.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[a==="restarting"&&i.jsxs(i.Fragment,{children:[i.jsx(gh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),a==="checking"&&i.jsxs(i.Fragment,{children:[i.jsx(gh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),i.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",d,"/60)"]})]}),a==="success"&&i.jsxs(i.Fragment,{children:[i.jsx(Pr,{className:"h-16 w-16 text-green-500"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),a==="failed"&&i.jsxs(i.Fragment,{children:[i.jsx(gl,{className:"h-16 w-16 text-destructive"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),a!=="failed"&&i.jsxs("div",{className:"space-y-2",children:[i.jsx($h,{value:n,className:"h-2"}),i.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[i.jsxs("span",{children:[n,"%"]}),i.jsxs("span",{children:["已用时: ",p(l)]})]})]}),i.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:i.jsxs("p",{className:"text-sm text-muted-foreground",children:[a==="restarting"&&"🔄 配置已保存,正在重启主程序...",a==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",a==="success"&&"✅ 配置已生效,服务运行正常",a==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),a==="failed"&&i.jsxs("div",{className:"flex gap-2",children:[i.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),i.jsx("button",{onClick:()=>{s("checking"),f(0),m()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function Sje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),{toast:g}=yr(),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[T,M]=y.useState(null),[R,B]=y.useState(null),[$,H]=y.useState(null),[V,q]=y.useState(null),[G,L]=y.useState(null),[D,U]=y.useState(null),[K,J]=y.useState(null),[I,z]=y.useState(null),[Y,te]=y.useState(null),[ae,ge]=y.useState(null),[ee,Se]=y.useState(null),[re,we]=y.useState(null),[je,fe]=y.useState(null),Le=y.useRef(null),Oe=y.useRef(!0),We=y.useRef({}),be=y.useCallback(async()=>{try{t(!0);const ue=await yje();We.current=ue,j(ue.bot),b(ue.personality);const Ve=ue.chat;Ve.talk_value_rules||(Ve.talk_value_rules=[]),E(Ve),A(ue.expression),k(ue.emoji),M(ue.memory),B(ue.tool),H(ue.mood),q(ue.voice),L(ue.lpmm_knowledge),U(ue.keyword_reaction),J(ue.response_post_process),z(ue.chinese_typo),te(ue.response_splitter),ge(ue.log),Se(ue.debug),we(ue.maim_message),fe(ue.telemetry),u(!1),Oe.current=!1}catch(ue){console.error("加载配置失败:",ue),g({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[g]);y.useEffect(()=>{be()},[be]);const Ae=y.useCallback(async(ue,Ve)=>{if(!Oe.current)try{s(!0),await xje(ue,Ve),u(!1)}catch(Mn){console.error(`自动保存 ${ue} 失败:`,Mn),u(!0)}finally{s(!1)}},[]),ke=y.useCallback((ue,Ve)=>{Oe.current||(u(!0),Le.current&&clearTimeout(Le.current),Le.current=setTimeout(()=>{Ae(ue,Ve)},2e3))},[Ae]);y.useEffect(()=>{x&&!Oe.current&&ke("bot",x)},[x,ke]),y.useEffect(()=>{w&&!Oe.current&&ke("personality",w)},[w,ke]),y.useEffect(()=>{N&&!Oe.current&&ke("chat",N)},[N,ke]),y.useEffect(()=>{O&&!Oe.current&&ke("expression",O)},[O,ke]),y.useEffect(()=>{C&&!Oe.current&&ke("emoji",C)},[C,ke]),y.useEffect(()=>{T&&!Oe.current&&ke("memory",T)},[T,ke]),y.useEffect(()=>{R&&!Oe.current&&ke("tool",R)},[R,ke]),y.useEffect(()=>{$&&!Oe.current&&ke("mood",$)},[$,ke]),y.useEffect(()=>{V&&!Oe.current&&ke("voice",V)},[V,ke]),y.useEffect(()=>{G&&!Oe.current&&ke("lpmm_knowledge",G)},[G,ke]),y.useEffect(()=>{D&&!Oe.current&&ke("keyword_reaction",D)},[D,ke]),y.useEffect(()=>{K&&!Oe.current&&ke("response_post_process",K)},[K,ke]),y.useEffect(()=>{I&&!Oe.current&&ke("chinese_typo",I)},[I,ke]),y.useEffect(()=>{Y&&!Oe.current&&ke("response_splitter",Y)},[Y,ke]),y.useEffect(()=>{ae&&!Oe.current&&ke("log",ae)},[ae,ke]),y.useEffect(()=>{ee&&!Oe.current&&ke("debug",ee)},[ee,ke]),y.useEffect(()=>{re&&!Oe.current&&ke("maim_message",re)},[re,ke]),y.useEffect(()=>{je&&!Oe.current&&ke("telemetry",je)},[je,ke]);const Qt=async()=>{try{r(!0),Le.current&&clearTimeout(Le.current);const ue={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:$,voice:V,lpmm_knowledge:G,keyword_reaction:D,response_post_process:K,chinese_typo:I,response_splitter:Y,log:ae,debug:ee,maim_message:re,telemetry:je};await kL(ue),u(!1),g({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(ue){console.error("保存配置失败:",ue),g({title:"保存失败",description:ue.message,variant:"destructive"})}finally{r(!1)}},St=async()=>{try{f(!0),TE().catch(()=>{}),p(!0)}catch(ue){console.error("重启失败:",ue),p(!1),g({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),f(!1)}},Tt=async()=>{try{r(!0),Le.current&&clearTimeout(Le.current);const ue={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:$,voice:V,lpmm_knowledge:G,keyword_reaction:D,response_post_process:K,chinese_typo:I,response_splitter:Y,log:ae,debug:ee,maim_message:re,telemetry:je};await kL(ue),u(!1),g({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(Ve=>setTimeout(Ve,500)),await St()}catch(ue){console.error("保存失败:",ue),g({title:"保存失败",description:ue.message,variant:"destructive"})}finally{r(!1)}},Sn=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},le=()=>{p(!1),f(!1),g({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return e?i.jsx(Wt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:Qt,disabled:n||a||!l||d,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(sE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:n||a||d,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(iE,{className:"mr-2 h-4 w-4"}),d?"重启中...":l?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:l?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:l?Tt:St,children:l?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(rx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(ax,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(dl,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(eo,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Rt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Rt,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Rt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Rt,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Rt,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Rt,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Rt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Rt,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Rt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Rt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(sn,{value:"bot",className:"space-y-4",children:x&&i.jsx(_je,{config:x,onChange:j})}),i.jsx(sn,{value:"personality",className:"space-y-4",children:w&&i.jsx(Nje,{config:w,onChange:b})}),i.jsx(sn,{value:"chat",className:"space-y-4",children:N&&i.jsx(Cje,{config:N,onChange:E})}),i.jsx(sn,{value:"expression",className:"space-y-4",children:O&&i.jsx(Oje,{config:O,onChange:A})}),i.jsx(sn,{value:"features",className:"space-y-4",children:C&&T&&R&&i.jsx(Eje,{emojiConfig:C,memoryConfig:T,toolConfig:R,onEmojiChange:k,onMemoryChange:M,onToolChange:B})}),i.jsx(sn,{value:"processing",className:"space-y-4",children:D&&K&&I&&Y&&i.jsx(Aje,{keywordReactionConfig:D,responsePostProcessConfig:K,chineseTypoConfig:I,responseSplitterConfig:Y,onKeywordReactionChange:U,onResponsePostProcessChange:J,onChineseTypoChange:z,onResponseSplitterChange:te})}),i.jsx(sn,{value:"mood",className:"space-y-4",children:$&&i.jsx(Tje,{config:$,onChange:H})}),i.jsx(sn,{value:"voice",className:"space-y-4",children:V&&i.jsx(kje,{config:V,onChange:q})}),i.jsx(sn,{value:"lpmm",className:"space-y-4",children:G&&i.jsx(Mje,{config:G,onChange:L})}),i.jsxs(sn,{value:"other",className:"space-y-4",children:[ae&&i.jsx(Pje,{config:ae,onChange:ge}),ee&&i.jsx(Rje,{config:ee,onChange:Se}),re&&i.jsx(Dje,{config:re,onChange:we}),je&&i.jsx($je,{config:je,onChange:fe})]})]}),m&&i.jsx(kE,{onRestartComplete:Sn,onRestartFailed:le})]})})}function _je({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},s=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"platform",children:"平台"}),i.jsx(Ne,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ne,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"其他平台账号"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"别名"}),i.jsxs(oe,{onClick:s,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function Nje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=s=>{t({...e,states:e.states.filter((l,u)=>u!==s)})},a=(s,l)=>{const u=[...e.states];u[s]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"personality",children:"人格特质"}),i.jsx(Xt,{id:"personality",value:e.personality,onChange:s=>t({...e,personality:s.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Xt,{id:"reply_style",value:e.reply_style,onChange:s=>t({...e,reply_style:s.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"interest",children:"兴趣"}),i.jsx(Xt,{id:"interest",value:e.interest,onChange:s=>t({...e,interest:s.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Xt,{id:"plan_style",value:e.plan_style,onChange:s=>t({...e,plan_style:s.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Xt,{id:"visual_style",value:e.visual_style,onChange:s=>t({...e,visual_style:s.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Xt,{id:"private_plan_style",value:e.private_plan_style,onChange:s=>t({...e,private_plan_style:s.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"状态列表(人格多样性)"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((s,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Xt,{value:s,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsx(hn,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ne,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:s=>t({...e,state_probability:parseFloat(s.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function Cje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},s=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[w,b]=y.useState("59");y.useEffect(()=>{const E=u.split("-");if(E.length===2){const[O,A]=E,[C,k]=O.split(":"),[T,M]=A.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),T&&j(T.padStart(2,"0")),M&&b(M.padStart(2,"0"))}},[u]);const N=(E,O,A,C)=>{const k=`${E}:${O}-${A}:${C}`;d(k)};return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(ll,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(ds,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"小时"}),i.jsxs(Dt,{value:f,onValueChange:E=>{m(E),N(E,p,x,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"分钟"}),i.jsxs(Dt,{value:p,onValueChange:E=>{g(E),N(f,E,x,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"小时"}),i.jsxs(Dt,{value:x,onValueChange:E=>{j(E),N(f,p,E,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"分钟"}),i.jsxs(Dt,{value:w,onValueChange:E=>{b(E),N(f,p,x,E)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ne,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ne,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ne,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ne,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(Q,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(Q,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(oe,{onClick:n,size:"sm",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{variant:"ghost",size:"sm",children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Dt,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"global",children:"全局配置"}),i.jsx(De,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Dt,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"qq",children:"QQ"}),i.jsx(De,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Dt,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"group",children:"群组(group)"}),i.jsx(De,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(s,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ne,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(Wy,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function Oje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const w=[...e.learning_list];w[g][x]=j,t({...e,learning_list:w})},s=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:w})=>{const b=w.includes(g)||g==="*",[N,E]=y.useState(!b);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ne,{value:g,onChange:O=>p(x,j,O.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),w.length>0&&i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(Dt,{value:g,onValueChange:O=>p(x,j,O),children:[i.jsx(Ot,{className:"flex-1",children:i.jsx($t,{placeholder:"选择聊天流"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"*",children:"* (全局共享)"}),w.map((O,A)=>i.jsx(De,{value:O,children:O},A))]})]}),i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((w,b)=>b!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const w=[...e.expression_groups];w[g][x]=j,t({...e,expression_groups:w})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((A,C)=>C!==x&&A[0]===""),w=g[0]==="",b=g[0].split(":"),N=b[0]||"qq",E=b[1]||"",O=b[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",w&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(s,{rule:g}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Dt,{value:w?"global":"specific",onValueChange:A=>{A==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!w,children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"global",children:"全局配置"}),i.jsx(De,{value:"specific",disabled:j&&!w,children:"详细配置"})]})]}),j&&!w&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!w&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Dt,{value:N,onValueChange:A=>{a(x,0,`${A}:${E}:${O}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"qq",children:"QQ"}),i.jsx(De,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:E,onChange:A=>{a(x,0,`${N}:${A.target.value}:${O}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Dt,{value:O,onValueChange:A=>{a(x,0,`${N}:${E}:${A}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"group",children:"群组(group)"}),i.jsx(De,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(lt,{checked:g[1]==="enable",onCheckedChange:A=>a(x,1,A?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(lt,{checked:g[2]==="enable",onCheckedChange:A=>a(x,2,A?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:A=>{const C=parseFloat(A.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(Wy,{value:[parseFloat(g[3])||1],onValueChange:A=>a(x,3,A[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(oe,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(w=>w[0]).filter(w=>w!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(ir,{className:"h-4 w-4"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((w,b)=>i.jsx(l,{member:w,groupIndex:x,memberIndex:b,availableChatIds:j},b))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function Eje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:s}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>s({...n,enable_tool:l})}),i.jsx(Q,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ne,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ne,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(Q,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(Q,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(Q,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function Aje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:s,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=A=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==A)})},m=(A,C,k)=>{const T=[...e.regex_rules];C==="regex"&&typeof k=="string"?T[A]={...T[A],regex:[k]}:C==="reaction"&&typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,regex_rules:T})},p=({regex:A,reaction:C,onRegexChange:k,onReactionChange:T})=>{const[M,R]=y.useState(!1),[B,$]=y.useState(""),[H,V]=y.useState(null),[q,G]=y.useState(""),[L,D]=y.useState({}),[U,K]=y.useState(""),J=y.useRef(null),[I,z]=y.useState("build"),Y=ee=>ee.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),te=(ee,Se=0)=>{const re=J.current;if(!re)return;const we=re.selectionStart||0,je=re.selectionEnd||0,fe=A.substring(0,we)+ee+A.substring(je);k(fe),setTimeout(()=>{const Le=we+ee.length+Se;re.setSelectionRange(Le,Le),re.focus()},0)};y.useEffect(()=>{if(!A||!B){V(null),D({}),K(C),G("");return}try{const ee=Y(A),Se=new RegExp(ee,"g"),re=B.match(Se);V(re),G("");const je=new RegExp(ee).exec(B);if(je&&je.groups){D(je.groups);let fe=C;Object.entries(je.groups).forEach(([Le,Oe])=>{fe=fe.replace(new RegExp(`\\[${Le}\\]`,"g"),Oe||"")}),K(fe)}else D({}),K(C)}catch(ee){G(ee.message),V(null),D({}),K(C)}},[A,B,C]);const ae=()=>{if(!B||!H||H.length===0)return i.jsx("span",{className:"text-muted-foreground",children:B||"请输入测试文本"});try{const ee=Y(A),Se=new RegExp(ee,"g");let re=0;const we=[];let je;for(;(je=Se.exec(B))!==null;)je.index>re&&we.push(i.jsx("span",{children:B.substring(re,je.index)},`text-${re}`)),we.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),re=je.index+je[0].length;return re)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(sr,{open:M,onOpenChange:R,children:[i.jsx(i8,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Og,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"正则表达式编辑器"}),i.jsx(vr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Wt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(dl,{value:I,onValueChange:ee=>z(ee),className:"w-full",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2",children:[i.jsx(Rt,{value:"build",children:"🔧 构建器"}),i.jsx(Rt,{value:"test",children:"🧪 测试器"})]}),i.jsxs(sn,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ne,{ref:J,value:A,onChange:ee=>k(ee.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Xt,{value:C,onChange:ee=>T(ee.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[ge.map(ee=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ee.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ee.items.map(Se=>i.jsx(oe,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>te(Se.pattern,Se.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:Se.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:Se.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:Se.desc})]})},Se.label))})]},ee.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(sn,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:A||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Xt,{id:"test-text",value:B,onChange:ee=>$(ee.target.value),placeholder:`在此输入要测试的文本... 例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),q&&i.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[i.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),i.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:q})]}),!q&&B&&i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex items-center gap-2",children:H&&H.length>0?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),i.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",H.length," 处)"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),i.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"匹配高亮"}),i.jsx(Wt,{className:"h-40 rounded-md bg-muted p-3",children:i.jsx("div",{className:"text-sm break-words",children:ae()})})]}),Object.keys(L).length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"命名捕获组"}),i.jsx(Wt,{className:"h-32 rounded-md border p-3",children:i.jsx("div",{className:"space-y-2",children:Object.entries(L).map(([ee,Se])=>i.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ee,"]"]}),i.jsx("span",{className:"text-muted-foreground",children:"="}),i.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:Se})]},ee))})})]}),Object.keys(L).length>0&&C&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"Reaction 替换预览"}),i.jsx(Wt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:i.jsx("div",{className:"text-sm break-words",children:U})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),i.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),i.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),i.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},g=()=>{a({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},x=A=>{a({...e,keyword_rules:e.keyword_rules.filter((C,k)=>k!==A)})},j=(A,C,k)=>{const T=[...e.keyword_rules];typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,keyword_rules:T})},w=A=>{const C=[...e.keyword_rules];C[A]={...C[A],keywords:[...C[A].keywords||[],""]},a({...e,keyword_rules:C})},b=(A,C)=>{const k=[...e.keyword_rules];k[A]={...k[A],keywords:(k[A].keywords||[]).filter((T,M)=>M!==C)},a({...e,keyword_rules:k})},N=(A,C,k)=>{const T=[...e.keyword_rules],M=[...T[A].keywords||[]];M[C]=k,T[A]={...T[A],keywords:M},a({...e,keyword_rules:T})},E=({rule:A})=>{const C=`{ regex = [${(A.regex||[]).map(k=>`"${k}"`).join(", ")}], reaction = "${A.reaction}" }`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Wt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},O=({rule:A})=>{const C=`[[keyword_reaction.keyword_rules]] keywords = [${(A.keywords||[]).map(k=>`"${k}"`).join(", ")}] reaction = "${A.reaction}"`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Wt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),i.jsxs(oe,{onClick:d,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(p,{regex:A.regex&&A.regex[0]||"",reaction:A.reaction,onRegexChange:k=>m(C,"regex",k),onReactionChange:k=>m(C,"reaction",k)}),i.jsx(E,{rule:A}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除正则规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>f(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),i.jsx(Ne,{value:A.regex&&A.regex[0]||"",onChange:k=>m(C,"regex",k.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Xt,{value:A.reaction,onChange:k=>m(C,"reaction",k.target.value),placeholder:`触发后麦麦的反应... -可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(oe,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(O,{rule:A}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(oe,{onClick:()=>w(C),size:"sm",variant:"ghost",children:[i.jsx(ir,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(A.keywords||[]).map((k,T)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ne,{value:k,onChange:M=>N(C,T,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(oe,{onClick:()=>b(C,T),size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})]},T)),(!A.keywords||A.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Xt,{value:A.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:A=>s({...t,enable_response_post_process:A})}),i.jsx(Q,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(lt,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:A=>l({...n,enable:A})}),i.jsx(Q,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ne,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:A=>l({...n,error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ne,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:A=>l({...n,min_freq:parseInt(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ne,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:A=>l({...n,tone_error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ne,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:A=>l({...n,word_replace_rate:parseFloat(A.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(lt,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:A=>u({...r,enable:A})}),i.jsx(Q,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ne,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:A=>u({...r,max_length:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ne,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:A=>u({...r,max_sentence_num:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:A=>u({...r,enable_kaomoji_protection:A})}),i.jsx(Q,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:A=>u({...r,enable_overflow_return_all:A})}),i.jsx(Q,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function Tje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"情绪更新阈值"}),i.jsx(Ne,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"情感特征"}),i.jsx(Xt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function kje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function Mje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"LPMM 模式"}),i.jsxs(Dt,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(Ot,{children:i.jsx($t,{placeholder:"选择 LPMM 模式"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"classic",children:"经典模式"}),i.jsx(De,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"同义词搜索 TopK"}),i.jsx(Ne,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"同义词阈值"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"实体提取线程数"}),i.jsx(Ne,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"嵌入向量维度"}),i.jsx(Ne,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function Pje({config:e,onChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),s("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日期格式"}),i.jsx(Ne,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日志级别样式"}),i.jsxs(Dt,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:p.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日志文本颜色"}),i.jsxs(Dt,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:g.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"全局日志级别"}),i.jsxs(Dt,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"控制台日志级别"}),i.jsxs(Dt,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"文件日志级别"}),i.jsxs(Dt,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(oe,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(Dt,{value:a,onValueChange:s,children:[i.jsx(Ot,{className:"w-32",children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]}),i.jsx(oe,{onClick:d,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function Rje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(lt,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(lt,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(lt,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(lt,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function Dje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},s=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(lt,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"主机地址"}),i.jsx(Ne,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"端口号"}),i.jsx(Ne,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"连接模式"}),i.jsxs(Dt,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"ws",children:"WebSocket (ws)"}),i.jsx(De,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(Q,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"SSL 证书文件路径"}),i.jsx(Ne,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"SSL 密钥文件路径"}),i.jsx(Ne,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(oe,{onClick:a,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>s(u),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function $je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(lt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const kl=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:ce("w-full caption-bottom text-sm",e),...t})}));kl.displayName="Table";const Ml=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:ce("[&_tr]:border-b",e),...t}));Ml.displayName="TableHeader";const Pl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:ce("[&_tr:last-child]:border-0",e),...t}));Pl.displayName="TableBody";const Ije=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:ce("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Ije.displayName="TableFooter";const An=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:ce("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));An.displayName="TableRow";const nt=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:ce("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));nt.displayName="TableHead";const Ge=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:ce("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ge.displayName="TableCell";const Lje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:ce("mt-4 text-sm text-muted-foreground",e),...t}));Lje.displayName="TableCaption";var ax="Checkbox",[Bje]=gr(ax),[zje,ME]=Bje(ax);function qje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Ea({prop:n,defaultProp:a??!1,onChange:d,caller:ax}),[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useRef(!1),O=j?!!l||!!j.closest("form"):!0,A={checked:g,disabled:s,setChecked:x,control:j,setControl:w,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:E,required:f,defaultChecked:Js(a)?!1:a,isFormControl:O,bubbleInput:b,setBubbleInput:N};return i.jsx(zje,{scope:t,...A,children:Fje(p)?p(A):r})}var lH="CheckboxTrigger",cH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:s,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=ME(lH,e),w=Ue(a,m),b=y.useRef(d);return y.useEffect(()=>{const N=s?.form;if(N){const E=()=>p(b.current);return N.addEventListener("reset",E),()=>N.removeEventListener("reset",E)}},[s,p]),i.jsx($e.button,{type:"button",role:"checkbox","aria-checked":Js(d)?"mixed":d,"aria-required":f,"data-state":mH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:w,onKeyDown:_e(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:_e(n,N=>{p(E=>Js(E)?!0:!E),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});cH.displayName=lH;var PE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(qje,{__scopeCheckbox:n,checked:a,defaultChecked:s,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(cH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(hH,{__scopeCheckbox:n})]})})});PE.displayName=ax;var uH="CheckboxIndicator",dH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,s=ME(uH,n);return i.jsx(Bn,{present:r||Js(s.checked)||s.checked===!0,children:i.jsx($e.span,{"data-state":mH(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});dH.displayName=uH;var fH="CheckboxBubbleInput",hH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:s,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=ME(fH,e),j=Ue(n,x),w=Dy(s),b=$y(r);y.useEffect(()=>{const E=g;if(!E)return;const O=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(O,"checked").set,k=!a.current;if(w!==s&&C){const T=new Event("click",{bubbles:k});E.indeterminate=Js(s),C.call(E,Js(s)?!1:s),E.dispatchEvent(T)}},[g,w,s,a]);const N=y.useRef(Js(s)?!1:s);return i.jsx($e.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});hH.displayName=fH;function Fje(e){return typeof e=="function"}function Js(e){return e==="indeterminate"}function mH(e){return Js(e)?"indeterminate":e?"checked":"unchecked"}const io=y.forwardRef(({className:e,...t},n)=>i.jsx(PE,{ref:n,className:ce("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(dH,{className:ce("grid place-content-center text-current"),children:i.jsx(ol,{className:"h-4 w-4"})})}));io.displayName=PE.displayName;function Uje(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(!1),[B,$]=y.useState(""),[H,V]=y.useState(new Set),[q,G]=y.useState(!1),{toast:L}=yr(),D=y.useRef(null),U=y.useRef(!0);y.useEffect(()=>{K()},[]);const K=async()=>{try{r(!0);const be=await Jc();t(be.api_providers||[]),f(!1),U.current=!1}catch(be){console.error("加载配置失败:",be)}finally{r(!1)}},J=async()=>{try{p(!0),TE().catch(()=>{}),x(!0)}catch(be){console.error("重启失败:",be),x(!1),L({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),p(!1)}},I=async()=>{try{s(!0),D.current&&clearTimeout(D.current);const be=await Jc();be.api_providers=e,await Ig(be),f(!1),L({title:"保存成功",description:"正在重启麦麦..."}),await J()}catch(be){console.error("保存配置失败:",be),L({title:"保存失败",description:be.message,variant:"destructive"}),s(!1)}},z=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Y=()=>{x(!1),p(!1),L({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},te=y.useCallback(async be=>{if(!U.current)try{u(!0),await vC("api_providers",be),f(!1)}catch(Ae){console.error("自动保存失败:",Ae),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!U.current)return f(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{te(e)},2e3),()=>{D.current&&clearTimeout(D.current)}},[e,te]);const ae=async()=>{try{s(!0),D.current&&clearTimeout(D.current);const be=await Jc();be.api_providers=e,await Ig(be),f(!1),L({title:"保存成功",description:"模型提供商配置已保存"})}catch(be){console.error("保存配置失败:",be),L({title:"保存失败",description:be.message,variant:"destructive"})}finally{s(!1)}},ge=(be,Ae)=>{N(be||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),O(Ae),R(!1),w(!0)},ee=async()=>{if(b?.api_key)try{await navigator.clipboard.writeText(b.api_key),L({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{L({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},Se=()=>{if(b){if(E!==null){const be=[...e];be[E]=b,t(be)}else t([...e,b]);w(!1),N(null),O(null)}},re=be=>{T(be),C(!0)},we=()=>{if(k!==null){const be=e.filter((Ae,ke)=>ke!==k);t(be),L({title:"删除成功",description:"提供商已从列表中移除"})}C(!1),T(null)},je=be=>{const Ae=new Set(H);Ae.has(be)?Ae.delete(be):Ae.add(be),V(Ae)},fe=()=>{if(H.size===We.length)V(new Set);else{const be=We.map((Ae,ke)=>e.findIndex(Qt=>Qt===We[ke]));V(new Set(be))}},Le=()=>{if(H.size===0){L({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}G(!0)},Oe=()=>{const be=e.filter((Ae,ke)=>!H.has(ke));t(be),V(new Set),G(!1),L({title:"批量删除成功",description:`已删除 ${H.size} 个提供商`})},We=e.filter(be=>{if(!B)return!0;const Ae=B.toLowerCase();return be.name.toLowerCase().includes(Ae)||be.base_url.toLowerCase().includes(Ae)||be.client_type.toLowerCase().includes(Ae)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[H.size>0&&i.jsxs(oe,{onClick:Le,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(It,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",H.size,")"]}),i.jsxs(oe,{onClick:()=>ge(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(oe,{onClick:ae,disabled:a||l||!d||m,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(iE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:a||l||m,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(aE,{className:"mr-2 h-4 w-4"}),m?"重启中...":d?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:d?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:d?I:J,children:d?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(nx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(rx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(Wt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索提供商名称、URL 或类型...",value:B,onChange:be=>$(be.target.value),className:"pl-9"})]}),B&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",We.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:We.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:B?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):We.map((be,Ae)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:be.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:be.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ge(be,Ae),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>re(Ae),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:be.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:be.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:be.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:be.retry_interval})]})]})]},Ae))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-12",children:i.jsx(io,{checked:H.size===We.length&&We.length>0,onCheckedChange:fe})}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"基础URL"}),i.jsx(nt,{children:"客户端类型"}),i.jsx(nt,{className:"text-right",children:"最大重试"}),i.jsx(nt,{className:"text-right",children:"超时(秒)"}),i.jsx(nt,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:We.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:8,className:"text-center text-muted-foreground py-8",children:B?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):We.map((be,Ae)=>{const ke=e.findIndex(Qt=>Qt===be);return i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(io,{checked:H.has(ke),onCheckedChange:()=>je(ke)})}),i.jsx(Ge,{className:"font-medium",children:be.name}),i.jsx(Ge,{className:"max-w-xs truncate",title:be.base_url,children:be.base_url}),i.jsx(Ge,{children:be.client_type}),i.jsx(Ge,{className:"text-right",children:be.max_retry}),i.jsx(Ge,{className:"text-right",children:be.timeout}),i.jsx(Ge,{className:"text-right",children:be.retry_interval}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ge(be,ke),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>re(ke),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Ae)})})]})})]}),i.jsx(sr,{open:j,onOpenChange:w,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:E!==null?"编辑提供商":"添加提供商"}),i.jsx(vr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"name",children:"名称 *"}),i.jsx(Ne,{id:"name",value:b?.name||"",onChange:be=>N(Ae=>Ae?{...Ae,name:be.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ne,{id:"base_url",value:b?.base_url||"",onChange:be=>N(Ae=>Ae?{...Ae,base_url:be.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"api_key",type:M?"text":"password",value:b?.api_key||"",onChange:be=>N(Ae=>Ae?{...Ae,api_key:be.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:()=>R(!M),title:M?"隐藏密钥":"显示密钥",children:M?i.jsx(JN,{className:"h-4 w-4"}):i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:ee,title:"复制密钥",children:i.jsx(ZN,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(Dt,{value:b?.client_type||"openai",onValueChange:be=>N(Ae=>Ae?{...Ae,client_type:be}:null),children:[i.jsx(Ot,{id:"client_type",children:i.jsx($t,{placeholder:"选择客户端类型"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"openai",children:"OpenAI"}),i.jsx(De,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ne,{id:"max_retry",type:"number",min:"0",value:b?.max_retry||2,onChange:be=>N(Ae=>Ae?{...Ae,max_retry:parseInt(be.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ne,{id:"timeout",type:"number",min:"1",value:b?.timeout||30,onChange:be=>N(Ae=>Ae?{...Ae,timeout:parseInt(be.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ne,{id:"retry_interval",type:"number",min:"1",value:b?.retry_interval||10,onChange:be=>N(Ae=>Ae?{...Ae,retry_interval:parseInt(be.target.value)}:null)})]})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>w(!1),children:"取消"}),i.jsx(oe,{onClick:Se,children:"保存"})]})]})}),i.jsx(bn,{open:A,onOpenChange:C,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除提供商 "',k!==null?e[k]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:we,children:"删除"})]})]})}),i.jsx(bn,{open:q,onOpenChange:G,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认批量删除"}),i.jsxs(hn,{children:["确定要删除选中的 ",H.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:Oe,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),g&&i.jsx(kE,{onRestartComplete:z,onRestartFailed:Y})]})}var ML=1,Hje=.9,Wje=.8,Vje=.17,c_=.1,u_=.999,Gje=.9999,Yje=.99,Kje=/[\\\/_+.#"@\[\(\{&]/,Xje=/[\\\/_+.#"@\[\(\{&]/g,Zje=/[\s-]/,pH=/[\s-]/g;function gC(e,t,n,r,a,s,l){if(s===t.length)return a===e.length?ML:Yje;var u=`${a},${s}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(s),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=gC(e,t,n,r,f+1,s+1,l),p>m&&(f===a?p*=ML:Kje.test(e.charAt(f-1))?(p*=Wje,x=e.slice(a,f-1).match(Xje),x&&a>0&&(p*=Math.pow(u_,x.length))):Zje.test(e.charAt(f-1))?(p*=Hje,j=e.slice(a,f-1).match(pH),j&&a>0&&(p*=Math.pow(u_,j.length))):(p*=Vje,a>0&&(p*=Math.pow(u_,f-a))),e.charAt(f)!==t.charAt(s)&&(p*=Gje)),(pp&&(p=g*c_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function PL(e){return e.toLowerCase().replace(pH," ")}function Qje(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,gC(e,t,PL(e),PL(t),0,0,{})}var Jje=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],go=Jje.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ff='[cmdk-group=""]',d_='[cmdk-group-items=""]',e1e='[cmdk-group-heading=""]',vH='[cmdk-item=""]',RL=`${vH}:not([aria-disabled="true"])`,yC="cmdk-item-select",Ic="data-value",t1e=(e,t,n)=>Qje(e,t,n),gH=y.createContext(void 0),tm=()=>y.useContext(gH),yH=y.createContext(void 0),RE=()=>y.useContext(yH),xH=y.createContext(void 0),bH=y.forwardRef((e,t)=>{let n=Lc(()=>{var z,Y;return{search:"",value:(Y=(z=e.value)!=null?z:e.defaultValue)!=null?Y:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=Lc(()=>new Set),a=Lc(()=>new Map),s=Lc(()=>new Map),l=Lc(()=>new Set),u=wH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:w=!1,vimBindings:b=!0,...N}=e,E=Gn(),O=Gn(),A=Gn(),C=y.useRef(null),k=f1e();jl(()=>{if(m!==void 0){let z=m.trim();n.current.value=z,T.emit()}},[m]),jl(()=>{k(6,V)},[]);let T=y.useMemo(()=>({subscribe:z=>(l.current.add(z),()=>l.current.delete(z)),snapshot:()=>n.current,setState:(z,Y,te)=>{var ae,ge,ee,Se;if(!Object.is(n.current[z],Y)){if(n.current[z]=Y,z==="search")H(),B(),k(1,$);else if(z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(A);re?re.focus():(ae=document.getElementById(E))==null||ae.focus()}if(k(7,()=>{var re;n.current.selectedItemId=(re=q())==null?void 0:re.id,T.emit()}),te||k(5,V),((ge=u.current)==null?void 0:ge.value)!==void 0){let re=Y??"";(Se=(ee=u.current).onValueChange)==null||Se.call(ee,re);return}}T.emit()}},emit:()=>{l.current.forEach(z=>z())}}),[]),M=y.useMemo(()=>({value:(z,Y,te)=>{var ae;Y!==((ae=s.current.get(z))==null?void 0:ae.value)&&(s.current.set(z,{value:Y,keywords:te}),n.current.filtered.items.set(z,R(Y,te)),k(2,()=>{B(),T.emit()}))},item:(z,Y)=>(r.current.add(z),Y&&(a.current.has(Y)?a.current.get(Y).add(z):a.current.set(Y,new Set([z]))),k(3,()=>{H(),B(),n.current.value||$(),T.emit()}),()=>{s.current.delete(z),r.current.delete(z),n.current.filtered.items.delete(z);let te=q();k(4,()=>{H(),te?.getAttribute("id")===z&&$(),T.emit()})}),group:z=>(a.current.has(z)||a.current.set(z,new Set),()=>{s.current.delete(z),a.current.delete(z)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:E,inputId:A,labelId:O,listInnerRef:C}),[]);function R(z,Y){var te,ae;let ge=(ae=(te=u.current)==null?void 0:te.filter)!=null?ae:t1e;return z?ge(z,n.current.search,Y):0}function B(){if(!n.current.search||u.current.shouldFilter===!1)return;let z=n.current.filtered.items,Y=[];n.current.filtered.groups.forEach(ae=>{let ge=a.current.get(ae),ee=0;ge.forEach(Se=>{let re=z.get(Se);ee=Math.max(re,ee)}),Y.push([ae,ee])});let te=C.current;G().sort((ae,ge)=>{var ee,Se;let re=ae.getAttribute("id"),we=ge.getAttribute("id");return((ee=z.get(we))!=null?ee:0)-((Se=z.get(re))!=null?Se:0)}).forEach(ae=>{let ge=ae.closest(d_);ge?ge.appendChild(ae.parentElement===ge?ae:ae.closest(`${d_} > *`)):te.appendChild(ae.parentElement===te?ae:ae.closest(`${d_} > *`))}),Y.sort((ae,ge)=>ge[1]-ae[1]).forEach(ae=>{var ge;let ee=(ge=C.current)==null?void 0:ge.querySelector(`${ff}[${Ic}="${encodeURIComponent(ae[0])}"]`);ee?.parentElement.appendChild(ee)})}function $(){let z=G().find(te=>te.getAttribute("aria-disabled")!=="true"),Y=z?.getAttribute(Ic);T.setState("value",Y||void 0)}function H(){var z,Y,te,ae;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ge=0;for(let ee of r.current){let Se=(Y=(z=s.current.get(ee))==null?void 0:z.value)!=null?Y:"",re=(ae=(te=s.current.get(ee))==null?void 0:te.keywords)!=null?ae:[],we=R(Se,re);n.current.filtered.items.set(ee,we),we>0&&ge++}for(let[ee,Se]of a.current)for(let re of Se)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=ge}function V(){var z,Y,te;let ae=q();ae&&(((z=ae.parentElement)==null?void 0:z.firstChild)===ae&&((te=(Y=ae.closest(ff))==null?void 0:Y.querySelector(e1e))==null||te.scrollIntoView({block:"nearest"})),ae.scrollIntoView({block:"nearest"}))}function q(){var z;return(z=C.current)==null?void 0:z.querySelector(`${vH}[aria-selected="true"]`)}function G(){var z;return Array.from(((z=C.current)==null?void 0:z.querySelectorAll(RL))||[])}function L(z){let Y=G()[z];Y&&T.setState("value",Y.getAttribute(Ic))}function D(z){var Y;let te=q(),ae=G(),ge=ae.findIndex(Se=>Se===te),ee=ae[ge+z];(Y=u.current)!=null&&Y.loop&&(ee=ge+z<0?ae[ae.length-1]:ge+z===ae.length?ae[0]:ae[ge+z]),ee&&T.setState("value",ee.getAttribute(Ic))}function U(z){let Y=q(),te=Y?.closest(ff),ae;for(;te&&!ae;)te=z>0?u1e(te,ff):d1e(te,ff),ae=te?.querySelector(RL);ae?T.setState("value",ae.getAttribute(Ic)):D(z)}let K=()=>L(G().length-1),J=z=>{z.preventDefault(),z.metaKey?K():z.altKey?U(1):D(1)},I=z=>{z.preventDefault(),z.metaKey?L(0):z.altKey?U(-1):D(-1)};return y.createElement(go.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:z=>{var Y;(Y=N.onKeyDown)==null||Y.call(N,z);let te=z.nativeEvent.isComposing||z.keyCode===229;if(!(z.defaultPrevented||te))switch(z.key){case"n":case"j":{b&&z.ctrlKey&&J(z);break}case"ArrowDown":{J(z);break}case"p":case"k":{b&&z.ctrlKey&&I(z);break}case"ArrowUp":{I(z);break}case"Home":{z.preventDefault(),L(0);break}case"End":{z.preventDefault(),K();break}case"Enter":{z.preventDefault();let ae=q();if(ae){let ge=new Event(yC);ae.dispatchEvent(ge)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:m1e},d),ix(e,z=>y.createElement(yH.Provider,{value:T},y.createElement(gH.Provider,{value:M},z))))}),n1e=y.forwardRef((e,t)=>{var n,r;let a=Gn(),s=y.useRef(null),l=y.useContext(xH),u=tm(),d=wH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;jl(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=jH(a,s,[e.value,e.children,s],e.keywords),p=RE(),g=so(k=>k.value&&k.value===m.current),x=so(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=s.current;if(!(!k||e.disabled))return k.addEventListener(yC,j),()=>k.removeEventListener(yC,j)},[x,e.onSelect,e.disabled]);function j(){var k,T;w(),(T=(k=d.current).onSelect)==null||T.call(k,m.current)}function w(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:b,value:N,onSelect:E,forceMount:O,keywords:A,...C}=e;return y.createElement(go.div,{ref:Ir(s,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!g,"data-disabled":!!b,"data-selected":!!g,onPointerMove:b||u.getDisablePointerSelection()?void 0:w,onClick:b?void 0:j},e.children)}),r1e=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,l=Gn(),u=y.useRef(null),d=y.useRef(null),f=Gn(),m=tm(),p=so(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);jl(()=>m.group(l),[]),jH(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(go.div,{ref:Ir(u,t),...s,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),ix(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(xH.Provider,{value:g},x))))}),a1e=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),s=so(l=>!l.search);return!n&&!s?null:y.createElement(go.div,{ref:Ir(a,t),...r,"cmdk-separator":"",role:"separator"})}),i1e=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,s=RE(),l=so(f=>f.search),u=so(f=>f.selectedItemId),d=tm();return y.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),y.createElement(go.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||s.setState("search",f.target.value),n?.(f.target.value)}})}),s1e=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=y.useRef(null),l=y.useRef(null),u=so(f=>f.selectedItemId),d=tm();return y.useEffect(()=>{if(l.current&&s.current){let f=l.current,m=s.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(go.div,{ref:Ir(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},ix(e,f=>y.createElement("div",{ref:Ir(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),o1e=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:l,...u}=e;return y.createElement(hE,{open:n,onOpenChange:r},y.createElement(mE,{container:l},y.createElement(Fy,{"cmdk-overlay":"",className:a}),y.createElement(Uy,{"aria-label":e.label,"cmdk-dialog":"",className:s},y.createElement(bH,{ref:t,...u}))))}),l1e=y.forwardRef((e,t)=>so(n=>n.filtered.count===0)?y.createElement(go.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),c1e=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return y.createElement(go.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},ix(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Fr=Object.assign(bH,{List:s1e,Item:n1e,Input:i1e,Group:r1e,Separator:a1e,Dialog:o1e,Empty:l1e,Loading:c1e});function u1e(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function d1e(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function wH(e){let t=y.useRef(e);return jl(()=>{t.current=e}),t}var jl=typeof window>"u"?y.useEffect:y.useLayoutEffect;function Lc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function so(e){let t=RE(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function jH(e,t,n,r=[]){let a=y.useRef(),s=tm();return jl(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());s.value(e,u,d),(l=t.current)==null||l.setAttribute(Ic,u),a.current=u}),a}var f1e=()=>{let[e,t]=y.useState(),n=Lc(()=>new Map);return jl(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function h1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function ix({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(h1e(t),{ref:t.ref},n(t.props.children)):n(t)}var m1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const SH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr,{ref:n,className:ce("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));SH.displayName=Fr.displayName;const _H=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Lr,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Fr.Input,{ref:n,className:ce("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));_H.displayName=Fr.Input.displayName;const NH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.List,{ref:n,className:ce("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));NH.displayName=Fr.List.displayName;const CH=y.forwardRef((e,t)=>i.jsx(Fr.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));CH.displayName=Fr.Empty.displayName;const OH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Group,{ref:n,className:ce("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));OH.displayName=Fr.Group.displayName;const p1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Separator,{ref:n,className:ce("-mx-1 h-px bg-border",e),...t}));p1e.displayName=Fr.Separator.displayName;const EH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Item,{ref:n,className:ce("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));EH.displayName=Fr.Item.displayName;function v1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:s}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(ro,{open:l,onOpenChange:u,children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",role:"combobox","aria-expanded":l,className:ce("w-full justify-between min-h-10 h-auto",s),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Ft,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Yh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(Dve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(ds,{className:"w-full p-0",align:"start",children:i.jsxs(SH,{children:[i.jsx(_H,{placeholder:"搜索...",className:"h-9"}),i.jsxs(NH,{children:[i.jsx(CH,{children:a}),i.jsx(OH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(EH,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:ce("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(ol,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function g1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,s]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(!1),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(null),[B,$]=y.useState(!1),[H,V]=y.useState(null),[q,G]=y.useState(""),[L,D]=y.useState(new Set),[U,K]=y.useState(!1),{toast:J}=yr(),I=y.useRef(null),z=y.useRef(null),Y=y.useRef(!0);y.useEffect(()=>{te()},[]);const te=async()=>{try{f(!0);const le=await Jc(),ue=le.models||[];t(ue),s(ue.map(Mn=>Mn.name));const Ve=le.api_providers||[];r(Ve.map(Mn=>Mn.name)),u(le.model_task_config||null),w(!1),Y.current=!1}catch(le){console.error("加载配置失败:",le)}finally{f(!1)}},ae=async()=>{try{N(!0),TE().catch(()=>{}),O(!0)}catch(le){console.error("重启失败:",le),O(!1),J({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),N(!1)}},ge=async()=>{try{p(!0),I.current&&clearTimeout(I.current),z.current&&clearTimeout(z.current);const le=await Jc();le.models=e,le.model_task_config=l,await Ig(le),w(!1),J({title:"保存成功",description:"正在重启麦麦..."}),await ae()}catch(le){console.error("保存配置失败:",le),J({title:"保存失败",description:le.message,variant:"destructive"}),p(!1)}},ee=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Se=()=>{O(!1),N(!1),J({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},re=y.useCallback(async le=>{if(!Y.current)try{x(!0),await vC("models",le),w(!1)}catch(ue){console.error("自动保存模型列表失败:",ue),w(!0)}finally{x(!1)}},[]),we=y.useCallback(async le=>{if(!Y.current)try{x(!0),await vC("model_task_config",le),w(!1)}catch(ue){console.error("自动保存任务配置失败:",ue),w(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!Y.current)return w(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{re(e)},2e3),()=>{I.current&&clearTimeout(I.current)}},[e,re]),y.useEffect(()=>{if(!(Y.current||!l))return w(!0),z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{we(l)},2e3),()=>{z.current&&clearTimeout(z.current)}},[l,we]);const je=async()=>{try{p(!0),I.current&&clearTimeout(I.current),z.current&&clearTimeout(z.current);const le=await Jc();le.models=e,le.model_task_config=l,await Ig(le),w(!1),J({title:"保存成功",description:"模型配置已保存"}),await te()}catch(le){console.error("保存配置失败:",le),J({title:"保存失败",description:le.message,variant:"destructive"})}finally{p(!1)}},fe=(le,ue)=>{T(le||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),R(ue),C(!0)},Le=()=>{if(!k)return;let le;M!==null?(le=[...e],le[M]=k):le=[...e,k],t(le),s(le.map(ue=>ue.name)),C(!1),T(null),R(null)},Oe=le=>{V(le),$(!0)},We=()=>{if(H!==null){const le=e.filter((ue,Ve)=>Ve!==H);t(le),s(le.map(ue=>ue.name)),J({title:"删除成功",description:"模型已从列表中移除"})}$(!1),V(null)},be=le=>{const ue=new Set(L);ue.has(le)?ue.delete(le):ue.add(le),D(ue)},Ae=()=>{if(L.size===Tt.length)D(new Set);else{const le=Tt.map((ue,Ve)=>e.findIndex(Mn=>Mn===Tt[Ve]));D(new Set(le))}},ke=()=>{if(L.size===0){J({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}K(!0)},Qt=()=>{const le=e.filter((ue,Ve)=>!L.has(Ve));t(le),s(le.map(ue=>ue.name)),D(new Set),K(!1),J({title:"批量删除成功",description:`已删除 ${L.size} 个模型`})},St=(le,ue,Ve)=>{l&&u({...l,[le]:{...l[le],[ue]:Ve}})},Tt=e.filter(le=>{if(!q)return!0;const ue=q.toLowerCase();return le.name.toLowerCase().includes(ue)||le.model_identifier.toLowerCase().includes(ue)||le.api_provider.toLowerCase().includes(ue)}),Sn=le=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(Ve=>Ve.includes(le)):!1;return d?i.jsx(Wt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:je,disabled:m||g||!j||b,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(iE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:m||g||b,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(aE,{className:"mr-2 h-4 w-4"}),b?"重启中...":j?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:j?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:j?ge:ae,children:j?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(nx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(rx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(dl,{defaultValue:"models",className:"w-full",children:[i.jsxs(eo,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Rt,{value:"models",children:"模型配置"}),i.jsx(Rt,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(sn,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[L.size>0&&i.jsxs(oe,{onClick:ke,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(It,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",L.size,")"]}),i.jsxs(oe,{onClick:()=>fe(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索模型名称、标识符或提供商...",value:q,onChange:le=>G(le.target.value),className:"pl-9"})]}),q&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Tt.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Tt.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:q?"未找到匹配的模型":"暂无模型配置"}):Tt.map((le,ue)=>{const Ve=Sn(le.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:le.name}),i.jsx(Ft,{variant:Ve?"default":"secondary",className:Ve?"bg-green-600 hover:bg-green-700":"",children:Ve?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:le.model_identifier,children:le.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>fe(le,ue),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Oe(ue),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:le.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:le.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",le.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",le.price_out,"/M"]})]})]})]},ue)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-12",children:i.jsx(io,{checked:L.size===Tt.length&&Tt.length>0,onCheckedChange:Ae})}),i.jsx(nt,{className:"w-24",children:"使用状态"}),i.jsx(nt,{children:"模型名称"}),i.jsx(nt,{children:"模型标识符"}),i.jsx(nt,{children:"提供商"}),i.jsx(nt,{className:"text-right",children:"输入价格"}),i.jsx(nt,{className:"text-right",children:"输出价格"}),i.jsx(nt,{className:"text-center",children:"强制流式"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:Tt.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:9,className:"text-center text-muted-foreground py-8",children:q?"未找到匹配的模型":"暂无模型配置"})}):Tt.map((le,ue)=>{const Ve=e.findIndex($l=>$l===le),Mn=Sn(le.name);return i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(io,{checked:L.has(Ve),onCheckedChange:()=>be(Ve)})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:Mn?"default":"secondary",className:Mn?"bg-green-600 hover:bg-green-700":"",children:Mn?"已使用":"未使用"})}),i.jsx(Ge,{className:"font-medium",children:le.name}),i.jsx(Ge,{className:"max-w-xs truncate",title:le.model_identifier,children:le.model_identifier}),i.jsx(Ge,{children:le.api_provider}),i.jsxs(Ge,{className:"text-right",children:["¥",le.price_in,"/M"]}),i.jsxs(Ge,{className:"text-right",children:["¥",le.price_out,"/M"]}),i.jsx(Ge,{className:"text-center",children:le.force_stream_mode?"是":"否"}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>fe(le,Ve),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Oe(Ve),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},ue)})})]})})]}),i.jsxs(sn,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx($a,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(le,ue)=>St("utils",le,ue)}),i.jsx($a,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(le,ue)=>St("utils_small",le,ue)}),i.jsx($a,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(le,ue)=>St("tool_use",le,ue)}),i.jsx($a,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(le,ue)=>St("replyer",le,ue)}),i.jsx($a,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(le,ue)=>St("planner",le,ue)}),i.jsx($a,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(le,ue)=>St("vlm",le,ue),hideTemperature:!0}),i.jsx($a,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(le,ue)=>St("voice",le,ue),hideTemperature:!0,hideMaxTokens:!0}),i.jsx($a,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(le,ue)=>St("embedding",le,ue),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx($a,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(le,ue)=>St("lpmm_entity_extract",le,ue)}),i.jsx($a,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(le,ue)=>St("lpmm_rdf_build",le,ue)}),i.jsx($a,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(le,ue)=>St("lpmm_qa",le,ue)})]})]})]})]}),i.jsx(sr,{open:A,onOpenChange:C,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:M!==null?"编辑模型":"添加模型"}),i.jsx(vr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ne,{id:"model_name",value:k?.name||"",onChange:le=>T(ue=>ue?{...ue,name:le.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ne,{id:"model_identifier",value:k?.model_identifier||"",onChange:le=>T(ue=>ue?{...ue,model_identifier:le.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(Dt,{value:k?.api_provider||"",onValueChange:le=>T(ue=>ue?{...ue,api_provider:le}:null),children:[i.jsx(Ot,{id:"api_provider",children:i.jsx($t,{placeholder:"选择提供商"})}),i.jsx(Et,{children:n.map(le=>i.jsx(De,{value:le,children:le},le))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ne,{id:"price_in",type:"number",step:"0.1",min:"0",value:k?.price_in||0,onChange:le=>T(ue=>ue?{...ue,price_in:parseFloat(le.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ne,{id:"price_out",type:"number",step:"0.1",min:"0",value:k?.price_out||0,onChange:le=>T(ue=>ue?{...ue,price_out:parseFloat(le.target.value)}:null)})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"force_stream_mode",checked:k?.force_stream_mode||!1,onCheckedChange:le=>T(ue=>ue?{...ue,force_stream_mode:le}:null)}),i.jsx(Q,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>C(!1),children:"取消"}),i.jsx(oe,{onClick:Le,children:"保存"})]})]})}),i.jsx(bn,{open:B,onOpenChange:$,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除模型 "',H!==null?e[H]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:We,children:"删除"})]})]})}),i.jsx(bn,{open:U,onOpenChange:K,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认批量删除"}),i.jsxs(hn,{children:["确定要删除选中的 ",L.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:Qt,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),E&&i.jsx(kE,{onRestartComplete:ee,onRestartFailed:Se})]})})}function $a({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:s=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"模型列表"}),i.jsx(v1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!s&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"温度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"2",value:n.temperature||.3,onChange:d=>a("temperature",parseFloat(d.target.value))})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"最大 Token"}),i.jsx(Ne,{type:"number",step:"1",min:"1",value:n.max_tokens||1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const yo="/api/webui/emoji";async function y1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await rt(`${yo}/list?${t}`,{headers:dt()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function x1e(e){const t=await rt(`${yo}/${e}`,{headers:dt()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function b1e(e,t){const n=await rt(`${yo}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function w1e(e){const t=await rt(`${yo}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function j1e(){const e=await rt(`${yo}/stats/summary`,{headers:dt()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function S1e(e){const t=await rt(`${yo}/${e}/register`,{method:"POST",headers:dt()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function _1e(e){const t=await rt(`${yo}/${e}/ban`,{method:"POST",headers:dt()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function xC(e){const t=localStorage.getItem("access-token");return`${yo}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}function N1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,s]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m]=y.useState(20),[p,g]=y.useState(""),[x,j]=y.useState("all"),[w,b]=y.useState("all"),[N,E]=y.useState("all"),[O,A]=y.useState(null),[C,k]=y.useState(!1),[T,M]=y.useState(!1),[R,B]=y.useState(!1),{toast:$}=yr(),H=y.useCallback(async()=>{try{s(!0);const I=await y1e({page:l,page_size:m,search:p||void 0,is_registered:x==="all"?void 0:x==="registered",is_banned:w==="all"?void 0:w==="banned",format:N==="all"?void 0:N,sort_by:"usage_count",sort_order:"desc"});t(I.data),f(I.total)}catch(I){const z=I instanceof Error?I.message:"加载表情包列表失败";$({title:"错误",description:z,variant:"destructive"})}finally{s(!1)}},[l,m,p,x,w,N,$]),V=async()=>{try{const I=await j1e();r(I.data)}catch(I){console.error("加载统计数据失败:",I)}};y.useEffect(()=>{H()},[H]),y.useEffect(()=>{V()},[]);const q=async I=>{try{const z=await x1e(I.id);A(z.data),k(!0)}catch(z){const Y=z instanceof Error?z.message:"加载详情失败";$({title:"错误",description:Y,variant:"destructive"})}},G=I=>{A(I),M(!0)},L=I=>{A(I),B(!0)},D=async()=>{if(O)try{await w1e(O.id),$({title:"成功",description:"表情包已删除"}),B(!1),A(null),H(),V()}catch(I){const z=I instanceof Error?I.message:"删除失败";$({title:"错误",description:z,variant:"destructive"})}},U=async I=>{try{await S1e(I.id),$({title:"成功",description:"表情包已注册"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"注册失败";$({title:"错误",description:Y,variant:"destructive"})}},K=async I=>{try{await _1e(I.id),$({title:"成功",description:"表情包已封禁"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"封禁失败";$({title:"错误",description:Y,variant:"destructive"})}},J=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"总数"}),i.jsx(vt,{className:"text-2xl",children:n.total})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"已注册"}),i.jsx(vt,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"已封禁"}),i.jsx(vt,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"未注册"}),i.jsx(vt,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsxs(vt,{className:"flex items-center gap-2",children:[i.jsx(eC,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(Ct,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"描述或哈希值...",value:p,onChange:I=>{g(I.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"注册状态"}),i.jsxs(Dt,{value:x,onValueChange:I=>{j(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"registered",children:"已注册"}),i.jsx(De,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"封禁状态"}),i.jsxs(Dt,{value:w,onValueChange:I=>{b(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"banned",children:"已封禁"}),i.jsx(De,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"格式"}),i.jsxs(Dt,{value:N,onValueChange:I=>{E(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),J.map(I=>i.jsxs(De,{value:I,children:[I.toUpperCase()," (",n?.formats[I],")"]},I))]})]})]})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(oe,{variant:"outline",size:"sm",onClick:H,disabled:a,children:[i.jsx(is,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"表情包列表"}),i.jsxs(Wn,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-16",children:"预览"}),i.jsx(nt,{children:"描述"}),i.jsx(nt,{children:"格式"}),i.jsx(nt,{children:"情绪标签"}),i.jsx(nt,{className:"text-center",children:"状态"}),i.jsx(nt,{className:"text-right",children:"使用次数"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(I=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:xC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const te=Y.parentElement;te&&(te.innerHTML='')}})})}),i.jsx(Ge,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[I.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:"outline",children:I.format.toUpperCase()})}),i.jsx(Ge,{children:i.jsx(DL,{emotions:I.emotion})}),i.jsx(Ge,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[I.is_registered&&i.jsxs(Ft,{variant:"default",className:"bg-green-600",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Ft,{variant:"destructive",children:[i.jsx(XN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Ge,{className:"text-right font-mono",children:I.usage_count}),i.jsx(Ge,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>q(I),children:[i.jsx(Mu,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>G(I),children:[i.jsx(Ru,{className:"h-4 w-4 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>U(I),className:"text-green-600 hover:text-green-700",children:[i.jsx(Pr,{className:"h-4 w-4 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>K(I),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(ZI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>L(I),className:"text-red-600 hover:text-red-700",children:[i.jsx(It,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},I.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(I=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:xC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const te=Y.parentElement;te&&(te.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[I.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Ft,{variant:"outline",className:"text-xs flex-shrink-0",children:I.format.toUpperCase()}),I.is_registered&&i.jsxs(Ft,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Ft,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(XN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",I.usage_count]})]}),I.emotion&&I.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(DL,{emotions:I.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>q(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Mu,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>G(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>U(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>K(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(ZI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>L(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},I.id))}),d>m&&i.jsxs("div",{className:"flex items-center justify-between mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(I=>Math.max(1,I-1)),disabled:l===1,children:[i.jsx(tE,{className:"h-4 w-4"}),"上一页"]}),i.jsxs("div",{className:"text-sm",children:["第 ",l," / ",Math.ceil(d/m)," 页"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(I=>I+1),disabled:l>=Math.ceil(d/m),children:["下一页",i.jsx(nE,{className:"h-4 w-4"})]})]})]})]})]}),i.jsx(C1e,{emoji:O,open:C,onOpenChange:k}),i.jsx(O1e,{emoji:O,open:T,onOpenChange:M,onSuccess:()=>{H(),V()}})]})}),i.jsx(sr,{open:R,onOpenChange:B,children:i.jsxs(Kn,{children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"确认删除"}),i.jsx(vr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>B(!1),children:"取消"}),i.jsx(oe,{variant:"destructive",onClick:D,children:"删除"})]})]})})]})}function C1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsx(Xn,{children:i.jsx(Zn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:xC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const s=a.target;s.style.display="none";const l=s.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Ft,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:e.emotion&&e.emotion.length>0?e.emotion.map((a,s)=>i.jsx(Ft,{variant:"secondary",children:a},s)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Ft,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Ft,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Ft,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function O1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=yr();y.useEffect(()=>{e&&(s(e.description||""),u(e.emotion?e.emotion.join(", "):""),f(e.is_registered),p(e.is_banned))},[e]);const w=async()=>{if(e)try{x(!0);const b=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean);await b1e(e.id,{description:a||void 0,emotion:b.length>0?b:void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(b){const N=b instanceof Error?b.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表情包"}),i.jsx(vr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(Q,{children:"描述"}),i.jsx(Xt,{value:a,onChange:b=>s(b.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(Q,{children:"情绪标签"}),i.jsx(Ne,{value:l,onChange:b=>u(b.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"is_registered",checked:d,onCheckedChange:b=>f(b===!0)}),i.jsx(Q,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"is_banned",checked:m,onCheckedChange:b=>p(b===!0)}),i.jsx(Q,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:w,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function DL({emotions:e}){if(!e||e.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const t=(a,s=6)=>a.length<=s?a:a.slice(0,s)+"...",n=e.slice(0,3),r=e.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[n.map((a,s)=>i.jsx(Ft,{variant:"secondary",className:"text-xs flex-shrink-0",title:a,children:t(a)},s)),r>0&&i.jsxs(Ft,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${r} 个标签: ${e.slice(3).join(", ")}`,children:["+",r]})]})}const rd="/api/webui/expression";async function E1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await rt(`${rd}/list?${t}`,{headers:dt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function A1e(e){const t=await rt(`${rd}/${e}`,{headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function T1e(e){const t=await rt(`${rd}/`,{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function k1e(e,t){const n=await rt(`${rd}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function M1e(e){const t=await rt(`${rd}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function P1e(){const e=await rt(`${rd}/stats/summary`,{headers:dt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function R1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(null),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(!1),[O,A]=y.useState(null),[C,k]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:T}=yr(),M=async()=>{try{r(!0);const q=await E1e({page:l,page_size:d,search:f||void 0});t(q.data),s(q.total)}catch(q){T({title:"加载失败",description:q instanceof Error?q.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},R=async()=>{try{const q=await P1e();k(q.data)}catch(q){console.error("加载统计数据失败:",q)}};y.useEffect(()=>{M(),R()},[l,d,f]);const B=async q=>{try{const G=await A1e(q.id);g(G.data),j(!0)}catch(G){T({title:"加载详情失败",description:G instanceof Error?G.message:"无法加载表达方式详情",variant:"destructive"})}},$=q=>{g(q),b(!0)},H=async q=>{try{await M1e(q.id),T({title:"删除成功",description:`已删除表达方式: ${q.situation}`}),A(null),M(),R()}catch(G){T({title:"删除失败",description:G instanceof Error?G.message:"无法删除表达方式",variant:"destructive"})}},V=q=>q?new Date(q*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Gh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(oe,{onClick:()=>E(!0),className:"gap-2",children:[i.jsx(ir,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:C.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:C.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:C.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(Q,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索情境、风格或上下文...",value:f,onChange:q=>m(q.target.value),className:"pl-9"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"情境"}),i.jsx(nt,{children:"风格"}),i.jsx(nt,{children:"聊天ID"}),i.jsx(nt,{children:"最后活跃"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n?i.jsx(An,{children:i.jsx(Ge,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(q=>i.jsxs(An,{children:[i.jsx(Ge,{className:"font-medium max-w-xs truncate",children:q.situation}),i.jsx(Ge,{className:"max-w-xs truncate",children:q.style}),i.jsx(Ge,{className:"font-mono text-sm",children:q.chat_id}),i.jsx(Ge,{className:"text-sm text-muted-foreground",children:V(q.last_active_time)}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>B(q),children:i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>$(q),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>A(q),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},q.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(q=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:q.situation,children:q.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:q.style,children:q.style})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:q.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:V(q.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>B(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Va,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>$(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>A(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},q.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(D1e,{expression:p,open:x,onOpenChange:j}),i.jsx($1e,{open:N,onOpenChange:E,onSuccess:()=>{M(),R(),E(!1)}}),i.jsx(I1e,{expression:p,open:w,onOpenChange:b,onSuccess:()=>{M(),R(),b(!1)}}),i.jsx(bn,{open:!!O,onOpenChange:()=>A(null),children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除表达方式 "',O?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>O&&H(O),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function D1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"表达方式详情"}),i.jsx(vr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Mc,{label:"情境",value:e.situation}),i.jsx(Mc,{label:"风格",value:e.style}),i.jsx(Mc,{icon:Eg,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Mc,{icon:Eg,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Mc,{icon:ll,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Mc,{icon:ll,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx(Br,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Mc({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function $1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[s,l]=y.useState(!1),{toast:u}=yr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await T1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"新增表达方式"}),i.jsx(vr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"context",children:"上下文"}),i.jsx(Xt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Xt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(oe,{onClick:d,disabled:s,children:s?"创建中...":"创建"})]})]})})}function I1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=yr();y.useEffect(()=>{e&&s({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await k1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表达方式"}),i.jsx(vr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ne,{id:"edit_situation",value:a.situation||"",onChange:m=>s({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ne,{id:"edit_style",value:a.style||"",onChange:m=>s({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ne,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>s({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Xt,{id:"edit_context",value:a.context||"",onChange:m=>s({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Xt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>s({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}const nm="/api/webui/person";async function L1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await rt(`${nm}/list?${t}`,{headers:dt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function B1e(e){const t=await rt(`${nm}/${e}`,{headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function z1e(e,t){const n=await rt(`${nm}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function q1e(e){const t=await rt(`${nm}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function F1e(){const e=await rt(`${nm}/stats/summary`,{headers:dt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function U1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(void 0),[x,j]=y.useState(void 0),[w,b]=y.useState(null),[N,E]=y.useState(!1),[O,A]=y.useState(!1),[C,k]=y.useState(null),[T,M]=y.useState({total:0,known:0,unknown:0,platforms:{}}),{toast:R}=yr(),B=async()=>{try{r(!0);const D=await L1e({page:l,page_size:d,search:f||void 0,is_known:p,platform:x});t(D.data),s(D.total)}catch(D){R({title:"加载失败",description:D instanceof Error?D.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},$=async()=>{try{const D=await F1e();M(D.data)}catch(D){console.error("加载统计数据失败:",D)}};y.useEffect(()=>{B(),$()},[l,d,f,p,x]);const H=async D=>{try{const U=await B1e(D.person_id);b(U.data),E(!0)}catch(U){R({title:"加载详情失败",description:U instanceof Error?U.message:"无法加载人物详情",variant:"destructive"})}},V=D=>{b(D),A(!0)},q=async D=>{try{await q1e(D.person_id),R({title:"删除成功",description:`已删除人物信息: ${D.person_name||D.nickname||D.user_id}`}),k(null),B(),$()}catch(U){R({title:"删除失败",description:U instanceof Error?U.message:"无法删除人物信息",variant:"destructive"})}},G=y.useMemo(()=>Object.keys(T.platforms),[T.platforms]),L=D=>D?new Date(D*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(tye,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:T.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:T.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:T.unknown})]})]}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(Q,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:f,onChange:D=>m(D.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(Dt,{value:p===void 0?"all":p.toString(),onValueChange:D=>{g(D==="all"?void 0:D==="true"),u(1)},children:[i.jsx(Ot,{id:"filter-known",className:"mt-1.5",children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"true",children:"已认识"}),i.jsx(De,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(Dt,{value:x||"all",onValueChange:D=>{j(D==="all"?void 0:D),u(1)},children:[i.jsx(Ot,{id:"filter-platform",className:"mt-1.5",children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部平台"}),G.map(D=>i.jsxs(De,{value:D,children:[D," (",T.platforms[D],")"]},D))]})]})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"状态"}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"昵称"}),i.jsx(nt,{children:"平台"}),i.jsx(nt,{children:"用户ID"}),i.jsx(nt,{children:"最后更新"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(D=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"})}),i.jsx(Ge,{className:"font-medium",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Ge,{children:D.nickname||"-"}),i.jsx(Ge,{children:D.platform}),i.jsx(Ge,{className:"font-mono text-sm",children:D.user_id}),i.jsx(Ge,{className:"text-sm text-muted-foreground",children:L(D.last_know)}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>H(D),children:i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>V(D),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>k(D),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},D.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(D=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsx("div",{className:"flex items-start justify-between gap-2",children:i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),D.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",D.nickname]})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:D.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:D.user_id,children:D.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:L(D.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>H(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Va,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>V(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>k(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},D.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(H1e,{person:w,open:N,onOpenChange:E}),i.jsx(W1e,{person:w,open:O,onOpenChange:A,onSuccess:()=>{B(),$(),A(!1)}}),i.jsx(bn,{open:!!C,onOpenChange:()=>k(null),children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除人物信息 "',C?.person_name||C?.nickname||C?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>C&&q(C),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function H1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"人物详情"}),i.jsxs(vr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Gi,{icon:gF,label:"人物名称",value:e.person_name}),i.jsx(Gi,{icon:Gh,label:"昵称",value:e.nickname}),i.jsx(Gi,{icon:Eg,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Gi,{icon:Eg,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Gi,{label:"平台",value:e.platform}),i.jsx(Gi,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,s)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},s))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Gi,{icon:ll,label:"认识时间",value:r(e.know_times)}),i.jsx(Gi,{icon:ll,label:"首次记录",value:r(e.know_since)}),i.jsx(Gi,{icon:ll,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx(Br,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Gi({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function W1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=yr();y.useEffect(()=>{e&&s({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await z1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑人物信息"}),i.jsxs(vr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ne,{id:"person_name",value:a.person_name||"",onChange:m=>s({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:a.nickname||"",onChange:m=>s({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Xt,{id:"name_reason",value:a.name_reason||"",onChange:m=>s({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Xt,{id:"memory_points",value:a.memory_points||"",onChange:m=>s({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(lt,{id:"is_known",checked:a.is_known,onCheckedChange:m=>s({...a,is_known:m})})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function V1e(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const G1e={},xf={};function Jo(e,t){try{const r=(G1e[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in xf?xf[r]:$L(r,r.split(":"))}catch{if(e in xf)return xf[e];const n=e?.match(Y1e);return n?$L(e,n.slice(1)):NaN}}const Y1e=/([+-]\d\d):?(\d\d)?/;function $L(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return xf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class hi extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Jo(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),AH(this),bC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new hi(...n,t):new hi(Date.now(),t)}withTimeZone(t){return new hi(+this,t)}getTimezoneOffset(){const t=-Jo(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),bC(this),+this}[Symbol.for("constructDateFrom")](t){return new hi(+new Date(t),this.timeZone)}}const IL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!IL.test(e))return;const t=e.replace(IL,"$1UTC");hi.prototype[t]&&(e.startsWith("get")?hi.prototype[e]=function(){return this.internal[t]()}:(hi.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),K1e(this),+this},hi.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),bC(this),+this}))});function bC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Jo(e.timeZone,e)*60))}function K1e(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),AH(e)}function AH(e){const t=Jo(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),l=a-s,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(Jo(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=Jo(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),w=-new Date(+e).getTimezoneOffset()-x,b=x!==n,N=w-d;if(b&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const E=Jo(e.timeZone,e),O=E>0?Math.floor(E):Math.ceil(E),A=x-O;A&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+A),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+A))}}class dr extends hi{static tz(t,...n){return n.length?new dr(...n,t):new dr(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${V1e(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new dr(+this,t)}[Symbol.for("constructDateFrom")](t){return new dr(+new Date(t),this.timeZone)}}const TH=6048e5,X1e=864e5,LL=Symbol.for("constructDateFrom");function kn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&LL in e?e[LL](t):e instanceof Date?new e.constructor(t):new Date(t)}function Ut(e,t){return kn(t||e,e)}function kH(e,t,n){const r=Ut(e,n?.in);return isNaN(t)?kn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function MH(e,t,n){const r=Ut(e,n?.in);if(isNaN(t))return kn(e,NaN);if(!t)return r;const a=r.getDate(),s=kn(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const l=s.getDate();return a>=l?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}let Z1e={};function rm(){return Z1e}function oo(e,t){const n=rm(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Ut(e,t?.in),s=a.getDay(),l=(s=s.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function BL(e){const t=Ut(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Rl(e,...t){const n=kn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function _h(e,t){const n=Ut(e,t?.in);return n.setHours(0,0,0,0),n}function RH(e,t,n){const[r,a]=Rl(n?.in,e,t),s=_h(r),l=_h(a),u=+s-BL(s),d=+l-BL(l);return Math.round((u-d)/X1e)}function Q1e(e,t){const n=PH(e,t),r=kn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Sh(r)}function J1e(e,t,n){return kH(e,t*7,n)}function eSe(e,t,n){return MH(e,t*12,n)}function tSe(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=kn.bind(null,a));const s=Ut(a,r);(!n||n{!r&&typeof a=="object"&&(r=kn.bind(null,a));const s=Ut(a,r);(!n||n>s||isNaN(+s))&&(n=s)}),kn(r,n||NaN)}function rSe(e,t,n){const[r,a]=Rl(n?.in,e,t);return+_h(r)==+_h(a)}function DH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function aSe(e){return!(!DH(e)&&typeof e!="number"||isNaN(+Ut(e)))}function iSe(e,t,n){const[r,a]=Rl(n?.in,e,t),s=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return s*12+l}function sSe(e,t){const n=Ut(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function $H(e,t){const[n,r]=Rl(e,t.start,t.end);return{start:n,end:r}}function oSe(e,t){const{start:n,end:r}=$H(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=s;)d.push(kn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function lSe(e,t){const n=Ut(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function cSe(e,t){const n=Ut(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function IH(e,t){const n=Ut(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function uSe(e,t){const{start:n,end:r}=$H(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=s;)d.push(kn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function LH(e,t){const n=rm(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Ut(e,t?.in),s=a.getDay(),l=(s{let r;const a=fSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function eu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const mSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},pSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},vSe={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},gSe={date:eu({formats:mSe,defaultWidth:"full"}),time:eu({formats:pSe,defaultWidth:"full"}),dateTime:eu({formats:vSe,defaultWidth:"full"})},ySe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},xSe=(e,t,n,r)=>ySe[e];function oi(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const bSe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},wSe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},jSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},SSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},_Se={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},NSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},CSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},OSe={ordinalNumber:CSe,era:oi({values:bSe,defaultWidth:"wide"}),quarter:oi({values:wSe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:oi({values:jSe,defaultWidth:"wide"}),day:oi({values:SSe,defaultWidth:"wide"}),dayPeriod:oi({values:_Se,defaultWidth:"wide",formattingValues:NSe,defaultFormattingWidth:"wide"})};function li(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const l=s[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?ASe(u,p=>p.test(l)):ESe(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function ESe(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function ASe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const TSe=/^(\d+)(th|st|nd|rd)?/i,kSe=/\d+/i,MSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},PSe={any:[/^b/i,/^(a|c)/i]},RSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},DSe={any:[/1/i,/2/i,/3/i,/4/i]},$Se={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ISe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},LSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},BSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},zSe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},qSe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},FSe={ordinalNumber:BH({matchPattern:TSe,parsePattern:kSe,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:MSe,defaultMatchWidth:"wide",parsePatterns:PSe,defaultParseWidth:"any"}),quarter:li({matchPatterns:RSe,defaultMatchWidth:"wide",parsePatterns:DSe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:$Se,defaultMatchWidth:"wide",parsePatterns:ISe,defaultParseWidth:"any"}),day:li({matchPatterns:LSe,defaultMatchWidth:"wide",parsePatterns:BSe,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:zSe,defaultMatchWidth:"any",parsePatterns:qSe,defaultParseWidth:"any"})},DE={code:"en-US",formatDistance:hSe,formatLong:gSe,formatRelative:xSe,localize:OSe,match:FSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function USe(e,t){const n=Ut(e,t?.in);return RH(n,IH(n))+1}function zH(e,t){const n=Ut(e,t?.in),r=+Sh(n)-+Q1e(n);return Math.round(r/TH)+1}function qH(e,t){const n=Ut(e,t?.in),r=n.getFullYear(),a=rm(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=kn(t?.in||e,0);l.setFullYear(r+1,0,s),l.setHours(0,0,0,0);const u=oo(l,t),d=kn(t?.in||e,0);d.setFullYear(r,0,s),d.setHours(0,0,0,0);const f=oo(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function HSe(e,t){const n=rm(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=qH(e,t),s=kn(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),oo(s,t)}function FH(e,t){const n=Ut(e,t?.in),r=+oo(n,t)-+HSe(n,t);return Math.round(r/TH)+1}function Pt(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Fs={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Pt(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Pt(n+1,2)},d(e,t){return Pt(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Pt(e.getHours()%12||12,t.length)},H(e,t){return Pt(e.getHours(),t.length)},m(e,t){return Pt(e.getMinutes(),t.length)},s(e,t){return Pt(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return Pt(a,t.length)}},Pc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},zL={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Fs.y(e,t)},Y:function(e,t,n,r){const a=qH(e,r),s=a>0?a:1-a;if(t==="YY"){const l=s%100;return Pt(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):Pt(s,t.length)},R:function(e,t){const n=PH(e);return Pt(n,t.length)},u:function(e,t){const n=e.getFullYear();return Pt(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Pt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Pt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Fs.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Pt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=FH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):Pt(a,t.length)},I:function(e,t,n){const r=zH(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Pt(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Fs.d(e,t)},D:function(e,t,n){const r=USe(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Pt(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return Pt(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return Pt(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return Pt(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Pc.noon:r===0?a=Pc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Pc.evening:r>=12?a=Pc.afternoon:r>=4?a=Pc.morning:a=Pc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Fs.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Fs.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Pt(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Pt(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Fs.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Fs.s(e,t)},S:function(e,t){return Fs.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return FL(r);case"XXXX":case"XX":return Vo(r);case"XXXXX":case"XXX":default:return Vo(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return FL(r);case"xxxx":case"xx":return Vo(r);case"xxxxx":case"xxx":default:return Vo(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+qL(r,":");case"OOOO":default:return"GMT"+Vo(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+qL(r,":");case"zzzz":default:return"GMT"+Vo(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Pt(r,t.length)},T:function(e,t,n){return Pt(+e,t.length)}};function qL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+Pt(s,2)}function FL(e,t){return e%60===0?(e>0?"-":"+")+Pt(Math.abs(e)/60,2):Vo(e,t)}function Vo(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Pt(Math.trunc(r/60),2),s=Pt(r%60,2);return n+a+t+s}const UL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},UH=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},WSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return UL(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",UL(r,t)).replace("{{time}}",UH(a,t))},VSe={p:UH,P:WSe},GSe=/^D+$/,YSe=/^Y+$/,KSe=["D","DD","YY","YYYY"];function XSe(e){return GSe.test(e)}function ZSe(e){return YSe.test(e)}function QSe(e,t,n){const r=JSe(e,t,n);if(console.warn(r),KSe.includes(e))throw new RangeError(r)}function JSe(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const e_e=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,t_e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,n_e=/^'([^]*?)'?$/,r_e=/''/g,a_e=/[a-zA-Z]/;function pv(e,t,n){const r=rm(),a=n?.locale??r.locale??DE,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=Ut(e,n?.in);if(!aSe(u))throw new RangeError("Invalid time value");let d=t.match(t_e).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=VSe[p];return g(m,a.formatLong)}return m}).join("").match(e_e).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:i_e(m)};if(zL[p])return{isToken:!0,value:m};if(p.match(a_e))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:s,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&ZSe(p)||!n?.useAdditionalDayOfYearTokens&&XSe(p))&&QSe(p,t,String(e));const g=zL[p[0]];return g(u,p,a.localize,f)}).join("")}function i_e(e){const t=e.match(n_e);return t?t[1].replace(r_e,"'"):e}function s_e(e,t){const n=Ut(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=kn(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function o_e(e,t){return Ut(e,t?.in).getMonth()}function l_e(e,t){return Ut(e,t?.in).getFullYear()}function c_e(e,t){return+Ut(e)>+Ut(t)}function u_e(e,t){return+Ut(e)<+Ut(t)}function d_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return+oo(r,n)==+oo(a,n)}function f_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function h_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function m_e(e,t,n){const r=Ut(e,n?.in),a=r.getFullYear(),s=r.getDate(),l=kn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=s_e(l);return r.setMonth(t,Math.min(s,u)),r}function p_e(e,t,n){const r=Ut(e,n?.in);return isNaN(+r)?kn(e,NaN):(r.setFullYear(t),r)}const HL=5,v_e=4;function g_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),s=t.addDays(a,HL*7-1);return t.getMonth(e)===t.getMonth(s)?HL:v_e}function HH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function y_e(e,t){const n=HH(e,t),r=g_e(e,t);return t.addDays(n,r*7-1)}class oa{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?dr.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,s)=>this.overrides?.newDate?this.overrides.newDate(r,a,s):this.options.timeZone?new dr(r,a,s,this.options.timeZone):new Date(r,a,s),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):kH(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):MH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):J1e(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):eSe(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):RH(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):iSe(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):oSe(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):uSe(r),s=new Set(a.map(u=>this.getYear(u)));if(s.size===a.length)return a;const l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):y_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):dSe(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):sSe(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):LH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):cSe(r),this.format=(r,a,s)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):pv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):zH(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):o_e(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):l_e(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):FH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):c_e(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):u_e(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):DH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):rSe(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):f_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):h_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):tSe(r),this.min=r=>this.overrides?.min?this.overrides.min(r):nSe(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):m_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):p_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):HH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):_h(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):Sh(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):lSe(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):oo(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):IH(r),this.options={locale:DE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&oa.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,s=n?.code;if(s&&oa.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}oa.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Ci=new oa;class WH{constructor(t,n,r=Ci){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class x_e{constructor(t,n){this.date=t,this.weeks=n}}class b_e{constructor(t,n){this.days=n,this.weekNumber=t}}function w_e(e){return W.createElement("button",{...e})}function j_e(e){return W.createElement("span",{...e})}function S_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function __e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function N_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var Be;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(Be||(Be={}));var on;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(on||(on={}));var Ua;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Ua||(Ua={}));var Jr;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(Jr||(Jr={}));function C_e(e){const{options:t,className:n,components:r,classNames:a,...s}=e,l=[a[Be.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===s.value);return W.createElement("span",{"data-disabled":s.disabled,className:a[Be.DropdownRoot]},W.createElement(r.Select,{className:l,...s},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[Be.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[Be.Chevron]})))}function O_e(e){return W.createElement("div",{...e})}function E_e(e){return W.createElement("div",{...e})}function A_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function T_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function k_e(e){return W.createElement("table",{...e})}function M_e(e){return W.createElement("div",{...e})}const VH=y.createContext(void 0);function am(){const e=y.useContext(VH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function P_e(e){const{components:t}=am();return W.createElement(t.Dropdown,{...e})}function R_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...s}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=am(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...s},W.createElement(l.PreviousMonthButton,{type:"button",className:u[Be.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[Be.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[Be.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[Be.Chevron]})))}function D_e(e){const{components:t}=am();return W.createElement(t.Button,{...e})}function $_e(e){return W.createElement("option",{...e})}function I_e(e){const{components:t}=am();return W.createElement(t.Button,{...e})}function L_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function B_e(e){return W.createElement("select",{...e})}function z_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function q_e(e){return W.createElement("th",{...e})}function F_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function U_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function H_e(e){return W.createElement("th",{...e})}function W_e(e){return W.createElement("tbody",{...e})}function V_e(e){const{components:t}=am();return W.createElement(t.Dropdown,{...e})}const G_e=Object.freeze(Object.defineProperty({__proto__:null,Button:w_e,CaptionLabel:j_e,Chevron:S_e,Day:__e,DayButton:N_e,Dropdown:C_e,DropdownNav:O_e,Footer:E_e,Month:A_e,MonthCaption:T_e,MonthGrid:k_e,Months:M_e,MonthsDropdown:P_e,Nav:R_e,NextMonthButton:D_e,Option:$_e,PreviousMonthButton:I_e,Root:L_e,Select:B_e,Week:z_e,WeekNumber:U_e,WeekNumberHeader:H_e,Weekday:q_e,Weekdays:F_e,Weeks:W_e,YearsDropdown:V_e},Symbol.toStringTag,{value:"Module"}));function Ji(e,t,n=!1,r=Ci){let{from:a,to:s}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&s?(l(s,a)<0&&([a,s]=[s,a]),l(t,a)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?u(s,t):!n&&a?u(a,t):!1}function GH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function $E(e){return!!(e&&typeof e=="object"&&"from"in e)}function YH(e){return!!(e&&typeof e=="object"&&"after"in e)}function KH(e){return!!(e&&typeof e=="object"&&"before"in e)}function XH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function ZH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function es(e,t,n=Ci){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:s,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(ZH(u,n))return u.includes(e);if($E(u))return Ji(u,e,!1,n);if(XH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(GH(u)){const d=s(u.before,e),f=s(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return YH(u)?s(e,u.after)>0:KH(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function Y_e(e,t,n,r,a){const{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:w,isAfter:b}=a,N=n&&x(n),E=r&&w(r),O={[on.focused]:[],[on.outside]:[],[on.disabled]:[],[on.hidden]:[],[on.today]:[]},A={};for(const C of e){const{date:k,displayMonth:T}=C,M=!!(T&&!g(k,T)),R=!!(N&&j(k,N)),B=!!(E&&b(k,E)),$=!!(s&&es(k,s,a)),H=!!(l&&es(k,l,a))||R||B||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&O.outside.push(C),$&&O.disabled.push(C),H&&O.hidden.push(C),V&&O.today.push(C),u&&Object.keys(u).forEach(q=>{const G=u?.[q];G&&es(k,G,a)&&(A[q]?A[q].push(C):A[q]=[C])})}return C=>{const k={[on.focused]:!1,[on.disabled]:!1,[on.hidden]:!1,[on.outside]:!1,[on.today]:!1},T={};for(const M in O){const R=O[M];k[M]=R.some(B=>B===C)}for(const M in A)T[M]=A[M].some(R=>R===C);return{...k,...T}}}function K_e(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[s])=>(n[s]?a.push(n[s]):t[on[s]]?a.push(t[on[s]]):t[Ua[s]]&&a.push(t[Ua[s]]),a),[t[Be.Day]])}function X_e(e){return{...G_e,...e}}function Z_e(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function IE(){const e={};for(const t in Be)e[Be[t]]=`rdp-${Be[t]}`;for(const t in on)e[on[t]]=`rdp-${on[t]}`;for(const t in Ua)e[Ua[t]]=`rdp-${Ua[t]}`;for(const t in Jr)e[Jr[t]]=`rdp-${Jr[t]}`;return e}function QH(e,t,n){return(n??new oa(t)).formatMonthYear(e)}const Q_e=QH;function J_e(e,t,n){return(n??new oa(t)).format(e,"d")}function eNe(e,t=Ci){return t.format(e,"LLLL")}function tNe(e,t,n){return(n??new oa(t)).format(e,"cccccc")}function nNe(e,t=Ci){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function rNe(){return""}function JH(e,t=Ci){return t.format(e,"yyyy")}const aNe=JH,iNe=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:QH,formatDay:J_e,formatMonthCaption:Q_e,formatMonthDropdown:eNe,formatWeekNumber:nNe,formatWeekNumberHeader:rNe,formatWeekdayName:tNe,formatYearCaption:aNe,formatYearDropdown:JH},Symbol.toStringTag,{value:"Module"}));function sNe(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...iNe,...e}}function oNe(e,t,n,r,a){const{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),w=t&&gs(n)||!1;return{value:j,label:x,disabled:w}})}function lNe(e,t={},n={}){let r={...t?.[Be.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function cNe(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),s=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);s.push(u)}return s}function uNe(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=s(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function e9(e,t,n,r){let a=(r??new oa(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const dNe=e9;function t9(e,t,n){return(n??new oa(t)).formatMonthYear(e)}const fNe=t9;function hNe(e,t,n,r){let a=(r??new oa(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function mNe(e){return"Choose the Month"}function pNe(){return""}function vNe(e){return"Go to the Next Month"}function gNe(e){return"Go to the Previous Month"}function yNe(e,t,n){return(n??new oa(t)).format(e,"cccc")}function xNe(e,t){return`Week ${e}`}function bNe(e){return"Week Number"}function wNe(e){return"Choose the Year"}const jNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:fNe,labelDay:dNe,labelDayButton:e9,labelGrid:t9,labelGridcell:hNe,labelMonthDropdown:mNe,labelNav:pNe,labelNext:vNe,labelPrevious:gNe,labelWeekNumber:xNe,labelWeekNumberHeader:bNe,labelWeekday:yNe,labelYearDropdown:wNe},Symbol.toStringTag,{value:"Module"})),im=e=>e instanceof HTMLElement?e:null,f_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],SNe=e=>im(e.querySelector("[data-animated-month]")),h_=e=>im(e.querySelector("[data-animated-caption]")),m_=e=>im(e.querySelector("[data-animated-weeks]")),_Ne=e=>im(e.querySelector("[data-animated-nav]")),NNe=e=>im(e.querySelector("[data-animated-weekdays]"));function CNe(e,t,{classNames:n,months:r,focused:a,dateLib:s}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=s.isSameMonth(r[0].date,f[0].date),p=s.isAfter(r[0].date,f[0].date),g=p?n[Jr.caption_after_enter]:n[Jr.caption_before_enter],x=p?n[Jr.weeks_after_enter]:n[Jr.weeks_before_enter],j=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(f_(w).forEach(O=>{if(!(O instanceof HTMLElement))return;const A=SNe(O);A&&O.contains(A)&&O.removeChild(A);const C=h_(O);C&&C.classList.remove(g);const k=m_(O);k&&k.classList.remove(x)}),l.current=w):l.current=null,d.current||m||a)return;const b=j instanceof HTMLElement?f_(j):[],N=f_(e.current);if(N?.every(E=>E instanceof HTMLElement)&&b&&b.every(E=>E instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const E=_Ne(e.current);E&&(E.style.zIndex="1"),N.forEach((O,A)=>{const C=b[A];if(!C)return;O.style.position="relative",O.style.overflow="hidden";const k=h_(O);k&&k.classList.add(g);const T=m_(O);T&&T.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),E&&(E.style.zIndex=""),k&&k.classList.remove(g),T&&T.classList.remove(x),O.style.position="",O.style.overflow="",O.contains(C)&&O.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const R=NNe(C);R&&(R.style.opacity="0");const B=h_(C);B&&(B.classList.add(p?n[Jr.caption_before_exit]:n[Jr.caption_after_exit]),B.addEventListener("animationend",M));const $=m_(C);$&&$.classList.add(p?n[Jr.weeks_before_exit]:n[Jr.weeks_after_exit]),O.insertBefore(C,O.firstChild)})}})}function ONe(e,t,n,r){const a=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:w,isAfter:b,startOfBroadcastWeek:N,startOfISOWeek:E,startOfWeek:O}=r,A=d?N(a,r):l?E(a):O(a),C=d?g(s):l?x(j(s)):w(j(s)),k=m(C,A),T=p(s,a)+1,M=[];for(let $=0;$<=k;$++){const H=f(A,$);if(t&&b(H,t))break;M.push(H)}const B=(d?35:42)*T;if(u&&M.length{const a=r.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function ANe(e,t,n,r){const{numberOfMonths:a=1}=n,s=[];for(let l=0;lt)break;s.push(u)}return s}function WL(e,t,n,r){const{month:a,defaultMonth:s,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||s||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(b,r):n.ISOWeek?g(b):x(b),E=n.broadcastCalendar?s(b):n.ISOWeek?l(u(b)):d(u(b)),O=t.filter(T=>T>=N&&T<=E),A=n.broadcastCalendar?35:42;if(n.fixedWeeks&&O.length{const R=A-O.length;return M>E&&M<=a(E,R)});O.push(...T)}const C=O.reduce((T,M)=>{const R=n.ISOWeek?f(M):m(M),B=T.find(H=>H.weekNumber===R),$=new WH(M,b,r);return B?B.days.push($):T.push(new b_e(R,[$])),T},[]),k=new x_e(b,C);return w.push(k),w},[]);return n.reverseMonths?j.reverse():j}function kNe(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:w}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&w&&(r=w),!r&&x&&(r=m(x,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&b&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&b&&(r=f(e.today??p())),[n&&s(n),r&&s(r)]}function MNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?s:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function sx(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function DNe(e,t){const[n,r]=kNe(e,t),{startOfMonth:a,endOfMonth:s}=t,l=WL(e,n,r,t),[u,d]=sx(l,e.month?l:void 0);y.useEffect(()=>{const k=WL(e,n,r,t);d(k)},[e.timeZone]);const f=ANe(u,r,e,t),m=ONe(f,e.endMonth?s(e.endMonth):void 0,e,t),p=TNe(f,m,e,t),g=RNe(p),x=ENe(p),j=PNe(u,n,e,t),w=MNe(u,r,e,t),{disableNavigation:b,onMonthChange:N}=e,E=k=>g.some(T=>T.days.some(M=>M.isEqualTo(k))),O=k=>{if(b)return;let T=a(k);n&&Ta(r)&&(T=a(r)),d(T),N?.(T)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:w,goToMonth:O,goToDay:k=>{E(k)||O(k.date)}}}var ai;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ai||(ai={}));function VL(e){return!e[on.disabled]&&!e[on.hidden]&&!e[on.outside]}function $Ne(e,t,n,r){let a,s=-1;for(const l of e){const u=t(l);VL(u)&&(u[on.focused]&&sVL(t(l)))),a}function INe(e,t,n,r,a,s,l){const{ISOWeek:u,broadcastCalendar:d}=s,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:w,max:b,min:N,startOfBroadcastWeek:E,startOfISOWeek:O,startOfWeek:A}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:T=>d?E(T,l):u?O(T):A(T),endOfWeek:T=>d?x(T):u?j(T):w(T)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=b([r,k]):t==="after"&&a&&(k=N([a,k])),k}function n9(e,t,n,r,a,s,l,u=0){if(u>365)return;const d=INe(e,t,n.date,r,a,s,l),f=!!(s.disabled&&es(d,s.disabled,l)),m=!!(s.hidden&&es(d,s.hidden,l)),p=d,g=new WH(d,p,l);return!f&&!m?g:n9(e,t,g,r,a,s,l,u+1)}function LNe(e,t,n,r,a){const{autoFocus:s}=e,[l,u]=y.useState(),d=$Ne(t.days,n,r||(()=>!1),l),[f,m]=y.useState(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(w,b)=>{if(!f)return;const N=n9(w,b,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(O=>O.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function BNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=sx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,w)=>{let b=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;b=u?.filter(N=>!d(N,x))}else u?.length===p?b=[x]:b=[...b,x];return a||l(b),a?.(b,x,j,w),b},isSelected:f}}function zNe(e,t,n=0,r=0,a=!1,s=Ci){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=s;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=s.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?Ji(e,u,!1,n):ZH(u,n)?u.some(d=>Ji(e,d,!1,n)):$E(u)?u.from&&u.to?GL(e,{from:u.from,to:u.to},n):!1:XH(u)?qNe(e,u.dayOfWeek,n):GH(u)?n.isAfter(u.before,u.after)?GL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):es(e.from,u,n)||es(e.to,u,n):YH(u)||KH(u)?es(e.from,u,n)||es(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function UNe(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:s,onSelect:l}=e,[u,d]=sx(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:w,max:b}=e,N=g?zNe(g,f,w,b,s,t):void 0;return r&&n&&N?.from&&N.to&&FNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&Ji(f,g,!1,t)}}function HNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=sx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function WNe(e,t){const n=HNe(e,t),r=BNe(e,t),a=UNe(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function VNe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new dr(t.today,t.timeZone)),t.month&&(t.month=new dr(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new dr(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new dr(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new dr(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new dr(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(it=>new dr(it,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new dr(t.selected.from,t.timeZone):void 0,to:t.selected.to?new dr(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:s,locale:l,classNames:u}=y.useMemo(()=>{const it={...DE,...t.locale};return{dateLib:new oa({locale:it,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:X_e(t.components),formatters:sNe(t.formatters),labels:{...jNe,...t.labels},locale:it,classNames:{...IE(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:w,onDayMouseEnter:b,onDayMouseLeave:N,onNextClick:E,onPrevClick:O,showWeekNumber:A,styles:C}=t,{formatCaption:k,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:B,formatWeekdayName:$,formatYearDropdown:H}=r,V=DNe(t,s),{days:q,months:G,navStart:L,navEnd:D,previousMonth:U,nextMonth:K,goToMonth:J}=V,I=Y_e(q,t,L,D,s),{isSelected:z,select:Y,selected:te}=WNe(t,s)??{},{blur:ae,focused:ge,isFocusTarget:ee,moveFocus:Se,setFocused:re}=LNe(t,V,I,z??(()=>!1),s),{labelDayButton:we,labelGridcell:je,labelGrid:fe,labelMonthDropdown:Le,labelNav:Oe,labelPrevious:We,labelNext:be,labelWeekday:Ae,labelWeekNumber:ke,labelWeekNumberHeader:Qt,labelYearDropdown:St}=a,Tt=y.useMemo(()=>cNe(s,t.ISOWeek),[s,t.ISOWeek]),Sn=f!==void 0||x!==void 0,le=y.useCallback(()=>{U&&(J(U),O?.(U))},[U,J,O]),ue=y.useCallback(()=>{K&&(J(K),E?.(K))},[J,K,E]),Ve=y.useCallback((it,Gt)=>Ye=>{Ye.preventDefault(),Ye.stopPropagation(),re(it),Y?.(it.date,Gt,Ye),x?.(it.date,Gt,Ye)},[Y,x,re]),Mn=y.useCallback((it,Gt)=>Ye=>{re(it),j?.(it.date,Gt,Ye)},[j,re]),$l=y.useCallback((it,Gt)=>Ye=>{ae(),g?.(it.date,Gt,Ye)},[ae,g]),Il=y.useCallback((it,Gt)=>Ye=>{const wt={ArrowLeft:[Ye.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[Ye.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[Ye.shiftKey?"year":"week","after"],ArrowUp:[Ye.shiftKey?"year":"week","before"],PageUp:[Ye.shiftKey?"year":"month","before"],PageDown:[Ye.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(wt[Ye.key]){Ye.preventDefault(),Ye.stopPropagation();const[qn,st]=wt[Ye.key];Se(qn,st)}w?.(it.date,Gt,Ye)},[Se,w,t.dir]),dx=y.useCallback((it,Gt)=>Ye=>{b?.(it.date,Gt,Ye)},[b]),fm=y.useCallback((it,Gt)=>Ye=>{N?.(it.date,Gt,Ye)},[N]),fx=y.useCallback(it=>Gt=>{const Ye=Number(Gt.target.value),wt=s.setMonth(s.startOfMonth(it),Ye);J(wt)},[s,J]),hx=y.useCallback(it=>Gt=>{const Ye=Number(Gt.target.value),wt=s.setYear(s.startOfMonth(it),Ye);J(wt)},[s,J]),{className:bo,style:br}=y.useMemo(()=>({className:[u[Be.Root],t.className].filter(Boolean).join(" "),style:{...C?.[Be.Root],...t.style}}),[u,t.className,t.style,C]),Qa=Z_e(t),lr=y.useRef(null);CNe(lr,!!t.animate,{classNames:u,months:G,focused:ge,dateLib:s});const mx={dayPickerProps:t,selected:te,select:Y,isSelected:z,months:G,nextMonth:K,previousMonth:U,goToMonth:J,getModifiers:I,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(VH.Provider,{value:mx},W.createElement(n.Root,{rootRef:t.animate?lr:void 0,className:bo,style:br,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...Qa},W.createElement(n.Months,{className:u[Be.Months],style:C?.[Be.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Be.Nav],style:C?.[Be.Nav],"aria-label":Oe(),onPreviousClick:le,onNextClick:ue,previousMonth:U,nextMonth:K}),G.map((it,Gt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[Be.Month],style:C?.[Be.Month],key:Gt,displayIndex:Gt,calendarMonth:it},m==="around"&&!t.hideNavigation&&Gt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[Be.PreviousMonthButton],tabIndex:U?void 0:-1,"aria-disabled":U?void 0:!0,"aria-label":We(U),onClick:le,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:U?void 0:!0,className:u[Be.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[Be.MonthCaption],style:C?.[Be.MonthCaption],calendarMonth:it,displayIndex:Gt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[Be.Dropdowns],style:C?.[Be.Dropdowns]},(()=>{const Ye=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[Be.MonthsDropdown],"aria-label":Le(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:fx(it.date),options:oNe(it.date,L,D,r,s),style:C?.[Be.Dropdown],value:s.getMonth(it.date)}):W.createElement("span",{key:"month"},M(it.date,s)),wt=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[Be.YearsDropdown],"aria-label":St(s.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:hx(it.date),options:uNe(L,D,r,s,!!t.reverseYears),style:C?.[Be.Dropdown],value:s.getYear(it.date)}):W.createElement("span",{key:"year"},H(it.date,s));return s.getMonthYearOrder()==="year-first"?[wt,Ye]:[Ye,wt]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(it.date,s.options,s))):W.createElement(n.CaptionLabel,{className:u[Be.CaptionLabel],role:"status","aria-live":"polite"},k(it.date,s.options,s))),m==="around"&&!t.hideNavigation&&Gt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[Be.NextMonthButton],tabIndex:K?void 0:-1,"aria-disabled":K?void 0:!0,"aria-label":be(K),onClick:ue,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:K?void 0:!0,className:u[Be.Chevron],orientation:t.dir==="rtl"?"left":"right"})),Gt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Be.Nav],style:C?.[Be.Nav],"aria-label":Oe(),onPreviousClick:le,onNextClick:ue,previousMonth:U,nextMonth:K}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":fe(it.date,s.options,s)||void 0,className:u[Be.MonthGrid],style:C?.[Be.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[Be.Weekdays],style:C?.[Be.Weekdays]},A&&W.createElement(n.WeekNumberHeader,{"aria-label":Qt(s.options),className:u[Be.WeekNumberHeader],style:C?.[Be.WeekNumberHeader],scope:"col"},B()),Tt.map(Ye=>W.createElement(n.Weekday,{"aria-label":Ae(Ye,s.options,s),className:u[Be.Weekday],key:String(Ye),style:C?.[Be.Weekday],scope:"col"},$(Ye,s.options,s)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[Be.Weeks],style:C?.[Be.Weeks]},it.weeks.map(Ye=>W.createElement(n.Week,{className:u[Be.Week],key:Ye.weekNumber,style:C?.[Be.Week],week:Ye},A&&W.createElement(n.WeekNumber,{week:Ye,style:C?.[Be.WeekNumber],"aria-label":ke(Ye.weekNumber,{locale:l}),className:u[Be.WeekNumber],scope:"row",role:"rowheader"},R(Ye.weekNumber,s)),Ye.days.map(wt=>{const{date:qn}=wt,st=I(wt);if(st[on.focused]=!st.hidden&&!!ge?.isEqualTo(wt),st[Ua.selected]=z?.(qn)||st.selected,$E(te)){const{from:Bl,to:jo}=te;st[Ua.range_start]=!!(Bl&&jo&&s.isSameDay(qn,Bl)),st[Ua.range_end]=!!(Bl&&jo&&s.isSameDay(qn,jo)),st[Ua.range_middle]=Ji(te,qn,!0,s)}const Ll=lNe(st,C,t.modifiersStyles),wo=K_e(st,u,t.modifiersClassNames),px=!Sn&&!st.hidden?je(qn,st,s.options,s):void 0;return W.createElement(n.Day,{key:`${s.format(qn,"yyyy-MM-dd")}_${s.format(wt.displayMonth,"yyyy-MM")}`,day:wt,modifiers:st,className:wo.join(" "),style:Ll,role:"gridcell","aria-selected":st.selected||void 0,"aria-label":px,"data-day":s.format(qn,"yyyy-MM-dd"),"data-month":wt.outside?s.format(qn,"yyyy-MM"):void 0,"data-selected":st.selected||void 0,"data-disabled":st.disabled||void 0,"data-hidden":st.hidden||void 0,"data-outside":wt.outside||void 0,"data-focused":st.focused||void 0,"data-today":st.today||void 0},!st.hidden&&Sn?W.createElement(n.DayButton,{className:u[Be.DayButton],style:C?.[Be.DayButton],type:"button",day:wt,modifiers:st,disabled:st.disabled||void 0,tabIndex:ee(wt)?0:-1,"aria-label":we(qn,st,s.options,s),onClick:Ve(wt,st),onBlur:$l(wt,st),onFocus:Mn(wt,st),onKeyDown:Il(wt,st),onMouseEnter:dx(wt,st),onMouseLeave:fm(wt,st)},T(qn,s.options,s)):!st.hidden&&T(wt.date,s.options,s))})))))))),t.footer&&W.createElement(n.Footer,{className:u[Be.Footer],style:C?.[Be.Footer],role:"status","aria-live":"polite"},t.footer)))}function YL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:s,components:l,...u}){const d=IE();return i.jsx(VNe,{showOutsideDays:n,className:ce("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...s},classNames:{root:ce("w-fit",d.root),months:ce("relative flex flex-col gap-4 md:flex-row",d.months),month:ce("flex w-full flex-col gap-4",d.month),nav:ce("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:ce(xh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:ce(xh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:ce("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:ce("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:ce("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:ce("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:ce("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:ce("flex",d.weekdays),weekday:ce("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:ce("mt-2 flex w-full",d.week),week_number_header:ce("w-[--cell-size] select-none",d.week_number_header),week_number:ce("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:ce("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:ce("bg-accent rounded-l-md",d.range_start),range_middle:ce("rounded-none",d.range_middle),range_end:ce("bg-accent rounded-r-md",d.range_end),today:ce("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:ce("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:ce("text-muted-foreground opacity-50",d.disabled),hidden:ce("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:ce(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(tE,{className:ce("size-4",f),...p}):m==="right"?i.jsx(nE,{className:ce("size-4",f),...p}):i.jsx(vh,{className:ce("size-4",f),...p}),DayButton:GNe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function GNe({className:e,day:t,modifiers:n,...r}){const a=IE(),s=y.useRef(null);return y.useEffect(()=>{n.focused&&s.current?.focus()},[n.focused]),i.jsx(oe,{ref:s,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:ce("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class YNe{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const Bc=new YNe;typeof window<"u"&&Bc.connect();const KNe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},XNe=(e,t,n)=>{let r;const a=KNe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},ZNe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},QNe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},JNe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},eCe={date:eu({formats:ZNe,defaultWidth:"full"}),time:eu({formats:QNe,defaultWidth:"full"}),dateTime:eu({formats:JNe,defaultWidth:"full"})};function KL(e,t,n){const r="eeee p";return d_e(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const tCe={lastWeek:KL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:KL,other:"PP p"},nCe=(e,t,n,r)=>{const a=tCe[e];return typeof a=="function"?a(t,n,r):a},rCe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},aCe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},iCe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},sCe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},oCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},lCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},cCe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},uCe={ordinalNumber:cCe,era:oi({values:rCe,defaultWidth:"wide"}),quarter:oi({values:aCe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:oi({values:iCe,defaultWidth:"wide"}),day:oi({values:sCe,defaultWidth:"wide"}),dayPeriod:oi({values:oCe,defaultWidth:"wide",formattingValues:lCe,defaultFormattingWidth:"wide"})},dCe=/^(第\s*)?\d+(日|时|分|秒)?/i,fCe=/\d+/i,hCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},mCe={any:[/^(前)/i,/^(公元)/i]},pCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},vCe={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},gCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},yCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},xCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},bCe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},wCe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},jCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},SCe={ordinalNumber:BH({matchPattern:dCe,parsePattern:fCe,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:hCe,defaultMatchWidth:"wide",parsePatterns:mCe,defaultParseWidth:"any"}),quarter:li({matchPatterns:pCe,defaultMatchWidth:"wide",parsePatterns:vCe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:gCe,defaultMatchWidth:"wide",parsePatterns:yCe,defaultParseWidth:"any"}),day:li({matchPatterns:xCe,defaultMatchWidth:"wide",parsePatterns:bCe,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:wCe,defaultMatchWidth:"any",parsePatterns:jCe,defaultParseWidth:"any"})},Qp={code:"zh-CN",formatDistance:XNe,formatLong:eCe,formatRelative:nCe,localize:uCe,match:SCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function _Ce(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,s]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,w]=y.useState(!1),b=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const $=Bc.getAllLogs();t($);const H=Bc.onLog(()=>{t(Bc.getAllLogs())}),V=Bc.onConnectionChange(q=>{w(q)});return()=>{H(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const E=y.useMemo(()=>{const $=new Set(e.map(H=>H.module));return Array.from($).sort()},[e]),O=$=>{switch($){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},A=$=>{switch($){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},C=()=>{window.location.reload()},k=()=>{Bc.clearLogs(),t([])},T=()=>{const $=B.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` -`),H=new Blob([$],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(H),q=document.createElement("a");q.href=V,q.download=`logs-${pv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,q.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},R=()=>{f(void 0),p(void 0)},B=y.useMemo(()=>e.filter($=>{const H=n===""||$.message.toLowerCase().includes(n.toLowerCase())||$.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||$.level===a,q=l==="all"||$.module===l;let G=!0;if(d||m){const L=new Date($.timestamp);if(d){const D=new Date(d);D.setHours(0,0,0,0),G=G&&L>=D}if(m){const D=new Date(m);D.setHours(23,59,59,999),G=G&&L<=D}}return H&&V&&q&&G}),[e,n,a,l,d,m]);return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:ce("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(Xe,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索日志...",value:n,onChange:$=>r($.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(Dt,{value:a,onValueChange:s,children:[i.jsxs(Ot,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(eC,{className:"h-4 w-4 mr-2"}),i.jsx($t,{placeholder:"级别"})]}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部级别"}),i.jsx(De,{value:"DEBUG",children:"DEBUG"}),i.jsx(De,{value:"INFO",children:"INFO"}),i.jsx(De,{value:"WARNING",children:"WARNING"}),i.jsx(De,{value:"ERROR",children:"ERROR"}),i.jsx(De,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(Dt,{value:l,onValueChange:u,children:[i.jsxs(Ot,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(eC,{className:"h-4 w-4 mr-2"}),i.jsx($t,{placeholder:"模块"})]}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部模块"}),E.map($=>i.jsx(De,{value:$,children:$},$))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(QI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?pv(d,"PPP",{locale:Qp}):"开始日期"})]})}),i.jsx(ds,{className:"w-auto p-0",align:"start",children:i.jsx(YL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:Qp})})]}),i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(QI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?pv(m,"PPP",{locale:Qp}):"结束日期"})]})}),i.jsx(ds,{className:"w-auto p-0",align:"start",children:i.jsx(YL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:Qp})})]}),(d||m)&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:R,className:"w-full sm:w-auto h-9",children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(oe,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(yge,{className:"h-4 w-4"}):i.jsx(wge,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(is,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(It,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:T,className:"flex-1 sm:flex-none h-9",children:[i.jsx(QN,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[B.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(Xe,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Wt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:b,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[B.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):B.map($=>i.jsxs("div",{className:ce("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",A($.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:$.timestamp}),i.jsxs("span",{className:ce("text-xs font-semibold",O($.level)),children:["[",$.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:$.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:$.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:$.timestamp}),i.jsxs("span",{className:ce("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",O($.level)),children:["[",$.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:$.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:$.message})]})]},$.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const NCe="Mai-with-u",CCe="plugin-repo",OCe="main",ECe="plugin_details.json";async function ACe(){try{const e=await rt("/api/webui/plugins/fetch-raw",{method:"POST",headers:dt(),body:JSON.stringify({owner:NCe,repo:CCe,branch:OCe,file_path:ECe})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function TCe(){try{const e=await rt("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function kCe(){try{const e=await rt("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function MCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,s=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function PCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const s=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(s)},3e4)},a.onmessage=s=>{try{if(s.data==="pong")return;const l=JSON.parse(s.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=s=>{console.error("Plugin progress WebSocket error:",s),t?.(s)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function Jp(){try{const e=await rt("/api/webui/plugins/installed",{headers:dt()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function ev(e,t){return t.some(n=>n.id===e)}function tv(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function RCe(e,t,n="main"){const r=await rt("/api/webui/plugins/install",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function DCe(e){const t=await rt("/api/webui/plugins/uninstall",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function $Ce(e,t,n="main"){const r=await rt("/api/webui/plugins/update",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}const XL={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function ICe(){const e=la(),[t,n]=y.useState(null),[r,a]=y.useState(""),[s,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[,T]=y.useState([]),{toast:M}=yr();y.useEffect(()=>{let D=null,U=!1;return(async()=>{if(D=PCe(J=>{U||(A(J),J.stage==="success"?setTimeout(()=>{U||A(null)},2e3):J.stage==="error"&&(j(!1),b(J.error||"加载失败")))},J=>{console.error("WebSocket error:",J),U||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(J=>{if(!D){J();return}const I=()=>{D&&D.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),J()):D&&D.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),J()):setTimeout(I,100)};I()}),!U){const J=await TCe();E(J),J.installed||M({title:"Git 未安装",description:J.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!U){const J=await kCe();k(J)}if(!U)try{j(!0),b(null);const J=await ACe();if(!U){const I=await Jp();T(I);const z=J.map(Y=>{const te=ev(Y.id,I),ae=tv(Y.id,I);return{...Y,installed:te,installed_version:ae}});for(const Y of I)!z.some(ae=>ae.id===Y.id)&&Y.manifest&&z.push({id:Y.id,manifest:{manifest_version:Y.manifest.manifest_version||1,name:Y.manifest.name,version:Y.manifest.version,description:Y.manifest.description||"",author:Y.manifest.author,license:Y.manifest.license||"Unknown",host_application:Y.manifest.host_application,homepage_url:Y.manifest.homepage_url,repository_url:Y.manifest.repository_url,keywords:Y.manifest.keywords||[],categories:Y.manifest.categories||[],default_locale:Y.manifest.default_locale||"zh-CN",locales_path:Y.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:Y.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(z)}}catch(J){if(!U){const I=J instanceof Error?J.message:"加载插件列表失败";b(I),M({title:"加载失败",description:I,variant:"destructive"})}}finally{U||j(!1)}})(),()=>{U=!0,D&&D.close()}},[M]);const R=D=>{if(!D.installed&&C&&!B(D))return i.jsxs(Ft,{variant:"destructive",className:"gap-1",children:[i.jsx(gl,{className:"h-3 w-3"}),"不兼容"]});if(D.installed){const U=D.installed_version?.trim(),K=D.manifest.version?.trim();if(U!==K){const J=U?.split(".").map(Number)||[0,0,0],I=K?.split(".").map(Number)||[0,0,0];for(let z=0;z<3;z++){if((I[z]||0)>(J[z]||0))return i.jsxs(Ft,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(gl,{className:"h-3 w-3"}),"可更新"]});if((I[z]||0)<(J[z]||0))break}}return i.jsxs(Ft,{variant:"default",className:"gap-1",children:[i.jsx(Pr,{className:"h-3 w-3"}),"已安装"]})}return null},B=D=>!C||!D.manifest?.host_application?!0:MCe(D.manifest.host_application.min_version,D.manifest.host_application.max_version,C),$=D=>{if(!D.installed||!D.installed_version||!D.manifest?.version)return!1;const U=D.installed_version.trim(),K=D.manifest.version.trim();if(U===K)return!1;const J=U.split(".").map(Number),I=K.split(".").map(Number);for(let z=0;z<3;z++){if((I[z]||0)>(J[z]||0))return!0;if((I[z]||0)<(J[z]||0))return!1}return!1},H=p.filter(D=>{if(!D.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",D.id),!1;const U=r===""||D.manifest.name?.toLowerCase().includes(r.toLowerCase())||D.manifest.description?.toLowerCase().includes(r.toLowerCase())||D.manifest.keywords&&D.manifest.keywords.some(z=>z.toLowerCase().includes(r.toLowerCase())),K=s==="all"||D.manifest.categories&&D.manifest.categories.includes(s);let J=!0;u==="installed"?J=D.installed===!0:u==="updates"&&(J=D.installed===!0&&$(D));const I=!f||!C||B(D);return U&&K&&J&&I}),V=()=>{n(null)},q=async D=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!B(D)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await RCe(D.id,D.manifest.repository_url||"","main"),M({title:"安装成功",description:`${D.manifest.name} 已成功安装`});const U=await Jp();T(U),g(K=>K.map(J=>{if(J.id===D.id){const I=ev(J.id,U),z=tv(J.id,U);return{...J,installed:I,installed_version:z}}return J}))}catch(U){M({title:"安装失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},G=async D=>{try{await DCe(D.id),M({title:"卸载成功",description:`${D.manifest.name} 已成功卸载`});const U=await Jp();T(U),g(K=>K.map(J=>{if(J.id===D.id){const I=ev(J.id,U),z=tv(J.id,U);return{...J,installed:I,installed_version:z}}return J}))}catch(U){M({title:"卸载失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},L=async D=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const U=await $Ce(D.id,D.manifest.repository_url||"","main");M({title:"更新成功",description:`${D.manifest.name} 已从 ${U.old_version} 更新到 ${U.new_version}`});const K=await Jp();T(K),g(J=>J.map(I=>{if(I.id===D.id){const z=ev(I.id,K),Y=tv(I.id,K);return{...I,installed:z,installed_version:Y}}return I}))}catch(U){M({title:"更新失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(oe,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(Pge,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(Xe,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(pt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Kc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(vt,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(Wn,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(Ct,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索插件...",value:r,onChange:D=>a(D.target.value),className:"pl-9"})]}),i.jsxs(Dt,{value:s,onValueChange:l,children:[i.jsx(Ot,{className:"w-full sm:w-[200px]",children:i.jsx($t,{placeholder:"选择分类"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部分类"}),i.jsx(De,{value:"Group Management",children:"群组管理"}),i.jsx(De,{value:"Entertainment & Interaction",children:"娱乐互动"}),i.jsx(De,{value:"Utility Tools",children:"实用工具"}),i.jsx(De,{value:"Content Generation",children:"内容生成"}),i.jsx(De,{value:"Multimedia",children:"多媒体"}),i.jsx(De,{value:"External Integration",children:"外部集成"}),i.jsx(De,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),i.jsx(De,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"compatible-only",checked:f,onCheckedChange:D=>m(D===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(dl,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(eo,{className:"grid w-full grid-cols-3",children:[i.jsxs(Rt,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Rt,{value:"installed",children:["已安装 (",p.filter(D=>D.installed).length,")"]}),i.jsxs(Rt,{value:"updates",children:["可更新 (",p.filter(D=>D.installed&&$(D)).length,")"]})]})}),O&&O.stage==="loading"&&i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(gh,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[O.operation==="fetch"&&"加载插件列表",O.operation==="install"&&`安装插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="uninstall"&&`卸载插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="update"&&`更新插件${O.plugin_id?`: ${O.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[O.progress,"%"]})]}),i.jsx($h,{value:O.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.message}),O.operation==="fetch"&&O.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",O.loaded_plugins," / ",O.total_plugins," 个插件"]})]})}),O&&O.stage==="error"&&O.error&&i.jsx(Xe,{className:"border-destructive bg-destructive/10",children:i.jsx(pt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Kc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(vt,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(Wn,{className:"text-destructive/80",children:O.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(gh,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):w?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Kc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:w}),i.jsx(oe,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):H.length===0?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Lr,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||s!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:H.map(D=>i.jsxs(Xe,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(pt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(vt,{className:"text-xl",children:D.manifest?.name||D.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[D.manifest?.categories&&D.manifest.categories[0]&&i.jsx(Ft,{variant:"secondary",className:"text-xs whitespace-nowrap",children:XL[D.manifest.categories[0]]||D.manifest.categories[0]}),R(D)]})]}),i.jsx(Wn,{className:"line-clamp-2",children:D.manifest?.description||"无描述"})]}),i.jsx(Ct,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(QN,{className:"h-4 w-4"}),i.jsx("span",{children:D.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:D.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[D.manifest?.keywords&&D.manifest.keywords.slice(0,3).map(U=>i.jsx(Ft,{variant:"outline",className:"text-xs",children:U},U)),D.manifest?.keywords&&D.manifest.keywords.length>3&&i.jsxs(Ft,{variant:"outline",className:"text-xs",children:["+",D.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",D.manifest?.version||"unknown"," · ",D.manifest?.author?.name||"Unknown"]}),D.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[D.manifest.host_application.min_version,D.manifest.host_application.max_version?` - ${D.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(eB,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>n(D),children:"查看详情"}),D.installed?$(D)?i.jsxs(oe,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>L(D),children:[i.jsx(is,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(oe,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(D),children:[i.jsx(It,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(oe,{size:"sm",disabled:!N?.installed||O?.operation==="install"||C!==null&&!B(D),title:N?.installed?C!==null&&!B(D)?`不兼容当前版本 (需要 ${D.manifest?.host_application?.min_version||"未知"}${D.manifest?.host_application?.max_version?` - ${D.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>q(D),children:[i.jsx(QN,{className:"h-4 w-4 mr-1"}),O?.operation==="install"&&O?.plugin_id===D.id?"安装中...":"安装"]})]})})]},D.id))}),i.jsx(sr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Xn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Zn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(vr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(Mf,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Ft,{variant:"secondary",children:XL[t.manifest.categories[0]]||t.manifest.categories[0]}),R(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(D=>i.jsx(Ft,{variant:"outline",children:D},D))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs(Br,{children:[t.manifest.homepage_url&&i.jsxs(oe,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(oe,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function LCe(){return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(is,{className:"h-4 w-4 mr-2"}),"刷新"]}),i.jsxs(oe,{size:"sm",children:[i.jsx(Fa,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已安装插件"}),i.jsx(Tg,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已启用"}),i.jsx(Pr,{className:"h-4 w-4 text-green-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已禁用"}),i.jsx(gl,{className:"h-4 w-4 text-orange-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"可更新"}),i.jsx(is,{className:"h-4 w-4 text-blue-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"已安装的插件"}),i.jsx(Wn,{children:"查看和管理已安装插件的配置"})]}),i.jsx(Ct,{children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[i.jsx(Tg,{className:"h-16 w-16 text-muted-foreground/50"}),i.jsxs("div",{className:"text-center space-y-2",children:[i.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),i.jsx("div",{className:"flex gap-2",children:i.jsx(oe,{variant:"outline",asChild:!0,children:i.jsxs("a",{href:"/plugins",children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsx(vt,{className:"text-base",children:"即将推出的功能"})}),i.jsx(Ct,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsx(vt,{className:"text-base",children:"开发者工具"})}),i.jsx(Ct,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"热重载"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),i.jsx(Xe,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:i.jsx(Ct,{className:"pt-6",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(gl,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",i.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function BCe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState([]),[a,s]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b=y.useCallback(async()=>{try{s(!0),u(null);const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${T}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const R=await M.json();r(R.mirrors||[])}catch(T){const M=T instanceof Error?T.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{s(!1)}},[t]);y.useEffect(()=>{b()},[b]);const N=async()=>{try{const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const R=await M.json();throw new Error(R.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),w({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b()}catch(T){t({title:"添加失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},E=async()=>{if(d)try{const T=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),b()}catch(T){t({title:"更新失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},O=async T=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),b()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},A=async T=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!T.enabled})})).ok)throw new Error("更新状态失败");b()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=T=>{f(T),w({id:T.id,name:T.name,raw_prefix:T.raw_prefix,clone_prefix:T.clone_prefix,enabled:T.enabled,priority:T.priority}),x(!0)},k=async(T,M)=>{const R=M==="up"?T.priority-1:T.priority+1;if(!(R<1))try{const B=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/json"},body:JSON.stringify({priority:R})})).ok)throw new Error("更新优先级失败");b()}catch(B){t({title:"更新失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(fF,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(oe,{onClick:()=>p(!0),children:[i.jsx(ir,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(Xe,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(gh,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Kc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(oe,{onClick:b,children:"重新加载"})]})}):i.jsxs(Xe,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"状态"}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"ID"}),i.jsx(nt,{children:"优先级"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n.map(T=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(lt,{checked:T.enabled,onCheckedChange:()=>A(T)})}),i.jsx(Ge,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:T.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",T.raw_prefix]})]})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:"outline",children:T.id})}),i.jsx(Ge,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:T.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(KN,{className:"h-3 w-3"})}),i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"down"),children:i.jsx(vh,{className:"h-3 w-3"})})]})]})}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>C(T),children:i.jsx(Pu,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>O(T.id),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},T.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(T=>i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:T.name}),T.enabled&&i.jsx(Ft,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Ft,{variant:"outline",className:"mt-1 text-xs",children:T.id})]}),i.jsx(lt,{checked:T.enabled,onCheckedChange:()=>A(T)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:T.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:T.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(oe,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(T),children:[i.jsx(Pu,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(KN,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"down"),children:i.jsx(vh,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"destructive",size:"sm",onClick:()=>O(T.id),children:i.jsx(It,{className:"h-4 w-4"})})]})]})},T.id))})]}),i.jsx(sr,{open:m,onOpenChange:p,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"添加镜像源"}),i.jsx(vr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ne,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:T=>w({...j,id:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ne,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ne,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"add-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(Q,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(oe,{onClick:N,children:"添加"})]})]})}),i.jsx(sr,{open:g,onOpenChange:x,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑镜像源"}),i.jsx(vr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"镜像源 ID"}),i.jsx(Ne,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ne,{id:"edit-name",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"edit-raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"edit-clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ne,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"edit-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(Q,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(oe,{onClick:E,children:"保存"})]})]})})]})})}const zCe=Zu("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),r9=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},s)=>i.jsx("kbd",{className:ce(zCe({size:t,className:e})),ref:s,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));r9.displayName="Kbd";const qCe=[{icon:Ag,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:rE,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:vF,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:hF,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:sE,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:Gh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:mF,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:Eve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:Tg,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:Og,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Fa,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function FCe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState(0),l=la(),u=qCe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),s(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),s(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),s(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Xn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Zn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ne,{value:n,onChange:m=>{r(m.target.value),s(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Wt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>s(p),className:ce("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Lr,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function UCe(e){const t=HCe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(VCe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function HCe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=YCe(a),u=GCe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var WCe=Symbol("radix.slottable");function VCe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===WCe}function GCe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function YCe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var wC=["Enter"," "],KCe=["ArrowDown","PageUp","Home"],a9=["ArrowUp","PageDown","End"],XCe=[...KCe,...a9],ZCe={ltr:[...wC,"ArrowRight"],rtl:[...wC,"ArrowLeft"]},QCe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},sm="Menu",[Nh,JCe,eOe]=Ph(sm),[Dl,i9]=gr(sm,[eOe,ho,Yg]),om=ho(),s9=Yg(),[o9,xo]=Dl(sm),[tOe,lm]=Dl(sm),l9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:s,modal:l=!0}=e,u=om(t),[d,f]=y.useState(null),m=y.useRef(!1),p=ln(s),g=Fu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(Qh,{...u,children:i.jsx(o9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(tOe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};l9.displayName=sm;var nOe="MenuAnchor",LE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=om(n);return i.jsx(Jh,{...a,...r,ref:t})});LE.displayName=nOe;var BE="MenuPortal",[rOe,c9]=Dl(BE,{forceMount:void 0}),u9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,s=xo(BE,t);return i.jsx(rOe,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};u9.displayName=BE;var Oa="MenuContent",[aOe,zE]=Dl(Oa),d9=y.forwardRef((e,t)=>{const n=c9(Oa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=xo(Oa,e.__scopeMenu),l=lm(Oa,e.__scopeMenu);return i.jsx(Nh.Provider,{scope:e.__scopeMenu,children:i.jsx(Bn,{present:r||s.open,children:i.jsx(Nh.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(iOe,{...a,ref:t}):i.jsx(sOe,{...a,ref:t})})})})}),iOe=y.forwardRef((e,t)=>{const n=xo(Oa,e.__scopeMenu),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return zy(s)},[]),i.jsx(qE,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:_e(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),sOe=y.forwardRef((e,t)=>{const n=xo(Oa,e.__scopeMenu);return i.jsx(qE,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),oOe=UCe("MenuContent.ScrollLock"),qE=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...w}=e,b=xo(Oa,n),N=lm(Oa,n),E=om(n),O=s9(n),A=JCe(n),[C,k]=y.useState(null),T=y.useRef(null),M=Ue(t,T,b.onContentChange),R=y.useRef(0),B=y.useRef(""),$=y.useRef(0),H=y.useRef(null),V=y.useRef("right"),q=y.useRef(0),G=j?Xh:y.Fragment,L=j?{as:oOe,allowPinchZoom:!0}:void 0,D=K=>{const J=B.current+K,I=A().filter(ee=>!ee.disabled),z=document.activeElement,Y=I.find(ee=>ee.ref.current===z)?.textValue,te=I.map(ee=>ee.textValue),ae=xOe(te,J,Y),ge=I.find(ee=>ee.textValue===ae)?.ref.current;(function ee(Se){B.current=Se,window.clearTimeout(R.current),Se!==""&&(R.current=window.setTimeout(()=>ee(""),1e3))})(J),ge&&setTimeout(()=>ge.focus())};y.useEffect(()=>()=>window.clearTimeout(R.current),[]),Ly();const U=y.useCallback(K=>V.current===H.current?.side&&wOe(K,H.current?.area),[]);return i.jsx(aOe,{scope:n,searchRef:B,onItemEnter:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),onItemLeave:y.useCallback(K=>{U(K)||(T.current?.focus(),k(null))},[U]),onTriggerLeave:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),pointerGraceTimerRef:$,onPointerGraceIntentChange:y.useCallback(K=>{H.current=K},[]),children:i.jsx(G,{...L,children:i.jsx(Kh,{asChild:!0,trapped:a,onMountAutoFocus:_e(s,K=>{K.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(sB,{asChild:!0,...O,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:_e(d,K=>{N.isUsingKeyboardRef.current||K.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Ky,{role:"menu","aria-orientation":"vertical","data-state":E9(b.open),"data-radix-menu-content":"",dir:N.dir,...E,...w,ref:M,style:{outline:"none",...w.style},onKeyDown:_e(w.onKeyDown,K=>{const I=K.target.closest("[data-radix-menu-content]")===K.currentTarget,z=K.ctrlKey||K.altKey||K.metaKey,Y=K.key.length===1;I&&(K.key==="Tab"&&K.preventDefault(),!z&&Y&&D(K.key));const te=T.current;if(K.target!==te||!XCe.includes(K.key))return;K.preventDefault();const ge=A().filter(ee=>!ee.disabled).map(ee=>ee.ref.current);a9.includes(K.key)&&ge.reverse(),gOe(ge)}),onBlur:_e(e.onBlur,K=>{K.currentTarget.contains(K.target)||(window.clearTimeout(R.current),B.current="")}),onPointerMove:_e(e.onPointerMove,Ch(K=>{const J=K.target,I=q.current!==K.clientX;if(K.currentTarget.contains(J)&&I){const z=K.clientX>q.current?"right":"left";V.current=z,q.current=K.clientX}}))})})})})})})});d9.displayName=Oa;var lOe="MenuGroup",FE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"group",...r,ref:t})});FE.displayName=lOe;var cOe="MenuLabel",f9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});f9.displayName=cOe;var Lg="MenuItem",ZL="menu.itemSelect",ox=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,s=y.useRef(null),l=lm(Lg,e.__scopeMenu),u=zE(Lg,e.__scopeMenu),d=Ue(t,s),f=y.useRef(!1),m=()=>{const p=s.current;if(!n&&p){const g=new CustomEvent(ZL,{bubbles:!0,cancelable:!0});p.addEventListener(ZL,x=>r?.(x),{once:!0}),UC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(h9,{...a,ref:d,disabled:n,onClick:_e(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:_e(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:_e(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||wC.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});ox.displayName=Lg;var h9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...s}=e,l=zE(Lg,n),u=s9(n),d=y.useRef(null),f=Ue(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[s.children]),i.jsx(Nh.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(oB,{asChild:!0,...u,focusable:!r,children:i.jsx($e.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:f,onPointerMove:_e(e.onPointerMove,Ch(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:_e(e.onPointerLeave,Ch(j=>l.onItemLeave(j))),onFocus:_e(e.onFocus,()=>p(!0)),onBlur:_e(e.onBlur,()=>p(!1))})})})}),uOe="MenuCheckboxItem",m9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(x9,{scope:e.__scopeMenu,checked:n,children:i.jsx(ox,{role:"menuitemcheckbox","aria-checked":Bg(n)?"mixed":n,...a,ref:t,"data-state":WE(n),onSelect:_e(a.onSelect,()=>r?.(Bg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});m9.displayName=uOe;var p9="MenuRadioGroup",[dOe,fOe]=Dl(p9,{value:void 0,onValueChange:()=>{}}),v9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,s=ln(r);return i.jsx(dOe,{scope:e.__scopeMenu,value:n,onValueChange:s,children:i.jsx(FE,{...a,ref:t})})});v9.displayName=p9;var g9="MenuRadioItem",y9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=fOe(g9,e.__scopeMenu),s=n===a.value;return i.jsx(x9,{scope:e.__scopeMenu,checked:s,children:i.jsx(ox,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":WE(s),onSelect:_e(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});y9.displayName=g9;var UE="MenuItemIndicator",[x9,hOe]=Dl(UE,{checked:!1}),b9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,s=hOe(UE,n);return i.jsx(Bn,{present:r||Bg(s.checked)||s.checked===!0,children:i.jsx($e.span,{...a,ref:t,"data-state":WE(s.checked)})})});b9.displayName=UE;var mOe="MenuSeparator",w9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});w9.displayName=mOe;var pOe="MenuArrow",j9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=om(n);return i.jsx(Xy,{...a,...r,ref:t})});j9.displayName=pOe;var HE="MenuSub",[vOe,S9]=Dl(HE),_9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,s=xo(HE,t),l=om(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=ln(a);return y.useEffect(()=>(s.open===!1&&p(!1),()=>p(!1)),[s.open,p]),i.jsx(Qh,{...l,children:i.jsx(o9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(vOe,{scope:t,contentId:Gn(),triggerId:Gn(),trigger:u,onTriggerChange:d,children:n})})})};_9.displayName=HE;var bf="MenuSubTrigger",N9=y.forwardRef((e,t)=>{const n=xo(bf,e.__scopeMenu),r=lm(bf,e.__scopeMenu),a=S9(bf,e.__scopeMenu),s=zE(bf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=s,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(LE,{asChild:!0,...f,children:i.jsx(h9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":E9(n.open),...e,ref:Ir(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:_e(e.onPointerMove,Ch(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(s.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:_e(e.onPointerLeave,Ch(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",w=j?-5:5,b=g[j?"left":"right"],N=g[j?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:b,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:b,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:_e(e.onKeyDown,p=>{const g=s.searchRef.current!=="";e.disabled||g&&p.key===" "||ZCe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});N9.displayName=bf;var C9="MenuSubContent",O9=y.forwardRef((e,t)=>{const n=c9(Oa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=xo(Oa,e.__scopeMenu),l=lm(Oa,e.__scopeMenu),u=S9(C9,e.__scopeMenu),d=y.useRef(null),f=Ue(t,d);return i.jsx(Nh.Provider,{scope:e.__scopeMenu,children:i.jsx(Bn,{present:r||s.open,children:i.jsx(Nh.Slot,{scope:e.__scopeMenu,children:i.jsx(qE,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:_e(e.onFocusOutside,m=>{m.target!==u.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:_e(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:_e(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=QCe[l.dir].includes(m.key);p&&g&&(s.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});O9.displayName=C9;function E9(e){return e?"open":"closed"}function Bg(e){return e==="indeterminate"}function WE(e){return Bg(e)?"indeterminate":e?"checked":"unchecked"}function gOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function yOe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function xOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=yOe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function bOe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function wOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return bOe(n,t)}function Ch(e){return t=>t.pointerType==="mouse"?e(t):void 0}var jOe=l9,SOe=LE,_Oe=u9,NOe=d9,COe=FE,OOe=f9,EOe=ox,AOe=m9,TOe=v9,kOe=y9,MOe=b9,POe=w9,ROe=j9,DOe=_9,$Oe=N9,IOe=O9,VE="ContextMenu",[LOe]=gr(VE,[i9]),xr=i9(),[BOe,A9]=LOe(VE),T9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:s=!0}=e,[l,u]=y.useState(!1),d=xr(t),f=ln(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(BOe,{scope:t,open:l,onOpenChange:m,modal:s,children:i.jsx(jOe,{...d,dir:a,open:l,onOpenChange:m,modal:s,children:n})})};T9.displayName=VE;var k9="ContextMenuTrigger",M9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,s=A9(k9,n),l=xr(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},s.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(SOe,{...l,virtualRef:d}),i.jsx($e.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:_e(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:_e(e.onPointerDown,nv(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:_e(e.onPointerMove,nv(m)),onPointerCancel:r?e.onPointerCancel:_e(e.onPointerCancel,nv(m)),onPointerUp:r?e.onPointerUp:_e(e.onPointerUp,nv(m))})]})});M9.displayName=k9;var zOe="ContextMenuPortal",P9=e=>{const{__scopeContextMenu:t,...n}=e,r=xr(t);return i.jsx(_Oe,{...r,...n})};P9.displayName=zOe;var R9="ContextMenuContent",D9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=A9(R9,n),s=xr(n),l=y.useRef(!1);return i.jsx(NOe,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});D9.displayName=R9;var qOe="ContextMenuGroup",FOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(COe,{...a,...r,ref:t})});FOe.displayName=qOe;var UOe="ContextMenuLabel",$9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(OOe,{...a,...r,ref:t})});$9.displayName=UOe;var HOe="ContextMenuItem",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(EOe,{...a,...r,ref:t})});I9.displayName=HOe;var WOe="ContextMenuCheckboxItem",L9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(AOe,{...a,...r,ref:t})});L9.displayName=WOe;var VOe="ContextMenuRadioGroup",GOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(TOe,{...a,...r,ref:t})});GOe.displayName=VOe;var YOe="ContextMenuRadioItem",B9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(kOe,{...a,...r,ref:t})});B9.displayName=YOe;var KOe="ContextMenuItemIndicator",z9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(MOe,{...a,...r,ref:t})});z9.displayName=KOe;var XOe="ContextMenuSeparator",q9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(POe,{...a,...r,ref:t})});q9.displayName=XOe;var ZOe="ContextMenuArrow",QOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(ROe,{...a,...r,ref:t})});QOe.displayName=ZOe;var F9="ContextMenuSub",U9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:s}=e,l=xr(t),[u,d]=Ea({prop:a,defaultProp:s??!1,onChange:r,caller:F9});return i.jsx(DOe,{...l,open:u,onOpenChange:d,children:n})};U9.displayName=F9;var JOe="ContextMenuSubTrigger",H9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx($Oe,{...a,...r,ref:t})});H9.displayName=JOe;var eEe="ContextMenuSubContent",W9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(IOe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});W9.displayName=eEe;function nv(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var tEe=T9,nEe=M9,rEe=P9,V9=D9,G9=$9,Y9=I9,K9=L9,X9=B9,Z9=z9,Q9=q9,aEe=U9,J9=H9,eW=W9;const iEe=tEe,sEe=nEe,oEe=aEe,tW=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(J9,{ref:a,className:ce("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(nE,{className:"ml-auto h-4 w-4"})]}));tW.displayName=J9.displayName;const nW=y.forwardRef(({className:e,...t},n)=>i.jsx(eW,{ref:n,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));nW.displayName=eW.displayName;const rW=y.forwardRef(({className:e,...t},n)=>i.jsx(rEe,{children:i.jsx(V9,{ref:n,className:ce("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));rW.displayName=V9.displayName;const Ia=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(Y9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));Ia.displayName=Y9.displayName;const lEe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(K9,{ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Z9,{children:i.jsx(ol,{className:"h-4 w-4"})})}),t]}));lEe.displayName=K9.displayName;const cEe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(X9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Z9,{children:i.jsx(Uve,{className:"h-2 w-2 fill-current"})})}),t]}));cEe.displayName=X9.displayName;const uEe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(G9,{ref:r,className:ce("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));uEe.displayName=G9.displayName;const wf=y.forwardRef(({className:e,...t},n)=>i.jsx(Q9,{ref:n,className:ce("-mx-1 my-1 h-px bg-border",e),...t}));wf.displayName=Q9.displayName;const zc=({className:e,...t})=>i.jsx("span",{className:ce("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});zc.displayName="ContextMenuShortcut";var dEe=Symbol("radix.slottable");function fEe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=dEe,t}var[lx]=gr("Tooltip",[ho]),cx=ho(),aW="TooltipProvider",hEe=700,jC="tooltip.open",[mEe,GE]=lx(aW),iW=e=>{const{__scopeTooltip:t,delayDuration:n=hEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(mEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:s})};iW.displayName=aW;var Oh="Tooltip",[pEe,cm]=lx(Oh),sW=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:s,disableHoverableContent:l,delayDuration:u}=e,d=GE(Oh,e.__scopeTooltip),f=cx(t),[m,p]=y.useState(null),g=Gn(),x=y.useRef(0),j=l??d.disableHoverableContent,w=u??d.delayDuration,b=y.useRef(!1),[N,E]=Ea({prop:r,defaultProp:a??!1,onChange:T=>{T?(d.onOpen(),document.dispatchEvent(new CustomEvent(jC))):d.onClose(),s?.(T)},caller:Oh}),O=y.useMemo(()=>N?b.current?"delayed-open":"instant-open":"closed",[N]),A=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,b.current=!1,E(!0)},[E]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,E(!1)},[E]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{b.current=!0,E(!0),x.current=0},w)},[w,E]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(Qh,{...f,children:i.jsx(pEe,{scope:t,contentId:g,open:N,stateAttribute:O,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():A()},[d.isOpenDelayedRef,k,A]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:A,onClose:C,disableHoverableContent:j,children:n})})};sW.displayName=Oh;var SC="TooltipTrigger",oW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=cm(SC,n),s=GE(SC,n),l=cx(n),u=y.useRef(null),d=Ue(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(Jh,{asChild:!0,...l,children:i.jsx($e.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:_e(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:_e(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:_e(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:_e(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:_e(e.onBlur,a.onClose),onClick:_e(e.onClick,a.onClose)})})});oW.displayName=SC;var YE="TooltipPortal",[vEe,gEe]=lx(YE,{forceMount:void 0}),lW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,s=cm(YE,t);return i.jsx(vEe,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};lW.displayName=YE;var Iu="TooltipContent",cW=y.forwardRef((e,t)=>{const n=gEe(Iu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,l=cm(Iu,e.__scopeTooltip);return i.jsx(Bn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(uW,{side:a,...s,ref:t}):i.jsx(yEe,{side:a,...s,ref:t})})}),yEe=y.forwardRef((e,t)=>{const n=cm(Iu,e.__scopeTooltip),r=GE(Iu,e.__scopeTooltip),a=y.useRef(null),s=Ue(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,w)=>{const b=j.currentTarget,N={x:j.clientX,y:j.clientY},E=SEe(N,b.getBoundingClientRect()),O=_Ee(N,E),A=NEe(w.getBoundingClientRect()),C=OEe([...O,...A]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=b=>x(b,m),w=b=>x(b,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",w)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=w=>{const b=w.target,N={x:w.clientX,y:w.clientY},E=d?.contains(b)||m?.contains(b),O=!CEe(N,l);E?g():O&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(uW,{...e,ref:s})}),[xEe,bEe]=lx(Oh,{isInside:!1}),wEe=fEe("TooltipContent"),uW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:l,...u}=e,d=cm(Iu,n),f=cx(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(jC,m),()=>document.removeEventListener(jC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Ky,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(wEe,{children:r}),i.jsx(xEe,{scope:n,isInside:!0,children:i.jsx(jwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});cW.displayName=Iu;var dW="TooltipArrow",jEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=cx(n);return bEe(dW,n).isInside?null:i.jsx(Xy,{...a,...r,ref:t})});jEe.displayName=dW;function SEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function _Ee(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function CEe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function OEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),EEe(t)}function EEe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const s=t[t.length-1],l=t[t.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],l=n[n.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var AEe=iW,TEe=sW,kEe=oW,MEe=lW,fW=cW;const PEe=AEe,REe=TEe,DEe=kEe,hW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(MEe,{children:i.jsx(fW,{ref:r,sideOffset:t,className:ce("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));hW.displayName=fW.displayName;function $Ee({children:e}){fbe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[s,l]=y.useState(!1),{theme:u,setTheme:d}=oE(),f=VY(),m=la();y.useEffect(()=>{const w=b=>{(b.metaKey||b.ctrlKey)&&b.key==="k"&&(b.preventDefault(),l(!0))};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);const p=[{title:"概览",items:[{icon:Ag,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:rE,label:"麦麦主程序配置",path:"/config/bot"},{icon:vF,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:hF,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:sE,label:"表情包管理",path:"/resource/emoji"},{icon:Gh,label:"表达方式管理",path:"/resource/expression"},{icon:mF,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:Tg,label:"插件市场",path:"/plugins"},{icon:zge,label:"插件配置",path:"/plugin-config"},{icon:Og,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Fa,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(PEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:ce("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:ce("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:ce("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:_ye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:ce("space-y-6",!t&&"lg:space-y-3"),children:p.map((w,b)=>i.jsxs("li",{children:[i.jsx("div",{className:ce("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:w.title})}),!t&&b>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:w.items.map(N=>{const E=f({to:N.path}),O=N.icon,A=i.jsxs(i.Fragment,{children:[E&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:ce("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(O,{className:ce("h-5 w-5 flex-shrink-0",E&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:ce("text-sm font-medium whitespace-nowrap transition-all duration-300",E&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(REe,{children:[i.jsx(DEe,{asChild:!0,children:i.jsx($C,{to:N.path,className:ce("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",E?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:A})}),!t&&i.jsx(hW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},w.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(fge,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(tE,{className:ce("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(r9,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(FCe,{open:s,onOpenChange:l}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(jve,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:w=>{sye(x==="dark"?"light":"dark",d,w)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(nC,{className:"h-5 w-5"}):i.jsx(tC,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(eL,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(iEe,{children:[i.jsx(sEe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(rW,{className:"w-64",children:[i.jsxs(Ia,{onClick:()=>m({to:"/"}),children:[i.jsx(Ag,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(Ia,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Fa,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(Ia,{onClick:()=>m({to:"/logs"}),children:[i.jsx(Og,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(wf,{}),i.jsxs(oEe,{children:[i.jsxs(tW,{children:[i.jsx(pF,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(nW,{className:"w-48",children:[i.jsxs(Ia,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(nC,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(zc,{children:"✓"})]}),i.jsxs(Ia,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(tC,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(zc,{children:"✓"})]}),i.jsxs(Ia,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Fa,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(zc,{children:"✓"})]})]})]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:()=>window.location.reload(),children:[i.jsx(Ege,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(zc,{children:"⌘R"})]}),i.jsxs(Ia,{onClick:()=>l(!0),children:[i.jsx(Lr,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(zc,{children:"⌘K"})]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(Mf,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(eL,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const um=IY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(IC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!O8())throw r5({to:"/auth"})}}),IEe=or({getParentRoute:()=>um,path:"/auth",component:hbe}),LEe=or({getParentRoute:()=>um,path:"/setup",component:Mbe}),ca=or({getParentRoute:()=>um,id:"protected",component:()=>i.jsx($Ee,{children:i.jsx(IC,{})})}),BEe=or({getParentRoute:()=>ca,path:"/",component:aye}),zEe=or({getParentRoute:()=>ca,path:"/config/bot",component:Sje}),qEe=or({getParentRoute:()=>ca,path:"/config/modelProvider",component:Uje}),FEe=or({getParentRoute:()=>ca,path:"/config/model",component:g1e}),UEe=or({getParentRoute:()=>ca,path:"/resource/emoji",component:N1e}),HEe=or({getParentRoute:()=>ca,path:"/resource/expression",component:R1e}),WEe=or({getParentRoute:()=>ca,path:"/resource/person",component:U1e}),VEe=or({getParentRoute:()=>ca,path:"/logs",component:_Ce}),GEe=or({getParentRoute:()=>ca,path:"/plugins",component:ICe}),YEe=or({getParentRoute:()=>ca,path:"/plugin-config",component:LCe}),KEe=or({getParentRoute:()=>ca,path:"/plugin-mirrors",component:BCe}),XEe=or({getParentRoute:()=>ca,path:"/settings",component:ibe}),ZEe=or({getParentRoute:()=>um,path:"*",component:T8}),QEe=um.addChildren([IEe,LEe,ca.addChildren([BEe,zEe,qEe,FEe,UEe,HEe,WEe,GEe,YEe,KEe,VEe,XEe]),ZEe]),JEe=GY({routeTree:QEe,defaultNotFoundComponent:T8});function eAe({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,s]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%"},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%"},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%"},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%"},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%"}}[u];m&&d.style.setProperty("--primary",m.hsl)}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),s(u)}};return i.jsx(yF.Provider,{...r,value:l,children:e})}function tAe({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[s,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;s?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(s))},[s,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:s,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(xF.Provider,{value:f,children:e})}var KE="ToastProvider",[XE,nAe,rAe]=Ph("Toast"),[mW]=gr("Toast",[rAe]),[aAe,ux]=mW(KE),pW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${KE}\`. Expected non-empty \`string\`.`),i.jsx(XE.Provider,{scope:t,children:i.jsx(aAe,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};pW.displayName=KE;var vW="ToastViewport",iAe=["F8"],_C="toast.viewportPause",NC="toast.viewportResume",gW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=iAe,label:a="Notifications ({hotkey})",...s}=e,l=ux(vW,n),u=nAe(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=Ue(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const b=N=>{r.length!==0&&r.every(O=>N[O]||N.code===O)&&p.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),y.useEffect(()=>{const b=d.current,N=p.current;if(j&&b&&N){const E=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(_C);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},O=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(NC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},A=k=>{!b.contains(k.relatedTarget)&&O()},C=()=>{b.contains(document.activeElement)||O()};return b.addEventListener("focusin",E),b.addEventListener("focusout",A),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",C),window.addEventListener("blur",E),window.addEventListener("focus",O),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",A),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",C),window.removeEventListener("blur",E),window.removeEventListener("focus",O)}}},[j,l.isClosePausedRef]);const w=y.useCallback(({tabbingDirection:b})=>{const E=u().map(O=>{const A=O.ref.current,C=[A,...yAe(A)];return b==="forwards"?C:C.reverse()});return(b==="forwards"?E.reverse():E).flat()},[u]);return y.useEffect(()=>{const b=p.current;if(b){const N=E=>{const O=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!O){const C=document.activeElement,k=E.shiftKey;if(E.target===b&&k){f.current?.focus();return}const R=w({tabbingDirection:k?"backwards":"forwards"}),B=R.findIndex($=>$===C);p_(R.slice(B+1))?E.preventDefault():k?f.current?.focus():m.current?.focus()}};return b.addEventListener("keydown",N),()=>b.removeEventListener("keydown",N)}},[u,w]),i.jsxs(Pye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(CC,{ref:f,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"forwards"});p_(b)}}),i.jsx(XE.Slot,{scope:n,children:i.jsx($e.ol,{tabIndex:-1,...s,ref:g})}),j&&i.jsx(CC,{ref:m,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"backwards"});p_(b)}})]})});gW.displayName=vW;var yW="ToastFocusProxy",CC=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=ux(yW,n);return i.jsx(Zy,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!s.viewport?.contains(u)&&r()}})});CC.displayName=yW;var dm="Toast",sAe="toast.swipeStart",oAe="toast.swipeMove",lAe="toast.swipeCancel",cAe="toast.swipeEnd",xW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...l}=e,[u,d]=Ea({prop:r,defaultProp:a??!0,onChange:s,caller:dm});return i.jsx(Bn,{present:n||u,children:i.jsx(fAe,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:ln(e.onPause),onResume:ln(e.onResume),onSwipeStart:_e(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:_e(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:_e(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:_e(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});xW.displayName=dm;var[uAe,dAe]=mW(dm,{onClose(){}}),fAe=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,w=ux(dm,n),[b,N]=y.useState(null),E=Ue(t,q=>N(q)),O=y.useRef(null),A=y.useRef(null),C=a||w.duration,k=y.useRef(0),T=y.useRef(C),M=y.useRef(0),{onToastAdd:R,onToastRemove:B}=w,$=ln(()=>{b?.contains(document.activeElement)&&w.viewport?.focus(),l()}),H=y.useCallback(q=>{!q||q===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout($,q))},[$]);y.useEffect(()=>{const q=w.viewport;if(q){const G=()=>{H(T.current),f?.()},L=()=>{const D=new Date().getTime()-k.current;T.current=T.current-D,window.clearTimeout(M.current),d?.()};return q.addEventListener(_C,L),q.addEventListener(NC,G),()=>{q.removeEventListener(_C,L),q.removeEventListener(NC,G)}}},[w.viewport,C,d,f,H]),y.useEffect(()=>{s&&!w.isClosePausedRef.current&&H(C)},[s,C,w.isClosePausedRef,H]),y.useEffect(()=>(R(),()=>B()),[R,B]);const V=y.useMemo(()=>b?CW(b):null,[b]);return w.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(hAe,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(uAe,{scope:n,onClose:$,children:Sl.createPortal(i.jsx(XE.ItemSlot,{scope:n,children:i.jsx(Mye,{asChild:!0,onEscapeKeyDown:_e(u,()=>{w.isFocusedToastEscapeKeyDownRef.current||$(),w.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx($e.li,{tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":w.swipeDirection,...j,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:_e(e.onKeyDown,q=>{q.key==="Escape"&&(u?.(q.nativeEvent),q.nativeEvent.defaultPrevented||(w.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:_e(e.onPointerDown,q=>{q.button===0&&(O.current={x:q.clientX,y:q.clientY})}),onPointerMove:_e(e.onPointerMove,q=>{if(!O.current)return;const G=q.clientX-O.current.x,L=q.clientY-O.current.y,D=!!A.current,U=["left","right"].includes(w.swipeDirection),K=["left","up"].includes(w.swipeDirection)?Math.min:Math.max,J=U?K(0,G):0,I=U?0:K(0,L),z=q.pointerType==="touch"?10:2,Y={x:J,y:I},te={originalEvent:q,delta:Y};D?(A.current=Y,rv(oAe,p,te,{discrete:!1})):QL(Y,w.swipeDirection,z)?(A.current=Y,rv(sAe,m,te,{discrete:!1}),q.target.setPointerCapture(q.pointerId)):(Math.abs(G)>z||Math.abs(L)>z)&&(O.current=null)}),onPointerUp:_e(e.onPointerUp,q=>{const G=A.current,L=q.target;if(L.hasPointerCapture(q.pointerId)&&L.releasePointerCapture(q.pointerId),A.current=null,O.current=null,G){const D=q.currentTarget,U={originalEvent:q,delta:G};QL(G,w.swipeDirection,w.swipeThreshold)?rv(cAe,x,U,{discrete:!0}):rv(lAe,g,U,{discrete:!0}),D.addEventListener("click",K=>K.preventDefault(),{once:!0})}})})})}),w.viewport)})]}):null}),hAe=e=>{const{__scopeToast:t,children:n,...r}=e,a=ux(dm,t),[s,l]=y.useState(!1),[u,d]=y.useState(!1);return vAe(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(Tl,{asChild:!0,children:i.jsx(Zy,{...r,children:s&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},mAe="ToastTitle",bW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});bW.displayName=mAe;var pAe="ToastDescription",wW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});wW.displayName=pAe;var jW="ToastAction",SW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(NW,{altText:n,asChild:!0,children:i.jsx(ZE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${jW}\`. Expected non-empty \`string\`.`),null)});SW.displayName=jW;var _W="ToastClose",ZE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=dAe(_W,n);return i.jsx(NW,{asChild:!0,children:i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,a.onClose)})})});ZE.displayName=_W;var NW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx($e.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function CW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),gAe(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...CW(r))}}),t}function rv(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?UC(a,s):a.dispatchEvent(s)}var QL=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function vAe(e=()=>{}){const t=ln(e);Yn(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function gAe(e){return e.nodeType===e.ELEMENT_NODE}function yAe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function p_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var xAe=pW,OW=gW,EW=xW,AW=bW,TW=wW,kW=SW,MW=ZE;const bAe=xAe,PW=y.forwardRef(({className:e,...t},n)=>i.jsx(OW,{ref:n,className:ce("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));PW.displayName=OW.displayName;const wAe=Zu("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),RW=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(EW,{ref:r,className:ce(wAe({variant:t}),e),...n}));RW.displayName=EW.displayName;const jAe=y.forwardRef(({className:e,...t},n)=>i.jsx(kW,{ref:n,className:ce("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));jAe.displayName=kW.displayName;const DW=y.forwardRef(({className:e,...t},n)=>i.jsx(MW,{ref:n,className:ce("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Yh,{className:"h-4 w-4"})}));DW.displayName=MW.displayName;const $W=y.forwardRef(({className:e,...t},n)=>i.jsx(AW,{ref:n,className:ce("text-sm font-semibold [&+div]:text-xs",e),...t}));$W.displayName=AW.displayName;const IW=y.forwardRef(({className:e,...t},n)=>i.jsx(TW,{ref:n,className:ce("text-sm opacity-90",e),...t}));IW.displayName=TW.displayName;function SAe(){const{toasts:e}=yr();return i.jsxs(bAe,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return i.jsxs(RW,{...s,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx($W,{children:n}),r&&i.jsx(IW,{children:r})]}),a,i.jsx(DW,{})]},t)}),i.jsx(PW,{})]})}iG.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(eAe,{defaultTheme:"system",children:i.jsxs(tAe,{children:[i.jsx(XY,{router:JEe}),i.jsx(SAe,{})]})})})); +可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(oe,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(O,{rule:A}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(oe,{onClick:()=>w(C),size:"sm",variant:"ghost",children:[i.jsx(ir,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(A.keywords||[]).map((k,T)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ne,{value:k,onChange:M=>N(C,T,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(oe,{onClick:()=>b(C,T),size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})]},T)),(!A.keywords||A.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Xt,{value:A.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:A=>s({...t,enable_response_post_process:A})}),i.jsx(Q,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(lt,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:A=>l({...n,enable:A})}),i.jsx(Q,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ne,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:A=>l({...n,error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ne,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:A=>l({...n,min_freq:parseInt(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ne,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:A=>l({...n,tone_error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ne,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:A=>l({...n,word_replace_rate:parseFloat(A.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(lt,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:A=>u({...r,enable:A})}),i.jsx(Q,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ne,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:A=>u({...r,max_length:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ne,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:A=>u({...r,max_sentence_num:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:A=>u({...r,enable_kaomoji_protection:A})}),i.jsx(Q,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:A=>u({...r,enable_overflow_return_all:A})}),i.jsx(Q,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function Tje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"情绪更新阈值"}),i.jsx(Ne,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"情感特征"}),i.jsx(Xt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function kje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function Mje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"LPMM 模式"}),i.jsxs(Dt,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(Ot,{children:i.jsx($t,{placeholder:"选择 LPMM 模式"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"classic",children:"经典模式"}),i.jsx(De,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"同义词搜索 TopK"}),i.jsx(Ne,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"同义词阈值"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"实体提取线程数"}),i.jsx(Ne,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"嵌入向量维度"}),i.jsx(Ne,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function Pje({config:e,onChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),s("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日期格式"}),i.jsx(Ne,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日志级别样式"}),i.jsxs(Dt,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:p.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日志文本颜色"}),i.jsxs(Dt,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:g.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"全局日志级别"}),i.jsxs(Dt,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"控制台日志级别"}),i.jsxs(Dt,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"文件日志级别"}),i.jsxs(Dt,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(oe,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(Dt,{value:a,onValueChange:s,children:[i.jsx(Ot,{className:"w-32",children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]}),i.jsx(oe,{onClick:d,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function Rje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(lt,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(lt,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(lt,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(lt,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function Dje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},s=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(lt,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"主机地址"}),i.jsx(Ne,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"端口号"}),i.jsx(Ne,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"连接模式"}),i.jsxs(Dt,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"ws",children:"WebSocket (ws)"}),i.jsx(De,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(Q,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"SSL 证书文件路径"}),i.jsx(Ne,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"SSL 密钥文件路径"}),i.jsx(Ne,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(oe,{onClick:a,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>s(u),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function $je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(lt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const kl=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:ce("w-full caption-bottom text-sm",e),...t})}));kl.displayName="Table";const Ml=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:ce("[&_tr]:border-b",e),...t}));Ml.displayName="TableHeader";const Pl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:ce("[&_tr:last-child]:border-0",e),...t}));Pl.displayName="TableBody";const Ije=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:ce("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Ije.displayName="TableFooter";const An=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:ce("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));An.displayName="TableRow";const nt=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:ce("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));nt.displayName="TableHead";const Ge=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:ce("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ge.displayName="TableCell";const Lje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:ce("mt-4 text-sm text-muted-foreground",e),...t}));Lje.displayName="TableCaption";var ix="Checkbox",[Bje]=gr(ix),[zje,ME]=Bje(ix);function qje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Ea({prop:n,defaultProp:a??!1,onChange:d,caller:ix}),[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useRef(!1),O=j?!!l||!!j.closest("form"):!0,A={checked:g,disabled:s,setChecked:x,control:j,setControl:w,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:E,required:f,defaultChecked:Js(a)?!1:a,isFormControl:O,bubbleInput:b,setBubbleInput:N};return i.jsx(zje,{scope:t,...A,children:Fje(p)?p(A):r})}var lH="CheckboxTrigger",cH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:s,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=ME(lH,e),w=Ue(a,m),b=y.useRef(d);return y.useEffect(()=>{const N=s?.form;if(N){const E=()=>p(b.current);return N.addEventListener("reset",E),()=>N.removeEventListener("reset",E)}},[s,p]),i.jsx($e.button,{type:"button",role:"checkbox","aria-checked":Js(d)?"mixed":d,"aria-required":f,"data-state":mH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:w,onKeyDown:_e(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:_e(n,N=>{p(E=>Js(E)?!0:!E),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});cH.displayName=lH;var PE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(qje,{__scopeCheckbox:n,checked:a,defaultChecked:s,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(cH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(hH,{__scopeCheckbox:n})]})})});PE.displayName=ix;var uH="CheckboxIndicator",dH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,s=ME(uH,n);return i.jsx(Bn,{present:r||Js(s.checked)||s.checked===!0,children:i.jsx($e.span,{"data-state":mH(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});dH.displayName=uH;var fH="CheckboxBubbleInput",hH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:s,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=ME(fH,e),j=Ue(n,x),w=Dy(s),b=$y(r);y.useEffect(()=>{const E=g;if(!E)return;const O=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(O,"checked").set,k=!a.current;if(w!==s&&C){const T=new Event("click",{bubbles:k});E.indeterminate=Js(s),C.call(E,Js(s)?!1:s),E.dispatchEvent(T)}},[g,w,s,a]);const N=y.useRef(Js(s)?!1:s);return i.jsx($e.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});hH.displayName=fH;function Fje(e){return typeof e=="function"}function Js(e){return e==="indeterminate"}function mH(e){return Js(e)?"indeterminate":e?"checked":"unchecked"}const io=y.forwardRef(({className:e,...t},n)=>i.jsx(PE,{ref:n,className:ce("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(dH,{className:ce("grid place-content-center text-current"),children:i.jsx(ol,{className:"h-4 w-4"})})}));io.displayName=PE.displayName;function Uje(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(!1),[B,$]=y.useState(""),[H,V]=y.useState(new Set),[q,G]=y.useState(!1),{toast:L}=yr(),D=y.useRef(null),U=y.useRef(!0);y.useEffect(()=>{K()},[]);const K=async()=>{try{r(!0);const be=await Jc();t(be.api_providers||[]),f(!1),U.current=!1}catch(be){console.error("加载配置失败:",be)}finally{r(!1)}},J=async()=>{try{p(!0),TE().catch(()=>{}),x(!0)}catch(be){console.error("重启失败:",be),x(!1),L({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),p(!1)}},I=async()=>{try{s(!0),D.current&&clearTimeout(D.current);const be=await Jc();be.api_providers=e,await Ig(be),f(!1),L({title:"保存成功",description:"正在重启麦麦..."}),await J()}catch(be){console.error("保存配置失败:",be),L({title:"保存失败",description:be.message,variant:"destructive"}),s(!1)}},z=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Y=()=>{x(!1),p(!1),L({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},te=y.useCallback(async be=>{if(!U.current)try{u(!0),await gC("api_providers",be),f(!1)}catch(Ae){console.error("自动保存失败:",Ae),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!U.current)return f(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{te(e)},2e3),()=>{D.current&&clearTimeout(D.current)}},[e,te]);const ae=async()=>{try{s(!0),D.current&&clearTimeout(D.current);const be=await Jc();be.api_providers=e,await Ig(be),f(!1),L({title:"保存成功",description:"模型提供商配置已保存"})}catch(be){console.error("保存配置失败:",be),L({title:"保存失败",description:be.message,variant:"destructive"})}finally{s(!1)}},ge=(be,Ae)=>{N(be||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),O(Ae),R(!1),w(!0)},ee=async()=>{if(b?.api_key)try{await navigator.clipboard.writeText(b.api_key),L({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{L({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},Se=()=>{if(b){if(E!==null){const be=[...e];be[E]=b,t(be)}else t([...e,b]);w(!1),N(null),O(null)}},re=be=>{T(be),C(!0)},we=()=>{if(k!==null){const be=e.filter((Ae,ke)=>ke!==k);t(be),L({title:"删除成功",description:"提供商已从列表中移除"})}C(!1),T(null)},je=be=>{const Ae=new Set(H);Ae.has(be)?Ae.delete(be):Ae.add(be),V(Ae)},fe=()=>{if(H.size===We.length)V(new Set);else{const be=We.map((Ae,ke)=>e.findIndex(Qt=>Qt===We[ke]));V(new Set(be))}},Le=()=>{if(H.size===0){L({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}G(!0)},Oe=()=>{const be=e.filter((Ae,ke)=>!H.has(ke));t(be),V(new Set),G(!1),L({title:"批量删除成功",description:`已删除 ${H.size} 个提供商`})},We=e.filter(be=>{if(!B)return!0;const Ae=B.toLowerCase();return be.name.toLowerCase().includes(Ae)||be.base_url.toLowerCase().includes(Ae)||be.client_type.toLowerCase().includes(Ae)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[H.size>0&&i.jsxs(oe,{onClick:Le,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(It,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",H.size,")"]}),i.jsxs(oe,{onClick:()=>ge(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(oe,{onClick:ae,disabled:a||l||!d||m,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(sE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:a||l||m,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(iE,{className:"mr-2 h-4 w-4"}),m?"重启中...":d?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:d?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:d?I:J,children:d?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(rx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(ax,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(Wt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索提供商名称、URL 或类型...",value:B,onChange:be=>$(be.target.value),className:"pl-9"})]}),B&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",We.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:We.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:B?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):We.map((be,Ae)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:be.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:be.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ge(be,Ae),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>re(Ae),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:be.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:be.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:be.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:be.retry_interval})]})]})]},Ae))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-12",children:i.jsx(io,{checked:H.size===We.length&&We.length>0,onCheckedChange:fe})}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"基础URL"}),i.jsx(nt,{children:"客户端类型"}),i.jsx(nt,{className:"text-right",children:"最大重试"}),i.jsx(nt,{className:"text-right",children:"超时(秒)"}),i.jsx(nt,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:We.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:8,className:"text-center text-muted-foreground py-8",children:B?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):We.map((be,Ae)=>{const ke=e.findIndex(Qt=>Qt===be);return i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(io,{checked:H.has(ke),onCheckedChange:()=>je(ke)})}),i.jsx(Ge,{className:"font-medium",children:be.name}),i.jsx(Ge,{className:"max-w-xs truncate",title:be.base_url,children:be.base_url}),i.jsx(Ge,{children:be.client_type}),i.jsx(Ge,{className:"text-right",children:be.max_retry}),i.jsx(Ge,{className:"text-right",children:be.timeout}),i.jsx(Ge,{className:"text-right",children:be.retry_interval}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ge(be,ke),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>re(ke),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Ae)})})]})})]}),i.jsx(sr,{open:j,onOpenChange:w,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:E!==null?"编辑提供商":"添加提供商"}),i.jsx(vr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"name",children:"名称 *"}),i.jsx(Ne,{id:"name",value:b?.name||"",onChange:be=>N(Ae=>Ae?{...Ae,name:be.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ne,{id:"base_url",value:b?.base_url||"",onChange:be=>N(Ae=>Ae?{...Ae,base_url:be.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"api_key",type:M?"text":"password",value:b?.api_key||"",onChange:be=>N(Ae=>Ae?{...Ae,api_key:be.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:()=>R(!M),title:M?"隐藏密钥":"显示密钥",children:M?i.jsx(eC,{className:"h-4 w-4"}):i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:ee,title:"复制密钥",children:i.jsx(QN,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(Dt,{value:b?.client_type||"openai",onValueChange:be=>N(Ae=>Ae?{...Ae,client_type:be}:null),children:[i.jsx(Ot,{id:"client_type",children:i.jsx($t,{placeholder:"选择客户端类型"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"openai",children:"OpenAI"}),i.jsx(De,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ne,{id:"max_retry",type:"number",min:"0",value:b?.max_retry||2,onChange:be=>N(Ae=>Ae?{...Ae,max_retry:parseInt(be.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ne,{id:"timeout",type:"number",min:"1",value:b?.timeout||30,onChange:be=>N(Ae=>Ae?{...Ae,timeout:parseInt(be.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ne,{id:"retry_interval",type:"number",min:"1",value:b?.retry_interval||10,onChange:be=>N(Ae=>Ae?{...Ae,retry_interval:parseInt(be.target.value)}:null)})]})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>w(!1),children:"取消"}),i.jsx(oe,{onClick:Se,children:"保存"})]})]})}),i.jsx(bn,{open:A,onOpenChange:C,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除提供商 "',k!==null?e[k]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:we,children:"删除"})]})]})}),i.jsx(bn,{open:q,onOpenChange:G,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认批量删除"}),i.jsxs(hn,{children:["确定要删除选中的 ",H.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:Oe,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),g&&i.jsx(kE,{onRestartComplete:z,onRestartFailed:Y})]})}var ML=1,Hje=.9,Wje=.8,Vje=.17,u_=.1,d_=.999,Gje=.9999,Yje=.99,Kje=/[\\\/_+.#"@\[\(\{&]/,Xje=/[\\\/_+.#"@\[\(\{&]/g,Zje=/[\s-]/,pH=/[\s-]/g;function yC(e,t,n,r,a,s,l){if(s===t.length)return a===e.length?ML:Yje;var u=`${a},${s}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(s),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=yC(e,t,n,r,f+1,s+1,l),p>m&&(f===a?p*=ML:Kje.test(e.charAt(f-1))?(p*=Wje,x=e.slice(a,f-1).match(Xje),x&&a>0&&(p*=Math.pow(d_,x.length))):Zje.test(e.charAt(f-1))?(p*=Hje,j=e.slice(a,f-1).match(pH),j&&a>0&&(p*=Math.pow(d_,j.length))):(p*=Vje,a>0&&(p*=Math.pow(d_,f-a))),e.charAt(f)!==t.charAt(s)&&(p*=Gje)),(pp&&(p=g*u_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function PL(e){return e.toLowerCase().replace(pH," ")}function Qje(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,yC(e,t,PL(e),PL(t),0,0,{})}var Jje=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],go=Jje.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ff='[cmdk-group=""]',f_='[cmdk-group-items=""]',e1e='[cmdk-group-heading=""]',vH='[cmdk-item=""]',RL=`${vH}:not([aria-disabled="true"])`,xC="cmdk-item-select",Ic="data-value",t1e=(e,t,n)=>Qje(e,t,n),gH=y.createContext(void 0),tm=()=>y.useContext(gH),yH=y.createContext(void 0),RE=()=>y.useContext(yH),xH=y.createContext(void 0),bH=y.forwardRef((e,t)=>{let n=Lc(()=>{var z,Y;return{search:"",value:(Y=(z=e.value)!=null?z:e.defaultValue)!=null?Y:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=Lc(()=>new Set),a=Lc(()=>new Map),s=Lc(()=>new Map),l=Lc(()=>new Set),u=wH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:w=!1,vimBindings:b=!0,...N}=e,E=Gn(),O=Gn(),A=Gn(),C=y.useRef(null),k=f1e();jl(()=>{if(m!==void 0){let z=m.trim();n.current.value=z,T.emit()}},[m]),jl(()=>{k(6,V)},[]);let T=y.useMemo(()=>({subscribe:z=>(l.current.add(z),()=>l.current.delete(z)),snapshot:()=>n.current,setState:(z,Y,te)=>{var ae,ge,ee,Se;if(!Object.is(n.current[z],Y)){if(n.current[z]=Y,z==="search")H(),B(),k(1,$);else if(z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(A);re?re.focus():(ae=document.getElementById(E))==null||ae.focus()}if(k(7,()=>{var re;n.current.selectedItemId=(re=q())==null?void 0:re.id,T.emit()}),te||k(5,V),((ge=u.current)==null?void 0:ge.value)!==void 0){let re=Y??"";(Se=(ee=u.current).onValueChange)==null||Se.call(ee,re);return}}T.emit()}},emit:()=>{l.current.forEach(z=>z())}}),[]),M=y.useMemo(()=>({value:(z,Y,te)=>{var ae;Y!==((ae=s.current.get(z))==null?void 0:ae.value)&&(s.current.set(z,{value:Y,keywords:te}),n.current.filtered.items.set(z,R(Y,te)),k(2,()=>{B(),T.emit()}))},item:(z,Y)=>(r.current.add(z),Y&&(a.current.has(Y)?a.current.get(Y).add(z):a.current.set(Y,new Set([z]))),k(3,()=>{H(),B(),n.current.value||$(),T.emit()}),()=>{s.current.delete(z),r.current.delete(z),n.current.filtered.items.delete(z);let te=q();k(4,()=>{H(),te?.getAttribute("id")===z&&$(),T.emit()})}),group:z=>(a.current.has(z)||a.current.set(z,new Set),()=>{s.current.delete(z),a.current.delete(z)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:E,inputId:A,labelId:O,listInnerRef:C}),[]);function R(z,Y){var te,ae;let ge=(ae=(te=u.current)==null?void 0:te.filter)!=null?ae:t1e;return z?ge(z,n.current.search,Y):0}function B(){if(!n.current.search||u.current.shouldFilter===!1)return;let z=n.current.filtered.items,Y=[];n.current.filtered.groups.forEach(ae=>{let ge=a.current.get(ae),ee=0;ge.forEach(Se=>{let re=z.get(Se);ee=Math.max(re,ee)}),Y.push([ae,ee])});let te=C.current;G().sort((ae,ge)=>{var ee,Se;let re=ae.getAttribute("id"),we=ge.getAttribute("id");return((ee=z.get(we))!=null?ee:0)-((Se=z.get(re))!=null?Se:0)}).forEach(ae=>{let ge=ae.closest(f_);ge?ge.appendChild(ae.parentElement===ge?ae:ae.closest(`${f_} > *`)):te.appendChild(ae.parentElement===te?ae:ae.closest(`${f_} > *`))}),Y.sort((ae,ge)=>ge[1]-ae[1]).forEach(ae=>{var ge;let ee=(ge=C.current)==null?void 0:ge.querySelector(`${ff}[${Ic}="${encodeURIComponent(ae[0])}"]`);ee?.parentElement.appendChild(ee)})}function $(){let z=G().find(te=>te.getAttribute("aria-disabled")!=="true"),Y=z?.getAttribute(Ic);T.setState("value",Y||void 0)}function H(){var z,Y,te,ae;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ge=0;for(let ee of r.current){let Se=(Y=(z=s.current.get(ee))==null?void 0:z.value)!=null?Y:"",re=(ae=(te=s.current.get(ee))==null?void 0:te.keywords)!=null?ae:[],we=R(Se,re);n.current.filtered.items.set(ee,we),we>0&&ge++}for(let[ee,Se]of a.current)for(let re of Se)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=ge}function V(){var z,Y,te;let ae=q();ae&&(((z=ae.parentElement)==null?void 0:z.firstChild)===ae&&((te=(Y=ae.closest(ff))==null?void 0:Y.querySelector(e1e))==null||te.scrollIntoView({block:"nearest"})),ae.scrollIntoView({block:"nearest"}))}function q(){var z;return(z=C.current)==null?void 0:z.querySelector(`${vH}[aria-selected="true"]`)}function G(){var z;return Array.from(((z=C.current)==null?void 0:z.querySelectorAll(RL))||[])}function L(z){let Y=G()[z];Y&&T.setState("value",Y.getAttribute(Ic))}function D(z){var Y;let te=q(),ae=G(),ge=ae.findIndex(Se=>Se===te),ee=ae[ge+z];(Y=u.current)!=null&&Y.loop&&(ee=ge+z<0?ae[ae.length-1]:ge+z===ae.length?ae[0]:ae[ge+z]),ee&&T.setState("value",ee.getAttribute(Ic))}function U(z){let Y=q(),te=Y?.closest(ff),ae;for(;te&&!ae;)te=z>0?u1e(te,ff):d1e(te,ff),ae=te?.querySelector(RL);ae?T.setState("value",ae.getAttribute(Ic)):D(z)}let K=()=>L(G().length-1),J=z=>{z.preventDefault(),z.metaKey?K():z.altKey?U(1):D(1)},I=z=>{z.preventDefault(),z.metaKey?L(0):z.altKey?U(-1):D(-1)};return y.createElement(go.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:z=>{var Y;(Y=N.onKeyDown)==null||Y.call(N,z);let te=z.nativeEvent.isComposing||z.keyCode===229;if(!(z.defaultPrevented||te))switch(z.key){case"n":case"j":{b&&z.ctrlKey&&J(z);break}case"ArrowDown":{J(z);break}case"p":case"k":{b&&z.ctrlKey&&I(z);break}case"ArrowUp":{I(z);break}case"Home":{z.preventDefault(),L(0);break}case"End":{z.preventDefault(),K();break}case"Enter":{z.preventDefault();let ae=q();if(ae){let ge=new Event(xC);ae.dispatchEvent(ge)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:m1e},d),sx(e,z=>y.createElement(yH.Provider,{value:T},y.createElement(gH.Provider,{value:M},z))))}),n1e=y.forwardRef((e,t)=>{var n,r;let a=Gn(),s=y.useRef(null),l=y.useContext(xH),u=tm(),d=wH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;jl(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=jH(a,s,[e.value,e.children,s],e.keywords),p=RE(),g=so(k=>k.value&&k.value===m.current),x=so(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=s.current;if(!(!k||e.disabled))return k.addEventListener(xC,j),()=>k.removeEventListener(xC,j)},[x,e.onSelect,e.disabled]);function j(){var k,T;w(),(T=(k=d.current).onSelect)==null||T.call(k,m.current)}function w(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:b,value:N,onSelect:E,forceMount:O,keywords:A,...C}=e;return y.createElement(go.div,{ref:Ir(s,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!g,"data-disabled":!!b,"data-selected":!!g,onPointerMove:b||u.getDisablePointerSelection()?void 0:w,onClick:b?void 0:j},e.children)}),r1e=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,l=Gn(),u=y.useRef(null),d=y.useRef(null),f=Gn(),m=tm(),p=so(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);jl(()=>m.group(l),[]),jH(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(go.div,{ref:Ir(u,t),...s,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),sx(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(xH.Provider,{value:g},x))))}),a1e=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),s=so(l=>!l.search);return!n&&!s?null:y.createElement(go.div,{ref:Ir(a,t),...r,"cmdk-separator":"",role:"separator"})}),i1e=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,s=RE(),l=so(f=>f.search),u=so(f=>f.selectedItemId),d=tm();return y.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),y.createElement(go.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||s.setState("search",f.target.value),n?.(f.target.value)}})}),s1e=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=y.useRef(null),l=y.useRef(null),u=so(f=>f.selectedItemId),d=tm();return y.useEffect(()=>{if(l.current&&s.current){let f=l.current,m=s.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(go.div,{ref:Ir(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},sx(e,f=>y.createElement("div",{ref:Ir(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),o1e=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:l,...u}=e;return y.createElement(mE,{open:n,onOpenChange:r},y.createElement(pE,{container:l},y.createElement(Fy,{"cmdk-overlay":"",className:a}),y.createElement(Uy,{"aria-label":e.label,"cmdk-dialog":"",className:s},y.createElement(bH,{ref:t,...u}))))}),l1e=y.forwardRef((e,t)=>so(n=>n.filtered.count===0)?y.createElement(go.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),c1e=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return y.createElement(go.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},sx(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Fr=Object.assign(bH,{List:s1e,Item:n1e,Input:i1e,Group:r1e,Separator:a1e,Dialog:o1e,Empty:l1e,Loading:c1e});function u1e(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function d1e(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function wH(e){let t=y.useRef(e);return jl(()=>{t.current=e}),t}var jl=typeof window>"u"?y.useEffect:y.useLayoutEffect;function Lc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function so(e){let t=RE(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function jH(e,t,n,r=[]){let a=y.useRef(),s=tm();return jl(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());s.value(e,u,d),(l=t.current)==null||l.setAttribute(Ic,u),a.current=u}),a}var f1e=()=>{let[e,t]=y.useState(),n=Lc(()=>new Map);return jl(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function h1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function sx({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(h1e(t),{ref:t.ref},n(t.props.children)):n(t)}var m1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const SH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr,{ref:n,className:ce("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));SH.displayName=Fr.displayName;const _H=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Lr,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Fr.Input,{ref:n,className:ce("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));_H.displayName=Fr.Input.displayName;const NH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.List,{ref:n,className:ce("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));NH.displayName=Fr.List.displayName;const CH=y.forwardRef((e,t)=>i.jsx(Fr.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));CH.displayName=Fr.Empty.displayName;const OH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Group,{ref:n,className:ce("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));OH.displayName=Fr.Group.displayName;const p1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Separator,{ref:n,className:ce("-mx-1 h-px bg-border",e),...t}));p1e.displayName=Fr.Separator.displayName;const EH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Item,{ref:n,className:ce("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));EH.displayName=Fr.Item.displayName;function v1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:s}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(ro,{open:l,onOpenChange:u,children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",role:"combobox","aria-expanded":l,className:ce("w-full justify-between min-h-10 h-auto",s),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Ft,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Yh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(Dve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(ds,{className:"w-full p-0",align:"start",children:i.jsxs(SH,{children:[i.jsx(_H,{placeholder:"搜索...",className:"h-9"}),i.jsxs(NH,{children:[i.jsx(CH,{children:a}),i.jsx(OH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(EH,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:ce("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(ol,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function g1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,s]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(!1),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(null),[B,$]=y.useState(!1),[H,V]=y.useState(null),[q,G]=y.useState(""),[L,D]=y.useState(new Set),[U,K]=y.useState(!1),{toast:J}=yr(),I=y.useRef(null),z=y.useRef(null),Y=y.useRef(!0);y.useEffect(()=>{te()},[]);const te=async()=>{try{f(!0);const le=await Jc(),ue=le.models||[];t(ue),s(ue.map(Mn=>Mn.name));const Ve=le.api_providers||[];r(Ve.map(Mn=>Mn.name)),u(le.model_task_config||null),w(!1),Y.current=!1}catch(le){console.error("加载配置失败:",le)}finally{f(!1)}},ae=async()=>{try{N(!0),TE().catch(()=>{}),O(!0)}catch(le){console.error("重启失败:",le),O(!1),J({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),N(!1)}},ge=async()=>{try{p(!0),I.current&&clearTimeout(I.current),z.current&&clearTimeout(z.current);const le=await Jc();le.models=e,le.model_task_config=l,await Ig(le),w(!1),J({title:"保存成功",description:"正在重启麦麦..."}),await ae()}catch(le){console.error("保存配置失败:",le),J({title:"保存失败",description:le.message,variant:"destructive"}),p(!1)}},ee=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Se=()=>{O(!1),N(!1),J({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},re=y.useCallback(async le=>{if(!Y.current)try{x(!0),await gC("models",le),w(!1)}catch(ue){console.error("自动保存模型列表失败:",ue),w(!0)}finally{x(!1)}},[]),we=y.useCallback(async le=>{if(!Y.current)try{x(!0),await gC("model_task_config",le),w(!1)}catch(ue){console.error("自动保存任务配置失败:",ue),w(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!Y.current)return w(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{re(e)},2e3),()=>{I.current&&clearTimeout(I.current)}},[e,re]),y.useEffect(()=>{if(!(Y.current||!l))return w(!0),z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{we(l)},2e3),()=>{z.current&&clearTimeout(z.current)}},[l,we]);const je=async()=>{try{p(!0),I.current&&clearTimeout(I.current),z.current&&clearTimeout(z.current);const le=await Jc();le.models=e,le.model_task_config=l,await Ig(le),w(!1),J({title:"保存成功",description:"模型配置已保存"}),await te()}catch(le){console.error("保存配置失败:",le),J({title:"保存失败",description:le.message,variant:"destructive"})}finally{p(!1)}},fe=(le,ue)=>{T(le||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),R(ue),C(!0)},Le=()=>{if(!k)return;let le;M!==null?(le=[...e],le[M]=k):le=[...e,k],t(le),s(le.map(ue=>ue.name)),C(!1),T(null),R(null)},Oe=le=>{V(le),$(!0)},We=()=>{if(H!==null){const le=e.filter((ue,Ve)=>Ve!==H);t(le),s(le.map(ue=>ue.name)),J({title:"删除成功",description:"模型已从列表中移除"})}$(!1),V(null)},be=le=>{const ue=new Set(L);ue.has(le)?ue.delete(le):ue.add(le),D(ue)},Ae=()=>{if(L.size===Tt.length)D(new Set);else{const le=Tt.map((ue,Ve)=>e.findIndex(Mn=>Mn===Tt[Ve]));D(new Set(le))}},ke=()=>{if(L.size===0){J({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}K(!0)},Qt=()=>{const le=e.filter((ue,Ve)=>!L.has(Ve));t(le),s(le.map(ue=>ue.name)),D(new Set),K(!1),J({title:"批量删除成功",description:`已删除 ${L.size} 个模型`})},St=(le,ue,Ve)=>{l&&u({...l,[le]:{...l[le],[ue]:Ve}})},Tt=e.filter(le=>{if(!q)return!0;const ue=q.toLowerCase();return le.name.toLowerCase().includes(ue)||le.model_identifier.toLowerCase().includes(ue)||le.api_provider.toLowerCase().includes(ue)}),Sn=le=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(Ve=>Ve.includes(le)):!1;return d?i.jsx(Wt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:je,disabled:m||g||!j||b,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(sE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:m||g||b,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(iE,{className:"mr-2 h-4 w-4"}),b?"重启中...":j?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:j?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:j?ge:ae,children:j?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(rx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(ax,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(dl,{defaultValue:"models",className:"w-full",children:[i.jsxs(eo,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Rt,{value:"models",children:"模型配置"}),i.jsx(Rt,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(sn,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[L.size>0&&i.jsxs(oe,{onClick:ke,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(It,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",L.size,")"]}),i.jsxs(oe,{onClick:()=>fe(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索模型名称、标识符或提供商...",value:q,onChange:le=>G(le.target.value),className:"pl-9"})]}),q&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Tt.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Tt.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:q?"未找到匹配的模型":"暂无模型配置"}):Tt.map((le,ue)=>{const Ve=Sn(le.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:le.name}),i.jsx(Ft,{variant:Ve?"default":"secondary",className:Ve?"bg-green-600 hover:bg-green-700":"",children:Ve?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:le.model_identifier,children:le.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>fe(le,ue),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Oe(ue),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:le.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:le.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",le.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",le.price_out,"/M"]})]})]})]},ue)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-12",children:i.jsx(io,{checked:L.size===Tt.length&&Tt.length>0,onCheckedChange:Ae})}),i.jsx(nt,{className:"w-24",children:"使用状态"}),i.jsx(nt,{children:"模型名称"}),i.jsx(nt,{children:"模型标识符"}),i.jsx(nt,{children:"提供商"}),i.jsx(nt,{className:"text-right",children:"输入价格"}),i.jsx(nt,{className:"text-right",children:"输出价格"}),i.jsx(nt,{className:"text-center",children:"强制流式"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:Tt.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:9,className:"text-center text-muted-foreground py-8",children:q?"未找到匹配的模型":"暂无模型配置"})}):Tt.map((le,ue)=>{const Ve=e.findIndex($l=>$l===le),Mn=Sn(le.name);return i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(io,{checked:L.has(Ve),onCheckedChange:()=>be(Ve)})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:Mn?"default":"secondary",className:Mn?"bg-green-600 hover:bg-green-700":"",children:Mn?"已使用":"未使用"})}),i.jsx(Ge,{className:"font-medium",children:le.name}),i.jsx(Ge,{className:"max-w-xs truncate",title:le.model_identifier,children:le.model_identifier}),i.jsx(Ge,{children:le.api_provider}),i.jsxs(Ge,{className:"text-right",children:["¥",le.price_in,"/M"]}),i.jsxs(Ge,{className:"text-right",children:["¥",le.price_out,"/M"]}),i.jsx(Ge,{className:"text-center",children:le.force_stream_mode?"是":"否"}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>fe(le,Ve),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Oe(Ve),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},ue)})})]})})]}),i.jsxs(sn,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx($a,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(le,ue)=>St("utils",le,ue)}),i.jsx($a,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(le,ue)=>St("utils_small",le,ue)}),i.jsx($a,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(le,ue)=>St("tool_use",le,ue)}),i.jsx($a,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(le,ue)=>St("replyer",le,ue)}),i.jsx($a,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(le,ue)=>St("planner",le,ue)}),i.jsx($a,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(le,ue)=>St("vlm",le,ue),hideTemperature:!0}),i.jsx($a,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(le,ue)=>St("voice",le,ue),hideTemperature:!0,hideMaxTokens:!0}),i.jsx($a,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(le,ue)=>St("embedding",le,ue),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx($a,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(le,ue)=>St("lpmm_entity_extract",le,ue)}),i.jsx($a,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(le,ue)=>St("lpmm_rdf_build",le,ue)}),i.jsx($a,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(le,ue)=>St("lpmm_qa",le,ue)})]})]})]})]}),i.jsx(sr,{open:A,onOpenChange:C,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:M!==null?"编辑模型":"添加模型"}),i.jsx(vr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ne,{id:"model_name",value:k?.name||"",onChange:le=>T(ue=>ue?{...ue,name:le.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ne,{id:"model_identifier",value:k?.model_identifier||"",onChange:le=>T(ue=>ue?{...ue,model_identifier:le.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(Dt,{value:k?.api_provider||"",onValueChange:le=>T(ue=>ue?{...ue,api_provider:le}:null),children:[i.jsx(Ot,{id:"api_provider",children:i.jsx($t,{placeholder:"选择提供商"})}),i.jsx(Et,{children:n.map(le=>i.jsx(De,{value:le,children:le},le))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ne,{id:"price_in",type:"number",step:"0.1",min:"0",value:k?.price_in||0,onChange:le=>T(ue=>ue?{...ue,price_in:parseFloat(le.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ne,{id:"price_out",type:"number",step:"0.1",min:"0",value:k?.price_out||0,onChange:le=>T(ue=>ue?{...ue,price_out:parseFloat(le.target.value)}:null)})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"force_stream_mode",checked:k?.force_stream_mode||!1,onCheckedChange:le=>T(ue=>ue?{...ue,force_stream_mode:le}:null)}),i.jsx(Q,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>C(!1),children:"取消"}),i.jsx(oe,{onClick:Le,children:"保存"})]})]})}),i.jsx(bn,{open:B,onOpenChange:$,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除模型 "',H!==null?e[H]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:We,children:"删除"})]})]})}),i.jsx(bn,{open:U,onOpenChange:K,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认批量删除"}),i.jsxs(hn,{children:["确定要删除选中的 ",L.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:Qt,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),E&&i.jsx(kE,{onRestartComplete:ee,onRestartFailed:Se})]})})}function $a({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:s=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"模型列表"}),i.jsx(v1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!s&&i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"温度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:n.temperature??.3,onChange:d=>{const f=parseFloat(d.target.value);!isNaN(f)&&f>=0&&f<=1&&a("temperature",f)},className:"w-20 h-8 text-sm"})]}),i.jsx(Wy,{value:[n.temperature??.3],onValueChange:d=>a("temperature",d[0]),min:0,max:1,step:.1,className:"w-full"})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"最大 Token"}),i.jsx(Ne,{type:"number",step:"1",min:"1",value:n.max_tokens??1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const yo="/api/webui/emoji";async function y1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await rt(`${yo}/list?${t}`,{headers:dt()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function x1e(e){const t=await rt(`${yo}/${e}`,{headers:dt()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function b1e(e,t){const n=await rt(`${yo}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function w1e(e){const t=await rt(`${yo}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function j1e(){const e=await rt(`${yo}/stats/summary`,{headers:dt()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function S1e(e){const t=await rt(`${yo}/${e}/register`,{method:"POST",headers:dt()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function _1e(e){const t=await rt(`${yo}/${e}/ban`,{method:"POST",headers:dt()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function bC(e){const t=localStorage.getItem("access-token");return`${yo}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}function N1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,s]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m]=y.useState(20),[p,g]=y.useState(""),[x,j]=y.useState("all"),[w,b]=y.useState("all"),[N,E]=y.useState("all"),[O,A]=y.useState(null),[C,k]=y.useState(!1),[T,M]=y.useState(!1),[R,B]=y.useState(!1),{toast:$}=yr(),H=y.useCallback(async()=>{try{s(!0);const I=await y1e({page:l,page_size:m,search:p||void 0,is_registered:x==="all"?void 0:x==="registered",is_banned:w==="all"?void 0:w==="banned",format:N==="all"?void 0:N,sort_by:"usage_count",sort_order:"desc"});t(I.data),f(I.total)}catch(I){const z=I instanceof Error?I.message:"加载表情包列表失败";$({title:"错误",description:z,variant:"destructive"})}finally{s(!1)}},[l,m,p,x,w,N,$]),V=async()=>{try{const I=await j1e();r(I.data)}catch(I){console.error("加载统计数据失败:",I)}};y.useEffect(()=>{H()},[H]),y.useEffect(()=>{V()},[]);const q=async I=>{try{const z=await x1e(I.id);A(z.data),k(!0)}catch(z){const Y=z instanceof Error?z.message:"加载详情失败";$({title:"错误",description:Y,variant:"destructive"})}},G=I=>{A(I),M(!0)},L=I=>{A(I),B(!0)},D=async()=>{if(O)try{await w1e(O.id),$({title:"成功",description:"表情包已删除"}),B(!1),A(null),H(),V()}catch(I){const z=I instanceof Error?I.message:"删除失败";$({title:"错误",description:z,variant:"destructive"})}},U=async I=>{try{await S1e(I.id),$({title:"成功",description:"表情包已注册"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"注册失败";$({title:"错误",description:Y,variant:"destructive"})}},K=async I=>{try{await _1e(I.id),$({title:"成功",description:"表情包已封禁"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"封禁失败";$({title:"错误",description:Y,variant:"destructive"})}},J=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"总数"}),i.jsx(vt,{className:"text-2xl",children:n.total})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"已注册"}),i.jsx(vt,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"已封禁"}),i.jsx(vt,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"未注册"}),i.jsx(vt,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsxs(vt,{className:"flex items-center gap-2",children:[i.jsx(tC,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(Ct,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"描述或哈希值...",value:p,onChange:I=>{g(I.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"注册状态"}),i.jsxs(Dt,{value:x,onValueChange:I=>{j(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"registered",children:"已注册"}),i.jsx(De,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"封禁状态"}),i.jsxs(Dt,{value:w,onValueChange:I=>{b(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"banned",children:"已封禁"}),i.jsx(De,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"格式"}),i.jsxs(Dt,{value:N,onValueChange:I=>{E(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),J.map(I=>i.jsxs(De,{value:I,children:[I.toUpperCase()," (",n?.formats[I],")"]},I))]})]})]})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(oe,{variant:"outline",size:"sm",onClick:H,disabled:a,children:[i.jsx(is,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"表情包列表"}),i.jsxs(Wn,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-16",children:"预览"}),i.jsx(nt,{children:"描述"}),i.jsx(nt,{children:"格式"}),i.jsx(nt,{children:"情绪标签"}),i.jsx(nt,{className:"text-center",children:"状态"}),i.jsx(nt,{className:"text-right",children:"使用次数"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(I=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:bC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const te=Y.parentElement;te&&(te.innerHTML='')}})})}),i.jsx(Ge,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[I.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:"outline",children:I.format.toUpperCase()})}),i.jsx(Ge,{children:i.jsx(DL,{emotions:I.emotion})}),i.jsx(Ge,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[I.is_registered&&i.jsxs(Ft,{variant:"default",className:"bg-green-600",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Ft,{variant:"destructive",children:[i.jsx(ZN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Ge,{className:"text-right font-mono",children:I.usage_count}),i.jsx(Ge,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>q(I),children:[i.jsx(Mu,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>G(I),children:[i.jsx(Ru,{className:"h-4 w-4 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>U(I),className:"text-green-600 hover:text-green-700",children:[i.jsx(Pr,{className:"h-4 w-4 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>K(I),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(ZI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>L(I),className:"text-red-600 hover:text-red-700",children:[i.jsx(It,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},I.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(I=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:bC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const te=Y.parentElement;te&&(te.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[I.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Ft,{variant:"outline",className:"text-xs flex-shrink-0",children:I.format.toUpperCase()}),I.is_registered&&i.jsxs(Ft,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Ft,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(ZN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",I.usage_count]})]}),I.emotion&&I.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(DL,{emotions:I.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>q(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Mu,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>G(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>U(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>K(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(ZI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>L(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},I.id))}),d>m&&i.jsxs("div",{className:"flex items-center justify-between mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(I=>Math.max(1,I-1)),disabled:l===1,children:[i.jsx(nE,{className:"h-4 w-4"}),"上一页"]}),i.jsxs("div",{className:"text-sm",children:["第 ",l," / ",Math.ceil(d/m)," 页"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(I=>I+1),disabled:l>=Math.ceil(d/m),children:["下一页",i.jsx(rE,{className:"h-4 w-4"})]})]})]})]})]}),i.jsx(C1e,{emoji:O,open:C,onOpenChange:k}),i.jsx(O1e,{emoji:O,open:T,onOpenChange:M,onSuccess:()=>{H(),V()}})]})}),i.jsx(sr,{open:R,onOpenChange:B,children:i.jsxs(Kn,{children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"确认删除"}),i.jsx(vr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>B(!1),children:"取消"}),i.jsx(oe,{variant:"destructive",onClick:D,children:"删除"})]})]})})]})}function C1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsx(Xn,{children:i.jsx(Zn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:bC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const s=a.target;s.style.display="none";const l=s.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Ft,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:(()=>{const a=e.emotion?e.emotion.split(/[,,]/).map(s=>s.trim()).filter(Boolean):[];return a.length>0?a.map((s,l)=>i.jsx(Ft,{variant:"secondary",children:s},l)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})()})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Ft,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Ft,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Ft,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function O1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=yr();y.useEffect(()=>{e&&(s(e.description||""),u(e.emotion||""),f(e.is_registered),p(e.is_banned))},[e]);const w=async()=>{if(e)try{x(!0);const b=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean).join(",");await b1e(e.id,{description:a||void 0,emotion:b||void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(b){const N=b instanceof Error?b.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表情包"}),i.jsx(vr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(Q,{children:"描述"}),i.jsx(Xt,{value:a,onChange:b=>s(b.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(Q,{children:"情绪标签"}),i.jsx(Ne,{value:l,onChange:b=>u(b.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"is_registered",checked:d,onCheckedChange:b=>f(b===!0)}),i.jsx(Q,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"is_banned",checked:m,onCheckedChange:b=>p(b===!0)}),i.jsx(Q,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:w,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function DL({emotions:e}){const t=e?e.split(/[,,]/).map(s=>s.trim()).filter(Boolean):[];if(t.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const n=(s,l=6)=>s.length<=l?s:s.slice(0,l)+"...",r=t.slice(0,3),a=t.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[r.map((s,l)=>i.jsx(Ft,{variant:"secondary",className:"text-xs flex-shrink-0",title:s,children:n(s)},l)),a>0&&i.jsxs(Ft,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${a} 个标签: ${t.slice(3).join(", ")}`,children:["+",a]})]})}const rd="/api/webui/expression";async function E1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await rt(`${rd}/list?${t}`,{headers:dt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function A1e(e){const t=await rt(`${rd}/${e}`,{headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function T1e(e){const t=await rt(`${rd}/`,{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function k1e(e,t){const n=await rt(`${rd}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function M1e(e){const t=await rt(`${rd}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function P1e(){const e=await rt(`${rd}/stats/summary`,{headers:dt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function R1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(null),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(!1),[O,A]=y.useState(null),[C,k]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:T}=yr(),M=async()=>{try{r(!0);const q=await E1e({page:l,page_size:d,search:f||void 0});t(q.data),s(q.total)}catch(q){T({title:"加载失败",description:q instanceof Error?q.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},R=async()=>{try{const q=await P1e();k(q.data)}catch(q){console.error("加载统计数据失败:",q)}};y.useEffect(()=>{M(),R()},[l,d,f]);const B=async q=>{try{const G=await A1e(q.id);g(G.data),j(!0)}catch(G){T({title:"加载详情失败",description:G instanceof Error?G.message:"无法加载表达方式详情",variant:"destructive"})}},$=q=>{g(q),b(!0)},H=async q=>{try{await M1e(q.id),T({title:"删除成功",description:`已删除表达方式: ${q.situation}`}),A(null),M(),R()}catch(G){T({title:"删除失败",description:G instanceof Error?G.message:"无法删除表达方式",variant:"destructive"})}},V=q=>q?new Date(q*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Gh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(oe,{onClick:()=>E(!0),className:"gap-2",children:[i.jsx(ir,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:C.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:C.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:C.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(Q,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索情境、风格或上下文...",value:f,onChange:q=>m(q.target.value),className:"pl-9"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"情境"}),i.jsx(nt,{children:"风格"}),i.jsx(nt,{children:"聊天ID"}),i.jsx(nt,{children:"最后活跃"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n?i.jsx(An,{children:i.jsx(Ge,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(q=>i.jsxs(An,{children:[i.jsx(Ge,{className:"font-medium max-w-xs truncate",children:q.situation}),i.jsx(Ge,{className:"max-w-xs truncate",children:q.style}),i.jsx(Ge,{className:"font-mono text-sm",children:q.chat_id}),i.jsx(Ge,{className:"text-sm text-muted-foreground",children:V(q.last_active_time)}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>B(q),children:i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>$(q),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>A(q),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},q.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(q=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:q.situation,children:q.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:q.style,children:q.style})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:q.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:V(q.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>B(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Va,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>$(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>A(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},q.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(D1e,{expression:p,open:x,onOpenChange:j}),i.jsx($1e,{open:N,onOpenChange:E,onSuccess:()=>{M(),R(),E(!1)}}),i.jsx(I1e,{expression:p,open:w,onOpenChange:b,onSuccess:()=>{M(),R(),b(!1)}}),i.jsx(bn,{open:!!O,onOpenChange:()=>A(null),children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除表达方式 "',O?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>O&&H(O),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function D1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"表达方式详情"}),i.jsx(vr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Mc,{label:"情境",value:e.situation}),i.jsx(Mc,{label:"风格",value:e.style}),i.jsx(Mc,{icon:Eg,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Mc,{icon:Eg,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Mc,{icon:ll,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Mc,{icon:ll,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx(Br,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Mc({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function $1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[s,l]=y.useState(!1),{toast:u}=yr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await T1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"新增表达方式"}),i.jsx(vr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"context",children:"上下文"}),i.jsx(Xt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Xt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(oe,{onClick:d,disabled:s,children:s?"创建中...":"创建"})]})]})})}function I1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=yr();y.useEffect(()=>{e&&s({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await k1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表达方式"}),i.jsx(vr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ne,{id:"edit_situation",value:a.situation||"",onChange:m=>s({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ne,{id:"edit_style",value:a.style||"",onChange:m=>s({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ne,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>s({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Xt,{id:"edit_context",value:a.context||"",onChange:m=>s({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Xt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>s({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}const nm="/api/webui/person";async function L1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await rt(`${nm}/list?${t}`,{headers:dt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function B1e(e){const t=await rt(`${nm}/${e}`,{headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function z1e(e,t){const n=await rt(`${nm}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function q1e(e){const t=await rt(`${nm}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function F1e(){const e=await rt(`${nm}/stats/summary`,{headers:dt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function U1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(void 0),[x,j]=y.useState(void 0),[w,b]=y.useState(null),[N,E]=y.useState(!1),[O,A]=y.useState(!1),[C,k]=y.useState(null),[T,M]=y.useState({total:0,known:0,unknown:0,platforms:{}}),{toast:R}=yr(),B=async()=>{try{r(!0);const D=await L1e({page:l,page_size:d,search:f||void 0,is_known:p,platform:x});t(D.data),s(D.total)}catch(D){R({title:"加载失败",description:D instanceof Error?D.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},$=async()=>{try{const D=await F1e();M(D.data)}catch(D){console.error("加载统计数据失败:",D)}};y.useEffect(()=>{B(),$()},[l,d,f,p,x]);const H=async D=>{try{const U=await B1e(D.person_id);b(U.data),E(!0)}catch(U){R({title:"加载详情失败",description:U instanceof Error?U.message:"无法加载人物详情",variant:"destructive"})}},V=D=>{b(D),A(!0)},q=async D=>{try{await q1e(D.person_id),R({title:"删除成功",description:`已删除人物信息: ${D.person_name||D.nickname||D.user_id}`}),k(null),B(),$()}catch(U){R({title:"删除失败",description:U instanceof Error?U.message:"无法删除人物信息",variant:"destructive"})}},G=y.useMemo(()=>Object.keys(T.platforms),[T.platforms]),L=D=>D?new Date(D*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(tye,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:T.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:T.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:T.unknown})]})]}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(Q,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:f,onChange:D=>m(D.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(Dt,{value:p===void 0?"all":p.toString(),onValueChange:D=>{g(D==="all"?void 0:D==="true"),u(1)},children:[i.jsx(Ot,{id:"filter-known",className:"mt-1.5",children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"true",children:"已认识"}),i.jsx(De,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(Dt,{value:x||"all",onValueChange:D=>{j(D==="all"?void 0:D),u(1)},children:[i.jsx(Ot,{id:"filter-platform",className:"mt-1.5",children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部平台"}),G.map(D=>i.jsxs(De,{value:D,children:[D," (",T.platforms[D],")"]},D))]})]})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"状态"}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"昵称"}),i.jsx(nt,{children:"平台"}),i.jsx(nt,{children:"用户ID"}),i.jsx(nt,{children:"最后更新"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(D=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"})}),i.jsx(Ge,{className:"font-medium",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Ge,{children:D.nickname||"-"}),i.jsx(Ge,{children:D.platform}),i.jsx(Ge,{className:"font-mono text-sm",children:D.user_id}),i.jsx(Ge,{className:"text-sm text-muted-foreground",children:L(D.last_know)}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>H(D),children:i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>V(D),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>k(D),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},D.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(D=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsx("div",{className:"flex items-start justify-between gap-2",children:i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),D.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",D.nickname]})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:D.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:D.user_id,children:D.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:L(D.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>H(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Va,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>V(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>k(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},D.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(H1e,{person:w,open:N,onOpenChange:E}),i.jsx(W1e,{person:w,open:O,onOpenChange:A,onSuccess:()=>{B(),$(),A(!1)}}),i.jsx(bn,{open:!!C,onOpenChange:()=>k(null),children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除人物信息 "',C?.person_name||C?.nickname||C?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>C&&q(C),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function H1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"人物详情"}),i.jsxs(vr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Gi,{icon:gF,label:"人物名称",value:e.person_name}),i.jsx(Gi,{icon:Gh,label:"昵称",value:e.nickname}),i.jsx(Gi,{icon:Eg,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Gi,{icon:Eg,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Gi,{label:"平台",value:e.platform}),i.jsx(Gi,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,s)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},s))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Gi,{icon:ll,label:"认识时间",value:r(e.know_times)}),i.jsx(Gi,{icon:ll,label:"首次记录",value:r(e.know_since)}),i.jsx(Gi,{icon:ll,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx(Br,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Gi({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function W1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=yr();y.useEffect(()=>{e&&s({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await z1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑人物信息"}),i.jsxs(vr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ne,{id:"person_name",value:a.person_name||"",onChange:m=>s({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:a.nickname||"",onChange:m=>s({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Xt,{id:"name_reason",value:a.name_reason||"",onChange:m=>s({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Xt,{id:"memory_points",value:a.memory_points||"",onChange:m=>s({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(lt,{id:"is_known",checked:a.is_known,onCheckedChange:m=>s({...a,is_known:m})})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function V1e(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const G1e={},xf={};function Jo(e,t){try{const r=(G1e[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in xf?xf[r]:$L(r,r.split(":"))}catch{if(e in xf)return xf[e];const n=e?.match(Y1e);return n?$L(e,n.slice(1)):NaN}}const Y1e=/([+-]\d\d):?(\d\d)?/;function $L(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return xf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class hi extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Jo(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),AH(this),wC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new hi(...n,t):new hi(Date.now(),t)}withTimeZone(t){return new hi(+this,t)}getTimezoneOffset(){const t=-Jo(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),wC(this),+this}[Symbol.for("constructDateFrom")](t){return new hi(+new Date(t),this.timeZone)}}const IL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!IL.test(e))return;const t=e.replace(IL,"$1UTC");hi.prototype[t]&&(e.startsWith("get")?hi.prototype[e]=function(){return this.internal[t]()}:(hi.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),K1e(this),+this},hi.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),wC(this),+this}))});function wC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Jo(e.timeZone,e)*60))}function K1e(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),AH(e)}function AH(e){const t=Jo(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),l=a-s,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(Jo(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=Jo(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),w=-new Date(+e).getTimezoneOffset()-x,b=x!==n,N=w-d;if(b&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const E=Jo(e.timeZone,e),O=E>0?Math.floor(E):Math.ceil(E),A=x-O;A&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+A),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+A))}}class dr extends hi{static tz(t,...n){return n.length?new dr(...n,t):new dr(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${V1e(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new dr(+this,t)}[Symbol.for("constructDateFrom")](t){return new dr(+new Date(t),this.timeZone)}}const TH=6048e5,X1e=864e5,LL=Symbol.for("constructDateFrom");function kn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&LL in e?e[LL](t):e instanceof Date?new e.constructor(t):new Date(t)}function Ut(e,t){return kn(t||e,e)}function kH(e,t,n){const r=Ut(e,n?.in);return isNaN(t)?kn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function MH(e,t,n){const r=Ut(e,n?.in);if(isNaN(t))return kn(e,NaN);if(!t)return r;const a=r.getDate(),s=kn(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const l=s.getDate();return a>=l?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}let Z1e={};function rm(){return Z1e}function oo(e,t){const n=rm(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Ut(e,t?.in),s=a.getDay(),l=(s=s.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function BL(e){const t=Ut(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Rl(e,...t){const n=kn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function _h(e,t){const n=Ut(e,t?.in);return n.setHours(0,0,0,0),n}function RH(e,t,n){const[r,a]=Rl(n?.in,e,t),s=_h(r),l=_h(a),u=+s-BL(s),d=+l-BL(l);return Math.round((u-d)/X1e)}function Q1e(e,t){const n=PH(e,t),r=kn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Sh(r)}function J1e(e,t,n){return kH(e,t*7,n)}function eSe(e,t,n){return MH(e,t*12,n)}function tSe(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=kn.bind(null,a));const s=Ut(a,r);(!n||n{!r&&typeof a=="object"&&(r=kn.bind(null,a));const s=Ut(a,r);(!n||n>s||isNaN(+s))&&(n=s)}),kn(r,n||NaN)}function rSe(e,t,n){const[r,a]=Rl(n?.in,e,t);return+_h(r)==+_h(a)}function DH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function aSe(e){return!(!DH(e)&&typeof e!="number"||isNaN(+Ut(e)))}function iSe(e,t,n){const[r,a]=Rl(n?.in,e,t),s=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return s*12+l}function sSe(e,t){const n=Ut(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function $H(e,t){const[n,r]=Rl(e,t.start,t.end);return{start:n,end:r}}function oSe(e,t){const{start:n,end:r}=$H(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=s;)d.push(kn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function lSe(e,t){const n=Ut(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function cSe(e,t){const n=Ut(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function IH(e,t){const n=Ut(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function uSe(e,t){const{start:n,end:r}=$H(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=s;)d.push(kn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function LH(e,t){const n=rm(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Ut(e,t?.in),s=a.getDay(),l=(s{let r;const a=fSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function eu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const mSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},pSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},vSe={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},gSe={date:eu({formats:mSe,defaultWidth:"full"}),time:eu({formats:pSe,defaultWidth:"full"}),dateTime:eu({formats:vSe,defaultWidth:"full"})},ySe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},xSe=(e,t,n,r)=>ySe[e];function oi(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const bSe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},wSe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},jSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},SSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},_Se={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},NSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},CSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},OSe={ordinalNumber:CSe,era:oi({values:bSe,defaultWidth:"wide"}),quarter:oi({values:wSe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:oi({values:jSe,defaultWidth:"wide"}),day:oi({values:SSe,defaultWidth:"wide"}),dayPeriod:oi({values:_Se,defaultWidth:"wide",formattingValues:NSe,defaultFormattingWidth:"wide"})};function li(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const l=s[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?ASe(u,p=>p.test(l)):ESe(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function ESe(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function ASe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const TSe=/^(\d+)(th|st|nd|rd)?/i,kSe=/\d+/i,MSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},PSe={any:[/^b/i,/^(a|c)/i]},RSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},DSe={any:[/1/i,/2/i,/3/i,/4/i]},$Se={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ISe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},LSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},BSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},zSe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},qSe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},FSe={ordinalNumber:BH({matchPattern:TSe,parsePattern:kSe,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:MSe,defaultMatchWidth:"wide",parsePatterns:PSe,defaultParseWidth:"any"}),quarter:li({matchPatterns:RSe,defaultMatchWidth:"wide",parsePatterns:DSe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:$Se,defaultMatchWidth:"wide",parsePatterns:ISe,defaultParseWidth:"any"}),day:li({matchPatterns:LSe,defaultMatchWidth:"wide",parsePatterns:BSe,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:zSe,defaultMatchWidth:"any",parsePatterns:qSe,defaultParseWidth:"any"})},DE={code:"en-US",formatDistance:hSe,formatLong:gSe,formatRelative:xSe,localize:OSe,match:FSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function USe(e,t){const n=Ut(e,t?.in);return RH(n,IH(n))+1}function zH(e,t){const n=Ut(e,t?.in),r=+Sh(n)-+Q1e(n);return Math.round(r/TH)+1}function qH(e,t){const n=Ut(e,t?.in),r=n.getFullYear(),a=rm(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=kn(t?.in||e,0);l.setFullYear(r+1,0,s),l.setHours(0,0,0,0);const u=oo(l,t),d=kn(t?.in||e,0);d.setFullYear(r,0,s),d.setHours(0,0,0,0);const f=oo(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function HSe(e,t){const n=rm(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=qH(e,t),s=kn(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),oo(s,t)}function FH(e,t){const n=Ut(e,t?.in),r=+oo(n,t)-+HSe(n,t);return Math.round(r/TH)+1}function Pt(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Fs={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Pt(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Pt(n+1,2)},d(e,t){return Pt(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Pt(e.getHours()%12||12,t.length)},H(e,t){return Pt(e.getHours(),t.length)},m(e,t){return Pt(e.getMinutes(),t.length)},s(e,t){return Pt(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return Pt(a,t.length)}},Pc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},zL={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Fs.y(e,t)},Y:function(e,t,n,r){const a=qH(e,r),s=a>0?a:1-a;if(t==="YY"){const l=s%100;return Pt(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):Pt(s,t.length)},R:function(e,t){const n=PH(e);return Pt(n,t.length)},u:function(e,t){const n=e.getFullYear();return Pt(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Pt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Pt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Fs.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Pt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=FH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):Pt(a,t.length)},I:function(e,t,n){const r=zH(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Pt(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Fs.d(e,t)},D:function(e,t,n){const r=USe(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Pt(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return Pt(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return Pt(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return Pt(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Pc.noon:r===0?a=Pc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Pc.evening:r>=12?a=Pc.afternoon:r>=4?a=Pc.morning:a=Pc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Fs.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Fs.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Pt(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Pt(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Fs.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Fs.s(e,t)},S:function(e,t){return Fs.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return FL(r);case"XXXX":case"XX":return Vo(r);case"XXXXX":case"XXX":default:return Vo(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return FL(r);case"xxxx":case"xx":return Vo(r);case"xxxxx":case"xxx":default:return Vo(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+qL(r,":");case"OOOO":default:return"GMT"+Vo(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+qL(r,":");case"zzzz":default:return"GMT"+Vo(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Pt(r,t.length)},T:function(e,t,n){return Pt(+e,t.length)}};function qL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+Pt(s,2)}function FL(e,t){return e%60===0?(e>0?"-":"+")+Pt(Math.abs(e)/60,2):Vo(e,t)}function Vo(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Pt(Math.trunc(r/60),2),s=Pt(r%60,2);return n+a+t+s}const UL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},UH=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},WSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return UL(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",UL(r,t)).replace("{{time}}",UH(a,t))},VSe={p:UH,P:WSe},GSe=/^D+$/,YSe=/^Y+$/,KSe=["D","DD","YY","YYYY"];function XSe(e){return GSe.test(e)}function ZSe(e){return YSe.test(e)}function QSe(e,t,n){const r=JSe(e,t,n);if(console.warn(r),KSe.includes(e))throw new RangeError(r)}function JSe(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const e_e=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,t_e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,n_e=/^'([^]*?)'?$/,r_e=/''/g,a_e=/[a-zA-Z]/;function pv(e,t,n){const r=rm(),a=n?.locale??r.locale??DE,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=Ut(e,n?.in);if(!aSe(u))throw new RangeError("Invalid time value");let d=t.match(t_e).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=VSe[p];return g(m,a.formatLong)}return m}).join("").match(e_e).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:i_e(m)};if(zL[p])return{isToken:!0,value:m};if(p.match(a_e))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:s,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&ZSe(p)||!n?.useAdditionalDayOfYearTokens&&XSe(p))&&QSe(p,t,String(e));const g=zL[p[0]];return g(u,p,a.localize,f)}).join("")}function i_e(e){const t=e.match(n_e);return t?t[1].replace(r_e,"'"):e}function s_e(e,t){const n=Ut(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=kn(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function o_e(e,t){return Ut(e,t?.in).getMonth()}function l_e(e,t){return Ut(e,t?.in).getFullYear()}function c_e(e,t){return+Ut(e)>+Ut(t)}function u_e(e,t){return+Ut(e)<+Ut(t)}function d_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return+oo(r,n)==+oo(a,n)}function f_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function h_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function m_e(e,t,n){const r=Ut(e,n?.in),a=r.getFullYear(),s=r.getDate(),l=kn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=s_e(l);return r.setMonth(t,Math.min(s,u)),r}function p_e(e,t,n){const r=Ut(e,n?.in);return isNaN(+r)?kn(e,NaN):(r.setFullYear(t),r)}const HL=5,v_e=4;function g_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),s=t.addDays(a,HL*7-1);return t.getMonth(e)===t.getMonth(s)?HL:v_e}function HH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function y_e(e,t){const n=HH(e,t),r=g_e(e,t);return t.addDays(n,r*7-1)}class oa{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?dr.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,s)=>this.overrides?.newDate?this.overrides.newDate(r,a,s):this.options.timeZone?new dr(r,a,s,this.options.timeZone):new Date(r,a,s),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):kH(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):MH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):J1e(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):eSe(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):RH(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):iSe(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):oSe(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):uSe(r),s=new Set(a.map(u=>this.getYear(u)));if(s.size===a.length)return a;const l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):y_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):dSe(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):sSe(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):LH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):cSe(r),this.format=(r,a,s)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):pv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):zH(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):o_e(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):l_e(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):FH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):c_e(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):u_e(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):DH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):rSe(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):f_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):h_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):tSe(r),this.min=r=>this.overrides?.min?this.overrides.min(r):nSe(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):m_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):p_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):HH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):_h(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):Sh(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):lSe(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):oo(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):IH(r),this.options={locale:DE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&oa.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,s=n?.code;if(s&&oa.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}oa.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Ci=new oa;class WH{constructor(t,n,r=Ci){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class x_e{constructor(t,n){this.date=t,this.weeks=n}}class b_e{constructor(t,n){this.days=n,this.weekNumber=t}}function w_e(e){return W.createElement("button",{...e})}function j_e(e){return W.createElement("span",{...e})}function S_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function __e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function N_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var Be;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(Be||(Be={}));var on;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(on||(on={}));var Ua;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Ua||(Ua={}));var Jr;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(Jr||(Jr={}));function C_e(e){const{options:t,className:n,components:r,classNames:a,...s}=e,l=[a[Be.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===s.value);return W.createElement("span",{"data-disabled":s.disabled,className:a[Be.DropdownRoot]},W.createElement(r.Select,{className:l,...s},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[Be.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[Be.Chevron]})))}function O_e(e){return W.createElement("div",{...e})}function E_e(e){return W.createElement("div",{...e})}function A_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function T_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function k_e(e){return W.createElement("table",{...e})}function M_e(e){return W.createElement("div",{...e})}const VH=y.createContext(void 0);function am(){const e=y.useContext(VH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function P_e(e){const{components:t}=am();return W.createElement(t.Dropdown,{...e})}function R_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...s}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=am(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...s},W.createElement(l.PreviousMonthButton,{type:"button",className:u[Be.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[Be.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[Be.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[Be.Chevron]})))}function D_e(e){const{components:t}=am();return W.createElement(t.Button,{...e})}function $_e(e){return W.createElement("option",{...e})}function I_e(e){const{components:t}=am();return W.createElement(t.Button,{...e})}function L_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function B_e(e){return W.createElement("select",{...e})}function z_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function q_e(e){return W.createElement("th",{...e})}function F_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function U_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function H_e(e){return W.createElement("th",{...e})}function W_e(e){return W.createElement("tbody",{...e})}function V_e(e){const{components:t}=am();return W.createElement(t.Dropdown,{...e})}const G_e=Object.freeze(Object.defineProperty({__proto__:null,Button:w_e,CaptionLabel:j_e,Chevron:S_e,Day:__e,DayButton:N_e,Dropdown:C_e,DropdownNav:O_e,Footer:E_e,Month:A_e,MonthCaption:T_e,MonthGrid:k_e,Months:M_e,MonthsDropdown:P_e,Nav:R_e,NextMonthButton:D_e,Option:$_e,PreviousMonthButton:I_e,Root:L_e,Select:B_e,Week:z_e,WeekNumber:U_e,WeekNumberHeader:H_e,Weekday:q_e,Weekdays:F_e,Weeks:W_e,YearsDropdown:V_e},Symbol.toStringTag,{value:"Module"}));function Ji(e,t,n=!1,r=Ci){let{from:a,to:s}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&s?(l(s,a)<0&&([a,s]=[s,a]),l(t,a)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?u(s,t):!n&&a?u(a,t):!1}function GH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function $E(e){return!!(e&&typeof e=="object"&&"from"in e)}function YH(e){return!!(e&&typeof e=="object"&&"after"in e)}function KH(e){return!!(e&&typeof e=="object"&&"before"in e)}function XH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function ZH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function es(e,t,n=Ci){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:s,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(ZH(u,n))return u.includes(e);if($E(u))return Ji(u,e,!1,n);if(XH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(GH(u)){const d=s(u.before,e),f=s(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return YH(u)?s(e,u.after)>0:KH(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function Y_e(e,t,n,r,a){const{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:w,isAfter:b}=a,N=n&&x(n),E=r&&w(r),O={[on.focused]:[],[on.outside]:[],[on.disabled]:[],[on.hidden]:[],[on.today]:[]},A={};for(const C of e){const{date:k,displayMonth:T}=C,M=!!(T&&!g(k,T)),R=!!(N&&j(k,N)),B=!!(E&&b(k,E)),$=!!(s&&es(k,s,a)),H=!!(l&&es(k,l,a))||R||B||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&O.outside.push(C),$&&O.disabled.push(C),H&&O.hidden.push(C),V&&O.today.push(C),u&&Object.keys(u).forEach(q=>{const G=u?.[q];G&&es(k,G,a)&&(A[q]?A[q].push(C):A[q]=[C])})}return C=>{const k={[on.focused]:!1,[on.disabled]:!1,[on.hidden]:!1,[on.outside]:!1,[on.today]:!1},T={};for(const M in O){const R=O[M];k[M]=R.some(B=>B===C)}for(const M in A)T[M]=A[M].some(R=>R===C);return{...k,...T}}}function K_e(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[s])=>(n[s]?a.push(n[s]):t[on[s]]?a.push(t[on[s]]):t[Ua[s]]&&a.push(t[Ua[s]]),a),[t[Be.Day]])}function X_e(e){return{...G_e,...e}}function Z_e(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function IE(){const e={};for(const t in Be)e[Be[t]]=`rdp-${Be[t]}`;for(const t in on)e[on[t]]=`rdp-${on[t]}`;for(const t in Ua)e[Ua[t]]=`rdp-${Ua[t]}`;for(const t in Jr)e[Jr[t]]=`rdp-${Jr[t]}`;return e}function QH(e,t,n){return(n??new oa(t)).formatMonthYear(e)}const Q_e=QH;function J_e(e,t,n){return(n??new oa(t)).format(e,"d")}function eNe(e,t=Ci){return t.format(e,"LLLL")}function tNe(e,t,n){return(n??new oa(t)).format(e,"cccccc")}function nNe(e,t=Ci){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function rNe(){return""}function JH(e,t=Ci){return t.format(e,"yyyy")}const aNe=JH,iNe=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:QH,formatDay:J_e,formatMonthCaption:Q_e,formatMonthDropdown:eNe,formatWeekNumber:nNe,formatWeekNumberHeader:rNe,formatWeekdayName:tNe,formatYearCaption:aNe,formatYearDropdown:JH},Symbol.toStringTag,{value:"Module"}));function sNe(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...iNe,...e}}function oNe(e,t,n,r,a){const{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),w=t&&gs(n)||!1;return{value:j,label:x,disabled:w}})}function lNe(e,t={},n={}){let r={...t?.[Be.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function cNe(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),s=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);s.push(u)}return s}function uNe(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=s(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function e9(e,t,n,r){let a=(r??new oa(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const dNe=e9;function t9(e,t,n){return(n??new oa(t)).formatMonthYear(e)}const fNe=t9;function hNe(e,t,n,r){let a=(r??new oa(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function mNe(e){return"Choose the Month"}function pNe(){return""}function vNe(e){return"Go to the Next Month"}function gNe(e){return"Go to the Previous Month"}function yNe(e,t,n){return(n??new oa(t)).format(e,"cccc")}function xNe(e,t){return`Week ${e}`}function bNe(e){return"Week Number"}function wNe(e){return"Choose the Year"}const jNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:fNe,labelDay:dNe,labelDayButton:e9,labelGrid:t9,labelGridcell:hNe,labelMonthDropdown:mNe,labelNav:pNe,labelNext:vNe,labelPrevious:gNe,labelWeekNumber:xNe,labelWeekNumberHeader:bNe,labelWeekday:yNe,labelYearDropdown:wNe},Symbol.toStringTag,{value:"Module"})),im=e=>e instanceof HTMLElement?e:null,h_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],SNe=e=>im(e.querySelector("[data-animated-month]")),m_=e=>im(e.querySelector("[data-animated-caption]")),p_=e=>im(e.querySelector("[data-animated-weeks]")),_Ne=e=>im(e.querySelector("[data-animated-nav]")),NNe=e=>im(e.querySelector("[data-animated-weekdays]"));function CNe(e,t,{classNames:n,months:r,focused:a,dateLib:s}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=s.isSameMonth(r[0].date,f[0].date),p=s.isAfter(r[0].date,f[0].date),g=p?n[Jr.caption_after_enter]:n[Jr.caption_before_enter],x=p?n[Jr.weeks_after_enter]:n[Jr.weeks_before_enter],j=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(h_(w).forEach(O=>{if(!(O instanceof HTMLElement))return;const A=SNe(O);A&&O.contains(A)&&O.removeChild(A);const C=m_(O);C&&C.classList.remove(g);const k=p_(O);k&&k.classList.remove(x)}),l.current=w):l.current=null,d.current||m||a)return;const b=j instanceof HTMLElement?h_(j):[],N=h_(e.current);if(N?.every(E=>E instanceof HTMLElement)&&b&&b.every(E=>E instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const E=_Ne(e.current);E&&(E.style.zIndex="1"),N.forEach((O,A)=>{const C=b[A];if(!C)return;O.style.position="relative",O.style.overflow="hidden";const k=m_(O);k&&k.classList.add(g);const T=p_(O);T&&T.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),E&&(E.style.zIndex=""),k&&k.classList.remove(g),T&&T.classList.remove(x),O.style.position="",O.style.overflow="",O.contains(C)&&O.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const R=NNe(C);R&&(R.style.opacity="0");const B=m_(C);B&&(B.classList.add(p?n[Jr.caption_before_exit]:n[Jr.caption_after_exit]),B.addEventListener("animationend",M));const $=p_(C);$&&$.classList.add(p?n[Jr.weeks_before_exit]:n[Jr.weeks_after_exit]),O.insertBefore(C,O.firstChild)})}})}function ONe(e,t,n,r){const a=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:w,isAfter:b,startOfBroadcastWeek:N,startOfISOWeek:E,startOfWeek:O}=r,A=d?N(a,r):l?E(a):O(a),C=d?g(s):l?x(j(s)):w(j(s)),k=m(C,A),T=p(s,a)+1,M=[];for(let $=0;$<=k;$++){const H=f(A,$);if(t&&b(H,t))break;M.push(H)}const B=(d?35:42)*T;if(u&&M.length{const a=r.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function ANe(e,t,n,r){const{numberOfMonths:a=1}=n,s=[];for(let l=0;lt)break;s.push(u)}return s}function WL(e,t,n,r){const{month:a,defaultMonth:s,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||s||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(b,r):n.ISOWeek?g(b):x(b),E=n.broadcastCalendar?s(b):n.ISOWeek?l(u(b)):d(u(b)),O=t.filter(T=>T>=N&&T<=E),A=n.broadcastCalendar?35:42;if(n.fixedWeeks&&O.length{const R=A-O.length;return M>E&&M<=a(E,R)});O.push(...T)}const C=O.reduce((T,M)=>{const R=n.ISOWeek?f(M):m(M),B=T.find(H=>H.weekNumber===R),$=new WH(M,b,r);return B?B.days.push($):T.push(new b_e(R,[$])),T},[]),k=new x_e(b,C);return w.push(k),w},[]);return n.reverseMonths?j.reverse():j}function kNe(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:w}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&w&&(r=w),!r&&x&&(r=m(x,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&b&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&b&&(r=f(e.today??p())),[n&&s(n),r&&s(r)]}function MNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?s:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function ox(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function DNe(e,t){const[n,r]=kNe(e,t),{startOfMonth:a,endOfMonth:s}=t,l=WL(e,n,r,t),[u,d]=ox(l,e.month?l:void 0);y.useEffect(()=>{const k=WL(e,n,r,t);d(k)},[e.timeZone]);const f=ANe(u,r,e,t),m=ONe(f,e.endMonth?s(e.endMonth):void 0,e,t),p=TNe(f,m,e,t),g=RNe(p),x=ENe(p),j=PNe(u,n,e,t),w=MNe(u,r,e,t),{disableNavigation:b,onMonthChange:N}=e,E=k=>g.some(T=>T.days.some(M=>M.isEqualTo(k))),O=k=>{if(b)return;let T=a(k);n&&Ta(r)&&(T=a(r)),d(T),N?.(T)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:w,goToMonth:O,goToDay:k=>{E(k)||O(k.date)}}}var ai;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ai||(ai={}));function VL(e){return!e[on.disabled]&&!e[on.hidden]&&!e[on.outside]}function $Ne(e,t,n,r){let a,s=-1;for(const l of e){const u=t(l);VL(u)&&(u[on.focused]&&sVL(t(l)))),a}function INe(e,t,n,r,a,s,l){const{ISOWeek:u,broadcastCalendar:d}=s,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:w,max:b,min:N,startOfBroadcastWeek:E,startOfISOWeek:O,startOfWeek:A}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:T=>d?E(T,l):u?O(T):A(T),endOfWeek:T=>d?x(T):u?j(T):w(T)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=b([r,k]):t==="after"&&a&&(k=N([a,k])),k}function n9(e,t,n,r,a,s,l,u=0){if(u>365)return;const d=INe(e,t,n.date,r,a,s,l),f=!!(s.disabled&&es(d,s.disabled,l)),m=!!(s.hidden&&es(d,s.hidden,l)),p=d,g=new WH(d,p,l);return!f&&!m?g:n9(e,t,g,r,a,s,l,u+1)}function LNe(e,t,n,r,a){const{autoFocus:s}=e,[l,u]=y.useState(),d=$Ne(t.days,n,r||(()=>!1),l),[f,m]=y.useState(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(w,b)=>{if(!f)return;const N=n9(w,b,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(O=>O.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function BNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=ox(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,w)=>{let b=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;b=u?.filter(N=>!d(N,x))}else u?.length===p?b=[x]:b=[...b,x];return a||l(b),a?.(b,x,j,w),b},isSelected:f}}function zNe(e,t,n=0,r=0,a=!1,s=Ci){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=s;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=s.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?Ji(e,u,!1,n):ZH(u,n)?u.some(d=>Ji(e,d,!1,n)):$E(u)?u.from&&u.to?GL(e,{from:u.from,to:u.to},n):!1:XH(u)?qNe(e,u.dayOfWeek,n):GH(u)?n.isAfter(u.before,u.after)?GL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):es(e.from,u,n)||es(e.to,u,n):YH(u)||KH(u)?es(e.from,u,n)||es(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function UNe(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:s,onSelect:l}=e,[u,d]=ox(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:w,max:b}=e,N=g?zNe(g,f,w,b,s,t):void 0;return r&&n&&N?.from&&N.to&&FNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&Ji(f,g,!1,t)}}function HNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=ox(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function WNe(e,t){const n=HNe(e,t),r=BNe(e,t),a=UNe(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function VNe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new dr(t.today,t.timeZone)),t.month&&(t.month=new dr(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new dr(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new dr(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new dr(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new dr(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(it=>new dr(it,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new dr(t.selected.from,t.timeZone):void 0,to:t.selected.to?new dr(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:s,locale:l,classNames:u}=y.useMemo(()=>{const it={...DE,...t.locale};return{dateLib:new oa({locale:it,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:X_e(t.components),formatters:sNe(t.formatters),labels:{...jNe,...t.labels},locale:it,classNames:{...IE(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:w,onDayMouseEnter:b,onDayMouseLeave:N,onNextClick:E,onPrevClick:O,showWeekNumber:A,styles:C}=t,{formatCaption:k,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:B,formatWeekdayName:$,formatYearDropdown:H}=r,V=DNe(t,s),{days:q,months:G,navStart:L,navEnd:D,previousMonth:U,nextMonth:K,goToMonth:J}=V,I=Y_e(q,t,L,D,s),{isSelected:z,select:Y,selected:te}=WNe(t,s)??{},{blur:ae,focused:ge,isFocusTarget:ee,moveFocus:Se,setFocused:re}=LNe(t,V,I,z??(()=>!1),s),{labelDayButton:we,labelGridcell:je,labelGrid:fe,labelMonthDropdown:Le,labelNav:Oe,labelPrevious:We,labelNext:be,labelWeekday:Ae,labelWeekNumber:ke,labelWeekNumberHeader:Qt,labelYearDropdown:St}=a,Tt=y.useMemo(()=>cNe(s,t.ISOWeek),[s,t.ISOWeek]),Sn=f!==void 0||x!==void 0,le=y.useCallback(()=>{U&&(J(U),O?.(U))},[U,J,O]),ue=y.useCallback(()=>{K&&(J(K),E?.(K))},[J,K,E]),Ve=y.useCallback((it,Gt)=>Ye=>{Ye.preventDefault(),Ye.stopPropagation(),re(it),Y?.(it.date,Gt,Ye),x?.(it.date,Gt,Ye)},[Y,x,re]),Mn=y.useCallback((it,Gt)=>Ye=>{re(it),j?.(it.date,Gt,Ye)},[j,re]),$l=y.useCallback((it,Gt)=>Ye=>{ae(),g?.(it.date,Gt,Ye)},[ae,g]),Il=y.useCallback((it,Gt)=>Ye=>{const wt={ArrowLeft:[Ye.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[Ye.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[Ye.shiftKey?"year":"week","after"],ArrowUp:[Ye.shiftKey?"year":"week","before"],PageUp:[Ye.shiftKey?"year":"month","before"],PageDown:[Ye.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(wt[Ye.key]){Ye.preventDefault(),Ye.stopPropagation();const[qn,st]=wt[Ye.key];Se(qn,st)}w?.(it.date,Gt,Ye)},[Se,w,t.dir]),fx=y.useCallback((it,Gt)=>Ye=>{b?.(it.date,Gt,Ye)},[b]),fm=y.useCallback((it,Gt)=>Ye=>{N?.(it.date,Gt,Ye)},[N]),hx=y.useCallback(it=>Gt=>{const Ye=Number(Gt.target.value),wt=s.setMonth(s.startOfMonth(it),Ye);J(wt)},[s,J]),mx=y.useCallback(it=>Gt=>{const Ye=Number(Gt.target.value),wt=s.setYear(s.startOfMonth(it),Ye);J(wt)},[s,J]),{className:bo,style:br}=y.useMemo(()=>({className:[u[Be.Root],t.className].filter(Boolean).join(" "),style:{...C?.[Be.Root],...t.style}}),[u,t.className,t.style,C]),Qa=Z_e(t),lr=y.useRef(null);CNe(lr,!!t.animate,{classNames:u,months:G,focused:ge,dateLib:s});const px={dayPickerProps:t,selected:te,select:Y,isSelected:z,months:G,nextMonth:K,previousMonth:U,goToMonth:J,getModifiers:I,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(VH.Provider,{value:px},W.createElement(n.Root,{rootRef:t.animate?lr:void 0,className:bo,style:br,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...Qa},W.createElement(n.Months,{className:u[Be.Months],style:C?.[Be.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Be.Nav],style:C?.[Be.Nav],"aria-label":Oe(),onPreviousClick:le,onNextClick:ue,previousMonth:U,nextMonth:K}),G.map((it,Gt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[Be.Month],style:C?.[Be.Month],key:Gt,displayIndex:Gt,calendarMonth:it},m==="around"&&!t.hideNavigation&&Gt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[Be.PreviousMonthButton],tabIndex:U?void 0:-1,"aria-disabled":U?void 0:!0,"aria-label":We(U),onClick:le,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:U?void 0:!0,className:u[Be.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[Be.MonthCaption],style:C?.[Be.MonthCaption],calendarMonth:it,displayIndex:Gt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[Be.Dropdowns],style:C?.[Be.Dropdowns]},(()=>{const Ye=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[Be.MonthsDropdown],"aria-label":Le(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:hx(it.date),options:oNe(it.date,L,D,r,s),style:C?.[Be.Dropdown],value:s.getMonth(it.date)}):W.createElement("span",{key:"month"},M(it.date,s)),wt=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[Be.YearsDropdown],"aria-label":St(s.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:mx(it.date),options:uNe(L,D,r,s,!!t.reverseYears),style:C?.[Be.Dropdown],value:s.getYear(it.date)}):W.createElement("span",{key:"year"},H(it.date,s));return s.getMonthYearOrder()==="year-first"?[wt,Ye]:[Ye,wt]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(it.date,s.options,s))):W.createElement(n.CaptionLabel,{className:u[Be.CaptionLabel],role:"status","aria-live":"polite"},k(it.date,s.options,s))),m==="around"&&!t.hideNavigation&&Gt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[Be.NextMonthButton],tabIndex:K?void 0:-1,"aria-disabled":K?void 0:!0,"aria-label":be(K),onClick:ue,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:K?void 0:!0,className:u[Be.Chevron],orientation:t.dir==="rtl"?"left":"right"})),Gt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Be.Nav],style:C?.[Be.Nav],"aria-label":Oe(),onPreviousClick:le,onNextClick:ue,previousMonth:U,nextMonth:K}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":fe(it.date,s.options,s)||void 0,className:u[Be.MonthGrid],style:C?.[Be.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[Be.Weekdays],style:C?.[Be.Weekdays]},A&&W.createElement(n.WeekNumberHeader,{"aria-label":Qt(s.options),className:u[Be.WeekNumberHeader],style:C?.[Be.WeekNumberHeader],scope:"col"},B()),Tt.map(Ye=>W.createElement(n.Weekday,{"aria-label":Ae(Ye,s.options,s),className:u[Be.Weekday],key:String(Ye),style:C?.[Be.Weekday],scope:"col"},$(Ye,s.options,s)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[Be.Weeks],style:C?.[Be.Weeks]},it.weeks.map(Ye=>W.createElement(n.Week,{className:u[Be.Week],key:Ye.weekNumber,style:C?.[Be.Week],week:Ye},A&&W.createElement(n.WeekNumber,{week:Ye,style:C?.[Be.WeekNumber],"aria-label":ke(Ye.weekNumber,{locale:l}),className:u[Be.WeekNumber],scope:"row",role:"rowheader"},R(Ye.weekNumber,s)),Ye.days.map(wt=>{const{date:qn}=wt,st=I(wt);if(st[on.focused]=!st.hidden&&!!ge?.isEqualTo(wt),st[Ua.selected]=z?.(qn)||st.selected,$E(te)){const{from:Bl,to:jo}=te;st[Ua.range_start]=!!(Bl&&jo&&s.isSameDay(qn,Bl)),st[Ua.range_end]=!!(Bl&&jo&&s.isSameDay(qn,jo)),st[Ua.range_middle]=Ji(te,qn,!0,s)}const Ll=lNe(st,C,t.modifiersStyles),wo=K_e(st,u,t.modifiersClassNames),vx=!Sn&&!st.hidden?je(qn,st,s.options,s):void 0;return W.createElement(n.Day,{key:`${s.format(qn,"yyyy-MM-dd")}_${s.format(wt.displayMonth,"yyyy-MM")}`,day:wt,modifiers:st,className:wo.join(" "),style:Ll,role:"gridcell","aria-selected":st.selected||void 0,"aria-label":vx,"data-day":s.format(qn,"yyyy-MM-dd"),"data-month":wt.outside?s.format(qn,"yyyy-MM"):void 0,"data-selected":st.selected||void 0,"data-disabled":st.disabled||void 0,"data-hidden":st.hidden||void 0,"data-outside":wt.outside||void 0,"data-focused":st.focused||void 0,"data-today":st.today||void 0},!st.hidden&&Sn?W.createElement(n.DayButton,{className:u[Be.DayButton],style:C?.[Be.DayButton],type:"button",day:wt,modifiers:st,disabled:st.disabled||void 0,tabIndex:ee(wt)?0:-1,"aria-label":we(qn,st,s.options,s),onClick:Ve(wt,st),onBlur:$l(wt,st),onFocus:Mn(wt,st),onKeyDown:Il(wt,st),onMouseEnter:fx(wt,st),onMouseLeave:fm(wt,st)},T(qn,s.options,s)):!st.hidden&&T(wt.date,s.options,s))})))))))),t.footer&&W.createElement(n.Footer,{className:u[Be.Footer],style:C?.[Be.Footer],role:"status","aria-live":"polite"},t.footer)))}function YL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:s,components:l,...u}){const d=IE();return i.jsx(VNe,{showOutsideDays:n,className:ce("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...s},classNames:{root:ce("w-fit",d.root),months:ce("relative flex flex-col gap-4 md:flex-row",d.months),month:ce("flex w-full flex-col gap-4",d.month),nav:ce("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:ce(xh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:ce(xh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:ce("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:ce("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:ce("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:ce("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:ce("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:ce("flex",d.weekdays),weekday:ce("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:ce("mt-2 flex w-full",d.week),week_number_header:ce("w-[--cell-size] select-none",d.week_number_header),week_number:ce("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:ce("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:ce("bg-accent rounded-l-md",d.range_start),range_middle:ce("rounded-none",d.range_middle),range_end:ce("bg-accent rounded-r-md",d.range_end),today:ce("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:ce("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:ce("text-muted-foreground opacity-50",d.disabled),hidden:ce("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:ce(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(nE,{className:ce("size-4",f),...p}):m==="right"?i.jsx(rE,{className:ce("size-4",f),...p}):i.jsx(vh,{className:ce("size-4",f),...p}),DayButton:GNe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function GNe({className:e,day:t,modifiers:n,...r}){const a=IE(),s=y.useRef(null);return y.useEffect(()=>{n.focused&&s.current?.focus()},[n.focused]),i.jsx(oe,{ref:s,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:ce("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class YNe{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const Bc=new YNe;typeof window<"u"&&Bc.connect();const KNe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},XNe=(e,t,n)=>{let r;const a=KNe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},ZNe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},QNe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},JNe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},eCe={date:eu({formats:ZNe,defaultWidth:"full"}),time:eu({formats:QNe,defaultWidth:"full"}),dateTime:eu({formats:JNe,defaultWidth:"full"})};function KL(e,t,n){const r="eeee p";return d_e(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const tCe={lastWeek:KL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:KL,other:"PP p"},nCe=(e,t,n,r)=>{const a=tCe[e];return typeof a=="function"?a(t,n,r):a},rCe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},aCe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},iCe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},sCe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},oCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},lCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},cCe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},uCe={ordinalNumber:cCe,era:oi({values:rCe,defaultWidth:"wide"}),quarter:oi({values:aCe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:oi({values:iCe,defaultWidth:"wide"}),day:oi({values:sCe,defaultWidth:"wide"}),dayPeriod:oi({values:oCe,defaultWidth:"wide",formattingValues:lCe,defaultFormattingWidth:"wide"})},dCe=/^(第\s*)?\d+(日|时|分|秒)?/i,fCe=/\d+/i,hCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},mCe={any:[/^(前)/i,/^(公元)/i]},pCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},vCe={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},gCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},yCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},xCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},bCe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},wCe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},jCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},SCe={ordinalNumber:BH({matchPattern:dCe,parsePattern:fCe,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:hCe,defaultMatchWidth:"wide",parsePatterns:mCe,defaultParseWidth:"any"}),quarter:li({matchPatterns:pCe,defaultMatchWidth:"wide",parsePatterns:vCe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:gCe,defaultMatchWidth:"wide",parsePatterns:yCe,defaultParseWidth:"any"}),day:li({matchPatterns:xCe,defaultMatchWidth:"wide",parsePatterns:bCe,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:wCe,defaultMatchWidth:"any",parsePatterns:jCe,defaultParseWidth:"any"})},Qp={code:"zh-CN",formatDistance:XNe,formatLong:eCe,formatRelative:nCe,localize:uCe,match:SCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function _Ce(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,s]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,w]=y.useState(!1),b=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const $=Bc.getAllLogs();t($);const H=Bc.onLog(()=>{t(Bc.getAllLogs())}),V=Bc.onConnectionChange(q=>{w(q)});return()=>{H(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const E=y.useMemo(()=>{const $=new Set(e.map(H=>H.module));return Array.from($).sort()},[e]),O=$=>{switch($){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},A=$=>{switch($){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},C=()=>{window.location.reload()},k=()=>{Bc.clearLogs(),t([])},T=()=>{const $=B.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` +`),H=new Blob([$],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(H),q=document.createElement("a");q.href=V,q.download=`logs-${pv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,q.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},R=()=>{f(void 0),p(void 0)},B=y.useMemo(()=>e.filter($=>{const H=n===""||$.message.toLowerCase().includes(n.toLowerCase())||$.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||$.level===a,q=l==="all"||$.module===l;let G=!0;if(d||m){const L=new Date($.timestamp);if(d){const D=new Date(d);D.setHours(0,0,0,0),G=G&&L>=D}if(m){const D=new Date(m);D.setHours(23,59,59,999),G=G&&L<=D}}return H&&V&&q&&G}),[e,n,a,l,d,m]);return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:ce("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(Xe,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索日志...",value:n,onChange:$=>r($.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(Dt,{value:a,onValueChange:s,children:[i.jsxs(Ot,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(tC,{className:"h-4 w-4 mr-2"}),i.jsx($t,{placeholder:"级别"})]}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部级别"}),i.jsx(De,{value:"DEBUG",children:"DEBUG"}),i.jsx(De,{value:"INFO",children:"INFO"}),i.jsx(De,{value:"WARNING",children:"WARNING"}),i.jsx(De,{value:"ERROR",children:"ERROR"}),i.jsx(De,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(Dt,{value:l,onValueChange:u,children:[i.jsxs(Ot,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(tC,{className:"h-4 w-4 mr-2"}),i.jsx($t,{placeholder:"模块"})]}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部模块"}),E.map($=>i.jsx(De,{value:$,children:$},$))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(QI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?pv(d,"PPP",{locale:Qp}):"开始日期"})]})}),i.jsx(ds,{className:"w-auto p-0",align:"start",children:i.jsx(YL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:Qp})})]}),i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(QI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?pv(m,"PPP",{locale:Qp}):"结束日期"})]})}),i.jsx(ds,{className:"w-auto p-0",align:"start",children:i.jsx(YL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:Qp})})]}),(d||m)&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:R,className:"w-full sm:w-auto h-9",children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(oe,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(yge,{className:"h-4 w-4"}):i.jsx(wge,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(is,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(It,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:T,className:"flex-1 sm:flex-none h-9",children:[i.jsx(JN,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[B.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(Xe,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Wt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:b,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[B.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):B.map($=>i.jsxs("div",{className:ce("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",A($.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:$.timestamp}),i.jsxs("span",{className:ce("text-xs font-semibold",O($.level)),children:["[",$.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:$.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:$.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:$.timestamp}),i.jsxs("span",{className:ce("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",O($.level)),children:["[",$.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:$.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:$.message})]})]},$.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const NCe="Mai-with-u",CCe="plugin-repo",OCe="main",ECe="plugin_details.json";async function ACe(){try{const e=await rt("/api/webui/plugins/fetch-raw",{method:"POST",headers:dt(),body:JSON.stringify({owner:NCe,repo:CCe,branch:OCe,file_path:ECe})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function TCe(){try{const e=await rt("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function kCe(){try{const e=await rt("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function MCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,s=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function PCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const s=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(s)},3e4)},a.onmessage=s=>{try{if(s.data==="pong")return;const l=JSON.parse(s.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=s=>{console.error("Plugin progress WebSocket error:",s),t?.(s)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function Jp(){try{const e=await rt("/api/webui/plugins/installed",{headers:dt()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function ev(e,t){return t.some(n=>n.id===e)}function tv(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function RCe(e,t,n="main"){const r=await rt("/api/webui/plugins/install",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function DCe(e){const t=await rt("/api/webui/plugins/uninstall",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function $Ce(e,t,n="main"){const r=await rt("/api/webui/plugins/update",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}const XL={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function ICe(){const e=la(),[t,n]=y.useState(null),[r,a]=y.useState(""),[s,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[,T]=y.useState([]),{toast:M}=yr();y.useEffect(()=>{let D=null,U=!1;return(async()=>{if(D=PCe(J=>{U||(A(J),J.stage==="success"?setTimeout(()=>{U||A(null)},2e3):J.stage==="error"&&(j(!1),b(J.error||"加载失败")))},J=>{console.error("WebSocket error:",J),U||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(J=>{if(!D){J();return}const I=()=>{D&&D.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),J()):D&&D.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),J()):setTimeout(I,100)};I()}),!U){const J=await TCe();E(J),J.installed||M({title:"Git 未安装",description:J.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!U){const J=await kCe();k(J)}if(!U)try{j(!0),b(null);const J=await ACe();if(!U){const I=await Jp();T(I);const z=J.map(Y=>{const te=ev(Y.id,I),ae=tv(Y.id,I);return{...Y,installed:te,installed_version:ae}});for(const Y of I)!z.some(ae=>ae.id===Y.id)&&Y.manifest&&z.push({id:Y.id,manifest:{manifest_version:Y.manifest.manifest_version||1,name:Y.manifest.name,version:Y.manifest.version,description:Y.manifest.description||"",author:Y.manifest.author,license:Y.manifest.license||"Unknown",host_application:Y.manifest.host_application,homepage_url:Y.manifest.homepage_url,repository_url:Y.manifest.repository_url,keywords:Y.manifest.keywords||[],categories:Y.manifest.categories||[],default_locale:Y.manifest.default_locale||"zh-CN",locales_path:Y.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:Y.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(z)}}catch(J){if(!U){const I=J instanceof Error?J.message:"加载插件列表失败";b(I),M({title:"加载失败",description:I,variant:"destructive"})}}finally{U||j(!1)}})(),()=>{U=!0,D&&D.close()}},[M]);const R=D=>{if(!D.installed&&C&&!B(D))return i.jsxs(Ft,{variant:"destructive",className:"gap-1",children:[i.jsx(gl,{className:"h-3 w-3"}),"不兼容"]});if(D.installed){const U=D.installed_version?.trim(),K=D.manifest.version?.trim();if(U!==K){const J=U?.split(".").map(Number)||[0,0,0],I=K?.split(".").map(Number)||[0,0,0];for(let z=0;z<3;z++){if((I[z]||0)>(J[z]||0))return i.jsxs(Ft,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(gl,{className:"h-3 w-3"}),"可更新"]});if((I[z]||0)<(J[z]||0))break}}return i.jsxs(Ft,{variant:"default",className:"gap-1",children:[i.jsx(Pr,{className:"h-3 w-3"}),"已安装"]})}return null},B=D=>!C||!D.manifest?.host_application?!0:MCe(D.manifest.host_application.min_version,D.manifest.host_application.max_version,C),$=D=>{if(!D.installed||!D.installed_version||!D.manifest?.version)return!1;const U=D.installed_version.trim(),K=D.manifest.version.trim();if(U===K)return!1;const J=U.split(".").map(Number),I=K.split(".").map(Number);for(let z=0;z<3;z++){if((I[z]||0)>(J[z]||0))return!0;if((I[z]||0)<(J[z]||0))return!1}return!1},H=p.filter(D=>{if(!D.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",D.id),!1;const U=r===""||D.manifest.name?.toLowerCase().includes(r.toLowerCase())||D.manifest.description?.toLowerCase().includes(r.toLowerCase())||D.manifest.keywords&&D.manifest.keywords.some(z=>z.toLowerCase().includes(r.toLowerCase())),K=s==="all"||D.manifest.categories&&D.manifest.categories.includes(s);let J=!0;u==="installed"?J=D.installed===!0:u==="updates"&&(J=D.installed===!0&&$(D));const I=!f||!C||B(D);return U&&K&&J&&I}),V=()=>{n(null)},q=async D=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!B(D)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await RCe(D.id,D.manifest.repository_url||"","main"),M({title:"安装成功",description:`${D.manifest.name} 已成功安装`});const U=await Jp();T(U),g(K=>K.map(J=>{if(J.id===D.id){const I=ev(J.id,U),z=tv(J.id,U);return{...J,installed:I,installed_version:z}}return J}))}catch(U){M({title:"安装失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},G=async D=>{try{await DCe(D.id),M({title:"卸载成功",description:`${D.manifest.name} 已成功卸载`});const U=await Jp();T(U),g(K=>K.map(J=>{if(J.id===D.id){const I=ev(J.id,U),z=tv(J.id,U);return{...J,installed:I,installed_version:z}}return J}))}catch(U){M({title:"卸载失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},L=async D=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const U=await $Ce(D.id,D.manifest.repository_url||"","main");M({title:"更新成功",description:`${D.manifest.name} 已从 ${U.old_version} 更新到 ${U.new_version}`});const K=await Jp();T(K),g(J=>J.map(I=>{if(I.id===D.id){const z=ev(I.id,K),Y=tv(I.id,K);return{...I,installed:z,installed_version:Y}}return I}))}catch(U){M({title:"更新失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(oe,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(Pge,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(Xe,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(pt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Kc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(vt,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(Wn,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(Ct,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索插件...",value:r,onChange:D=>a(D.target.value),className:"pl-9"})]}),i.jsxs(Dt,{value:s,onValueChange:l,children:[i.jsx(Ot,{className:"w-full sm:w-[200px]",children:i.jsx($t,{placeholder:"选择分类"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部分类"}),i.jsx(De,{value:"Group Management",children:"群组管理"}),i.jsx(De,{value:"Entertainment & Interaction",children:"娱乐互动"}),i.jsx(De,{value:"Utility Tools",children:"实用工具"}),i.jsx(De,{value:"Content Generation",children:"内容生成"}),i.jsx(De,{value:"Multimedia",children:"多媒体"}),i.jsx(De,{value:"External Integration",children:"外部集成"}),i.jsx(De,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),i.jsx(De,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"compatible-only",checked:f,onCheckedChange:D=>m(D===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(dl,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(eo,{className:"grid w-full grid-cols-3",children:[i.jsxs(Rt,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Rt,{value:"installed",children:["已安装 (",p.filter(D=>D.installed).length,")"]}),i.jsxs(Rt,{value:"updates",children:["可更新 (",p.filter(D=>D.installed&&$(D)).length,")"]})]})}),O&&O.stage==="loading"&&i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(gh,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[O.operation==="fetch"&&"加载插件列表",O.operation==="install"&&`安装插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="uninstall"&&`卸载插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="update"&&`更新插件${O.plugin_id?`: ${O.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[O.progress,"%"]})]}),i.jsx($h,{value:O.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.message}),O.operation==="fetch"&&O.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",O.loaded_plugins," / ",O.total_plugins," 个插件"]})]})}),O&&O.stage==="error"&&O.error&&i.jsx(Xe,{className:"border-destructive bg-destructive/10",children:i.jsx(pt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Kc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(vt,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(Wn,{className:"text-destructive/80",children:O.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(gh,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):w?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Kc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:w}),i.jsx(oe,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):H.length===0?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Lr,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||s!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:H.map(D=>i.jsxs(Xe,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(pt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(vt,{className:"text-xl",children:D.manifest?.name||D.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[D.manifest?.categories&&D.manifest.categories[0]&&i.jsx(Ft,{variant:"secondary",className:"text-xs whitespace-nowrap",children:XL[D.manifest.categories[0]]||D.manifest.categories[0]}),R(D)]})]}),i.jsx(Wn,{className:"line-clamp-2",children:D.manifest?.description||"无描述"})]}),i.jsx(Ct,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(JN,{className:"h-4 w-4"}),i.jsx("span",{children:D.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:D.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[D.manifest?.keywords&&D.manifest.keywords.slice(0,3).map(U=>i.jsx(Ft,{variant:"outline",className:"text-xs",children:U},U)),D.manifest?.keywords&&D.manifest.keywords.length>3&&i.jsxs(Ft,{variant:"outline",className:"text-xs",children:["+",D.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",D.manifest?.version||"unknown"," · ",D.manifest?.author?.name||"Unknown"]}),D.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[D.manifest.host_application.min_version,D.manifest.host_application.max_version?` - ${D.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(eB,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>n(D),children:"查看详情"}),D.installed?$(D)?i.jsxs(oe,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>L(D),children:[i.jsx(is,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(oe,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(D),children:[i.jsx(It,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(oe,{size:"sm",disabled:!N?.installed||O?.operation==="install"||C!==null&&!B(D),title:N?.installed?C!==null&&!B(D)?`不兼容当前版本 (需要 ${D.manifest?.host_application?.min_version||"未知"}${D.manifest?.host_application?.max_version?` - ${D.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>q(D),children:[i.jsx(JN,{className:"h-4 w-4 mr-1"}),O?.operation==="install"&&O?.plugin_id===D.id?"安装中...":"安装"]})]})})]},D.id))}),i.jsx(sr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Xn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Zn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(vr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(Mf,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Ft,{variant:"secondary",children:XL[t.manifest.categories[0]]||t.manifest.categories[0]}),R(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(D=>i.jsx(Ft,{variant:"outline",children:D},D))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs(Br,{children:[t.manifest.homepage_url&&i.jsxs(oe,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(oe,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function LCe(){return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(is,{className:"h-4 w-4 mr-2"}),"刷新"]}),i.jsxs(oe,{size:"sm",children:[i.jsx(Fa,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已安装插件"}),i.jsx(Tg,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已启用"}),i.jsx(Pr,{className:"h-4 w-4 text-green-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已禁用"}),i.jsx(gl,{className:"h-4 w-4 text-orange-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"可更新"}),i.jsx(is,{className:"h-4 w-4 text-blue-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"已安装的插件"}),i.jsx(Wn,{children:"查看和管理已安装插件的配置"})]}),i.jsx(Ct,{children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[i.jsx(Tg,{className:"h-16 w-16 text-muted-foreground/50"}),i.jsxs("div",{className:"text-center space-y-2",children:[i.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),i.jsx("div",{className:"flex gap-2",children:i.jsx(oe,{variant:"outline",asChild:!0,children:i.jsxs("a",{href:"/plugins",children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsx(vt,{className:"text-base",children:"即将推出的功能"})}),i.jsx(Ct,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsx(vt,{className:"text-base",children:"开发者工具"})}),i.jsx(Ct,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"热重载"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),i.jsx(Xe,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:i.jsx(Ct,{className:"pt-6",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(gl,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",i.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function BCe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState([]),[a,s]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b=y.useCallback(async()=>{try{s(!0),u(null);const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${T}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const R=await M.json();r(R.mirrors||[])}catch(T){const M=T instanceof Error?T.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{s(!1)}},[t]);y.useEffect(()=>{b()},[b]);const N=async()=>{try{const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const R=await M.json();throw new Error(R.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),w({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b()}catch(T){t({title:"添加失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},E=async()=>{if(d)try{const T=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),b()}catch(T){t({title:"更新失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},O=async T=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),b()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},A=async T=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!T.enabled})})).ok)throw new Error("更新状态失败");b()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=T=>{f(T),w({id:T.id,name:T.name,raw_prefix:T.raw_prefix,clone_prefix:T.clone_prefix,enabled:T.enabled,priority:T.priority}),x(!0)},k=async(T,M)=>{const R=M==="up"?T.priority-1:T.priority+1;if(!(R<1))try{const B=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/json"},body:JSON.stringify({priority:R})})).ok)throw new Error("更新优先级失败");b()}catch(B){t({title:"更新失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(fF,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(oe,{onClick:()=>p(!0),children:[i.jsx(ir,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(Xe,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(gh,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Kc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(oe,{onClick:b,children:"重新加载"})]})}):i.jsxs(Xe,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"状态"}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"ID"}),i.jsx(nt,{children:"优先级"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n.map(T=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(lt,{checked:T.enabled,onCheckedChange:()=>A(T)})}),i.jsx(Ge,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:T.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",T.raw_prefix]})]})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:"outline",children:T.id})}),i.jsx(Ge,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:T.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(XN,{className:"h-3 w-3"})}),i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"down"),children:i.jsx(vh,{className:"h-3 w-3"})})]})]})}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>C(T),children:i.jsx(Pu,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>O(T.id),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},T.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(T=>i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:T.name}),T.enabled&&i.jsx(Ft,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Ft,{variant:"outline",className:"mt-1 text-xs",children:T.id})]}),i.jsx(lt,{checked:T.enabled,onCheckedChange:()=>A(T)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:T.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:T.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(oe,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(T),children:[i.jsx(Pu,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(XN,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"down"),children:i.jsx(vh,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"destructive",size:"sm",onClick:()=>O(T.id),children:i.jsx(It,{className:"h-4 w-4"})})]})]})},T.id))})]}),i.jsx(sr,{open:m,onOpenChange:p,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"添加镜像源"}),i.jsx(vr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ne,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:T=>w({...j,id:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ne,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ne,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"add-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(Q,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(oe,{onClick:N,children:"添加"})]})]})}),i.jsx(sr,{open:g,onOpenChange:x,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑镜像源"}),i.jsx(vr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"镜像源 ID"}),i.jsx(Ne,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ne,{id:"edit-name",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"edit-raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"edit-clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ne,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"edit-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(Q,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(oe,{onClick:E,children:"保存"})]})]})})]})})}const zCe=Zu("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),r9=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},s)=>i.jsx("kbd",{className:ce(zCe({size:t,className:e})),ref:s,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));r9.displayName="Kbd";const qCe=[{icon:Ag,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:aE,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:vF,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:hF,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:oE,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:Gh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:mF,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:Eve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:Tg,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:Og,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Fa,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function FCe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState(0),l=la(),u=qCe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),s(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),s(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),s(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Xn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Zn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ne,{value:n,onChange:m=>{r(m.target.value),s(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Wt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>s(p),className:ce("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Lr,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function UCe(e){const t=HCe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(VCe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function HCe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=YCe(a),u=GCe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var WCe=Symbol("radix.slottable");function VCe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===WCe}function GCe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function YCe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var jC=["Enter"," "],KCe=["ArrowDown","PageUp","Home"],a9=["ArrowUp","PageDown","End"],XCe=[...KCe,...a9],ZCe={ltr:[...jC,"ArrowRight"],rtl:[...jC,"ArrowLeft"]},QCe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},sm="Menu",[Nh,JCe,eOe]=Ph(sm),[Dl,i9]=gr(sm,[eOe,ho,Yg]),om=ho(),s9=Yg(),[o9,xo]=Dl(sm),[tOe,lm]=Dl(sm),l9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:s,modal:l=!0}=e,u=om(t),[d,f]=y.useState(null),m=y.useRef(!1),p=ln(s),g=Fu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(Qh,{...u,children:i.jsx(o9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(tOe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};l9.displayName=sm;var nOe="MenuAnchor",LE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=om(n);return i.jsx(Jh,{...a,...r,ref:t})});LE.displayName=nOe;var BE="MenuPortal",[rOe,c9]=Dl(BE,{forceMount:void 0}),u9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,s=xo(BE,t);return i.jsx(rOe,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};u9.displayName=BE;var Oa="MenuContent",[aOe,zE]=Dl(Oa),d9=y.forwardRef((e,t)=>{const n=c9(Oa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=xo(Oa,e.__scopeMenu),l=lm(Oa,e.__scopeMenu);return i.jsx(Nh.Provider,{scope:e.__scopeMenu,children:i.jsx(Bn,{present:r||s.open,children:i.jsx(Nh.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(iOe,{...a,ref:t}):i.jsx(sOe,{...a,ref:t})})})})}),iOe=y.forwardRef((e,t)=>{const n=xo(Oa,e.__scopeMenu),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return zy(s)},[]),i.jsx(qE,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:_e(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),sOe=y.forwardRef((e,t)=>{const n=xo(Oa,e.__scopeMenu);return i.jsx(qE,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),oOe=UCe("MenuContent.ScrollLock"),qE=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...w}=e,b=xo(Oa,n),N=lm(Oa,n),E=om(n),O=s9(n),A=JCe(n),[C,k]=y.useState(null),T=y.useRef(null),M=Ue(t,T,b.onContentChange),R=y.useRef(0),B=y.useRef(""),$=y.useRef(0),H=y.useRef(null),V=y.useRef("right"),q=y.useRef(0),G=j?Xh:y.Fragment,L=j?{as:oOe,allowPinchZoom:!0}:void 0,D=K=>{const J=B.current+K,I=A().filter(ee=>!ee.disabled),z=document.activeElement,Y=I.find(ee=>ee.ref.current===z)?.textValue,te=I.map(ee=>ee.textValue),ae=xOe(te,J,Y),ge=I.find(ee=>ee.textValue===ae)?.ref.current;(function ee(Se){B.current=Se,window.clearTimeout(R.current),Se!==""&&(R.current=window.setTimeout(()=>ee(""),1e3))})(J),ge&&setTimeout(()=>ge.focus())};y.useEffect(()=>()=>window.clearTimeout(R.current),[]),Ly();const U=y.useCallback(K=>V.current===H.current?.side&&wOe(K,H.current?.area),[]);return i.jsx(aOe,{scope:n,searchRef:B,onItemEnter:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),onItemLeave:y.useCallback(K=>{U(K)||(T.current?.focus(),k(null))},[U]),onTriggerLeave:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),pointerGraceTimerRef:$,onPointerGraceIntentChange:y.useCallback(K=>{H.current=K},[]),children:i.jsx(G,{...L,children:i.jsx(Kh,{asChild:!0,trapped:a,onMountAutoFocus:_e(s,K=>{K.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(sB,{asChild:!0,...O,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:_e(d,K=>{N.isUsingKeyboardRef.current||K.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Xy,{role:"menu","aria-orientation":"vertical","data-state":E9(b.open),"data-radix-menu-content":"",dir:N.dir,...E,...w,ref:M,style:{outline:"none",...w.style},onKeyDown:_e(w.onKeyDown,K=>{const I=K.target.closest("[data-radix-menu-content]")===K.currentTarget,z=K.ctrlKey||K.altKey||K.metaKey,Y=K.key.length===1;I&&(K.key==="Tab"&&K.preventDefault(),!z&&Y&&D(K.key));const te=T.current;if(K.target!==te||!XCe.includes(K.key))return;K.preventDefault();const ge=A().filter(ee=>!ee.disabled).map(ee=>ee.ref.current);a9.includes(K.key)&&ge.reverse(),gOe(ge)}),onBlur:_e(e.onBlur,K=>{K.currentTarget.contains(K.target)||(window.clearTimeout(R.current),B.current="")}),onPointerMove:_e(e.onPointerMove,Ch(K=>{const J=K.target,I=q.current!==K.clientX;if(K.currentTarget.contains(J)&&I){const z=K.clientX>q.current?"right":"left";V.current=z,q.current=K.clientX}}))})})})})})})});d9.displayName=Oa;var lOe="MenuGroup",FE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"group",...r,ref:t})});FE.displayName=lOe;var cOe="MenuLabel",f9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});f9.displayName=cOe;var Lg="MenuItem",ZL="menu.itemSelect",lx=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,s=y.useRef(null),l=lm(Lg,e.__scopeMenu),u=zE(Lg,e.__scopeMenu),d=Ue(t,s),f=y.useRef(!1),m=()=>{const p=s.current;if(!n&&p){const g=new CustomEvent(ZL,{bubbles:!0,cancelable:!0});p.addEventListener(ZL,x=>r?.(x),{once:!0}),HC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(h9,{...a,ref:d,disabled:n,onClick:_e(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:_e(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:_e(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||jC.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});lx.displayName=Lg;var h9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...s}=e,l=zE(Lg,n),u=s9(n),d=y.useRef(null),f=Ue(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[s.children]),i.jsx(Nh.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(oB,{asChild:!0,...u,focusable:!r,children:i.jsx($e.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:f,onPointerMove:_e(e.onPointerMove,Ch(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:_e(e.onPointerLeave,Ch(j=>l.onItemLeave(j))),onFocus:_e(e.onFocus,()=>p(!0)),onBlur:_e(e.onBlur,()=>p(!1))})})})}),uOe="MenuCheckboxItem",m9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(x9,{scope:e.__scopeMenu,checked:n,children:i.jsx(lx,{role:"menuitemcheckbox","aria-checked":Bg(n)?"mixed":n,...a,ref:t,"data-state":WE(n),onSelect:_e(a.onSelect,()=>r?.(Bg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});m9.displayName=uOe;var p9="MenuRadioGroup",[dOe,fOe]=Dl(p9,{value:void 0,onValueChange:()=>{}}),v9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,s=ln(r);return i.jsx(dOe,{scope:e.__scopeMenu,value:n,onValueChange:s,children:i.jsx(FE,{...a,ref:t})})});v9.displayName=p9;var g9="MenuRadioItem",y9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=fOe(g9,e.__scopeMenu),s=n===a.value;return i.jsx(x9,{scope:e.__scopeMenu,checked:s,children:i.jsx(lx,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":WE(s),onSelect:_e(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});y9.displayName=g9;var UE="MenuItemIndicator",[x9,hOe]=Dl(UE,{checked:!1}),b9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,s=hOe(UE,n);return i.jsx(Bn,{present:r||Bg(s.checked)||s.checked===!0,children:i.jsx($e.span,{...a,ref:t,"data-state":WE(s.checked)})})});b9.displayName=UE;var mOe="MenuSeparator",w9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});w9.displayName=mOe;var pOe="MenuArrow",j9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=om(n);return i.jsx(Zy,{...a,...r,ref:t})});j9.displayName=pOe;var HE="MenuSub",[vOe,S9]=Dl(HE),_9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,s=xo(HE,t),l=om(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=ln(a);return y.useEffect(()=>(s.open===!1&&p(!1),()=>p(!1)),[s.open,p]),i.jsx(Qh,{...l,children:i.jsx(o9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(vOe,{scope:t,contentId:Gn(),triggerId:Gn(),trigger:u,onTriggerChange:d,children:n})})})};_9.displayName=HE;var bf="MenuSubTrigger",N9=y.forwardRef((e,t)=>{const n=xo(bf,e.__scopeMenu),r=lm(bf,e.__scopeMenu),a=S9(bf,e.__scopeMenu),s=zE(bf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=s,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(LE,{asChild:!0,...f,children:i.jsx(h9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":E9(n.open),...e,ref:Ir(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:_e(e.onPointerMove,Ch(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(s.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:_e(e.onPointerLeave,Ch(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",w=j?-5:5,b=g[j?"left":"right"],N=g[j?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:b,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:b,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:_e(e.onKeyDown,p=>{const g=s.searchRef.current!=="";e.disabled||g&&p.key===" "||ZCe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});N9.displayName=bf;var C9="MenuSubContent",O9=y.forwardRef((e,t)=>{const n=c9(Oa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=xo(Oa,e.__scopeMenu),l=lm(Oa,e.__scopeMenu),u=S9(C9,e.__scopeMenu),d=y.useRef(null),f=Ue(t,d);return i.jsx(Nh.Provider,{scope:e.__scopeMenu,children:i.jsx(Bn,{present:r||s.open,children:i.jsx(Nh.Slot,{scope:e.__scopeMenu,children:i.jsx(qE,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:_e(e.onFocusOutside,m=>{m.target!==u.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:_e(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:_e(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=QCe[l.dir].includes(m.key);p&&g&&(s.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});O9.displayName=C9;function E9(e){return e?"open":"closed"}function Bg(e){return e==="indeterminate"}function WE(e){return Bg(e)?"indeterminate":e?"checked":"unchecked"}function gOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function yOe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function xOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=yOe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function bOe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function wOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return bOe(n,t)}function Ch(e){return t=>t.pointerType==="mouse"?e(t):void 0}var jOe=l9,SOe=LE,_Oe=u9,NOe=d9,COe=FE,OOe=f9,EOe=lx,AOe=m9,TOe=v9,kOe=y9,MOe=b9,POe=w9,ROe=j9,DOe=_9,$Oe=N9,IOe=O9,VE="ContextMenu",[LOe]=gr(VE,[i9]),xr=i9(),[BOe,A9]=LOe(VE),T9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:s=!0}=e,[l,u]=y.useState(!1),d=xr(t),f=ln(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(BOe,{scope:t,open:l,onOpenChange:m,modal:s,children:i.jsx(jOe,{...d,dir:a,open:l,onOpenChange:m,modal:s,children:n})})};T9.displayName=VE;var k9="ContextMenuTrigger",M9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,s=A9(k9,n),l=xr(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},s.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(SOe,{...l,virtualRef:d}),i.jsx($e.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:_e(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:_e(e.onPointerDown,nv(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:_e(e.onPointerMove,nv(m)),onPointerCancel:r?e.onPointerCancel:_e(e.onPointerCancel,nv(m)),onPointerUp:r?e.onPointerUp:_e(e.onPointerUp,nv(m))})]})});M9.displayName=k9;var zOe="ContextMenuPortal",P9=e=>{const{__scopeContextMenu:t,...n}=e,r=xr(t);return i.jsx(_Oe,{...r,...n})};P9.displayName=zOe;var R9="ContextMenuContent",D9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=A9(R9,n),s=xr(n),l=y.useRef(!1);return i.jsx(NOe,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});D9.displayName=R9;var qOe="ContextMenuGroup",FOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(COe,{...a,...r,ref:t})});FOe.displayName=qOe;var UOe="ContextMenuLabel",$9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(OOe,{...a,...r,ref:t})});$9.displayName=UOe;var HOe="ContextMenuItem",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(EOe,{...a,...r,ref:t})});I9.displayName=HOe;var WOe="ContextMenuCheckboxItem",L9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(AOe,{...a,...r,ref:t})});L9.displayName=WOe;var VOe="ContextMenuRadioGroup",GOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(TOe,{...a,...r,ref:t})});GOe.displayName=VOe;var YOe="ContextMenuRadioItem",B9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(kOe,{...a,...r,ref:t})});B9.displayName=YOe;var KOe="ContextMenuItemIndicator",z9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(MOe,{...a,...r,ref:t})});z9.displayName=KOe;var XOe="ContextMenuSeparator",q9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(POe,{...a,...r,ref:t})});q9.displayName=XOe;var ZOe="ContextMenuArrow",QOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(ROe,{...a,...r,ref:t})});QOe.displayName=ZOe;var F9="ContextMenuSub",U9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:s}=e,l=xr(t),[u,d]=Ea({prop:a,defaultProp:s??!1,onChange:r,caller:F9});return i.jsx(DOe,{...l,open:u,onOpenChange:d,children:n})};U9.displayName=F9;var JOe="ContextMenuSubTrigger",H9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx($Oe,{...a,...r,ref:t})});H9.displayName=JOe;var eEe="ContextMenuSubContent",W9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(IOe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});W9.displayName=eEe;function nv(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var tEe=T9,nEe=M9,rEe=P9,V9=D9,G9=$9,Y9=I9,K9=L9,X9=B9,Z9=z9,Q9=q9,aEe=U9,J9=H9,eW=W9;const iEe=tEe,sEe=nEe,oEe=aEe,tW=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(J9,{ref:a,className:ce("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(rE,{className:"ml-auto h-4 w-4"})]}));tW.displayName=J9.displayName;const nW=y.forwardRef(({className:e,...t},n)=>i.jsx(eW,{ref:n,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));nW.displayName=eW.displayName;const rW=y.forwardRef(({className:e,...t},n)=>i.jsx(rEe,{children:i.jsx(V9,{ref:n,className:ce("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));rW.displayName=V9.displayName;const Ia=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(Y9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));Ia.displayName=Y9.displayName;const lEe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(K9,{ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Z9,{children:i.jsx(ol,{className:"h-4 w-4"})})}),t]}));lEe.displayName=K9.displayName;const cEe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(X9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Z9,{children:i.jsx(Uve,{className:"h-2 w-2 fill-current"})})}),t]}));cEe.displayName=X9.displayName;const uEe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(G9,{ref:r,className:ce("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));uEe.displayName=G9.displayName;const wf=y.forwardRef(({className:e,...t},n)=>i.jsx(Q9,{ref:n,className:ce("-mx-1 my-1 h-px bg-border",e),...t}));wf.displayName=Q9.displayName;const zc=({className:e,...t})=>i.jsx("span",{className:ce("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});zc.displayName="ContextMenuShortcut";var dEe=Symbol("radix.slottable");function fEe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=dEe,t}var[cx]=gr("Tooltip",[ho]),ux=ho(),aW="TooltipProvider",hEe=700,SC="tooltip.open",[mEe,GE]=cx(aW),iW=e=>{const{__scopeTooltip:t,delayDuration:n=hEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(mEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:s})};iW.displayName=aW;var Oh="Tooltip",[pEe,cm]=cx(Oh),sW=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:s,disableHoverableContent:l,delayDuration:u}=e,d=GE(Oh,e.__scopeTooltip),f=ux(t),[m,p]=y.useState(null),g=Gn(),x=y.useRef(0),j=l??d.disableHoverableContent,w=u??d.delayDuration,b=y.useRef(!1),[N,E]=Ea({prop:r,defaultProp:a??!1,onChange:T=>{T?(d.onOpen(),document.dispatchEvent(new CustomEvent(SC))):d.onClose(),s?.(T)},caller:Oh}),O=y.useMemo(()=>N?b.current?"delayed-open":"instant-open":"closed",[N]),A=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,b.current=!1,E(!0)},[E]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,E(!1)},[E]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{b.current=!0,E(!0),x.current=0},w)},[w,E]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(Qh,{...f,children:i.jsx(pEe,{scope:t,contentId:g,open:N,stateAttribute:O,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():A()},[d.isOpenDelayedRef,k,A]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:A,onClose:C,disableHoverableContent:j,children:n})})};sW.displayName=Oh;var _C="TooltipTrigger",oW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=cm(_C,n),s=GE(_C,n),l=ux(n),u=y.useRef(null),d=Ue(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(Jh,{asChild:!0,...l,children:i.jsx($e.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:_e(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:_e(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:_e(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:_e(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:_e(e.onBlur,a.onClose),onClick:_e(e.onClick,a.onClose)})})});oW.displayName=_C;var YE="TooltipPortal",[vEe,gEe]=cx(YE,{forceMount:void 0}),lW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,s=cm(YE,t);return i.jsx(vEe,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};lW.displayName=YE;var Iu="TooltipContent",cW=y.forwardRef((e,t)=>{const n=gEe(Iu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,l=cm(Iu,e.__scopeTooltip);return i.jsx(Bn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(uW,{side:a,...s,ref:t}):i.jsx(yEe,{side:a,...s,ref:t})})}),yEe=y.forwardRef((e,t)=>{const n=cm(Iu,e.__scopeTooltip),r=GE(Iu,e.__scopeTooltip),a=y.useRef(null),s=Ue(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,w)=>{const b=j.currentTarget,N={x:j.clientX,y:j.clientY},E=SEe(N,b.getBoundingClientRect()),O=_Ee(N,E),A=NEe(w.getBoundingClientRect()),C=OEe([...O,...A]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=b=>x(b,m),w=b=>x(b,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",w)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=w=>{const b=w.target,N={x:w.clientX,y:w.clientY},E=d?.contains(b)||m?.contains(b),O=!CEe(N,l);E?g():O&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(uW,{...e,ref:s})}),[xEe,bEe]=cx(Oh,{isInside:!1}),wEe=fEe("TooltipContent"),uW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:l,...u}=e,d=cm(Iu,n),f=ux(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(SC,m),()=>document.removeEventListener(SC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Xy,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(wEe,{children:r}),i.jsx(xEe,{scope:n,isInside:!0,children:i.jsx(jwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});cW.displayName=Iu;var dW="TooltipArrow",jEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=ux(n);return bEe(dW,n).isInside?null:i.jsx(Zy,{...a,...r,ref:t})});jEe.displayName=dW;function SEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function _Ee(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function CEe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function OEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),EEe(t)}function EEe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const s=t[t.length-1],l=t[t.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],l=n[n.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var AEe=iW,TEe=sW,kEe=oW,MEe=lW,fW=cW;const PEe=AEe,REe=TEe,DEe=kEe,hW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(MEe,{children:i.jsx(fW,{ref:r,sideOffset:t,className:ce("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));hW.displayName=fW.displayName;function $Ee({children:e}){fbe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[s,l]=y.useState(!1),{theme:u,setTheme:d}=lE(),f=VY(),m=la();y.useEffect(()=>{const w=b=>{(b.metaKey||b.ctrlKey)&&b.key==="k"&&(b.preventDefault(),l(!0))};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);const p=[{title:"概览",items:[{icon:Ag,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:aE,label:"麦麦主程序配置",path:"/config/bot"},{icon:vF,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:hF,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:oE,label:"表情包管理",path:"/resource/emoji"},{icon:Gh,label:"表达方式管理",path:"/resource/expression"},{icon:mF,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:Tg,label:"插件市场",path:"/plugins"},{icon:zge,label:"插件配置",path:"/plugin-config"},{icon:Og,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Fa,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(PEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:ce("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:ce("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:ce("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:_ye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:ce("space-y-6",!t&&"lg:space-y-3"),children:p.map((w,b)=>i.jsxs("li",{children:[i.jsx("div",{className:ce("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:w.title})}),!t&&b>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:w.items.map(N=>{const E=f({to:N.path}),O=N.icon,A=i.jsxs(i.Fragment,{children:[E&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:ce("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(O,{className:ce("h-5 w-5 flex-shrink-0",E&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:ce("text-sm font-medium whitespace-nowrap transition-all duration-300",E&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(REe,{children:[i.jsx(DEe,{asChild:!0,children:i.jsx(IC,{to:N.path,className:ce("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",E?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:A})}),!t&&i.jsx(hW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},w.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(fge,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(nE,{className:ce("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(r9,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(FCe,{open:s,onOpenChange:l}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(jve,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:w=>{sye(x==="dark"?"light":"dark",d,w)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(rC,{className:"h-5 w-5"}):i.jsx(nC,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(eL,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(iEe,{children:[i.jsx(sEe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(rW,{className:"w-64",children:[i.jsxs(Ia,{onClick:()=>m({to:"/"}),children:[i.jsx(Ag,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(Ia,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Fa,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(Ia,{onClick:()=>m({to:"/logs"}),children:[i.jsx(Og,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(wf,{}),i.jsxs(oEe,{children:[i.jsxs(tW,{children:[i.jsx(pF,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(nW,{className:"w-48",children:[i.jsxs(Ia,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(rC,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(zc,{children:"✓"})]}),i.jsxs(Ia,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(nC,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(zc,{children:"✓"})]}),i.jsxs(Ia,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Fa,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(zc,{children:"✓"})]})]})]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:()=>window.location.reload(),children:[i.jsx(Ege,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(zc,{children:"⌘R"})]}),i.jsxs(Ia,{onClick:()=>l(!0),children:[i.jsx(Lr,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(zc,{children:"⌘K"})]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(Mf,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(eL,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const um=IY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(LC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!O8())throw r5({to:"/auth"})}}),IEe=or({getParentRoute:()=>um,path:"/auth",component:hbe}),LEe=or({getParentRoute:()=>um,path:"/setup",component:Mbe}),ca=or({getParentRoute:()=>um,id:"protected",component:()=>i.jsx($Ee,{children:i.jsx(LC,{})})}),BEe=or({getParentRoute:()=>ca,path:"/",component:aye}),zEe=or({getParentRoute:()=>ca,path:"/config/bot",component:Sje}),qEe=or({getParentRoute:()=>ca,path:"/config/modelProvider",component:Uje}),FEe=or({getParentRoute:()=>ca,path:"/config/model",component:g1e}),UEe=or({getParentRoute:()=>ca,path:"/resource/emoji",component:N1e}),HEe=or({getParentRoute:()=>ca,path:"/resource/expression",component:R1e}),WEe=or({getParentRoute:()=>ca,path:"/resource/person",component:U1e}),VEe=or({getParentRoute:()=>ca,path:"/logs",component:_Ce}),GEe=or({getParentRoute:()=>ca,path:"/plugins",component:ICe}),YEe=or({getParentRoute:()=>ca,path:"/plugin-config",component:LCe}),KEe=or({getParentRoute:()=>ca,path:"/plugin-mirrors",component:BCe}),XEe=or({getParentRoute:()=>ca,path:"/settings",component:ibe}),ZEe=or({getParentRoute:()=>um,path:"*",component:T8}),QEe=um.addChildren([IEe,LEe,ca.addChildren([BEe,zEe,qEe,FEe,UEe,HEe,WEe,GEe,YEe,KEe,VEe,XEe]),ZEe]),JEe=GY({routeTree:QEe,defaultNotFoundComponent:T8});function eAe({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,s]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%"},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%"},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%"},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%"},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%"}}[u];m&&d.style.setProperty("--primary",m.hsl)}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),s(u)}};return i.jsx(yF.Provider,{...r,value:l,children:e})}function tAe({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[s,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;s?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(s))},[s,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:s,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(xF.Provider,{value:f,children:e})}var KE="ToastProvider",[XE,nAe,rAe]=Ph("Toast"),[mW]=gr("Toast",[rAe]),[aAe,dx]=mW(KE),pW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${KE}\`. Expected non-empty \`string\`.`),i.jsx(XE.Provider,{scope:t,children:i.jsx(aAe,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};pW.displayName=KE;var vW="ToastViewport",iAe=["F8"],NC="toast.viewportPause",CC="toast.viewportResume",gW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=iAe,label:a="Notifications ({hotkey})",...s}=e,l=dx(vW,n),u=nAe(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=Ue(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const b=N=>{r.length!==0&&r.every(O=>N[O]||N.code===O)&&p.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),y.useEffect(()=>{const b=d.current,N=p.current;if(j&&b&&N){const E=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(NC);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},O=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(CC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},A=k=>{!b.contains(k.relatedTarget)&&O()},C=()=>{b.contains(document.activeElement)||O()};return b.addEventListener("focusin",E),b.addEventListener("focusout",A),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",C),window.addEventListener("blur",E),window.addEventListener("focus",O),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",A),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",C),window.removeEventListener("blur",E),window.removeEventListener("focus",O)}}},[j,l.isClosePausedRef]);const w=y.useCallback(({tabbingDirection:b})=>{const E=u().map(O=>{const A=O.ref.current,C=[A,...yAe(A)];return b==="forwards"?C:C.reverse()});return(b==="forwards"?E.reverse():E).flat()},[u]);return y.useEffect(()=>{const b=p.current;if(b){const N=E=>{const O=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!O){const C=document.activeElement,k=E.shiftKey;if(E.target===b&&k){f.current?.focus();return}const R=w({tabbingDirection:k?"backwards":"forwards"}),B=R.findIndex($=>$===C);v_(R.slice(B+1))?E.preventDefault():k?f.current?.focus():m.current?.focus()}};return b.addEventListener("keydown",N),()=>b.removeEventListener("keydown",N)}},[u,w]),i.jsxs(Pye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(OC,{ref:f,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"forwards"});v_(b)}}),i.jsx(XE.Slot,{scope:n,children:i.jsx($e.ol,{tabIndex:-1,...s,ref:g})}),j&&i.jsx(OC,{ref:m,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"backwards"});v_(b)}})]})});gW.displayName=vW;var yW="ToastFocusProxy",OC=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=dx(yW,n);return i.jsx(Qy,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!s.viewport?.contains(u)&&r()}})});OC.displayName=yW;var dm="Toast",sAe="toast.swipeStart",oAe="toast.swipeMove",lAe="toast.swipeCancel",cAe="toast.swipeEnd",xW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...l}=e,[u,d]=Ea({prop:r,defaultProp:a??!0,onChange:s,caller:dm});return i.jsx(Bn,{present:n||u,children:i.jsx(fAe,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:ln(e.onPause),onResume:ln(e.onResume),onSwipeStart:_e(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:_e(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:_e(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:_e(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});xW.displayName=dm;var[uAe,dAe]=mW(dm,{onClose(){}}),fAe=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,w=dx(dm,n),[b,N]=y.useState(null),E=Ue(t,q=>N(q)),O=y.useRef(null),A=y.useRef(null),C=a||w.duration,k=y.useRef(0),T=y.useRef(C),M=y.useRef(0),{onToastAdd:R,onToastRemove:B}=w,$=ln(()=>{b?.contains(document.activeElement)&&w.viewport?.focus(),l()}),H=y.useCallback(q=>{!q||q===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout($,q))},[$]);y.useEffect(()=>{const q=w.viewport;if(q){const G=()=>{H(T.current),f?.()},L=()=>{const D=new Date().getTime()-k.current;T.current=T.current-D,window.clearTimeout(M.current),d?.()};return q.addEventListener(NC,L),q.addEventListener(CC,G),()=>{q.removeEventListener(NC,L),q.removeEventListener(CC,G)}}},[w.viewport,C,d,f,H]),y.useEffect(()=>{s&&!w.isClosePausedRef.current&&H(C)},[s,C,w.isClosePausedRef,H]),y.useEffect(()=>(R(),()=>B()),[R,B]);const V=y.useMemo(()=>b?CW(b):null,[b]);return w.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(hAe,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(uAe,{scope:n,onClose:$,children:Sl.createPortal(i.jsx(XE.ItemSlot,{scope:n,children:i.jsx(Mye,{asChild:!0,onEscapeKeyDown:_e(u,()=>{w.isFocusedToastEscapeKeyDownRef.current||$(),w.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx($e.li,{tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":w.swipeDirection,...j,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:_e(e.onKeyDown,q=>{q.key==="Escape"&&(u?.(q.nativeEvent),q.nativeEvent.defaultPrevented||(w.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:_e(e.onPointerDown,q=>{q.button===0&&(O.current={x:q.clientX,y:q.clientY})}),onPointerMove:_e(e.onPointerMove,q=>{if(!O.current)return;const G=q.clientX-O.current.x,L=q.clientY-O.current.y,D=!!A.current,U=["left","right"].includes(w.swipeDirection),K=["left","up"].includes(w.swipeDirection)?Math.min:Math.max,J=U?K(0,G):0,I=U?0:K(0,L),z=q.pointerType==="touch"?10:2,Y={x:J,y:I},te={originalEvent:q,delta:Y};D?(A.current=Y,rv(oAe,p,te,{discrete:!1})):QL(Y,w.swipeDirection,z)?(A.current=Y,rv(sAe,m,te,{discrete:!1}),q.target.setPointerCapture(q.pointerId)):(Math.abs(G)>z||Math.abs(L)>z)&&(O.current=null)}),onPointerUp:_e(e.onPointerUp,q=>{const G=A.current,L=q.target;if(L.hasPointerCapture(q.pointerId)&&L.releasePointerCapture(q.pointerId),A.current=null,O.current=null,G){const D=q.currentTarget,U={originalEvent:q,delta:G};QL(G,w.swipeDirection,w.swipeThreshold)?rv(cAe,x,U,{discrete:!0}):rv(lAe,g,U,{discrete:!0}),D.addEventListener("click",K=>K.preventDefault(),{once:!0})}})})})}),w.viewport)})]}):null}),hAe=e=>{const{__scopeToast:t,children:n,...r}=e,a=dx(dm,t),[s,l]=y.useState(!1),[u,d]=y.useState(!1);return vAe(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(Tl,{asChild:!0,children:i.jsx(Qy,{...r,children:s&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},mAe="ToastTitle",bW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});bW.displayName=mAe;var pAe="ToastDescription",wW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});wW.displayName=pAe;var jW="ToastAction",SW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(NW,{altText:n,asChild:!0,children:i.jsx(ZE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${jW}\`. Expected non-empty \`string\`.`),null)});SW.displayName=jW;var _W="ToastClose",ZE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=dAe(_W,n);return i.jsx(NW,{asChild:!0,children:i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,a.onClose)})})});ZE.displayName=_W;var NW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx($e.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function CW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),gAe(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...CW(r))}}),t}function rv(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?HC(a,s):a.dispatchEvent(s)}var QL=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function vAe(e=()=>{}){const t=ln(e);Yn(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function gAe(e){return e.nodeType===e.ELEMENT_NODE}function yAe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function v_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var xAe=pW,OW=gW,EW=xW,AW=bW,TW=wW,kW=SW,MW=ZE;const bAe=xAe,PW=y.forwardRef(({className:e,...t},n)=>i.jsx(OW,{ref:n,className:ce("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));PW.displayName=OW.displayName;const wAe=Zu("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),RW=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(EW,{ref:r,className:ce(wAe({variant:t}),e),...n}));RW.displayName=EW.displayName;const jAe=y.forwardRef(({className:e,...t},n)=>i.jsx(kW,{ref:n,className:ce("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));jAe.displayName=kW.displayName;const DW=y.forwardRef(({className:e,...t},n)=>i.jsx(MW,{ref:n,className:ce("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Yh,{className:"h-4 w-4"})}));DW.displayName=MW.displayName;const $W=y.forwardRef(({className:e,...t},n)=>i.jsx(AW,{ref:n,className:ce("text-sm font-semibold [&+div]:text-xs",e),...t}));$W.displayName=AW.displayName;const IW=y.forwardRef(({className:e,...t},n)=>i.jsx(TW,{ref:n,className:ce("text-sm opacity-90",e),...t}));IW.displayName=TW.displayName;function SAe(){const{toasts:e}=yr();return i.jsxs(bAe,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return i.jsxs(RW,{...s,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx($W,{children:n}),r&&i.jsx(IW,{children:r})]}),a,i.jsx(DW,{})]},t)}),i.jsx(PW,{})]})}iG.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(eAe,{defaultTheme:"system",children:i.jsxs(tAe,{children:[i.jsx(XY,{router:JEe}),i.jsx(SAe,{})]})})})); diff --git a/webui/dist/index.html b/webui/dist/index.html index ff05dd11..fb375624 100644 --- a/webui/dist/index.html +++ b/webui/dist/index.html @@ -5,7 +5,7 @@ MaiBot Dashboard - + From 44f427dc64e7bfe3684445f7dd96f45029253dc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Wed, 19 Nov 2025 23:35:14 +0800 Subject: [PATCH 05/12] Ruff fix --- bot.py | 8 +- scripts/build_io_pairs.py | 2 - scripts/expression_scatter_analysis.py | 1 - scripts/mmipkg_tool.py | 531 ++++++++-------- src/chat/heart_flow/heartFC_chat.py | 1 - src/chat/knowledge/__init__.py | 2 + src/chat/knowledge/qa_manager.py | 5 +- src/chat/replyer/group_generator.py | 12 +- src/chat/replyer/private_generator.py | 8 +- src/chat/utils/chat_history_summarizer.py | 2 +- src/common/logger.py | 38 +- src/config/official_configs.py | 4 +- src/express/expression_learner.py | 6 +- src/express/expression_selector.py | 9 +- src/jargon/jargon_miner.py | 245 ++++---- src/llm_models/model_client/gemini_client.py | 2 +- src/llm_models/model_client/openai_client.py | 2 +- src/llm_models/payload_content/message.py | 4 +- src/llm_models/utils_model.py | 2 +- src/main.py | 11 +- src/memory_system/memory_retrieval.py | 471 +++++++------- src/memory_system/memory_utils.py | 45 +- src/memory_system/retrieval_tools/__init__.py | 1 + .../retrieval_tools/query_chat_history.py | 98 ++- .../retrieval_tools/query_lpmm_knowledge.py | 2 - .../retrieval_tools/query_person_info.py | 108 ++-- .../retrieval_tools/tool_registry.py | 24 +- src/person_info/person_info.py | 37 +- src/plugin_system/core/tool_use.py | 1 - src/webui/config_routes.py | 4 +- src/webui/emoji_routes.py | 280 ++++----- src/webui/expression_routes.py | 195 +++--- src/webui/git_mirror_service.py | 331 ++++------ src/webui/logs_ws.py | 43 +- src/webui/manager.py | 41 +- src/webui/person_routes.py | 171 +++--- src/webui/plugin_progress_ws.py | 31 +- src/webui/plugin_routes.py | 579 ++++++++---------- src/webui/routers/system.py | 47 +- src/webui/routes.py | 116 ++-- src/webui/statistics_routes.py | 213 +++---- src/webui/token_manager.py | 71 +-- 42 files changed, 1742 insertions(+), 2062 deletions(-) diff --git a/bot.py b/bot.py index 38894b29..7ba9af4b 100644 --- a/bot.py +++ b/bot.py @@ -1,7 +1,6 @@ import asyncio import hashlib import os -import sys import time import platform import traceback @@ -30,7 +29,7 @@ else: raise # 最早期初始化日志系统,确保所有后续模块都使用正确的日志格式 -from src.common.logger import initialize_logging, get_logger, shutdown_logging #noqa +from src.common.logger import initialize_logging, get_logger, shutdown_logging # noqa initialize_logging() @@ -212,9 +211,10 @@ if __name__ == "__main__": # 创建事件循环 loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) - + # 初始化 WebSocket 日志推送 from src.common.logger import initialize_ws_handler + initialize_ws_handler(loop) try: @@ -251,7 +251,7 @@ if __name__ == "__main__": print(f"关闭日志系统时出错: {e}") print("[主程序] 准备退出...") - + # 使用 os._exit() 强制退出,避免被阻塞 # 由于已经在 graceful_shutdown() 中完成了所有清理工作,这是安全的 os._exit(exit_code) diff --git a/scripts/build_io_pairs.py b/scripts/build_io_pairs.py index f934566a..944d7671 100644 --- a/scripts/build_io_pairs.py +++ b/scripts/build_io_pairs.py @@ -16,8 +16,6 @@ if PROJECT_ROOT not in sys.path: sys.path.insert(0, PROJECT_ROOT) - - SECONDS_5_MINUTES = 5 * 60 diff --git a/scripts/expression_scatter_analysis.py b/scripts/expression_scatter_analysis.py index b022c94e..3cb22f71 100644 --- a/scripts/expression_scatter_analysis.py +++ b/scripts/expression_scatter_analysis.py @@ -12,7 +12,6 @@ project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, project_root) - # 设置中文字体 plt.rcParams["font.sans-serif"] = ["SimHei", "Microsoft YaHei", "DejaVu Sans"] plt.rcParams["axes.unicode_minus"] = False diff --git a/scripts/mmipkg_tool.py b/scripts/mmipkg_tool.py index 6f14ae5b..3b5369ac 100644 --- a/scripts/mmipkg_tool.py +++ b/scripts/mmipkg_tool.py @@ -57,8 +57,8 @@ from src.common.database.database import db from src.common.database.database_model import Emoji # 常量定义 -MAGIC = b'MMIP' -FOOTER_MAGIC = b'MMFF' +MAGIC = b"MMIP" +FOOTER_MAGIC = b"MMFF" VERSION = 1 FOOTER_VERSION = 1 @@ -67,7 +67,7 @@ MAX_MANIFEST_SIZE = 200 * 1024 * 1024 # 200 MB MAX_PAYLOAD_SIZE = 10 * 1024 * 1024 * 1024 # 10 GB # 支持的图片格式 -SUPPORTED_FORMATS = {'.jpg', '.jpeg', '.png', '.gif', '.webp', '.avif', '.bmp'} +SUPPORTED_FORMATS = {".jpg", ".jpeg", ".png", ".gif", ".webp", ".avif", ".bmp"} # 创建控制台对象 console = Console() @@ -75,6 +75,7 @@ console = Console() class MMIPKGError(Exception): """MMIPKG 相关错误""" + pass @@ -97,56 +98,56 @@ def get_image_info(file_path: str) -> Tuple[int, int, str]: try: with Image.open(file_path) as img: width, height = img.size - format_lower = img.format.lower() if img.format else 'unknown' + format_lower = img.format.lower() if img.format else "unknown" mime_map = { - 'jpeg': 'image/jpeg', - 'jpg': 'image/jpeg', - 'png': 'image/png', - 'gif': 'image/gif', - 'webp': 'image/webp', - 'avif': 'image/avif', - 'bmp': 'image/bmp' + "jpeg": "image/jpeg", + "jpg": "image/jpeg", + "png": "image/png", + "gif": "image/gif", + "webp": "image/webp", + "avif": "image/avif", + "bmp": "image/bmp", } - mime_type = mime_map.get(format_lower, f'image/{format_lower}') + mime_type = mime_map.get(format_lower, f"image/{format_lower}") return width, height, mime_type except Exception as e: print(f"警告: 无法读取图片信息 {file_path}: {e}") - return 0, 0, 'image/unknown' + return 0, 0, "image/unknown" -def reencode_image(file_path: str, output_format: str = 'webp', quality: int = 80) -> bytes: +def reencode_image(file_path: str, output_format: str = "webp", quality: int = 80) -> bytes: """重新编码图片""" try: with Image.open(file_path) as img: # 转换为 RGB(如果需要) - if img.mode in ('RGBA', 'LA', 'P'): - if output_format.lower() == 'jpeg': + if img.mode in ("RGBA", "LA", "P"): + if output_format.lower() == "jpeg": # JPEG 不支持透明度,转为白色背景 - background = Image.new('RGB', img.size, (255, 255, 255)) - if img.mode == 'P': - img = img.convert('RGBA') - background.paste(img, mask=img.split()[-1] if img.mode == 'RGBA' else None) + background = Image.new("RGB", img.size, (255, 255, 255)) + if img.mode == "P": + img = img.convert("RGBA") + background.paste(img, mask=img.split()[-1] if img.mode == "RGBA" else None) img = background - elif output_format.lower() == 'webp': + elif output_format.lower() == "webp": # WebP 支持透明度 - if img.mode == 'P': - img = img.convert('RGBA') - elif img.mode not in ('RGB', 'RGBA'): - img = img.convert('RGB') - + if img.mode == "P": + img = img.convert("RGBA") + elif img.mode not in ("RGB", "RGBA"): + img = img.convert("RGB") + # 编码图片 output = io.BytesIO() - save_kwargs = {'format': output_format.upper()} - - if output_format.lower() in {'jpeg', 'jpg'}: - save_kwargs['quality'] = quality - save_kwargs['optimize'] = True - elif output_format.lower() == 'webp': - save_kwargs['quality'] = quality - save_kwargs['method'] = 6 # 更好的压缩 - elif output_format.lower() == 'png': - save_kwargs['optimize'] = True - + save_kwargs = {"format": output_format.upper()} + + if output_format.lower() in {"jpeg", "jpg"}: + save_kwargs["quality"] = quality + save_kwargs["optimize"] = True + elif output_format.lower() == "webp": + save_kwargs["quality"] = quality + save_kwargs["method"] = 6 # 更好的压缩 + elif output_format.lower() == "png": + save_kwargs["optimize"] = True + img.save(output, **save_kwargs) return output.getvalue() except Exception as e: @@ -155,25 +156,28 @@ def reencode_image(file_path: str, output_format: str = 'webp', quality: int = 8 class MMIPKGPacker: """MMIPKG 打包器""" - - def __init__(self, - use_compression: bool = True, - zstd_level: int = 3, - reencode: Optional[str] = None, - reencode_quality: int = 80): + + def __init__( + self, + use_compression: bool = True, + zstd_level: int = 3, + reencode: Optional[str] = None, + reencode_quality: int = 80, + ): self.use_compression = use_compression and zstd is not None self.zstd_level = zstd_level self.reencode = reencode self.reencode_quality = reencode_quality - + if use_compression and zstd is None: print("警告: zstandard 未安装,将不使用压缩") self.use_compression = False - - def pack_from_db(self, output_path: str, pack_name: Optional[str] = None, - custom_manifest: Optional[Dict] = None) -> bool: + + def pack_from_db( + self, output_path: str, pack_name: Optional[str] = None, custom_manifest: Optional[Dict] = None + ) -> bool: """从数据库导出已注册的表情包 - + Args: output_path: 输出文件路径 pack_name: 包名称 @@ -183,21 +187,21 @@ class MMIPKGPacker: # 连接数据库 if db.is_closed(): db.connect() - + # 查询所有已注册的表情包 emojis = Emoji.select().where(Emoji.is_registered) emoji_count = emojis.count() - + if emoji_count == 0: print("错误: 数据库中没有已注册的表情包") return False - + print(f"找到 {emoji_count} 个已注册的表情包") - + # 准备 items items = [] image_data_list = [] - + # 使用进度条处理表情包 with Progress( SpinnerColumn(), @@ -205,37 +209,39 @@ class MMIPKGPacker: BarColumn(), TextColumn("[progress.percentage]{task.percentage:>3.0f}%"), TimeElapsedColumn(), - console=console + console=console, ) as progress: task = progress.add_task("[cyan]扫描表情包...", total=emoji_count) - + for idx, emoji in enumerate(emojis, 1): - progress.update(task, description=f"[cyan]处理 {idx}/{emoji_count}: {os.path.basename(emoji.full_path)}") - + progress.update( + task, description=f"[cyan]处理 {idx}/{emoji_count}: {os.path.basename(emoji.full_path)}" + ) + # 检查文件是否存在 if not os.path.exists(emoji.full_path): console.print(" [yellow]警告: 文件不存在,跳过[/yellow]") progress.advance(task) continue - + # 读取或重新编码图片 if self.reencode: try: img_bytes = reencode_image(emoji.full_path, self.reencode, self.reencode_quality) except Exception as e: console.print(f" [yellow]警告: 重新编码失败,使用原始文件: {e}[/yellow]") - with open(emoji.full_path, 'rb') as f: + with open(emoji.full_path, "rb") as f: img_bytes = f.read() else: - with open(emoji.full_path, 'rb') as f: + with open(emoji.full_path, "rb") as f: img_bytes = f.read() - + # 计算 SHA256 img_sha = calculate_sha256(img_bytes) - + # 获取图片信息 width, height, mime_type = get_image_info(emoji.full_path) - + # 构建 item(使用短字段名) filename = os.path.basename(emoji.full_path) item = { @@ -259,95 +265,97 @@ class MMIPKGPacker: "emoji_hash": emoji.emoji_hash or "", "is_registered": True, "is_banned": emoji.is_banned or False, - } + }, } - + items.append(item) image_data_list.append(img_bytes) progress.advance(task) - + if not items: print("错误: 没有有效的表情包可以打包") return False - + print(f"找到 {len(items)} 个表情包可以打包...") - + # 准备打包 pack_id = str(uuid.uuid4()) if pack_name is None: pack_name = f"MaiBot_Emojis_{datetime.now().strftime('%Y%m%d_%H%M%S')}" - + manifest = { "p": pack_id, # pack_id "n": pack_name, # pack_name "t": datetime.now().isoformat(), # created_at - "a": items # items array + "a": items, # items array } - + # 添加自定义字段 if custom_manifest: for key, value in custom_manifest.items(): if key not in manifest: # 不覆盖核心字段 manifest[key] = value - + # 序列化 manifest manifest_bytes = msgpack.packb(manifest, use_bin_type=True) manifest_len = len(manifest_bytes) - + # 计算 payload 大小 payload_size = 4 + manifest_len # manifest_len + manifest_bytes for img_bytes in image_data_list: payload_size += 4 + len(img_bytes) # img_len + img_bytes - + print(f"Manifest 大小: {manifest_len / 1024:.2f} KB") print(f"Payload 未压缩大小: {payload_size / 1024 / 1024:.2f} MB") - + # 写入文件 return self._write_package(output_path, manifest_bytes, image_data_list, payload_size) - + except Exception as e: print(f"打包失败: {e}") import traceback + traceback.print_exc() return False finally: if not db.is_closed(): db.close() - - def _write_package(self, output_path: str, manifest_bytes: bytes, - image_data_list: List[bytes], payload_size: int) -> bool: + + def _write_package( + self, output_path: str, manifest_bytes: bytes, image_data_list: List[bytes], payload_size: int + ) -> bool: """写入打包文件""" try: - with open(output_path, 'wb') as f: + with open(output_path, "wb") as f: # 写入 Header (32 bytes) flags = 0x01 if self.use_compression else 0x00 header = MAGIC # 4 bytes - header += struct.pack('B', VERSION) # 1 byte - header += struct.pack('B', flags) # 1 byte - header += b'\x00\x00' # 2 bytes reserved - header += struct.pack('>Q', payload_size) # 8 bytes - header += struct.pack('>Q', len(manifest_bytes)) # 8 bytes - header += b'\x00' * 8 # 8 bytes reserved - + header += struct.pack("B", VERSION) # 1 byte + header += struct.pack("B", flags) # 1 byte + header += b"\x00\x00" # 2 bytes reserved + header += struct.pack(">Q", payload_size) # 8 bytes + header += struct.pack(">Q", len(manifest_bytes)) # 8 bytes + header += b"\x00" * 8 # 8 bytes reserved + assert len(header) == 32, f"Header size mismatch: {len(header)}" f.write(header) - + # 准备 payload 并计算 SHA256 payload_sha = hashlib.sha256() - + # 写入 payload(可能压缩) if self.use_compression: console.print(f"[cyan]使用 Zstd 压缩 (level={self.zstd_level})...[/cyan]") compressor = zstd.ZstdCompressor(level=self.zstd_level) - + with compressor.stream_writer(f, closefd=False) as writer: # 写入 manifest - manifest_len_bytes = struct.pack('>I', len(manifest_bytes)) + manifest_len_bytes = struct.pack(">I", len(manifest_bytes)) writer.write(manifest_len_bytes) writer.write(manifest_bytes) payload_sha.update(manifest_len_bytes) payload_sha.update(manifest_bytes) - + # 使用进度条写入所有图片 with Progress( SpinnerColumn(), @@ -355,13 +363,13 @@ class MMIPKGPacker: BarColumn(), TextColumn("[progress.percentage]{task.percentage:>3.0f}%"), TimeRemainingColumn(), - console=console + console=console, ) as progress: task = progress.add_task("[green]压缩写入图片...", total=len(image_data_list)) - + for idx, img_bytes in enumerate(image_data_list, 1): progress.update(task, description=f"[green]压缩写入 {idx}/{len(image_data_list)}") - img_len_bytes = struct.pack('>I', len(img_bytes)) + img_len_bytes = struct.pack(">I", len(img_bytes)) writer.write(img_len_bytes) writer.write(img_bytes) payload_sha.update(img_len_bytes) @@ -370,12 +378,12 @@ class MMIPKGPacker: else: # 不压缩,直接写入 # 写入 manifest - manifest_len_bytes = struct.pack('>I', len(manifest_bytes)) + manifest_len_bytes = struct.pack(">I", len(manifest_bytes)) f.write(manifest_len_bytes) f.write(manifest_bytes) payload_sha.update(manifest_len_bytes) payload_sha.update(manifest_bytes) - + # 使用进度条写入所有图片 with Progress( SpinnerColumn(), @@ -383,29 +391,29 @@ class MMIPKGPacker: BarColumn(), TextColumn("[progress.percentage]{task.percentage:>3.0f}%"), TimeRemainingColumn(), - console=console + console=console, ) as progress: task = progress.add_task("[green]写入图片...", total=len(image_data_list)) - + for idx, img_bytes in enumerate(image_data_list, 1): progress.update(task, description=f"[green]写入 {idx}/{len(image_data_list)}") - img_len_bytes = struct.pack('>I', len(img_bytes)) + img_len_bytes = struct.pack(">I", len(img_bytes)) f.write(img_len_bytes) f.write(img_bytes) payload_sha.update(img_len_bytes) payload_sha.update(img_bytes) progress.advance(task) - + # 写入 Footer (40 bytes) file_sha256 = payload_sha.digest() footer = FOOTER_MAGIC # 4 bytes footer += file_sha256 # 32 bytes - footer += struct.pack('B', FOOTER_VERSION) # 1 byte - footer += b'\x00' * 3 # 3 bytes reserved - + footer += struct.pack("B", FOOTER_VERSION) # 1 byte + footer += b"\x00" * 3 # 3 bytes reserved + assert len(footer) == 40, f"Footer size mismatch: {len(footer)}" f.write(footer) - + file_size = f.tell() print("\n打包完成!") print(f"输出文件: {output_path}") @@ -413,100 +421,100 @@ class MMIPKGPacker: if self.use_compression: ratio = (1 - file_size / (payload_size + 32 + 40)) * 100 print(f"压缩率: {ratio:.1f}%") - + return True - + except Exception as e: print(f"写入文件失败: {e}") import traceback + traceback.print_exc() return False class MMIPKGUnpacker: """MMIPKG 解包器""" - + def __init__(self, verify_sha: bool = True): self.verify_sha = verify_sha - - def import_to_db(self, package_path: str, - output_dir: Optional[str] = None, - replace_existing: bool = False, - batch_size: int = 500) -> bool: + + def import_to_db( + self, package_path: str, output_dir: Optional[str] = None, replace_existing: bool = False, batch_size: int = 500 + ) -> bool: """导入到数据库""" try: if not os.path.exists(package_path): print(f"错误: 文件不存在: {package_path}") return False - + # 连接数据库 if db.is_closed(): db.connect() - + # 如果未指定输出目录,使用默认的已注册表情包目录 if output_dir is None: output_dir = os.path.join(PROJECT_ROOT, "data", "emoji_registed") - + os.makedirs(output_dir, exist_ok=True) - + print(f"正在读取包: {package_path}") - - with open(package_path, 'rb') as f: + + with open(package_path, "rb") as f: # 读取 Header header = f.read(32) if len(header) != 32: raise MMIPKGError("Header 大小不正确") - + magic = header[:4] if magic != MAGIC: raise MMIPKGError(f"无效的 MAGIC: {magic}") - - version = struct.unpack('B', header[4:5])[0] + + version = struct.unpack("B", header[4:5])[0] if version != VERSION: print(f"警告: 包版本 {version} 与当前版本 {VERSION} 不匹配") - - flags = struct.unpack('B', header[5:6])[0] + + flags = struct.unpack("B", header[5:6])[0] is_compressed = bool(flags & 0x01) - - payload_uncompressed_len = struct.unpack('>Q', header[8:16])[0] - manifest_uncompressed_len = struct.unpack('>Q', header[16:24])[0] - + + payload_uncompressed_len = struct.unpack(">Q", header[8:16])[0] + manifest_uncompressed_len = struct.unpack(">Q", header[16:24])[0] + # 安全检查 if manifest_uncompressed_len > MAX_MANIFEST_SIZE: raise MMIPKGError(f"Manifest 过大: {manifest_uncompressed_len} bytes") if payload_uncompressed_len > MAX_PAYLOAD_SIZE: raise MMIPKGError(f"Payload 过大: {payload_uncompressed_len} bytes") - + print(f"压缩: {'是' if is_compressed else '否'}") print(f"Payload 大小: {payload_uncompressed_len / 1024 / 1024:.2f} MB") - + # 读取 payload payload_start = f.tell() - + # 找到 footer 位置 f.seek(-40, 2) # 从文件末尾向前 40 bytes footer = f.read(40) - + if footer[:4] != FOOTER_MAGIC: raise MMIPKGError("无效的 Footer MAGIC") - + expected_sha = footer[4:36] - + # 回到 payload 开始 f.seek(payload_start) - + # 读取整个 payload(用于计算 SHA) footer_start = os.path.getsize(package_path) - 40 payload_data_size = footer_start - payload_start - + # 解压或直接读取 if is_compressed: if zstd is None: raise MMIPKGError("需要 zstandard 库来解压此包") - + print("解压 payload...") compressed_data = f.read(payload_data_size) - + # 使用流式解压,不需要预知解压后大小 decompressor = zstd.ZstdDecompressor() try: @@ -519,60 +527,63 @@ class MMIPKGUnpacker: # 方法2:如果流式失败,尝试直接解压(兼容旧格式) print(f" 流式解压失败,尝试直接解压: {e}") try: - payload_data = decompressor.decompress(compressed_data, max_output_size=payload_uncompressed_len) + payload_data = decompressor.decompress( + compressed_data, max_output_size=payload_uncompressed_len + ) except Exception as e2: raise MMIPKGError(f"解压失败: {e2}") from e2 else: payload_data = f.read(payload_data_size) - + # 验证 SHA256 actual_sha = calculate_sha256(payload_data) if self.verify_sha and actual_sha != expected_sha: raise MMIPKGError("SHA256 校验失败!") if self.verify_sha: print("✓ SHA256 校验通过") - + # 解析 payload payload_stream = io.BytesIO(payload_data) - + # 读取 manifest manifest_len_bytes = payload_stream.read(4) - manifest_len = struct.unpack('>I', manifest_len_bytes)[0] + manifest_len = struct.unpack(">I", manifest_len_bytes)[0] manifest_bytes = payload_stream.read(manifest_len) manifest = msgpack.unpackb(manifest_bytes, raw=False) - + pack_id = manifest.get("p", "unknown") pack_name = manifest.get("n", "unknown") created_at = manifest.get("t", "unknown") items = manifest.get("a", []) - + print("\n包信息:") print(f" ID: {pack_id}") print(f" 名称: {pack_name}") print(f" 创建时间: {created_at}") print(f" 表情包数量: {len(items)}") - + # 导入表情包 - return self._import_items(payload_stream, items, output_dir, - replace_existing, batch_size) - + return self._import_items(payload_stream, items, output_dir, replace_existing, batch_size) + except Exception as e: print(f"导入失败: {e}") import traceback + traceback.print_exc() return False finally: if not db.is_closed(): db.close() - - def _import_items(self, payload_stream: BinaryIO, items: List[Dict], - output_dir: str, replace_existing: bool, batch_size: int) -> bool: + + def _import_items( + self, payload_stream: BinaryIO, items: List[Dict], output_dir: str, replace_existing: bool, batch_size: int + ) -> bool: """导入 items 到数据库""" try: imported_count = 0 skipped_count = 0 error_count = 0 - + # 开始事务,使用进度条 with db.atomic(): with Progress( @@ -581,14 +592,14 @@ class MMIPKGUnpacker: BarColumn(), TextColumn("[progress.percentage]{task.percentage:>3.0f}%"), TimeRemainingColumn(), - console=console + console=console, ) as progress: task = progress.add_task("[cyan]导入表情包...", total=len(items)) - + for idx, item in enumerate(items, 1): try: progress.update(task, description=f"[cyan]导入 {idx}/{len(items)}") - + # 读取图片数据 img_len_bytes = payload_stream.read(4) if len(img_len_bytes) != 4: @@ -596,16 +607,16 @@ class MMIPKGUnpacker: error_count += 1 progress.advance(task) continue - - img_len = struct.unpack('>I', img_len_bytes)[0] + + img_len = struct.unpack(">I", img_len_bytes)[0] img_bytes = payload_stream.read(img_len) - + if len(img_bytes) != img_len: console.print(f"[red]错误: 图片数据不完整 (item {idx})[/red]") error_count += 1 progress.advance(task) continue - + # 验证图片 SHA if self.verify_sha and (expected_sha := item.get("h")): actual_sha = calculate_sha256(img_bytes) @@ -614,24 +625,24 @@ class MMIPKGUnpacker: error_count += 1 progress.advance(task) continue - + # 获取元数据 opt = item.get("opt", {}) # 使用 or 提供回退值,如果 emoji_hash 为空则使用后续计算的值 emoji_hash = opt.get("emoji_hash") or calculate_sha256(img_bytes).hex() - + # 检查是否已存在 existing = Emoji.get_or_none(Emoji.emoji_hash == emoji_hash) - + if existing and not replace_existing: skipped_count += 1 progress.advance(task) continue - + # 保存图片文件 filename = item.get("fn", f"{emoji_hash[:8]}.{opt.get('format', 'png')}") file_path = os.path.join(output_dir, filename) - + # 如果文件已存在且不替换,生成新文件名 if os.path.exists(file_path) and not replace_existing: base, ext = os.path.splitext(filename) @@ -640,14 +651,14 @@ class MMIPKGUnpacker: filename = f"{base}_{counter}{ext}" file_path = os.path.join(output_dir, filename) counter += 1 - - with open(file_path, 'wb') as img_file: + + with open(file_path, "wb") as img_file: img_file.write(img_bytes) - + # 准备数据库记录 current_time = time.time() emotion_str = opt.get("emotion", "") - + if existing and replace_existing: # 更新现有记录 - 恢复完整的数据库信息 existing.full_path = file_path @@ -678,28 +689,29 @@ class MMIPKGUnpacker: is_registered=opt.get("is_registered", True), is_banned=opt.get("is_banned", False), ) - + imported_count += 1 progress.advance(task) - + except Exception as e: console.print(f"[red]处理 item {idx} 时出错: {e}[/red]") error_count += 1 progress.advance(task) continue - + # 输出统计 - + console.print(f"\n[green]✓ 成功导入 {imported_count} 个表情包[/green]") console.print(f" [yellow]跳过 {skipped_count} 个[/yellow]") if error_count > 0: console.print(f" [red]错误 {error_count} 个[/red]") - + return error_count == 0 - + except Exception as e: console.print(f"[red]导入 items 失败: {e}[/red]") import traceback + traceback.print_exc() return False @@ -719,26 +731,27 @@ def print_menu(): console.print(" [2] [bold]导入表情包[/bold] (从 .mmipkg 文件导入到数据库)") console.print(" [0] [bold]退出[/bold]") console.print() -def get_input(prompt: str, default: Optional[str] = None, - choices: Optional[List[str]] = None) -> str: + + +def get_input(prompt: str, default: Optional[str] = None, choices: Optional[List[str]] = None) -> str: """获取用户输入""" if default: prompt = f"{prompt} (默认: {default})" - + while True: try: value = input(f"{prompt}: ").strip() - + if not value: if default: return default console.print(" [yellow]⚠ 输入不能为空,请重新输入[/yellow]") continue - + if choices and value not in choices: console.print(f" [yellow]⚠ 无效的选择,请选择: {', '.join(choices)}[/yellow]") continue - + return value except KeyboardInterrupt: console.print("\n[yellow]操作已取消[/yellow]") @@ -756,13 +769,13 @@ def get_yes_no(prompt: str, default: bool = False) -> bool: while True: try: value = input(f"{prompt} ({default_str}): ").strip().lower() - + if not value: return default - - if value in ('y', 'yes', '是'): + + if value in ("y", "yes", "是"): return True - elif value in ('n', 'no', '否'): + elif value in ("n", "no", "否"): return False else: console.print(" [yellow]⚠ 请输入 y/yes/是 或 n/no/否[/yellow]") @@ -778,10 +791,10 @@ def get_int(prompt: str, default: int, min_val: int = 1, max_val: int = 100) -> while True: try: value = input(f"{prompt} (默认: {default}, 范围: {min_val}-{max_val}): ").strip() - + if not value: return default - + try: num = int(value) if min_val <= num <= max_val: @@ -818,15 +831,15 @@ def interactive_export(): console.print("\n[cyan]" + "-" * 70 + "[/cyan]") console.print("[bold]导出表情包到 .mmipkg 文件[/bold]") console.print("[cyan]" + "-" * 70 + "[/cyan]") - + # 检查数据库 try: if db.is_closed(): db.connect() - + emoji_count = Emoji.select().where(Emoji.is_registered).count() console.print(f"\n[green]✓ 找到 {emoji_count} 个已注册的表情包[/green]") - + if emoji_count == 0: console.print("[red]✗ 数据库中没有已注册的表情包,无法导出[/red]") return False @@ -836,27 +849,25 @@ def interactive_export(): finally: if not db.is_closed(): db.close() - + # 获取输出文件路径 console.print("\n[yellow]1. 输出文件设置[/yellow]") default_filename = f"maibot_emojis_{datetime.now().strftime('%Y%m%d_%H%M%S')}.mmipkg" output_path = get_input(" 输出文件路径", default_filename) - + # 确保有 .mmipkg 扩展名 - if not output_path.endswith('.mmipkg'): - output_path += '.mmipkg' - + if not output_path.endswith(".mmipkg"): + output_path += ".mmipkg" + # 获取包名称 default_pack_name = f"MaiBot表情包_{datetime.now().strftime('%Y%m%d')}" pack_name = get_input(" 包名称", default_pack_name) - + # 自定义 manifest console.print("\n[yellow]2. 包信息设置(可选)[/yellow]") if get_yes_no(" 是否添加包的作者和介绍信息", False): - custom_manifest = { - "author": author - } if (author := input(" 作者名称(可选): ").strip()) else {} - + custom_manifest = {"author": author} if (author := input(" 作者名称(可选): ").strip()) else {} + # 介绍信息 console.print(" 包介绍(限制 100 字以内):") if description := input(" > ").strip(): @@ -864,23 +875,23 @@ def interactive_export(): console.print(f" [yellow]⚠ 介绍过长({len(description)} 字),已截断至 100 字[/yellow]") description = description[:100] custom_manifest["description"] = description - + if not custom_manifest: custom_manifest = None else: console.print(" [green]✓ 已添加包信息[/green]") else: custom_manifest = None - + # 压缩设置 console.print("\n[yellow]3. 压缩设置[/yellow]") use_compression = get_yes_no(" 使用 Zstd 压缩", True) - + zstd_level = 3 if use_compression: print_compression_level_info() zstd_level = get_int(" 选择压缩级别", 3, 1, 22) - + # 重新编码设置 console.print("\n[yellow]4. 图片编码设置[/yellow]") if get_yes_no(" 是否重新编码图片(可显著减小文件大小)", False): @@ -888,13 +899,13 @@ def interactive_export(): console.print(" webp: 推荐,体积小且支持透明度") console.print(" jpeg: 最小体积,但不支持透明度") console.print(" png: 无损,文件较大") - reencode = get_input(" 选择格式", "webp", ['webp', 'jpeg', 'png']) - - quality = get_int(" 编码质量", 80, 1, 100) if reencode in ('webp', 'jpeg') else 80 + reencode = get_input(" 选择格式", "webp", ["webp", "jpeg", "png"]) + + quality = get_int(" 编码质量", 80, 1, 100) if reencode in ("webp", "jpeg") else 80 else: reencode = None quality = 80 - + # 确认导出 console.print("\n[cyan]" + "-" * 70 + "[/cyan]") console.print("[bold]导出配置:[/bold]") @@ -912,27 +923,24 @@ def interactive_export(): console.print(f" 编码质量: {quality}") console.print(f" 表情包数量: {emoji_count}") console.print("[cyan]" + "-" * 70 + "[/cyan]") - + if not get_yes_no("\n确认导出", True): console.print("[red]✗ 已取消导出[/red]") return False - + # 开始导出 console.print("\n[cyan]开始导出...[/cyan]") packer = MMIPKGPacker( - use_compression=use_compression, - zstd_level=zstd_level, - reencode=reencode, - reencode_quality=quality + use_compression=use_compression, zstd_level=zstd_level, reencode=reencode, reencode_quality=quality ) - + success = packer.pack_from_db(output_path, pack_name, custom_manifest) - + if success: console.print(f"\n[green]✓ 导出成功: {output_path}[/green]") else: console.print("\n[red]✗ 导出失败[/red]") - + return success @@ -941,37 +949,37 @@ def interactive_import(): console.print("\n[cyan]" + "-" * 70 + "[/cyan]") console.print("[bold]从 .mmipkg 文件导入表情包[/bold]") console.print("[cyan]" + "-" * 70 + "[/cyan]") - + # 选择导入模式 print_import_mode_selection() - import_mode = get_input("请选择", "1", ['1', '2']) - + import_mode = get_input("请选择", "1", ["1", "2"]) + input_files = [] - - if import_mode == '1': + + if import_mode == "1": # 自动扫描模式 import_dir = os.path.join(PROJECT_ROOT, "data", "import_emoji") os.makedirs(import_dir, exist_ok=True) - + console.print(f"\n[cyan]扫描目录: {import_dir}[/cyan]") - + # 查找所有 .mmipkg 文件 for file in os.listdir(import_dir): - if file.endswith('.mmipkg'): + if file.endswith(".mmipkg"): file_path = os.path.join(import_dir, file) if os.path.isfile(file_path): input_files.append(file_path) - + if not input_files: console.print("[red]✗ 目录中没有找到 .mmipkg 文件[/red]") console.print(f" 请将表情包文件放入: {import_dir}") return False - + console.print(f"\n[green]找到 {len(input_files)} 个文件:[/green]") for i, file_path in enumerate(input_files, 1): file_size = os.path.getsize(file_path) / 1024 / 1024 console.print(f" [{i}] {os.path.basename(file_path)} ({file_size:.2f} MB)") - + if not get_yes_no(f"\n确认导入这 {len(input_files)} 个文件", True): console.print("[red]✗ 已取消导入[/red]") return False @@ -979,23 +987,23 @@ def interactive_import(): # 手动输入模式 console.print("\n[yellow]1. 输入文件设置[/yellow]") input_path = get_input(" 输入文件路径 (.mmipkg)") - + if not os.path.exists(input_path): console.print(f"[red]✗ 文件不存在: {input_path}[/red]") return False - + input_files.append(input_path) - + # 获取输出目录 console.print("\n[yellow]2. 输出目录设置[/yellow]") default_output_dir = os.path.join(PROJECT_ROOT, "data", "emoji_registed") output_dir = get_input(" 输出目录", default_output_dir) - + # 导入选项 console.print("\n[yellow]3. 导入选项[/yellow]") replace_existing = get_yes_no(" 替换已存在的表情包", False) verify_sha = get_yes_no(" 验证 SHA256 完整性(推荐)", True) - + # 批量大小 console.print("\n[yellow]4. 性能设置[/yellow]") console.print(" [cyan]批量大小说明:[/cyan]") @@ -1003,7 +1011,7 @@ def interactive_import(): console.print(" 500-1000: 快速导入大量表情包") console.print(" 1000+: 极速模式,但内存占用更高") batch_size = get_int(" 批量提交大小", 500, 100, 5000) - + # 确认导入 console.print("\n[cyan]" + "-" * 70 + "[/cyan]") console.print("[bold]导入配置:[/bold]") @@ -1014,17 +1022,17 @@ def interactive_import(): console.print(f" SHA256 验证: {'是' if verify_sha else '否'}") console.print(f" 批量大小: {batch_size}") console.print("[cyan]" + "-" * 70 + "[/cyan]") - + if not get_yes_no("\n确认导入", True): console.print("[red]✗ 已取消导入[/red]") return False - + # 开始导入 unpacker = MMIPKGUnpacker(verify_sha=verify_sha) - + total_success = 0 total_failed = 0 - + # 使用进度条处理多个文件 with Progress( SpinnerColumn(), @@ -1032,31 +1040,28 @@ def interactive_import(): BarColumn(), TextColumn("[progress.percentage]{task.percentage:>3.0f}%"), TimeElapsedColumn(), - console=console + console=console, ) as progress: task = progress.add_task("[cyan]导入文件...", total=len(input_files)) - + for i, input_path in enumerate(input_files, 1): progress.update(task, description=f"[cyan]导入 [{i}/{len(input_files)}]: {os.path.basename(input_path)}") - + console.print(f"\n[bold]{'=' * 70}[/bold]") console.print(f"[bold]导入文件 [{i}/{len(input_files)}]: {os.path.basename(input_path)}[/bold]") console.print(f"[bold]{'=' * 70}[/bold]") - + success = unpacker.import_to_db( - input_path, - output_dir=output_dir, - replace_existing=replace_existing, - batch_size=batch_size + input_path, output_dir=output_dir, replace_existing=replace_existing, batch_size=batch_size ) - + if success: total_success += 1 else: total_failed += 1 - + progress.advance(task) - + # 总结 console.print(f"\n[bold]{'=' * 70}[/bold]") console.print("[bold]导入总结:[/bold]") @@ -1064,28 +1069,28 @@ def interactive_import(): if total_failed > 0: console.print(f" [red]失败: {total_failed} 个文件[/red]") console.print(f"[bold]{'=' * 70}[/bold]") - + return total_failed == 0 def main(): """主函数 - 交互式界面""" print_header() - + try: while True: print_menu() try: - choice = get_input("请选择", "1", ['0', '1', '2']) + choice = get_input("请选择", "1", ["0", "1", "2"]) except KeyboardInterrupt: console.print("\n[green]再见![/green]") return 0 - - if choice == '0': + + if choice == "0": console.print("\n[green]再见![/green]") return 0 - - elif choice == '1': + + elif choice == "1": try: interactive_export() except KeyboardInterrupt: @@ -1093,14 +1098,15 @@ def main(): except Exception as e: console.print(f"\n[red]✗ 发生错误: {e}[/red]") import traceback + traceback.print_exc() - + try: input("\n按 Enter 键继续...") except (KeyboardInterrupt, EOFError): pass - - elif choice == '2': + + elif choice == "2": try: interactive_import() except KeyboardInterrupt: @@ -1108,8 +1114,9 @@ def main(): except Exception as e: console.print(f"\n[red]✗ 发生错误: {e}[/red]") import traceback + traceback.print_exc() - + try: input("\n按 Enter 键继续...") except (KeyboardInterrupt, EOFError): @@ -1117,9 +1124,9 @@ def main(): except KeyboardInterrupt: console.print("\n[green]再见![/green]") return 0 - + return 0 -if __name__ == '__main__': +if __name__ == "__main__": sys.exit(main()) diff --git a/src/chat/heart_flow/heartFC_chat.py b/src/chat/heart_flow/heartFC_chat.py index 707c44bd..dbbd39ef 100644 --- a/src/chat/heart_flow/heartFC_chat.py +++ b/src/chat/heart_flow/heartFC_chat.py @@ -333,7 +333,6 @@ class HeartFChatting: # 重置连续 no_reply 计数 self.consecutive_no_reply_count = 0 reason = "" - await database_api.store_action_info( chat_stream=self.chat_stream, diff --git a/src/chat/knowledge/__init__.py b/src/chat/knowledge/__init__.py index b9c96708..a570277c 100644 --- a/src/chat/knowledge/__init__.py +++ b/src/chat/knowledge/__init__.py @@ -30,9 +30,11 @@ DATA_PATH = os.path.join(ROOT_PATH, "data") qa_manager = None inspire_manager = None + def get_qa_manager(): return qa_manager + def lpmm_start_up(): # sourcery skip: extract-duplicate-method # 检查LPMM知识库是否启用 if global_config.lpmm_knowledge.enable: diff --git a/src/chat/knowledge/qa_manager.py b/src/chat/knowledge/qa_manager.py index 66a6e4d1..9988dc22 100644 --- a/src/chat/knowledge/qa_manager.py +++ b/src/chat/knowledge/qa_manager.py @@ -128,11 +128,10 @@ class QAManager: selected_knowledge = knowledge[:limit] formatted_knowledge = [ - f"第{i + 1}条知识:{k[0]}\n 该条知识对于问题的相关性:{k[1]}" - for i, k in enumerate(selected_knowledge) + f"第{i + 1}条知识:{k[0]}\n 该条知识对于问题的相关性:{k[1]}" for i, k in enumerate(selected_knowledge) ] # if max_score is not None: - # formatted_knowledge.insert(0, f"最高相关系数:{max_score}") + # formatted_knowledge.insert(0, f"最高相关系数:{max_score}") found_knowledge = "\n".join(formatted_knowledge) if len(found_knowledge) > MAX_KNOWLEDGE_LENGTH: diff --git a/src/chat/replyer/group_generator.py b/src/chat/replyer/group_generator.py index 3019ca0d..cc948db1 100644 --- a/src/chat/replyer/group_generator.py +++ b/src/chat/replyer/group_generator.py @@ -226,7 +226,9 @@ class DefaultReplyer: traceback.print_exc() return False, llm_response - async def build_expression_habits(self, chat_history: str, target: str, reply_reason: str = "") -> Tuple[str, List[int]]: + async def build_expression_habits( + self, chat_history: str, target: str, reply_reason: str = "" + ) -> Tuple[str, List[int]]: # sourcery skip: for-append-to-extend """构建表达习惯块 @@ -1094,10 +1096,10 @@ class DefaultReplyer: if not global_config.lpmm_knowledge.enable: logger.debug("LPMM知识库未启用,跳过获取知识库内容") return "" - + if global_config.lpmm_knowledge.lpmm_mode == "agent": return "" - + time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) bot_name = global_config.bot.nickname @@ -1115,10 +1117,10 @@ class DefaultReplyer: model_config=model_config.model_task_config.tool_use, tool_options=[SearchKnowledgeFromLPMMTool.get_tool_definition()], ) - + # logger.info(f"工具调用提示词: {prompt}") # logger.info(f"工具调用: {tool_calls}") - + if tool_calls: result = await self.tool_executor.execute_tool_call(tool_calls[0], SearchKnowledgeFromLPMMTool()) end_time = time.time() diff --git a/src/chat/replyer/private_generator.py b/src/chat/replyer/private_generator.py index 76eedf8c..74b04f6e 100644 --- a/src/chat/replyer/private_generator.py +++ b/src/chat/replyer/private_generator.py @@ -241,7 +241,9 @@ class PrivateReplyer: return f"{sender_relation}" - async def build_expression_habits(self, chat_history: str, target: str, reply_reason: str = "") -> Tuple[str, List[int]]: + async def build_expression_habits( + self, chat_history: str, target: str, reply_reason: str = "" + ) -> Tuple[str, List[int]]: # sourcery skip: for-append-to-extend """构建表达习惯块 @@ -1032,10 +1034,10 @@ class PrivateReplyer: if not global_config.lpmm_knowledge.enable: logger.debug("LPMM知识库未启用,跳过获取知识库内容") return "" - + if global_config.lpmm_knowledge.lpmm_mode == "agent": return "" - + time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) bot_name = global_config.bot.nickname diff --git a/src/chat/utils/chat_history_summarizer.py b/src/chat/utils/chat_history_summarizer.py index 36bb5ff0..f471781d 100644 --- a/src/chat/utils/chat_history_summarizer.py +++ b/src/chat/utils/chat_history_summarizer.py @@ -106,7 +106,7 @@ class ChatHistorySummarizer: await self._check_and_package(current_time) self.last_check_time = current_time return - + logger.info( f"{self.log_prefix} 开始处理聊天概括,时间窗口: {self.last_check_time:.2f} -> {current_time:.2f}" ) diff --git a/src/common/logger.py b/src/common/logger.py index 9e7e08d4..4cf40398 100644 --- a/src/common/logger.py +++ b/src/common/logger.py @@ -72,16 +72,16 @@ def get_ws_handler(): def initialize_ws_handler(loop): """初始化 WebSocket handler 的事件循环 - + Args: loop: asyncio 事件循环 """ handler = get_ws_handler() handler.set_loop(loop) - + # 为 WebSocket handler 设置 JSON 格式化器(与文件格式相同) handler.setFormatter(file_formatter) - + # 添加到根日志记录器 root_logger = logging.getLogger() if handler not in root_logger.handlers: @@ -177,43 +177,44 @@ class TimestampedFileHandler(logging.Handler): class WebSocketLogHandler(logging.Handler): """WebSocket 日志处理器 - 将日志实时推送到前端""" - + _log_counter = 0 # 类级别计数器,确保 ID 唯一性 - + def __init__(self, loop=None): super().__init__() self.loop = loop self._initialized = False - + def set_loop(self, loop): """设置事件循环""" self.loop = loop self._initialized = True - + def emit(self, record): """发送日志到 WebSocket 客户端""" if not self._initialized or self.loop is None: return - + try: # 获取格式化后的消息 # 对于 structlog,formatted message 包含完整的日志信息 formatted_msg = self.format(record) if self.formatter else record.getMessage() - + # 如果是 JSON 格式(文件格式化器),解析它 message = formatted_msg try: import json + log_dict = json.loads(formatted_msg) - message = log_dict.get('event', formatted_msg) + message = log_dict.get("event", formatted_msg) except (json.JSONDecodeError, ValueError): # 不是 JSON,直接使用消息 message = formatted_msg - + # 生成唯一 ID: 时间戳毫秒 + 自增计数器 WebSocketLogHandler._log_counter += 1 log_id = f"{int(record.created * 1000)}_{WebSocketLogHandler._log_counter}" - + # 格式化日志数据 log_data = { "id": log_id, @@ -222,20 +223,17 @@ class WebSocketLogHandler(logging.Handler): "module": record.name, "message": message, } - + # 异步广播日志(不阻塞日志记录) try: import asyncio from src.webui.logs_ws import broadcast_log - - asyncio.run_coroutine_threadsafe( - broadcast_log(log_data), - self.loop - ) + + asyncio.run_coroutine_threadsafe(broadcast_log(log_data), self.loop) except Exception: # WebSocket 推送失败不影响日志记录 pass - + except Exception: # 不要让 WebSocket 错误影响日志系统 self.handleError(record) @@ -255,7 +253,7 @@ def close_handlers(): if _console_handler: _console_handler.close() _console_handler = None - + if _ws_handler: _ws_handler.close() _ws_handler = None diff --git a/src/config/official_configs.py b/src/config/official_configs.py index 795b38cb..454f6976 100644 --- a/src/config/official_configs.py +++ b/src/config/official_configs.py @@ -647,7 +647,7 @@ class LPMMKnowledgeConfig(ConfigBase): enable: bool = True """是否启用LPMM知识库""" - + lpmm_mode: Literal["classic", "agent"] = "classic" """LPMM知识库模式,可选:classic经典模式,agent 模式,结合最新的记忆一同使用""" @@ -690,4 +690,4 @@ class JargonConfig(ConfigBase): """Jargon配置类""" all_global: bool = False - """是否将所有新增的jargon项目默认为全局(is_global=True),chat_id记录第一次存储时的id""" \ No newline at end of file + """是否将所有新增的jargon项目默认为全局(is_global=True),chat_id记录第一次存储时的id""" diff --git a/src/express/expression_learner.py b/src/express/expression_learner.py index 3bc14142..57c03e77 100644 --- a/src/express/expression_learner.py +++ b/src/express/expression_learner.py @@ -467,11 +467,7 @@ class ExpressionLearner: up_content: str, current_time: float, ) -> None: - expr_obj = ( - Expression.select() - .where((Expression.chat_id == self.chat_id) & (Expression.style == style)) - .first() - ) + expr_obj = Expression.select().where((Expression.chat_id == self.chat_id) & (Expression.style == style)).first() if expr_obj: await self._update_existing_expression( diff --git a/src/express/expression_selector.py b/src/express/expression_selector.py index 66c49def..b4e25f36 100644 --- a/src/express/expression_selector.py +++ b/src/express/expression_selector.py @@ -42,8 +42,6 @@ def init_prompt(): Prompt(expression_evaluation_prompt, "expression_evaluation_prompt") - - class ExpressionSelector: def __init__(self): self.llm_model = LLMRequest( @@ -238,9 +236,9 @@ class ExpressionSelector: else: target_message_str = "" target_message_extra_block = "" - + chat_context = f"以下是正在进行的聊天内容:{chat_info}" - + # 构建reply_reason块 if reply_reason: reply_reason_block = f"你的回复理由是:{reply_reason}" @@ -262,9 +260,8 @@ class ExpressionSelector: # 4. 调用LLM content, (reasoning_content, model_name, _) = await self.llm_model.generate_response_async(prompt=prompt) - # print(prompt) - + if not content: logger.warning("LLM返回空结果") return [], [] diff --git a/src/jargon/jargon_miner.py b/src/jargon/jargon_miner.py index 59d79df5..db1b79f9 100644 --- a/src/jargon/jargon_miner.py +++ b/src/jargon/jargon_miner.py @@ -36,10 +36,7 @@ def _contains_bot_self_name(content: str) -> bool: target = content.strip().lower() nickname = str(getattr(bot_config, "nickname", "") or "").strip().lower() - alias_names = [ - str(alias or "").strip().lower() - for alias in getattr(bot_config, "alias_names", []) or [] - ] + alias_names = [str(alias or "").strip().lower() for alias in getattr(bot_config, "alias_names", []) or []] candidates = [name for name in [nickname, *alias_names] if name] @@ -149,7 +146,7 @@ async def _enrich_raw_content_if_needed( ) -> List[str]: """ 检查raw_content是否只包含黑话本身,如果是,则获取该消息的前三条消息作为原始内容 - + Args: content: 黑话内容 raw_content_list: 原始raw_content列表 @@ -157,22 +154,22 @@ async def _enrich_raw_content_if_needed( messages: 当前时间窗口内的消息列表 extraction_start_time: 提取开始时间 extraction_end_time: 提取结束时间 - + Returns: 处理后的raw_content列表 """ enriched_list = [] - + for raw_content in raw_content_list: # 检查raw_content是否只包含黑话本身(去除空白字符后比较) raw_content_clean = raw_content.strip() content_clean = content.strip() - + # 如果raw_content只包含黑话本身(可能有一些标点或空白),则尝试获取上下文 # 去除所有空白字符后比较,确保只包含黑话本身 raw_content_normalized = raw_content_clean.replace(" ", "").replace("\n", "").replace("\t", "") content_normalized = content_clean.replace(" ", "").replace("\n", "").replace("\t", "") - + if raw_content_normalized == content_normalized: # 在消息列表中查找只包含该黑话的消息(去除空白后比较) target_message = None @@ -183,22 +180,20 @@ async def _enrich_raw_content_if_needed( if msg_content_normalized == content_normalized: target_message = msg break - + if target_message and target_message.time: # 获取该消息的前三条消息 try: previous_messages = get_raw_msg_before_timestamp_with_chat( - chat_id=chat_id, - timestamp=target_message.time, - limit=3 + chat_id=chat_id, timestamp=target_message.time, limit=3 ) - + if previous_messages: # 将前三条消息和当前消息一起格式化 context_messages = previous_messages + [target_message] # 按时间排序 context_messages.sort(key=lambda x: x.time or 0) - + # 格式化为可读消息 formatted_context, _ = await build_readable_messages_with_list( context_messages, @@ -206,7 +201,7 @@ async def _enrich_raw_content_if_needed( timestamp_mode="relative", truncate=False, ) - + if formatted_context.strip(): enriched_list.append(formatted_context.strip()) logger.warning(f"为黑话 {content} 补充了上下文消息") @@ -226,7 +221,7 @@ async def _enrich_raw_content_if_needed( else: # raw_content包含更多内容,直接使用 enriched_list.append(raw_content) - + return enriched_list @@ -240,31 +235,31 @@ def _should_infer_meaning(jargon_obj: Jargon) -> bool: # 如果已完成所有推断,不再推断 if jargon_obj.is_complete: return False - + count = jargon_obj.count or 0 last_inference = jargon_obj.last_inference_count or 0 - + # 阈值列表:3,6, 10, 20, 40, 60, 100 - thresholds = [3,6, 10, 20, 40, 60, 100] - + thresholds = [3, 6, 10, 20, 40, 60, 100] + if count < thresholds[0]: return False - + # 如果count没有超过上次判定值,不需要判定 if count <= last_inference: return False - + # 找到第一个大于last_inference的阈值 next_threshold = None for threshold in thresholds: if threshold > last_inference: next_threshold = threshold break - + # 如果没有找到下一个阈值,说明已经超过100,不应该再推断 if next_threshold is None: return False - + # 检查count是否达到或超过这个阈值 return count >= next_threshold @@ -275,13 +270,13 @@ class JargonMiner: self.last_learning_time: float = time.time() # 频率控制,可按需调整 self.min_messages_for_learning: int = 10 - self.min_learning_interval: float = 20 + self.min_learning_interval: float = 20 self.llm = LLMRequest( model_set=model_config.model_task_config.utils, request_type="jargon.extract", ) - + # 初始化stream_name作为类属性,避免重复提取 chat_manager = get_chat_manager() stream_name = chat_manager.get_stream_name(self.chat_id) @@ -306,17 +301,19 @@ class JargonMiner: try: content = jargon_obj.content raw_content_str = jargon_obj.raw_content or "" - + # 解析raw_content列表 raw_content_list = [] if raw_content_str: try: - raw_content_list = json.loads(raw_content_str) if isinstance(raw_content_str, str) else raw_content_str + raw_content_list = ( + json.loads(raw_content_str) if isinstance(raw_content_str, str) else raw_content_str + ) if not isinstance(raw_content_list, list): raw_content_list = [raw_content_list] if raw_content_list else [] except (json.JSONDecodeError, TypeError): raw_content_list = [raw_content_str] if raw_content_str else [] - + if not raw_content_list: logger.warning(f"jargon {content} 没有raw_content,跳过推断") return @@ -328,12 +325,12 @@ class JargonMiner: content=content, raw_content_list=raw_content_text, ) - + response1, _ = await self.llm.generate_response_async(prompt1, temperature=0.3) if not response1: logger.warning(f"jargon {content} 推断1失败:无响应") return - + # 解析推断1结果 inference1 = None try: @@ -349,7 +346,7 @@ class JargonMiner: except Exception as e: logger.error(f"jargon {content} 推断1解析失败: {e}") return - + # 检查推断1是否表示信息不足无法推断 no_info = inference1.get("no_info", False) meaning1 = inference1.get("meaning", "").strip() @@ -360,18 +357,17 @@ class JargonMiner: jargon_obj.save() return - # 步骤2: 仅基于content推断 prompt2 = await global_prompt_manager.format_prompt( "jargon_inference_content_only_prompt", content=content, ) - + response2, _ = await self.llm.generate_response_async(prompt2, temperature=0.3) if not response2: logger.warning(f"jargon {content} 推断2失败:无响应") return - + # 解析推断2结果 inference2 = None try: @@ -387,13 +383,12 @@ class JargonMiner: except Exception as e: logger.error(f"jargon {content} 推断2解析失败: {e}") return - logger.info(f"jargon {content} 推断2提示词: {prompt2}") logger.info(f"jargon {content} 推断2结果: {response2}") logger.info(f"jargon {content} 推断1提示词: {prompt1}") logger.info(f"jargon {content} 推断1结果: {response1}") - + if global_config.debug.show_jargon_prompt: logger.info(f"jargon {content} 推断2提示词: {prompt2}") logger.info(f"jargon {content} 推断2结果: {response2}") @@ -404,22 +399,22 @@ class JargonMiner: logger.debug(f"jargon {content} 推断2结果: {response2}") logger.debug(f"jargon {content} 推断1提示词: {prompt1}") logger.debug(f"jargon {content} 推断1结果: {response1}") - + # 步骤3: 比较两个推断结果 prompt3 = await global_prompt_manager.format_prompt( "jargon_compare_inference_prompt", inference1=json.dumps(inference1, ensure_ascii=False), inference2=json.dumps(inference2, ensure_ascii=False), ) - + if global_config.debug.show_jargon_prompt: logger.info(f"jargon {content} 比较提示词: {prompt3}") - + response3, _ = await self.llm.generate_response_async(prompt3, temperature=0.3) if not response3: logger.warning(f"jargon {content} 比较失败:无响应") return - + # 解析比较结果 comparison = None try: @@ -439,7 +434,7 @@ class JargonMiner: # 判断是否为黑话 is_similar = comparison.get("is_similar", False) is_jargon = not is_similar # 如果相似,说明不是黑话;如果有差异,说明是黑话 - + # 更新数据库记录 jargon_obj.is_jargon = is_jargon if is_jargon: @@ -448,17 +443,19 @@ class JargonMiner: else: # 不是黑话,也记录含义(使用推断2的结果,因为含义明确) jargon_obj.meaning = inference2.get("meaning", "") - + # 更新最后一次判定的count值,避免重启后重复判定 jargon_obj.last_inference_count = jargon_obj.count or 0 - + # 如果count>=100,标记为完成,不再进行推断 if (jargon_obj.count or 0) >= 100: jargon_obj.is_complete = True - + jargon_obj.save() - logger.debug(f"jargon {content} 推断完成: is_jargon={is_jargon}, meaning={jargon_obj.meaning}, last_inference_count={jargon_obj.last_inference_count}, is_complete={jargon_obj.is_complete}") - + logger.debug( + f"jargon {content} 推断完成: is_jargon={is_jargon}, meaning={jargon_obj.meaning}, last_inference_count={jargon_obj.last_inference_count}, is_complete={jargon_obj.is_complete}" + ) + # 固定输出推断结果,格式化为可读形式 if is_jargon: # 是黑话,输出格式:[聊天名]xxx的含义是 xxxxxxxxxxx @@ -471,10 +468,11 @@ class JargonMiner: else: # 不是黑话,输出格式:[聊天名]xxx 不是黑话 logger.info(f"[{self.stream_name}]{content} 不是黑话") - + except Exception as e: logger.error(f"jargon推断失败: {e}") import traceback + traceback.print_exc() def should_trigger(self) -> bool: @@ -502,7 +500,7 @@ class JargonMiner: # 记录本次提取的时间窗口,避免重复提取 extraction_start_time = self.last_learning_time extraction_end_time = time.time() - + # 拉取学习窗口内的消息 messages = get_raw_msg_by_timestamp_with_chat_inclusive( chat_id=self.chat_id, @@ -525,7 +523,7 @@ class JargonMiner: response, _ = await self.llm.generate_response_async(prompt, temperature=0.2) if not response: return - + if global_config.debug.show_jargon_prompt: logger.info(f"jargon提取提示词: {prompt}") logger.info(f"jargon提取结果: {response}") @@ -555,7 +553,7 @@ class JargonMiner: continue content = str(item.get("content", "")).strip() raw_content_value = item.get("raw_content", "") - + # 处理raw_content:可能是字符串或列表 raw_content_list = [] if isinstance(raw_content_value, list): @@ -566,15 +564,12 @@ class JargonMiner: raw_content_str = raw_content_value.strip() if raw_content_str: raw_content_list = [raw_content_str] - + if content and raw_content_list: if _contains_bot_self_name(content): logger.debug(f"解析阶段跳过包含机器人昵称/别名的词条: {content}") continue - entries.append({ - "content": content, - "raw_content": raw_content_list - }) + entries.append({"content": content, "raw_content": raw_content_list}) except Exception as e: logger.error(f"解析jargon JSON失败: {e}; 原始: {response}") return @@ -591,13 +586,13 @@ class JargonMiner: if content_key not in seen: seen.add(content_key) uniq_entries.append(entry) - + saved = 0 updated = 0 for entry in uniq_entries: content = entry["content"] raw_content_list = entry["raw_content"] # 已经是列表 - + # 检查并补充raw_content:如果只包含黑话本身,则获取前三条消息作为上下文 raw_content_list = await _enrich_raw_content_if_needed( content=content, @@ -607,60 +602,53 @@ class JargonMiner: extraction_start_time=extraction_start_time, extraction_end_time=extraction_end_time, ) - + try: # 根据all_global配置决定查询逻辑 if global_config.jargon.all_global: # 开启all_global:无视chat_id,查询所有content匹配的记录(所有记录都是全局的) - query = ( - Jargon.select() - .where(Jargon.content == content) - ) + query = Jargon.select().where(Jargon.content == content) else: # 关闭all_global:只查询chat_id匹配的记录(不考虑is_global) - query = ( - Jargon.select() - .where( - (Jargon.chat_id == self.chat_id) & - (Jargon.content == content) - ) - ) - + query = Jargon.select().where((Jargon.chat_id == self.chat_id) & (Jargon.content == content)) + if query.exists(): obj = query.get() try: obj.count = (obj.count or 0) + 1 except Exception: obj.count = 1 - + # 合并raw_content列表:读取现有列表,追加新值,去重 existing_raw_content = [] if obj.raw_content: try: - existing_raw_content = json.loads(obj.raw_content) if isinstance(obj.raw_content, str) else obj.raw_content + existing_raw_content = ( + json.loads(obj.raw_content) if isinstance(obj.raw_content, str) else obj.raw_content + ) if not isinstance(existing_raw_content, list): existing_raw_content = [existing_raw_content] if existing_raw_content else [] except (json.JSONDecodeError, TypeError): existing_raw_content = [obj.raw_content] if obj.raw_content else [] - + # 合并并去重 merged_list = list(dict.fromkeys(existing_raw_content + raw_content_list)) obj.raw_content = json.dumps(merged_list, ensure_ascii=False) - + # 开启all_global时,确保记录标记为is_global=True if global_config.jargon.all_global: obj.is_global = True # 关闭all_global时,保持原有is_global不变(不修改) - + obj.save() - + # 检查是否需要推断(达到阈值且超过上次判定值) if _should_infer_meaning(obj): # 异步触发推断,不阻塞主流程 # 重新加载对象以确保数据最新 jargon_id = obj.id asyncio.create_task(self._infer_meaning_by_id(jargon_id)) - + updated += 1 else: # 没找到匹配记录,创建新记录 @@ -670,13 +658,13 @@ class JargonMiner: else: # 关闭all_global:新记录is_global=False is_global_new = False - + Jargon.create( content=content, raw_content=json.dumps(raw_content_list, ensure_ascii=False), chat_id=self.chat_id, is_global=is_global_new, - count=1 + count=1, ) saved += 1 except Exception as e: @@ -688,13 +676,13 @@ class JargonMiner: # 收集所有提取的jargon内容 jargon_list = [entry["content"] for entry in uniq_entries] jargon_str = ",".join(jargon_list) - + # 输出格式化的结果(使用logger.info会自动应用jargon模块的颜色) logger.info(f"[{self.stream_name}]疑似黑话: {jargon_str}") - + # 更新为本次提取的结束时间,确保不会重复提取相同的消息窗口 self.last_learning_time = extraction_end_time - + if saved or updated: logger.info(f"jargon写入: 新增 {saved} 条,更新 {updated} 条,chat_id={self.chat_id}") except Exception as e: @@ -720,15 +708,11 @@ async def extract_and_store_jargon(chat_id: str) -> None: def search_jargon( - keyword: str, - chat_id: Optional[str] = None, - limit: int = 10, - case_sensitive: bool = False, - fuzzy: bool = True + keyword: str, chat_id: Optional[str] = None, limit: int = 10, case_sensitive: bool = False, fuzzy: bool = True ) -> List[Dict[str, str]]: """ 搜索jargon,支持大小写不敏感和模糊搜索 - + Args: keyword: 搜索关键词 chat_id: 可选的聊天ID @@ -737,21 +721,18 @@ def search_jargon( limit: 返回结果数量限制,默认10 case_sensitive: 是否大小写敏感,默认False(不敏感) fuzzy: 是否模糊搜索,默认True(使用LIKE匹配) - + Returns: List[Dict[str, str]]: 包含content, meaning的字典列表 """ if not keyword or not keyword.strip(): return [] - + keyword = keyword.strip() - + # 构建查询 - query = Jargon.select( - Jargon.content, - Jargon.meaning - ) - + query = Jargon.select(Jargon.content, Jargon.meaning) + # 构建搜索条件 if case_sensitive: # 大小写敏感 @@ -760,7 +741,7 @@ def search_jargon( search_condition = Jargon.content.contains(keyword) else: # 精确匹配 - search_condition = (Jargon.content == keyword) + search_condition = Jargon.content == keyword else: # 大小写不敏感 if fuzzy: @@ -768,10 +749,10 @@ def search_jargon( search_condition = fn.LOWER(Jargon.content).contains(keyword.lower()) else: # 精确匹配(使用LOWER函数) - search_condition = (fn.LOWER(Jargon.content) == keyword.lower()) - + search_condition = fn.LOWER(Jargon.content) == keyword.lower() + query = query.where(search_condition) - + # 根据all_global配置决定查询逻辑 if global_config.jargon.all_global: # 开启all_global:所有记录都是全局的,查询所有is_global=True的记录(无视chat_id) @@ -779,35 +760,28 @@ def search_jargon( else: # 关闭all_global:如果提供了chat_id,优先搜索该聊天或global的jargon if chat_id: - query = query.where( - (Jargon.chat_id == chat_id) | Jargon.is_global - ) - + query = query.where((Jargon.chat_id == chat_id) | Jargon.is_global) + # 只返回有meaning的记录 - query = query.where( - (Jargon.meaning.is_null(False)) & (Jargon.meaning != "") - ) - + query = query.where((Jargon.meaning.is_null(False)) & (Jargon.meaning != "")) + # 按count降序排序,优先返回出现频率高的 query = query.order_by(Jargon.count.desc()) - + # 限制结果数量 query = query.limit(limit) - + # 执行查询并返回结果 results = [] for jargon in query: - results.append({ - "content": jargon.content or "", - "meaning": jargon.meaning or "" - }) - + results.append({"content": jargon.content or "", "meaning": jargon.meaning or ""}) + return results async def store_jargon_from_answer(jargon_keyword: str, answer: str, chat_id: str) -> None: """将黑话存入jargon系统 - + Args: jargon_keyword: 黑话关键词 answer: 答案内容(将概括为raw_content) @@ -820,53 +794,52 @@ async def store_jargon_from_answer(jargon_keyword: str, answer: str, chat_id: st 答案:{answer} 只输出概括后的内容,不要输出其他内容:""" - + success, summary, _, _ = await llm_api.generate_with_model( summary_prompt, model_config=model_config.model_task_config.utils_small, request_type="memory.summarize_jargon", ) - + logger.info(f"概括答案提示: {summary_prompt}") logger.info(f"概括答案: {summary}") - + if not success: logger.warning(f"概括答案失败,使用原始答案: {summary}") summary = answer[:100] # 截取前100字符作为备用 - + raw_content = summary.strip()[:200] # 限制长度 - + # 检查是否已存在 if global_config.jargon.all_global: query = Jargon.select().where(Jargon.content == jargon_keyword) else: - query = Jargon.select().where( - (Jargon.chat_id == chat_id) & - (Jargon.content == jargon_keyword) - ) - + query = Jargon.select().where((Jargon.chat_id == chat_id) & (Jargon.content == jargon_keyword)) + if query.exists(): # 更新现有记录 obj = query.get() obj.count = (obj.count or 0) + 1 - + # 合并raw_content列表 existing_raw_content = [] if obj.raw_content: try: - existing_raw_content = json.loads(obj.raw_content) if isinstance(obj.raw_content, str) else obj.raw_content + existing_raw_content = ( + json.loads(obj.raw_content) if isinstance(obj.raw_content, str) else obj.raw_content + ) if not isinstance(existing_raw_content, list): existing_raw_content = [existing_raw_content] if existing_raw_content else [] except (json.JSONDecodeError, TypeError): existing_raw_content = [obj.raw_content] if obj.raw_content else [] - + # 合并并去重 merged_list = list(dict.fromkeys(existing_raw_content + [raw_content])) obj.raw_content = json.dumps(merged_list, ensure_ascii=False) - + if global_config.jargon.all_global: obj.is_global = True - + obj.save() logger.info(f"更新jargon记录: {jargon_keyword}") else: @@ -877,11 +850,9 @@ async def store_jargon_from_answer(jargon_keyword: str, answer: str, chat_id: st raw_content=json.dumps([raw_content], ensure_ascii=False), chat_id=chat_id, is_global=is_global_new, - count=1 + count=1, ) logger.info(f"创建新jargon记录: {jargon_keyword}") - + except Exception as e: logger.error(f"存储jargon失败: {e}") - - diff --git a/src/llm_models/model_client/gemini_client.py b/src/llm_models/model_client/gemini_client.py index 444c5671..b3fafca0 100644 --- a/src/llm_models/model_client/gemini_client.py +++ b/src/llm_models/model_client/gemini_client.py @@ -147,7 +147,7 @@ def _convert_tool_options(tool_options: list[ToolOption]) -> list[FunctionDeclar param_type_value = tool_option_param.param_type.value if param_type_value == "bool": param_type_value = "boolean" - + return_dict: dict[str, Any] = { "type": param_type_value, "description": tool_option_param.description, diff --git a/src/llm_models/model_client/openai_client.py b/src/llm_models/model_client/openai_client.py index 01e12588..f573d33e 100644 --- a/src/llm_models/model_client/openai_client.py +++ b/src/llm_models/model_client/openai_client.py @@ -122,7 +122,7 @@ def _convert_tool_options(tool_options: list[ToolOption]) -> list[dict[str, Any] param_type_value = tool_option_param.param_type.value if param_type_value == "bool": param_type_value = "boolean" - + return_dict: dict[str, Any] = { "type": param_type_value, "description": tool_option_param.description, diff --git a/src/llm_models/payload_content/message.py b/src/llm_models/payload_content/message.py index ddcdf57f..960de08b 100644 --- a/src/llm_models/payload_content/message.py +++ b/src/llm_models/payload_content/message.py @@ -116,9 +116,7 @@ class MessageBuilder: 构建消息对象 :return: Message对象 """ - if len(self.__content) == 0 and not ( - self.__role == RoleType.Assistant and self.__tool_calls - ): + if len(self.__content) == 0 and not (self.__role == RoleType.Assistant and self.__tool_calls): raise ValueError("内容不能为空") if self.__role == RoleType.Tool and self.__tool_call_id is None: raise ValueError("Tool角色的工具调用ID不能为空") diff --git a/src/llm_models/utils_model.py b/src/llm_models/utils_model.py index 28f63c11..1ed74e03 100644 --- a/src/llm_models/utils_model.py +++ b/src/llm_models/utils_model.py @@ -166,7 +166,7 @@ class LLMRequest: time_cost=time.time() - start_time, ) return content or "", (reasoning_content, model_info.name, tool_calls) - + async def generate_response_with_message_async( self, message_factory: Callable[[BaseClient], List[Message]], diff --git a/src/main.py b/src/main.py index a75d4d26..b442f29d 100644 --- a/src/main.py +++ b/src/main.py @@ -36,10 +36,10 @@ class MainSystem: # 使用消息API替代直接的FastAPI实例 self.app: MessageServer = get_global_api() self.server: Server = get_global_server() - + # 注册 WebUI API 路由 self._register_webui_routes() - + # 设置 WebUI(开发/生产模式) self._setup_webui() @@ -47,6 +47,7 @@ class MainSystem: """注册 WebUI API 路由""" try: from src.webui.routes import router as webui_router + self.server.register_router(webui_router) logger.info("WebUI API 路由已注册") except Exception as e: @@ -55,15 +56,17 @@ class MainSystem: def _setup_webui(self): """设置 WebUI(根据环境变量决定模式)""" import os + webui_enabled = os.getenv("WEBUI_ENABLED", "false").lower() == "true" if not webui_enabled: logger.info("WebUI 已禁用") return - + webui_mode = os.getenv("WEBUI_MODE", "production").lower() - + try: from src.webui.manager import setup_webui + setup_webui(mode=webui_mode) except Exception as e: logger.error(f"设置 WebUI 失败: {e}") diff --git a/src/memory_system/memory_retrieval.py b/src/memory_system/memory_retrieval.py index e1562b6e..e9187eb0 100644 --- a/src/memory_system/memory_retrieval.py +++ b/src/memory_system/memory_retrieval.py @@ -17,26 +17,23 @@ from src.llm_models.payload_content.message import MessageBuilder, RoleType, Mes logger = get_logger("memory_retrieval") THINKING_BACK_NOT_FOUND_RETENTION_SECONDS = 3600 # 未找到答案记录保留时长 -THINKING_BACK_CLEANUP_INTERVAL_SECONDS = 300 # 清理频率 +THINKING_BACK_CLEANUP_INTERVAL_SECONDS = 300 # 清理频率 _last_not_found_cleanup_ts: float = 0.0 def _cleanup_stale_not_found_thinking_back() -> None: """定期清理过期的未找到答案记录""" global _last_not_found_cleanup_ts - + now = time.time() if now - _last_not_found_cleanup_ts < THINKING_BACK_CLEANUP_INTERVAL_SECONDS: return - + threshold_time = now - THINKING_BACK_NOT_FOUND_RETENTION_SECONDS try: deleted_rows = ( ThinkingBack.delete() - .where( - (ThinkingBack.found_answer == 0) & - (ThinkingBack.update_time < threshold_time) - ) + .where((ThinkingBack.found_answer == 0) & (ThinkingBack.update_time < threshold_time)) .execute() ) if deleted_rows: @@ -45,11 +42,12 @@ def _cleanup_stale_not_found_thinking_back() -> None: except Exception as e: logger.error(f"清理未找到答案的thinking_back记录失败: {e}") + def init_memory_retrieval_prompt(): """初始化记忆检索相关的 prompt 模板和工具""" # 首先注册所有工具 init_all_tools() - + # 第一步:问题生成prompt Prompt( """ @@ -102,7 +100,7 @@ def init_memory_retrieval_prompt(): """, name="memory_retrieval_question_prompt", ) - + # 第二步:ReAct Agent prompt(使用function calling,要求先思考再行动) Prompt( """你的名字是{bot_name}。现在是{time_now}。 @@ -140,7 +138,7 @@ def init_memory_retrieval_prompt(): """, name="memory_retrieval_react_prompt_head", ) - + # 额外,如果最后一轮迭代:ReAct Agent prompt(使用function calling,要求先思考再行动) Prompt( """你的名字是{bot_name}。现在是{time_now}。 @@ -170,10 +168,10 @@ def init_memory_retrieval_prompt(): def _parse_react_response(response: str) -> Optional[Dict[str, Any]]: """解析ReAct Agent的响应 - + Args: response: LLM返回的响应 - + Returns: Dict[str, Any]: 解析后的动作信息,如果解析失败返回None 格式: {"thought": str, "actions": List[Dict[str, Any]]} @@ -183,90 +181,75 @@ def _parse_react_response(response: str) -> Optional[Dict[str, Any]]: # 尝试提取JSON(可能包含在```json代码块中) json_pattern = r"```json\s*(.*?)\s*```" matches = re.findall(json_pattern, response, re.DOTALL) - + if matches: json_str = matches[0] else: # 尝试直接解析整个响应 json_str = response.strip() - + # 修复可能的JSON错误 repaired_json = repair_json(json_str) - + # 解析JSON action_info = json.loads(repaired_json) - + if not isinstance(action_info, dict): logger.warning(f"解析的JSON不是对象格式: {action_info}") return None - + # 确保actions字段存在且为列表 if "actions" not in action_info: logger.warning(f"响应中缺少actions字段: {action_info}") return None - + if not isinstance(action_info["actions"], list): logger.warning(f"actions字段不是数组格式: {action_info['actions']}") return None - + # 确保actions不为空 if len(action_info["actions"]) == 0: logger.warning("actions数组为空") return None - + return action_info - + except Exception as e: logger.error(f"解析ReAct响应失败: {e}, 响应内容: {response[:200]}...") return None -async def _retrieve_concepts_with_jargon( - concepts: List[str], - chat_id: str -) -> str: +async def _retrieve_concepts_with_jargon(concepts: List[str], chat_id: str) -> str: """对概念列表进行jargon检索 - + Args: concepts: 概念列表 chat_id: 聊天ID - + Returns: str: 检索结果字符串 """ if not concepts: return "" - + from src.jargon.jargon_miner import search_jargon - + results = [] for concept in concepts: concept = concept.strip() if not concept: continue - + # 先尝试精确匹配 - jargon_results = search_jargon( - keyword=concept, - chat_id=chat_id, - limit=10, - case_sensitive=False, - fuzzy=False - ) - + jargon_results = search_jargon(keyword=concept, chat_id=chat_id, limit=10, case_sensitive=False, fuzzy=False) + is_fuzzy_match = False - + # 如果精确匹配未找到,尝试模糊搜索 if not jargon_results: - jargon_results = search_jargon( - keyword=concept, - chat_id=chat_id, - limit=10, - case_sensitive=False, - fuzzy=True - ) + jargon_results = search_jargon(keyword=concept, chat_id=chat_id, limit=10, case_sensitive=False, fuzzy=True) is_fuzzy_match = True - + if jargon_results: # 找到结果 if is_fuzzy_match: @@ -291,28 +274,24 @@ async def _retrieve_concepts_with_jargon( else: # 未找到,不返回占位信息,只记录日志 logger.info(f"在jargon库中未找到匹配: {concept}") - + if results: return "【概念检索结果】\n" + "\n".join(results) + "\n" return "" async def _react_agent_solve_question( - question: str, - chat_id: str, - max_iterations: int = 5, - timeout: float = 30.0, - initial_info: str = "" + question: str, chat_id: str, max_iterations: int = 5, timeout: float = 30.0, initial_info: str = "" ) -> Tuple[bool, str, List[Dict[str, Any]], bool]: """使用ReAct架构的Agent来解决问题 - + Args: question: 要回答的问题 chat_id: 聊天ID max_iterations: 最大迭代次数 timeout: 超时时间(秒) initial_info: 初始信息(如概念检索结果),将作为collected_info的初始值 - + Returns: Tuple[bool, str, List[Dict[str, Any]], bool]: (是否找到答案, 答案内容, 思考步骤列表, 是否超时) """ @@ -321,34 +300,35 @@ async def _react_agent_solve_question( thinking_steps = [] is_timeout = False conversation_messages: List[Message] = [] - + for iteration in range(max_iterations): # 检查超时 if time.time() - start_time > timeout: logger.warning(f"ReAct Agent超时,已迭代{iteration}次") is_timeout = True break - + # 获取工具注册器 tool_registry = get_tool_registry() - + # 获取bot_name bot_name = global_config.bot.nickname - + # 获取当前时间 time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) - + # 计算剩余迭代次数 current_iteration = iteration + 1 remaining_iterations = max_iterations - current_iteration is_final_iteration = current_iteration >= max_iterations - - + if is_final_iteration: # 最后一次迭代,使用最终prompt tool_definitions = [] - logger.info(f"ReAct Agent 第 {iteration + 1} 次迭代,问题: {question}|可用工具数量: 0(最后一次迭代,不提供工具调用)") - + logger.info( + f"ReAct Agent 第 {iteration + 1} 次迭代,问题: {question}|可用工具数量: 0(最后一次迭代,不提供工具调用)" + ) + prompt = await global_prompt_manager.format_prompt( "memory_retrieval_react_final_prompt", bot_name=bot_name, @@ -359,7 +339,7 @@ async def _react_agent_solve_question( remaining_iterations=remaining_iterations, max_iterations=max_iterations, ) - + logger.info(f"ReAct Agent 第 {iteration + 1} 次Prompt: {prompt}") success, response, reasoning_content, model_name, tool_calls = await llm_api.generate_with_model_with_tools( prompt, @@ -370,7 +350,9 @@ async def _react_agent_solve_question( else: # 非最终迭代,使用head_prompt tool_definitions = tool_registry.get_tool_definitions() - logger.info(f"ReAct Agent 第 {iteration + 1} 次迭代,问题: {question}|可用工具数量: {len(tool_definitions)}") + logger.info( + f"ReAct Agent 第 {iteration + 1} 次迭代,问题: {question}|可用工具数量: {len(tool_definitions)}" + ) head_prompt = await global_prompt_manager.format_prompt( "memory_retrieval_react_prompt_head", @@ -397,12 +379,12 @@ async def _react_agent_solve_question( messages.append(system_builder.build()) messages.extend(_conversation_messages) - + # 优化日志展示 - 合并所有消息到一条日志 log_lines = [] for idx, msg in enumerate(messages, 1): - role_name = msg.role.value if hasattr(msg.role, 'value') else str(msg.role) - + role_name = msg.role.value if hasattr(msg.role, "value") else str(msg.role) + # 处理内容 - 显示完整内容,不截断 if isinstance(msg.content, str): full_content = msg.content @@ -415,37 +397,45 @@ async def _react_agent_solve_question( else: full_content = str(msg.content) content_type = "未知" - + # 构建单条消息的日志信息 msg_info = f"\n[消息 {idx}] 角色: {role_name} 内容类型: {content_type}\n========================================" - + if full_content: msg_info += f"\n{full_content}" - + if msg.tool_calls: msg_info += f"\n 工具调用: {len(msg.tool_calls)}个" for tool_call in msg.tool_calls: msg_info += f"\n - {tool_call}" - + if msg.tool_call_id: msg_info += f"\n 工具调用ID: {msg.tool_call_id}" - + log_lines.append(msg_info) - + # 合并所有消息为一条日志输出 logger.info(f"消息列表 (共{len(messages)}条):{''.join(log_lines)}") return messages - success, response, reasoning_content, model_name, tool_calls = await llm_api.generate_with_model_with_tools_by_message_factory( + ( + success, + response, + reasoning_content, + model_name, + tool_calls, + ) = await llm_api.generate_with_model_with_tools_by_message_factory( message_factory, model_config=model_config.model_task_config.tool_use, tool_options=tool_definitions, request_type="memory.react", ) - - logger.info(f"ReAct Agent 第 {iteration + 1} 次迭代 模型: {model_name} ,调用工具数量: {len(tool_calls) if tool_calls else 0} ,调用工具响应: {response}") - + + logger.info( + f"ReAct Agent 第 {iteration + 1} 次迭代 模型: {model_name} ,调用工具数量: {len(tool_calls) if tool_calls else 0} ,调用工具响应: {response}" + ) + if not success: logger.error(f"ReAct Agent LLM调用失败: {response}") break @@ -463,105 +453,108 @@ async def _react_agent_solve_question( assistant_builder.set_role(RoleType.Assistant) assistant_builder.add_text_content(response) assistant_message = assistant_builder.build() - + # 记录思考步骤 - step = { - "iteration": iteration + 1, - "thought": response, - "actions": [], - "observations": [] - } - + step = {"iteration": iteration + 1, "thought": response, "actions": [], "observations": []} + # 优先从思考内容中提取found_answer或not_enough_info def extract_quoted_content(text, func_name, param_name): """从文本中提取函数调用中参数的值,支持单引号和双引号 - + Args: text: 要搜索的文本 func_name: 函数名,如 'found_answer' param_name: 参数名,如 'answer' - + Returns: 提取的参数值,如果未找到则返回None """ if not text: return None - + # 查找函数调用位置(不区分大小写) func_pattern = func_name.lower() text_lower = text.lower() func_pos = text_lower.find(func_pattern) if func_pos == -1: return None - + # 查找参数名和等号 - param_pattern = f'{param_name}=' + param_pattern = f"{param_name}=" param_pos = text_lower.find(param_pattern, func_pos) if param_pos == -1: return None - + # 跳过参数名、等号和空白 start_pos = param_pos + len(param_pattern) - while start_pos < len(text) and text[start_pos] in ' \t\n': + while start_pos < len(text) and text[start_pos] in " \t\n": start_pos += 1 - + if start_pos >= len(text): return None - + # 确定引号类型 quote_char = text[start_pos] if quote_char not in ['"', "'"]: return None - + # 查找匹配的结束引号(考虑转义) end_pos = start_pos + 1 while end_pos < len(text): if text[end_pos] == quote_char: # 检查是否是转义的引号 - if end_pos > start_pos + 1 and text[end_pos - 1] == '\\': + if end_pos > start_pos + 1 and text[end_pos - 1] == "\\": end_pos += 1 continue # 找到匹配的引号 - content = text[start_pos + 1:end_pos] + content = text[start_pos + 1 : end_pos] # 处理转义字符 - content = content.replace('\\"', '"').replace("\\'", "'").replace('\\\\', '\\') + content = content.replace('\\"', '"').replace("\\'", "'").replace("\\\\", "\\") return content end_pos += 1 - + return None - + # 从LLM的直接输出内容中提取found_answer或not_enough_info found_answer_content = None not_enough_info_reason = None - + # 只检查response(LLM的直接输出内容),不检查reasoning_content if response: - found_answer_content = extract_quoted_content(response, 'found_answer', 'answer') + found_answer_content = extract_quoted_content(response, "found_answer", "answer") if not found_answer_content: - not_enough_info_reason = extract_quoted_content(response, 'not_enough_info', 'reason') - + not_enough_info_reason = extract_quoted_content(response, "not_enough_info", "reason") + # 如果从输出内容中找到了答案,直接返回 if found_answer_content: step["actions"].append({"action_type": "found_answer", "action_params": {"answer": found_answer_content}}) step["observations"] = ["从LLM输出内容中检测到found_answer"] thinking_steps.append(step) - logger.info(f"ReAct Agent 第 {iteration + 1} 次迭代 从LLM输出内容中检测到found_answer: {found_answer_content[:100]}...") + logger.info( + f"ReAct Agent 第 {iteration + 1} 次迭代 从LLM输出内容中检测到found_answer: {found_answer_content[:100]}..." + ) return True, found_answer_content, thinking_steps, False - + if not_enough_info_reason: - step["actions"].append({"action_type": "not_enough_info", "action_params": {"reason": not_enough_info_reason}}) + step["actions"].append( + {"action_type": "not_enough_info", "action_params": {"reason": not_enough_info_reason}} + ) step["observations"] = ["从LLM输出内容中检测到not_enough_info"] thinking_steps.append(step) - logger.info(f"ReAct Agent 第 {iteration + 1} 次迭代 从LLM输出内容中检测到not_enough_info: {not_enough_info_reason[:100]}...") + logger.info( + f"ReAct Agent 第 {iteration + 1} 次迭代 从LLM输出内容中检测到not_enough_info: {not_enough_info_reason[:100]}..." + ) return False, not_enough_info_reason, thinking_steps, False - + if is_final_iteration: - step["actions"].append({"action_type": "not_enough_info", "action_params": {"reason": "已到达最后一次迭代,无法找到答案"}}) + step["actions"].append( + {"action_type": "not_enough_info", "action_params": {"reason": "已到达最后一次迭代,无法找到答案"}} + ) step["observations"] = ["已到达最后一次迭代,无法找到答案"] thinking_steps.append(step) logger.info(f"ReAct Agent 第 {iteration + 1} 次迭代 已到达最后一次迭代,无法找到答案") return False, "已到达最后一次迭代,无法找到答案", thinking_steps, False - + if assistant_message: conversation_messages.append(assistant_message) @@ -570,7 +563,7 @@ async def _react_agent_solve_question( thought_summary = reasoning_content or (response[:200] if response else "") if thought_summary: collected_info += f"\n[思考] {thought_summary}\n" - + # 处理工具调用 if not tool_calls: # 没有工具调用,说明LLM在思考中已经给出了答案(已在前面检查),或者需要继续查询 @@ -588,28 +581,31 @@ async def _react_agent_solve_question( step["observations"] = ["无响应且无工具调用"] thinking_steps.append(step) break - + # 处理工具调用 tool_tasks = [] - + for i, tool_call in enumerate(tool_calls): tool_name = tool_call.func_name tool_args = tool_call.args or {} - - logger.info(f"ReAct Agent 第 {iteration + 1} 次迭代 工具调用 {i+1}/{len(tool_calls)}: {tool_name}({tool_args})") - + + logger.info( + f"ReAct Agent 第 {iteration + 1} 次迭代 工具调用 {i + 1}/{len(tool_calls)}: {tool_name}({tool_args})" + ) + # 普通工具调用 tool = tool_registry.get_tool(tool_name) if tool: # 准备工具参数(需要添加chat_id如果工具需要) tool_params = tool_args.copy() - + # 如果工具函数签名需要chat_id,添加它 import inspect + sig = inspect.signature(tool.execute_func) if "chat_id" in sig.parameters: tool_params["chat_id"] = chat_id - + # 创建异步任务 async def execute_single_tool(tool_instance, params, tool_name_str, iter_num): try: @@ -620,23 +616,23 @@ async def _react_agent_solve_question( error_msg = f"工具执行失败: {str(e)}" logger.error(f"ReAct Agent 第 {iter_num + 1} 次迭代 工具 {tool_name_str} {error_msg}") return f"查询{tool_name_str}失败: {error_msg}" - + tool_tasks.append(execute_single_tool(tool, tool_params, tool_name, iteration)) step["actions"].append({"action_type": tool_name, "action_params": tool_args}) else: error_msg = f"未知的工具类型: {tool_name}" - logger.warning(f"ReAct Agent 第 {iteration + 1} 次迭代 工具 {i+1}/{len(tool_calls)} {error_msg}") + logger.warning(f"ReAct Agent 第 {iteration + 1} 次迭代 工具 {i + 1}/{len(tool_calls)} {error_msg}") tool_tasks.append(asyncio.create_task(asyncio.sleep(0, result=f"查询{tool_name}失败: {error_msg}"))) - + # 并行执行所有工具 if tool_tasks: observations = await asyncio.gather(*tool_tasks, return_exceptions=True) - + # 处理执行结果 for i, (tool_call_item, observation) in enumerate(zip(tool_calls, observations, strict=False)): if isinstance(observation, Exception): observation = f"工具执行异常: {str(observation)}" - logger.error(f"ReAct Agent 第 {iteration + 1} 次迭代 工具 {i+1} 执行异常: {observation}") + logger.error(f"ReAct Agent 第 {iteration + 1} 次迭代 工具 {i + 1} 执行异常: {observation}") observation_text = observation if isinstance(observation, str) else str(observation) step["observations"].append(observation_text) @@ -648,14 +644,16 @@ async def _react_agent_solve_question( tool_builder.add_tool_call(tool_call_item.call_id) conversation_messages.append(tool_builder.build()) # logger.info(f"ReAct Agent 第 {iteration + 1} 次迭代 工具 {i+1} 执行结果: {observation_text}") - + thinking_steps.append(step) - + # 达到最大迭代次数或超时,但Agent没有明确返回found_answer # 迭代超时应该直接视为not_enough_info,而不是使用已有信息 # 只有Agent明确返回found_answer时,才认为找到了答案 if collected_info: - logger.warning(f"ReAct Agent达到最大迭代次数或超时,但未明确返回found_answer。已收集信息: {collected_info[:100]}...") + logger.warning( + f"ReAct Agent达到最大迭代次数或超时,但未明确返回found_answer。已收集信息: {collected_info[:100]}..." + ) if is_timeout: logger.warning("ReAct Agent超时,直接视为not_enough_info") else: @@ -665,35 +663,32 @@ async def _react_agent_solve_question( def _get_recent_query_history(chat_id: str, time_window_seconds: float = 300.0) -> str: """获取最近一段时间内的查询历史 - + Args: chat_id: 聊天ID time_window_seconds: 时间窗口(秒),默认10分钟 - + Returns: str: 格式化的查询历史字符串 """ try: current_time = time.time() start_time = current_time - time_window_seconds - + # 查询最近时间窗口内的记录,按更新时间倒序 records = ( ThinkingBack.select() - .where( - (ThinkingBack.chat_id == chat_id) & - (ThinkingBack.update_time >= start_time) - ) + .where((ThinkingBack.chat_id == chat_id) & (ThinkingBack.update_time >= start_time)) .order_by(ThinkingBack.update_time.desc()) .limit(5) # 最多返回5条最近的记录 ) - + if not records.exists(): return "" - + history_lines = [] history_lines.append("最近已查询的问题和结果:") - + for record in records: status = "✓ 已找到答案" if record.found_answer else "✗ 未找到答案" answer_preview = "" @@ -703,15 +698,15 @@ def _get_recent_query_history(chat_id: str, time_window_seconds: float = 300.0) answer_preview = record.answer[:100] if len(record.answer) > 100: answer_preview += "..." - + history_lines.append(f"- 问题:{record.question}") history_lines.append(f" 状态:{status}") if answer_preview: history_lines.append(f" 答案:{answer_preview}") history_lines.append("") # 空行分隔 - + return "\n".join(history_lines) - + except Exception as e: logger.error(f"获取查询历史失败: {e}") return "" @@ -719,40 +714,40 @@ def _get_recent_query_history(chat_id: str, time_window_seconds: float = 300.0) def _get_cached_memories(chat_id: str, time_window_seconds: float = 300.0) -> List[str]: """获取最近一段时间内缓存的记忆(只返回找到答案的记录) - + Args: chat_id: 聊天ID time_window_seconds: 时间窗口(秒),默认300秒(5分钟) - + Returns: List[str]: 格式化的记忆列表,每个元素格式为 "问题:xxx\n答案:xxx" """ try: current_time = time.time() start_time = current_time - time_window_seconds - + # 查询最近时间窗口内找到答案的记录,按更新时间倒序 records = ( ThinkingBack.select() .where( - (ThinkingBack.chat_id == chat_id) & - (ThinkingBack.update_time >= start_time) & - (ThinkingBack.found_answer == 1) + (ThinkingBack.chat_id == chat_id) + & (ThinkingBack.update_time >= start_time) + & (ThinkingBack.found_answer == 1) ) .order_by(ThinkingBack.update_time.desc()) .limit(5) # 最多返回5条最近的记录 ) - + if not records.exists(): return [] - + cached_memories = [] for record in records: if record.answer: cached_memories.append(f"问题:{record.question}\n答案:{record.answer}") - + return cached_memories - + except Exception as e: logger.error(f"获取缓存记忆失败: {e}") return [] @@ -760,11 +755,11 @@ def _get_cached_memories(chat_id: str, time_window_seconds: float = 300.0) -> Li def _query_thinking_back(chat_id: str, question: str) -> Optional[Tuple[bool, str]]: """从thinking_back数据库中查询是否有现成的答案 - + Args: chat_id: 聊天ID question: 问题 - + Returns: Optional[Tuple[bool, str]]: 如果找到记录,返回(found_answer, answer),否则返回None found_answer: 是否找到答案(True表示found_answer=1,False表示found_answer=0) @@ -775,23 +770,20 @@ def _query_thinking_back(chat_id: str, question: str) -> Optional[Tuple[bool, st # 按更新时间倒序,获取最新的记录 records = ( ThinkingBack.select() - .where( - (ThinkingBack.chat_id == chat_id) & - (ThinkingBack.question == question) - ) + .where((ThinkingBack.chat_id == chat_id) & (ThinkingBack.question == question)) .order_by(ThinkingBack.update_time.desc()) .limit(1) ) - + if records.exists(): record = records.get() found_answer = bool(record.found_answer) answer = record.answer or "" logger.info(f"在thinking_back中找到记录,问题: {question[:50]}...,found_answer: {found_answer}") return found_answer, answer - + return None - + except Exception as e: logger.error(f"查询thinking_back失败: {e}") return None @@ -799,7 +791,7 @@ def _query_thinking_back(chat_id: str, question: str) -> Optional[Tuple[bool, st async def _analyze_question_answer(question: str, answer: str, chat_id: str) -> None: """异步分析问题和答案的类别,并存储到相应系统 - + Args: question: 问题 answer: 答案 @@ -826,41 +818,42 @@ async def _analyze_question_answer(question: str, answer: str, chat_id: str) -> }} 只输出JSON,不要输出其他内容:""" - + success, response, _, _ = await llm_api.generate_with_model( analysis_prompt, model_config=model_config.model_task_config.utils, request_type="memory.analyze_qa", ) - + if not success: logger.error(f"分析问题和答案失败: {response}") return - + # 解析JSON响应 try: json_pattern = r"```json\s*(.*?)\s*```" matches = re.findall(json_pattern, response, re.DOTALL) - + if matches: json_str = matches[0] else: json_str = response.strip() - + repaired_json = repair_json(json_str) analysis_result = json.loads(repaired_json) - + category = analysis_result.get("category", "").strip() - + if category == "黑话": # 处理黑话 jargon_keyword = analysis_result.get("jargon_keyword", "").strip() if jargon_keyword: from src.jargon.jargon_miner import store_jargon_from_answer + await store_jargon_from_answer(jargon_keyword, answer, chat_id) else: logger.warning(f"分析为黑话但未提取到关键词,问题: {question[:50]}...") - + elif category == "人物信息": # 处理人物信息 # person_name = analysis_result.get("person_name", "").strip() @@ -871,28 +864,22 @@ async def _analyze_question_answer(question: str, answer: str, chat_id: str) -> # else: # logger.warning(f"分析为人物信息但未提取到人物名称或记忆内容,问题: {question[:50]}...") pass # 功能暂时禁用 - + else: logger.info(f"问题和答案类别为'其他',不进行存储,问题: {question[:50]}...") - + except Exception as e: logger.error(f"解析分析结果失败: {e}, 响应: {response[:200]}...") - + except Exception as e: logger.error(f"分析问题和答案时发生异常: {e}") - def _store_thinking_back( - chat_id: str, - question: str, - context: str, - found_answer: bool, - answer: str, - thinking_steps: List[Dict[str, Any]] + chat_id: str, question: str, context: str, found_answer: bool, answer: str, thinking_steps: List[Dict[str, Any]] ) -> None: """存储或更新思考过程到数据库(如果已存在则更新,否则创建) - + Args: chat_id: 聊天ID question: 问题 @@ -903,18 +890,15 @@ def _store_thinking_back( """ try: now = time.time() - + # 先查询是否已存在相同chat_id和问题的记录 existing = ( ThinkingBack.select() - .where( - (ThinkingBack.chat_id == chat_id) & - (ThinkingBack.question == question) - ) + .where((ThinkingBack.chat_id == chat_id) & (ThinkingBack.question == question)) .order_by(ThinkingBack.update_time.desc()) .limit(1) ) - + if existing.exists(): # 更新现有记录 record = existing.get() @@ -935,27 +919,22 @@ def _store_thinking_back( answer=answer, thinking_steps=json.dumps(thinking_steps, ensure_ascii=False), create_time=now, - update_time=now + update_time=now, ) logger.info(f"已创建思考过程到数据库,问题: {question[:50]}...") except Exception as e: logger.error(f"存储思考过程失败: {e}") -async def _process_single_question( - question: str, - chat_id: str, - context: str, - initial_info: str = "" -) -> Optional[str]: +async def _process_single_question(question: str, chat_id: str, context: str, initial_info: str = "") -> Optional[str]: """处理单个问题的查询(包含缓存检查逻辑) - + Args: question: 要查询的问题 chat_id: 聊天ID context: 上下文信息 initial_info: 初始信息(如概念检索结果),将传递给ReAct Agent - + Returns: Optional[str]: 如果找到答案,返回格式化的结果字符串,否则返回None """ @@ -978,20 +957,20 @@ async def _process_single_question( logger.info(f"LPMM预查询未命中或未找到信息,问题: {question[:50]}...") except Exception as e: logger.error(f"LPMM预查询失败,问题: {question[:50]}... 错误: {e}") - + # 先检查thinking_back数据库中是否有现成答案 cached_result = _query_thinking_back(chat_id, question) should_requery = False - + if cached_result: cached_found_answer, cached_answer = cached_result - + if cached_found_answer: # found_answer == 1 (True) # found_answer == 1:20%概率重新查询 if random.random() < 0.5: should_requery = True logger.info(f"found_answer=1,触发20%概率重新查询,问题: {question[:50]}...") - + if not should_requery and cached_answer: logger.info(f"从thinking_back缓存中获取答案,问题: {question[:50]}...") return f"问题:{question}\n答案:{cached_answer}" @@ -1002,22 +981,22 @@ async def _process_single_question( # found_answer == 0:不使用缓存,直接重新查询 should_requery = True logger.info(f"thinking_back存在但未找到答案,忽略缓存重新查询,问题: {question[:50]}...") - + # 如果没有缓存答案或需要重新查询,使用ReAct Agent查询 if not cached_result or should_requery: if should_requery: logger.info(f"概率触发重新查询,使用ReAct Agent查询,问题: {question[:50]}...") else: logger.info(f"未找到缓存答案,使用ReAct Agent查询,问题: {question[:50]}...") - + found_answer, answer, thinking_steps, is_timeout = await _react_agent_solve_question( question=question, chat_id=chat_id, max_iterations=global_config.memory.max_agent_iterations, timeout=120.0, - initial_info=question_initial_info + initial_info=question_initial_info, ) - + # 存储到数据库(超时时不存储) if not is_timeout: _store_thinking_back( @@ -1026,16 +1005,16 @@ async def _process_single_question( context=context, found_answer=found_answer, answer=answer, - thinking_steps=thinking_steps + thinking_steps=thinking_steps, ) else: logger.info(f"ReAct Agent超时,不存储到数据库,问题: {question[:50]}...") - + if found_answer and answer: # 创建异步任务分析问题和答案 asyncio.create_task(_analyze_question_answer(question, answer, chat_id)) return f"问题:{question}\n答案:{answer}" - + return None @@ -1048,30 +1027,30 @@ async def build_memory_retrieval_prompt( ) -> str: """构建记忆检索提示 使用两段式查询:第一步生成问题,第二步使用ReAct Agent查询答案 - + Args: message: 聊天历史记录 sender: 发送者名称 target: 目标消息内容 chat_stream: 聊天流对象 tool_executor: 工具执行器(保留参数以兼容接口) - + Returns: str: 记忆检索结果字符串 """ start_time = time.time() - + logger.info(f"检测是否需要回忆,元消息:{message[:30]}...,消息长度: {len(message)}") try: time_now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) bot_name = global_config.bot.nickname chat_id = chat_stream.stream_id - + # 获取最近查询历史(最近1小时内的查询) recent_query_history = _get_recent_query_history(chat_id, time_window_seconds=300.0) if not recent_query_history: recent_query_history = "最近没有查询记录。" - + # 第一步:生成问题 question_prompt = await global_prompt_manager.format_prompt( "memory_retrieval_question_prompt", @@ -1082,25 +1061,25 @@ async def build_memory_retrieval_prompt( sender=sender, target_message=target, ) - + success, response, reasoning_content, model_name = await llm_api.generate_with_model( question_prompt, model_config=model_config.model_task_config.tool_use, request_type="memory.question", ) - + logger.info(f"记忆检索问题生成提示词: {question_prompt}") logger.info(f"记忆检索问题生成响应: {response}") - + if not success: logger.error(f"LLM生成问题失败: {response}") return "" - + # 解析概念列表和问题列表 concepts, questions = _parse_questions_json(response) logger.info(f"解析到 {len(concepts)} 个概念: {concepts}") logger.info(f"解析到 {len(questions)} 个问题: {questions}") - + # 对概念进行jargon检索,作为初始信息 initial_info = "" if concepts: @@ -1111,11 +1090,10 @@ async def build_memory_retrieval_prompt( logger.info(f"概念检索完成,结果: {concept_info[:200]}...") else: logger.info("概念检索未找到任何结果") - - + # 获取缓存的记忆(与question时使用相同的时间窗口和数量限制) cached_memories = _get_cached_memories(chat_id, time_window_seconds=300.0) - + if not questions: logger.debug("模型认为不需要检索记忆或解析失败") # 即使没有当次查询,也返回缓存的记忆和概念检索结果 @@ -1124,7 +1102,7 @@ async def build_memory_retrieval_prompt( all_results.append(initial_info.strip()) if cached_memories: all_results.extend(cached_memories) - + if all_results: retrieved_memory = "\n\n".join(all_results) end_time = time.time() @@ -1132,27 +1110,22 @@ async def build_memory_retrieval_prompt( return f"你回忆起了以下信息:\n{retrieved_memory}\n如果与回复内容相关,可以参考这些回忆的信息。\n" else: return "" - + logger.info(f"解析到 {len(questions)} 个问题: {questions}") - + # 第二步:并行处理所有问题(使用配置的最大迭代次数/120秒超时) max_iterations = global_config.memory.max_agent_iterations logger.info(f"问题数量: {len(questions)},设置最大迭代次数: {max_iterations},超时时间: 120秒") - + # 并行处理所有问题,将概念检索结果作为初始信息传递 question_tasks = [ - _process_single_question( - question=question, - chat_id=chat_id, - context=message, - initial_info=initial_info - ) + _process_single_question(question=question, chat_id=chat_id, context=message, initial_info=initial_info) for question in questions ] - + # 并行执行所有查询任务 results = await asyncio.gather(*question_tasks, return_exceptions=True) - + # 收集所有有效结果 all_results = [] current_questions = set() # 用于去重,避免缓存和当次查询重复 @@ -1165,7 +1138,7 @@ async def build_memory_retrieval_prompt( if result.startswith("问题:"): question = result.split("\n")[0].replace("问题:", "").strip() current_questions.add(question) - + # 将缓存的记忆添加到结果中(排除当次查询已包含的问题,避免重复) for cached_memory in cached_memories: if cached_memory.startswith("问题:"): @@ -1174,17 +1147,19 @@ async def build_memory_retrieval_prompt( if question not in current_questions: all_results.append(cached_memory) logger.debug(f"添加缓存记忆: {question[:50]}...") - + end_time = time.time() - + if all_results: retrieved_memory = "\n\n".join(all_results) - logger.info(f"记忆检索成功,耗时: {(end_time - start_time):.3f}秒,包含 {len(all_results)} 条记忆(含缓存)") + logger.info( + f"记忆检索成功,耗时: {(end_time - start_time):.3f}秒,包含 {len(all_results)} 条记忆(含缓存)" + ) return f"你回忆起了以下信息:\n{retrieved_memory}\n如果与回复内容相关,可以参考这些回忆的信息。\n" else: logger.debug("所有问题均未找到答案,且无缓存记忆") return "" - + except Exception as e: logger.error(f"记忆检索时发生异常: {str(e)}") return "" @@ -1192,10 +1167,10 @@ async def build_memory_retrieval_prompt( def _parse_questions_json(response: str) -> Tuple[List[str], List[str]]: """解析问题JSON,返回概念列表和问题列表 - + Args: response: LLM返回的响应 - + Returns: Tuple[List[str], List[str]]: (概念列表, 问题列表) """ @@ -1203,39 +1178,39 @@ def _parse_questions_json(response: str) -> Tuple[List[str], List[str]]: # 尝试提取JSON(可能包含在```json代码块中) json_pattern = r"```json\s*(.*?)\s*```" matches = re.findall(json_pattern, response, re.DOTALL) - + if matches: json_str = matches[0] else: # 尝试直接解析整个响应 json_str = response.strip() - + # 修复可能的JSON错误 repaired_json = repair_json(json_str) - + # 解析JSON parsed = json.loads(repaired_json) - + # 只支持新格式:包含concepts和questions的对象 if not isinstance(parsed, dict): logger.warning(f"解析的JSON不是对象格式: {parsed}") return [], [] - + concepts_raw = parsed.get("concepts", []) questions_raw = parsed.get("questions", []) - + # 确保是列表 if not isinstance(concepts_raw, list): concepts_raw = [] if not isinstance(questions_raw, list): questions_raw = [] - + # 确保所有元素都是字符串 concepts = [c for c in concepts_raw if isinstance(c, str) and c.strip()] questions = [q for q in questions_raw if isinstance(q, str) and q.strip()] - + return concepts, questions - + except Exception as e: logger.error(f"解析问题JSON失败: {e}, 响应内容: {response[:200]}...") return [], [] diff --git a/src/memory_system/memory_utils.py b/src/memory_system/memory_utils.py index af16456b..bff39f95 100644 --- a/src/memory_system/memory_utils.py +++ b/src/memory_system/memory_utils.py @@ -3,6 +3,7 @@ 记忆系统工具函数 包含模糊查找、相似度计算等工具函数 """ + import json import re from datetime import datetime @@ -14,6 +15,7 @@ from src.common.logger import get_logger logger = get_logger("memory_utils") + def parse_md_json(json_text: str) -> list[str]: """从Markdown格式的内容中提取JSON对象和推理内容""" json_objects = [] @@ -52,14 +54,15 @@ def parse_md_json(json_text: str) -> list[str]: return json_objects, reasoning_content + def calculate_similarity(text1: str, text2: str) -> float: """ 计算两个文本的相似度 - + Args: text1: 第一个文本 text2: 第二个文本 - + Returns: float: 相似度分数 (0-1) """ @@ -67,16 +70,16 @@ def calculate_similarity(text1: str, text2: str) -> float: # 预处理文本 text1 = preprocess_text(text1) text2 = preprocess_text(text2) - + # 使用SequenceMatcher计算相似度 similarity = SequenceMatcher(None, text1, text2).ratio() - + # 如果其中一个文本包含另一个,提高相似度 if text1 in text2 or text2 in text1: similarity = max(similarity, 0.8) - + return similarity - + except Exception as e: logger.error(f"计算相似度时出错: {e}") return 0.0 @@ -85,31 +88,30 @@ def calculate_similarity(text1: str, text2: str) -> float: def preprocess_text(text: str) -> str: """ 预处理文本,提高匹配准确性 - + Args: text: 原始文本 - + Returns: str: 预处理后的文本 """ try: # 转换为小写 text = text.lower() - + # 移除标点符号和特殊字符 - text = re.sub(r'[^\w\s]', '', text) - + text = re.sub(r"[^\w\s]", "", text) + # 移除多余空格 - text = re.sub(r'\s+', ' ', text).strip() - + text = re.sub(r"\s+", " ", text).strip() + return text - + except Exception as e: logger.error(f"预处理文本时出错: {e}") return text - def parse_datetime_to_timestamp(value: str) -> float: """ 接受多种常见格式并转换为时间戳(秒) @@ -143,25 +145,24 @@ def parse_datetime_to_timestamp(value: str) -> float: def parse_time_range(time_range: str) -> Tuple[float, float]: """ 解析时间范围字符串,返回开始和结束时间戳 - + Args: time_range: 时间范围字符串,格式:"YYYY-MM-DD HH:MM:SS - YYYY-MM-DD HH:MM:SS" - + Returns: Tuple[float, float]: (开始时间戳, 结束时间戳) """ if " - " not in time_range: raise ValueError(f"时间范围格式错误,应为 '开始时间 - 结束时间': {time_range}") - + parts = time_range.split(" - ", 1) if len(parts) != 2: raise ValueError(f"时间范围格式错误: {time_range}") - + start_str = parts[0].strip() end_str = parts[1].strip() - + start_timestamp = parse_datetime_to_timestamp(start_str) end_timestamp = parse_datetime_to_timestamp(end_str) - - return start_timestamp, end_timestamp + return start_timestamp, end_timestamp diff --git a/src/memory_system/retrieval_tools/__init__.py b/src/memory_system/retrieval_tools/__init__.py index e02875be..4b5c40c0 100644 --- a/src/memory_system/retrieval_tools/__init__.py +++ b/src/memory_system/retrieval_tools/__init__.py @@ -17,6 +17,7 @@ from .query_lpmm_knowledge import register_tool as register_lpmm_knowledge from .query_person_info import register_tool as register_query_person_info from src.config.config import global_config + def init_all_tools(): """初始化并注册所有记忆检索工具""" register_query_jargon() diff --git a/src/memory_system/retrieval_tools/query_chat_history.py b/src/memory_system/retrieval_tools/query_chat_history.py index 900426ee..407bba05 100644 --- a/src/memory_system/retrieval_tools/query_chat_history.py +++ b/src/memory_system/retrieval_tools/query_chat_history.py @@ -15,13 +15,10 @@ logger = get_logger("memory_retrieval_tools") async def query_chat_history( - chat_id: str, - keyword: Optional[str] = None, - time_range: Optional[str] = None, - fuzzy: bool = True + chat_id: str, keyword: Optional[str] = None, time_range: Optional[str] = None, fuzzy: bool = True ) -> str: """根据时间或关键词在chat_history表中查询聊天记录概述 - + Args: chat_id: 聊天ID keyword: 关键词(可选,支持多个关键词,可用空格、逗号等分隔) @@ -31,7 +28,7 @@ async def query_chat_history( fuzzy: 是否使用模糊匹配模式(默认True) - True: 模糊匹配,只要包含任意一个关键词即匹配(OR关系) - False: 全匹配,必须包含所有关键词才匹配(AND关系) - + Returns: str: 查询结果 """ @@ -39,10 +36,10 @@ async def query_chat_history( # 检查参数 if not keyword and not time_range: return "未指定查询参数(需要提供keyword或time_range之一)" - + # 构建查询条件 query = ChatHistory.select().where(ChatHistory.chat_id == chat_id) - + # 时间过滤条件 if time_range: # 判断是时间点还是时间范围 @@ -50,79 +47,79 @@ async def query_chat_history( # 时间范围:查询与时间范围有交集的记录 start_timestamp, end_timestamp = parse_time_range(time_range) # 交集条件:start_time < end_timestamp AND end_time > start_timestamp - time_filter = ( - (ChatHistory.start_time < end_timestamp) & - (ChatHistory.end_time > start_timestamp) - ) + time_filter = (ChatHistory.start_time < end_timestamp) & (ChatHistory.end_time > start_timestamp) else: # 时间点:查询包含该时间点的记录(start_time <= time_point <= end_time) target_timestamp = parse_datetime_to_timestamp(time_range) - time_filter = ( - (ChatHistory.start_time <= target_timestamp) & - (ChatHistory.end_time >= target_timestamp) - ) + time_filter = (ChatHistory.start_time <= target_timestamp) & (ChatHistory.end_time >= target_timestamp) query = query.where(time_filter) - + # 执行查询 records = list(query.order_by(ChatHistory.start_time.desc()).limit(50)) - + # 如果有关键词,进一步过滤 if keyword: # 解析多个关键词(支持空格、逗号等分隔符) keywords_list = parse_keywords_string(keyword) if not keywords_list: keywords_list = [keyword.strip()] if keyword.strip() else [] - + # 转换为小写以便匹配 keywords_lower = [kw.lower() for kw in keywords_list if kw.strip()] - + if not keywords_lower: return "关键词为空" - + filtered_records = [] - + for record in records: # 在theme、keywords、summary、original_text中搜索 theme = (record.theme or "").lower() summary = (record.summary or "").lower() original_text = (record.original_text or "").lower() - + # 解析record中的keywords JSON record_keywords_list = [] if record.keywords: try: - keywords_data = json.loads(record.keywords) if isinstance(record.keywords, str) else record.keywords + keywords_data = ( + json.loads(record.keywords) if isinstance(record.keywords, str) else record.keywords + ) if isinstance(keywords_data, list): record_keywords_list = [str(k).lower() for k in keywords_data] except (json.JSONDecodeError, TypeError, ValueError): pass - + # 根据匹配模式检查关键词 matched = False if fuzzy: # 模糊匹配:只要包含任意一个关键词即匹配(OR关系) for kw in keywords_lower: - if (kw in theme or - kw in summary or - kw in original_text or - any(kw in k for k in record_keywords_list)): + if ( + kw in theme + or kw in summary + or kw in original_text + or any(kw in k for k in record_keywords_list) + ): matched = True break else: # 全匹配:必须包含所有关键词才匹配(AND关系) matched = True for kw in keywords_lower: - kw_matched = (kw in theme or - kw in summary or - kw in original_text or - any(kw in k for k in record_keywords_list)) + kw_matched = ( + kw in theme + or kw in summary + or kw in original_text + or any(kw in k for k in record_keywords_list) + ) if not kw_matched: matched = False break - + if matched: filtered_records.append(record) - + if not filtered_records: keywords_str = "、".join(keywords_list) match_mode = "包含任意一个关键词" if fuzzy else "包含所有关键词" @@ -130,9 +127,9 @@ async def query_chat_history( return f"未找到{match_mode}'{keywords_str}'且在指定时间范围内的聊天记录概述" else: return f"未找到{match_mode}'{keywords_str}'的聊天记录概述" - + records = filtered_records - + # 如果没有记录(可能是时间范围查询但没有匹配的记录) if not records: if time_range: @@ -148,22 +145,23 @@ async def query_chat_history( record.count = (record.count or 0) + 1 except Exception as update_error: logger.error(f"更新聊天记录概述计数失败: {update_error}") - + # 构建结果文本 results = [] for record in records_to_use: # 最多返回3条记录 result_parts = [] - + # 添加主题 if record.theme: result_parts.append(f"主题:{record.theme}") - + # 添加时间范围 from datetime import datetime + start_str = datetime.fromtimestamp(record.start_time).strftime("%Y-%m-%d %H:%M:%S") end_str = datetime.fromtimestamp(record.end_time).strftime("%Y-%m-%d %H:%M:%S") result_parts.append(f"时间:{start_str} - {end_str}") - + # 添加概括(优先使用summary,如果没有则使用original_text的前200字符) if record.summary: result_parts.append(f"概括:{record.summary}") @@ -172,18 +170,18 @@ async def query_chat_history( if len(record.original_text) > 200: text_preview += "..." result_parts.append(f"内容:{text_preview}") - + results.append("\n".join(result_parts)) - + if not results: return "未找到相关聊天记录概述" - + response_text = "\n\n---\n\n".join(results) if len(records) > len(records_to_use): omitted_count = len(records) - len(records_to_use) response_text += f"\n\n(还有{omitted_count}条历史记录已省略)" return response_text - + except Exception as e: logger.error(f"查询聊天历史概述失败: {e}") return f"查询失败: {str(e)}" @@ -199,20 +197,20 @@ def register_tool(): "name": "keyword", "type": "string", "description": "关键词(可选,支持多个关键词,可用空格、逗号、斜杠等分隔,如:'麦麦 百度网盘' 或 '麦麦,百度网盘'。用于在主题、关键词、概括、原文中搜索)", - "required": False + "required": False, }, { "name": "time_range", "type": "string", "description": "时间范围或时间点(可选)。格式:'YYYY-MM-DD HH:MM:SS - YYYY-MM-DD HH:MM:SS'(时间范围,查询与时间范围有交集的记录)或 'YYYY-MM-DD HH:MM:SS'(时间点,查询包含该时间点的记录)", - "required": False + "required": False, }, { "name": "fuzzy", "type": "boolean", "description": "是否使用模糊匹配模式(默认True)。True表示模糊匹配(只要包含任意一个关键词即匹配,OR关系),False表示全匹配(必须包含所有关键词才匹配,AND关系)", - "required": False - } + "required": False, + }, ], - execute_func=query_chat_history + execute_func=query_chat_history, ) diff --git a/src/memory_system/retrieval_tools/query_lpmm_knowledge.py b/src/memory_system/retrieval_tools/query_lpmm_knowledge.py index 20664eea..c1f39270 100644 --- a/src/memory_system/retrieval_tools/query_lpmm_knowledge.py +++ b/src/memory_system/retrieval_tools/query_lpmm_knowledge.py @@ -73,5 +73,3 @@ def register_tool(): ], execute_func=query_lpmm_knowledge, ) - - diff --git a/src/memory_system/retrieval_tools/query_person_info.py b/src/memory_system/retrieval_tools/query_person_info.py index 878daf4d..bc192722 100644 --- a/src/memory_system/retrieval_tools/query_person_info.py +++ b/src/memory_system/retrieval_tools/query_person_info.py @@ -14,23 +14,25 @@ logger = get_logger("memory_retrieval_tools") def _format_group_nick_names(group_nick_name_field) -> str: """格式化群昵称信息 - + Args: group_nick_name_field: 群昵称字段(可能是字符串JSON或None) - + Returns: str: 格式化后的群昵称信息字符串 """ if not group_nick_name_field: return "" - + try: # 解析JSON格式的群昵称列表 - group_nick_names_data = json.loads(group_nick_name_field) if isinstance(group_nick_name_field, str) else group_nick_name_field - + group_nick_names_data = ( + json.loads(group_nick_name_field) if isinstance(group_nick_name_field, str) else group_nick_name_field + ) + if not isinstance(group_nick_names_data, list) or not group_nick_names_data: return "" - + # 格式化群昵称列表 group_nick_list = [] for item in group_nick_names_data: @@ -41,7 +43,7 @@ def _format_group_nick_names(group_nick_name_field) -> str: elif isinstance(item, str): # 兼容旧格式(如果存在) group_nick_list.append(f" - {item}") - + if group_nick_list: return "群昵称:\n" + "\n".join(group_nick_list) return "" @@ -58,10 +60,10 @@ def _format_group_nick_names(group_nick_name_field) -> str: async def query_person_info(person_name: str) -> str: """根据person_name查询用户信息,使用模糊查询 - + Args: person_name: 用户名称(person_name字段) - + Returns: str: 查询结果,包含用户的所有信息 """ @@ -69,37 +71,35 @@ async def query_person_info(person_name: str) -> str: person_name = str(person_name).strip() if not person_name: return "用户名称为空" - + # 构建查询条件(使用模糊查询) - query = PersonInfo.select().where( - PersonInfo.person_name.contains(person_name) - ) - + query = PersonInfo.select().where(PersonInfo.person_name.contains(person_name)) + # 执行查询 records = list(query.limit(20)) # 最多返回20条记录 - + if not records: return f"未找到模糊匹配'{person_name}'的用户信息" - + # 区分精确匹配和模糊匹配的结果 exact_matches = [] fuzzy_matches = [] - + for record in records: # 检查是否是精确匹配 if record.person_name and record.person_name.strip() == person_name: exact_matches.append(record) else: fuzzy_matches.append(record) - + # 构建结果文本 results = [] - + # 先处理精确匹配的结果 for record in exact_matches: result_parts = [] result_parts.append("【精确匹配】") # 标注为精确匹配 - + # 基本信息 if record.person_name: result_parts.append(f"用户名称:{record.person_name}") @@ -111,19 +111,19 @@ async def query_person_info(person_name: str) -> str: result_parts.append(f"平台:{record.platform}") if record.user_id: result_parts.append(f"平台用户ID:{record.user_id}") - + # 群昵称信息 group_nick_name_str = _format_group_nick_names(getattr(record, "group_nick_name", None)) if group_nick_name_str: result_parts.append(group_nick_name_str) - + # 名称设定原因 if record.name_reason: result_parts.append(f"名称设定原因:{record.name_reason}") - + # 认识状态 result_parts.append(f"是否已认识:{'是' if record.is_known else '否'}") - + # 时间信息 if record.know_since: know_since_str = datetime.fromtimestamp(record.know_since).strftime("%Y-%m-%d %H:%M:%S") @@ -133,11 +133,15 @@ async def query_person_info(person_name: str) -> str: result_parts.append(f"最后认识时间:{last_know_str}") if record.know_times: result_parts.append(f"认识次数:{int(record.know_times)}") - + # 记忆点(memory_points) if record.memory_points: try: - memory_points_data = json.loads(record.memory_points) if isinstance(record.memory_points, str) else record.memory_points + memory_points_data = ( + json.loads(record.memory_points) + if isinstance(record.memory_points, str) + else record.memory_points + ) if isinstance(memory_points_data, list) and memory_points_data: # 解析记忆点格式:category:content:weight memory_list = [] @@ -151,7 +155,7 @@ async def query_person_info(person_name: str) -> str: memory_list.append(f" - [{category}] {content} (权重: {weight})") else: memory_list.append(f" - {memory_point}") - + if memory_list: result_parts.append("记忆点:\n" + "\n".join(memory_list)) except (json.JSONDecodeError, TypeError, ValueError) as e: @@ -161,14 +165,14 @@ async def query_person_info(person_name: str) -> str: if len(str(record.memory_points)) > 200: memory_preview += "..." result_parts.append(f"记忆点(原始数据):{memory_preview}") - + results.append("\n".join(result_parts)) - + # 再处理模糊匹配的结果 for record in fuzzy_matches: result_parts = [] result_parts.append("【模糊匹配】") # 标注为模糊匹配 - + # 基本信息 if record.person_name: result_parts.append(f"用户名称:{record.person_name}") @@ -180,19 +184,19 @@ async def query_person_info(person_name: str) -> str: result_parts.append(f"平台:{record.platform}") if record.user_id: result_parts.append(f"平台用户ID:{record.user_id}") - + # 群昵称信息 group_nick_name_str = _format_group_nick_names(getattr(record, "group_nick_name", None)) if group_nick_name_str: result_parts.append(group_nick_name_str) - + # 名称设定原因 if record.name_reason: result_parts.append(f"名称设定原因:{record.name_reason}") - + # 认识状态 result_parts.append(f"是否已认识:{'是' if record.is_known else '否'}") - + # 时间信息 if record.know_since: know_since_str = datetime.fromtimestamp(record.know_since).strftime("%Y-%m-%d %H:%M:%S") @@ -202,11 +206,15 @@ async def query_person_info(person_name: str) -> str: result_parts.append(f"最后认识时间:{last_know_str}") if record.know_times: result_parts.append(f"认识次数:{int(record.know_times)}") - + # 记忆点(memory_points) if record.memory_points: try: - memory_points_data = json.loads(record.memory_points) if isinstance(record.memory_points, str) else record.memory_points + memory_points_data = ( + json.loads(record.memory_points) + if isinstance(record.memory_points, str) + else record.memory_points + ) if isinstance(memory_points_data, list) and memory_points_data: # 解析记忆点格式:category:content:weight memory_list = [] @@ -220,7 +228,7 @@ async def query_person_info(person_name: str) -> str: memory_list.append(f" - [{category}] {content} (权重: {weight})") else: memory_list.append(f" - {memory_point}") - + if memory_list: result_parts.append("记忆点:\n" + "\n".join(memory_list)) except (json.JSONDecodeError, TypeError, ValueError) as e: @@ -230,20 +238,20 @@ async def query_person_info(person_name: str) -> str: if len(str(record.memory_points)) > 200: memory_preview += "..." result_parts.append(f"记忆点(原始数据):{memory_preview}") - + results.append("\n".join(result_parts)) - + # 组合所有结果 if not results: return f"未找到匹配'{person_name}'的用户信息" - + response_text = "\n\n---\n\n".join(results) - + # 添加统计信息 total_count = len(records) exact_count = len(exact_matches) fuzzy_count = len(fuzzy_matches) - + # 显示精确匹配和模糊匹配的统计 if exact_count > 0 or fuzzy_count > 0: stats_parts = [] @@ -257,13 +265,13 @@ async def query_person_info(person_name: str) -> str: response_text = f"找到 {total_count} 条匹配的用户信息:\n\n{response_text}" else: response_text = f"找到用户信息:\n\n{response_text}" - + # 如果结果数量达到限制,添加提示 if total_count >= 20: response_text += "\n\n(已显示前20条结果,可能还有更多匹配记录)" - + return response_text - + except Exception as e: logger.error(f"查询用户信息失败: {e}") return f"查询失败: {str(e)}" @@ -275,13 +283,7 @@ def register_tool(): name="query_person_info", description="根据查询某个用户的所有信息。名称、昵称、平台、用户ID、qq号、群昵称等", parameters=[ - { - "name": "person_name", - "type": "string", - "description": "用户名称,用于查询用户信息", - "required": True - } + {"name": "person_name", "type": "string", "description": "用户名称,用于查询用户信息", "required": True} ], - execute_func=query_person_info + execute_func=query_person_info, ) - diff --git a/src/memory_system/retrieval_tools/tool_registry.py b/src/memory_system/retrieval_tools/tool_registry.py index 143666ab..1e1fa62b 100644 --- a/src/memory_system/retrieval_tools/tool_registry.py +++ b/src/memory_system/retrieval_tools/tool_registry.py @@ -47,10 +47,10 @@ class MemoryRetrievalTool: async def execute(self, **kwargs) -> str: """执行工具""" return await self.execute_func(**kwargs) - + def get_tool_definition(self) -> Dict[str, Any]: """获取工具定义,用于LLM function calling - + Returns: Dict[str, Any]: 工具定义字典,格式与BaseTool一致 格式: {"name": str, "description": str, "parameters": List[Tuple]} @@ -58,14 +58,14 @@ class MemoryRetrievalTool: # 转换参数格式为元组列表,格式与BaseTool一致 # 格式: [("param_name", ToolParamType, "description", required, enum_values)] param_tuples = [] - + for param in self.parameters: param_name = param.get("name", "") param_type_str = param.get("type", "string").lower() param_desc = param.get("description", "") is_required = param.get("required", False) enum_values = param.get("enum", None) - + # 转换类型字符串到ToolParamType type_mapping = { "string": ToolParamType.STRING, @@ -76,18 +76,14 @@ class MemoryRetrievalTool: "bool": ToolParamType.BOOLEAN, } param_type = type_mapping.get(param_type_str, ToolParamType.STRING) - + # 构建参数元组 param_tuple = (param_name, param_type, param_desc, is_required, enum_values) param_tuples.append(param_tuple) - + # 构建工具定义,格式与BaseTool.get_tool_definition()一致 - tool_def = { - "name": self.name, - "description": self.description, - "parameters": param_tuples - } - + tool_def = {"name": self.name, "description": self.description, "parameters": param_tuples} + return tool_def @@ -126,10 +122,10 @@ class MemoryRetrievalToolRegistry: action_types.append("final_answer") action_types.append("no_answer") return " 或 ".join([f'"{at}"' for at in action_types]) - + def get_tool_definitions(self) -> List[Dict[str, Any]]: """获取所有工具的定义列表,用于LLM function calling - + Returns: List[Dict[str, Any]]: 工具定义列表,每个元素是一个工具定义字典 """ diff --git a/src/person_info/person_info.py b/src/person_info/person_info.py index bbc3fb99..f5cfdcd0 100644 --- a/src/person_info/person_info.py +++ b/src/person_info/person_info.py @@ -162,7 +162,12 @@ def levenshtein_distance(s1: str, s2: str) -> int: class Person: @classmethod def register_person( - cls, platform: str, user_id: str, nickname: str, group_id: Optional[str] = None, group_nick_name: Optional[str] = None + cls, + platform: str, + user_id: str, + nickname: str, + group_id: Optional[str] = None, + group_nick_name: Optional[str] = None, ): """ 注册新用户的类方法 @@ -727,7 +732,7 @@ person_info_manager = PersonInfoManager() async def store_person_memory_from_answer(person_name: str, memory_content: str, chat_id: str) -> None: """将人物信息存入person_info的memory_points - + Args: person_name: 人物名称 memory_content: 记忆内容 @@ -739,13 +744,13 @@ async def store_person_memory_from_answer(person_name: str, memory_content: str, if not chat_stream: logger.warning(f"无法获取chat_stream for chat_id: {chat_id}") return - + platform = chat_stream.platform - + # 尝试从person_name查找person_id # 首先尝试通过person_name查找 person_id = get_person_id_by_person_name(person_name) - + if not person_id: # 如果通过person_name找不到,尝试从chat_stream获取user_info if chat_stream.user_info: @@ -754,25 +759,25 @@ async def store_person_memory_from_answer(person_name: str, memory_content: str, else: logger.warning(f"无法确定person_id for person_name: {person_name}, chat_id: {chat_id}") return - + # 创建或获取Person对象 person = Person(person_id=person_id) - + if not person.is_known: logger.warning(f"用户 {person_name} (person_id: {person_id}) 尚未认识,无法存储记忆") return - + # 确定记忆分类(可以根据memory_content判断,这里使用通用分类) category = "其他" # 默认分类,可以根据需要调整 - + # 记忆点格式:category:content:weight weight = "1.0" # 默认权重 memory_point = f"{category}:{memory_content}:{weight}" - + # 添加到memory_points if not person.memory_points: person.memory_points = [] - + # 检查是否已存在相似的记忆点(避免重复) is_duplicate = False for existing_point in person.memory_points: @@ -781,16 +786,20 @@ async def store_person_memory_from_answer(person_name: str, memory_content: str, if len(parts) >= 2: existing_content = parts[1].strip() # 简单相似度检查(如果内容相同或非常相似,则跳过) - if existing_content == memory_content or memory_content in existing_content or existing_content in memory_content: + if ( + existing_content == memory_content + or memory_content in existing_content + or existing_content in memory_content + ): is_duplicate = True break - + if not is_duplicate: person.memory_points.append(memory_point) person.sync_to_database() logger.info(f"成功添加记忆点到 {person_name} (person_id: {person_id}): {memory_point}") else: logger.debug(f"记忆点已存在,跳过: {memory_point}") - + except Exception as e: logger.error(f"存储人物记忆失败: {e}") diff --git a/src/plugin_system/core/tool_use.py b/src/plugin_system/core/tool_use.py index 12c11795..915ed7aa 100644 --- a/src/plugin_system/core/tool_use.py +++ b/src/plugin_system/core/tool_use.py @@ -124,7 +124,6 @@ class ToolExecutor: response, (reasoning_content, model_name, tool_calls) = await self.llm_model.generate_response_async( prompt=prompt, tools=tools, raise_when_empty=False ) - # 执行工具调用 tool_results, used_tools = await self.execute_tool_calls(tool_calls) diff --git a/src/webui/config_routes.py b/src/webui/config_routes.py index 03a4643f..c4a4d417 100644 --- a/src/webui/config_routes.py +++ b/src/webui/config_routes.py @@ -51,7 +51,7 @@ def _update_dict_preserve_comments(target: Any, source: Any) -> None: """ 递归合并字典,保留 target 中的注释和格式 将 source 的值更新到 target 中(仅更新已存在的键) - + Args: target: 目标字典(tomlkit 对象,包含注释) source: 源字典(普通 dict 或 list) @@ -59,7 +59,7 @@ def _update_dict_preserve_comments(target: Any, source: Any) -> None: # 如果 source 是列表,直接替换(数组表没有注释保留的意义) if isinstance(source, list): return # 调用者需要直接赋值 - + # 如果都是字典,递归合并 if isinstance(source, dict) and isinstance(target, dict): for key, value in source.items(): diff --git a/src/webui/emoji_routes.py b/src/webui/emoji_routes.py index 18603258..96899bf3 100644 --- a/src/webui/emoji_routes.py +++ b/src/webui/emoji_routes.py @@ -1,4 +1,5 @@ """表情包管理 API 路由""" + from fastapi import APIRouter, HTTPException, Header, Query from fastapi.responses import FileResponse from pydantic import BaseModel @@ -18,6 +19,7 @@ router = APIRouter(prefix="/emoji", tags=["Emoji"]) class EmojiResponse(BaseModel): """表情包响应""" + id: int full_path: str format: str @@ -35,6 +37,7 @@ class EmojiResponse(BaseModel): class EmojiListResponse(BaseModel): """表情包列表响应""" + success: bool total: int page: int @@ -44,12 +47,14 @@ class EmojiListResponse(BaseModel): class EmojiDetailResponse(BaseModel): """表情包详情响应""" + success: bool data: EmojiResponse class EmojiUpdateRequest(BaseModel): """表情包更新请求""" + description: Optional[str] = None is_registered: Optional[bool] = None is_banned: Optional[bool] = None @@ -58,6 +63,7 @@ class EmojiUpdateRequest(BaseModel): class EmojiUpdateResponse(BaseModel): """表情包更新响应""" + success: bool message: str data: Optional[EmojiResponse] = None @@ -65,6 +71,7 @@ class EmojiUpdateResponse(BaseModel): class EmojiDeleteResponse(BaseModel): """表情包删除响应""" + success: bool message: str @@ -73,13 +80,13 @@ def verify_auth_token(authorization: Optional[str]) -> bool: """验证认证 Token""" if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="未提供有效的认证信息") - + token = authorization.replace("Bearer ", "") token_manager = get_token_manager() - + if not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="Token 无效或已过期") - + return True @@ -120,11 +127,11 @@ async def get_emoji_list( is_registered: Optional[bool] = Query(None, description="是否已注册筛选"), is_banned: Optional[bool] = Query(None, description="是否被禁用筛选"), format: Optional[str] = Query(None, description="格式筛选"), - authorization: Optional[str] = Header(None) + authorization: Optional[str] = Header(None), ): """ 获取表情包列表 - + Args: page: 页码 (从 1 开始) page_size: 每页数量 (1-100) @@ -133,61 +140,51 @@ async def get_emoji_list( is_banned: 是否被禁用筛选 format: 格式筛选 authorization: Authorization header - + Returns: 表情包列表 """ try: verify_auth_token(authorization) - + # 构建查询 query = Emoji.select() - + # 搜索过滤 if search: - query = query.where( - (Emoji.description.contains(search)) | - (Emoji.emoji_hash.contains(search)) - ) - + query = query.where((Emoji.description.contains(search)) | (Emoji.emoji_hash.contains(search))) + # 注册状态过滤 if is_registered is not None: query = query.where(Emoji.is_registered == is_registered) - + # 禁用状态过滤 if is_banned is not None: query = query.where(Emoji.is_banned == is_banned) - + # 格式过滤 if format: query = query.where(Emoji.format == format) - + # 排序:使用次数倒序,然后按记录时间倒序 from peewee import Case + query = query.order_by( - Emoji.usage_count.desc(), - Case(None, [(Emoji.record_time.is_null(), 1)], 0), - Emoji.record_time.desc() + Emoji.usage_count.desc(), Case(None, [(Emoji.record_time.is_null(), 1)], 0), Emoji.record_time.desc() ) - + # 获取总数 total = query.count() - + # 分页 offset = (page - 1) * page_size emojis = query.offset(offset).limit(page_size) - + # 转换为响应对象 data = [emoji_to_response(emoji) for emoji in emojis] - - return EmojiListResponse( - success=True, - total=total, - page=page, - page_size=page_size, - data=data - ) - + + return EmojiListResponse(success=True, total=total, page=page, page_size=page_size, data=data) + except HTTPException: raise except Exception as e: @@ -196,33 +193,27 @@ async def get_emoji_list( @router.get("/{emoji_id}", response_model=EmojiDetailResponse) -async def get_emoji_detail( - emoji_id: int, - authorization: Optional[str] = Header(None) -): +async def get_emoji_detail(emoji_id: int, authorization: Optional[str] = Header(None)): """ 获取表情包详细信息 - + Args: emoji_id: 表情包ID authorization: Authorization header - + Returns: 表情包详细信息 """ try: verify_auth_token(authorization) - + emoji = Emoji.get_or_none(Emoji.id == emoji_id) - + if not emoji: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {emoji_id} 的表情包") - - return EmojiDetailResponse( - success=True, - data=emoji_to_response(emoji) - ) - + + return EmojiDetailResponse(success=True, data=emoji_to_response(emoji)) + except HTTPException: raise except Exception as e: @@ -231,61 +222,55 @@ async def get_emoji_detail( @router.patch("/{emoji_id}", response_model=EmojiUpdateResponse) -async def update_emoji( - emoji_id: int, - request: EmojiUpdateRequest, - authorization: Optional[str] = Header(None) -): +async def update_emoji(emoji_id: int, request: EmojiUpdateRequest, authorization: Optional[str] = Header(None)): """ 增量更新表情包(只更新提供的字段) - + Args: emoji_id: 表情包ID request: 更新请求(只包含需要更新的字段) authorization: Authorization header - + Returns: 更新结果 """ try: verify_auth_token(authorization) - + emoji = Emoji.get_or_none(Emoji.id == emoji_id) - + if not emoji: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {emoji_id} 的表情包") - + # 只更新提供的字段 update_data = request.model_dump(exclude_unset=True) - + if not update_data: raise HTTPException(status_code=400, detail="未提供任何需要更新的字段") - + # 处理情感标签(转换为 JSON) - if 'emotion' in update_data: - if update_data['emotion'] is None: - update_data['emotion'] = None + if "emotion" in update_data: + if update_data["emotion"] is None: + update_data["emotion"] = None else: - update_data['emotion'] = json.dumps(update_data['emotion'], ensure_ascii=False) - + update_data["emotion"] = json.dumps(update_data["emotion"], ensure_ascii=False) + # 如果注册状态从 False 变为 True,记录注册时间 - if 'is_registered' in update_data and update_data['is_registered'] and not emoji.is_registered: - update_data['register_time'] = time.time() - + if "is_registered" in update_data and update_data["is_registered"] and not emoji.is_registered: + update_data["register_time"] = time.time() + # 执行更新 for field, value in update_data.items(): setattr(emoji, field, value) - + emoji.save() - + logger.info(f"表情包已更新: ID={emoji_id}, 字段: {list(update_data.keys())}") - + return EmojiUpdateResponse( - success=True, - message=f"成功更新 {len(update_data)} 个字段", - data=emoji_to_response(emoji) + success=True, message=f"成功更新 {len(update_data)} 个字段", data=emoji_to_response(emoji) ) - + except HTTPException: raise except Exception as e: @@ -294,41 +279,35 @@ async def update_emoji( @router.delete("/{emoji_id}", response_model=EmojiDeleteResponse) -async def delete_emoji( - emoji_id: int, - authorization: Optional[str] = Header(None) -): +async def delete_emoji(emoji_id: int, authorization: Optional[str] = Header(None)): """ 删除表情包 - + Args: emoji_id: 表情包ID authorization: Authorization header - + Returns: 删除结果 """ try: verify_auth_token(authorization) - + emoji = Emoji.get_or_none(Emoji.id == emoji_id) - + if not emoji: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {emoji_id} 的表情包") - + # 记录删除信息 emoji_hash = emoji.emoji_hash - + # 执行删除 emoji.delete_instance() - + logger.info(f"表情包已删除: ID={emoji_id}, hash={emoji_hash}") - - return EmojiDeleteResponse( - success=True, - message=f"成功删除表情包: {emoji_hash}" - ) - + + return EmojiDeleteResponse(success=True, message=f"成功删除表情包: {emoji_hash}") + except HTTPException: raise except Exception as e: @@ -337,31 +316,29 @@ async def delete_emoji( @router.get("/stats/summary") -async def get_emoji_stats( - authorization: Optional[str] = Header(None) -): +async def get_emoji_stats(authorization: Optional[str] = Header(None)): """ 获取表情包统计数据 - + Args: authorization: Authorization header - + Returns: 统计数据 """ try: verify_auth_token(authorization) - + total = Emoji.select().count() registered = Emoji.select().where(Emoji.is_registered).count() banned = Emoji.select().where(Emoji.is_banned).count() - + # 按格式统计 formats = {} for emoji in Emoji.select(Emoji.format): fmt = emoji.format formats[fmt] = formats.get(fmt, 0) + 1 - + # 获取最常用的表情包(前10) top_used = Emoji.select().order_by(Emoji.usage_count.desc()).limit(10) top_used_list = [ @@ -369,11 +346,11 @@ async def get_emoji_stats( "id": emoji.id, "emoji_hash": emoji.emoji_hash, "description": emoji.description, - "usage_count": emoji.usage_count + "usage_count": emoji.usage_count, } for emoji in top_used ] - + return { "success": True, "data": { @@ -382,10 +359,10 @@ async def get_emoji_stats( "banned": banned, "unregistered": total - registered, "formats": formats, - "top_used": top_used_list - } + "top_used": top_used_list, + }, } - + except HTTPException: raise except Exception as e: @@ -394,47 +371,40 @@ async def get_emoji_stats( @router.post("/{emoji_id}/register", response_model=EmojiUpdateResponse) -async def register_emoji( - emoji_id: int, - authorization: Optional[str] = Header(None) -): +async def register_emoji(emoji_id: int, authorization: Optional[str] = Header(None)): """ 注册表情包(快捷操作) - + Args: emoji_id: 表情包ID authorization: Authorization header - + Returns: 更新结果 """ try: verify_auth_token(authorization) - + emoji = Emoji.get_or_none(Emoji.id == emoji_id) - + if not emoji: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {emoji_id} 的表情包") - + if emoji.is_registered: raise HTTPException(status_code=400, detail="该表情包已经注册") - + if emoji.is_banned: raise HTTPException(status_code=400, detail="该表情包已被禁用,无法注册") - + # 注册表情包 emoji.is_registered = True emoji.register_time = time.time() emoji.save() - + logger.info(f"表情包已注册: ID={emoji_id}") - - return EmojiUpdateResponse( - success=True, - message="表情包注册成功", - data=emoji_to_response(emoji) - ) - + + return EmojiUpdateResponse(success=True, message="表情包注册成功", data=emoji_to_response(emoji)) + except HTTPException: raise except Exception as e: @@ -443,41 +413,34 @@ async def register_emoji( @router.post("/{emoji_id}/ban", response_model=EmojiUpdateResponse) -async def ban_emoji( - emoji_id: int, - authorization: Optional[str] = Header(None) -): +async def ban_emoji(emoji_id: int, authorization: Optional[str] = Header(None)): """ 禁用表情包(快捷操作) - + Args: emoji_id: 表情包ID authorization: Authorization header - + Returns: 更新结果 """ try: verify_auth_token(authorization) - + emoji = Emoji.get_or_none(Emoji.id == emoji_id) - + if not emoji: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {emoji_id} 的表情包") - + # 禁用表情包(同时取消注册) emoji.is_banned = True emoji.is_registered = False emoji.save() - + logger.info(f"表情包已禁用: ID={emoji_id}") - - return EmojiUpdateResponse( - success=True, - message="表情包禁用成功", - data=emoji_to_response(emoji) - ) - + + return EmojiUpdateResponse(success=True, message="表情包禁用成功", data=emoji_to_response(emoji)) + except HTTPException: raise except Exception as e: @@ -489,16 +452,16 @@ async def ban_emoji( async def get_emoji_thumbnail( emoji_id: int, token: Optional[str] = Query(None, description="访问令牌"), - authorization: Optional[str] = Header(None) + authorization: Optional[str] = Header(None), ): """ 获取表情包缩略图 - + Args: emoji_id: 表情包ID token: 访问令牌(通过 query parameter) authorization: Authorization header - + Returns: 表情包图片文件 """ @@ -511,37 +474,32 @@ async def get_emoji_thumbnail( else: # 如果没有 query token,则验证 Authorization header verify_auth_token(authorization) - + emoji = Emoji.get_or_none(Emoji.id == emoji_id) - + if not emoji: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {emoji_id} 的表情包") - + # 检查文件是否存在 if not os.path.exists(emoji.full_path): raise HTTPException(status_code=404, detail="表情包文件不存在") - + # 根据格式设置 MIME 类型 mime_types = { - 'png': 'image/png', - 'jpg': 'image/jpeg', - 'jpeg': 'image/jpeg', - 'gif': 'image/gif', - 'webp': 'image/webp', - 'bmp': 'image/bmp' + "png": "image/png", + "jpg": "image/jpeg", + "jpeg": "image/jpeg", + "gif": "image/gif", + "webp": "image/webp", + "bmp": "image/bmp", } - - media_type = mime_types.get(emoji.format.lower(), 'application/octet-stream') - - return FileResponse( - path=emoji.full_path, - media_type=media_type, - filename=f"{emoji.emoji_hash}.{emoji.format}" - ) - + + media_type = mime_types.get(emoji.format.lower(), "application/octet-stream") + + return FileResponse(path=emoji.full_path, media_type=media_type, filename=f"{emoji.emoji_hash}.{emoji.format}") + except HTTPException: raise except Exception as e: logger.exception(f"获取表情包缩略图失败: {e}") raise HTTPException(status_code=500, detail=f"获取表情包缩略图失败: {str(e)}") from e - diff --git a/src/webui/expression_routes.py b/src/webui/expression_routes.py index de2594ee..aa9261d2 100644 --- a/src/webui/expression_routes.py +++ b/src/webui/expression_routes.py @@ -1,4 +1,5 @@ """表达方式管理 API 路由""" + from fastapi import APIRouter, HTTPException, Header, Query from pydantic import BaseModel from typing import Optional, List @@ -15,6 +16,7 @@ router = APIRouter(prefix="/expression", tags=["Expression"]) class ExpressionResponse(BaseModel): """表达方式响应""" + id: int situation: str style: str @@ -27,6 +29,7 @@ class ExpressionResponse(BaseModel): class ExpressionListResponse(BaseModel): """表达方式列表响应""" + success: bool total: int page: int @@ -36,12 +39,14 @@ class ExpressionListResponse(BaseModel): class ExpressionDetailResponse(BaseModel): """表达方式详情响应""" + success: bool data: ExpressionResponse class ExpressionCreateRequest(BaseModel): """表达方式创建请求""" + situation: str style: str context: Optional[str] = None @@ -51,6 +56,7 @@ class ExpressionCreateRequest(BaseModel): class ExpressionUpdateRequest(BaseModel): """表达方式更新请求""" + situation: Optional[str] = None style: Optional[str] = None context: Optional[str] = None @@ -60,6 +66,7 @@ class ExpressionUpdateRequest(BaseModel): class ExpressionUpdateResponse(BaseModel): """表达方式更新响应""" + success: bool message: str data: Optional[ExpressionResponse] = None @@ -67,12 +74,14 @@ class ExpressionUpdateResponse(BaseModel): class ExpressionDeleteResponse(BaseModel): """表达方式删除响应""" + success: bool message: str class ExpressionCreateResponse(BaseModel): """表达方式创建响应""" + success: bool message: str data: ExpressionResponse @@ -82,13 +91,13 @@ def verify_auth_token(authorization: Optional[str]) -> bool: """验证认证 Token""" if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="未提供有效的认证信息") - + token = authorization.replace("Bearer ", "") token_manager = get_token_manager() - + if not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="Token 无效或已过期") - + return True @@ -112,64 +121,58 @@ async def get_expression_list( page_size: int = Query(20, ge=1, le=100, description="每页数量"), search: Optional[str] = Query(None, description="搜索关键词"), chat_id: Optional[str] = Query(None, description="聊天ID筛选"), - authorization: Optional[str] = Header(None) + authorization: Optional[str] = Header(None), ): """ 获取表达方式列表 - + Args: page: 页码 (从 1 开始) page_size: 每页数量 (1-100) search: 搜索关键词 (匹配 situation, style, context) chat_id: 聊天ID筛选 authorization: Authorization header - + Returns: 表达方式列表 """ try: verify_auth_token(authorization) - + # 构建查询 query = Expression.select() - + # 搜索过滤 if search: query = query.where( - (Expression.situation.contains(search)) | - (Expression.style.contains(search)) | - (Expression.context.contains(search)) + (Expression.situation.contains(search)) + | (Expression.style.contains(search)) + | (Expression.context.contains(search)) ) - + # 聊天ID过滤 if chat_id: query = query.where(Expression.chat_id == chat_id) - + # 排序:最后活跃时间倒序(NULL 值放在最后) from peewee import Case + query = query.order_by( - Case(None, [(Expression.last_active_time.is_null(), 1)], 0), - Expression.last_active_time.desc() + Case(None, [(Expression.last_active_time.is_null(), 1)], 0), Expression.last_active_time.desc() ) - + # 获取总数 total = query.count() - + # 分页 offset = (page - 1) * page_size expressions = query.offset(offset).limit(page_size) - + # 转换为响应对象 data = [expression_to_response(expr) for expr in expressions] - - return ExpressionListResponse( - success=True, - total=total, - page=page, - page_size=page_size, - data=data - ) - + + return ExpressionListResponse(success=True, total=total, page=page, page_size=page_size, data=data) + except HTTPException: raise except Exception as e: @@ -178,33 +181,27 @@ async def get_expression_list( @router.get("/{expression_id}", response_model=ExpressionDetailResponse) -async def get_expression_detail( - expression_id: int, - authorization: Optional[str] = Header(None) -): +async def get_expression_detail(expression_id: int, authorization: Optional[str] = Header(None)): """ 获取表达方式详细信息 - + Args: expression_id: 表达方式ID authorization: Authorization header - + Returns: 表达方式详细信息 """ try: verify_auth_token(authorization) - + expression = Expression.get_or_none(Expression.id == expression_id) - + if not expression: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {expression_id} 的表达方式") - - return ExpressionDetailResponse( - success=True, - data=expression_to_response(expression) - ) - + + return ExpressionDetailResponse(success=True, data=expression_to_response(expression)) + except HTTPException: raise except Exception as e: @@ -213,25 +210,22 @@ async def get_expression_detail( @router.post("/", response_model=ExpressionCreateResponse) -async def create_expression( - request: ExpressionCreateRequest, - authorization: Optional[str] = Header(None) -): +async def create_expression(request: ExpressionCreateRequest, authorization: Optional[str] = Header(None)): """ 创建新的表达方式 - + Args: request: 创建请求 authorization: Authorization header - + Returns: 创建结果 """ try: verify_auth_token(authorization) - + current_time = time.time() - + # 创建表达方式 expression = Expression.create( situation=request.situation, @@ -242,15 +236,13 @@ async def create_expression( last_active_time=current_time, create_date=current_time, ) - + logger.info(f"表达方式已创建: ID={expression.id}, situation={request.situation}") - + return ExpressionCreateResponse( - success=True, - message="表达方式创建成功", - data=expression_to_response(expression) + success=True, message="表达方式创建成功", data=expression_to_response(expression) ) - + except HTTPException: raise except Exception as e: @@ -260,52 +252,48 @@ async def create_expression( @router.patch("/{expression_id}", response_model=ExpressionUpdateResponse) async def update_expression( - expression_id: int, - request: ExpressionUpdateRequest, - authorization: Optional[str] = Header(None) + expression_id: int, request: ExpressionUpdateRequest, authorization: Optional[str] = Header(None) ): """ 增量更新表达方式(只更新提供的字段) - + Args: expression_id: 表达方式ID request: 更新请求(只包含需要更新的字段) authorization: Authorization header - + Returns: 更新结果 """ try: verify_auth_token(authorization) - + expression = Expression.get_or_none(Expression.id == expression_id) - + if not expression: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {expression_id} 的表达方式") - + # 只更新提供的字段 update_data = request.model_dump(exclude_unset=True) - + if not update_data: raise HTTPException(status_code=400, detail="未提供任何需要更新的字段") - + # 更新最后活跃时间 - update_data['last_active_time'] = time.time() - + update_data["last_active_time"] = time.time() + # 执行更新 for field, value in update_data.items(): setattr(expression, field, value) - + expression.save() - + logger.info(f"表达方式已更新: ID={expression_id}, 字段: {list(update_data.keys())}") - + return ExpressionUpdateResponse( - success=True, - message=f"成功更新 {len(update_data)} 个字段", - data=expression_to_response(expression) + success=True, message=f"成功更新 {len(update_data)} 个字段", data=expression_to_response(expression) ) - + except HTTPException: raise except Exception as e: @@ -314,41 +302,35 @@ async def update_expression( @router.delete("/{expression_id}", response_model=ExpressionDeleteResponse) -async def delete_expression( - expression_id: int, - authorization: Optional[str] = Header(None) -): +async def delete_expression(expression_id: int, authorization: Optional[str] = Header(None)): """ 删除表达方式 - + Args: expression_id: 表达方式ID authorization: Authorization header - + Returns: 删除结果 """ try: verify_auth_token(authorization) - + expression = Expression.get_or_none(Expression.id == expression_id) - + if not expression: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {expression_id} 的表达方式") - + # 记录删除信息 situation = expression.situation - + # 执行删除 expression.delete_instance() - + logger.info(f"表达方式已删除: ID={expression_id}, situation={situation}") - - return ExpressionDeleteResponse( - success=True, - message=f"成功删除表达方式: {situation}" - ) - + + return ExpressionDeleteResponse(success=True, message=f"成功删除表达方式: {situation}") + except HTTPException: raise except Exception as e: @@ -357,46 +339,45 @@ async def delete_expression( @router.get("/stats/summary") -async def get_expression_stats( - authorization: Optional[str] = Header(None) -): +async def get_expression_stats(authorization: Optional[str] = Header(None)): """ 获取表达方式统计数据 - + Args: authorization: Authorization header - + Returns: 统计数据 """ try: verify_auth_token(authorization) - + total = Expression.select().count() - + # 按 chat_id 统计 chat_stats = {} for expr in Expression.select(Expression.chat_id): chat_id = expr.chat_id chat_stats[chat_id] = chat_stats.get(chat_id, 0) + 1 - + # 获取最近创建的记录数(7天内) seven_days_ago = time.time() - (7 * 24 * 60 * 60) - recent = Expression.select().where( - (Expression.create_date.is_null(False)) & - (Expression.create_date >= seven_days_ago) - ).count() - + recent = ( + Expression.select() + .where((Expression.create_date.is_null(False)) & (Expression.create_date >= seven_days_ago)) + .count() + ) + return { "success": True, "data": { "total": total, "recent_7days": recent, "chat_count": len(chat_stats), - "top_chats": dict(sorted(chat_stats.items(), key=lambda x: x[1], reverse=True)[:10]) - } + "top_chats": dict(sorted(chat_stats.items(), key=lambda x: x[1], reverse=True)[:10]), + }, } - + except HTTPException: raise except Exception as e: diff --git a/src/webui/git_mirror_service.py b/src/webui/git_mirror_service.py index 02645f70..df00cde9 100644 --- a/src/webui/git_mirror_service.py +++ b/src/webui/git_mirror_service.py @@ -1,4 +1,5 @@ """Git 镜像源服务 - 支持多镜像源、错误重试、Git 克隆和 Raw 文件获取""" + from typing import Optional, List, Dict, Any from enum import Enum import httpx @@ -15,6 +16,7 @@ logger = get_logger("webui.git_mirror") # 导入进度更新函数(避免循环导入) _update_progress = None + def set_update_progress_callback(callback): """设置进度更新回调函数""" global _update_progress @@ -23,6 +25,7 @@ def set_update_progress_callback(callback): class MirrorType(str, Enum): """镜像源类型""" + GH_PROXY = "gh-proxy" # gh-proxy 主节点 HK_GH_PROXY = "hk-gh-proxy" # gh-proxy 香港节点 CDN_GH_PROXY = "cdn-gh-proxy" # gh-proxy CDN 节点 @@ -34,10 +37,10 @@ class MirrorType(str, Enum): class GitMirrorConfig: """Git 镜像源配置管理""" - + # 配置文件路径 CONFIG_FILE = Path("data/webui.json") - + # 默认镜像源配置 DEFAULT_MIRRORS = [ { @@ -47,7 +50,7 @@ class GitMirrorConfig: "clone_prefix": "https://gh-proxy.org/https://github.com", "enabled": True, "priority": 1, - "created_at": None + "created_at": None, }, { "id": "hk-gh-proxy", @@ -56,7 +59,7 @@ class GitMirrorConfig: "clone_prefix": "https://hk.gh-proxy.org/https://github.com", "enabled": True, "priority": 2, - "created_at": None + "created_at": None, }, { "id": "cdn-gh-proxy", @@ -65,7 +68,7 @@ class GitMirrorConfig: "clone_prefix": "https://cdn.gh-proxy.org/https://github.com", "enabled": True, "priority": 3, - "created_at": None + "created_at": None, }, { "id": "edgeone-gh-proxy", @@ -74,7 +77,7 @@ class GitMirrorConfig: "clone_prefix": "https://edgeone.gh-proxy.org/https://github.com", "enabled": True, "priority": 4, - "created_at": None + "created_at": None, }, { "id": "meyzh-github", @@ -83,7 +86,7 @@ class GitMirrorConfig: "clone_prefix": "https://meyzh.github.io/https://github.com", "enabled": True, "priority": 5, - "created_at": None + "created_at": None, }, { "id": "github", @@ -92,23 +95,23 @@ class GitMirrorConfig: "clone_prefix": "https://github.com", "enabled": True, "priority": 999, - "created_at": None - } + "created_at": None, + }, ] - + def __init__(self): """初始化配置管理器""" self.config_file = self.CONFIG_FILE self.mirrors: List[Dict[str, Any]] = [] self._load_config() - + def _load_config(self) -> None: """加载配置文件""" try: if self.config_file.exists(): - with open(self.config_file, 'r', encoding='utf-8') as f: + with open(self.config_file, "r", encoding="utf-8") as f: data = json.load(f) - + # 检查是否有镜像源配置 if "git_mirrors" not in data or not data["git_mirrors"]: logger.info("配置文件中未找到镜像源配置,使用默认配置") @@ -122,59 +125,59 @@ class GitMirrorConfig: except Exception as e: logger.error(f"加载配置文件失败: {e}") self._init_default_mirrors() - + def _init_default_mirrors(self) -> None: """初始化默认镜像源""" current_time = datetime.now().isoformat() self.mirrors = [] - + for mirror in self.DEFAULT_MIRRORS: mirror_copy = mirror.copy() mirror_copy["created_at"] = current_time self.mirrors.append(mirror_copy) - + self._save_config() logger.info(f"已初始化 {len(self.mirrors)} 个默认镜像源") - + def _save_config(self) -> None: """保存配置到文件""" try: # 确保目录存在 self.config_file.parent.mkdir(parents=True, exist_ok=True) - + # 读取现有配置 existing_data = {} if self.config_file.exists(): - with open(self.config_file, 'r', encoding='utf-8') as f: + with open(self.config_file, "r", encoding="utf-8") as f: existing_data = json.load(f) - + # 更新镜像源配置 existing_data["git_mirrors"] = self.mirrors - + # 写入文件 - with open(self.config_file, 'w', encoding='utf-8') as f: + with open(self.config_file, "w", encoding="utf-8") as f: json.dump(existing_data, f, indent=2, ensure_ascii=False) - + logger.debug(f"配置已保存到 {self.config_file}") except Exception as e: logger.error(f"保存配置文件失败: {e}") - + def get_all_mirrors(self) -> List[Dict[str, Any]]: """获取所有镜像源""" return self.mirrors.copy() - + def get_enabled_mirrors(self) -> List[Dict[str, Any]]: """获取所有启用的镜像源,按优先级排序""" enabled = [m for m in self.mirrors if m.get("enabled", False)] return sorted(enabled, key=lambda x: x.get("priority", 999)) - + def get_mirror_by_id(self, mirror_id: str) -> Optional[Dict[str, Any]]: """根据 ID 获取镜像源""" for mirror in self.mirrors: if mirror.get("id") == mirror_id: return mirror.copy() return None - + def add_mirror( self, mirror_id: str, @@ -182,26 +185,26 @@ class GitMirrorConfig: raw_prefix: str, clone_prefix: str, enabled: bool = True, - priority: Optional[int] = None + priority: Optional[int] = None, ) -> Dict[str, Any]: """ 添加新的镜像源 - + Returns: 添加的镜像源配置 - + Raises: ValueError: 如果镜像源 ID 已存在 """ # 检查 ID 是否已存在 if self.get_mirror_by_id(mirror_id): raise ValueError(f"镜像源 ID 已存在: {mirror_id}") - + # 如果未指定优先级,使用最大优先级 + 1 if priority is None: max_priority = max((m.get("priority", 0) for m in self.mirrors), default=0) priority = max_priority + 1 - + new_mirror = { "id": mirror_id, "name": name, @@ -209,15 +212,15 @@ class GitMirrorConfig: "clone_prefix": clone_prefix, "enabled": enabled, "priority": priority, - "created_at": datetime.now().isoformat() + "created_at": datetime.now().isoformat(), } - + self.mirrors.append(new_mirror) self._save_config() - + logger.info(f"已添加镜像源: {mirror_id} - {name}") return new_mirror.copy() - + def update_mirror( self, mirror_id: str, @@ -225,11 +228,11 @@ class GitMirrorConfig: raw_prefix: Optional[str] = None, clone_prefix: Optional[str] = None, enabled: Optional[bool] = None, - priority: Optional[int] = None + priority: Optional[int] = None, ) -> Optional[Dict[str, Any]]: """ 更新镜像源配置 - + Returns: 更新后的镜像源配置,如果不存在则返回 None """ @@ -245,19 +248,19 @@ class GitMirrorConfig: mirror["enabled"] = enabled if priority is not None: mirror["priority"] = priority - + mirror["updated_at"] = datetime.now().isoformat() self._save_config() - + logger.info(f"已更新镜像源: {mirror_id}") return mirror.copy() - + return None - + def delete_mirror(self, mirror_id: str) -> bool: """ 删除镜像源 - + Returns: True 如果删除成功,False 如果镜像源不存在 """ @@ -267,9 +270,9 @@ class GitMirrorConfig: self._save_config() logger.info(f"已删除镜像源: {mirror_id}") return True - + return False - + def get_default_priority_list(self) -> List[str]: """获取默认优先级列表(仅启用的镜像源 ID)""" enabled = self.get_enabled_mirrors() @@ -278,16 +281,11 @@ class GitMirrorConfig: class GitMirrorService: """Git 镜像源服务""" - - def __init__( - self, - max_retries: int = 3, - timeout: int = 30, - config: Optional[GitMirrorConfig] = None - ): + + def __init__(self, max_retries: int = 3, timeout: int = 30, config: Optional[GitMirrorConfig] = None): """ 初始化 Git 镜像源服务 - + Args: max_retries: 最大重试次数 timeout: 请求超时时间(秒) @@ -297,16 +295,16 @@ class GitMirrorService: self.timeout = timeout self.config = config or GitMirrorConfig() logger.info(f"Git镜像源服务初始化完成,已加载 {len(self.config.get_enabled_mirrors())} 个启用的镜像源") - + def get_mirror_config(self) -> GitMirrorConfig: """获取镜像源配置管理器""" return self.config - + @staticmethod def check_git_installed() -> Dict[str, Any]: """ 检查本机是否安装了 Git - + Returns: Dict 包含: - installed: bool - 是否已安装 Git @@ -316,54 +314,33 @@ class GitMirrorService: """ import subprocess import shutil - + try: # 查找 git 可执行文件路径 git_path = shutil.which("git") - + if not git_path: logger.warning("未找到 Git 可执行文件") - return { - "installed": False, - "error": "系统中未找到 Git,请先安装 Git" - } - + return {"installed": False, "error": "系统中未找到 Git,请先安装 Git"} + # 获取 Git 版本 - result = subprocess.run( - ["git", "--version"], - capture_output=True, - text=True, - timeout=5 - ) - + result = subprocess.run(["git", "--version"], capture_output=True, text=True, timeout=5) + if result.returncode == 0: version = result.stdout.strip() logger.info(f"检测到 Git: {version} at {git_path}") - return { - "installed": True, - "version": version, - "path": git_path - } + return {"installed": True, "version": version, "path": git_path} else: logger.warning(f"Git 命令执行失败: {result.stderr}") - return { - "installed": False, - "error": f"Git 命令执行失败: {result.stderr}" - } - + return {"installed": False, "error": f"Git 命令执行失败: {result.stderr}"} + except subprocess.TimeoutExpired: logger.error("Git 版本检测超时") - return { - "installed": False, - "error": "Git 版本检测超时" - } + return {"installed": False, "error": "Git 版本检测超时"} except Exception as e: logger.error(f"检测 Git 时发生错误: {e}") - return { - "installed": False, - "error": f"检测 Git 时发生错误: {str(e)}" - } - + return {"installed": False, "error": f"检测 Git 时发生错误: {str(e)}"} + async def fetch_raw_file( self, owner: str, @@ -371,11 +348,11 @@ class GitMirrorService: branch: str, file_path: str, mirror_id: Optional[str] = None, - custom_url: Optional[str] = None + custom_url: Optional[str] = None, ) -> Dict[str, Any]: """ 获取 GitHub 仓库的 Raw 文件内容 - + Args: owner: 仓库所有者 repo: 仓库名称 @@ -383,7 +360,7 @@ class GitMirrorService: file_path: 文件路径 mirror_id: 指定的镜像源 ID custom_url: 自定义完整 URL(如果提供,将忽略其他参数) - + Returns: Dict 包含: - success: bool - 是否成功 @@ -393,29 +370,24 @@ class GitMirrorService: - attempts: int - 尝试次数 """ logger.info(f"开始获取 Raw 文件: {owner}/{repo}/{branch}/{file_path}") - + if custom_url: # 使用自定义 URL return await self._fetch_with_url(custom_url, "custom") - + # 确定要使用的镜像源列表 if mirror_id: # 使用指定的镜像源 mirror = self.config.get_mirror_by_id(mirror_id) if not mirror: - return { - "success": False, - "error": f"未找到镜像源: {mirror_id}", - "mirror_used": None, - "attempts": 0 - } + return {"success": False, "error": f"未找到镜像源: {mirror_id}", "mirror_used": None, "attempts": 0} mirrors_to_try = [mirror] else: # 使用所有启用的镜像源 mirrors_to_try = self.config.get_enabled_mirrors() - + total_mirrors = len(mirrors_to_try) - + # 依次尝试每个镜像源 for index, mirror in enumerate(mirrors_to_try, 1): # 推送进度:正在尝试第 N 个镜像源 @@ -427,15 +399,13 @@ class GitMirrorService: progress=progress, message=f"正在尝试镜像源 {index}/{total_mirrors}: {mirror['name']}", total_plugins=0, - loaded_plugins=0 + loaded_plugins=0, ) except Exception as e: logger.warning(f"推送进度失败: {e}") - - result = await self._fetch_raw_from_mirror( - owner, repo, branch, file_path, mirror - ) - + + result = await self._fetch_raw_from_mirror(owner, repo, branch, file_path, mirror) + if result["success"]: # 成功,推送进度 if _update_progress: @@ -445,15 +415,15 @@ class GitMirrorService: progress=70, message=f"成功从 {mirror['name']} 获取数据", total_plugins=0, - loaded_plugins=0 + loaded_plugins=0, ) except Exception as e: logger.warning(f"推送进度失败: {e}") return result - + # 失败,记录日志并推送失败信息 logger.warning(f"镜像源 {mirror['id']} 失败: {result.get('error')}") - + if _update_progress and index < total_mirrors: try: await _update_progress( @@ -461,39 +431,29 @@ class GitMirrorService: progress=30 + int(index / total_mirrors * 40), message=f"镜像源 {mirror['name']} 失败,尝试下一个...", total_plugins=0, - loaded_plugins=0 + loaded_plugins=0, ) except Exception as e: logger.warning(f"推送进度失败: {e}") - + # 所有镜像源都失败 - return { - "success": False, - "error": "所有镜像源均失败", - "mirror_used": None, - "attempts": len(mirrors_to_try) - } - + return {"success": False, "error": "所有镜像源均失败", "mirror_used": None, "attempts": len(mirrors_to_try)} + async def _fetch_raw_from_mirror( - self, - owner: str, - repo: str, - branch: str, - file_path: str, - mirror: Dict[str, Any] + self, owner: str, repo: str, branch: str, file_path: str, mirror: Dict[str, Any] ) -> Dict[str, Any]: """从指定镜像源获取文件""" # 构建 URL raw_prefix = mirror["raw_prefix"] url = f"{raw_prefix}/{owner}/{repo}/{branch}/{file_path}" - + return await self._fetch_with_url(url, mirror["id"]) - + async def _fetch_with_url(self, url: str, mirror_type: str) -> Dict[str, Any]: """使用指定 URL 获取文件,支持重试""" attempts = 0 last_error = None - + for attempt in range(self.max_retries): attempts += 1 try: @@ -501,14 +461,14 @@ class GitMirrorService: async with httpx.AsyncClient(timeout=self.timeout) as client: response = await client.get(url) response.raise_for_status() - + logger.info(f"成功获取文件: {url}") return { "success": True, "data": response.text, "mirror_used": mirror_type, "attempts": attempts, - "url": url + "url": url, } except httpx.HTTPStatusError as e: last_error = f"HTTP {e.response.status_code}: {e}" @@ -519,15 +479,9 @@ class GitMirrorService: except Exception as e: last_error = f"未知错误: {e}" logger.error(f"错误 (尝试 {attempt + 1}/{self.max_retries}): {last_error}") - - return { - "success": False, - "error": last_error, - "mirror_used": mirror_type, - "attempts": attempts, - "url": url - } - + + return {"success": False, "error": last_error, "mirror_used": mirror_type, "attempts": attempts, "url": url} + async def clone_repository( self, owner: str, @@ -536,11 +490,11 @@ class GitMirrorService: branch: Optional[str] = None, mirror_id: Optional[str] = None, custom_url: Optional[str] = None, - depth: Optional[int] = None + depth: Optional[int] = None, ) -> Dict[str, Any]: """ 克隆 GitHub 仓库 - + Args: owner: 仓库所有者 repo: 仓库名称 @@ -549,7 +503,7 @@ class GitMirrorService: mirror_id: 指定的镜像源 ID custom_url: 自定义克隆 URL depth: 克隆深度(浅克隆) - + Returns: Dict 包含: - success: bool - 是否成功 @@ -559,44 +513,32 @@ class GitMirrorService: - attempts: int - 尝试次数 """ logger.info(f"开始克隆仓库: {owner}/{repo} 到 {target_path}") - + if custom_url: # 使用自定义 URL return await self._clone_with_url(custom_url, target_path, branch, depth, "custom") - + # 确定要使用的镜像源列表 if mirror_id: # 使用指定的镜像源 mirror = self.config.get_mirror_by_id(mirror_id) if not mirror: - return { - "success": False, - "error": f"未找到镜像源: {mirror_id}", - "mirror_used": None, - "attempts": 0 - } + return {"success": False, "error": f"未找到镜像源: {mirror_id}", "mirror_used": None, "attempts": 0} mirrors_to_try = [mirror] else: # 使用所有启用的镜像源 mirrors_to_try = self.config.get_enabled_mirrors() - + # 依次尝试每个镜像源 for mirror in mirrors_to_try: - result = await self._clone_from_mirror( - owner, repo, target_path, branch, depth, mirror - ) + result = await self._clone_from_mirror(owner, repo, target_path, branch, depth, mirror) if result["success"]: return result logger.warning(f"镜像源 {mirror['id']} 克隆失败: {result.get('error')}") - + # 所有镜像源都失败 - return { - "success": False, - "error": "所有镜像源克隆均失败", - "mirror_used": None, - "attempts": len(mirrors_to_try) - } - + return {"success": False, "error": "所有镜像源克隆均失败", "mirror_used": None, "attempts": len(mirrors_to_try)} + async def _clone_from_mirror( self, owner: str, @@ -604,52 +546,47 @@ class GitMirrorService: target_path: Path, branch: Optional[str], depth: Optional[int], - mirror: Dict[str, Any] + mirror: Dict[str, Any], ) -> Dict[str, Any]: """从指定镜像源克隆仓库""" # 构建克隆 URL clone_prefix = mirror["clone_prefix"] url = f"{clone_prefix}/{owner}/{repo}.git" - + return await self._clone_with_url(url, target_path, branch, depth, mirror["id"]) - + async def _clone_with_url( - self, - url: str, - target_path: Path, - branch: Optional[str], - depth: Optional[int], - mirror_type: str + self, url: str, target_path: Path, branch: Optional[str], depth: Optional[int], mirror_type: str ) -> Dict[str, Any]: """使用指定 URL 克隆仓库,支持重试""" attempts = 0 last_error = None - + for attempt in range(self.max_retries): attempts += 1 - + try: # 确保目标路径不存在 if target_path.exists(): logger.warning(f"目标路径已存在,删除: {target_path}") shutil.rmtree(target_path, ignore_errors=True) - + # 构建 git clone 命令 cmd = ["git", "clone"] - + # 添加分支参数 if branch: cmd.extend(["-b", branch]) - + # 添加深度参数(浅克隆) if depth: cmd.extend(["--depth", str(depth)]) - + # 添加 URL 和目标路径 cmd.extend([url, str(target_path)]) - + logger.info(f"尝试克隆 #{attempt + 1}: {' '.join(cmd)}") - + # 推送进度 if _update_progress: try: @@ -657,24 +594,24 @@ class GitMirrorService: stage="loading", progress=20 + attempt * 10, message=f"正在克隆仓库 (尝试 {attempt + 1}/{self.max_retries})...", - operation="install" + operation="install", ) except Exception as e: logger.warning(f"推送进度失败: {e}") - + # 执行 git clone(在线程池中运行以避免阻塞) loop = asyncio.get_event_loop() - + def run_git_clone(): return subprocess.run( cmd, capture_output=True, text=True, - timeout=300 # 5分钟超时 + timeout=300, # 5分钟超时 ) - + process = await loop.run_in_executor(None, run_git_clone) - + if process.returncode == 0: logger.info(f"成功克隆仓库: {url} -> {target_path}") return { @@ -683,40 +620,34 @@ class GitMirrorService: "mirror_used": mirror_type, "attempts": attempts, "url": url, - "branch": branch or "default" + "branch": branch or "default", } else: last_error = f"Git 克隆失败: {process.stderr}" logger.warning(f"克隆失败 (尝试 {attempt + 1}/{self.max_retries}): {last_error}") - + except subprocess.TimeoutExpired: last_error = "克隆超时(超过 5 分钟)" logger.warning(f"克隆超时 (尝试 {attempt + 1}/{self.max_retries})") - + # 清理可能的部分克隆 if target_path.exists(): shutil.rmtree(target_path, ignore_errors=True) - + except FileNotFoundError: last_error = "Git 未安装或不在 PATH 中" logger.error(f"Git 未找到: {last_error}") break # Git 不存在,不需要重试 - + except Exception as e: last_error = f"未知错误: {e}" logger.error(f"克隆错误 (尝试 {attempt + 1}/{self.max_retries}): {last_error}") - + # 清理可能的部分克隆 if target_path.exists(): shutil.rmtree(target_path, ignore_errors=True) - - return { - "success": False, - "error": last_error, - "mirror_used": mirror_type, - "attempts": attempts, - "url": url - } + + return {"success": False, "error": last_error, "mirror_used": mirror_type, "attempts": attempts, "url": url} # 全局服务实例 diff --git a/src/webui/logs_ws.py b/src/webui/logs_ws.py index d8ef65aa..e0e0a9a1 100644 --- a/src/webui/logs_ws.py +++ b/src/webui/logs_ws.py @@ -1,4 +1,5 @@ """WebSocket 日志推送模块""" + from fastapi import APIRouter, WebSocket, WebSocketDisconnect from typing import Set import json @@ -14,30 +15,30 @@ active_connections: Set[WebSocket] = set() def load_recent_logs(limit: int = 100) -> list[dict]: """从日志文件中加载最近的日志 - + Args: limit: 返回的最大日志条数 - + Returns: 日志列表 """ logs = [] log_dir = Path("logs") - + if not log_dir.exists(): return logs - + # 获取所有日志文件,按修改时间排序 log_files = sorted(log_dir.glob("app_*.log.jsonl"), key=lambda f: f.stat().st_mtime, reverse=True) - + # 用于生成唯一 ID 的计数器 log_counter = 0 - + # 从最新的文件开始读取 for log_file in log_files: if len(logs) >= limit: break - + try: with open(log_file, "r", encoding="utf-8") as f: lines = f.readlines() @@ -49,7 +50,9 @@ def load_recent_logs(limit: int = 100) -> list[dict]: log_entry = json.loads(line.strip()) # 转换为前端期望的格式 # 使用时间戳 + 计数器生成唯一 ID - timestamp_id = log_entry.get("timestamp", "0").replace("-", "").replace(" ", "").replace(":", "") + timestamp_id = ( + log_entry.get("timestamp", "0").replace("-", "").replace(" ", "").replace(":", "") + ) formatted_log = { "id": f"{timestamp_id}_{log_counter}", "timestamp": log_entry.get("timestamp", ""), @@ -64,7 +67,7 @@ def load_recent_logs(limit: int = 100) -> list[dict]: except Exception as e: logger.error(f"读取日志文件失败 {log_file}: {e}") continue - + # 反转列表,使其按时间顺序排列(旧到新) return list(reversed(logs)) @@ -72,35 +75,35 @@ def load_recent_logs(limit: int = 100) -> list[dict]: @router.websocket("/ws/logs") async def websocket_logs(websocket: WebSocket): """WebSocket 日志推送端点 - + 客户端连接后会持续接收服务器端的日志消息 """ await websocket.accept() active_connections.add(websocket) logger.info(f"📡 WebSocket 客户端已连接,当前连接数: {len(active_connections)}") - + # 连接建立后,立即发送历史日志 try: recent_logs = load_recent_logs(limit=100) logger.info(f"发送 {len(recent_logs)} 条历史日志到客户端") - + for log_entry in recent_logs: await websocket.send_text(json.dumps(log_entry, ensure_ascii=False)) except Exception as e: logger.error(f"发送历史日志失败: {e}") - + try: # 保持连接,等待客户端消息或断开 while True: # 接收客户端消息(用于心跳或控制指令) data = await websocket.receive_text() - + # 可以处理客户端的控制消息,例如: # - "ping" -> 心跳检测 # - {"filter": "ERROR"} -> 设置日志级别过滤 if data == "ping": await websocket.send_text("pong") - + except WebSocketDisconnect: active_connections.discard(websocket) logger.info(f"📡 WebSocket 客户端已断开,当前连接数: {len(active_connections)}") @@ -111,19 +114,19 @@ async def websocket_logs(websocket: WebSocket): async def broadcast_log(log_data: dict): """广播日志到所有连接的 WebSocket 客户端 - + Args: log_data: 日志数据字典 """ if not active_connections: return - + # 格式化为 JSON message = json.dumps(log_data, ensure_ascii=False) - + # 记录需要断开的连接 disconnected = set() - + # 广播到所有客户端 for connection in active_connections: try: @@ -131,7 +134,7 @@ async def broadcast_log(log_data: dict): except Exception: # 发送失败,标记为断开 disconnected.add(connection) - + # 清理断开的连接 if disconnected: active_connections.difference_update(disconnected) diff --git a/src/webui/manager.py b/src/webui/manager.py index 3919df17..4dc472e2 100644 --- a/src/webui/manager.py +++ b/src/webui/manager.py @@ -1,4 +1,5 @@ """WebUI 管理器 - 处理开发/生产环境的 WebUI 启动""" + import os from pathlib import Path from src.common.logger import get_logger @@ -10,10 +11,10 @@ logger = get_logger("webui") def setup_webui(mode: str = "production") -> bool: """ 设置 WebUI - + Args: mode: 运行模式,"development" 或 "production" - + Returns: bool: 是否成功设置 """ @@ -22,7 +23,7 @@ def setup_webui(mode: str = "production") -> bool: current_token = token_manager.get_token() logger.info(f"🔑 WebUI Access Token: {current_token}") logger.info("💡 请使用此 Token 登录 WebUI") - + if mode == "development": return setup_dev_mode() else: @@ -33,12 +34,12 @@ def setup_dev_mode() -> bool: """设置开发模式 - 仅启用 CORS,前端自行启动""" from src.common.server import get_global_server from .logs_ws import router as logs_router - + # 注册 WebSocket 日志路由(开发模式也需要) server = get_global_server() server.register_router(logs_router) logger.info("✅ WebSocket 日志推送路由已注册") - + logger.info("📝 WebUI 开发模式已启用") logger.info("🌐 请手动启动前端开发服务器: cd webui && npm run dev") logger.info("💡 前端将运行在 http://localhost:7999") @@ -52,33 +53,33 @@ def setup_production_mode() -> bool: from starlette.responses import FileResponse from .logs_ws import router as logs_router import mimetypes - + # 确保正确的 MIME 类型映射 mimetypes.init() - mimetypes.add_type('application/javascript', '.js') - mimetypes.add_type('application/javascript', '.mjs') - mimetypes.add_type('text/css', '.css') - mimetypes.add_type('application/json', '.json') - + mimetypes.add_type("application/javascript", ".js") + mimetypes.add_type("application/javascript", ".mjs") + mimetypes.add_type("text/css", ".css") + mimetypes.add_type("application/json", ".json") + server = get_global_server() - + # 注册 WebSocket 日志路由 server.register_router(logs_router) logger.info("✅ WebSocket 日志推送路由已注册") - + base_dir = Path(__file__).parent.parent.parent static_path = base_dir / "webui" / "dist" - + if not static_path.exists(): logger.warning(f"❌ WebUI 静态文件目录不存在: {static_path}") logger.warning("💡 请先构建前端: cd webui && npm run build") return False - + if not (static_path / "index.html").exists(): logger.warning(f"❌ 未找到 index.html: {static_path / 'index.html'}") logger.warning("💡 请确认前端已正确构建") return False - + # 处理 SPA 路由 @server.app.get("/{full_path:path}") async def serve_spa(full_path: str): @@ -86,23 +87,23 @@ def setup_production_mode() -> bool: # API 路由不处理 if full_path.startswith("api/"): return None - + # 检查文件是否存在 file_path = static_path / full_path if file_path.is_file(): # 自动检测 MIME 类型 media_type = mimetypes.guess_type(str(file_path))[0] return FileResponse(file_path, media_type=media_type) - + # 返回 index.html(SPA 路由) return FileResponse(static_path / "index.html", media_type="text/html") - + host = os.getenv("HOST", "127.0.0.1") port = os.getenv("PORT", "8000") logger.info("✅ WebUI 生产模式已挂载") logger.info(f"🌐 访问 http://{host}:{port} 查看 WebUI") return True - + except Exception as e: logger.error(f"挂载 WebUI 静态文件失败: {e}") return False diff --git a/src/webui/person_routes.py b/src/webui/person_routes.py index a5488d49..24855aba 100644 --- a/src/webui/person_routes.py +++ b/src/webui/person_routes.py @@ -1,4 +1,5 @@ """人物信息管理 API 路由""" + from fastapi import APIRouter, HTTPException, Header, Query from pydantic import BaseModel from typing import Optional, List, Dict @@ -16,6 +17,7 @@ router = APIRouter(prefix="/person", tags=["Person"]) class PersonInfoResponse(BaseModel): """人物信息响应""" + id: int is_known: bool person_id: str @@ -33,6 +35,7 @@ class PersonInfoResponse(BaseModel): class PersonListResponse(BaseModel): """人物列表响应""" + success: bool total: int page: int @@ -42,12 +45,14 @@ class PersonListResponse(BaseModel): class PersonDetailResponse(BaseModel): """人物详情响应""" + success: bool data: PersonInfoResponse class PersonUpdateRequest(BaseModel): """人物信息更新请求""" + person_name: Optional[str] = None name_reason: Optional[str] = None nickname: Optional[str] = None @@ -57,6 +62,7 @@ class PersonUpdateRequest(BaseModel): class PersonUpdateResponse(BaseModel): """人物信息更新响应""" + success: bool message: str data: Optional[PersonInfoResponse] = None @@ -64,6 +70,7 @@ class PersonUpdateResponse(BaseModel): class PersonDeleteResponse(BaseModel): """人物删除响应""" + success: bool message: str @@ -72,13 +79,13 @@ def verify_auth_token(authorization: Optional[str]) -> bool: """验证认证 Token""" if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="未提供有效的认证信息") - + token = authorization.replace("Bearer ", "") token_manager = get_token_manager() - + if not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="Token 无效或已过期") - + return True @@ -118,11 +125,11 @@ async def get_person_list( search: Optional[str] = Query(None, description="搜索关键词"), is_known: Optional[bool] = Query(None, description="是否已认识筛选"), platform: Optional[str] = Query(None, description="平台筛选"), - authorization: Optional[str] = Header(None) + authorization: Optional[str] = Header(None), ): """ 获取人物信息列表 - + Args: page: 页码 (从 1 开始) page_size: 每页数量 (1-100) @@ -130,58 +137,50 @@ async def get_person_list( is_known: 是否已认识筛选 platform: 平台筛选 authorization: Authorization header - + Returns: 人物信息列表 """ try: verify_auth_token(authorization) - + # 构建查询 query = PersonInfo.select() - + # 搜索过滤 if search: query = query.where( - (PersonInfo.person_name.contains(search)) | - (PersonInfo.nickname.contains(search)) | - (PersonInfo.user_id.contains(search)) + (PersonInfo.person_name.contains(search)) + | (PersonInfo.nickname.contains(search)) + | (PersonInfo.user_id.contains(search)) ) - + # 已认识状态过滤 if is_known is not None: query = query.where(PersonInfo.is_known == is_known) - + # 平台过滤 if platform: query = query.where(PersonInfo.platform == platform) - + # 排序:最后更新时间倒序(NULL 值放在最后) # Peewee 不支持 nulls_last,使用 CASE WHEN 来实现 from peewee import Case - query = query.order_by( - Case(None, [(PersonInfo.last_know.is_null(), 1)], 0), - PersonInfo.last_know.desc() - ) - + + query = query.order_by(Case(None, [(PersonInfo.last_know.is_null(), 1)], 0), PersonInfo.last_know.desc()) + # 获取总数 total = query.count() - + # 分页 offset = (page - 1) * page_size persons = query.offset(offset).limit(page_size) - + # 转换为响应对象 data = [person_to_response(person) for person in persons] - - return PersonListResponse( - success=True, - total=total, - page=page, - page_size=page_size, - data=data - ) - + + return PersonListResponse(success=True, total=total, page=page, page_size=page_size, data=data) + except HTTPException: raise except Exception as e: @@ -190,33 +189,27 @@ async def get_person_list( @router.get("/{person_id}", response_model=PersonDetailResponse) -async def get_person_detail( - person_id: str, - authorization: Optional[str] = Header(None) -): +async def get_person_detail(person_id: str, authorization: Optional[str] = Header(None)): """ 获取人物详细信息 - + Args: person_id: 人物唯一 ID authorization: Authorization header - + Returns: 人物详细信息 """ try: verify_auth_token(authorization) - + person = PersonInfo.get_or_none(PersonInfo.person_id == person_id) - + if not person: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {person_id} 的人物信息") - - return PersonDetailResponse( - success=True, - data=person_to_response(person) - ) - + + return PersonDetailResponse(success=True, data=person_to_response(person)) + except HTTPException: raise except Exception as e: @@ -225,53 +218,47 @@ async def get_person_detail( @router.patch("/{person_id}", response_model=PersonUpdateResponse) -async def update_person( - person_id: str, - request: PersonUpdateRequest, - authorization: Optional[str] = Header(None) -): +async def update_person(person_id: str, request: PersonUpdateRequest, authorization: Optional[str] = Header(None)): """ 增量更新人物信息(只更新提供的字段) - + Args: person_id: 人物唯一 ID request: 更新请求(只包含需要更新的字段) authorization: Authorization header - + Returns: 更新结果 """ try: verify_auth_token(authorization) - + person = PersonInfo.get_or_none(PersonInfo.person_id == person_id) - + if not person: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {person_id} 的人物信息") - + # 只更新提供的字段 update_data = request.model_dump(exclude_unset=True) - + if not update_data: raise HTTPException(status_code=400, detail="未提供任何需要更新的字段") - + # 更新最后修改时间 - update_data['last_know'] = time.time() - + update_data["last_know"] = time.time() + # 执行更新 for field, value in update_data.items(): setattr(person, field, value) - + person.save() - + logger.info(f"人物信息已更新: {person_id}, 字段: {list(update_data.keys())}") - + return PersonUpdateResponse( - success=True, - message=f"成功更新 {len(update_data)} 个字段", - data=person_to_response(person) + success=True, message=f"成功更新 {len(update_data)} 个字段", data=person_to_response(person) ) - + except HTTPException: raise except Exception as e: @@ -280,41 +267,35 @@ async def update_person( @router.delete("/{person_id}", response_model=PersonDeleteResponse) -async def delete_person( - person_id: str, - authorization: Optional[str] = Header(None) -): +async def delete_person(person_id: str, authorization: Optional[str] = Header(None)): """ 删除人物信息 - + Args: person_id: 人物唯一 ID authorization: Authorization header - + Returns: 删除结果 """ try: verify_auth_token(authorization) - + person = PersonInfo.get_or_none(PersonInfo.person_id == person_id) - + if not person: raise HTTPException(status_code=404, detail=f"未找到 ID 为 {person_id} 的人物信息") - + # 记录删除信息 person_name = person.person_name or person.nickname or person.user_id - + # 执行删除 person.delete_instance() - + logger.info(f"人物信息已删除: {person_id} ({person_name})") - - return PersonDeleteResponse( - success=True, - message=f"成功删除人物信息: {person_name}" - ) - + + return PersonDeleteResponse(success=True, message=f"成功删除人物信息: {person_name}") + except HTTPException: raise except Exception as e: @@ -323,41 +304,31 @@ async def delete_person( @router.get("/stats/summary") -async def get_person_stats( - authorization: Optional[str] = Header(None) -): +async def get_person_stats(authorization: Optional[str] = Header(None)): """ 获取人物信息统计数据 - + Args: authorization: Authorization header - + Returns: 统计数据 """ try: verify_auth_token(authorization) - + total = PersonInfo.select().count() known = PersonInfo.select().where(PersonInfo.is_known).count() unknown = total - known - + # 按平台统计 platforms = {} for person in PersonInfo.select(PersonInfo.platform): platform = person.platform platforms[platform] = platforms.get(platform, 0) + 1 - - return { - "success": True, - "data": { - "total": total, - "known": known, - "unknown": unknown, - "platforms": platforms - } - } - + + return {"success": True, "data": {"total": total, "known": known, "unknown": unknown, "platforms": platforms}} + except HTTPException: raise except Exception as e: diff --git a/src/webui/plugin_progress_ws.py b/src/webui/plugin_progress_ws.py index 927dbb13..7e0fb647 100644 --- a/src/webui/plugin_progress_ws.py +++ b/src/webui/plugin_progress_ws.py @@ -1,4 +1,5 @@ """WebSocket 插件加载进度推送模块""" + from fastapi import APIRouter, WebSocket, WebSocketDisconnect from typing import Set, Dict, Any import json @@ -22,7 +23,7 @@ current_progress: Dict[str, Any] = { "error": None, "plugin_id": None, # 当前操作的插件 ID "total_plugins": 0, - "loaded_plugins": 0 + "loaded_plugins": 0, } @@ -30,20 +31,20 @@ async def broadcast_progress(progress_data: Dict[str, Any]): """广播进度更新到所有连接的客户端""" global current_progress current_progress = progress_data.copy() - + if not active_connections: return - + message = json.dumps(progress_data, ensure_ascii=False) disconnected = set() - + for websocket in active_connections: try: await websocket.send_text(message) except Exception as e: logger.error(f"发送进度更新失败: {e}") disconnected.add(websocket) - + # 移除断开的连接 for websocket in disconnected: active_connections.discard(websocket) @@ -57,10 +58,10 @@ async def update_progress( error: str = None, plugin_id: str = None, total_plugins: int = 0, - loaded_plugins: int = 0 + loaded_plugins: int = 0, ): """更新并广播进度 - + Args: stage: 阶段 (idle, loading, success, error) progress: 进度百分比 (0-100) @@ -80,9 +81,9 @@ async def update_progress( "plugin_id": plugin_id, "total_plugins": total_plugins, "loaded_plugins": loaded_plugins, - "timestamp": asyncio.get_event_loop().time() + "timestamp": asyncio.get_event_loop().time(), } - + await broadcast_progress(progress_data) logger.debug(f"进度更新: [{operation}] {stage} - {progress}% - {message}") @@ -90,30 +91,30 @@ async def update_progress( @router.websocket("/ws/plugin-progress") async def websocket_plugin_progress(websocket: WebSocket): """WebSocket 插件加载进度推送端点 - + 客户端连接后会立即收到当前进度状态 """ await websocket.accept() active_connections.add(websocket) logger.info(f"📡 插件进度 WebSocket 客户端已连接,当前连接数: {len(active_connections)}") - + try: # 发送当前进度状态 await websocket.send_text(json.dumps(current_progress, ensure_ascii=False)) - + # 保持连接并处理客户端消息 while True: try: data = await websocket.receive_text() - + # 处理客户端心跳 if data == "ping": await websocket.send_text("pong") - + except Exception as e: logger.error(f"处理客户端消息时出错: {e}") break - + except WebSocketDisconnect: active_connections.discard(websocket) logger.info(f"📡 插件进度 WebSocket 客户端已断开,当前连接数: {len(active_connections)}") diff --git a/src/webui/plugin_routes.py b/src/webui/plugin_routes.py index 5054a391..cb559fb7 100644 --- a/src/webui/plugin_routes.py +++ b/src/webui/plugin_routes.py @@ -21,22 +21,22 @@ set_update_progress_callback(update_progress) def parse_version(version_str: str) -> tuple[int, int, int]: """ 解析版本号字符串 - + 支持格式: - 0.11.2 -> (0, 11, 2) - 0.11.2.snapshot.2 -> (0, 11, 2) - + Returns: (major, minor, patch) 三元组 """ # 移除 snapshot 等后缀 - base_version = version_str.split('.snapshot')[0].split('.dev')[0].split('.alpha')[0].split('.beta')[0] - - parts = base_version.split('.') + base_version = version_str.split(".snapshot")[0].split(".dev")[0].split(".alpha")[0].split(".beta")[0] + + parts = base_version.split(".") if len(parts) < 3: # 补齐到 3 位 - parts.extend(['0'] * (3 - len(parts))) - + parts.extend(["0"] * (3 - len(parts))) + try: major = int(parts[0]) minor = int(parts[1]) @@ -49,8 +49,10 @@ def parse_version(version_str: str) -> tuple[int, int, int]: # ============ 请求/响应模型 ============ + class FetchRawFileRequest(BaseModel): """获取 Raw 文件请求""" + owner: str = Field(..., description="仓库所有者", example="MaiM-with-u") repo: str = Field(..., description="仓库名称", example="plugin-repo") branch: str = Field(..., description="分支名称", example="main") @@ -61,6 +63,7 @@ class FetchRawFileRequest(BaseModel): class FetchRawFileResponse(BaseModel): """获取 Raw 文件响应""" + success: bool = Field(..., description="是否成功") data: Optional[str] = Field(None, description="文件内容") error: Optional[str] = Field(None, description="错误信息") @@ -71,6 +74,7 @@ class FetchRawFileResponse(BaseModel): class CloneRepositoryRequest(BaseModel): """克隆仓库请求""" + owner: str = Field(..., description="仓库所有者", example="MaiM-with-u") repo: str = Field(..., description="仓库名称", example="plugin-repo") target_path: str = Field(..., description="目标路径(相对于插件目录)") @@ -82,6 +86,7 @@ class CloneRepositoryRequest(BaseModel): class CloneRepositoryResponse(BaseModel): """克隆仓库响应""" + success: bool = Field(..., description="是否成功") path: Optional[str] = Field(None, description="克隆路径") error: Optional[str] = Field(None, description="错误信息") @@ -93,6 +98,7 @@ class CloneRepositoryResponse(BaseModel): class MirrorConfigResponse(BaseModel): """镜像源配置响应""" + id: str = Field(..., description="镜像源 ID") name: str = Field(..., description="镜像源名称") raw_prefix: str = Field(..., description="Raw 文件前缀") @@ -103,12 +109,14 @@ class MirrorConfigResponse(BaseModel): class AvailableMirrorsResponse(BaseModel): """可用镜像源列表响应""" + mirrors: List[MirrorConfigResponse] = Field(..., description="镜像源列表") default_priority: List[str] = Field(..., description="默认优先级顺序(ID 列表)") class AddMirrorRequest(BaseModel): """添加镜像源请求""" + id: str = Field(..., description="镜像源 ID", example="custom-mirror") name: str = Field(..., description="镜像源名称", example="自定义镜像源") raw_prefix: str = Field(..., description="Raw 文件前缀", example="https://example.com/raw") @@ -119,6 +127,7 @@ class AddMirrorRequest(BaseModel): class UpdateMirrorRequest(BaseModel): """更新镜像源请求""" + name: Optional[str] = Field(None, description="镜像源名称") raw_prefix: Optional[str] = Field(None, description="Raw 文件前缀") clone_prefix: Optional[str] = Field(None, description="克隆前缀") @@ -128,6 +137,7 @@ class UpdateMirrorRequest(BaseModel): class GitStatusResponse(BaseModel): """Git 安装状态响应""" + installed: bool = Field(..., description="是否已安装 Git") version: Optional[str] = Field(None, description="Git 版本号") path: Optional[str] = Field(None, description="Git 可执行文件路径") @@ -136,6 +146,7 @@ class GitStatusResponse(BaseModel): class InstallPluginRequest(BaseModel): """安装插件请求""" + plugin_id: str = Field(..., description="插件 ID") repository_url: str = Field(..., description="插件仓库 URL") branch: Optional[str] = Field("main", description="分支名称") @@ -144,6 +155,7 @@ class InstallPluginRequest(BaseModel): class VersionResponse(BaseModel): """麦麦版本响应""" + version: str = Field(..., description="麦麦版本号") version_major: int = Field(..., description="主版本号") version_minor: int = Field(..., description="次版本号") @@ -152,11 +164,13 @@ class VersionResponse(BaseModel): class UninstallPluginRequest(BaseModel): """卸载插件请求""" + plugin_id: str = Field(..., description="插件 ID") class UpdatePluginRequest(BaseModel): """更新插件请求""" + plugin_id: str = Field(..., description="插件 ID") repository_url: str = Field(..., description="插件仓库 URL") branch: Optional[str] = Field("main", description="分支名称") @@ -165,40 +179,34 @@ class UpdatePluginRequest(BaseModel): # ============ API 路由 ============ + @router.get("/version", response_model=VersionResponse) async def get_maimai_version() -> VersionResponse: """ 获取麦麦版本信息 - + 此接口无需认证,用于前端检查插件兼容性 """ major, minor, patch = parse_version(MMC_VERSION) - - return VersionResponse( - version=MMC_VERSION, - version_major=major, - version_minor=minor, - version_patch=patch - ) + + return VersionResponse(version=MMC_VERSION, version_major=major, version_minor=minor, version_patch=patch) @router.get("/git-status", response_model=GitStatusResponse) async def check_git_status() -> GitStatusResponse: """ 检查本机 Git 安装状态 - + 此接口无需认证,用于前端快速检测是否可以使用插件安装功能 """ service = get_git_mirror_service() result = service.check_git_installed() - + return GitStatusResponse(**result) @router.get("/mirrors", response_model=AvailableMirrorsResponse) -async def get_available_mirrors( - authorization: Optional[str] = Header(None) -) -> AvailableMirrorsResponse: +async def get_available_mirrors(authorization: Optional[str] = Header(None)) -> AvailableMirrorsResponse: """ 获取所有可用的镜像源配置 """ @@ -207,10 +215,10 @@ async def get_available_mirrors( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - + service = get_git_mirror_service() config = service.get_mirror_config() - + all_mirrors = config.get_all_mirrors() mirrors = [ MirrorConfigResponse( @@ -219,22 +227,16 @@ async def get_available_mirrors( raw_prefix=m["raw_prefix"], clone_prefix=m["clone_prefix"], enabled=m["enabled"], - priority=m["priority"] + priority=m["priority"], ) for m in all_mirrors ] - - return AvailableMirrorsResponse( - mirrors=mirrors, - default_priority=config.get_default_priority_list() - ) + + return AvailableMirrorsResponse(mirrors=mirrors, default_priority=config.get_default_priority_list()) @router.post("/mirrors", response_model=MirrorConfigResponse) -async def add_mirror( - request: AddMirrorRequest, - authorization: Optional[str] = Header(None) -) -> MirrorConfigResponse: +async def add_mirror(request: AddMirrorRequest, authorization: Optional[str] = Header(None)) -> MirrorConfigResponse: """ 添加新的镜像源 """ @@ -243,27 +245,27 @@ async def add_mirror( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - + try: service = get_git_mirror_service() config = service.get_mirror_config() - + mirror = config.add_mirror( mirror_id=request.id, name=request.name, raw_prefix=request.raw_prefix, clone_prefix=request.clone_prefix, enabled=request.enabled, - priority=request.priority + priority=request.priority, ) - + return MirrorConfigResponse( id=mirror["id"], name=mirror["name"], raw_prefix=mirror["raw_prefix"], clone_prefix=mirror["clone_prefix"], enabled=mirror["enabled"], - priority=mirror["priority"] + priority=mirror["priority"], ) except ValueError as e: raise HTTPException(status_code=400, detail=str(e)) from e @@ -274,9 +276,7 @@ async def add_mirror( @router.put("/mirrors/{mirror_id}", response_model=MirrorConfigResponse) async def update_mirror( - mirror_id: str, - request: UpdateMirrorRequest, - authorization: Optional[str] = Header(None) + mirror_id: str, request: UpdateMirrorRequest, authorization: Optional[str] = Header(None) ) -> MirrorConfigResponse: """ 更新镜像源配置 @@ -286,30 +286,30 @@ async def update_mirror( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - + try: service = get_git_mirror_service() config = service.get_mirror_config() - + mirror = config.update_mirror( mirror_id=mirror_id, name=request.name, raw_prefix=request.raw_prefix, clone_prefix=request.clone_prefix, enabled=request.enabled, - priority=request.priority + priority=request.priority, ) - + if not mirror: raise HTTPException(status_code=404, detail=f"未找到镜像源: {mirror_id}") - + return MirrorConfigResponse( id=mirror["id"], name=mirror["name"], raw_prefix=mirror["raw_prefix"], clone_prefix=mirror["clone_prefix"], enabled=mirror["enabled"], - priority=mirror["priority"] + priority=mirror["priority"], ) except HTTPException: raise @@ -319,10 +319,7 @@ async def update_mirror( @router.delete("/mirrors/{mirror_id}") -async def delete_mirror( - mirror_id: str, - authorization: Optional[str] = Header(None) -) -> Dict[str, Any]: +async def delete_mirror(mirror_id: str, authorization: Optional[str] = Header(None)) -> Dict[str, Any]: """ 删除镜像源 """ @@ -331,57 +328,53 @@ async def delete_mirror( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - + service = get_git_mirror_service() config = service.get_mirror_config() - + success = config.delete_mirror(mirror_id) - + if not success: raise HTTPException(status_code=404, detail=f"未找到镜像源: {mirror_id}") - - return { - "success": True, - "message": f"已删除镜像源: {mirror_id}" - } + + return {"success": True, "message": f"已删除镜像源: {mirror_id}"} @router.post("/fetch-raw", response_model=FetchRawFileResponse) async def fetch_raw_file( - request: FetchRawFileRequest, - authorization: Optional[str] = Header(None) + request: FetchRawFileRequest, authorization: Optional[str] = Header(None) ) -> FetchRawFileResponse: """ 获取 GitHub 仓库的 Raw 文件内容 - + 支持多镜像源自动切换和错误重试 - + 注意:此接口可公开访问,用于获取插件仓库等公开资源 """ # Token 验证(可选,用于日志记录) token = authorization.replace("Bearer ", "") if authorization else None token_manager = get_token_manager() is_authenticated = token and token_manager.verify_token(token) - + # 对于公开仓库的访问,不强制要求认证 # 只在日志中记录是否认证 logger.info( f"收到获取 Raw 文件请求 (认证: {is_authenticated}): " f"{request.owner}/{request.repo}/{request.branch}/{request.file_path}" ) - + # 发送开始加载进度 await update_progress( stage="loading", progress=10, message=f"正在获取插件列表: {request.file_path}", total_plugins=0, - loaded_plugins=0 + loaded_plugins=0, ) - + try: service = get_git_mirror_service() - + # git_mirror_service 会自动推送 30%-70% 的详细镜像源尝试进度 result = await service.fetch_raw_file( owner=request.owner, @@ -389,69 +382,56 @@ async def fetch_raw_file( branch=request.branch, file_path=request.file_path, mirror_id=request.mirror_id, - custom_url=request.custom_url + custom_url=request.custom_url, ) - + if result.get("success"): # 更新进度:成功获取 await update_progress( - stage="loading", - progress=70, - message="正在解析插件数据...", - total_plugins=0, - loaded_plugins=0 + stage="loading", progress=70, message="正在解析插件数据...", total_plugins=0, loaded_plugins=0 ) - + # 尝试解析插件数量 try: import json + data = json.loads(result.get("data", "[]")) total = len(data) if isinstance(data, list) else 0 - + # 发送成功状态 await update_progress( stage="success", progress=100, message=f"成功加载 {total} 个插件", total_plugins=total, - loaded_plugins=total + loaded_plugins=total, ) except Exception: # 如果解析失败,仍然发送成功状态 await update_progress( - stage="success", - progress=100, - message="加载完成", - total_plugins=0, - loaded_plugins=0 + stage="success", progress=100, message="加载完成", total_plugins=0, loaded_plugins=0 ) - + return FetchRawFileResponse(**result) - + except Exception as e: logger.error(f"获取 Raw 文件失败: {e}") - + # 发送错误进度 await update_progress( - stage="error", - progress=0, - message="加载失败", - error=str(e), - total_plugins=0, - loaded_plugins=0 + stage="error", progress=0, message="加载失败", error=str(e), total_plugins=0, loaded_plugins=0 ) - + raise HTTPException(status_code=500, detail=f"服务器错误: {str(e)}") from e @router.post("/clone", response_model=CloneRepositoryResponse) async def clone_repository( - request: CloneRepositoryRequest, - authorization: Optional[str] = Header(None) + request: CloneRepositoryRequest, authorization: Optional[str] = Header(None) ) -> CloneRepositoryResponse: """ 克隆 GitHub 仓库到本地 - + 支持多镜像源自动切换和错误重试 """ # Token 验证 @@ -459,17 +439,15 @@ async def clone_repository( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - - logger.info( - f"收到克隆仓库请求: {request.owner}/{request.repo} -> {request.target_path}" - ) - + + logger.info(f"收到克隆仓库请求: {request.owner}/{request.repo} -> {request.target_path}") + try: # TODO: 验证 target_path 的安全性,防止路径遍历攻击 # TODO: 确定实际的插件目录基路径 base_plugin_path = Path("./plugins") # 临时路径 target_path = base_plugin_path / request.target_path - + service = get_git_mirror_service() result = await service.clone_repository( owner=request.owner, @@ -478,24 +456,21 @@ async def clone_repository( branch=request.branch, mirror_id=request.mirror_id, custom_url=request.custom_url, - depth=request.depth + depth=request.depth, ) - + return CloneRepositoryResponse(**result) - + except Exception as e: logger.error(f"克隆仓库失败: {e}") raise HTTPException(status_code=500, detail=f"服务器错误: {str(e)}") from e @router.post("/install") -async def install_plugin( - request: InstallPluginRequest, - authorization: Optional[str] = Header(None) -) -> Dict[str, Any]: +async def install_plugin(request: InstallPluginRequest, authorization: Optional[str] = Header(None)) -> Dict[str, Any]: """ 安装插件 - + 从 Git 仓库克隆插件到本地插件目录 """ # Token 验证 @@ -503,9 +478,9 @@ async def install_plugin( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - + logger.info(f"收到安装插件请求: {request.plugin_id}") - + try: # 推送进度:开始安装 await update_progress( @@ -513,80 +488,75 @@ async def install_plugin( progress=5, message=f"开始安装插件: {request.plugin_id}", operation="install", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + # 1. 解析仓库 URL # repository_url 格式: https://github.com/owner/repo - repo_url = request.repository_url.rstrip('/') - if repo_url.endswith('.git'): + repo_url = request.repository_url.rstrip("/") + if repo_url.endswith(".git"): repo_url = repo_url[:-4] - - parts = repo_url.split('/') + + parts = repo_url.split("/") if len(parts) < 2: raise HTTPException(status_code=400, detail="无效的仓库 URL") - + owner = parts[-2] repo = parts[-1] - + await update_progress( stage="loading", progress=10, message=f"解析仓库信息: {owner}/{repo}", operation="install", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + # 2. 确定插件安装路径 plugins_dir = Path("plugins") plugins_dir.mkdir(exist_ok=True) - + target_path = plugins_dir / request.plugin_id - + # 检查插件是否已安装 if target_path.exists(): await update_progress( stage="error", progress=0, - message=f"插件已存在", + message="插件已存在", operation="install", plugin_id=request.plugin_id, - error="插件已安装,请先卸载" + error="插件已安装,请先卸载", ) raise HTTPException(status_code=400, detail="插件已安装") - + await update_progress( stage="loading", progress=15, message=f"准备克隆到: {target_path}", operation="install", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + # 3. 克隆仓库(这里会自动推送 20%-80% 的进度) service = get_git_mirror_service() - + # 如果是 GitHub 仓库,使用镜像源 - if 'github.com' in repo_url: + if "github.com" in repo_url: result = await service.clone_repository( owner=owner, repo=repo, target_path=target_path, branch=request.branch, mirror_id=request.mirror_id, - depth=1 # 浅克隆,节省时间和空间 + depth=1, # 浅克隆,节省时间和空间 ) else: # 自定义仓库,直接使用 URL result = await service.clone_repository( - owner=owner, - repo=repo, - target_path=target_path, - branch=request.branch, - custom_url=repo_url, - depth=1 + owner=owner, repo=repo, target_path=target_path, branch=request.branch, custom_url=repo_url, depth=1 ) - + if not result.get("success"): error_msg = result.get("error", "克隆失败") await update_progress( @@ -595,113 +565,107 @@ async def install_plugin( message="克隆仓库失败", operation="install", plugin_id=request.plugin_id, - error=error_msg + error=error_msg, ) raise HTTPException(status_code=500, detail=error_msg) - + # 4. 验证插件完整性 await update_progress( - stage="loading", - progress=85, - message="验证插件文件...", - operation="install", - plugin_id=request.plugin_id + stage="loading", progress=85, message="验证插件文件...", operation="install", plugin_id=request.plugin_id ) - + manifest_path = target_path / "_manifest.json" if not manifest_path.exists(): # 清理失败的安装 import shutil + shutil.rmtree(target_path, ignore_errors=True) - + await update_progress( stage="error", progress=0, message="插件缺少 _manifest.json", operation="install", plugin_id=request.plugin_id, - error="无效的插件格式" + error="无效的插件格式", ) raise HTTPException(status_code=400, detail="无效的插件:缺少 _manifest.json") - + # 5. 读取并验证 manifest await update_progress( - stage="loading", - progress=90, - message="读取插件配置...", - operation="install", - plugin_id=request.plugin_id + stage="loading", progress=90, message="读取插件配置...", operation="install", plugin_id=request.plugin_id ) - + try: import json as json_module - with open(manifest_path, 'r', encoding='utf-8') as f: + + with open(manifest_path, "r", encoding="utf-8") as f: manifest = json_module.load(f) - + # 基本验证 - required_fields = ['manifest_version', 'name', 'version', 'author'] + required_fields = ["manifest_version", "name", "version", "author"] for field in required_fields: if field not in manifest: raise ValueError(f"缺少必需字段: {field}") - + except Exception as e: # 清理失败的安装 import shutil + shutil.rmtree(target_path, ignore_errors=True) - + await update_progress( stage="error", progress=0, message="_manifest.json 无效", operation="install", plugin_id=request.plugin_id, - error=str(e) + error=str(e), ) raise HTTPException(status_code=400, detail=f"无效的 _manifest.json: {e}") from e - + # 6. 安装成功 await update_progress( stage="success", progress=100, message=f"成功安装插件: {manifest['name']} v{manifest['version']}", operation="install", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + return { "success": True, "message": "插件安装成功", "plugin_id": request.plugin_id, - "plugin_name": manifest['name'], - "version": manifest['version'], - "path": str(target_path) + "plugin_name": manifest["name"], + "version": manifest["version"], + "path": str(target_path), } - + except HTTPException: raise except Exception as e: logger.error(f"安装插件失败: {e}", exc_info=True) - + await update_progress( stage="error", progress=0, message="安装失败", operation="install", plugin_id=request.plugin_id, - error=str(e) + error=str(e), ) - + raise HTTPException(status_code=500, detail=f"服务器错误: {str(e)}") from e @router.post("/uninstall") async def uninstall_plugin( - request: UninstallPluginRequest, - authorization: Optional[str] = Header(None) + request: UninstallPluginRequest, authorization: Optional[str] = Header(None) ) -> Dict[str, Any]: """ 卸载插件 - + 删除插件目录及其所有文件 """ # Token 验证 @@ -709,9 +673,9 @@ async def uninstall_plugin( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - + logger.info(f"收到卸载插件请求: {request.plugin_id}") - + try: # 推送进度:开始卸载 await update_progress( @@ -719,13 +683,13 @@ async def uninstall_plugin( progress=10, message=f"开始卸载插件: {request.plugin_id}", operation="uninstall", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + # 1. 检查插件是否存在 plugins_dir = Path("plugins") plugin_path = plugins_dir / request.plugin_id - + if not plugin_path.exists(): await update_progress( stage="error", @@ -733,107 +697,101 @@ async def uninstall_plugin( message="插件不存在", operation="uninstall", plugin_id=request.plugin_id, - error="插件未安装或已被删除" + error="插件未安装或已被删除", ) raise HTTPException(status_code=404, detail="插件未安装") - + await update_progress( stage="loading", progress=30, message=f"正在删除插件文件: {plugin_path}", operation="uninstall", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + # 2. 读取插件信息(用于日志) manifest_path = plugin_path / "_manifest.json" plugin_name = request.plugin_id - + if manifest_path.exists(): try: import json as json_module - with open(manifest_path, 'r', encoding='utf-8') as f: + + with open(manifest_path, "r", encoding="utf-8") as f: manifest = json_module.load(f) plugin_name = manifest.get("name", request.plugin_id) except Exception: pass # 如果读取失败,使用插件 ID 作为名称 - + await update_progress( stage="loading", progress=50, message=f"正在删除 {plugin_name}...", operation="uninstall", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + # 3. 删除插件目录 import shutil import stat - + def remove_readonly(func, path, _): """清除只读属性并删除文件""" import os + os.chmod(path, stat.S_IWRITE) func(path) - + shutil.rmtree(plugin_path, onerror=remove_readonly) - + logger.info(f"成功卸载插件: {request.plugin_id} ({plugin_name})") - + # 4. 推送成功状态 await update_progress( stage="success", progress=100, message=f"成功卸载插件: {plugin_name}", operation="uninstall", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - - return { - "success": True, - "message": "插件卸载成功", - "plugin_id": request.plugin_id, - "plugin_name": plugin_name - } - + + return {"success": True, "message": "插件卸载成功", "plugin_id": request.plugin_id, "plugin_name": plugin_name} + except HTTPException: raise except PermissionError as e: logger.error(f"卸载插件失败(权限错误): {e}") - + await update_progress( stage="error", progress=0, message="卸载失败", operation="uninstall", plugin_id=request.plugin_id, - error="权限不足,无法删除插件文件" + error="权限不足,无法删除插件文件", ) - + raise HTTPException(status_code=500, detail="权限不足,无法删除插件文件") from e except Exception as e: logger.error(f"卸载插件失败: {e}", exc_info=True) - + await update_progress( stage="error", progress=0, message="卸载失败", operation="uninstall", plugin_id=request.plugin_id, - error=str(e) + error=str(e), ) - + raise HTTPException(status_code=500, detail=f"服务器错误: {str(e)}") from e @router.post("/update") -async def update_plugin( - request: UpdatePluginRequest, - authorization: Optional[str] = Header(None) -) -> Dict[str, Any]: +async def update_plugin(request: UpdatePluginRequest, authorization: Optional[str] = Header(None)) -> Dict[str, Any]: """ 更新插件 - + 删除旧版本,重新克隆新版本 """ # Token 验证 @@ -841,9 +799,9 @@ async def update_plugin( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - + logger.info(f"收到更新插件请求: {request.plugin_id}") - + try: # 推送进度:开始更新 await update_progress( @@ -851,13 +809,13 @@ async def update_plugin( progress=5, message=f"开始更新插件: {request.plugin_id}", operation="update", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + # 1. 检查插件是否已安装 plugins_dir = Path("plugins") plugin_path = plugins_dir / request.plugin_id - + if not plugin_path.exists(): await update_progress( stage="error", @@ -865,97 +823,90 @@ async def update_plugin( message="插件不存在", operation="update", plugin_id=request.plugin_id, - error="插件未安装,请先安装" + error="插件未安装,请先安装", ) raise HTTPException(status_code=404, detail="插件未安装") - + # 2. 读取旧版本信息 manifest_path = plugin_path / "_manifest.json" old_version = "unknown" plugin_name = request.plugin_id - + if manifest_path.exists(): try: import json as json_module - with open(manifest_path, 'r', encoding='utf-8') as f: + + with open(manifest_path, "r", encoding="utf-8") as f: manifest = json_module.load(f) old_version = manifest.get("version", "unknown") - plugin_name = manifest.get("name", request.plugin_id) + _plugin_name = manifest.get("name", request.plugin_id) except Exception: pass - + await update_progress( stage="loading", progress=10, message=f"当前版本: {old_version},准备更新...", operation="update", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + # 3. 删除旧版本 await update_progress( - stage="loading", - progress=20, - message="正在删除旧版本...", - operation="update", - plugin_id=request.plugin_id + stage="loading", progress=20, message="正在删除旧版本...", operation="update", plugin_id=request.plugin_id ) - + import shutil import stat - + def remove_readonly(func, path, _): """清除只读属性并删除文件""" import os + os.chmod(path, stat.S_IWRITE) func(path) - + shutil.rmtree(plugin_path, onerror=remove_readonly) - + logger.info(f"已删除旧版本: {request.plugin_id} v{old_version}") - + # 4. 解析仓库 URL await update_progress( stage="loading", progress=30, message="正在准备下载新版本...", operation="update", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - - repo_url = request.repository_url.rstrip('/') - if repo_url.endswith('.git'): + + repo_url = request.repository_url.rstrip("/") + if repo_url.endswith(".git"): repo_url = repo_url[:-4] - - parts = repo_url.split('/') + + parts = repo_url.split("/") if len(parts) < 2: raise HTTPException(status_code=400, detail="无效的仓库 URL") - + owner = parts[-2] repo = parts[-1] - + # 5. 克隆新版本(这里会推送 35%-85% 的进度) service = get_git_mirror_service() - - if 'github.com' in repo_url: + + if "github.com" in repo_url: result = await service.clone_repository( owner=owner, repo=repo, target_path=plugin_path, branch=request.branch, mirror_id=request.mirror_id, - depth=1 + depth=1, ) else: result = await service.clone_repository( - owner=owner, - repo=repo, - target_path=plugin_path, - branch=request.branch, - custom_url=repo_url, - depth=1 + owner=owner, repo=repo, target_path=plugin_path, branch=request.branch, custom_url=repo_url, depth=1 ) - + if not result.get("success"): error_msg = result.get("error", "克隆失败") await update_progress( @@ -964,106 +915,96 @@ async def update_plugin( message="下载新版本失败", operation="update", plugin_id=request.plugin_id, - error=error_msg + error=error_msg, ) raise HTTPException(status_code=500, detail=error_msg) - + # 6. 验证新版本 await update_progress( - stage="loading", - progress=90, - message="验证新版本...", - operation="update", - plugin_id=request.plugin_id + stage="loading", progress=90, message="验证新版本...", operation="update", plugin_id=request.plugin_id ) - + new_manifest_path = plugin_path / "_manifest.json" if not new_manifest_path.exists(): # 清理失败的更新 def remove_readonly(func, path, _): """清除只读属性并删除文件""" import os + os.chmod(path, stat.S_IWRITE) func(path) - + shutil.rmtree(plugin_path, onerror=remove_readonly) - + await update_progress( stage="error", progress=0, message="新版本缺少 _manifest.json", operation="update", plugin_id=request.plugin_id, - error="无效的插件格式" + error="无效的插件格式", ) raise HTTPException(status_code=400, detail="无效的插件:缺少 _manifest.json") - + # 7. 读取新版本信息 try: - with open(new_manifest_path, 'r', encoding='utf-8') as f: + with open(new_manifest_path, "r", encoding="utf-8") as f: new_manifest = json_module.load(f) - + new_version = new_manifest.get("version", "unknown") new_name = new_manifest.get("name", request.plugin_id) - + logger.info(f"成功更新插件: {request.plugin_id} {old_version} → {new_version}") - + # 8. 推送成功状态 await update_progress( stage="success", progress=100, message=f"成功更新 {new_name}: {old_version} → {new_version}", operation="update", - plugin_id=request.plugin_id + plugin_id=request.plugin_id, ) - + return { "success": True, "message": "插件更新成功", "plugin_id": request.plugin_id, "plugin_name": new_name, "old_version": old_version, - "new_version": new_version + "new_version": new_version, } - + except Exception as e: # 清理失败的更新 shutil.rmtree(plugin_path, ignore_errors=True) - + await update_progress( stage="error", progress=0, message="_manifest.json 无效", operation="update", plugin_id=request.plugin_id, - error=str(e) + error=str(e), ) raise HTTPException(status_code=400, detail=f"无效的 _manifest.json: {e}") from e - + except HTTPException: raise except Exception as e: logger.error(f"更新插件失败: {e}", exc_info=True) - + await update_progress( - stage="error", - progress=0, - message="更新失败", - operation="update", - plugin_id=request.plugin_id, - error=str(e) + stage="error", progress=0, message="更新失败", operation="update", plugin_id=request.plugin_id, error=str(e) ) - + raise HTTPException(status_code=500, detail=f"服务器错误: {str(e)}") from e @router.get("/installed") -async def get_installed_plugins( - authorization: Optional[str] = Header(None) -) -> Dict[str, Any]: +async def get_installed_plugins(authorization: Optional[str] = Header(None)) -> Dict[str, Any]: """ 获取已安装的插件列表 - + 扫描 plugins 目录,返回所有已安装插件的 ID 和基本信息 """ # Token 验证 @@ -1071,75 +1012,71 @@ async def get_installed_plugins( token_manager = get_token_manager() if not token or not token_manager.verify_token(token): raise HTTPException(status_code=401, detail="未授权:无效的访问令牌") - + logger.info("收到获取已安装插件列表请求") - + try: plugins_dir = Path("plugins") - + # 如果插件目录不存在,返回空列表 if not plugins_dir.exists(): logger.info("插件目录不存在,创建目录") plugins_dir.mkdir(exist_ok=True) - return { - "success": True, - "plugins": [] - } - + return {"success": True, "plugins": []} + installed_plugins = [] - + # 遍历插件目录 for plugin_path in plugins_dir.iterdir(): # 只处理目录 if not plugin_path.is_dir(): continue - + # 目录名即为插件 ID plugin_id = plugin_path.name - + # 跳过隐藏目录和特殊目录 - if plugin_id.startswith('.') or plugin_id.startswith('__'): + if plugin_id.startswith(".") or plugin_id.startswith("__"): continue - + # 读取 _manifest.json manifest_path = plugin_path / "_manifest.json" - + if not manifest_path.exists(): logger.warning(f"插件 {plugin_id} 缺少 _manifest.json,跳过") continue - + try: import json as json_module - with open(manifest_path, 'r', encoding='utf-8') as f: + + with open(manifest_path, "r", encoding="utf-8") as f: manifest = json_module.load(f) - + # 基本验证 - if 'name' not in manifest or 'version' not in manifest: + if "name" not in manifest or "version" not in manifest: logger.warning(f"插件 {plugin_id} 的 _manifest.json 格式无效,跳过") continue - + # 添加到已安装列表(返回完整的 manifest 信息) - installed_plugins.append({ - "id": plugin_id, - "manifest": manifest, # 返回完整的 manifest 对象 - "path": str(plugin_path.absolute()) - }) - + installed_plugins.append( + { + "id": plugin_id, + "manifest": manifest, # 返回完整的 manifest 对象 + "path": str(plugin_path.absolute()), + } + ) + except json.JSONDecodeError as e: logger.warning(f"插件 {plugin_id} 的 _manifest.json 解析失败: {e}") continue except Exception as e: logger.error(f"读取插件 {plugin_id} 信息时出错: {e}") continue - + logger.info(f"找到 {len(installed_plugins)} 个已安装插件") - - return { - "success": True, - "plugins": installed_plugins, - "total": len(installed_plugins) - } - + + return {"success": True, "plugins": installed_plugins, "total": len(installed_plugins)} + except Exception as e: logger.error(f"获取已安装插件列表失败: {e}", exc_info=True) raise HTTPException(status_code=500, detail=f"服务器错误: {str(e)}") from e diff --git a/src/webui/routers/system.py b/src/webui/routers/system.py index 743da5b9..fb203f79 100644 --- a/src/webui/routers/system.py +++ b/src/webui/routers/system.py @@ -3,6 +3,7 @@ 提供系统重启、状态查询等功能 """ + import os import sys import time @@ -19,12 +20,14 @@ _start_time = time.time() class RestartResponse(BaseModel): """重启响应""" + success: bool message: str class StatusResponse(BaseModel): """状态响应""" + running: bool uptime: float version: str @@ -35,74 +38,60 @@ class StatusResponse(BaseModel): async def restart_maibot(): """ 重启麦麦主程序 - + 使用 os.execv 重启当前进程,配置更改将在重启后生效。 注意:此操作会使麦麦暂时离线。 """ try: # 记录重启操作 print(f"[{datetime.now()}] WebUI 触发重启操作") - + # 使用 os.execv 重启当前进程 # 这会替换当前进程,保持相同的 PID python = sys.executable args = [python] + sys.argv - + # 返回成功响应(实际上这个响应可能不会发送,因为进程会立即重启) # 但我们仍然返回它以保持 API 一致性 os.execv(python, args) - - return RestartResponse( - success=True, - message="麦麦正在重启中..." - ) + + return RestartResponse(success=True, message="麦麦正在重启中...") except Exception as e: - raise HTTPException( - status_code=500, - detail=f"重启失败: {str(e)}" - ) from e + raise HTTPException(status_code=500, detail=f"重启失败: {str(e)}") from e @router.get("/status", response_model=StatusResponse) async def get_maibot_status(): """ 获取麦麦运行状态 - + 返回麦麦的运行状态、运行时长和版本信息。 """ try: uptime = time.time() - _start_time - + # 尝试获取版本信息(需要根据实际情况调整) version = MMC_VERSION # 可以从配置或常量中读取 - + return StatusResponse( - running=True, - uptime=uptime, - version=version, - start_time=datetime.fromtimestamp(_start_time).isoformat() + running=True, uptime=uptime, version=version, start_time=datetime.fromtimestamp(_start_time).isoformat() ) except Exception as e: - raise HTTPException( - status_code=500, - detail=f"获取状态失败: {str(e)}" - ) from e + raise HTTPException(status_code=500, detail=f"获取状态失败: {str(e)}") from e # 可选:添加更多系统控制功能 + @router.post("/reload-config") async def reload_config(): """ 热重载配置(不重启进程) - + 仅重新加载配置文件,某些配置可能需要重启才能生效。 此功能需要在主程序中实现配置热重载逻辑。 """ # 这里需要调用主程序的配置重载函数 # 示例:await app_instance.reload_config() - - return { - "success": True, - "message": "配置重载功能待实现" - } + + return {"success": True, "message": "配置重载功能待实现"} diff --git a/src/webui/routes.py b/src/webui/routes.py index b71619ed..3eb7e673 100644 --- a/src/webui/routes.py +++ b/src/webui/routes.py @@ -1,4 +1,5 @@ """WebUI API 路由""" + from fastapi import APIRouter, HTTPException, Header from pydantic import BaseModel, Field from typing import Optional @@ -38,28 +39,33 @@ router.include_router(system_router) class TokenVerifyRequest(BaseModel): """Token 验证请求""" + token: str = Field(..., description="访问令牌") class TokenVerifyResponse(BaseModel): """Token 验证响应""" + valid: bool = Field(..., description="Token 是否有效") message: str = Field(..., description="验证结果消息") class TokenUpdateRequest(BaseModel): """Token 更新请求""" + new_token: str = Field(..., description="新的访问令牌", min_length=10) class TokenUpdateResponse(BaseModel): """Token 更新响应""" + success: bool = Field(..., description="是否更新成功") message: str = Field(..., description="更新结果消息") class TokenRegenerateResponse(BaseModel): """Token 重新生成响应""" + success: bool = Field(..., description="是否生成成功") token: str = Field(..., description="新生成的令牌") message: str = Field(..., description="生成结果消息") @@ -67,18 +73,21 @@ class TokenRegenerateResponse(BaseModel): class FirstSetupStatusResponse(BaseModel): """首次配置状态响应""" + is_first_setup: bool = Field(..., description="是否为首次配置") message: str = Field(..., description="状态消息") class CompleteSetupResponse(BaseModel): """完成配置响应""" + success: bool = Field(..., description="是否成功") message: str = Field(..., description="结果消息") class ResetSetupResponse(BaseModel): """重置配置响应""" + success: bool = Field(..., description="是否成功") message: str = Field(..., description="结果消息") @@ -93,44 +102,35 @@ async def health_check(): async def verify_token(request: TokenVerifyRequest): """ 验证访问令牌 - + Args: request: 包含 token 的验证请求 - + Returns: 验证结果 """ try: token_manager = get_token_manager() is_valid = token_manager.verify_token(request.token) - + if is_valid: - return TokenVerifyResponse( - valid=True, - message="Token 验证成功" - ) + return TokenVerifyResponse(valid=True, message="Token 验证成功") else: - return TokenVerifyResponse( - valid=False, - message="Token 无效或已过期" - ) + return TokenVerifyResponse(valid=False, message="Token 无效或已过期") except Exception as e: logger.error(f"Token 验证失败: {e}") raise HTTPException(status_code=500, detail="Token 验证失败") from e @router.post("/auth/update", response_model=TokenUpdateResponse) -async def update_token( - request: TokenUpdateRequest, - authorization: Optional[str] = Header(None) -): +async def update_token(request: TokenUpdateRequest, authorization: Optional[str] = Header(None)): """ 更新访问令牌(需要当前有效的 token) - + Args: request: 包含新 token 的更新请求 authorization: Authorization header (Bearer token) - + Returns: 更新结果 """ @@ -138,20 +138,17 @@ async def update_token( # 验证当前 token if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="未提供有效的认证信息") - + current_token = authorization.replace("Bearer ", "") token_manager = get_token_manager() - + if not token_manager.verify_token(current_token): raise HTTPException(status_code=401, detail="当前 Token 无效") - + # 更新 token success, message = token_manager.update_token(request.new_token) - - return TokenUpdateResponse( - success=success, - message=message - ) + + return TokenUpdateResponse(success=success, message=message) except HTTPException: raise except Exception as e: @@ -163,10 +160,10 @@ async def update_token( async def regenerate_token(authorization: Optional[str] = Header(None)): """ 重新生成访问令牌(需要当前有效的 token) - + Args: authorization: Authorization header (Bearer token) - + Returns: 新生成的 token """ @@ -174,21 +171,17 @@ async def regenerate_token(authorization: Optional[str] = Header(None)): # 验证当前 token if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="未提供有效的认证信息") - + current_token = authorization.replace("Bearer ", "") token_manager = get_token_manager() - + if not token_manager.verify_token(current_token): raise HTTPException(status_code=401, detail="当前 Token 无效") - + # 重新生成 token new_token = token_manager.regenerate_token() - - return TokenRegenerateResponse( - success=True, - token=new_token, - message="Token 已重新生成" - ) + + return TokenRegenerateResponse(success=True, token=new_token, message="Token 已重新生成") except HTTPException: raise except Exception as e: @@ -200,10 +193,10 @@ async def regenerate_token(authorization: Optional[str] = Header(None)): async def get_setup_status(authorization: Optional[str] = Header(None)): """ 获取首次配置状态 - + Args: authorization: Authorization header (Bearer token) - + Returns: 首次配置状态 """ @@ -211,20 +204,17 @@ async def get_setup_status(authorization: Optional[str] = Header(None)): # 验证 token if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="未提供有效的认证信息") - + current_token = authorization.replace("Bearer ", "") token_manager = get_token_manager() - + if not token_manager.verify_token(current_token): raise HTTPException(status_code=401, detail="Token 无效") - + # 检查是否为首次配置 is_first = token_manager.is_first_setup() - - return FirstSetupStatusResponse( - is_first_setup=is_first, - message="首次配置" if is_first else "已完成配置" - ) + + return FirstSetupStatusResponse(is_first_setup=is_first, message="首次配置" if is_first else "已完成配置") except HTTPException: raise except Exception as e: @@ -236,10 +226,10 @@ async def get_setup_status(authorization: Optional[str] = Header(None)): async def complete_setup(authorization: Optional[str] = Header(None)): """ 标记首次配置完成 - + Args: authorization: Authorization header (Bearer token) - + Returns: 完成结果 """ @@ -247,20 +237,17 @@ async def complete_setup(authorization: Optional[str] = Header(None)): # 验证 token if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="未提供有效的认证信息") - + current_token = authorization.replace("Bearer ", "") token_manager = get_token_manager() - + if not token_manager.verify_token(current_token): raise HTTPException(status_code=401, detail="Token 无效") - + # 标记配置完成 success = token_manager.mark_setup_completed() - - return CompleteSetupResponse( - success=success, - message="配置已完成" if success else "标记失败" - ) + + return CompleteSetupResponse(success=success, message="配置已完成" if success else "标记失败") except HTTPException: raise except Exception as e: @@ -272,10 +259,10 @@ async def complete_setup(authorization: Optional[str] = Header(None)): async def reset_setup(authorization: Optional[str] = Header(None)): """ 重置首次配置状态,允许重新进入配置向导 - + Args: authorization: Authorization header (Bearer token) - + Returns: 重置结果 """ @@ -283,20 +270,17 @@ async def reset_setup(authorization: Optional[str] = Header(None)): # 验证 token if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="未提供有效的认证信息") - + current_token = authorization.replace("Bearer ", "") token_manager = get_token_manager() - + if not token_manager.verify_token(current_token): raise HTTPException(status_code=401, detail="Token 无效") - + # 重置配置状态 success = token_manager.reset_setup_status() - - return ResetSetupResponse( - success=success, - message="配置状态已重置" if success else "重置失败" - ) + + return ResetSetupResponse(success=success, message="配置状态已重置" if success else "重置失败") except HTTPException: raise except Exception as e: diff --git a/src/webui/statistics_routes.py b/src/webui/statistics_routes.py index 01d5ea28..45855475 100644 --- a/src/webui/statistics_routes.py +++ b/src/webui/statistics_routes.py @@ -1,4 +1,5 @@ """统计数据 API 路由""" + from fastapi import APIRouter, HTTPException from pydantic import BaseModel, Field from typing import Dict, Any, List @@ -15,6 +16,7 @@ router = APIRouter(prefix="/statistics", tags=["statistics"]) class StatisticsSummary(BaseModel): """统计数据摘要""" + total_requests: int = Field(0, description="总请求数") total_cost: float = Field(0.0, description="总花费") total_tokens: int = Field(0, description="总token数") @@ -28,6 +30,7 @@ class StatisticsSummary(BaseModel): class ModelStatistics(BaseModel): """模型统计""" + model_name: str request_count: int total_cost: float @@ -37,6 +40,7 @@ class ModelStatistics(BaseModel): class TimeSeriesData(BaseModel): """时间序列数据""" + timestamp: str requests: int = 0 cost: float = 0.0 @@ -45,6 +49,7 @@ class TimeSeriesData(BaseModel): class DashboardData(BaseModel): """仪表盘数据""" + summary: StatisticsSummary model_stats: List[ModelStatistics] hourly_data: List[TimeSeriesData] @@ -56,39 +61,39 @@ class DashboardData(BaseModel): async def get_dashboard_data(hours: int = 24): """ 获取仪表盘统计数据 - + Args: hours: 统计时间范围(小时),默认24小时 - + Returns: 仪表盘数据 """ try: now = datetime.now() start_time = now - timedelta(hours=hours) - + # 获取摘要数据 summary = await _get_summary_statistics(start_time, now) - + # 获取模型统计 model_stats = await _get_model_statistics(start_time) - + # 获取小时级时间序列数据 hourly_data = await _get_hourly_statistics(start_time, now) - + # 获取日级时间序列数据(最近7天) daily_start = now - timedelta(days=7) daily_data = await _get_daily_statistics(daily_start, now) - + # 获取最近活动 recent_activity = await _get_recent_activity(limit=10) - + return DashboardData( summary=summary, model_stats=model_stats, hourly_data=hourly_data, daily_data=daily_data, - recent_activity=recent_activity + recent_activity=recent_activity, ) except Exception as e: logger.error(f"获取仪表盘数据失败: {e}") @@ -98,100 +103,84 @@ async def get_dashboard_data(hours: int = 24): async def _get_summary_statistics(start_time: datetime, end_time: datetime) -> StatisticsSummary: """获取摘要统计数据""" summary = StatisticsSummary() - + # 查询 LLM 使用记录 - llm_records = list( - LLMUsage.select() - .where(LLMUsage.timestamp >= start_time) - .where(LLMUsage.timestamp <= end_time) - ) - + llm_records = list(LLMUsage.select().where(LLMUsage.timestamp >= start_time).where(LLMUsage.timestamp <= end_time)) + total_time_cost = 0.0 time_cost_count = 0 - + for record in llm_records: summary.total_requests += 1 summary.total_cost += record.cost or 0.0 summary.total_tokens += (record.prompt_tokens or 0) + (record.completion_tokens or 0) - + if record.time_cost and record.time_cost > 0: total_time_cost += record.time_cost time_cost_count += 1 - + # 计算平均响应时间 if time_cost_count > 0: summary.avg_response_time = total_time_cost / time_cost_count - + # 查询在线时间 online_records = list( - OnlineTime.select() - .where( - (OnlineTime.start_timestamp >= start_time) | - (OnlineTime.end_timestamp >= start_time) - ) + OnlineTime.select().where((OnlineTime.start_timestamp >= start_time) | (OnlineTime.end_timestamp >= start_time)) ) - + for record in online_records: start = max(record.start_timestamp, start_time) end = min(record.end_timestamp, end_time) if end > start: summary.online_time += (end - start).total_seconds() - + # 查询消息数量 messages = list( - Messages.select() - .where(Messages.time >= start_time.timestamp()) - .where(Messages.time <= end_time.timestamp()) + Messages.select().where(Messages.time >= start_time.timestamp()).where(Messages.time <= end_time.timestamp()) ) - + summary.total_messages = len(messages) # 简单统计:如果 reply_to 不为空,则认为是回复 summary.total_replies = len([m for m in messages if m.reply_to]) - + # 计算派生指标 if summary.online_time > 0: online_hours = summary.online_time / 3600.0 summary.cost_per_hour = summary.total_cost / online_hours summary.tokens_per_hour = summary.total_tokens / online_hours - + return summary async def _get_model_statistics(start_time: datetime) -> List[ModelStatistics]: """获取模型统计数据""" - model_data = defaultdict(lambda: { - 'request_count': 0, - 'total_cost': 0.0, - 'total_tokens': 0, - 'time_costs': [] - }) - - records = list( - LLMUsage.select() - .where(LLMUsage.timestamp >= start_time) - ) - + model_data = defaultdict(lambda: {"request_count": 0, "total_cost": 0.0, "total_tokens": 0, "time_costs": []}) + + records = list(LLMUsage.select().where(LLMUsage.timestamp >= start_time)) + for record in records: model_name = record.model_assign_name or record.model_name or "unknown" - model_data[model_name]['request_count'] += 1 - model_data[model_name]['total_cost'] += record.cost or 0.0 - model_data[model_name]['total_tokens'] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) - + model_data[model_name]["request_count"] += 1 + model_data[model_name]["total_cost"] += record.cost or 0.0 + model_data[model_name]["total_tokens"] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) + if record.time_cost and record.time_cost > 0: - model_data[model_name]['time_costs'].append(record.time_cost) - + model_data[model_name]["time_costs"].append(record.time_cost) + # 转换为列表并排序 result = [] for model_name, data in model_data.items(): - avg_time = sum(data['time_costs']) / len(data['time_costs']) if data['time_costs'] else 0.0 - result.append(ModelStatistics( - model_name=model_name, - request_count=data['request_count'], - total_cost=data['total_cost'], - total_tokens=data['total_tokens'], - avg_response_time=avg_time - )) - + avg_time = sum(data["time_costs"]) / len(data["time_costs"]) if data["time_costs"] else 0.0 + result.append( + ModelStatistics( + model_name=model_name, + request_count=data["request_count"], + total_cost=data["total_cost"], + total_tokens=data["total_tokens"], + avg_response_time=avg_time, + ) + ) + # 按请求数排序 result.sort(key=lambda x: x.request_count, reverse=True) return result[:10] # 返回前10个 @@ -200,96 +189,80 @@ async def _get_model_statistics(start_time: datetime) -> List[ModelStatistics]: async def _get_hourly_statistics(start_time: datetime, end_time: datetime) -> List[TimeSeriesData]: """获取小时级统计数据""" # 创建小时桶 - hourly_buckets = defaultdict(lambda: {'requests': 0, 'cost': 0.0, 'tokens': 0}) - - records = list( - LLMUsage.select() - .where(LLMUsage.timestamp >= start_time) - .where(LLMUsage.timestamp <= end_time) - ) - + hourly_buckets = defaultdict(lambda: {"requests": 0, "cost": 0.0, "tokens": 0}) + + records = list(LLMUsage.select().where(LLMUsage.timestamp >= start_time).where(LLMUsage.timestamp <= end_time)) + for record in records: # 获取小时键(去掉分钟和秒) hour_key = record.timestamp.replace(minute=0, second=0, microsecond=0) hour_str = hour_key.isoformat() - - hourly_buckets[hour_str]['requests'] += 1 - hourly_buckets[hour_str]['cost'] += record.cost or 0.0 - hourly_buckets[hour_str]['tokens'] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) - + + hourly_buckets[hour_str]["requests"] += 1 + hourly_buckets[hour_str]["cost"] += record.cost or 0.0 + hourly_buckets[hour_str]["tokens"] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) + # 填充所有小时(包括没有数据的) result = [] current = start_time.replace(minute=0, second=0, microsecond=0) while current <= end_time: hour_str = current.isoformat() - data = hourly_buckets.get(hour_str, {'requests': 0, 'cost': 0.0, 'tokens': 0}) - result.append(TimeSeriesData( - timestamp=hour_str, - requests=data['requests'], - cost=data['cost'], - tokens=data['tokens'] - )) + data = hourly_buckets.get(hour_str, {"requests": 0, "cost": 0.0, "tokens": 0}) + result.append( + TimeSeriesData(timestamp=hour_str, requests=data["requests"], cost=data["cost"], tokens=data["tokens"]) + ) current += timedelta(hours=1) - + return result async def _get_daily_statistics(start_time: datetime, end_time: datetime) -> List[TimeSeriesData]: """获取日级统计数据""" - daily_buckets = defaultdict(lambda: {'requests': 0, 'cost': 0.0, 'tokens': 0}) - - records = list( - LLMUsage.select() - .where(LLMUsage.timestamp >= start_time) - .where(LLMUsage.timestamp <= end_time) - ) - + daily_buckets = defaultdict(lambda: {"requests": 0, "cost": 0.0, "tokens": 0}) + + records = list(LLMUsage.select().where(LLMUsage.timestamp >= start_time).where(LLMUsage.timestamp <= end_time)) + for record in records: # 获取日期键 day_key = record.timestamp.replace(hour=0, minute=0, second=0, microsecond=0) day_str = day_key.isoformat() - - daily_buckets[day_str]['requests'] += 1 - daily_buckets[day_str]['cost'] += record.cost or 0.0 - daily_buckets[day_str]['tokens'] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) - + + daily_buckets[day_str]["requests"] += 1 + daily_buckets[day_str]["cost"] += record.cost or 0.0 + daily_buckets[day_str]["tokens"] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) + # 填充所有天 result = [] current = start_time.replace(hour=0, minute=0, second=0, microsecond=0) while current <= end_time: day_str = current.isoformat() - data = daily_buckets.get(day_str, {'requests': 0, 'cost': 0.0, 'tokens': 0}) - result.append(TimeSeriesData( - timestamp=day_str, - requests=data['requests'], - cost=data['cost'], - tokens=data['tokens'] - )) + data = daily_buckets.get(day_str, {"requests": 0, "cost": 0.0, "tokens": 0}) + result.append( + TimeSeriesData(timestamp=day_str, requests=data["requests"], cost=data["cost"], tokens=data["tokens"]) + ) current += timedelta(days=1) - + return result async def _get_recent_activity(limit: int = 10) -> List[Dict[str, Any]]: """获取最近活动""" - records = list( - LLMUsage.select() - .order_by(LLMUsage.timestamp.desc()) - .limit(limit) - ) - + records = list(LLMUsage.select().order_by(LLMUsage.timestamp.desc()).limit(limit)) + activities = [] for record in records: - activities.append({ - 'timestamp': record.timestamp.isoformat(), - 'model': record.model_assign_name or record.model_name, - 'request_type': record.request_type, - 'tokens': (record.prompt_tokens or 0) + (record.completion_tokens or 0), - 'cost': record.cost or 0.0, - 'time_cost': record.time_cost or 0.0, - 'status': record.status - }) - + activities.append( + { + "timestamp": record.timestamp.isoformat(), + "model": record.model_assign_name or record.model_name, + "request_type": record.request_type, + "tokens": (record.prompt_tokens or 0) + (record.completion_tokens or 0), + "cost": record.cost or 0.0, + "time_cost": record.time_cost or 0.0, + "status": record.status, + } + ) + return activities @@ -297,7 +270,7 @@ async def _get_recent_activity(limit: int = 10) -> List[Dict[str, Any]]: async def get_summary(hours: int = 24): """ 获取统计摘要 - + Args: hours: 统计时间范围(小时) """ @@ -315,7 +288,7 @@ async def get_summary(hours: int = 24): async def get_model_stats(hours: int = 24): """ 获取模型统计 - + Args: hours: 统计时间范围(小时) """ diff --git a/src/webui/token_manager.py b/src/webui/token_manager.py index 7ab16d75..69abf1d8 100644 --- a/src/webui/token_manager.py +++ b/src/webui/token_manager.py @@ -19,7 +19,7 @@ class TokenManager: def __init__(self, config_path: Optional[Path] = None): """ 初始化 Token 管理器 - + Args: config_path: 配置文件路径,默认为项目根目录的 data/webui.json """ @@ -27,10 +27,10 @@ class TokenManager: # 获取项目根目录 (src/webui -> src -> 根目录) project_root = Path(__file__).parent.parent.parent config_path = project_root / "data" / "webui.json" - + self.config_path = config_path self.config_path.parent.mkdir(parents=True, exist_ok=True) - + # 确保配置文件存在并包含有效的 token self._ensure_config() @@ -75,22 +75,23 @@ class TokenManager: """生成新的 64 位随机 token""" # 生成 64 位十六进制字符串 (32 字节 = 64 hex 字符) token = secrets.token_hex(32) - + config = { "access_token": token, "created_at": self._get_current_timestamp(), "updated_at": self._get_current_timestamp(), - "first_setup_completed": False # 标记首次配置未完成 + "first_setup_completed": False, # 标记首次配置未完成 } - + self._save_config(config) logger.info(f"新的 WebUI Token 已生成: {token[:8]}...") - + return token def _get_current_timestamp(self) -> str: """获取当前时间戳字符串""" from datetime import datetime + return datetime.now().isoformat() def get_token(self) -> str: @@ -101,38 +102,38 @@ class TokenManager: def verify_token(self, token: str) -> bool: """ 验证 token 是否有效 - + Args: token: 待验证的 token - + Returns: bool: token 是否有效 """ if not token: return False - + current_token = self.get_token() if not current_token: logger.error("系统中没有有效的 token") return False - + # 使用 secrets.compare_digest 防止时序攻击 is_valid = secrets.compare_digest(token, current_token) - + if is_valid: logger.debug("Token 验证成功") else: logger.warning("Token 验证失败") - + return is_valid def update_token(self, new_token: str) -> tuple[bool, str]: """ 更新 token - + Args: new_token: 新的 token (最少 10 位,必须包含大小写字母和特殊符号) - + Returns: tuple[bool, str]: (是否更新成功, 错误消息) """ @@ -141,17 +142,17 @@ class TokenManager: if not is_valid: logger.error(f"Token 格式无效: {error_msg}") return False, error_msg - + try: config = self._load_config() old_token = config.get("access_token", "")[:8] - + config["access_token"] = new_token config["updated_at"] = self._get_current_timestamp() - + self._save_config(config) logger.info(f"Token 已更新: {old_token}... -> {new_token[:8]}...") - + return True, "Token 更新成功" except Exception as e: logger.error(f"更新 Token 失败: {e}") @@ -160,7 +161,7 @@ class TokenManager: def regenerate_token(self) -> str: """ 重新生成 token - + Returns: str: 新生成的 token """ @@ -170,20 +171,20 @@ class TokenManager: def _validate_token_format(self, token: str) -> bool: """ 验证 token 格式是否正确(旧的 64 位十六进制验证,保留用于系统生成的 token) - + Args: token: 待验证的 token - + Returns: bool: 格式是否正确 """ if not token or not isinstance(token, str): return False - + # 必须是 64 位十六进制字符串 if len(token) != 64: return False - + # 验证是否为有效的十六进制字符串 try: int(token, 16) @@ -194,48 +195,48 @@ class TokenManager: def _validate_custom_token(self, token: str) -> tuple[bool, str]: """ 验证自定义 token 格式 - + 要求: - 最少 10 位 - 包含大写字母 - 包含小写字母 - 包含特殊符号 - + Args: token: 待验证的 token - + Returns: tuple[bool, str]: (是否有效, 错误消息) """ if not token or not isinstance(token, str): return False, "Token 不能为空" - + # 检查长度 if len(token) < 10: return False, "Token 长度至少为 10 位" - + # 检查是否包含大写字母 has_upper = any(c.isupper() for c in token) if not has_upper: return False, "Token 必须包含大写字母" - + # 检查是否包含小写字母 has_lower = any(c.islower() for c in token) if not has_lower: return False, "Token 必须包含小写字母" - + # 检查是否包含特殊符号 special_chars = "!@#$%^&*()_+-=[]{}|;:,.<>?/" has_special = any(c in special_chars for c in token) if not has_special: return False, f"Token 必须包含特殊符号 ({special_chars})" - + return True, "Token 格式正确" def is_first_setup(self) -> bool: """ 检查是否为首次配置 - + Returns: bool: 是否为首次配置 """ @@ -245,7 +246,7 @@ class TokenManager: def mark_setup_completed(self) -> bool: """ 标记首次配置已完成 - + Returns: bool: 是否标记成功 """ @@ -263,7 +264,7 @@ class TokenManager: def reset_setup_status(self) -> bool: """ 重置首次配置状态,允许重新进入配置向导 - + Returns: bool: 是否重置成功 """ From 966c74f4542a009a823a60578353aaa9d035e383 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Thu, 20 Nov 2025 01:02:42 +0800 Subject: [PATCH 06/12] =?UTF-8?q?doc=EF=BC=9A=E4=BF=AE=E6=94=B9readme?= =?UTF-8?q?=E5=92=8Cchangelog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 39 +++++++++++++++++++++++++-------------- changelogs/changelog.md | 8 +++++++- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index a37896f8..ed64d2fd 100644 --- a/README.md +++ b/README.md @@ -25,11 +25,12 @@ **🍔MaiCore 是一个基于大语言模型的可交互智能体** -- 💭 **智能对话系统**:基于 LLM 的自然语言交互,聊天时机控制。 -- 🤔 **实时思维系统**:模拟人类思考过程。 -- 🧠 **表达学习功能**:学习群友的说话风格和表达方式 -- 💝 **情感表达系统**:情绪系统和表情包系统。 -- 🔌 **强大插件系统**:提供API和事件系统,可编写强大插件。 +- 💭 **拟人构建的prompt**:使用自然语言风格构建回复器的prompt,实现近似人类言语习惯的回复。 +- 💭 **行为规划**:在合适的时间说话,使用合适的动作 +- 🧠 **表达学习**:学习群友的说话风格和表达方式,学会真实人类的说话风格 +- 🤔 **黑话学习**:自主的学习没有见过的词语,尝试理解并认知含义 +- 🔌 **插件系统**:提供API和事件系统,可编写丰富插件。 +- 💝 **情感表达**:情绪系统和表情包系统。
@@ -44,7 +45,7 @@ ## 🔥 更新和安装 -**最新版本: v0.11.3** ([更新日志](changelogs/changelog.md)) +**最新版本: v0.11.6** ([更新日志](changelogs/changelog.md)) 可前往 [Release](https://github.com/MaiM-with-u/MaiBot/releases/) 页面下载最新版本 可前往 [启动器发布页面](https://github.com/MaiM-with-u/mailauncher/releases/)下载最新启动器 @@ -60,15 +61,10 @@ > [!WARNING] > - 项目处于活跃开发阶段,功能和 API 可能随时调整。 -> - 有问题可以提交 Issue 或者 Discussion。 +> - 有问题可以提交 Issue 。 > - QQ 机器人存在被限制风险,请自行了解,谨慎使用。 > - 由于程序处于开发中,可能消耗较多 token。 -## 麦麦MC项目MaiCraft(早期开发) -[让麦麦玩MC](https://github.com/MaiM-with-u/Maicraft) - -交流群:1058573197 - ## 💬 讨论 **技术交流群:** @@ -80,7 +76,7 @@ **聊天吹水群:** - [麦麦之闲聊群](https://qm.qq.com/q/JxvHZnxyec) -**插件开发测试版群:** +**插件开发/测试版讨论群:** - [插件开发群](https://qm.qq.com/q/1036092828) ## 📚 文档 @@ -89,7 +85,22 @@ - [📚 核心 Wiki 文档](https://docs.mai-mai.org) - 项目最全面的文档中心,你可以了解麦麦有关的一切。 -### 设计理念(原始时代的火花) + +## 📚 衍生项目 + +### MaiCraft(早期开发) +[MaiCraft](https://github.com/MaiM-with-u/Maicraft) +> 让麦麦具有玩MC能力的项目 +> 交流群:1058573197 + +### MoFox_Bot +[MoFox - 仓库地址](https://github.com/MoFox-Studio/MoFox-Core) +> MoFox_Bot 是一个基于 MaiCore 0.10.0 snapshot.5 的增强型 fork 项目 +> 我们保留了原项目几乎所有核心功能,并在此基础上进行了深度优化与功能扩展,致力于打造一个更稳定、更智能、更具趣味性的 AI 智能体。 + + + +## 设计理念(原始时代的火花) > **千石可乐说:** > - 这个项目最初只是为了给牛牛 bot 添加一点额外的功能,但是功能越写越多,最后决定重写。其目的是为了创造一个活跃在 QQ 群聊的"生命体"。目的并不是为了写一个功能齐全的机器人,而是一个尽可能让人感知到真实的类人存在。 diff --git a/changelogs/changelog.md b/changelogs/changelog.md index a0e64dd8..1726547e 100644 --- a/changelogs/changelog.md +++ b/changelogs/changelog.md @@ -1,6 +1,12 @@ # Changelog -## [0.11.3] - 2025-11-17 +## [0.11.6] - 2025-11-21 + +## [0.11.5] - 2025-11-20 + +## [0.11.4] - 2025-11-20 + +## [0.11.3] - 2025-11-19 ### 功能更改和修复 - 优化记忆提取策略 - 优化黑话提取 From 2eceee7e08f493bac7a3a9c2c0f672d7479ef370 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Thu, 20 Nov 2025 01:08:15 +0800 Subject: [PATCH 07/12] Update changelog.md --- changelogs/changelog.md | 43 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/changelogs/changelog.md b/changelogs/changelog.md index 1726547e..ba6921be 100644 --- a/changelogs/changelog.md +++ b/changelogs/changelog.md @@ -1,10 +1,45 @@ # Changelog - -## [0.11.6] - 2025-11-21 - -## [0.11.5] - 2025-11-20 +## [0.11.5] - 2025-11-21 ## [0.11.4] - 2025-11-20 +### 🌟 主要更新内容 +- **首个官方 Web 管理界面上线**:在此版本之前,MaiBot 没有 WebUI,所有配置需手动编辑 TOML 文件 +- **认证系统**:Token 安全登录(支持系统生成 64 位随机令牌 / 自定义 Token),首次配置向导 +- **配置管理(可视化编辑,无需手动改 TOML)**: + - 麦麦主程序配置:基础设置、人格、表情、黑话、情绪等 + - 模型提供商配置:OpenAI、Anthropic、DeepSeek、Qwen、Ollama 等 + - 模型配置:对话/视觉/嵌入模型分配 +- **资源管理**: + - 表情包管理:查看、搜索、注册、封禁 + - 表达方式管理:查看麦麦的表达记录 + - 人物信息管理:查看联系人列表 +- **插件系统**: + - 插件市场浏览 + - 一键安装/卸载/更新 + - 版本兼容性检查 + - 实时安装进度推送 +- **日志查看器**: + - WebSocket 实时日志流 + - 日志级别过滤(DEBUG/INFO/WARNING/ERROR/CRITICAL) + - 搜索功能 +- **主题定制**: + - 浅色/深色/跟随系统 + - 12 种主题色(6 单色 + 6 渐变色) + - 自定义颜色选择器 +- **全局搜索**:Cmd/Ctrl + K 快捷键,快速跳转任意页面 + +### 细节 +- **技术栈**: + - 前端: React 19 + TypeScript + Vite + TanStack Router + shadcn/ui + - 后端: FastAPI + Uvicorn + WebSocket + - 特点: SPA 单页应用,前后端同端口,静态文件托管 +- **使用方式**:参照 template.env 文件更新 .env 文件,添加两个字段: + - `WEBUI_ENABLED=true` + - `WEBUI_MODE=production` +- **WebUI 开源协议**:GPLv3 +- **WebUI 地址**:https://github.com/Mai-with-u/MaiBot-Dashboard + +告别手动编辑配置文件,享受现代化图形界面! ## [0.11.3] - 2025-11-19 ### 功能更改和修复 From d7fccfe6341eb027f373da0fe63437bf5cba9aa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Thu, 20 Nov 2025 01:18:12 +0800 Subject: [PATCH 08/12] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD=E8=87=B3=E8=A1=A8?= =?UTF-8?q?=E6=83=85=E5=8C=85=E3=80=81=E8=A1=A8=E8=BE=BE=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=E5=92=8C=E4=BA=BA=E7=89=A9=E4=BF=A1=E6=81=AF=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/webui/emoji_routes.py | 72 +++++++++++++ src/webui/expression_routes.py | 47 +++++++++ src/webui/person_routes.py | 72 +++++++++++++ src/webui/statistics_routes.py | 178 +++++++++++++++++---------------- 4 files changed, 284 insertions(+), 85 deletions(-) diff --git a/src/webui/emoji_routes.py b/src/webui/emoji_routes.py index 96899bf3..2deaa6e6 100644 --- a/src/webui/emoji_routes.py +++ b/src/webui/emoji_routes.py @@ -76,6 +76,22 @@ class EmojiDeleteResponse(BaseModel): message: str +class BatchDeleteRequest(BaseModel): + """批量删除请求""" + + emoji_ids: List[int] + + +class BatchDeleteResponse(BaseModel): + """批量删除响应""" + + success: bool + message: str + deleted_count: int + failed_count: int + failed_ids: List[int] = [] + + def verify_auth_token(authorization: Optional[str]) -> bool: """验证认证 Token""" if not authorization or not authorization.startswith("Bearer "): @@ -503,3 +519,59 @@ async def get_emoji_thumbnail( except Exception as e: logger.exception(f"获取表情包缩略图失败: {e}") raise HTTPException(status_code=500, detail=f"获取表情包缩略图失败: {str(e)}") from e + + +@router.post("/batch/delete", response_model=BatchDeleteResponse) +async def batch_delete_emojis(request: BatchDeleteRequest, authorization: Optional[str] = Header(None)): + """ + 批量删除表情包 + + Args: + request: 包含emoji_ids列表的请求 + authorization: Authorization header + + Returns: + 批量删除结果 + """ + try: + verify_auth_token(authorization) + + if not request.emoji_ids: + raise HTTPException(status_code=400, detail="未提供要删除的表情包ID") + + deleted_count = 0 + failed_count = 0 + failed_ids = [] + + for emoji_id in request.emoji_ids: + try: + emoji = Emoji.get_or_none(Emoji.id == emoji_id) + if emoji: + emoji.delete_instance() + deleted_count += 1 + logger.info(f"批量删除表情包: {emoji_id}") + else: + failed_count += 1 + failed_ids.append(emoji_id) + except Exception as e: + logger.error(f"删除表情包 {emoji_id} 失败: {e}") + failed_count += 1 + failed_ids.append(emoji_id) + + message = f"成功删除 {deleted_count} 个表情包" + if failed_count > 0: + message += f",{failed_count} 个失败" + + return BatchDeleteResponse( + success=True, + message=message, + deleted_count=deleted_count, + failed_count=failed_count, + failed_ids=failed_ids, + ) + + except HTTPException: + raise + except Exception as e: + logger.exception(f"批量删除表情包失败: {e}") + raise HTTPException(status_code=500, detail=f"批量删除失败: {str(e)}") from e diff --git a/src/webui/expression_routes.py b/src/webui/expression_routes.py index aa9261d2..983918cf 100644 --- a/src/webui/expression_routes.py +++ b/src/webui/expression_routes.py @@ -338,6 +338,53 @@ async def delete_expression(expression_id: int, authorization: Optional[str] = H raise HTTPException(status_code=500, detail=f"删除表达方式失败: {str(e)}") from e +class BatchDeleteRequest(BaseModel): + """批量删除请求""" + + ids: List[int] + + +@router.post("/batch/delete", response_model=ExpressionDeleteResponse) +async def batch_delete_expressions(request: BatchDeleteRequest, authorization: Optional[str] = Header(None)): + """ + 批量删除表达方式 + + Args: + request: 包含要删除的ID列表的请求 + authorization: Authorization header + + Returns: + 删除结果 + """ + try: + verify_auth_token(authorization) + + if not request.ids: + raise HTTPException(status_code=400, detail="未提供要删除的表达方式ID") + + # 查找所有要删除的表达方式 + expressions = Expression.select().where(Expression.id.in_(request.ids)) + found_ids = [expr.id for expr in expressions] + + # 检查是否有未找到的ID + not_found_ids = set(request.ids) - set(found_ids) + if not_found_ids: + logger.warning(f"部分表达方式未找到: {not_found_ids}") + + # 执行批量删除 + deleted_count = Expression.delete().where(Expression.id.in_(found_ids)).execute() + + logger.info(f"批量删除了 {deleted_count} 个表达方式") + + return ExpressionDeleteResponse(success=True, message=f"成功删除 {deleted_count} 个表达方式") + + except HTTPException: + raise + except Exception as e: + logger.exception(f"批量删除表达方式失败: {e}") + raise HTTPException(status_code=500, detail=f"批量删除表达方式失败: {str(e)}") from e + + @router.get("/stats/summary") async def get_expression_stats(authorization: Optional[str] = Header(None)): """ diff --git a/src/webui/person_routes.py b/src/webui/person_routes.py index 24855aba..5935a2fa 100644 --- a/src/webui/person_routes.py +++ b/src/webui/person_routes.py @@ -75,6 +75,22 @@ class PersonDeleteResponse(BaseModel): message: str +class BatchDeleteRequest(BaseModel): + """批量删除请求""" + + person_ids: List[str] + + +class BatchDeleteResponse(BaseModel): + """批量删除响应""" + + success: bool + message: str + deleted_count: int + failed_count: int + failed_ids: List[str] = [] + + def verify_auth_token(authorization: Optional[str]) -> bool: """验证认证 Token""" if not authorization or not authorization.startswith("Bearer "): @@ -334,3 +350,59 @@ async def get_person_stats(authorization: Optional[str] = Header(None)): except Exception as e: logger.exception(f"获取统计数据失败: {e}") raise HTTPException(status_code=500, detail=f"获取统计数据失败: {str(e)}") from e + + +@router.post("/batch/delete", response_model=BatchDeleteResponse) +async def batch_delete_persons(request: BatchDeleteRequest, authorization: Optional[str] = Header(None)): + """ + 批量删除人物信息 + + Args: + request: 包含person_ids列表的请求 + authorization: Authorization header + + Returns: + 批量删除结果 + """ + try: + verify_auth_token(authorization) + + if not request.person_ids: + raise HTTPException(status_code=400, detail="未提供要删除的人物ID") + + deleted_count = 0 + failed_count = 0 + failed_ids = [] + + for person_id in request.person_ids: + try: + person = PersonInfo.get_or_none(PersonInfo.person_id == person_id) + if person: + person.delete_instance() + deleted_count += 1 + logger.info(f"批量删除: {person_id}") + else: + failed_count += 1 + failed_ids.append(person_id) + except Exception as e: + logger.error(f"删除 {person_id} 失败: {e}") + failed_count += 1 + failed_ids.append(person_id) + + message = f"成功删除 {deleted_count} 个人物" + if failed_count > 0: + message += f",{failed_count} 个失败" + + return BatchDeleteResponse( + success=True, + message=message, + deleted_count=deleted_count, + failed_count=failed_count, + failed_ids=failed_ids, + ) + + except HTTPException: + raise + except Exception as e: + logger.exception(f"批量删除人物信息失败: {e}") + raise HTTPException(status_code=500, detail=f"批量删除失败: {str(e)}") from e diff --git a/src/webui/statistics_routes.py b/src/webui/statistics_routes.py index 45855475..b0a3664c 100644 --- a/src/webui/statistics_routes.py +++ b/src/webui/statistics_routes.py @@ -4,7 +4,7 @@ from fastapi import APIRouter, HTTPException from pydantic import BaseModel, Field from typing import Dict, Any, List from datetime import datetime, timedelta -from collections import defaultdict +from peewee import fn from src.common.logger import get_logger from src.common.database.database_model import LLMUsage, OnlineTime, Messages @@ -101,29 +101,24 @@ async def get_dashboard_data(hours: int = 24): async def _get_summary_statistics(start_time: datetime, end_time: datetime) -> StatisticsSummary: - """获取摘要统计数据""" + """获取摘要统计数据(优化:使用数据库聚合)""" summary = StatisticsSummary() - # 查询 LLM 使用记录 - llm_records = list(LLMUsage.select().where(LLMUsage.timestamp >= start_time).where(LLMUsage.timestamp <= end_time)) + # 使用聚合查询替代全量加载 + query = LLMUsage.select( + fn.COUNT(LLMUsage.id).alias("total_requests"), + fn.COALESCE(fn.SUM(LLMUsage.cost), 0).alias("total_cost"), + fn.COALESCE(fn.SUM(LLMUsage.prompt_tokens + LLMUsage.completion_tokens), 0).alias("total_tokens"), + fn.COALESCE(fn.AVG(LLMUsage.time_cost), 0).alias("avg_response_time"), + ).where((LLMUsage.timestamp >= start_time) & (LLMUsage.timestamp <= end_time)) - total_time_cost = 0.0 - time_cost_count = 0 + result = query.dicts().get() + summary.total_requests = result["total_requests"] + summary.total_cost = result["total_cost"] + summary.total_tokens = result["total_tokens"] + summary.avg_response_time = result["avg_response_time"] or 0.0 - for record in llm_records: - summary.total_requests += 1 - summary.total_cost += record.cost or 0.0 - summary.total_tokens += (record.prompt_tokens or 0) + (record.completion_tokens or 0) - - if record.time_cost and record.time_cost > 0: - total_time_cost += record.time_cost - time_cost_count += 1 - - # 计算平均响应时间 - if time_cost_count > 0: - summary.avg_response_time = total_time_cost / time_cost_count - - # 查询在线时间 + # 查询在线时间 - 这个数据量通常不大,保留原逻辑 online_records = list( OnlineTime.select().where((OnlineTime.start_timestamp >= start_time) | (OnlineTime.end_timestamp >= start_time)) ) @@ -134,14 +129,19 @@ async def _get_summary_statistics(start_time: datetime, end_time: datetime) -> S if end > start: summary.online_time += (end - start).total_seconds() - # 查询消息数量 - messages = list( - Messages.select().where(Messages.time >= start_time.timestamp()).where(Messages.time <= end_time.timestamp()) + # 查询消息数量 - 使用聚合优化 + messages_query = Messages.select(fn.COUNT(Messages.id).alias("total")).where( + (Messages.time >= start_time.timestamp()) & (Messages.time <= end_time.timestamp()) ) + summary.total_messages = messages_query.scalar() or 0 - summary.total_messages = len(messages) - # 简单统计:如果 reply_to 不为空,则认为是回复 - summary.total_replies = len([m for m in messages if m.reply_to]) + # 统计回复数量 + replies_query = Messages.select(fn.COUNT(Messages.id).alias("total")).where( + (Messages.time >= start_time.timestamp()) + & (Messages.time <= end_time.timestamp()) + & (Messages.reply_to.is_null(False)) + ) + summary.total_replies = replies_query.scalar() or 0 # 计算派生指标 if summary.online_time > 0: @@ -153,93 +153,101 @@ async def _get_summary_statistics(start_time: datetime, end_time: datetime) -> S async def _get_model_statistics(start_time: datetime) -> List[ModelStatistics]: - """获取模型统计数据""" - model_data = defaultdict(lambda: {"request_count": 0, "total_cost": 0.0, "total_tokens": 0, "time_costs": []}) + """获取模型统计数据(优化:使用数据库聚合和分组)""" + # 使用GROUP BY聚合,避免全量加载 + query = ( + LLMUsage.select( + fn.COALESCE(LLMUsage.model_assign_name, LLMUsage.model_name, "unknown").alias("model_name"), + fn.COUNT(LLMUsage.id).alias("request_count"), + fn.COALESCE(fn.SUM(LLMUsage.cost), 0).alias("total_cost"), + fn.COALESCE(fn.SUM(LLMUsage.prompt_tokens + LLMUsage.completion_tokens), 0).alias("total_tokens"), + fn.COALESCE(fn.AVG(LLMUsage.time_cost), 0).alias("avg_response_time"), + ) + .where(LLMUsage.timestamp >= start_time) + .group_by(fn.COALESCE(LLMUsage.model_assign_name, LLMUsage.model_name, "unknown")) + .order_by(fn.COUNT(LLMUsage.id).desc()) + .limit(10) # 只取前10个 + ) - records = list(LLMUsage.select().where(LLMUsage.timestamp >= start_time)) - - for record in records: - model_name = record.model_assign_name or record.model_name or "unknown" - model_data[model_name]["request_count"] += 1 - model_data[model_name]["total_cost"] += record.cost or 0.0 - model_data[model_name]["total_tokens"] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) - - if record.time_cost and record.time_cost > 0: - model_data[model_name]["time_costs"].append(record.time_cost) - - # 转换为列表并排序 result = [] - for model_name, data in model_data.items(): - avg_time = sum(data["time_costs"]) / len(data["time_costs"]) if data["time_costs"] else 0.0 + for row in query.dicts(): result.append( ModelStatistics( - model_name=model_name, - request_count=data["request_count"], - total_cost=data["total_cost"], - total_tokens=data["total_tokens"], - avg_response_time=avg_time, + model_name=row["model_name"], + request_count=row["request_count"], + total_cost=row["total_cost"], + total_tokens=row["total_tokens"], + avg_response_time=row["avg_response_time"] or 0.0, ) ) - # 按请求数排序 - result.sort(key=lambda x: x.request_count, reverse=True) - return result[:10] # 返回前10个 + return result async def _get_hourly_statistics(start_time: datetime, end_time: datetime) -> List[TimeSeriesData]: - """获取小时级统计数据""" - # 创建小时桶 - hourly_buckets = defaultdict(lambda: {"requests": 0, "cost": 0.0, "tokens": 0}) + """获取小时级统计数据(优化:使用数据库聚合)""" + # SQLite的日期时间函数进行小时分组 + # 使用strftime将timestamp格式化为小时级别 + query = ( + LLMUsage.select( + fn.strftime("%Y-%m-%dT%H:00:00", LLMUsage.timestamp).alias("hour"), + fn.COUNT(LLMUsage.id).alias("requests"), + fn.COALESCE(fn.SUM(LLMUsage.cost), 0).alias("cost"), + fn.COALESCE(fn.SUM(LLMUsage.prompt_tokens + LLMUsage.completion_tokens), 0).alias("tokens"), + ) + .where((LLMUsage.timestamp >= start_time) & (LLMUsage.timestamp <= end_time)) + .group_by(fn.strftime("%Y-%m-%dT%H:00:00", LLMUsage.timestamp)) + ) - records = list(LLMUsage.select().where(LLMUsage.timestamp >= start_time).where(LLMUsage.timestamp <= end_time)) - - for record in records: - # 获取小时键(去掉分钟和秒) - hour_key = record.timestamp.replace(minute=0, second=0, microsecond=0) - hour_str = hour_key.isoformat() - - hourly_buckets[hour_str]["requests"] += 1 - hourly_buckets[hour_str]["cost"] += record.cost or 0.0 - hourly_buckets[hour_str]["tokens"] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) + # 转换为字典以快速查找 + data_dict = {row["hour"]: row for row in query.dicts()} # 填充所有小时(包括没有数据的) result = [] current = start_time.replace(minute=0, second=0, microsecond=0) while current <= end_time: - hour_str = current.isoformat() - data = hourly_buckets.get(hour_str, {"requests": 0, "cost": 0.0, "tokens": 0}) - result.append( - TimeSeriesData(timestamp=hour_str, requests=data["requests"], cost=data["cost"], tokens=data["tokens"]) - ) + hour_str = current.strftime("%Y-%m-%dT%H:00:00") + if hour_str in data_dict: + row = data_dict[hour_str] + result.append( + TimeSeriesData(timestamp=hour_str, requests=row["requests"], cost=row["cost"], tokens=row["tokens"]) + ) + else: + result.append(TimeSeriesData(timestamp=hour_str, requests=0, cost=0.0, tokens=0)) current += timedelta(hours=1) return result async def _get_daily_statistics(start_time: datetime, end_time: datetime) -> List[TimeSeriesData]: - """获取日级统计数据""" - daily_buckets = defaultdict(lambda: {"requests": 0, "cost": 0.0, "tokens": 0}) + """获取日级统计数据(优化:使用数据库聚合)""" + # 使用strftime按日期分组 + query = ( + LLMUsage.select( + fn.strftime("%Y-%m-%dT00:00:00", LLMUsage.timestamp).alias("day"), + fn.COUNT(LLMUsage.id).alias("requests"), + fn.COALESCE(fn.SUM(LLMUsage.cost), 0).alias("cost"), + fn.COALESCE(fn.SUM(LLMUsage.prompt_tokens + LLMUsage.completion_tokens), 0).alias("tokens"), + ) + .where((LLMUsage.timestamp >= start_time) & (LLMUsage.timestamp <= end_time)) + .group_by(fn.strftime("%Y-%m-%dT00:00:00", LLMUsage.timestamp)) + ) - records = list(LLMUsage.select().where(LLMUsage.timestamp >= start_time).where(LLMUsage.timestamp <= end_time)) - - for record in records: - # 获取日期键 - day_key = record.timestamp.replace(hour=0, minute=0, second=0, microsecond=0) - day_str = day_key.isoformat() - - daily_buckets[day_str]["requests"] += 1 - daily_buckets[day_str]["cost"] += record.cost or 0.0 - daily_buckets[day_str]["tokens"] += (record.prompt_tokens or 0) + (record.completion_tokens or 0) + # 转换为字典 + data_dict = {row["day"]: row for row in query.dicts()} # 填充所有天 result = [] current = start_time.replace(hour=0, minute=0, second=0, microsecond=0) while current <= end_time: - day_str = current.isoformat() - data = daily_buckets.get(day_str, {"requests": 0, "cost": 0.0, "tokens": 0}) - result.append( - TimeSeriesData(timestamp=day_str, requests=data["requests"], cost=data["cost"], tokens=data["tokens"]) - ) + day_str = current.strftime("%Y-%m-%dT00:00:00") + if day_str in data_dict: + row = data_dict[day_str] + result.append( + TimeSeriesData(timestamp=day_str, requests=row["requests"], cost=row["cost"], tokens=row["tokens"]) + ) + else: + result.append(TimeSeriesData(timestamp=day_str, requests=0, cost=0.0, tokens=0)) current += timedelta(days=1) return result From 638805a116329a3135e238e241c0936a5d1c39c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Thu, 20 Nov 2025 01:19:28 +0800 Subject: [PATCH 09/12] upload WebUI 0.11.5 Beta.ec89131 DashBoard after Build Files commit hash : ec891314f5edfa77006852cf3509b68cdf24e026 --- webui/dist/assets/index-3Oy1uh5z.js | 157 ++++++++++++++++++ webui/dist/assets/index-CcCiBqqZ.js | 157 ------------------ ...{index-7uxip_BT.css => index-_P1Qkw5e.css} | 2 +- webui/dist/index.html | 4 +- 4 files changed, 160 insertions(+), 160 deletions(-) create mode 100644 webui/dist/assets/index-3Oy1uh5z.js delete mode 100644 webui/dist/assets/index-CcCiBqqZ.js rename webui/dist/assets/{index-7uxip_BT.css => index-_P1Qkw5e.css} (83%) diff --git a/webui/dist/assets/index-3Oy1uh5z.js b/webui/dist/assets/index-3Oy1uh5z.js new file mode 100644 index 00000000..79feb3a2 --- /dev/null +++ b/webui/dist/assets/index-3Oy1uh5z.js @@ -0,0 +1,157 @@ +function QV(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var Op=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var T0={exports:{}},Kd={};var Kk;function JV(){if(Kk)return Kd;Kk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var l=null;if(s!==void 0&&(l=""+s),a.key!==void 0&&(l=""+a.key),"key"in a){s={};for(var u in a)u!=="key"&&(s[u]=a[u])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:s}}return Kd.Fragment=t,Kd.jsx=n,Kd.jsxs=n,Kd}var Xk;function eG(){return Xk||(Xk=1,T0.exports=JV()),T0.exports}var i=eG(),k0={exports:{}},Qe={};var Zk;function tG(){if(Zk)return Qe;Zk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(F){return F===null||typeof F!="object"?null:(F=g&&F[g]||F["@@iterator"],typeof F=="function"?F:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function N(F,z,K){this.props=F,this.context=z,this.refs=b,this.updater=K||j}N.prototype.isReactComponent={},N.prototype.setState=function(F,z){if(typeof F!="object"&&typeof F!="function"&&F!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,F,z,"setState")},N.prototype.forceUpdate=function(F){this.updater.enqueueForceUpdate(this,F,"forceUpdate")};function E(){}E.prototype=N.prototype;function O(F,z,K){this.props=F,this.context=z,this.refs=b,this.updater=K||j}var A=O.prototype=new E;A.constructor=O,w(A,N.prototype),A.isPureReactComponent=!0;var C=Array.isArray;function k(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function R(F,z,K){var ie=K.ref;return{$$typeof:e,type:F,key:z,ref:ie!==void 0?ie:null,props:K}}function L(F,z){return R(F.type,z,F.props)}function D(F){return typeof F=="object"&&F!==null&&F.$$typeof===e}function U(F){var z={"=":"=0",":":"=2"};return"$"+F.replace(/[=:]/g,function(K){return z[K]})}var V=/\/+/g;function H(F,z){return typeof F=="object"&&F!==null&&F.key!=null?U(""+F.key):z.toString(36)}function G(F){switch(F.status){case"fulfilled":return F.value;case"rejected":throw F.reason;default:switch(typeof F.status=="string"?F.then(k,k):(F.status="pending",F.then(function(z){F.status==="pending"&&(F.status="fulfilled",F.value=z)},function(z){F.status==="pending"&&(F.status="rejected",F.reason=z)})),F.status){case"fulfilled":return F.value;case"rejected":throw F.reason}}throw F}function $(F,z,K,ie,Q){var he=typeof F;(he==="undefined"||he==="boolean")&&(F=null);var ae=!1;if(F===null)ae=!0;else switch(he){case"bigint":case"string":case"number":ae=!0;break;case"object":switch(F.$$typeof){case e:case t:ae=!0;break;case m:return ae=F._init,$(ae(F._payload),z,K,ie,Q)}}if(ae)return Q=Q(F),ae=ie===""?"."+H(F,0):ie,C(Q)?(K="",ae!=null&&(K=ae.replace(V,"$&/")+"/"),$(Q,z,K,"",function(pe){return pe})):Q!=null&&(D(Q)&&(Q=L(Q,K+(Q.key==null||F&&F.key===Q.key?"":(""+Q.key).replace(V,"$&/")+"/")+ae)),z.push(Q)),1;ae=0;var we=ie===""?".":ie+":";if(C(F))for(var Y=0;Y>>1,ee=$[Z];if(0>>1;Za(K,q))iea(Q,K)?($[Z]=Q,$[ie]=q,Z=ie):($[Z]=K,$[z]=q,Z=z);else if(iea(Q,q))$[Z]=Q,$[ie]=q,Z=ie;else break e}}return I}function a($,I){var q=$.sortIndex-I.sortIndex;return q!==0?q:$.id-I.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,w=!1,b=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function A($){for(var I=n(f);I!==null;){if(I.callback===null)r(f);else if(I.startTime<=$)r(f),I.sortIndex=I.expirationTime,t(d,I);else break;I=n(f)}}function C($){if(w=!1,A($),!j)if(n(d)!==null)j=!0,k||(k=!0,U());else{var I=n(f);I!==null&&G(C,I.startTime-$)}}var k=!1,T=-1,M=5,R=-1;function L(){return b?!0:!(e.unstable_now()-R$&&L());){var Z=p.callback;if(typeof Z=="function"){p.callback=null,g=p.priorityLevel;var ee=Z(p.expirationTime<=$);if($=e.unstable_now(),typeof ee=="function"){p.callback=ee,A($),I=!0;break t}p===n(d)&&r(d),A($)}else r(d);p=n(d)}if(p!==null)I=!0;else{var F=n(f);F!==null&&G(C,F.startTime-$),I=!1}}break e}finally{p=null,g=q,x=!1}I=void 0}}finally{I?U():k=!1}}}var U;if(typeof O=="function")U=function(){O(D)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,H=V.port2;V.port1.onmessage=D,U=function(){H.postMessage(null)}}else U=function(){N(D,0)};function G($,I){T=N(function(){$(e.unstable_now())},I)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):M=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_next=function($){switch(g){case 1:case 2:case 3:var I=3;break;default:I=g}var q=g;g=I;try{return $()}finally{g=q}},e.unstable_requestPaint=function(){b=!0},e.unstable_runWithPriority=function($,I){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var q=g;g=$;try{return I()}finally{g=q}},e.unstable_scheduleCallback=function($,I,q){var Z=e.unstable_now();switch(typeof q=="object"&&q!==null?(q=q.delay,q=typeof q=="number"&&0Z?($.sortIndex=q,t(f,$),n(d)===null&&$===n(f)&&(w?(E(T),T=-1):w=!0,G(C,q-Z))):($.sortIndex=ee,t(d,$),j||x||(j=!0,k||(k=!0,U()))),$},e.unstable_shouldYield=L,e.unstable_wrapCallback=function($){var I=g;return function(){var q=g;g=I;try{return $.apply(this,arguments)}finally{g=q}}}})(R0)),R0}var eM;function rG(){return eM||(eM=1,P0.exports=nG()),P0.exports}var D0={exports:{}},cr={};var tM;function aG(){if(tM)return cr;tM=1;var e=Ah();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),D0.exports=aG(),D0.exports}var rM;function iG(){if(rM)return Xd;rM=1;var e=rG(),t=Ah(),n=t5();function r(o){var c="https://react.dev/errors/"+o;if(1ee||(o.current=Z[ee],Z[ee]=null,ee--)}function K(o,c){ee++,Z[ee]=o.current,o.current=c}var ie=F(null),Q=F(null),he=F(null),ae=F(null);function we(o,c){switch(K(he,c),K(Q,o),K(ie,null),c.nodeType){case 9:case 11:o=(o=c.documentElement)&&(o=o.namespaceURI)?yk(o):0;break;default:if(o=c.tagName,c=c.namespaceURI)c=yk(c),o=xk(c,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}z(ie),K(ie,o)}function Y(){z(ie),z(Q),z(he)}function pe(o){o.memoizedState!==null&&K(ae,o);var c=ie.current,h=xk(c,o.type);c!==h&&(K(Q,o),K(ie,h))}function je(o){Q.current===o&&(z(ie),z(Q)),ae.current===o&&(z(ae),Wd._currentValue=q)}var X,Ae;function Oe(o){if(X===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);X=c&&c[1]||"",Ae=-1)":-1S||J[v]!==ce[S]){var ve=` +`+J[v].replace(" at new "," at ");return o.displayName&&ve.includes("")&&(ve=ve.replace("",o.displayName)),ve}while(1<=v&&0<=S);break}}}finally{We=!1,Error.prepareStackTrace=h}return(h=o?o.displayName||o.name:"")?Oe(h):""}function be(o,c){switch(o.tag){case 26:case 27:case 5:return Oe(o.type);case 16:return Oe("Lazy");case 13:return o.child!==c&&c!==null?Oe("Suspense Fallback"):Oe("Suspense");case 19:return Oe("SuspenseList");case 0:case 15:return Ve(o.type,!1);case 11:return Ve(o.type.render,!1);case 1:return Ve(o.type,!0);case 31:return Oe("Activity");default:return""}}function _e(o){try{var c="",h=null;do c+=be(o,h),h=o,o=o.return;while(o);return c}catch(v){return` +Error generating stack: `+v.message+` +`+v.stack}}var rt=Object.prototype.hasOwnProperty,fn=e.unstable_scheduleCallback,Tt=e.unstable_cancelCallback,zt=e.unstable_shouldYield,at=e.unstable_requestPaint,re=e.unstable_now,Se=e.unstable_getCurrentPriorityLevel,ut=e.unstable_ImmediatePriority,Or=e.unstable_UserBlockingPriority,bs=e.unstable_NormalPriority,mx=e.unstable_LowPriority,mm=e.unstable_IdlePriority,px=e.log,vx=e.unstable_setDisableYieldValue,jo=null,wr=null;function ei(o){if(typeof px=="function"&&vx(o),wr&&typeof wr.setStrictMode=="function")try{wr.setStrictMode(jo,o)}catch{}}var lr=Math.clz32?Math.clz32:Kt,gx=Math.log,ot=Math.LN2;function Kt(o){return o>>>=0,o===0?32:31-(gx(o)/ot|0)|0}var Ge=256,Et=262144,qn=4194304;function lt(o){var c=o&42;if(c!==0)return c;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function zl(o,c,h){var v=o.pendingLanes;if(v===0)return 0;var S=0,_=o.suspendedLanes,P=o.pingedLanes;o=o.warmLanes;var B=v&134217727;return B!==0?(v=B&~_,v!==0?S=lt(v):(P&=B,P!==0?S=lt(P):h||(h=B&~o,h!==0&&(S=lt(h))))):(B=v&~_,B!==0?S=lt(B):P!==0?S=lt(P):h||(h=v&~o,h!==0&&(S=lt(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function So(o,c){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&c)===0}function yx(o,c){switch(o){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bl(){var o=qn;return qn<<=1,(qn&62914560)===0&&(qn=4194304),o}function _o(o){for(var c=[],h=0;31>h;h++)c.push(o);return c}function id(o,c){o.pendingLanes|=c,c!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function BW(o,c,h,v,S,_){var P=o.pendingLanes;o.pendingLanes=h,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=h,o.entangledLanes&=h,o.errorRecoveryDisabledLanes&=h,o.shellSuspendCounter=0;var B=o.entanglements,J=o.expirationTimes,ce=o.hiddenUpdates;for(h=P&~h;0"u")return null;try{return o.activeElement||o.body}catch{return o.body}}var VW=/[\n"\\]/g;function ha(o){return o.replace(VW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function _x(o,c,h,v,S,_,P,B){o.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?o.type=P:o.removeAttribute("type"),c!=null?P==="number"?(c===0&&o.value===""||o.value!=c)&&(o.value=""+fa(c)):o.value!==""+fa(c)&&(o.value=""+fa(c)):P!=="submit"&&P!=="reset"||o.removeAttribute("value"),c!=null?Nx(o,P,fa(c)):h!=null?Nx(o,P,fa(h)):v!=null&&o.removeAttribute("value"),S==null&&_!=null&&(o.defaultChecked=!!_),S!=null&&(o.checked=S&&typeof S!="function"&&typeof S!="symbol"),B!=null&&typeof B!="function"&&typeof B!="symbol"&&typeof B!="boolean"?o.name=""+fa(B):o.removeAttribute("name")}function f2(o,c,h,v,S,_,P,B){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(o.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){Sx(o);return}h=h!=null?""+fa(h):"",c=c!=null?""+fa(c):h,B||c===o.value||(o.value=c),o.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,o.checked=B?o.checked:!!v,o.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(o.name=P),Sx(o)}function Nx(o,c,h){c==="number"&&gm(o.ownerDocument)===o||o.defaultValue===""+h||(o.defaultValue=""+h)}function Vl(o,c,h,v){if(o=o.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Tx=!1;if(ki)try{var cd={};Object.defineProperty(cd,"passive",{get:function(){Tx=!0}}),window.addEventListener("test",cd,cd),window.removeEventListener("test",cd,cd)}catch{Tx=!1}var js=null,kx=null,xm=null;function x2(){if(xm)return xm;var o,c=kx,h=c.length,v,S="value"in js?js.value:js.textContent,_=S.length;for(o=0;o=fd),N2=" ",C2=!1;function O2(o,c){switch(o){case"keyup":return b7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function E2(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Xl=!1;function j7(o,c){switch(o){case"compositionend":return E2(c);case"keypress":return c.which!==32?null:(C2=!0,N2);case"textInput":return o=c.data,o===N2&&C2?null:o;default:return null}}function S7(o,c){if(Xl)return o==="compositionend"||!$x&&O2(o,c)?(o=x2(),xm=kx=js=null,Xl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-o};o=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=$2(h)}}function L2(o,c){return o&&c?o===c?!0:o&&o.nodeType===3?!1:c&&c.nodeType===3?L2(o,c.parentNode):"contains"in o?o.contains(c):o.compareDocumentPosition?!!(o.compareDocumentPosition(c)&16):!1:!1}function z2(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var c=gm(o.document);c instanceof o.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)o=c.contentWindow;else break;c=gm(o.document)}return c}function zx(o){var c=o&&o.nodeName&&o.nodeName.toLowerCase();return c&&(c==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||c==="textarea"||o.contentEditable==="true")}var k7=ki&&"documentMode"in document&&11>=document.documentMode,Zl=null,Bx=null,vd=null,qx=!1;function B2(o,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;qx||Zl==null||Zl!==gm(v)||(v=Zl,"selectionStart"in v&&zx(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),vd&&pd(vd,v)||(vd=v,v=fp(Bx,"onSelect"),0>=P,S-=P,ti=1<<32-lr(c)+S|h<it?(pt=Ie,Ie=null):pt=Ie.sibling;var jt=de(se,Ie,le[it],ye);if(jt===null){Ie===null&&(Ie=pt);break}o&&Ie&&jt.alternate===null&&c(se,Ie),te=_(jt,te,it),wt===null?ze=jt:wt.sibling=jt,wt=jt,Ie=pt}if(it===le.length)return h(se,Ie),vt&&Pi(se,it),ze;if(Ie===null){for(;itit?(pt=Ie,Ie=null):pt=Ie.sibling;var Hs=de(se,Ie,jt.value,ye);if(Hs===null){Ie===null&&(Ie=pt);break}o&&Ie&&Hs.alternate===null&&c(se,Ie),te=_(Hs,te,it),wt===null?ze=Hs:wt.sibling=Hs,wt=Hs,Ie=pt}if(jt.done)return h(se,Ie),vt&&Pi(se,it),ze;if(Ie===null){for(;!jt.done;it++,jt=le.next())jt=xe(se,jt.value,ye),jt!==null&&(te=_(jt,te,it),wt===null?ze=jt:wt.sibling=jt,wt=jt);return vt&&Pi(se,it),ze}for(Ie=v(Ie);!jt.done;it++,jt=le.next())jt=me(Ie,se,it,jt.value,ye),jt!==null&&(o&&jt.alternate!==null&&Ie.delete(jt.key===null?it:jt.key),te=_(jt,te,it),wt===null?ze=jt:wt.sibling=jt,wt=jt);return o&&Ie.forEach(function(ZV){return c(se,ZV)}),vt&&Pi(se,it),ze}function Ft(se,te,le,ye){if(typeof le=="object"&&le!==null&&le.type===w&&le.key===null&&(le=le.props.children),typeof le=="object"&&le!==null){switch(le.$$typeof){case x:e:{for(var ze=le.key;te!==null;){if(te.key===ze){if(ze=le.type,ze===w){if(te.tag===7){h(se,te.sibling),ye=S(te,le.props.children),ye.return=se,se=ye;break e}}else if(te.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===M&&Do(ze)===te.type){h(se,te.sibling),ye=S(te,le.props),jd(ye,le),ye.return=se,se=ye;break e}h(se,te);break}else c(se,te);te=te.sibling}le.type===w?(ye=To(le.props.children,se.mode,ye,le.key),ye.return=se,se=ye):(ye=Am(le.type,le.key,le.props,null,se.mode,ye),jd(ye,le),ye.return=se,se=ye)}return P(se);case j:e:{for(ze=le.key;te!==null;){if(te.key===ze)if(te.tag===4&&te.stateNode.containerInfo===le.containerInfo&&te.stateNode.implementation===le.implementation){h(se,te.sibling),ye=S(te,le.children||[]),ye.return=se,se=ye;break e}else{h(se,te);break}else c(se,te);te=te.sibling}ye=Yx(le,se.mode,ye),ye.return=se,se=ye}return P(se);case M:return le=Do(le),Ft(se,te,le,ye)}if(G(le))return Pe(se,te,le,ye);if(U(le)){if(ze=U(le),typeof ze!="function")throw Error(r(150));return le=ze.call(le),Fe(se,te,le,ye)}if(typeof le.then=="function")return Ft(se,te,$m(le),ye);if(le.$$typeof===O)return Ft(se,te,Mm(se,le),ye);Im(se,le)}return typeof le=="string"&&le!==""||typeof le=="number"||typeof le=="bigint"?(le=""+le,te!==null&&te.tag===6?(h(se,te.sibling),ye=S(te,le),ye.return=se,se=ye):(h(se,te),ye=Gx(le,se.mode,ye),ye.return=se,se=ye),P(se)):h(se,te)}return function(se,te,le,ye){try{wd=0;var ze=Ft(se,te,le,ye);return lc=null,ze}catch(Ie){if(Ie===oc||Ie===Rm)throw Ie;var wt=Vr(29,Ie,null,se.mode);return wt.lanes=ye,wt.return=se,wt}finally{}}}var Io=cA(!0),uA=cA(!1),Os=!1;function sb(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ob(o,c){o=o.updateQueue,c.updateQueue===o&&(c.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function Es(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function As(o,c,h){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(At&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=Em(o),G2(o,null,h),c}return Om(o,v,c,h),Em(o)}function Sd(o,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,t2(o,h)}}function lb(o,c){var h=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},o.updateQueue=h;return}o=h.lastBaseUpdate,o===null?h.firstBaseUpdate=c:o.next=c,h.lastBaseUpdate=c}var cb=!1;function _d(){if(cb){var o=sc;if(o!==null)throw o}}function Nd(o,c,h,v){cb=!1;var S=o.updateQueue;Os=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,B=S.shared.pending;if(B!==null){S.shared.pending=null;var J=B,ce=J.next;J.next=null,P===null?_=ce:P.next=ce,P=J;var ve=o.alternate;ve!==null&&(ve=ve.updateQueue,B=ve.lastBaseUpdate,B!==P&&(B===null?ve.firstBaseUpdate=ce:B.next=ce,ve.lastBaseUpdate=J))}if(_!==null){var xe=S.baseState;P=0,ve=ce=J=null,B=_;do{var de=B.lane&-536870913,me=de!==B.lane;if(me?(mt&de)===de:(v&de)===de){de!==0&&de===ic&&(cb=!0),ve!==null&&(ve=ve.next={lane:0,tag:B.tag,payload:B.payload,callback:null,next:null});e:{var Pe=o,Fe=B;de=c;var Ft=h;switch(Fe.tag){case 1:if(Pe=Fe.payload,typeof Pe=="function"){xe=Pe.call(Ft,xe,de);break e}xe=Pe;break e;case 3:Pe.flags=Pe.flags&-65537|128;case 0:if(Pe=Fe.payload,de=typeof Pe=="function"?Pe.call(Ft,xe,de):Pe,de==null)break e;xe=p({},xe,de);break e;case 2:Os=!0}}de=B.callback,de!==null&&(o.flags|=64,me&&(o.flags|=8192),me=S.callbacks,me===null?S.callbacks=[de]:me.push(de))}else me={lane:de,tag:B.tag,payload:B.payload,callback:B.callback,next:null},ve===null?(ce=ve=me,J=xe):ve=ve.next=me,P|=de;if(B=B.next,B===null){if(B=S.shared.pending,B===null)break;me=B,B=me.next,me.next=null,S.lastBaseUpdate=me,S.shared.pending=null}}while(!0);ve===null&&(J=xe),S.baseState=J,S.firstBaseUpdate=ce,S.lastBaseUpdate=ve,_===null&&(S.shared.lanes=0),Rs|=P,o.lanes=P,o.memoizedState=xe}}function dA(o,c){if(typeof o!="function")throw Error(r(191,o));o.call(c)}function fA(o,c){var h=o.callbacks;if(h!==null)for(o.callbacks=null,o=0;o_?_:8;var P=$.T,B={};$.T=B,Eb(o,!1,c,h);try{var J=S(),ce=$.S;if(ce!==null&&ce(B,J),J!==null&&typeof J=="object"&&typeof J.then=="function"){var ve=B7(J,v);Ed(o,c,ve,Zr(o))}else Ed(o,c,v,Zr(o))}catch(xe){Ed(o,c,{then:function(){},status:"rejected",reason:xe},Zr())}finally{I.p=_,P!==null&&B.types!==null&&(P.types=B.types),$.T=P}}function V7(){}function Cb(o,c,h,v){if(o.tag!==5)throw Error(r(476));var S=HA(o).queue;UA(o,S,c,q,h===null?V7:function(){return WA(o),h(v)})}function HA(o){var c=o.memoizedState;if(c!==null)return c;c={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ii,lastRenderedState:q},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ii,lastRenderedState:h},next:null},o.memoizedState=c,o=o.alternate,o!==null&&(o.memoizedState=c),c}function WA(o){var c=HA(o);c.next===null&&(c=o.alternate.memoizedState),Ed(o,c.next.queue,{},Zr())}function Ob(){return tr(Wd)}function VA(){return _n().memoizedState}function GA(){return _n().memoizedState}function G7(o){for(var c=o.return;c!==null;){switch(c.tag){case 24:case 3:var h=Zr();o=Es(h);var v=As(c,o,h);v!==null&&(Rr(v,c,h),Sd(v,c,h)),c={cache:nb()},o.payload=c;return}c=c.return}}function Y7(o,c,h){var v=Zr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Gm(o)?KA(c,h):(h=Wx(o,c,h,v),h!==null&&(Rr(h,o,v),XA(h,c,v)))}function YA(o,c,h){var v=Zr();Ed(o,c,h,v)}function Ed(o,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(Gm(o))KA(c,S);else{var _=o.alternate;if(o.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,B=_(P,h);if(S.hasEagerState=!0,S.eagerState=B,Wr(B,P))return Om(o,c,S,0),Vt===null&&Cm(),!1}catch{}finally{}if(h=Wx(o,c,S,v),h!==null)return Rr(h,o,v),XA(h,c,v),!0}return!1}function Eb(o,c,h,v){if(v={lane:2,revertLane:s0(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},Gm(o)){if(c)throw Error(r(479))}else c=Wx(o,h,v,2),c!==null&&Rr(c,o,2)}function Gm(o){var c=o.alternate;return o===tt||c!==null&&c===tt}function KA(o,c){uc=Bm=!0;var h=o.pending;h===null?c.next=c:(c.next=h.next,h.next=c),o.pending=c}function XA(o,c,h){if((h&4194048)!==0){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,t2(o,h)}}var Ad={readContext:tr,use:Um,useCallback:bn,useContext:bn,useEffect:bn,useImperativeHandle:bn,useLayoutEffect:bn,useInsertionEffect:bn,useMemo:bn,useReducer:bn,useRef:bn,useState:bn,useDebugValue:bn,useDeferredValue:bn,useTransition:bn,useSyncExternalStore:bn,useId:bn,useHostTransitionStatus:bn,useFormState:bn,useActionState:bn,useOptimistic:bn,useMemoCache:bn,useCacheRefresh:bn};Ad.useEffectEvent=bn;var ZA={readContext:tr,use:Um,useCallback:function(o,c){return jr().memoizedState=[o,c===void 0?null:c],o},useContext:tr,useEffect:RA,useImperativeHandle:function(o,c,h){h=h!=null?h.concat([o]):null,Wm(4194308,4,LA.bind(null,c,o),h)},useLayoutEffect:function(o,c){return Wm(4194308,4,o,c)},useInsertionEffect:function(o,c){Wm(4,2,o,c)},useMemo:function(o,c){var h=jr();c=c===void 0?null:c;var v=o();if(Lo){ei(!0);try{o()}finally{ei(!1)}}return h.memoizedState=[v,c],v},useReducer:function(o,c,h){var v=jr();if(h!==void 0){var S=h(c);if(Lo){ei(!0);try{h(c)}finally{ei(!1)}}}else S=c;return v.memoizedState=v.baseState=S,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:S},v.queue=o,o=o.dispatch=Y7.bind(null,tt,o),[v.memoizedState,o]},useRef:function(o){var c=jr();return o={current:o},c.memoizedState=o},useState:function(o){o=wb(o);var c=o.queue,h=YA.bind(null,tt,c);return c.dispatch=h,[o.memoizedState,h]},useDebugValue:_b,useDeferredValue:function(o,c){var h=jr();return Nb(h,o,c)},useTransition:function(){var o=wb(!1);return o=UA.bind(null,tt,o.queue,!0,!1),jr().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,c,h){var v=tt,S=jr();if(vt){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Vt===null)throw Error(r(349));(mt&127)!==0||yA(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,RA(bA.bind(null,v,_,o),[o]),v.flags|=2048,fc(9,{destroy:void 0},xA.bind(null,v,_,h,c),null),h},useId:function(){var o=jr(),c=Vt.identifierPrefix;if(vt){var h=ni,v=ti;h=(v&~(1<<32-lr(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=qm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Jn]=c,_[Er]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(rr(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&zi(c)}}return cn(c),Fb(c,c.type,o===null?null:o.memoizedProps,c.pendingProps,h),null;case 6:if(o&&c.stateNode!=null)o.memoizedProps!==v&&zi(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(o=he.current,rc(c)){if(o=c.stateNode,h=c.memoizedProps,v=null,S=er,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}o[Jn]=c,o=!!(o.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||vk(o.nodeValue,h)),o||Ns(c,!0)}else o=hp(o).createTextNode(v),o[Jn]=c,c.stateNode=o}return cn(c),null;case 31:if(h=c.memoizedState,o===null||o.memoizedState!==null){if(v=rc(c),h!==null){if(o===null){if(!v)throw Error(r(318));if(o=c.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));o[Jn]=c}else ko(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;cn(c),o=!1}else h=Qx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=h),o=!0;if(!o)return c.flags&256?(Yr(c),c):(Yr(c),null);if((c.flags&128)!==0)throw Error(r(558))}return cn(c),null;case 13:if(v=c.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(S=rc(c),v!==null&&v.dehydrated!==null){if(o===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Jn]=c}else ko(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;cn(c),S=!1}else S=Qx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Yr(c),c):(Yr(c),null)}return Yr(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,o=o!==null&&o.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==o&&h&&(c.child.flags|=8192),Qm(c,c.updateQueue),cn(c),null);case 4:return Y(),o===null&&u0(c.stateNode.containerInfo),cn(c),null;case 10:return Di(c.type),cn(c),null;case 19:if(z(Sn),v=c.memoizedState,v===null)return cn(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)kd(v,!1);else{if(wn!==0||o!==null&&(o.flags&128)!==0)for(o=c.child;o!==null;){if(_=zm(o),_!==null){for(c.flags|=128,kd(v,!1),o=_.updateQueue,c.updateQueue=o,Qm(c,o),c.subtreeFlags=0,o=h,h=c.child;h!==null;)Y2(h,o),h=h.sibling;return K(Sn,Sn.current&1|2),vt&&Pi(c,v.treeForkCount),c.child}o=o.sibling}v.tail!==null&&re()>rp&&(c.flags|=128,S=!0,kd(v,!1),c.lanes=4194304)}else{if(!S)if(o=zm(_),o!==null){if(c.flags|=128,S=!0,o=o.updateQueue,c.updateQueue=o,Qm(c,o),kd(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!vt)return cn(c),null}else 2*re()-v.renderingStartTime>rp&&h!==536870912&&(c.flags|=128,S=!0,kd(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(o=v.last,o!==null?o.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=re(),o.sibling=null,h=Sn.current,K(Sn,S?h&1|2:h&1),vt&&Pi(c,v.treeForkCount),o):(cn(c),null);case 22:case 23:return Yr(c),db(),v=c.memoizedState!==null,o!==null?o.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(cn(c),c.subtreeFlags&6&&(c.flags|=8192)):cn(c),h=c.updateQueue,h!==null&&Qm(c,h.retryQueue),h=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),o!==null&&z(Ro),null;case 24:return h=null,o!==null&&(h=o.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Di(Nn),cn(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function J7(o,c){switch(Xx(c),c.tag){case 1:return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 3:return Di(Nn),Y(),o=c.flags,(o&65536)!==0&&(o&128)===0?(c.flags=o&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Yr(c),c.alternate===null)throw Error(r(340));ko()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 13:if(Yr(c),o=c.memoizedState,o!==null&&o.dehydrated!==null){if(c.alternate===null)throw Error(r(340));ko()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 19:return z(Sn),null;case 4:return Y(),null;case 10:return Di(c.type),null;case 22:case 23:return Yr(c),db(),o!==null&&z(Ro),o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 24:return Di(Nn),null;case 25:return null;default:return null}}function wT(o,c){switch(Xx(c),c.tag){case 3:Di(Nn),Y();break;case 26:case 27:case 5:je(c);break;case 4:Y();break;case 31:c.memoizedState!==null&&Yr(c);break;case 13:Yr(c);break;case 19:z(Sn);break;case 10:Di(c.type);break;case 22:case 23:Yr(c),db(),o!==null&&z(Ro);break;case 24:Di(Nn)}}function Md(o,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&o)===o){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(B){$t(c,c.return,B)}}function Ms(o,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&o)===o){var P=v.inst,B=P.destroy;if(B!==void 0){P.destroy=void 0,S=c;var J=h,ce=B;try{ce()}catch(ve){$t(S,J,ve)}}}v=v.next}while(v!==_)}}catch(ve){$t(c,c.return,ve)}}function jT(o){var c=o.updateQueue;if(c!==null){var h=o.stateNode;try{fA(c,h)}catch(v){$t(o,o.return,v)}}}function ST(o,c,h){h.props=zo(o.type,o.memoizedProps),h.state=o.memoizedState;try{h.componentWillUnmount()}catch(v){$t(o,c,v)}}function Pd(o,c){try{var h=o.ref;if(h!==null){switch(o.tag){case 26:case 27:case 5:var v=o.stateNode;break;case 30:v=o.stateNode;break;default:v=o.stateNode}typeof h=="function"?o.refCleanup=h(v):h.current=v}}catch(S){$t(o,c,S)}}function ri(o,c){var h=o.ref,v=o.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){$t(o,c,S)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){$t(o,c,S)}else h.current=null}function _T(o){var c=o.type,h=o.memoizedProps,v=o.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){$t(o,o.return,S)}}function Ub(o,c,h){try{var v=o.stateNode;wV(v,o.type,h,c),v[Er]=c}catch(S){$t(o,o.return,S)}}function NT(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&zs(o.type)||o.tag===4}function Hb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||NT(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&zs(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Wb(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(o,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(o),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ti));else if(v!==4&&(v===27&&zs(o.type)&&(h=o.stateNode,c=null),o=o.child,o!==null))for(Wb(o,c,h),o=o.sibling;o!==null;)Wb(o,c,h),o=o.sibling}function Jm(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?h.insertBefore(o,c):h.appendChild(o);else if(v!==4&&(v===27&&zs(o.type)&&(h=o.stateNode),o=o.child,o!==null))for(Jm(o,c,h),o=o.sibling;o!==null;)Jm(o,c,h),o=o.sibling}function CT(o){var c=o.stateNode,h=o.memoizedProps;try{for(var v=o.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);rr(c,v,h),c[Jn]=o,c[Er]=h}catch(_){$t(o,o.return,_)}}var Bi=!1,En=!1,Vb=!1,OT=typeof WeakSet=="function"?WeakSet:Set,Un=null;function eV(o,c){if(o=o.containerInfo,h0=bp,o=z2(o),zx(o)){if("selectionStart"in o)var h={start:o.selectionStart,end:o.selectionEnd};else e:{h=(h=o.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,B=-1,J=-1,ce=0,ve=0,xe=o,de=null;t:for(;;){for(var me;xe!==h||S!==0&&xe.nodeType!==3||(B=P+S),xe!==_||v!==0&&xe.nodeType!==3||(J=P+v),xe.nodeType===3&&(P+=xe.nodeValue.length),(me=xe.firstChild)!==null;)de=xe,xe=me;for(;;){if(xe===o)break t;if(de===h&&++ce===S&&(B=P),de===_&&++ve===v&&(J=P),(me=xe.nextSibling)!==null)break;xe=de,de=xe.parentNode}xe=me}h=B===-1||J===-1?null:{start:B,end:J}}else h=null}h=h||{start:0,end:0}}else h=null;for(m0={focusedElem:o,selectionRange:h},bp=!1,Un=c;Un!==null;)if(c=Un,o=c.child,(c.subtreeFlags&1028)!==0&&o!==null)o.return=c,Un=o;else for(;Un!==null;){switch(c=Un,_=c.alternate,o=c.flags,c.tag){case 0:if((o&4)!==0&&(o=c.updateQueue,o=o!==null?o.events:null,o!==null))for(h=0;h title"))),rr(_,v,h),_[Jn]=o,Fn(_),v=_;break e;case"link":var P=Pk("link","href",S).get(v+(h.href||""));if(P){for(var B=0;BFt&&(P=Ft,Ft=Fe,Fe=P);var se=I2(B,Fe),te=I2(B,Ft);if(se&&te&&(me.rangeCount!==1||me.anchorNode!==se.node||me.anchorOffset!==se.offset||me.focusNode!==te.node||me.focusOffset!==te.offset)){var le=xe.createRange();le.setStart(se.node,se.offset),me.removeAllRanges(),Fe>Ft?(me.addRange(le),me.extend(te.node,te.offset)):(le.setEnd(te.node,te.offset),me.addRange(le))}}}}for(xe=[],me=B;me=me.parentNode;)me.nodeType===1&&xe.push({element:me,left:me.scrollLeft,top:me.scrollTop});for(typeof B.focus=="function"&&B.focus(),B=0;Bh?32:h,$.T=null,h=Jb,Jb=null;var _=$s,P=Wi;if(Pn=0,gc=$s=null,Wi=0,(At&6)!==0)throw Error(r(331));var B=At;if(At|=4,LT(_.current),DT(_,_.current,P,h),At=B,zd(0,!1),wr&&typeof wr.onPostCommitFiberRoot=="function")try{wr.onPostCommitFiberRoot(jo,_)}catch{}return!0}finally{I.p=S,$.T=v,nk(o,c)}}function ak(o,c,h){c=pa(h,c),c=Mb(o.stateNode,c,2),o=As(o,c,2),o!==null&&(id(o,2),ai(o))}function $t(o,c,h){if(o.tag===3)ak(o,o,h);else for(;c!==null;){if(c.tag===3){ak(c,o,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(Ds===null||!Ds.has(v))){o=pa(h,o),h=iT(2),v=As(c,h,2),v!==null&&(sT(h,v,c,o),id(v,2),ai(v));break}}c=c.return}}function r0(o,c,h){var v=o.pingCache;if(v===null){v=o.pingCache=new rV;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Kb=!0,S.add(h),o=lV.bind(null,o,c,h),c.then(o,o))}function lV(o,c,h){var v=o.pingCache;v!==null&&v.delete(c),o.pingedLanes|=o.suspendedLanes&h,o.warmLanes&=~h,Vt===o&&(mt&h)===h&&(wn===4||wn===3&&(mt&62914560)===mt&&300>re()-np?(At&2)===0&&yc(o,0):Xb|=h,vc===mt&&(vc=0)),ai(o)}function ik(o,c){c===0&&(c=Bl()),o=Ao(o,c),o!==null&&(id(o,c),ai(o))}function cV(o){var c=o.memoizedState,h=0;c!==null&&(h=c.retryLane),ik(o,h)}function uV(o,c){var h=0;switch(o.tag){case 31:case 13:var v=o.stateNode,S=o.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=o.stateNode;break;case 22:v=o.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),ik(o,h)}function dV(o,c){return fn(o,c)}var cp=null,bc=null,a0=!1,up=!1,i0=!1,Ls=0;function ai(o){o!==bc&&o.next===null&&(bc===null?cp=bc=o:bc=bc.next=o),up=!0,a0||(a0=!0,hV())}function zd(o,c){if(!i0&&up){i0=!0;do for(var h=!1,v=cp;v!==null;){if(o!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,B=v.pingedLanes;_=(1<<31-lr(42|o)+1)-1,_&=S&~(P&~B),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,ck(v,_))}else _=mt,_=zl(v,v===Vt?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||So(v,_)||(h=!0,ck(v,_));v=v.next}while(h);i0=!1}}function fV(){sk()}function sk(){up=a0=!1;var o=0;Ls!==0&&SV()&&(o=Ls);for(var c=re(),h=null,v=cp;v!==null;){var S=v.next,_=ok(v,c);_===0?(v.next=null,h===null?cp=S:h.next=S,S===null&&(bc=h)):(h=v,(o!==0||(_&3)!==0)&&(up=!0)),v=S}Pn!==0&&Pn!==5||zd(o),Ls!==0&&(Ls=0)}function ok(o,c){for(var h=o.suspendedLanes,v=o.pingedLanes,S=o.expirationTimes,_=o.pendingLanes&-62914561;0<_;){var P=31-lr(_),B=1<B)break;var ve=J.transferSize,xe=J.initiatorType;ve&&gk(xe)&&(J=J.responseEnd,P+=ve*(J"u"?null:document;function Ak(o,c,h){var v=wc;if(v&&typeof c=="string"&&c){var S=ha(c);S='link[rel="'+o+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),Ek.has(S)||(Ek.add(S),o={rel:o,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function MV(o){Vi.D(o),Ak("dns-prefetch",o,null)}function PV(o,c){Vi.C(o,c),Ak("preconnect",o,c)}function RV(o,c,h){Vi.L(o,c,h);var v=wc;if(v&&o&&c){var S='link[rel="preload"][as="'+ha(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+ha(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+ha(h.imageSizes)+'"]')):S+='[href="'+ha(o)+'"]';var _=S;switch(c){case"style":_=jc(o);break;case"script":_=Sc(o)}wa.has(_)||(o=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:o,as:c},h),wa.set(_,o),v.querySelector(S)!==null||c==="style"&&v.querySelector(Ud(_))||c==="script"&&v.querySelector(Hd(_))||(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function DV(o,c){Vi.m(o,c);var h=wc;if(h&&o){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+ha(v)+'"][href="'+ha(o)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=Sc(o)}if(!wa.has(_)&&(o=p({rel:"modulepreload",href:o},c),wa.set(_,o),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(Hd(_)))return}v=h.createElement("link"),rr(v,"link",o),Fn(v),h.head.appendChild(v)}}}function $V(o,c,h){Vi.S(o,c,h);var v=wc;if(v&&o){var S=Hl(v).hoistableStyles,_=jc(o);c=c||"default";var P=S.get(_);if(!P){var B={loading:0,preload:null};if(P=v.querySelector(Ud(_)))B.loading=5;else{o=p({rel:"stylesheet",href:o,"data-precedence":c},h),(h=wa.get(_))&&w0(o,h);var J=P=v.createElement("link");Fn(J),rr(J,"link",o),J._p=new Promise(function(ce,ve){J.onload=ce,J.onerror=ve}),J.addEventListener("load",function(){B.loading|=1}),J.addEventListener("error",function(){B.loading|=2}),B.loading|=4,pp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:B},S.set(_,P)}}}function IV(o,c){Vi.X(o,c);var h=wc;if(h&&o){var v=Hl(h).hoistableScripts,S=Sc(o),_=v.get(S);_||(_=h.querySelector(Hd(S)),_||(o=p({src:o,async:!0},c),(c=wa.get(S))&&j0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function LV(o,c){Vi.M(o,c);var h=wc;if(h&&o){var v=Hl(h).hoistableScripts,S=Sc(o),_=v.get(S);_||(_=h.querySelector(Hd(S)),_||(o=p({src:o,async:!0,type:"module"},c),(c=wa.get(S))&&j0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function Tk(o,c,h,v){var S=(S=he.current)?mp(S):null;if(!S)throw Error(r(446));switch(o){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=jc(h.href),h=Hl(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){o=jc(h.href);var _=Hl(S).hoistableStyles,P=_.get(o);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(o,P),(_=S.querySelector(Ud(o)))&&!_._p&&(P.instance=_,P.state.loading=5),wa.has(o)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},wa.set(o,h),_||zV(S,o,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=Sc(h),h=Hl(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,o))}}function jc(o){return'href="'+ha(o)+'"'}function Ud(o){return'link[rel="stylesheet"]['+o+"]"}function kk(o){return p({},o,{"data-precedence":o.precedence,precedence:null})}function zV(o,c,h,v){o.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=o.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),rr(c,"link",h),Fn(c),o.head.appendChild(c))}function Sc(o){return'[src="'+ha(o)+'"]'}function Hd(o){return"script[async]"+o}function Mk(o,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=o.querySelector('style[data-href~="'+ha(h.href)+'"]');if(v)return c.instance=v,Fn(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(o.ownerDocument||o).createElement("style"),Fn(v),rr(v,"style",S),pp(v,h.precedence,o),c.instance=v;case"stylesheet":S=jc(h.href);var _=o.querySelector(Ud(S));if(_)return c.state.loading|=4,c.instance=_,Fn(_),_;v=kk(h),(S=wa.get(S))&&w0(v,S),_=(o.ownerDocument||o).createElement("link"),Fn(_);var P=_;return P._p=new Promise(function(B,J){P.onload=B,P.onerror=J}),rr(_,"link",v),c.state.loading|=4,pp(_,h.precedence,o),c.instance=_;case"script":return _=Sc(h.src),(S=o.querySelector(Hd(_)))?(c.instance=S,Fn(S),S):(v=h,(S=wa.get(_))&&(v=p({},h),j0(v,S)),o=o.ownerDocument||o,S=o.createElement("script"),Fn(S),rr(S,"link",v),o.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,pp(v,h.precedence,o));return c.instance}function pp(o,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function BV(o,c,h){if(h===1||c.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return o=c.disabled,typeof c.precedence=="string"&&o==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Dk(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function qV(o,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=jc(v.href),_=c.querySelector(Ud(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(o.count++,o=gp.bind(o),c.then(o,o)),h.state.loading|=4,h.instance=_,Fn(_);return}_=c.ownerDocument||c,v=kk(v),(S=wa.get(S))&&w0(v,S),_=_.createElement("link"),Fn(_);var P=_;P._p=new Promise(function(B,J){P.onload=B,P.onerror=J}),rr(_,"link",v),h.instance=_}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(o.count++,h=gp.bind(o),c.addEventListener("load",h),c.addEventListener("error",h))}}var S0=0;function FV(o,c){return o.stylesheets&&o.count===0&&xp(o,o.stylesheets),0S0?50:800)+c);return o.unsuspend=h,function(){o.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function gp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)xp(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var yp=null;function xp(o,c){o.stylesheets=null,o.unsuspend!==null&&(o.count++,yp=new Map,c.forEach(UV,o),yp=null,gp.call(o))}function UV(o,c){if(!(c.state.loading&4)){var h=yp.get(o);if(h)var v=h.get(null);else{h=new Map,yp.set(o,h);for(var S=o.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),M0.exports=iG(),M0.exports}var oG=sG();const x_=new WeakMap,lG=new WeakMap,yv={current:[]};let $0=!1,Sf=0;const mf=new Set,Ep=new Map;function n5(e){for(const t of e){if(yv.current.includes(t))continue;yv.current.push(t),t.recompute();const n=lG.get(t);if(n)for(const r of n){const a=x_.get(r);a?.length&&n5(a)}}}function cG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function uG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function r5(e){if(Sf>0&&!Ep.has(e)&&Ep.set(e,e.prevState),mf.add(e),!(Sf>0)&&!$0)try{for($0=!0;mf.size>0;){const t=Array.from(mf);mf.clear();for(const n of t){const r=Ep.get(n)??n.prevState;n.prevState=r,cG(n)}for(const n of t){const r=x_.get(n);r&&(yv.current.push(n),n5(r))}for(const n of t){const r=x_.get(n);if(r)for(const a of r)uG(a)}}}finally{$0=!1,yv.current=[],Ep.clear()}}function _f(e){Sf++;try{e()}finally{if(Sf--,Sf===0){const t=mf.values().next().value;t&&r5(t)}}}function dG(e){return typeof e=="function"}class fG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,s;this.listeners.add(r);const l=(s=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:s.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):dG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),r5(this)}}const Js="__TSR_index",iM="popstate",sM="beforeunload";function hG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},s=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=xv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Js];u=oM(f+1,u),s({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Js];u=oM(f,u),s({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{s({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{s({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{s({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Js]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function oM(e,t){t||(t={});const n=kC();return{...t,key:n,__TSR_key:n,[Js]:e}}function mG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const s=()=>a,l=M=>a=M,u=(M=>M),d=(()=>xv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=kC();t.history.replaceState({[Js]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const w=()=>f;let b,N;const E=()=>{b&&(T._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),T._ignoreSubscribers=!1,b=void 0,N=void 0,m=void 0)},O=(M,R,L)=>{const D=u(R);N||(m=f),f=xv(R,L),b={href:D,state:L,isPush:b?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>E()))},A=M=>{f=d(),T.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),R=M.state[Js]-f.state[Js],L=R===1,D=R===-1,U=!L&&!D||p;p=!1;const V=U?"GO":D?"BACK":"FORWARD",H=U?{type:"GO",index:R}:{type:D?"BACK":"FORWARD"};if(x)x=!1;else{const G=s();if(typeof document<"u"&&G.length){for(const $ of G)if(await $.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),T.notify(H);return}}}f=d(),T.notify(H)},k=M=>{if(j){j=!1;return}let R=!1;const L=s();if(typeof document<"u"&&L.length)for(const D of L){const U=D.enableBeforeUnload??!0;if(U===!0){R=!0;break}if(typeof U=="function"&&U()===!0){R=!0;break}}if(R)return M.preventDefault(),M.returnValue=""},T=hG({getLocation:w,getLength:()=>t.history.length,pushState:(M,R)=>O("push",M,R),replaceState:(M,R)=>O("replace",M,R),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(sM,k,{capture:!0}),t.removeEventListener(iM,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:s,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(sM,k,{capture:!0}),t.addEventListener(iM,C),t.history.pushState=function(...M){const R=n.apply(t.history,M);return T._ignoreSubscribers||A("PUSH"),R},t.history.replaceState=function(...M){const R=r.apply(t.history,M);return T._ignoreSubscribers||A("REPLACE"),R},T}function xv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=kC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Js]:0,key:a,__TSR_key:a}}}function kC(){return(Math.random()+1).toString(36).substring(7)}function b_(e){return e[e.length-1]}function pG(e){return typeof e=="function"}function nl(e,t){return pG(e)?e(t):e}const vG=Object.prototype.hasOwnProperty;function Ca(e,t){if(e===t)return e;const n=t,r=uM(e)&&uM(n);if(!r&&!(bv(e)&&bv(n)))return n;const a=r?e:lM(e);if(!a)return n;const s=r?n:lM(n);if(!s)return n;const l=a.length,u=s.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!cM(n)||!n.hasOwnProperty("isPrototypeOf"))}function cM(e){return Object.prototype.toString.call(e)==="[object Object]"}function uM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function rl(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!rl(e[l],t[l],n)))return!1;return a===s}return!1}function nu(e){let t,n;const r=new Promise((a,s)=>{t=a,n=s});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function eo(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const gG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function dM(e,t=gG){function n(a,s,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var yG="Invariant failed";function vr(e,t){if(!e)throw new Error(yG)}const vi=0,dl=1,ru=2,au=3;function rs(e){return MC(e.filter(t=>t!==void 0).join("/"))}function MC(e){return e.replace(/\/{2,}/g,"/")}function PC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function to(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function sv(e){return to(PC(e))}function wv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function xG(e,t,n){return wv(e,n)===wv(t,n)}function bG(e){const{type:t,value:n}=e;if(t===vi)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===dl){const s=n.substring(1);if(r&&a)return`${r}{$${s}}${a}`;if(r)return`${r}{$${s}}`;if(a)return`{$${s}}${a}`}if(t===au){const s=n.substring(1);return r&&a?`${r}{-$${s}}${a}`:r?`${r}{-$${s}}`:a?`{-$${s}}${a}`:`{-$${s}}`}if(t===ru){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function wG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=iu(e,r).slice();const s=iu(t,r);a.length>1&&b_(a)?.value==="/"&&a.pop();for(let d=0,f=s.length;d1&&(b_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:vi,value:"/"}));const l=a.map(bG);return rs(l)}const iu=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=OG(e);return t?.set(e,r),r},jG=/^\$.{1,}$/,SG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,_G=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,NG=/^\$$/,CG=/^(.*?)\{\$\}(.*)$/;function OG(e){e=MC(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:vi,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(CG);if(a){const u=a[1],d=a[2];return{type:ru,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const s=r.match(_G);if(s){const u=s[1],d=s[2],f=s[3];return{type:au,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(SG);if(l){const u=l[1],d=l[2],f=l[3];return{type:dl,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(jG.test(r)){const u=r.substring(1);return{type:dl,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return NG.test(r)?{type:ru,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:vi,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:vi,value:"/"})),t}function I0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=iu(e,r);function s(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?EG(m,n):m}let l=!1;const u={},d=rs(a.map(f=>{if(f.type===vi)return f.value;if(f.type===ru){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=s("_splat");return`${m}${g}${p}`}if(f.type===dl){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${s(m)??"undefined"}${g}`}if(f.type===au){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${s(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function EG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function w_(e,t,n){const r=AG(e,t,n);if(!(t.to&&!r))return r??{}}function AG(e,{to:t,fuzzy:n,caseSensitive:r},a){const s=t,l=iu(e.startsWith("/")?e:`/${e}`,a),u=iu(s.startsWith("/")?s:`/${s}`,a),d={};return TG(l,u,d,n,r)?d:void 0}function TG(e,t,n,r,a){let s=0,l=0;for(;sw.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(rs(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===vi){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;s++,l++;continue}else return!1}if(d.type===dl){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,s++),l++;continue}if(d.type===au){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=rs(e.slice(s).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const s=PC(r.fullPath);let l=iu(s),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return kG;if(p.type===vi)return MG;let x;p.type===dl?x=PG:p.type===au?(x=RG,d++):x=DG;for(let j=g+1;j{const s=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function qG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(vr(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=to(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const s=BG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:s}}function Ga(e){return!!e?.isNotFound}function FG(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const jv="tsr-scroll-restoration-v1_3",UG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function HG(){const e=FG();if(!e)return null;const t=e.getItem(jv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=nl(r,n)||n,e.setItem(jv,JSON.stringify(n)))}}const Ap=HG(),j_=e=>e.state.__TSR_key||e.href;function WG(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let Sv=!1;function a5({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:s}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];Sv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(s??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}Sv=!1}function VG(e,t){if(!Ap&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!Ap))return;e.isScrollRestorationSetup=!0,Sv=!1;const r=e.options.getScrollRestorationKey||j_;window.history.scrollRestoration="manual";const a=s=>{if(Sv||!e.isScrollRestoring)return;let l="";if(s.target===document||s.target===window)l="window";else{const d=s.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=WG(s.target)}const u=r(e.state.location);Ap.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",UG(a,100),!0),e.subscribe("onRendered",s=>{const l=r(s.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(a5({storageKey:jv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&Ap.set(u=>(u[l]||={},u)))})}function GG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function YG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function L0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function KG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const s=n[r];s==null?n[r]=L0(a):Array.isArray(s)?s.push(L0(a)):n[r]=[s,L0(a)]}return n}const XG=QG(JSON.parse),ZG=JG(JSON.stringify,JSON.parse);function QG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=KG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function JG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const s=YG(a,r);return s?`?${s}`:""}}const na="__root__";function i5(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function di(e){return e instanceof Response&&!!e.options}function eY(e){const t=new Map;let n,r;const a=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,n=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){const l=t.get(s);if(l)return a(l),l.value},set(s,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(s);if(u)u.value=l,a(u);else{const d={key:s,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(s,d)}}}}const ov=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},Fg=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),s5=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),vr(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);vr(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,s5(e,t))},Xs=(e,t,n)=>{if(!(!di(n)&&!Ga(n))){if(di(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=di(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Ga(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw di(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(s5(e,n),n)}},o5=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Zd=(e,t,n,r)=>{const{id:a,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Xs(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Xs(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},tY=(e,t,n,r)=>{const a=e.router.getMatch(t),s=e.matches[n-1]?.id,l=s?e.router.getMatch(s):void 0;if(e.router.isShell()){a.ssr=r.id===na;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:Tp(f,a.searchError),params:Tp(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:Tp(x.search,x.searchError),params:Tp(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(eo(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},l5=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!Fg(e,t)&&(n.options.loader||n.options.beforeLoad||d5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{ov(e)},a);r._nonReactive.pendingTimeout=l}},nY=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;l5(e,t,n,r);const a=()=>{const s=e.router.getMatch(t);s.preload&&(s.status==="redirected"||s.status==="notFound")&&Xs(e,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},rY=(e,t,n,r)=>{const a=e.router.getMatch(t),s=a._nonReactive.loadPromise;a._nonReactive.loadPromise=nu(()=>{s?.resolve()});const{paramsError:l,searchError:u}=a;l&&Zd(e,n,l,"PARSE_PARAMS"),u&&Zd(e,n,u,"VALIDATE_SEARCH"),l5(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,T=>({...T,isFetching:"beforeLoad",fetchCount:T.fetchCount+1,abortController:d,context:g})))},w=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,T=>({...T,isFetching:!1}))};if(!r.options.beforeLoad){_f(()=>{j(),w()});return}a._nonReactive.beforeLoadPromise=nu();const{search:b,params:N,cause:E}=a,O=Fg(e,t),A={search:b,abortController:d,params:N,preload:O,context:g,location:e.location,navigate:T=>e.router.navigate({...T,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:O?"preload":E,matches:e.matches,...e.router.options.additionalContext},C=T=>{if(T===void 0){_f(()=>{j(),w()});return}(di(T)||Ga(T))&&(j(),Zd(e,n,T,"BEFORE_LOAD")),_f(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:T,context:{...M.context,...T}})),w()})};let k;try{if(k=r.options.beforeLoad(A),eo(k))return j(),k.catch(T=>{Zd(e,n,T,"BEFORE_LOAD")}).then(C)}catch(T){j(),Zd(e,n,T,"BEFORE_LOAD")}C(k)},aY=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],s=()=>{if(e.router.isServer){const d=tY(e,n,t,a);if(eo(d))return d.then(u)}return u()},l=()=>rY(e,n,t,a),u=()=>{if(o5(e,n))return;const d=nY(e,n,a);return eo(d)?d.then(l):l()};return s()},Nf=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([s,l,u])=>{const d=s?.meta,f=s?.links,m=s?.scripts,p=s?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},c5=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:s,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=Fg(e,t);return{params:s,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},pM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&u5(r);const s=r.options.loader?.(c5(e,t,n,r)),l=r.options.loader&&eo(s);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await s:s;Xs(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=Nf(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let l=s;const u=a._nonReactive.minPendingPromise;u&&await u,Ga(s)&&await r.options.notFoundComponent?.preload?.(),Xs(e,e.router.getMatch(t),s);try{r.options.onError?.(s)}catch(m){l=m,Xs(e,e.router.getMatch(t),m)}const d=Nf(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const s=e.router.getMatch(t);if(s){const l=Nf(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}s._nonReactive.loaderPromise=void 0}Xs(e,s,a)}},iY=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,s=!1;const l=e.router.looseRoutesById[r];if(o5(e,n)){if(e.router.isServer){const f=Nf(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Xs(e,m,p)}else{const m=Date.now()-f.updatedAt,p=Fg(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(c5(e,n,t,l)):x,w=!!p&&!e.router.state.matches.some(O=>O.id===n),b=e.router.getMatch(n);b._nonReactive.loaderPromise=nu(),w!==b.preload&&e.updateMatch(n,O=>({...O,preload:w}));const{status:N,invalid:E}=b;if(a=N==="success"&&(E||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)s=!0,(async()=>{try{await pM(e,n,t,l);const O=e.router.getMatch(n);O._nonReactive.loaderPromise?.resolve(),O._nonReactive.loadPromise?.resolve(),O._nonReactive.loaderPromise=void 0}catch(O){di(O)&&await e.router.navigate(O.options)}})();else if(N!=="success"||a&&e.sync)await pM(e,n,t,l);else{const O=Nf(e,n,l);if(O){const A=await O;e.updateMatch(n,C=>({...C,...A}))}}}}const u=e.router.getMatch(n);s||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,s||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=s?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function vM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&ov(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of f5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Tp(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function d5(e){for(const t of f5)if(e.options[t]?.preload)return!0;return!1}const f5=["component","errorComponent","pendingComponent","notFoundComponent"];function sY(e){return{input:({url:t})=>{for(const n of e)t=h5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=m5(e[n],t);return t}}}function oY(e){const t=sv(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),s=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(s)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=rs(["/",t,l.pathname]),l)}}function h5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function m5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function al(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,s=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:s}}class lY{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",s=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=mG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new fG(uY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),VG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(s||a!==d||l!==f){this.basepath=d;const g=[];sv(d)!==""&&g.push(oY({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:sY(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=qG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=h5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:w,hash:b}=p;return{href:j,publicHref:d,url:p.href,pathname:dM(w),searchStr:x,search:Ca(r?.search,g),hash:b.split("#").reverse()[0]??"",state:Ca(r?.state,f)}},s=a(n),{__tempLocation:l,__tempKey:u}=s.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=s.state.key,d.state.__TSR_key=s.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:s}}return s},this.resolvePathWithBase=(n,r)=>wG({base:n,to:MC(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=eY(1e3),this.getMatchedRoutes=(n,r)=>dY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(s=>s.status==="pending"),r=this.state.matches.filter(s=>s.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(s=>{this.cancelMatch(s.id)})},this.buildLocation=n=>{const r=(s={})=>{const l=s._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=b_(u);s.from;const f=s.unsafeRelative==="path"?l.pathname:s.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=s.to?this.resolvePathWithBase(m,`${s.to}`):this.resolvePathWithBase(m,"."),j=s.params===!1||s.params===null?{}:(s.params??!0)===!0?g:Object.assign(g,nl(s.params,g)),w=I0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(w,void 0,{_buildLocation:!0}).map(L=>this.looseRoutesById[L.routeId]);if(Object.keys(j).length>0)for(const L of b){const D=L.options.params?.stringify??L.options.stringifyParams;D&&Object.assign(j,D(j))}const N=n.leaveParams?x:dM(I0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let E=p;if(n._includeValidateSearch&&this.options.search?.strict){const L={};b.forEach(D=>{if(D.options.validateSearch)try{Object.assign(L,S_(D.options.validateSearch,{...L,...E}))}catch{}}),E=L}E=fY({search:E,dest:s,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=Ca(p,E);const O=this.options.stringifySearch(E),A=s.hash===!0?l.hash:s.hash?nl(s.hash,l.hash):void 0,C=A?`#${A}`:"";let k=s.state===!0?l.state:s.state?nl(s.state,l.state):{};k=Ca(l.state,k);const T=`${N}${O}${C}`,M=new URL(T,this.origin),R=m5(this.rewrite,M);return{publicHref:R.pathname+R.search+R.hash,href:T,url:R.href,pathname:N,search:E,searchStr:O,state:k,hash:A??"",unmaskOnReload:s.unmaskOnReload}},a=(s={},l)=>{const u=r(s);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=w_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const s=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=rl(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=to(this.latestLocation.href)===to(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=nu(()=>{u?.resolve()}),l&&s())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:s,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=xv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:s,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...s})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...s}).url),s.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...s,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(sv(a(this.latestLocation.href))!==sv(a(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),i5({href:s})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(s=>s.id===a.id))}))},this.load=async n=>{let r,a,s;for(s=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...al({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...al({resolvedLocation:f,location:d})}),await vM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];_f(()=>{this.__store.setState(x=>{const j=x.matches,w=x.pendingMatches||x.matches;return m=j.filter(b=>!w.some(N=>N.id===b.id)),p=w.filter(b=>!j.some(N=>N.id===b.id)),g=w.filter(b=>j.some(N=>N.id===b.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(b=>b.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(w=>{this.looseRoutesById[w.routeId].options[j]?.(w)})})})})}})}catch(d){di(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Ga(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const s=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(al({resolvedLocation:l,location:s})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(s=>s.id===n)?"pendingMatches":this.state.matches.some(s=>s.id===n)?"matches":this.state.cachedMatches.some(s=>s.id===n)?"cachedMatches":"";a&&this.__store.setState(s=>({...s,[a]:s[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(s=>!r(s))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const s=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:n})},this.loadRouteChunk=u5,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...s,...this.state.cachedMatches.map(u=>u.id)]);_f(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await vM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{s.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(di(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Ga(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},s=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=w_(u.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!d||n.params&&!rl(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?rl(u.search,s.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??ZG,parseSearch:t.parseSearch??XG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:s}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&s["**"]:to(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return na}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,w]=(()=>{const U=g?.search??t.search,V=g?._strictSearch??void 0;try{const H=S_(m.options.validateSearch,{...U})??void 0;return[{...U,...H},{...V,...H},void 0]}catch(H){let G=H;if(H instanceof _v||(G=new _v(H.message,{cause:H})),n?.throwOnError)throw G;return[U,{},G]}})(),b=m.options.loaderDeps?.({search:x})??"",N=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:O}=I0({path:m.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),A=m.id+E+N,C=this.getMatch(A),k=this.state.matches.find(U=>U.routeId===m.id),T=C?._strictParams??O;let M;if(!C){const U=m.options.params?.parse??m.options.parseParams;if(U)try{Object.assign(T,U(T))}catch(V){if(M=new cY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(s,T);const R=k?"stay":"enter";let L;if(C)L={...C,cause:R,params:k?Ca(k.params,s):s,_strictParams:T,search:Ca(k?k.search:C.search,x),_strictSearch:j};else{const U=m.options.loader||m.options.beforeLoad||m.lazyFn||d5(m)?"pending":"success";L={id:A,index:p,routeId:m.id,params:k?Ca(k.params,s):s,_strictParams:T,pathname:E,updatedAt:Date.now(),search:k?Ca(k.search,x):x,_strictSearch:j,searchError:void 0,status:U,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:nu()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:R,loaderDeps:k?Ca(k.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(L.globalNotFound=u===m.id),L.searchError=w;const D=f(g);L.context={...D,...L.__routeContext,...L.__beforeLoadContext},d.push(L)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],w=f(j);if(g.options.context){const b={deps:m.loaderDeps,params:m.params,context:w??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(b)??void 0}m.context={...w,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class _v extends Error{}class cY extends Error{}function uY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function S_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new _v("Async validation not supported");if(n.issues)throw new _v(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function dY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:s,parseCache:l}){let u={};const d=to(e),f=x=>w_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of s){const w=f(j);if(w)if(j.path!=="/"&&w["**"])x||(x={foundRoute:j,routeParams:w});else{m=j,u=w;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[na];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function fY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((w,b)=>b(w),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((w,b)=>b(w),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...S_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],s=({search:u})=>t.search?t.search===!0?u:nl(t.search,u):{};a.push(s);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const hY="Error preloading route! ☝️";class p5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=na:this.parentRoute||vr(!1);let s=a?na:r?.path;s&&s!=="/"&&(s=PC(s));const l=r?.id||s;let u=a?na:rs([this.parentRoute.id===na?"":this.parentRoute.id,l]);s===na&&(s="/"),u!==na&&(u=rs(["/",u]));const d=u===na?"/":rs([this.parentRoute.fullPath,s]);this._path=s,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class mY extends p5{constructor(t){super(t)}}function RC(e){const t=e.errorComponent??Ug;return i.jsx(pY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class pY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Ug({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function vY({children:e,fallback:t=null}){return gY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function gY(){return W.useSyncExternalStore(yY,()=>!0,()=>!1)}function yY(){return()=>{}}var z0={exports:{}},B0={},q0={exports:{}},F0={};var gM;function xY(){if(gM)return F0;gM=1;var e=Ah();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),w=j[0].inst,b=j[1];return s(function(){w.value=x,w.getSnapshot=g,d(w)&&b({inst:w})},[p,x,g]),a(function(){return d(w)&&b({inst:w}),p(function(){d(w)&&b({inst:w})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return F0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,F0}var yM;function bY(){return yM||(yM=1,q0.exports=xY()),q0.exports}var xM;function wY(){if(xM)return B0;xM=1;var e=Ah(),t=bY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return B0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=s(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=u(function(){function N(k){if(!E){if(E=!0,O=k,k=g(k),x!==void 0&&w.hasValue){var T=w.value;if(x(T,k))return A=T}return A=k}if(T=A,r(O,k))return T;var M=g(k);return x!==void 0&&x(T,M)?(O=k,T):(O=k,A=M)}var E=!1,O,A,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var b=a(f,j[0],j[1]);return l(function(){w.hasValue=!0,w.value=b},[b]),d(b),b},B0}var bM;function jY(){return bM||(bM=1,z0.exports=wY()),z0.exports}var SY=jY();function _Y(e,t=r=>r,n={}){const r=n.equal??NY;return SY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function NY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=wM(e);if(n.length!==wM(t).length)return!1;for(let r=0;r"u"?U0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=U0,U0)}function Fr(e){const t=y.useContext(v5());return e?.warn,t}function Cr(e){const t=Fr({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return _Y(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const s=Ca(r.current,e.select(a));return r.current=s,s}return e.select(a)}return a})}const Hg=y.createContext(void 0),CY=y.createContext(void 0);function bi(e){const t=y.useContext(e.from?CY:Hg);return Cr({select:r=>{const a=r.matches.find(s=>e.from?e.from===s.routeId:s.id===t);if(vr(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function DC(e){return bi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function $C(e){const{select:t,...n}=e;return bi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function IC(e){return bi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function LC(e){return bi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function ua(e){const t=Fr();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var Nl=t5();const OY=Rt(Nl),kp=typeof window<"u"?y.useLayoutEffect:y.useEffect;function H0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function EY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([s])=>{t(s)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function AY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function TY(e,t){const n=Fr(),[r,a]=y.useState(!1),s=y.useRef(!1),l=AY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:w,resetScroll:b,viewTransition:N,children:E,target:O,disabled:A,style:C,className:k,onClick:T,onFocus:M,onMouseEnter:R,onMouseLeave:L,onTouchStart:D,ignoreBlocker:U,params:V,search:H,hash:G,state:$,mask:I,reloadDocument:q,unsafeRelative:Z,from:ee,_fromLocation:F,...z}=e,K=Cr({select:at=>at.location.search,structuralSharing:!0}),ie=e.from,Q=y.useMemo(()=>({...e,from:ie}),[n,K,ie,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),he=y.useMemo(()=>n.buildLocation({...Q}),[n,Q]),ae=y.useMemo(()=>{if(A)return;let at=he.maskedLocation?he.maskedLocation.url:he.url,re=!1;return n.origin&&(at.startsWith(n.origin)?at=n.history.createHref(at.replace(n.origin,""))||"/":re=!0),{href:at,external:re}},[A,he.maskedLocation,he.url,n.origin,n.history]),we=y.useMemo(()=>{if(ae?.external)return ae.href;try{return new URL(m),m}catch{}},[m,ae]),Y=e.reloadDocument||we?!1:p??n.options.defaultPreload,pe=g??n.options.defaultPreloadDelay??0,je=Cr({select:at=>{if(we)return!1;if(f?.exact){if(!xG(at.location.pathname,he.pathname,n.basepath))return!1}else{const re=wv(at.location.pathname,n.basepath),Se=wv(he.pathname,n.basepath);if(!(re.startsWith(Se)&&(re.length===Se.length||re[Se.length]==="/")))return!1}return(f?.includeSearch??!0)&&!rl(at.location.search,he.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?at.location.hash===he.hash:!0}}),X=y.useCallback(()=>{n.preloadRoute({...Q}).catch(at=>{console.warn(at),console.warn(hY)})},[n,Q]),Ae=y.useCallback(at=>{at?.isIntersecting&&X()},[X]);EY(l,Ae,DY,{disabled:!!A||Y!=="viewport"}),y.useEffect(()=>{s.current||!A&&Y==="render"&&(X(),s.current=!0)},[A,X,Y]);const Oe=at=>{const re=at.currentTarget.getAttribute("target"),Se=O!==void 0?O:re;if(!A&&!$Y(at)&&!at.defaultPrevented&&(!Se||Se==="_self")&&at.button===0){at.preventDefault(),Nl.flushSync(()=>{a(!0)});const ut=n.subscribe("onResolved",()=>{ut(),a(!1)});n.navigate({...Q,replace:j,resetScroll:b,hashScrollIntoView:x,startTransition:w,viewTransition:N,ignoreBlocker:U})}};if(we)return{...z,ref:l,href:we,...E&&{children:E},...O&&{target:O},...A&&{disabled:A},...C&&{style:C},...k&&{className:k},...T&&{onClick:T},...M&&{onFocus:M},...R&&{onMouseEnter:R},...L&&{onMouseLeave:L},...D&&{onTouchStart:D}};const We=at=>{A||Y&&X()},Ve=We,be=at=>{if(!(A||!Y))if(!pe)X();else{const re=at.target;if(Qd.has(re))return;const Se=setTimeout(()=>{Qd.delete(re),X()},pe);Qd.set(re,Se)}},_e=at=>{if(A||!Y||!pe)return;const re=at.target,Se=Qd.get(re);Se&&(clearTimeout(Se),Qd.delete(re))},rt=je?nl(u,{})??kY:W0,fn=je?W0:nl(d,{})??W0,Tt=[k,rt.className,fn.className].filter(Boolean).join(" "),zt=(C||rt.style||fn.style)&&{...C,...rt.style,...fn.style};return{...z,...rt,...fn,href:ae?.href,ref:l,onClick:Jd([T,Oe]),onFocus:Jd([M,We]),onMouseEnter:Jd([R,be]),onMouseLeave:Jd([L,_e]),onTouchStart:Jd([D,Ve]),disabled:!!A,target:O,...zt&&{style:zt},...Tt&&{className:Tt},...A&&MY,...je&&PY,...r&&RY}}const W0={},kY={className:"active"},MY={role:"link","aria-disabled":!0},PY={"data-status":"active","aria-current":"page"},RY={"data-transitioning":"transitioning"},Qd=new WeakMap,DY={rootMargin:"100px"},Jd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},zC=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:s,...l}=TY(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:s},u)});function $Y(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class IY extends p5{constructor(t){super(t),this.useMatch=n=>bi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>bi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>LC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>IC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>$C({...n,from:this.id}),this.useLoaderData=n=>DC({...n,from:this.id}),this.useNavigate=()=>ua({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(zC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function or(e){return new IY(e)}class LY extends mY{constructor(t){super(t),this.useMatch=n=>bi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>bi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>LC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>IC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>$C({...n,from:this.id}),this.useLoaderData=n=>DC({...n,from:this.id}),this.useNavigate=()=>ua({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(zC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function zY(e){return new LY(e)}function jM(e){return typeof e=="object"?new SM(e,{silent:!0}).createRoute(e):new SM(e,{silent:!0}).createRoute}class SM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=or(r);return a.isRoot=!1,a},this.silent=n?.silent}}class _M{constructor(t){this.useMatch=n=>bi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>bi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>LC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>IC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>$C({...n,from:this.options.id}),this.useLoaderData=n=>DC({...n,from:this.options.id}),this.useNavigate=()=>{const n=Fr();return ua({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function NM(e){return typeof e=="object"?new _M(e):t=>new _M({id:e,...t})}function BY(){const e=Fr(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:s}=Cr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=H0(s),u=s||n||a,d=H0(u),f=s||a,m=H0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return to(e.latestLocation.href)!==to(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),kp(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),kp(()=>{l&&!s&&e.emit({type:"onLoad",...al(e.state)})},[l,e,s]),kp(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...al(e.state)})},[f,m,e]),kp(()=>{d&&!u&&(e.emit({type:"onResolved",...al(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),GG(e))},[u,d,e]),null}function qY(e){const t=Cr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(RC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Ga(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Ga(n))return e.fallback?.(n);throw n},children:e.children})}function FY(){return i.jsx("p",{children:"Not Found"})}function Dc(e){return i.jsx(i.Fragment,{children:e.children})}function g5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx(FY,{})}function UY({children:e}){const t=Fr();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` +`)+";$_TSR.c()"}}):null}function HY(){const e=Fr();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||j_)(e.latestLocation),r=n!==j_(e.latestLocation)?n:void 0,a={storageKey:jv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(UY,{children:`(${a5.toString()})(${JSON.stringify(a)})`})}const y5=y.memo(function({matchId:t}){const n=Fr(),r=Cr({select:N=>{const E=N.matches.find(O=>O.id===t);return vr(E),{routeId:E.routeId,ssr:E.ssr,_displayPending:E._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],s=a.options.pendingComponent??n.options.defaultPendingComponent,l=s?i.jsx(s,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??s??(a.options.errorComponent?.preload||m))?y.Suspense:Dc,g=u?RC:Dc,x=f?qY:Dc,j=Cr({select:N=>N.loadedAt}),w=Cr({select:N=>{const E=N.matches.findIndex(O=>O.id===t);return N.matches[E-1]?.routeId}}),b=a.isRoot?a.options.shellComponent??Dc:Dc;return i.jsxs(b,{children:[i.jsx(Hg.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||Ug,onCatch:(N,E)=>{if(Ga(N))throw N;d?.(N,E)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(vY,{fallback:l,children:i.jsx(CM,{matchId:t})}):i.jsx(CM,{matchId:t})})})})}),w===na&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx(WY,{}),i.jsx(HY,{})]}):null]})});function WY(){const e=Fr(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...al(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const CM=y.memo(function({matchId:t}){const n=Fr(),{match:r,key:a,routeId:s}=Cr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[s],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(BC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=nu();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return vr(Ga(r.error)),g5(n,l,r.error);if(r.status==="redirected")throw vr(di(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||Ug;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),BC=y.memo(function(){const t=Fr(),n=y.useContext(Hg),r=Cr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],s=Cr({select:f=>{const p=f.matches.find(g=>g.id===n);return vr(p),p.globalNotFound}}),l=Cr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(s)return g5(t,a,void 0);if(!l)return null;const d=i.jsx(y5,{matchId:l});return r===na?i.jsx(y.Suspense,{fallback:u,children:d}):d});function VY(){const e=Fr(),n=e.routesById[na].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?Dc:y.Suspense,s=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(BY,{}),i.jsx(GY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:s}):s}function GY(){const e=Fr(),t=Cr({select:a=>a.matches[0]?.id}),n=Cr({select:a=>a.loadedAt}),r=t?i.jsx(y5,{matchId:t}):null;return i.jsx(Hg.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(RC,{getResetKey:()=>n,errorComponent:Ug,onCatch:a=>{a.message||a.toString()},children:r})})}function YY(){const e=Fr();return Cr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s})},[e])}const KY=e=>new XY(e);class XY extends lY{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=jM,globalThis.createLazyFileRoute=NM):typeof window<"u"&&(window.createFileRoute=jM,window.createLazyFileRoute=NM);function ZY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=v5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function QY({router:e,...t}){return i.jsx(ZY,{router:e,...t,children:i.jsx(VY,{})})}function x5(e,t){return function(){return e.apply(t,arguments)}}const{toString:JY}=Object.prototype,{getPrototypeOf:qC}=Object,{iterator:Wg,toStringTag:b5}=Symbol,Vg=(e=>t=>{const n=JY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Za=e=>(e=e.toLowerCase(),t=>Vg(t)===e),Gg=e=>t=>typeof t===e,{isArray:zu}=Array,su=Gg("undefined");function Th(e){return e!==null&&!su(e)&&e.constructor!==null&&!su(e.constructor)&&Ir(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const w5=Za("ArrayBuffer");function eK(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&w5(e.buffer),t}const tK=Gg("string"),Ir=Gg("function"),j5=Gg("number"),kh=e=>e!==null&&typeof e=="object",nK=e=>e===!0||e===!1,lv=e=>{if(Vg(e)!=="object")return!1;const t=qC(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(b5 in e)&&!(Wg in e)},rK=e=>{if(!kh(e)||Th(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},aK=Za("Date"),iK=Za("File"),sK=Za("Blob"),oK=Za("FileList"),lK=e=>kh(e)&&Ir(e.pipe),cK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ir(e.append)&&((t=Vg(e))==="formdata"||t==="object"&&Ir(e.toString)&&e.toString()==="[object FormData]"))},uK=Za("URLSearchParams"),[dK,fK,hK,mK]=["ReadableStream","Request","Response","Headers"].map(Za),pK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Mh(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),zu(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Xo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,_5=e=>!su(e)&&e!==Xo;function __(){const{caseless:e,skipUndefined:t}=_5(this)&&this||{},n={},r=(a,s)=>{const l=e&&S5(n,s)||s;lv(n[l])&&lv(a)?n[l]=__(n[l],a):lv(a)?n[l]=__({},a):zu(a)?n[l]=a.slice():(!t||!su(a))&&(n[l]=a)};for(let a=0,s=arguments.length;a(Mh(t,(a,s)=>{n&&Ir(a)?e[s]=x5(a,n):e[s]=a},{allOwnKeys:r}),e),gK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),yK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},xK=(e,t,n,r)=>{let a,s,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),s=a.length;s-- >0;)l=a[s],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&qC(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},bK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},wK=e=>{if(!e)return null;if(zu(e))return e;let t=e.length;if(!j5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&qC(Uint8Array)),SK=(e,t)=>{const r=(e&&e[Wg]).call(e);let a;for(;(a=r.next())&&!a.done;){const s=a.value;t.call(e,s[0],s[1])}},_K=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},NK=Za("HTMLFormElement"),CK=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),OM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),OK=Za("RegExp"),N5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Mh(n,(a,s)=>{let l;(l=t(a,s,e))!==!1&&(r[s]=l||a)}),Object.defineProperties(e,r)},EK=e=>{N5(e,(t,n)=>{if(Ir(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ir(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},AK=(e,t)=>{const n={},r=a=>{a.forEach(s=>{n[s]=!0})};return zu(e)?r(e):r(String(e).split(t)),n},TK=()=>{},kK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function MK(e){return!!(e&&Ir(e.append)&&e[b5]==="FormData"&&e[Wg])}const PK=e=>{const t=new Array(10),n=(r,a)=>{if(kh(r)){if(t.indexOf(r)>=0)return;if(Th(r))return r;if(!("toJSON"in r)){t[a]=r;const s=zu(r)?[]:{};return Mh(r,(l,u)=>{const d=n(l,a+1);!su(d)&&(s[u]=d)}),t[a]=void 0,s}}return r};return n(e,0)},RK=Za("AsyncFunction"),DK=e=>e&&(kh(e)||Ir(e))&&Ir(e.then)&&Ir(e.catch),C5=((e,t)=>e?setImmediate:t?((n,r)=>(Xo.addEventListener("message",({source:a,data:s})=>{a===Xo&&s===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Xo.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ir(Xo.postMessage)),$K=typeof queueMicrotask<"u"?queueMicrotask.bind(Xo):typeof process<"u"&&process.nextTick||C5,IK=e=>e!=null&&Ir(e[Wg]),fe={isArray:zu,isArrayBuffer:w5,isBuffer:Th,isFormData:cK,isArrayBufferView:eK,isString:tK,isNumber:j5,isBoolean:nK,isObject:kh,isPlainObject:lv,isEmptyObject:rK,isReadableStream:dK,isRequest:fK,isResponse:hK,isHeaders:mK,isUndefined:su,isDate:aK,isFile:iK,isBlob:sK,isRegExp:OK,isFunction:Ir,isStream:lK,isURLSearchParams:uK,isTypedArray:jK,isFileList:oK,forEach:Mh,merge:__,extend:vK,trim:pK,stripBOM:gK,inherits:yK,toFlatObject:xK,kindOf:Vg,kindOfTest:Za,endsWith:bK,toArray:wK,forEachEntry:SK,matchAll:_K,isHTMLForm:NK,hasOwnProperty:OM,hasOwnProp:OM,reduceDescriptors:N5,freezeMethods:EK,toObjectSet:AK,toCamelCase:CK,noop:TK,toFiniteNumber:kK,findKey:S5,global:Xo,isContextDefined:_5,isSpecCompliantForm:MK,toJSONObject:PK,isAsyncFn:RK,isThenable:DK,setImmediate:C5,asap:$K,isIterable:IK};function nt(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}fe.inherits(nt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:fe.toJSONObject(this.config),code:this.code,status:this.status}}});const O5=nt.prototype,E5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{E5[e]={value:e}});Object.defineProperties(nt,E5);Object.defineProperty(O5,"isAxiosError",{value:!0});nt.from=(e,t,n,r,a,s)=>{const l=Object.create(O5);fe.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return nt.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",s&&Object.assign(l,s),l};const LK=null;function N_(e){return fe.isPlainObject(e)||fe.isArray(e)}function A5(e){return fe.endsWith(e,"[]")?e.slice(0,-2):e}function EM(e,t,n){return e?e.concat(t).map(function(a,s){return a=A5(a),!n&&s?"["+a+"]":a}).join(n?".":""):t}function zK(e){return fe.isArray(e)&&!e.some(N_)}const BK=fe.toFlatObject(fe,{},null,function(t){return/^is[A-Z]/.test(t)});function Yg(e,t,n){if(!fe.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=fe.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,b){return!fe.isUndefined(b[w])});const r=n.metaTokens,a=n.visitor||m,s=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&fe.isSpecCompliantForm(t);if(!fe.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(fe.isDate(j))return j.toISOString();if(fe.isBoolean(j))return j.toString();if(!d&&fe.isBlob(j))throw new nt("Blob is not supported. Use a Buffer instead.");return fe.isArrayBuffer(j)||fe.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,w,b){let N=j;if(j&&!b&&typeof j=="object"){if(fe.endsWith(w,"{}"))w=r?w:w.slice(0,-2),j=JSON.stringify(j);else if(fe.isArray(j)&&zK(j)||(fe.isFileList(j)||fe.endsWith(w,"[]"))&&(N=fe.toArray(j)))return w=A5(w),N.forEach(function(O,A){!(fe.isUndefined(O)||O===null)&&t.append(l===!0?EM([w],A,s):l===null?w:w+"[]",f(O))}),!1}return N_(j)?!0:(t.append(EM(b,w,s),f(j)),!1)}const p=[],g=Object.assign(BK,{defaultVisitor:m,convertValue:f,isVisitable:N_});function x(j,w){if(!fe.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+w.join("."));p.push(j),fe.forEach(j,function(N,E){(!(fe.isUndefined(N)||N===null)&&a.call(t,N,fe.isString(E)?E.trim():E,w,g))===!0&&x(N,w?w.concat(E):[E])}),p.pop()}}if(!fe.isObject(e))throw new TypeError("data must be an object");return x(e),t}function AM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function FC(e,t){this._pairs=[],e&&Yg(e,this,t)}const T5=FC.prototype;T5.append=function(t,n){this._pairs.push([t,n])};T5.toString=function(t){const n=t?function(r){return t.call(this,r,AM)}:AM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function qK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function k5(e,t,n){if(!t)return e;const r=n&&n.encode||qK;fe.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let s;if(a?s=a(t,n):s=fe.isURLSearchParams(t)?t.toString():new FC(t,n).toString(r),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class TM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){fe.forEach(this.handlers,function(r){r!==null&&t(r)})}}const M5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},FK=typeof URLSearchParams<"u"?URLSearchParams:FC,UK=typeof FormData<"u"?FormData:null,HK=typeof Blob<"u"?Blob:null,WK={isBrowser:!0,classes:{URLSearchParams:FK,FormData:UK,Blob:HK},protocols:["http","https","file","blob","url","data"]},UC=typeof window<"u"&&typeof document<"u",C_=typeof navigator=="object"&&navigator||void 0,VK=UC&&(!C_||["ReactNative","NativeScript","NS"].indexOf(C_.product)<0),GK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",YK=UC&&window.location.href||"http://localhost",KK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:UC,hasStandardBrowserEnv:VK,hasStandardBrowserWebWorkerEnv:GK,navigator:C_,origin:YK},Symbol.toStringTag,{value:"Module"})),hr={...KK,...WK};function XK(e,t){return Yg(e,new hr.classes.URLSearchParams,{visitor:function(n,r,a,s){return hr.isNode&&fe.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function ZK(e){return fe.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function QK(e){const t={},n=Object.keys(e);let r;const a=n.length;let s;for(r=0;r=n.length;return l=!l&&fe.isArray(a)?a.length:l,d?(fe.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!fe.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],s)&&fe.isArray(a[l])&&(a[l]=QK(a[l])),!u)}if(fe.isFormData(e)&&fe.isFunction(e.entries)){const n={};return fe.forEachEntry(e,(r,a)=>{t(ZK(r),a,n,0)}),n}return null}function JK(e,t,n){if(fe.isString(e))try{return(t||JSON.parse)(e),fe.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Ph={transitional:M5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,s=fe.isObject(t);if(s&&fe.isHTMLForm(t)&&(t=new FormData(t)),fe.isFormData(t))return a?JSON.stringify(P5(t)):t;if(fe.isArrayBuffer(t)||fe.isBuffer(t)||fe.isStream(t)||fe.isFile(t)||fe.isBlob(t)||fe.isReadableStream(t))return t;if(fe.isArrayBufferView(t))return t.buffer;if(fe.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return XK(t,this.formSerializer).toString();if((u=fe.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Yg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||a?(n.setContentType("application/json",!1),JK(t)):t}],transformResponse:[function(t){const n=this.transitional||Ph.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(fe.isResponse(t)||fe.isReadableStream(t))return t;if(t&&fe.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?nt.from(u,nt.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:hr.classes.FormData,Blob:hr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};fe.forEach(["delete","get","head","post","put","patch"],e=>{Ph.headers[e]={}});const eX=fe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),tX=e=>{const t={};let n,r,a;return e&&e.split(` +`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&eX[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},kM=Symbol("internals");function ef(e){return e&&String(e).trim().toLowerCase()}function cv(e){return e===!1||e==null?e:fe.isArray(e)?e.map(cv):String(e)}function nX(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const rX=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function V0(e,t,n,r,a){if(fe.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!fe.isString(t)){if(fe.isString(r))return t.indexOf(r)!==-1;if(fe.isRegExp(r))return r.test(t)}}function aX(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function iX(e,t){const n=fe.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,s,l){return this[r].call(this,t,a,s,l)},configurable:!0})})}let Lr=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function s(u,d,f){const m=ef(d);if(!m)throw new Error("header name must be a non-empty string");const p=fe.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=cv(u))}const l=(u,d)=>fe.forEach(u,(f,m)=>s(f,m,d));if(fe.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(fe.isString(t)&&(t=t.trim())&&!rX(t))l(tX(t),n);else if(fe.isObject(t)&&fe.isIterable(t)){let u={},d,f;for(const m of t){if(!fe.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?fe.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=ef(t),t){const r=fe.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return nX(a);if(fe.isFunction(n))return n.call(this,a,r);if(fe.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ef(t),t){const r=fe.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||V0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function s(l){if(l=ef(l),l){const u=fe.findKey(r,l);u&&(!n||V0(r,r[u],u,n))&&(delete r[u],a=!0)}}return fe.isArray(t)?t.forEach(s):s(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const s=n[r];(!t||V0(this,this[s],s,t,!0))&&(delete this[s],a=!0)}return a}normalize(t){const n=this,r={};return fe.forEach(this,(a,s)=>{const l=fe.findKey(r,s);if(l){n[l]=cv(a),delete n[s];return}const u=t?aX(s):String(s).trim();u!==s&&delete n[s],n[u]=cv(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return fe.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&fe.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[kM]=this[kM]={accessors:{}}).accessors,a=this.prototype;function s(l){const u=ef(l);r[u]||(iX(a,l),r[u]=!0)}return fe.isArray(t)?t.forEach(s):s(t),this}};Lr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);fe.reduceDescriptors(Lr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});fe.freezeMethods(Lr);function G0(e,t){const n=this||Ph,r=t||n,a=Lr.from(r.headers);let s=r.data;return fe.forEach(e,function(u){s=u.call(n,s,a.normalize(),t?t.status:void 0)}),a.normalize(),s}function R5(e){return!!(e&&e.__CANCEL__)}function Bu(e,t,n){nt.call(this,e??"canceled",nt.ERR_CANCELED,t,n),this.name="CanceledError"}fe.inherits(Bu,nt,{__CANCEL__:!0});function D5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new nt("Request failed with status code "+n.status,[nt.ERR_BAD_REQUEST,nt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function sX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function oX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[s];l||(l=f),n[a]=d,r[a]=f;let p=s,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===s&&(s=(s+1)%e),f-l{n=m,a=null,s&&(clearTimeout(s),s=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,s||(s=setTimeout(()=>{s=null,l(a)},r-p)))},()=>a&&l(a)]}const Nv=(e,t,n=3)=>{let r=0;const a=oX(50,250);return lX(s=>{const l=s.loaded,u=s.lengthComputable?s.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:s,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},MM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},PM=e=>(...t)=>fe.asap(()=>e(...t)),cX=hr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,hr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(hr.origin),hr.navigator&&/(msie|trident)/i.test(hr.navigator.userAgent)):()=>!0,uX=hr.hasStandardBrowserEnv?{write(e,t,n,r,a,s,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];fe.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),fe.isString(r)&&u.push(`path=${r}`),fe.isString(a)&&u.push(`domain=${a}`),s===!0&&u.push("secure"),fe.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function dX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function fX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function $5(e,t,n){let r=!dX(t);return e&&(r||n==!1)?fX(e,t):t}const RM=e=>e instanceof Lr?{...e}:e;function fl(e,t){t=t||{};const n={};function r(f,m,p,g){return fe.isPlainObject(f)&&fe.isPlainObject(m)?fe.merge.call({caseless:g},f,m):fe.isPlainObject(m)?fe.merge({},m):fe.isArray(m)?m.slice():m}function a(f,m,p,g){if(fe.isUndefined(m)){if(!fe.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function s(f,m){if(!fe.isUndefined(m))return r(void 0,m)}function l(f,m){if(fe.isUndefined(m)){if(!fe.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(RM(f),RM(m),p,!0)};return fe.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);fe.isUndefined(g)&&p!==u||(n[m]=g)}),n}const I5=e=>{const t=fl({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:s,headers:l,auth:u}=t;if(t.headers=l=Lr.from(l),t.url=k5($5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),fe.isFormData(n)){if(hr.hasStandardBrowserEnv||hr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(fe.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(hr.hasStandardBrowserEnv&&(r&&fe.isFunction(r)&&(r=r(t)),r||r!==!1&&cX(t.url))){const d=a&&s&&uX.read(s);d&&l.set(a,d)}return t},hX=typeof XMLHttpRequest<"u",mX=hX&&function(e){return new Promise(function(n,r){const a=I5(e);let s=a.data;const l=Lr.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function w(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function N(){if(!b)return;const O=Lr.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:O,config:e,request:b};D5(function(T){n(T),w()},function(T){r(T),w()},C),b=null}"onloadend"in b?b.onloadend=N:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(N)},b.onabort=function(){b&&(r(new nt("Request aborted",nt.ECONNABORTED,e,b)),b=null)},b.onerror=function(A){const C=A&&A.message?A.message:"Network Error",k=new nt(C,nt.ERR_NETWORK,e,b);k.event=A||null,r(k),b=null},b.ontimeout=function(){let A=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||M5;a.timeoutErrorMessage&&(A=a.timeoutErrorMessage),r(new nt(A,C.clarifyTimeoutError?nt.ETIMEDOUT:nt.ECONNABORTED,e,b)),b=null},s===void 0&&l.setContentType(null),"setRequestHeader"in b&&fe.forEach(l.toJSON(),function(A,C){b.setRequestHeader(C,A)}),fe.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),u&&u!=="json"&&(b.responseType=a.responseType),f&&([g,j]=Nv(f,!0),b.addEventListener("progress",g)),d&&b.upload&&([p,x]=Nv(d),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=O=>{b&&(r(!O||O.type?new Bu(null,e,b):O),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const E=sX(a.url);if(E&&hr.protocols.indexOf(E)===-1){r(new nt("Unsupported protocol "+E+":",nt.ERR_BAD_REQUEST,e));return}b.send(s||null)})},pX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const s=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof nt?m:new Bu(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,s(new nt(`timeout ${t} of ms exceeded`,nt.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>fe.asap(u),d}},vX=function*(e,t){let n=e.byteLength;if(n{const a=gX(e,t);let s=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=s+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},$M=64*1024,{isFunction:Mp}=fe,xX=(({Request:e,Response:t})=>({Request:e,Response:t}))(fe.global),{ReadableStream:IM,TextEncoder:LM}=fe.global,zM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},bX=e=>{e=fe.merge.call({skipUndefined:!0},xX,e);const{fetch:t,Request:n,Response:r}=e,a=t?Mp(t):typeof fetch=="function",s=Mp(n),l=Mp(r);if(!a)return!1;const u=a&&Mp(IM),d=a&&(typeof LM=="function"?(j=>w=>j.encode(w))(new LM):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=s&&u&&zM(()=>{let j=!1;const w=new n(hr.origin,{body:new IM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!w}),m=l&&u&&zM(()=>fe.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(w,b)=>{let N=w&&w[j];if(N)return N.call(w);throw new nt(`Response type '${j}' is not supported`,nt.ERR_NOT_SUPPORT,b)})});const g=async j=>{if(j==null)return 0;if(fe.isBlob(j))return j.size;if(fe.isSpecCompliantForm(j))return(await new n(hr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(fe.isArrayBufferView(j)||fe.isArrayBuffer(j))return j.byteLength;if(fe.isURLSearchParams(j)&&(j=j+""),fe.isString(j))return(await d(j)).byteLength},x=async(j,w)=>{const b=fe.toFiniteNumber(j.getContentLength());return b??g(w)};return async j=>{let{url:w,method:b,data:N,signal:E,cancelToken:O,timeout:A,onDownloadProgress:C,onUploadProgress:k,responseType:T,headers:M,withCredentials:R="same-origin",fetchOptions:L}=I5(j),D=t||fetch;T=T?(T+"").toLowerCase():"text";let U=pX([E,O&&O.toAbortSignal()],A),V=null;const H=U&&U.unsubscribe&&(()=>{U.unsubscribe()});let G;try{if(k&&f&&b!=="get"&&b!=="head"&&(G=await x(M,N))!==0){let F=new n(w,{method:"POST",body:N,duplex:"half"}),z;if(fe.isFormData(N)&&(z=F.headers.get("content-type"))&&M.setContentType(z),F.body){const[K,ie]=MM(G,Nv(PM(k)));N=DM(F.body,$M,K,ie)}}fe.isString(R)||(R=R?"include":"omit");const $=s&&"credentials"in n.prototype,I={...L,signal:U,method:b.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:$?R:void 0};V=s&&new n(w,I);let q=await(s?D(V,L):D(w,I));const Z=m&&(T==="stream"||T==="response");if(m&&(C||Z&&H)){const F={};["status","statusText","headers"].forEach(Q=>{F[Q]=q[Q]});const z=fe.toFiniteNumber(q.headers.get("content-length")),[K,ie]=C&&MM(z,Nv(PM(C),!0))||[];q=new r(DM(q.body,$M,K,()=>{ie&&ie(),H&&H()}),F)}T=T||"text";let ee=await p[fe.findKey(p,T)||"text"](q,j);return!Z&&H&&H(),await new Promise((F,z)=>{D5(F,z,{data:ee,headers:Lr.from(q.headers),status:q.status,statusText:q.statusText,config:j,request:V})})}catch($){throw H&&H(),$&&$.name==="TypeError"&&/Load failed|fetch/i.test($.message)?Object.assign(new nt("Network Error",nt.ERR_NETWORK,j,V),{cause:$.cause||$}):nt.from($,$&&$.code,j,V)}}},wX=new Map,L5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,s=[r,a,n];let l=s.length,u=l,d,f,m=wX;for(;u--;)d=s[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:bX(t)),m=f;return f};L5();const HC={http:LK,xhr:mX,fetch:{get:L5}};fe.forEach(HC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const BM=e=>`- ${e}`,jX=e=>fe.isFunction(e)||e===null||e===!1;function SX(e,t){e=fe.isArray(e)?e:[e];const{length:n}=e;let r,a;const s={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : +`+l.map(BM).join(` +`):" "+BM(l[0]):"as no adapter specified";throw new nt("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const z5={getAdapter:SX,adapters:HC};function Y0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Bu(null,e)}function qM(e){return Y0(e),e.headers=Lr.from(e.headers),e.data=G0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),z5.getAdapter(e.adapter||Ph.adapter,e)(e).then(function(r){return Y0(e),r.data=G0.call(e,e.transformResponse,r),r.headers=Lr.from(r.headers),r},function(r){return R5(r)||(Y0(e),r&&r.response&&(r.response.data=G0.call(e,e.transformResponse,r.response),r.response.headers=Lr.from(r.response.headers))),Promise.reject(r)})}const B5="1.13.2",Kg={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Kg[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const FM={};Kg.transitional=function(t,n,r){function a(s,l){return"[Axios v"+B5+"] Transitional option '"+s+"'"+l+(r?". "+r:"")}return(s,l,u)=>{if(t===!1)throw new nt(a(l," has been removed"+(n?" in "+n:"")),nt.ERR_DEPRECATED);return n&&!FM[l]&&(FM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,l,u):!0}};Kg.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function _X(e,t,n){if(typeof e!="object")throw new nt("options must be an object",nt.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const s=r[a],l=t[s];if(l){const u=e[s],d=u===void 0||l(u,s,e);if(d!==!0)throw new nt("option "+s+" must be "+d,nt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new nt("Unknown option "+s,nt.ERR_BAD_OPTION)}}const uv={assertOptions:_X,validators:Kg},ii=uv.validators;let il=class{constructor(t){this.defaults=t||{},this.interceptors={request:new TM,response:new TM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const s=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` +`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=fl(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:s}=n;r!==void 0&&uv.assertOptions(r,{silentJSONParsing:ii.transitional(ii.boolean),forcedJSONParsing:ii.transitional(ii.boolean),clarifyTimeoutError:ii.transitional(ii.boolean)},!1),a!=null&&(fe.isFunction(a)?n.paramsSerializer={serialize:a}:uv.assertOptions(a,{encode:ii.function,serialize:ii.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),uv.assertOptions(n,{baseUrl:ii.spelling("baseURL"),withXsrfToken:ii.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=s&&fe.merge(s.common,s[n.method]);s&&fe.forEach(["delete","get","head","post","put","patch","common"],j=>{delete s[j]}),n.headers=Lr.concat(l,s);const u=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,u.unshift(w.fulfilled,w.rejected))});const f=[];this.interceptors.response.forEach(function(w){f.push(w.fulfilled,w.rejected)});let m,p=0,g;if(!d){const j=[qM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](a);r._listeners=null}),this.promise.then=a=>{let s;const l=new Promise(u=>{r.subscribe(u),s=u}).then(a);return l.cancel=function(){r.unsubscribe(s)},l},t(function(s,l,u){r.reason||(r.reason=new Bu(s,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new q5(function(a){t=a}),cancel:t}}};function CX(e){return function(n){return e.apply(null,n)}}function OX(e){return fe.isObject(e)&&e.isAxiosError===!0}const O_={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(O_).forEach(([e,t])=>{O_[t]=e});function F5(e){const t=new il(e),n=x5(il.prototype.request,t);return fe.extend(n,il.prototype,t,{allOwnKeys:!0}),fe.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return F5(fl(e,a))},n}const xn=F5(Ph);xn.Axios=il;xn.CanceledError=Bu;xn.CancelToken=NX;xn.isCancel=R5;xn.VERSION=B5;xn.toFormData=Yg;xn.AxiosError=nt;xn.Cancel=xn.CanceledError;xn.all=function(t){return Promise.all(t)};xn.spread=CX;xn.isAxiosError=OX;xn.mergeConfig=fl;xn.AxiosHeaders=Lr;xn.formToJSON=e=>P5(fe.isHTMLForm(e)?new FormData(e):e);xn.getAdapter=z5.getAdapter;xn.HttpStatusCode=O_;xn.default=xn;const{Axios:R2e,AxiosError:D2e,CanceledError:$2e,isCancel:I2e,CancelToken:L2e,VERSION:z2e,all:B2e,Cancel:q2e,isAxiosError:F2e,spread:U2e,toFormData:H2e,AxiosHeaders:W2e,HttpStatusCode:V2e,formToJSON:G2e,getAdapter:Y2e,mergeConfig:K2e}=xn;function U5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),H5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Cv="-",UM=[],TX="arbitrary..",kX=e=>{const t=PX(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return MX(l);const u=l.split(Cv),d=u[0]===""&&u.length>1?1:0;return W5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?EX(f,d):d:f||UM}return n[l]||UM}}},W5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],s=n.nextPart.get(a);if(s){const f=W5(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(Cv):e.slice(t).join(Cv),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?TX+r:void 0})(),PX=e=>{const{theme:t,classGroups:n}=e;return RX(n,t)},RX=(e,t)=>{const n=H5();for(const r in e){const a=e[r];WC(a,n,r,t)}return n},WC=(e,t,n,r)=>{const a=e.length;for(let s=0;s{if(typeof e=="string"){$X(e,t,n);return}if(typeof e=="function"){IX(e,t,n,r);return}LX(e,t,n,r)},$X=(e,t,n)=>{const r=e===""?t:V5(t,e);r.classGroupId=n},IX=(e,t,n,r)=>{if(zX(e)){WC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(AX(n,e))},LX=(e,t,n,r)=>{const a=Object.entries(e),s=a.length;for(let l=0;l{let n=e;const r=t.split(Cv),a=r.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,BX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(s,l)=>{n[s]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=r[s])!==void 0)return a(s,l),l},set(s,l){s in n?n[s]=l:a(s,l)}}},E_="!",HM=":",qX=[],WM=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),FX=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const s=[];let l=0,u=0,d=0,f;const m=a.length;for(let w=0;wd?f-d:void 0;return WM(s,x,g,j)};if(t){const a=t+HM,s=r;r=l=>l.startsWith(a)?s(l.slice(a.length)):WM(qX,!1,l,void 0,!0)}if(n){const a=r;r=s=>n({className:s,parseClassName:a})}return r},UX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let s=0;s0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},HX=e=>({cache:BX(e.cacheSize),parseClassName:FX(e),sortModifiers:UX(e),...kX(e)}),WX=/\s+/,VX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:s}=t,l=[],u=e.trim().split(WX);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:w}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let b=!!w,N=r(b?j.substring(0,w):j);if(!N){if(!b){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}b=!1}const E=g.length===0?"":g.length===1?g[0]:s(g).join(":"),O=x?E+E_:E,A=O+N;if(l.indexOf(A)>-1)continue;l.push(A);const C=a(N,b);for(let k=0;k0?" "+d:d)}return d},GX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,s;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=HX(f),r=n.cache.get,a=n.cache.set,s=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=VX(d,n);return a(d,m),m};return s=l,(...d)=>s(GX(...d))},KX=[],Rn=e=>{const t=n=>n[e]||KX;return t.isThemeGetter=!0,t},Y5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,K5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,XX=/^\d+\/\d+$/,ZX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,QX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,JX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eZ=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,tZ=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Nc=e=>XX.test(e),ct=e=>!!e&&!Number.isNaN(Number(e)),Ws=e=>!!e&&Number.isInteger(Number(e)),K0=e=>e.endsWith("%")&&ct(e.slice(0,-1)),Gi=e=>ZX.test(e),nZ=()=>!0,rZ=e=>QX.test(e)&&!JX.test(e),X5=()=>!1,aZ=e=>eZ.test(e),iZ=e=>tZ.test(e),sZ=e=>!Re(e)&&!De(e),oZ=e=>qu(e,J5,X5),Re=e=>Y5.test(e),Fo=e=>qu(e,ez,rZ),X0=e=>qu(e,fZ,ct),VM=e=>qu(e,Z5,X5),lZ=e=>qu(e,Q5,iZ),Pp=e=>qu(e,tz,aZ),De=e=>K5.test(e),tf=e=>Fu(e,ez),cZ=e=>Fu(e,hZ),GM=e=>Fu(e,Z5),uZ=e=>Fu(e,J5),dZ=e=>Fu(e,Q5),Rp=e=>Fu(e,tz,!0),qu=(e,t,n)=>{const r=Y5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Fu=(e,t,n=!1)=>{const r=K5.exec(e);return r?r[1]?t(r[1]):n:!1},Z5=e=>e==="position"||e==="percentage",Q5=e=>e==="image"||e==="url",J5=e=>e==="length"||e==="size"||e==="bg-size",ez=e=>e==="length",fZ=e=>e==="number",hZ=e=>e==="family-name",tz=e=>e==="shadow",mZ=()=>{const e=Rn("color"),t=Rn("font"),n=Rn("text"),r=Rn("font-weight"),a=Rn("tracking"),s=Rn("leading"),l=Rn("breakpoint"),u=Rn("container"),d=Rn("spacing"),f=Rn("radius"),m=Rn("shadow"),p=Rn("inset-shadow"),g=Rn("text-shadow"),x=Rn("drop-shadow"),j=Rn("blur"),w=Rn("perspective"),b=Rn("aspect"),N=Rn("ease"),E=Rn("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...A(),De,Re],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],M=()=>[De,Re,d],R=()=>[Nc,"full","auto",...M()],L=()=>[Ws,"none","subgrid",De,Re],D=()=>["auto",{span:["full",Ws,De,Re]},Ws,De,Re],U=()=>[Ws,"auto",De,Re],V=()=>["auto","min","max","fr",De,Re],H=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...M()],I=()=>[Nc,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],q=()=>[e,De,Re],Z=()=>[...A(),GM,VM,{position:[De,Re]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],F=()=>["auto","cover","contain",uZ,oZ,{size:[De,Re]}],z=()=>[K0,tf,Fo],K=()=>["","none","full",f,De,Re],ie=()=>["",ct,tf,Fo],Q=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ae=()=>[ct,K0,GM,VM],we=()=>["","none",j,De,Re],Y=()=>["none",ct,De,Re],pe=()=>["none",ct,De,Re],je=()=>[ct,De,Re],X=()=>[Nc,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Gi],breakpoint:[Gi],color:[nZ],container:[Gi],"drop-shadow":[Gi],ease:["in","out","in-out"],font:[sZ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Gi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Gi],shadow:[Gi],spacing:["px",ct],text:[Gi],"text-shadow":[Gi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Nc,Re,De,b]}],container:["container"],columns:[{columns:[ct,Re,De,u]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[Ws,"auto",De,Re]}],basis:[{basis:[Nc,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ct,Nc,"auto","initial","none",Re]}],grow:[{grow:["",ct,De,Re]}],shrink:[{shrink:["",ct,De,Re]}],order:[{order:[Ws,"first","last","none",De,Re]}],"grid-cols":[{"grid-cols":L()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":U()}],"col-end":[{"col-end":U()}],"grid-rows":[{"grid-rows":L()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":U()}],"row-end":[{"row-end":U()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...H(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...H()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":H()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:$()}],mx:[{mx:$()}],my:[{my:$()}],ms:[{ms:$()}],me:[{me:$()}],mt:[{mt:$()}],mr:[{mr:$()}],mb:[{mb:$()}],ml:[{ml:$()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:I()}],w:[{w:[u,"screen",...I()]}],"min-w":[{"min-w":[u,"screen","none",...I()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...I()]}],h:[{h:["screen","lh",...I()]}],"min-h":[{"min-h":["screen","lh","none",...I()]}],"max-h":[{"max-h":["screen","lh",...I()]}],"font-size":[{text:["base",n,tf,Fo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,De,X0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",K0,Re]}],"font-family":[{font:[cZ,Re,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,De,Re]}],"line-clamp":[{"line-clamp":[ct,"none",De,X0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",De,Re]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",De,Re]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:q()}],"text-color":[{text:q()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Q(),"wavy"]}],"text-decoration-thickness":[{decoration:[ct,"from-font","auto",De,Fo]}],"text-decoration-color":[{decoration:q()}],"underline-offset":[{"underline-offset":[ct,"auto",De,Re]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",De,Re]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",De,Re]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Z()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:F()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ws,De,Re],radial:["",De,Re],conic:[Ws,De,Re]},dZ,lZ]}],"bg-color":[{bg:q()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:q()}],"gradient-via":[{via:q()}],"gradient-to":[{to:q()}],rounded:[{rounded:K()}],"rounded-s":[{"rounded-s":K()}],"rounded-e":[{"rounded-e":K()}],"rounded-t":[{"rounded-t":K()}],"rounded-r":[{"rounded-r":K()}],"rounded-b":[{"rounded-b":K()}],"rounded-l":[{"rounded-l":K()}],"rounded-ss":[{"rounded-ss":K()}],"rounded-se":[{"rounded-se":K()}],"rounded-ee":[{"rounded-ee":K()}],"rounded-es":[{"rounded-es":K()}],"rounded-tl":[{"rounded-tl":K()}],"rounded-tr":[{"rounded-tr":K()}],"rounded-br":[{"rounded-br":K()}],"rounded-bl":[{"rounded-bl":K()}],"border-w":[{border:ie()}],"border-w-x":[{"border-x":ie()}],"border-w-y":[{"border-y":ie()}],"border-w-s":[{"border-s":ie()}],"border-w-e":[{"border-e":ie()}],"border-w-t":[{"border-t":ie()}],"border-w-r":[{"border-r":ie()}],"border-w-b":[{"border-b":ie()}],"border-w-l":[{"border-l":ie()}],"divide-x":[{"divide-x":ie()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ie()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Q(),"hidden","none"]}],"divide-style":[{divide:[...Q(),"hidden","none"]}],"border-color":[{border:q()}],"border-color-x":[{"border-x":q()}],"border-color-y":[{"border-y":q()}],"border-color-s":[{"border-s":q()}],"border-color-e":[{"border-e":q()}],"border-color-t":[{"border-t":q()}],"border-color-r":[{"border-r":q()}],"border-color-b":[{"border-b":q()}],"border-color-l":[{"border-l":q()}],"divide-color":[{divide:q()}],"outline-style":[{outline:[...Q(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ct,De,Re]}],"outline-w":[{outline:["",ct,tf,Fo]}],"outline-color":[{outline:q()}],shadow:[{shadow:["","none",m,Rp,Pp]}],"shadow-color":[{shadow:q()}],"inset-shadow":[{"inset-shadow":["none",p,Rp,Pp]}],"inset-shadow-color":[{"inset-shadow":q()}],"ring-w":[{ring:ie()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:q()}],"ring-offset-w":[{"ring-offset":[ct,Fo]}],"ring-offset-color":[{"ring-offset":q()}],"inset-ring-w":[{"inset-ring":ie()}],"inset-ring-color":[{"inset-ring":q()}],"text-shadow":[{"text-shadow":["none",g,Rp,Pp]}],"text-shadow-color":[{"text-shadow":q()}],opacity:[{opacity:[ct,De,Re]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ct]}],"mask-image-linear-from-pos":[{"mask-linear-from":ae()}],"mask-image-linear-to-pos":[{"mask-linear-to":ae()}],"mask-image-linear-from-color":[{"mask-linear-from":q()}],"mask-image-linear-to-color":[{"mask-linear-to":q()}],"mask-image-t-from-pos":[{"mask-t-from":ae()}],"mask-image-t-to-pos":[{"mask-t-to":ae()}],"mask-image-t-from-color":[{"mask-t-from":q()}],"mask-image-t-to-color":[{"mask-t-to":q()}],"mask-image-r-from-pos":[{"mask-r-from":ae()}],"mask-image-r-to-pos":[{"mask-r-to":ae()}],"mask-image-r-from-color":[{"mask-r-from":q()}],"mask-image-r-to-color":[{"mask-r-to":q()}],"mask-image-b-from-pos":[{"mask-b-from":ae()}],"mask-image-b-to-pos":[{"mask-b-to":ae()}],"mask-image-b-from-color":[{"mask-b-from":q()}],"mask-image-b-to-color":[{"mask-b-to":q()}],"mask-image-l-from-pos":[{"mask-l-from":ae()}],"mask-image-l-to-pos":[{"mask-l-to":ae()}],"mask-image-l-from-color":[{"mask-l-from":q()}],"mask-image-l-to-color":[{"mask-l-to":q()}],"mask-image-x-from-pos":[{"mask-x-from":ae()}],"mask-image-x-to-pos":[{"mask-x-to":ae()}],"mask-image-x-from-color":[{"mask-x-from":q()}],"mask-image-x-to-color":[{"mask-x-to":q()}],"mask-image-y-from-pos":[{"mask-y-from":ae()}],"mask-image-y-to-pos":[{"mask-y-to":ae()}],"mask-image-y-from-color":[{"mask-y-from":q()}],"mask-image-y-to-color":[{"mask-y-to":q()}],"mask-image-radial":[{"mask-radial":[De,Re]}],"mask-image-radial-from-pos":[{"mask-radial-from":ae()}],"mask-image-radial-to-pos":[{"mask-radial-to":ae()}],"mask-image-radial-from-color":[{"mask-radial-from":q()}],"mask-image-radial-to-color":[{"mask-radial-to":q()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":A()}],"mask-image-conic-pos":[{"mask-conic":[ct]}],"mask-image-conic-from-pos":[{"mask-conic-from":ae()}],"mask-image-conic-to-pos":[{"mask-conic-to":ae()}],"mask-image-conic-from-color":[{"mask-conic-from":q()}],"mask-image-conic-to-color":[{"mask-conic-to":q()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Z()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:F()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",De,Re]}],filter:[{filter:["","none",De,Re]}],blur:[{blur:we()}],brightness:[{brightness:[ct,De,Re]}],contrast:[{contrast:[ct,De,Re]}],"drop-shadow":[{"drop-shadow":["","none",x,Rp,Pp]}],"drop-shadow-color":[{"drop-shadow":q()}],grayscale:[{grayscale:["",ct,De,Re]}],"hue-rotate":[{"hue-rotate":[ct,De,Re]}],invert:[{invert:["",ct,De,Re]}],saturate:[{saturate:[ct,De,Re]}],sepia:[{sepia:["",ct,De,Re]}],"backdrop-filter":[{"backdrop-filter":["","none",De,Re]}],"backdrop-blur":[{"backdrop-blur":we()}],"backdrop-brightness":[{"backdrop-brightness":[ct,De,Re]}],"backdrop-contrast":[{"backdrop-contrast":[ct,De,Re]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ct,De,Re]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ct,De,Re]}],"backdrop-invert":[{"backdrop-invert":["",ct,De,Re]}],"backdrop-opacity":[{"backdrop-opacity":[ct,De,Re]}],"backdrop-saturate":[{"backdrop-saturate":[ct,De,Re]}],"backdrop-sepia":[{"backdrop-sepia":["",ct,De,Re]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",De,Re]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ct,"initial",De,Re]}],ease:[{ease:["linear","initial",N,De,Re]}],delay:[{delay:[ct,De,Re]}],animate:[{animate:["none",E,De,Re]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,De,Re]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:Y()}],"rotate-x":[{"rotate-x":Y()}],"rotate-y":[{"rotate-y":Y()}],"rotate-z":[{"rotate-z":Y()}],scale:[{scale:pe()}],"scale-x":[{"scale-x":pe()}],"scale-y":[{"scale-y":pe()}],"scale-z":[{"scale-z":pe()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[De,Re,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:X()}],"translate-x":[{"translate-x":X()}],"translate-y":[{"translate-y":X()}],"translate-z":[{"translate-z":X()}],"translate-none":["translate-none"],accent:[{accent:q()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:q()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",De,Re]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",De,Re]}],fill:[{fill:["none",...q()]}],"stroke-w":[{stroke:[ct,tf,Fo,X0]}],stroke:[{stroke:["none",...q()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},pZ=YX(mZ);function ue(...e){return pZ(et(e))}const Ke=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("rounded-xl border bg-card text-card-foreground shadow",e),...t}));Ke.displayName="Card";const gt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("flex flex-col space-y-1.5 p-6",e),...t}));gt.displayName="CardHeader";const yt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("font-semibold leading-none tracking-tight",e),...t}));yt.displayName="CardTitle";const Wn=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("text-sm text-muted-foreground",e),...t}));Wn.displayName="CardDescription";const Pt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("p-6 pt-0",e),...t}));Pt.displayName="CardContent";const nz=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("flex items-center p-6 pt-0",e),...t}));nz.displayName="CardFooter";function Ne(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function vZ(e,t){const n=y.createContext(t),r=s=>{const{children:l,...u}=s,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(s){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function yr(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,gZ(a,...t)]}function gZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function YM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zr(...e){return t=>{let n=!1;const r=e.map(a=>{const s=YM(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(bZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function yZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=jZ(a),u=wZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var xZ=Symbol("radix.slottable");function bZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===xZ}function wZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function jZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Rh(e){const t=e+"CollectionProvider",[n,r]=yr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=w=>{const{scope:b,children:N}=w,E=W.useRef(null),O=W.useRef(new Map).current;return i.jsx(a,{scope:b,itemMap:O,collectionRef:E,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=KM(u),f=W.forwardRef((w,b)=>{const{scope:N,children:E}=w,O=s(u,N),A=Ue(b,O.collectionRef);return i.jsx(d,{ref:A,children:E})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=KM(m),x=W.forwardRef((w,b)=>{const{scope:N,children:E,...O}=w,A=W.useRef(null),C=Ue(b,A),k=s(m,N);return W.useEffect(()=>(k.itemMap.set(A,{ref:A,...O}),()=>void k.itemMap.delete(A))),i.jsx(g,{[p]:"",ref:C,children:E})});x.displayName=m;function j(w){const b=s(e+"CollectionConsumer",w);return W.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const O=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(b.itemMap.values()).sort((k,T)=>O.indexOf(k.ref.current)-O.indexOf(T.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Yn=globalThis?.document?y.useLayoutEffect:()=>{},SZ=TC[" useId ".trim().toString()]||(()=>{}),_Z=0;function Gn(e){const[t,n]=y.useState(SZ());return Yn(()=>{n(r=>r??String(_Z++))},[e]),t?`radix-${t}`:""}function NZ(e){const t=CZ(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(EZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function CZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=TZ(a),u=AZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var OZ=Symbol("radix.slottable");function EZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===OZ}function AZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function TZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var kZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$e=kZ.reduce((e,t)=>{const n=NZ(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function VC(e,t){e&&Nl.flushSync(()=>e.dispatchEvent(t))}function yn(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var MZ=TC[" useInsertionEffect ".trim().toString()]||Yn;function Ta({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,l]=PZ({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=RZ(m)?m(e):m;p!==e&&l.current?.(p)}else s(m)},[u,e,s,l]);return[d,f]}function PZ({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),s=y.useRef(t);return MZ(()=>{s.current=t},[t]),y.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function RZ(e){return typeof e=="function"}var DZ=y.createContext(void 0);function Uu(e){const t=y.useContext(DZ);return e||t||"ltr"}var Z0="rovingFocusGroup.onEntryFocus",$Z={bubbles:!1,cancelable:!0},Dh="RovingFocusGroup",[A_,rz,IZ]=Rh(Dh),[LZ,Xg]=yr(Dh,[IZ]),[zZ,BZ]=LZ(Dh),az=y.forwardRef((e,t)=>i.jsx(A_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(A_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(qZ,{...e,ref:t})})}));az.displayName=Dh;var qZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=Ue(t,g),j=Uu(s),[w,b]=Ta({prop:l,defaultProp:u??null,onChange:d,caller:Dh}),[N,E]=y.useState(!1),O=yn(f),A=rz(n),C=y.useRef(!1),[k,T]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(Z0,O),()=>M.removeEventListener(Z0,O)},[O]),i.jsx(zZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:w,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>T(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>T(M=>M-1),[]),children:i.jsx($e.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:Ne(e.onMouseDown,()=>{C.current=!0}),onFocus:Ne(e.onFocus,M=>{const R=!C.current;if(M.target===M.currentTarget&&R&&!N){const L=new CustomEvent(Z0,$Z);if(M.currentTarget.dispatchEvent(L),!L.defaultPrevented){const D=A().filter($=>$.focusable),U=D.find($=>$.active),V=D.find($=>$.id===w),G=[U,V,...D].filter(Boolean).map($=>$.ref.current);oz(G,m)}}C.current=!1}),onBlur:Ne(e.onBlur,()=>E(!1))})})}),iz="RovingFocusGroupItem",sz=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:l,...u}=e,d=Gn(),f=s||d,m=BZ(iz,n),p=m.currentTabStopId===f,g=rz(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:w}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(A_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx($e.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:Ne(e.onMouseDown,b=>{r?m.onItemFocus(f):b.preventDefault()}),onFocus:Ne(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:Ne(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){m.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const N=HZ(b,m.orientation,m.dir);if(N!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let O=g().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")O.reverse();else if(N==="prev"||N==="next"){N==="prev"&&O.reverse();const A=O.indexOf(b.currentTarget);O=m.loop?WZ(O,A+1):O.slice(A+1)}setTimeout(()=>oz(O))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:w!=null}):l})})});sz.displayName=iz;var FZ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function UZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function HZ(e,t,n){const r=UZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return FZ[r]}function oz(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function WZ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var lz=az,cz=sz;function VZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var zn=e=>{const{present:t,children:n}=e,r=GZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),s=Ue(r.ref,YZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:s}):null};zn.displayName="Presence";function GZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),s=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=VZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Dp(r.current);s.current=u==="mounted"?f:"none"},[u]),Yn(()=>{const f=r.current,m=a.current;if(m!==e){const g=s.current,x=Dp(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Yn(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const w=Dp(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&w&&(d("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=x=>{x.target===t&&(s.current=Dp(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Dp(e){return e?.animationName||"none"}function YZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Zg="Tabs",[KZ]=yr(Zg,[Xg]),uz=Xg(),[XZ,GC]=KZ(Zg),dz=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Uu(u),[p,g]=Ta({prop:r,onChange:a,defaultProp:s??"",caller:Zg});return i.jsx(XZ,{scope:n,baseId:Gn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx($e.div,{dir:m,"data-orientation":l,...f,ref:t})})});dz.displayName=Zg;var fz="TabsList",hz=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=GC(fz,n),l=uz(n);return i.jsx(lz,{asChild:!0,...l,orientation:s.orientation,dir:s.dir,loop:r,children:i.jsx($e.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});hz.displayName=fz;var mz="TabsTrigger",pz=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,l=GC(mz,n),u=uz(n),d=yz(l.baseId,r),f=xz(l.baseId,r),m=r===l.value;return i.jsx(cz,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx($e.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...s,ref:t,onMouseDown:Ne(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:Ne(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:Ne(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});pz.displayName=mz;var vz="TabsContent",gz=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...l}=e,u=GC(vz,n),d=yz(u.baseId,r),f=xz(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(zn,{present:a||m,children:({present:g})=>i.jsx($e.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&s})})});gz.displayName=vz;function yz(e,t){return`${e}-trigger-${t}`}function xz(e,t){return`${e}-content-${t}`}var ZZ=dz,bz=hz,wz=pz,jz=gz;const hl=ZZ,ao=y.forwardRef(({className:e,...t},n)=>i.jsx(bz,{ref:n,className:ue("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));ao.displayName=bz.displayName;const Lt=y.forwardRef(({className:e,...t},n)=>i.jsx(wz,{ref:n,className:ue("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Lt.displayName=wz.displayName;const vn=y.forwardRef(({className:e,...t},n)=>i.jsx(jz,{ref:n,className:ue("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));vn.displayName=jz.displayName;function Df(e,[t,n]){return Math.min(n,Math.max(t,e))}function QZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var YC="ScrollArea",[Sz]=yr(YC),[JZ,Ma]=Sz(YC),_z=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:s=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(0),[O,A]=y.useState(0),[C,k]=y.useState(!1),[T,M]=y.useState(!1),R=Ue(t,D=>d(D)),L=Uu(a);return i.jsx(JZ,{scope:n,type:r,dir:L,scrollHideDelay:s,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:w,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:E,onCornerHeightChange:A,children:i.jsx($e.div,{dir:L,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":O+"px",...e.style}})})});_z.displayName=YC;var Nz="ScrollAreaViewport",Cz=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...s}=e,l=Ma(Nz,n),u=y.useRef(null),d=Ue(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx($e.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});Cz.displayName=Nz;var _i="ScrollAreaScrollbar",KC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ma(_i,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)}),[u,s,l]),a.type==="hover"?i.jsx(eQ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(tQ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(Oz,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(XC,{...r,ref:t}):null});KC.displayName=_i;var eQ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ma(_i,e.__scopeScrollArea),[s,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(zn,{present:n||s,children:i.jsx(Oz,{"data-state":s?"visible":"hidden",...r,ref:t})})}),tQ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ma(_i,e.__scopeScrollArea),s=e.orientation==="horizontal",l=Jg(()=>d("SCROLL_END"),100),[u,d]=QZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=s?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,s,d,l]),i.jsx(zn,{present:n||u!=="hidden",children:i.jsx(XC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Ne(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:Ne(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),Oz=y.forwardRef((e,t)=>{const n=Ma(_i,e.__scopeScrollArea),{forceMount:r,...a}=e,[s,l]=y.useState(!1),u=e.orientation==="horizontal",d=Jg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Ma(_i,e.__scopeScrollArea),s=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=Mz(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>s.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return oQ(g,l.current,u,x)}return n==="horizontal"?i.jsx(nQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollLeft,x=XM(g,u,a.dir);s.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(rQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollTop,x=XM(g,u);s.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),nQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ma(_i,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(Az,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Qg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),Rz(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:Ev(l.paddingLeft),paddingEnd:Ev(l.paddingRight)}})}})}),rQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ma(_i,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(Az,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Qg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),Rz(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:Ev(l.paddingTop),paddingEnd:Ev(l.paddingBottom)}})}})}),[aQ,Ez]=Sz(_i),Az=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Ma(_i,n),[j,w]=y.useState(null),b=Ue(t,R=>w(R)),N=y.useRef(null),E=y.useRef(""),O=x.viewport,A=r.content-r.viewport,C=yn(m),k=yn(d),T=Jg(p,10);function M(R){if(N.current){const L=R.clientX-N.current.left,D=R.clientY-N.current.top;f({x:L,y:D})}}return y.useEffect(()=>{const R=L=>{const D=L.target;j?.contains(D)&&C(L,A)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[O,j,A,C]),y.useEffect(k,[r,k]),ou(j,T),ou(x.content,T),i.jsx(aQ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:yn(s),onThumbPointerUp:yn(l),onThumbPositionChange:k,onThumbPointerDown:yn(u),children:i.jsx($e.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:Ne(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),N.current=j.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(R))}),onPointerMove:Ne(e.onPointerMove,M),onPointerUp:Ne(e.onPointerUp,R=>{const L=R.target;L.hasPointerCapture(R.pointerId)&&L.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),Ov="ScrollAreaThumb",Tz=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ez(Ov,e.__scopeScrollArea);return i.jsx(zn,{present:n||a.hasThumb,children:i.jsx(iQ,{ref:t,...r})})}),iQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,s=Ma(Ov,n),l=Ez(Ov,n),{onThumbPositionChange:u}=l,d=Ue(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Jg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=s.viewport;if(p){const g=()=>{if(m(),!f.current){const x=lQ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[s.viewport,m,u]),i.jsx($e.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Ne(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,w=p.clientY-x.top;l.onThumbPointerDown({x:j,y:w})}),onPointerUp:Ne(e.onPointerUp,l.onThumbPointerUp)})});Tz.displayName=Ov;var ZC="ScrollAreaCorner",kz=y.forwardRef((e,t)=>{const n=Ma(ZC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(sQ,{...e,ref:t}):null});kz.displayName=ZC;var sQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Ma(ZC,n),[s,l]=y.useState(0),[u,d]=y.useState(0),f=!!(s&&u);return ou(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),ou(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx($e.div,{...r,ref:t,style:{width:s,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Ev(e){return e?parseInt(e,10):0}function Mz(e,t){const n=e/t;return isNaN(n)?0:n}function Qg(e){const t=Mz(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function oQ(e,t,n,r="ltr"){const a=Qg(n),s=a/2,l=t||s,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return Pz([d,f],p)(e)}function XM(e,t,n="ltr"){const r=Qg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,u=s-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Df(e,d);return Pz([0,l],[0,u])(f)}function Pz(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Rz(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const s={left:e.scrollLeft,top:e.scrollTop},l=n.left!==s.left,u=n.top!==s.top;(l||u)&&t(),n=s,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Jg(e,t){const n=yn(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function ou(e,t){const n=yn(t);Yn(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var Dz=_z,cQ=Cz,uQ=kz;const Gt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Dz,{ref:r,className:ue("relative overflow-hidden",e),...n,children:[i.jsx(cQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx($z,{}),i.jsx(uQ,{})]}));Gt.displayName=Dz.displayName;const $z=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(KC,{ref:r,orientation:t,className:ue("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(Tz,{className:"relative flex-1 rounded-full bg-border"})}));$z.displayName=KC.displayName;function ZM({className:e,...t}){return i.jsx("div",{className:ue("animate-pulse rounded-md bg-primary/10",e),...t})}function dQ(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l);u.displayName=s+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,fQ(a,...t)]}function fQ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var hQ=Symbol.for("react.lazy"),Av=TC[" use ".trim().toString()];function mQ(e){return typeof e=="object"&&e!==null&&"then"in e}function Iz(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===hQ&&"_payload"in e&&mQ(e._payload)}function $h(e){const t=vQ(e),n=y.forwardRef((r,a)=>{let{children:s,...l}=r;Iz(s)&&typeof Av=="function"&&(s=Av(s._payload));const u=y.Children.toArray(s),d=u.find(yQ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var pQ=$h("Slot");function vQ(e){const t=y.forwardRef((n,r)=>{let{children:a,...s}=n;if(Iz(a)&&typeof Av=="function"&&(a=Av(a._payload)),y.isValidElement(a)){const l=bQ(a),u=xQ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gQ=Symbol("radix.slottable");function yQ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gQ}function xQ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bQ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var wQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Lz=wQ.reduce((e,t)=>{const n=$h(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),QC="Progress",JC=100,[jQ]=dQ(QC),[SQ,_Q]=jQ(QC),zz=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:s=NQ,...l}=e;(a||a===0)&&!QM(a)&&console.error(CQ(`${a}`,"Progress"));const u=QM(a)?a:JC;r!==null&&!JM(r,u)&&console.error(OQ(`${r}`,"Progress"));const d=JM(r,u)?r:null,f=Tv(d)?s(d,u):void 0;return i.jsx(SQ,{scope:n,value:d,max:u,children:i.jsx(Lz.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":Tv(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":Fz(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});zz.displayName=QC;var Bz="ProgressIndicator",qz=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=_Q(Bz,n);return i.jsx(Lz.div,{"data-state":Fz(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});qz.displayName=Bz;function NQ(e,t){return`${Math.round(e/t*100)}%`}function Fz(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Tv(e){return typeof e=="number"}function QM(e){return Tv(e)&&!isNaN(e)&&e>0}function JM(e,t){return Tv(e)&&!isNaN(e)&&e<=t&&e>=0}function CQ(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${JC}\`.`}function OQ(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${JC} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var Uz=zz,EQ=qz;const Ih=y.forwardRef(({className:e,value:t,...n},r)=>i.jsx(Uz,{ref:r,className:ue("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(EQ,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));Ih.displayName=Uz.displayName;var Q0,eP;function Ur(){if(eP)return Q0;eP=1;var e=Array.isArray;return Q0=e,Q0}var J0,tP;function Hz(){if(tP)return J0;tP=1;var e=typeof Op=="object"&&Op&&Op.Object===Object&&Op;return J0=e,J0}var ew,nP;function Ni(){if(nP)return ew;nP=1;var e=Hz(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return ew=n,ew}var tw,rP;function Lh(){if(rP)return tw;rP=1;var e=Ni(),t=e.Symbol;return tw=t,tw}var nw,aP;function AQ(){if(aP)return nw;aP=1;var e=Lh(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function s(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return nw=s,nw}var rw,iP;function TQ(){if(iP)return rw;iP=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return rw=n,rw}var aw,sP;function ms(){if(sP)return aw;sP=1;var e=Lh(),t=AQ(),n=TQ(),r="[object Null]",a="[object Undefined]",s=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:s&&s in Object(u)?t(u):n(u)}return aw=l,aw}var iw,oP;function ps(){if(oP)return iw;oP=1;function e(t){return t!=null&&typeof t=="object"}return iw=e,iw}var sw,lP;function Hu(){if(lP)return sw;lP=1;var e=ms(),t=ps(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return sw=r,sw}var ow,cP;function eO(){if(cP)return ow;cP=1;var e=Ur(),t=Hu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(s,l){if(e(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||t(s)?!0:r.test(s)||!n.test(s)||l!=null&&s in Object(l)}return ow=a,ow}var lw,uP;function fo(){if(uP)return lw;uP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return lw=e,lw}var cw,dP;function tO(){if(dP)return cw;dP=1;var e=ms(),t=fo(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==s}return cw=l,cw}var uw,fP;function kQ(){if(fP)return uw;fP=1;var e=Ni(),t=e["__core-js_shared__"];return uw=t,uw}var dw,hP;function MQ(){if(hP)return dw;hP=1;var e=kQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return dw=n,dw}var fw,mP;function Wz(){if(mP)return fw;mP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return fw=n,fw}var hw,pP;function PQ(){if(pP)return hw;pP=1;var e=tO(),t=MQ(),n=fo(),r=Wz(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:s;return x.test(r(g))}return hw=p,hw}var mw,vP;function RQ(){if(vP)return mw;vP=1;function e(t,n){return t?.[n]}return mw=e,mw}var pw,gP;function Cl(){if(gP)return pw;gP=1;var e=PQ(),t=RQ();function n(r,a){var s=t(r,a);return e(s)?s:void 0}return pw=n,pw}var vw,yP;function ey(){if(yP)return vw;yP=1;var e=Cl(),t=e(Object,"create");return vw=t,vw}var gw,xP;function DQ(){if(xP)return gw;xP=1;var e=ey();function t(){this.__data__=e?e(null):{},this.size=0}return gw=t,gw}var yw,bP;function $Q(){if(bP)return yw;bP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return yw=e,yw}var xw,wP;function IQ(){if(wP)return xw;wP=1;var e=ey(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(s){var l=this.__data__;if(e){var u=l[s];return u===t?void 0:u}return r.call(l,s)?l[s]:void 0}return xw=a,xw}var bw,jP;function LQ(){if(jP)return bw;jP=1;var e=ey(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var s=this.__data__;return e?s[a]!==void 0:n.call(s,a)}return bw=r,bw}var ww,SP;function zQ(){if(SP)return ww;SP=1;var e=ey(),t="__lodash_hash_undefined__";function n(r,a){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=e&&a===void 0?t:a,this}return ww=n,ww}var jw,_P;function BQ(){if(_P)return jw;_P=1;var e=DQ(),t=$Q(),n=IQ(),r=LQ(),a=zQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return Ew=t,Ew}var Aw,kP;function WQ(){if(kP)return Aw;kP=1;var e=ty();function t(n,r){var a=this.__data__,s=e(a,n);return s<0?(++this.size,a.push([n,r])):a[s][1]=r,this}return Aw=t,Aw}var Tw,MP;function ny(){if(MP)return Tw;MP=1;var e=qQ(),t=FQ(),n=UQ(),r=HQ(),a=WQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Zo=function(t){return ml(t)&&t.indexOf("%")===t.length-1},Ee=function(t){return mJ(t)&&!zh(t)},pJ=function(t){return Je(t)},Ln=function(t){return Ee(t)||ml(t)},vJ=0,Vu=function(t){var n=++vJ;return"".concat(t||"").concat(n)},_r=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ee(t)&&!ml(t))return r;var s;if(Zo(t)){var l=t.indexOf("%");s=n*parseFloat(t.slice(0,l))/100}else s=+t;return zh(s)&&(s=r),a&&s>n&&(s=n),s},Ks=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},gJ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function _J(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function k_(e){"@babel/helpers - typeof";return k_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k_(e)}var sR={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},as=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},oR=null,nj=null,lO=function e(t){if(t===oR&&Array.isArray(nj))return nj;var n=[];return y.Children.forEach(t,function(r){Je(r)||(uJ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),nj=n,oR=t,n};function oa(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return as(a)}):r=[as(t)],lO(e).forEach(function(a){var s=sa(a,"type.displayName")||sa(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function ea(e,t){var n=oa(e,t);return n&&n[0]}var lR=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ee(r)||r<=0||!Ee(a)||a<=0)},NJ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],CJ=function(t){return t&&t.type&&ml(t.type)&&NJ.indexOf(t.type)>=0},OJ=function(t){return t&&k_(t)==="object"&&"clipDot"in t},EJ=function(t,n,r,a){var s,l=(s=tj?.[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!Ye(t)&&(a&&l.includes(n)||bJ.includes(n))||r&&oO.includes(n)},qe=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!Wu(a))return null;var s={};return Object.keys(a).forEach(function(l){var u;EJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(s[l]=a[l])}),s},M_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return cR(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function PJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function R_(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=MJ(e,kJ),m=a||{width:n,height:r,x:0,y:0},p=et("recharts-surface",s);return W.createElement("svg",P_({},qe(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var RJ=["children","className"];function D_(){return D_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $J(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Nt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=DJ(e,RJ),s=et("recharts-layer",r);return W.createElement("g",D_({className:s},qe(a,!0),{ref:t}),n)}),Va=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;ss?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(s);++a=s?n:e(n,r,a)}return aj=t,aj}var ij,hR;function Zz(){if(hR)return ij;hR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+s+"]");function d(f){return u.test(f)}return ij=d,ij}var sj,mR;function zJ(){if(mR)return sj;mR=1;function e(t){return t.split("")}return sj=e,sj}var oj,pR;function BJ(){if(pR)return oj;pR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",w="["+s+"]?",b="(?:"+x+"(?:"+[m,p,g].join("|")+")"+w+j+")*",N=w+j+b,E="(?:"+[m+u+"?",u,p,g,l].join("|")+")",O=RegExp(d+"(?="+d+")|"+E+N,"g");function A(C){return C.match(O)||[]}return oj=A,oj}var lj,vR;function qJ(){if(vR)return lj;vR=1;var e=zJ(),t=Zz(),n=BJ();function r(a){return t(a)?n(a):e(a)}return lj=r,lj}var cj,gR;function FJ(){if(gR)return cj;gR=1;var e=LJ(),t=Zz(),n=qJ(),r=Gz();function a(s){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[s]()+f}}return cj=a,cj}var uj,yR;function UJ(){if(yR)return uj;yR=1;var e=FJ(),t=e("toUpperCase");return uj=t,uj}var HJ=UJ();const iy=Rt(HJ);function Zt(e){return function(){return e}}const Qz=Math.cos,Pv=Math.sin,Qa=Math.sqrt,Rv=Math.PI,sy=2*Rv,$_=Math.PI,I_=2*$_,Vo=1e-6,WJ=I_-Vo;function Jz(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Jz;const n=10**t;return function(r){this._+=r[0];for(let a=1,s=r.length;aVo)if(!(Math.abs(p*d-f*m)>Vo)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,w=d*d+f*f,b=x*x+j*j,N=Math.sqrt(w),E=Math.sqrt(g),O=s*Math.tan(($_-Math.acos((w+g-b)/(2*N*E)))/2),A=O/E,C=O/N;Math.abs(A-1)>Vo&&this._append`L${t+A*m},${n+A*p}`,this._append`A${s},${s},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,s,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-s:s-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Vo||Math.abs(this._y1-m)>Vo)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%I_+I_),g>WJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Vo&&this._append`A${r},${r},0,${+(g>=$_)},${p},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function cO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new GJ(t)}function uO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function eB(e){this._context=e}eB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function oy(e){return new eB(e)}function tB(e){return e[0]}function nB(e){return e[1]}function rB(e,t){var n=Zt(!0),r=null,a=oy,s=null,l=cO(u);e=typeof e=="function"?e:e===void 0?tB:Zt(e),t=typeof t=="function"?t:t===void 0?nB:Zt(t);function u(d){var f,m=(d=uO(d)).length,p,g=!1,x;for(r==null&&(s=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(O[j],A[j]);u.lineEnd(),u.areaEnd()}N&&(O[g]=+e(b,g,p),A[g]=+t(b,g,p),u.point(r?+r(b,g,p):O[g],n?+n(b,g,p):A[g]))}if(E)return u=null,E+""||null}function m(){return rB().defined(a).curve(l).context(s)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Zt(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Zt(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Zt(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Zt(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Zt(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Zt(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Zt(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,s!=null&&(u=l(s)),f):l},f.context=function(p){return arguments.length?(p==null?s=u=null:u=l(s=p),f):s},f}class aB{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function YJ(e){return new aB(e,!0)}function KJ(e){return new aB(e,!1)}const dO={draw(e,t){const n=Qa(t/Rv);e.moveTo(n,0),e.arc(0,0,n,0,sy)}},XJ={draw(e,t){const n=Qa(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},iB=Qa(1/3),ZJ=iB*2,QJ={draw(e,t){const n=Qa(t/ZJ),r=n*iB;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},JJ={draw(e,t){const n=Qa(t),r=-n/2;e.rect(r,r,n,n)}},eee=.8908130915292852,sB=Pv(Rv/10)/Pv(7*Rv/10),tee=Pv(sy/10)*sB,nee=-Qz(sy/10)*sB,ree={draw(e,t){const n=Qa(t*eee),r=tee*n,a=nee*n;e.moveTo(0,-n),e.lineTo(r,a);for(let s=1;s<5;++s){const l=sy*s/5,u=Qz(l),d=Pv(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},dj=Qa(3),aee={draw(e,t){const n=-Qa(t/(dj*3));e.moveTo(0,n*2),e.lineTo(-dj*n,-n),e.lineTo(dj*n,-n),e.closePath()}},ja=-.5,Sa=Qa(3)/2,L_=1/Qa(12),iee=(L_/2+1)*3,see={draw(e,t){const n=Qa(t/iee),r=n/2,a=n*L_,s=r,l=n*L_+n,u=-s,d=l;e.moveTo(r,a),e.lineTo(s,l),e.lineTo(u,d),e.lineTo(ja*r-Sa*a,Sa*r+ja*a),e.lineTo(ja*s-Sa*l,Sa*s+ja*l),e.lineTo(ja*u-Sa*d,Sa*u+ja*d),e.lineTo(ja*r+Sa*a,ja*a-Sa*r),e.lineTo(ja*s+Sa*l,ja*l-Sa*s),e.lineTo(ja*u+Sa*d,ja*d-Sa*u),e.closePath()}};function oee(e,t){let n=null,r=cO(a);e=typeof e=="function"?e:Zt(e||dO),t=typeof t=="function"?t:Zt(t===void 0?64:+t);function a(){let s;if(n||(n=s=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(e=typeof s=="function"?s:Zt(s),a):e},a.size=function(s){return arguments.length?(t=typeof s=="function"?s:Zt(+s),a):t},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function Dv(){}function $v(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function oB(e){this._context=e}oB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:$v(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:$v(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lee(e){return new oB(e)}function lB(e){this._context=e}lB.prototype={areaStart:Dv,areaEnd:Dv,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:$v(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function cee(e){return new lB(e)}function cB(e){this._context=e}cB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:$v(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function uee(e){return new cB(e)}function uB(e){this._context=e}uB.prototype={areaStart:Dv,areaEnd:Dv,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function dee(e){return new uB(e)}function xR(e){return e<0?-1:1}function bR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(s*a+l*r)/(r+a);return(xR(s)+xR(l))*Math.min(Math.abs(s),Math.abs(l),.5*Math.abs(u))||0}function wR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function fj(e,t,n){var r=e._x0,a=e._y0,s=e._x1,l=e._y1,u=(s-r)/3;e._context.bezierCurveTo(r+u,a+u*t,s-u,l-u*n,s,l)}function Iv(e){this._context=e}Iv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:fj(this,this._t0,wR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,fj(this,wR(this,n=bR(this,e,t)),n);break;default:fj(this,this._t0,n=bR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function dB(e){this._context=new fB(e)}(dB.prototype=Object.create(Iv.prototype)).point=function(e,t){Iv.prototype.point.call(this,t,e)};function fB(e){this._context=e}fB.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,s){this._context.bezierCurveTo(t,e,r,n,s,a)}};function fee(e){return new Iv(e)}function hee(e){return new dB(e)}function hB(e){this._context=e}hB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=jR(e),a=jR(t),s=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/s[t];for(s[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function pee(e){return new ly(e,.5)}function vee(e){return new ly(e,0)}function gee(e){return new ly(e,1)}function lu(e,t){if((l=e.length)>1)for(var n=1,r,a,s=e[t[0]],l,u=s.length;n=0;)n[t]=t;return n}function yee(e,t){return e[t]}function xee(e){const t=[];return t.key=e,t}function bee(){var e=Zt([]),t=z_,n=lu,r=yee;function a(s){var l=Array.from(e.apply(this,arguments),xee),u,d=l.length,f=-1,m;for(const p of s)for(u=0,++f;u0){for(var n,r,a=0,s=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,s=r.length;n0)||!((s=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,s,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Aee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var mB={symbolCircle:dO,symbolCross:XJ,symbolDiamond:QJ,symbolSquare:JJ,symbolStar:ree,symbolTriangle:aee,symbolWye:see},Tee=Math.PI/180,kee=function(t){var n="symbol".concat(iy(t));return mB[n]||dO},Mee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*Tee;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},Pee=function(t,n){mB["symbol".concat(iy(t))]=n},fO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,s=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=Eee(t,_ee),f=_R(_R({},d),{},{type:r,size:s,sizeType:u}),m=function(){var b=kee(r),N=oee().type(b).size(Mee(s,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=qe(f,!0);return g===+g&&x===+x&&s===+s?W.createElement("path",B_({},j,{className:et("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};fO.registerSymbol=Pee;function cu(e){"@babel/helpers - typeof";return cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cu(e)}function q_(){return q_=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var E=x.inactive?f:x.color;return W.createElement("li",q_({className:b,style:p,key:"legend-item-".concat(j)},pl(r.props,x,j)),W.createElement(R_,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:s==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);If(hO,"displayName","Legend");If(hO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var hj,CR;function Uee(){if(CR)return hj;CR=1;var e=ny();function t(){this.__data__=new e,this.size=0}return hj=t,hj}var mj,OR;function Hee(){if(OR)return mj;OR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return mj=e,mj}var pj,ER;function Wee(){if(ER)return pj;ER=1;function e(t){return this.__data__.get(t)}return pj=e,pj}var vj,AR;function Vee(){if(AR)return vj;AR=1;function e(t){return this.__data__.has(t)}return vj=e,vj}var gj,TR;function Gee(){if(TR)return gj;TR=1;var e=ny(),t=rO(),n=aO(),r=200;function a(s,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var w=p.get(l),b=p.get(u);if(w&&b)return w==u&&b==l;var N=-1,E=!0,O=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return zj=t,zj}var Bj,eD;function ste(){if(eD)return Bj;eD=1;var e=ms(),t=gO(),n=ps(),r="[object Arguments]",a="[object Array]",s="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",w="[object WeakMap]",b="[object ArrayBuffer]",N="[object DataView]",E="[object Float32Array]",O="[object Float64Array]",A="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",R="[object Uint16Array]",L="[object Uint32Array]",D={};D[E]=D[O]=D[A]=D[C]=D[k]=D[T]=D[M]=D[R]=D[L]=!0,D[r]=D[a]=D[b]=D[s]=D[N]=D[l]=D[u]=D[d]=D[f]=D[m]=D[p]=D[g]=D[x]=D[j]=D[w]=!1;function U(V){return n(V)&&t(V.length)&&!!D[e(V)]}return Bj=U,Bj}var qj,tD;function _B(){if(tD)return qj;tD=1;function e(t){return function(n){return t(n)}}return qj=e,qj}var vf={exports:{}};vf.exports;var nD;function ote(){return nD||(nD=1,(function(e,t){var n=Hz(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(vf,vf.exports)),vf.exports}var Fj,rD;function NB(){if(rD)return Fj;rD=1;var e=ste(),t=_B(),n=ote(),r=n&&n.isTypedArray,a=r?t(r):e;return Fj=a,Fj}var Uj,aD;function lte(){if(aD)return Uj;aD=1;var e=rte(),t=pO(),n=Ur(),r=SB(),a=vO(),s=NB(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&s(f),w=p||g||x||j,b=w?e(f.length,String):[],N=b.length;for(var E in f)(m||u.call(f,E))&&!(w&&(E=="length"||x&&(E=="offset"||E=="parent")||j&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||a(E,N)))&&b.push(E);return b}return Uj=d,Uj}var Hj,iD;function cte(){if(iD)return Hj;iD=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return Hj=t,Hj}var Wj,sD;function CB(){if(sD)return Wj;sD=1;function e(t,n){return function(r){return t(n(r))}}return Wj=e,Wj}var Vj,oD;function ute(){if(oD)return Vj;oD=1;var e=CB(),t=e(Object.keys,Object);return Vj=t,Vj}var Gj,lD;function dte(){if(lD)return Gj;lD=1;var e=cte(),t=ute(),n=Object.prototype,r=n.hasOwnProperty;function a(s){if(!e(s))return t(s);var l=[];for(var u in Object(s))r.call(s,u)&&u!="constructor"&&l.push(u);return l}return Gj=a,Gj}var Yj,cD;function Bh(){if(cD)return Yj;cD=1;var e=tO(),t=gO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Yj=n,Yj}var Kj,uD;function cy(){if(uD)return Kj;uD=1;var e=lte(),t=dte(),n=Bh();function r(a){return n(a)?e(a):t(a)}return Kj=r,Kj}var Xj,dD;function fte(){if(dD)return Xj;dD=1;var e=Jee(),t=nte(),n=cy();function r(a){return e(a,n,t)}return Xj=r,Xj}var Zj,fD;function hte(){if(fD)return Zj;fD=1;var e=fte(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(s,l,u,d,f,m){var p=u&t,g=e(s),x=g.length,j=e(l),w=j.length;if(x!=w&&!p)return!1;for(var b=x;b--;){var N=g[b];if(!(p?N in l:r.call(l,N)))return!1}var E=m.get(s),O=m.get(l);if(E&&O)return E==l&&O==s;var A=!0;m.set(s,l),m.set(l,s);for(var C=p;++b-1}return S1=t,S1}var _1,zD;function Pte(){if(zD)return _1;zD=1;function e(t,n,r){for(var a=-1,s=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return s(N);j=!1,g=r,b=new e}else b=f?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Yte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Kte(e){return e.value}function Xte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=Gte(t,zte);return W.createElement(hO,n)}var GD=1,sl=(function(e){function t(){var n;Bte(this,t);for(var r=arguments.length,a=new Array(r),s=0;sGD||Math.abs(a.height-this.lastBoundingBox.height)>GD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Yi({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&s==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Yi(Yi({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Yi(Yi({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Xte(s,Yi(Yi({},this.props),{},{payload:kB(m,f,Kte)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Yi(Yi({},this.defaultProps),r.props),l=s.layout;return l==="vertical"&&Ee(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);uy(sl,"displayName","Legend");uy(sl,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var A1,YD;function Zte(){if(YD)return A1;YD=1;var e=Lh(),t=pO(),n=Ur(),r=e?e.isConcatSpreadable:void 0;function a(s){return n(s)||t(s)||!!(r&&s&&s[r])}return A1=a,A1}var T1,KD;function RB(){if(KD)return T1;KD=1;var e=jB(),t=Zte();function n(r,a,s,l,u){var d=-1,f=r.length;for(s||(s=t),u||(u=[]);++d0&&s(m)?a>1?n(m,a-1,s,l,u):e(u,m):l||(u[u.length]=m)}return u}return T1=n,T1}var k1,XD;function Qte(){if(XD)return k1;XD=1;function e(t){return function(n,r,a){for(var s=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++s];if(r(l[f],f,l)===!1)break}return n}}return k1=e,k1}var M1,ZD;function Jte(){if(ZD)return M1;ZD=1;var e=Qte(),t=e();return M1=t,M1}var P1,QD;function DB(){if(QD)return P1;QD=1;var e=Jte(),t=cy();function n(r,a){return r&&e(r,a,t)}return P1=n,P1}var R1,JD;function ene(){if(JD)return R1;JD=1;var e=Bh();function t(n,r){return function(a,s){if(a==null)return a;if(!e(a))return n(a,s);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||s&&d&&m||!a&&m||!l)return 1;if(!s&&!u&&!p&&n=f)return m;var p=a[s];return m*(p=="desc"?-1:1)}}return n.index-r.index}return z1=t,z1}var B1,i4;function ane(){if(i4)return B1;i4=1;var e=iO(),t=sO(),n=Ci(),r=$B(),a=tne(),s=_B(),l=rne(),u=Gu(),d=Ur();function f(m,p,g){p.length?p=e(p,function(w){return d(w)?function(b){return t(b,w.length===1?w[0]:w)}:w}):p=[u];var x=-1;p=e(p,s(n));var j=r(m,function(w,b,N){var E=e(p,function(O){return O(w)});return{criteria:E,index:++x,value:w}});return a(j,function(w,b){return l(w,b,g)})}return B1=f,B1}var q1,s4;function ine(){if(s4)return q1;s4=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return q1=e,q1}var F1,o4;function sne(){if(o4)return F1;o4=1;var e=ine(),t=Math.max;function n(r,a,s){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++s>=e)return arguments[0]}else s=0;return a.apply(void 0,arguments)}}return V1=r,V1}var G1,f4;function une(){if(f4)return G1;f4=1;var e=lne(),t=cne(),n=t(e);return G1=n,G1}var Y1,h4;function dne(){if(h4)return Y1;h4=1;var e=Gu(),t=sne(),n=une();function r(a,s){return n(t(a,s,e),a+"")}return Y1=r,Y1}var K1,m4;function dy(){if(m4)return K1;m4=1;var e=nO(),t=Bh(),n=vO(),r=fo();function a(s,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],s):!1}return K1=a,K1}var X1,p4;function fne(){if(p4)return X1;p4=1;var e=RB(),t=ane(),n=dne(),r=dy(),a=n(function(s,l){if(s==null)return[];var u=l.length;return u>1&&r(s,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(s,e(l,1),[])});return X1=a,X1}var hne=fne();const bO=Rt(hne);function Lf(e){"@babel/helpers - typeof";return Lf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Lf(e)}function H_(){return H_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(nf,"-left"),Ee(n)&&t&&Ee(t.x)&&n=t.y),"".concat(nf,"-top"),Ee(r)&&t&&Ee(t.y)&&rw?Math.max(m,d[r]):Math.max(p,d[r])}function Ene(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function Ane(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,s=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=y4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=y4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=Ene({translateX:m,translateY:p,useTranslate3d:u})):f=Cne,{cssProperties:f,cssClasses:One({translateX:m,translateY:p,coordinate:n})}}function du(e){"@babel/helpers - typeof";return du=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},du(e)}function x4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function b4(e){for(var t=1;tw4||Math.abs(r.height-this.state.lastBoundingBox.height)>w4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,w=a.reverseDirection,b=a.useTranslate3d,N=a.viewBox,E=a.wrapperStyle,O=Ane({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:N}),A=O.cssClasses,C=O.cssProperties,k=b4(b4({transition:g&&s?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return W.createElement("div",{tabIndex:-1,className:A,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),zne=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Ol={isSsr:zne()};function fu(e){"@babel/helpers - typeof";return fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fu(e)}function j4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function S4(e){for(var t=1;t0;return W.createElement(Lne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:s,coordinate:m,hasPayload:k,offset:x,position:b,reverseDirection:N,useTranslate3d:E,viewBox:O,wrapperStyle:A},Kne(f,S4(S4({},this.props),{},{payload:C})))}}])})(y.PureComponent);wO(oi,"displayName","Tooltip");wO(oi,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Ol.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var Q1,_4;function Xne(){if(_4)return Q1;_4=1;var e=Ni(),t=function(){return e.Date.now()};return Q1=t,Q1}var J1,N4;function Zne(){if(N4)return J1;N4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return J1=t,J1}var eS,C4;function Qne(){if(C4)return eS;C4=1;var e=Zne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return eS=n,eS}var tS,O4;function FB(){if(O4)return tS;O4=1;var e=Qne(),t=fo(),n=Hu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=s.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return tS=d,tS}var nS,E4;function Jne(){if(E4)return nS;E4=1;var e=fo(),t=Xne(),n=FB(),r="Expected a function",a=Math.max,s=Math.min;function l(u,d,f){var m,p,g,x,j,w,b=0,N=!1,E=!1,O=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,E="maxWait"in f,g=E?a(n(f.maxWait)||0,d):g,O="trailing"in f?!!f.trailing:O);function A(V){var H=m,G=p;return m=p=void 0,b=V,x=u.apply(G,H),x}function C(V){return b=V,j=setTimeout(M,d),N?A(V):x}function k(V){var H=V-w,G=V-b,$=d-H;return E?s($,g-G):$}function T(V){var H=V-w,G=V-b;return w===void 0||H>=d||H<0||E&&G>=g}function M(){var V=t();if(T(V))return R(V);j=setTimeout(M,k(V))}function R(V){return j=void 0,O&&m?A(V):(m=p=void 0,x)}function L(){j!==void 0&&clearTimeout(j),b=0,m=w=p=j=void 0}function D(){return j===void 0?x:R(t())}function U(){var V=t(),H=T(V);if(m=arguments,p=this,w=V,H){if(j===void 0)return C(w);if(E)return clearTimeout(j),j=setTimeout(M,d),A(w)}return j===void 0&&(j=setTimeout(M,d)),x}return U.cancel=L,U.flush=D,U}return nS=l,nS}var rS,A4;function ere(){if(A4)return rS;A4=1;var e=Jne(),t=fo(),n="Expected a function";function r(a,s,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,s,{leading:u,maxWait:s,trailing:d})}return rS=r,rS}var tre=ere();const UB=Rt(tre);function Bf(e){"@babel/helpers - typeof";return Bf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bf(e)}function T4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Lp(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(V=UB(V,w,{trailing:!0,leading:!1}));var H=new ResizeObserver(V),G=C.current.getBoundingClientRect(),$=G.width,I=G.height;return D($,I),H.observe(C.current),function(){H.disconnect()}},[D,w]);var U=y.useMemo(function(){var V=R.containerWidth,H=R.containerHeight;if(V<0||H<0)return null;Va(Zo(l)||Zo(d),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,l,d),Va(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Zo(l)?V:l,$=Zo(d)?H:d;n&&n>0&&(G?$=G/n:$&&(G=$*n),g&&$>g&&($=g)),Va(G>0||$>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,G,$,l,d,m,p,n);var I=!Array.isArray(x)&&as(x.type).endsWith("Chart");return W.Children.map(x,function(q){return W.isValidElement(q)?y.cloneElement(q,Lp({width:G,height:$},I?{style:Lp({height:"100%",width:"100%",maxHeight:$,maxWidth:G},q.props.style)}:{})):q})},[n,x,d,g,p,m,R,l]);return W.createElement("div",{id:b?"".concat(b):void 0,className:et("recharts-responsive-container",N),style:Lp(Lp({},A),{},{width:l,height:d,minWidth:m,minHeight:p,maxHeight:g}),ref:C},U)}),fy=function(t){return null};fy.displayName="Cell";function qf(e){"@babel/helpers - typeof";return qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qf(e)}function M4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Y_(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Ol.isSsr)return{width:0,height:0};var r=vre(n),a=JSON.stringify({text:t,copyStyle:r});if(Cc.widthCache[a])return Cc.widthCache[a];try{var s=document.getElementById(P4);s||(s=document.createElement("span"),s.setAttribute("id",P4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var l=Y_(Y_({},pre),r);Object.assign(s.style,l),s.textContent="".concat(t);var u=s.getBoundingClientRect(),d={width:u.width,height:u.height};return Cc.widthCache[a]=d,++Cc.cacheCount>mre&&(Cc.cacheCount=0,Cc.widthCache={}),d}catch{return{width:0,height:0}}},gre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function Ff(e){"@babel/helpers - typeof";return Ff=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ff(e)}function Fv(e,t){return wre(e)||bre(e,t)||xre(e,t)||yre()}function yre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xre(e,t){if(e){if(typeof e=="string")return R4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R4(e,t)}}function R4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Dre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function B4(e,t){return zre(e)||Lre(e,t)||Ire(e,t)||$re()}function $re(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ire(e,t){if(e){if(typeof e=="string")return q4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q4(e,t)}}function q4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function($,I){var q=I.word,Z=I.width,ee=$[$.length-1];if(ee&&(a==null||s||ee.width+Z+rI.width?$:I})};if(!m)return x;for(var w="…",b=function(G){var $=p.slice(0,G),I=GB({breakAll:f,style:d,children:$+w}).wordsWithComputedWidth,q=g(I),Z=q.length>l||j(q).width>Number(a);return[Z,q]},N=0,E=p.length-1,O=0,A;N<=E&&O<=p.length-1;){var C=Math.floor((N+E)/2),k=C-1,T=b(k),M=B4(T,2),R=M[0],L=M[1],D=b(C),U=B4(D,1),V=U[0];if(!R&&!V&&(N=C+1),R&&V&&(E=C-1),!R&&V){A=L;break}O++}return A||x},F4=function(t){var n=Je(t)?[]:t.toString().split(VB);return[{words:n}]},qre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,s=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Ol.isSsr){var d,f,m=GB({breakAll:l,children:a,style:s});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return F4(a);return Bre({breakAll:l,children:a,maxLines:u,style:s},d,f,n,r)}return F4(a)},U4="#808080",vl=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,w=j===void 0?"end":j,b=t.fill,N=b===void 0?U4:b,E=z4(t,Pre),O=y.useMemo(function(){return qre({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),A=E.dx,C=E.dy,k=E.angle,T=E.className,M=E.breakAll,R=z4(E,Rre);if(!Ln(r)||!Ln(s))return null;var L=r+(Ee(A)?A:0),D=s+(Ee(C)?C:0),U;switch(w){case"start":U=aS("calc(".concat(f,")"));break;case"middle":U=aS("calc(".concat((O.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:U=aS("calc(".concat(O.length-1," * -").concat(u,")"));break}var V=[];if(p){var H=O[0].width,G=E.width;V.push("scale(".concat((Ee(G)?G/H:1)/H,")"))}return k&&V.push("rotate(".concat(k,", ").concat(L,", ").concat(D,")")),V.length&&(R.transform=V.join(" ")),W.createElement("text",K_({},qe(R,!0),{x:L,y:D,className:et("recharts-text",T),textAnchor:x,fill:N.includes("url")?U4:N}),O.map(function($,I){var q=$.words.join(M?"":" ");return W.createElement("tspan",{x:L,dy:I===0?U:u,key:"".concat(q,"-").concat(I)},q)}))};function no(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function Fre(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function jO(e){let t,n,r;e.length!==2?(t=no,n=(u,d)=>no(e(u),d),r=(u,d)=>e(u)-d):(t=e===no||e===Fre?e:Ure,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:s}}function Ure(){return 0}function YB(e){return e===null?NaN:+e}function*Hre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Wre=jO(no),qh=Wre.right;jO(YB).center;class H4 extends Map{constructor(t,n=Yre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(W4(this,t))}has(t){return super.has(W4(this,t))}set(t,n){return super.set(Vre(this,t),n)}delete(t){return super.delete(Gre(this,t))}}function W4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Vre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Gre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Yre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Kre(e=no){if(e===no)return KB;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function KB(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Xre=Math.sqrt(50),Zre=Math.sqrt(10),Qre=Math.sqrt(2);function Uv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),l=s>=Xre?10:s>=Zre?5:s>=Qre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=s-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function G4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function XB(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?KB:Kre(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));XB(e,t,x,j,a)}const s=e[t];let l=n,u=r;for(rf(e,n,t),a(e[r],s)>0&&rf(e,n,r);l0;)--u}a(e[n],s)===0?rf(e,n,u):(++u,rf(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function rf(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Jre(e,t,n){if(e=Float64Array.from(Hre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return G4(e);if(t>=1)return V4(e);var r,a=(r-1)*t,s=Math.floor(a),l=V4(XB(e,s).subarray(0,s+1)),u=G4(e.subarray(s+1));return l+(u-l)*(a-s)}}function eae(e,t,n=YB){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,s=Math.floor(a),l=+n(e[s],s,e),u=+n(e[s+1],s+1,e);return l+(u-l)*(a-s)}}function tae(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Bp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Bp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=rae.exec(e))?new $r(t[1],t[2],t[3],1):(t=aae.exec(e))?new $r(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=iae.exec(e))?Bp(t[1],t[2],t[3],t[4]):(t=sae.exec(e))?Bp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=oae.exec(e))?e3(t[1],t[2]/100,t[3]/100,1):(t=lae.exec(e))?e3(t[1],t[2]/100,t[3]/100,t[4]):Y4.hasOwnProperty(e)?Z4(Y4[e]):e==="transparent"?new $r(NaN,NaN,NaN,0):null}function Z4(e){return new $r(e>>16&255,e>>8&255,e&255,1)}function Bp(e,t,n,r){return r<=0&&(e=t=n=NaN),new $r(e,t,n,r)}function dae(e){return e instanceof Fh||(e=Vf(e)),e?(e=e.rgb(),new $r(e.r,e.g,e.b,e.opacity)):new $r}function eN(e,t,n,r){return arguments.length===1?dae(e):new $r(e,t,n,r??1)}function $r(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}_O($r,eN,QB(Fh,{brighter(e){return e=e==null?Hv:Math.pow(Hv,e),new $r(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Hf:Math.pow(Hf,e),new $r(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new $r(ol(this.r),ol(this.g),ol(this.b),Wv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Q4,formatHex:Q4,formatHex8:fae,formatRgb:J4,toString:J4}));function Q4(){return`#${Qo(this.r)}${Qo(this.g)}${Qo(this.b)}`}function fae(){return`#${Qo(this.r)}${Qo(this.g)}${Qo(this.b)}${Qo((isNaN(this.opacity)?1:this.opacity)*255)}`}function J4(){const e=Wv(this.opacity);return`${e===1?"rgb(":"rgba("}${ol(this.r)}, ${ol(this.g)}, ${ol(this.b)}${e===1?")":`, ${e})`}`}function Wv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ol(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Qo(e){return e=ol(e),(e<16?"0":"")+e.toString(16)}function e3(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ua(e,t,n,r)}function JB(e){if(e instanceof Ua)return new Ua(e.h,e.s,e.l,e.opacity);if(e instanceof Fh||(e=Vf(e)),!e)return new Ua;if(e instanceof Ua)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,u=s-a,d=(s+a)/2;return u?(t===s?l=(n-r)/u+(n0&&d<1?0:l,new Ua(l,u,d,e.opacity)}function hae(e,t,n,r){return arguments.length===1?JB(e):new Ua(e,t,n,r??1)}function Ua(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}_O(Ua,hae,QB(Fh,{brighter(e){return e=e==null?Hv:Math.pow(Hv,e),new Ua(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Hf:Math.pow(Hf,e),new Ua(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new $r(iS(e>=240?e-240:e+120,a,r),iS(e,a,r),iS(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new Ua(t3(this.h),qp(this.s),qp(this.l),Wv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Wv(this.opacity);return`${e===1?"hsl(":"hsla("}${t3(this.h)}, ${qp(this.s)*100}%, ${qp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function t3(e){return e=(e||0)%360,e<0?e+360:e}function qp(e){return Math.max(0,Math.min(1,e||0))}function iS(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const NO=e=>()=>e;function mae(e,t){return function(n){return e+n*t}}function pae(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function vae(e){return(e=+e)==1?e6:function(t,n){return n-t?pae(t,n,e):NO(isNaN(t)?n:t)}}function e6(e,t){var n=t-e;return n?mae(e,n):NO(isNaN(e)?t:e)}const n3=(function e(t){var n=vae(t);function r(a,s){var l=n((a=eN(a)).r,(s=eN(s)).r),u=n(a.g,s.g),d=n(a.b,s.b),f=e6(a.opacity,s.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function gae(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(s){for(a=0;an&&(s=t.slice(n,s),u[l]?u[l]+=s:u[++l]=s),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:Vv(r,a)})),n=sS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Eae(e,t,n){var r=e[0],a=e[1],s=t[0],l=t[1];return a2?Aae:Eae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?s:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),Vv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,Gv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=CO,m()},p.clamp=function(g){return arguments.length?(l=g?!0:Nr,m()):l!==Nr},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(s=g,p):s},function(g,x){return r=g,a=x,m()}}function OO(){return hy()(Nr,Nr)}function Tae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Yv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function hu(e){return e=Yv(Math.abs(e)),e?e[1]:NaN}function kae(e,t){return function(n,r){for(var a=n.length,s=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),s.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return s.reverse().join(t)}}function Mae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Pae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Gf(e){if(!(t=Pae.exec(e)))throw new Error("invalid format: "+e);var t;return new EO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Gf.prototype=EO.prototype;function EO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}EO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Rae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var t6;function Dae(e,t){var n=Yv(e,t);if(!n)return e+"";var r=n[0],a=n[1],s=a-(t6=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Yv(e,Math.max(0,t+s-1))[0]}function a3(e,t){var n=Yv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const i3={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Tae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>a3(e*100,t),r:a3,s:Dae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function s3(e){return e}var o3=Array.prototype.map,l3=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function $ae(e){var t=e.grouping===void 0||e.thousands===void 0?s3:kae(o3.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?s3:Mae(o3.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=Gf(p);var g=p.fill,x=p.align,j=p.sign,w=p.symbol,b=p.zero,N=p.width,E=p.comma,O=p.precision,A=p.trim,C=p.type;C==="n"?(E=!0,C="g"):i3[C]||(O===void 0&&(O=12),A=!0,C="g"),(b||g==="0"&&x==="=")&&(b=!0,g="0",x="=");var k=w==="$"?n:w==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=w==="$"?r:/[%p]/.test(C)?l:"",M=i3[C],R=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function L(D){var U=k,V=T,H,G,$;if(C==="c")V=M(D)+V,D="";else{D=+D;var I=D<0||1/D<0;if(D=isNaN(D)?d:M(Math.abs(D),O),A&&(D=Rae(D)),I&&+D==0&&j!=="+"&&(I=!1),U=(I?j==="("?j:u:j==="-"||j==="("?"":j)+U,V=(C==="s"?l3[8+t6/3]:"")+V+(I&&j==="("?")":""),R){for(H=-1,G=D.length;++H$||$>57){V=($===46?a+D.slice(H+1):D.slice(H))+V,D=D.slice(0,H);break}}}E&&!b&&(D=t(D,1/0));var q=U.length+D.length+V.length,Z=q>1)+U+D+V+Z.slice(q);break;default:D=Z+U+D+V;break}return s(D)}return L.toString=function(){return p+""},L}function m(p,g){var x=f((p=Gf(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(hu(g)/3)))*3,w=Math.pow(10,-j),b=l3[8+j/3];return function(N){return x(w*N)+b}}return{format:f,formatPrefix:m}}var Fp,AO,n6;Iae({thousands:",",grouping:[3],currency:["$",""]});function Iae(e){return Fp=$ae(e),AO=Fp.format,n6=Fp.formatPrefix,Fp}function Lae(e){return Math.max(0,-hu(Math.abs(e)))}function zae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(hu(t)/3)))*3-hu(Math.abs(e)))}function Bae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,hu(t)-hu(e))+1}function r6(e,t,n,r){var a=Q_(e,t,n),s;switch(r=Gf(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(s=zae(a,l))&&(r.precision=s),n6(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Bae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=Lae(a))&&(r.precision=s-(r.type==="%")*2);break}}return AO(r)}function ho(e){var t=e.domain;return e.ticks=function(n){var r=t();return X_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return r6(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,s=r.length-1,l=r[a],u=r[s],d,f,m=10;for(u0;){if(f=Z_(l,u,n),f===d)return r[a]=l,r[s]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function Kv(){var e=OO();return e.copy=function(){return Uh(e,Kv())},Pa.apply(e,arguments),ho(e)}function a6(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Gv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return a6(e).unknown(t)},e=arguments.length?Array.from(e,Gv):[0,1],ho(n)}function i6(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],s=e[r],l;return sMath.pow(e,t)}function Wae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function d3(e){return(t,n)=>-e(-t,n)}function TO(e){const t=e(c3,u3),n=t.domain;let r=10,a,s;function l(){return a=Wae(r),s=Hae(r),n()[0]<0?(a=d3(a),s=d3(s),e(qae,Fae)):e(c3,u3),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(w)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(w=g>0?j/s(-g):j*s(g),!(wm)break;N.push(w)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=Gf(d)).precision==null&&(d.trim=!0),d=AO(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/s(Math.round(a(m)));return p*rn(i6(n(),{floor:u=>s(Math.floor(a(u))),ceil:u=>s(Math.ceil(a(u)))})),t}function s6(){const e=TO(hy()).domain([1,10]);return e.copy=()=>Uh(e,s6()).base(e.base()),Pa.apply(e,arguments),e}function f3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function h3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function kO(e){var t=1,n=e(f3(t),h3(t));return n.constant=function(r){return arguments.length?e(f3(t=+r),h3(t)):t},ho(n)}function o6(){var e=kO(hy());return e.copy=function(){return Uh(e,o6()).constant(e.constant())},Pa.apply(e,arguments)}function m3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Vae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Gae(e){return e<0?-e*e:e*e}function MO(e){var t=e(Nr,Nr),n=1;function r(){return n===1?e(Nr,Nr):n===.5?e(Vae,Gae):e(m3(n),m3(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},ho(t)}function PO(){var e=MO(hy());return e.copy=function(){return Uh(e,PO()).exponent(e.exponent())},Pa.apply(e,arguments),e}function Yae(){return PO.apply(null,arguments).exponent(.5)}function p3(e){return Math.sign(e)*e*e}function Kae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function l6(){var e=OO(),t=[0,1],n=!1,r;function a(s){var l=Kae(e(s));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(s){return e.invert(p3(s))},a.domain=function(s){return arguments.length?(e.domain(s),a):e.domain()},a.range=function(s){return arguments.length?(e.range((t=Array.from(s,Gv)).map(p3)),a):t.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(e.clamp(s),a):e.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return l6(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Pa.apply(a,arguments),ho(a)}function c6(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(s=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return u6().domain([e,t]).range(a).unknown(s)},Pa.apply(ho(l),arguments)}function d6(){var e=[.5],t=[0,1],n,r=1;function a(s){return s!=null&&s<=s?t[qh(e,s,0,r)]:n}return a.domain=function(s){return arguments.length?(e=Array.from(s),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(s){return arguments.length?(t=Array.from(s),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(s){var l=t.indexOf(s);return[e[l-1],e[l]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return d6().domain(e).range(t).unknown(n)},Pa.apply(a,arguments)}const oS=new Date,lS=new Date;function Bn(e,t,n,r){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const l=a(s),u=a.ceil(s);return s-l(t(s=new Date(+s),l==null?1:Math.floor(l)),s),a.range=(s,l,u)=>{const d=[];if(s=a.ceil(s),u=u==null?1:Math.floor(u),!(s0))return d;let f;do d.push(f=new Date(+s)),t(s,u),e(s);while(fBn(l=>{if(l>=l)for(;e(l),!s(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!s(l););else for(;--u>=0;)for(;t(l,1),!s(l););}),n&&(a.count=(s,l)=>(oS.setTime(+s),lS.setTime(+l),e(oS),e(lS),Math.floor(n(oS,lS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?l=>r(l)%s===0:l=>a.count(0,l)%s===0):a)),a}const Xv=Bn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Xv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Bn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Xv);Xv.range;const Qi=1e3,Ea=Qi*60,Ji=Ea*60,ls=Ji*24,RO=ls*7,v3=ls*30,cS=ls*365,Jo=Bn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Qi)},(e,t)=>(t-e)/Qi,e=>e.getUTCSeconds());Jo.range;const DO=Bn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Qi)},(e,t)=>{e.setTime(+e+t*Ea)},(e,t)=>(t-e)/Ea,e=>e.getMinutes());DO.range;const $O=Bn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ea)},(e,t)=>(t-e)/Ea,e=>e.getUTCMinutes());$O.range;const IO=Bn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Qi-e.getMinutes()*Ea)},(e,t)=>{e.setTime(+e+t*Ji)},(e,t)=>(t-e)/Ji,e=>e.getHours());IO.range;const LO=Bn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Ji)},(e,t)=>(t-e)/Ji,e=>e.getUTCHours());LO.range;const Hh=Bn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ea)/ls,e=>e.getDate()-1);Hh.range;const my=Bn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ls,e=>e.getUTCDate()-1);my.range;const f6=Bn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ls,e=>Math.floor(e/ls));f6.range;function El(e){return Bn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Ea)/RO)}const py=El(0),Zv=El(1),Xae=El(2),Zae=El(3),mu=El(4),Qae=El(5),Jae=El(6);py.range;Zv.range;Xae.range;Zae.range;mu.range;Qae.range;Jae.range;function Al(e){return Bn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/RO)}const vy=Al(0),Qv=Al(1),eie=Al(2),tie=Al(3),pu=Al(4),nie=Al(5),rie=Al(6);vy.range;Qv.range;eie.range;tie.range;pu.range;nie.range;rie.range;const zO=Bn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());zO.range;const BO=Bn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());BO.range;const cs=Bn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());cs.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Bn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});cs.range;const us=Bn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());us.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Bn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});us.range;function h6(e,t,n,r,a,s){const l=[[Jo,1,Qi],[Jo,5,5*Qi],[Jo,15,15*Qi],[Jo,30,30*Qi],[s,1,Ea],[s,5,5*Ea],[s,15,15*Ea],[s,30,30*Ea],[a,1,Ji],[a,3,3*Ji],[a,6,6*Ji],[a,12,12*Ji],[r,1,ls],[r,2,2*ls],[n,1,RO],[t,1,v3],[t,3,3*v3],[e,1,cS]];function u(f,m,p){const g=mb).right(l,g);if(x===l.length)return e.every(Q_(f/cS,m/cS,p));if(x===0)return Xv.every(Math.max(Q_(f,m,p),1));const[j,w]=l[g/l[x-1][2]53)return null;"w"in X||(X.w=1),"Z"in X?(Oe=dS(af(X.y,0,1)),We=Oe.getUTCDay(),Oe=We>4||We===0?Qv.ceil(Oe):Qv(Oe),Oe=my.offset(Oe,(X.V-1)*7),X.y=Oe.getUTCFullYear(),X.m=Oe.getUTCMonth(),X.d=Oe.getUTCDate()+(X.w+6)%7):(Oe=uS(af(X.y,0,1)),We=Oe.getDay(),Oe=We>4||We===0?Zv.ceil(Oe):Zv(Oe),Oe=Hh.offset(Oe,(X.V-1)*7),X.y=Oe.getFullYear(),X.m=Oe.getMonth(),X.d=Oe.getDate()+(X.w+6)%7)}else("W"in X||"U"in X)&&("w"in X||(X.w="u"in X?X.u%7:"W"in X?1:0),We="Z"in X?dS(af(X.y,0,1)).getUTCDay():uS(af(X.y,0,1)).getDay(),X.m=0,X.d="W"in X?(X.w+6)%7+X.W*7-(We+5)%7:X.w+X.U*7-(We+6)%7);return"Z"in X?(X.H+=X.Z/100|0,X.M+=X.Z%100,dS(X)):uS(X)}}function M(Y,pe,je,X){for(var Ae=0,Oe=pe.length,We=je.length,Ve,be;Ae=We)return-1;if(Ve=pe.charCodeAt(Ae++),Ve===37){if(Ve=pe.charAt(Ae++),be=C[Ve in g3?pe.charAt(Ae++):Ve],!be||(X=be(Y,je,X))<0)return-1}else if(Ve!=je.charCodeAt(X++))return-1}return X}function R(Y,pe,je){var X=f.exec(pe.slice(je));return X?(Y.p=m.get(X[0].toLowerCase()),je+X[0].length):-1}function L(Y,pe,je){var X=x.exec(pe.slice(je));return X?(Y.w=j.get(X[0].toLowerCase()),je+X[0].length):-1}function D(Y,pe,je){var X=p.exec(pe.slice(je));return X?(Y.w=g.get(X[0].toLowerCase()),je+X[0].length):-1}function U(Y,pe,je){var X=N.exec(pe.slice(je));return X?(Y.m=E.get(X[0].toLowerCase()),je+X[0].length):-1}function V(Y,pe,je){var X=w.exec(pe.slice(je));return X?(Y.m=b.get(X[0].toLowerCase()),je+X[0].length):-1}function H(Y,pe,je){return M(Y,t,pe,je)}function G(Y,pe,je){return M(Y,n,pe,je)}function $(Y,pe,je){return M(Y,r,pe,je)}function I(Y){return l[Y.getDay()]}function q(Y){return s[Y.getDay()]}function Z(Y){return d[Y.getMonth()]}function ee(Y){return u[Y.getMonth()]}function F(Y){return a[+(Y.getHours()>=12)]}function z(Y){return 1+~~(Y.getMonth()/3)}function K(Y){return l[Y.getUTCDay()]}function ie(Y){return s[Y.getUTCDay()]}function Q(Y){return d[Y.getUTCMonth()]}function he(Y){return u[Y.getUTCMonth()]}function ae(Y){return a[+(Y.getUTCHours()>=12)]}function we(Y){return 1+~~(Y.getUTCMonth()/3)}return{format:function(Y){var pe=k(Y+="",O);return pe.toString=function(){return Y},pe},parse:function(Y){var pe=T(Y+="",!1);return pe.toString=function(){return Y},pe},utcFormat:function(Y){var pe=k(Y+="",A);return pe.toString=function(){return Y},pe},utcParse:function(Y){var pe=T(Y+="",!0);return pe.toString=function(){return Y},pe}}}var g3={"-":"",_:" ",0:"0"},Qn=/^\s*\d+/,cie=/^%/,uie=/[\\^$*+?|[\]().{}]/g;function Ot(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",s=a.length;return r+(s[t.toLowerCase(),n]))}function fie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function hie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function mie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function pie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function vie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function y3(e,t,n){var r=Qn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function x3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function gie(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function yie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function xie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function b3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function bie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function w3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function wie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function jie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Sie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function _ie(e,t,n){var r=Qn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Nie(e,t,n){var r=cie.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Cie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Oie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function j3(e,t){return Ot(e.getDate(),t,2)}function Eie(e,t){return Ot(e.getHours(),t,2)}function Aie(e,t){return Ot(e.getHours()%12||12,t,2)}function Tie(e,t){return Ot(1+Hh.count(cs(e),e),t,3)}function m6(e,t){return Ot(e.getMilliseconds(),t,3)}function kie(e,t){return m6(e,t)+"000"}function Mie(e,t){return Ot(e.getMonth()+1,t,2)}function Pie(e,t){return Ot(e.getMinutes(),t,2)}function Rie(e,t){return Ot(e.getSeconds(),t,2)}function Die(e){var t=e.getDay();return t===0?7:t}function $ie(e,t){return Ot(py.count(cs(e)-1,e),t,2)}function p6(e){var t=e.getDay();return t>=4||t===0?mu(e):mu.ceil(e)}function Iie(e,t){return e=p6(e),Ot(mu.count(cs(e),e)+(cs(e).getDay()===4),t,2)}function Lie(e){return e.getDay()}function zie(e,t){return Ot(Zv.count(cs(e)-1,e),t,2)}function Bie(e,t){return Ot(e.getFullYear()%100,t,2)}function qie(e,t){return e=p6(e),Ot(e.getFullYear()%100,t,2)}function Fie(e,t){return Ot(e.getFullYear()%1e4,t,4)}function Uie(e,t){var n=e.getDay();return e=n>=4||n===0?mu(e):mu.ceil(e),Ot(e.getFullYear()%1e4,t,4)}function Hie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ot(t/60|0,"0",2)+Ot(t%60,"0",2)}function S3(e,t){return Ot(e.getUTCDate(),t,2)}function Wie(e,t){return Ot(e.getUTCHours(),t,2)}function Vie(e,t){return Ot(e.getUTCHours()%12||12,t,2)}function Gie(e,t){return Ot(1+my.count(us(e),e),t,3)}function v6(e,t){return Ot(e.getUTCMilliseconds(),t,3)}function Yie(e,t){return v6(e,t)+"000"}function Kie(e,t){return Ot(e.getUTCMonth()+1,t,2)}function Xie(e,t){return Ot(e.getUTCMinutes(),t,2)}function Zie(e,t){return Ot(e.getUTCSeconds(),t,2)}function Qie(e){var t=e.getUTCDay();return t===0?7:t}function Jie(e,t){return Ot(vy.count(us(e)-1,e),t,2)}function g6(e){var t=e.getUTCDay();return t>=4||t===0?pu(e):pu.ceil(e)}function ese(e,t){return e=g6(e),Ot(pu.count(us(e),e)+(us(e).getUTCDay()===4),t,2)}function tse(e){return e.getUTCDay()}function nse(e,t){return Ot(Qv.count(us(e)-1,e),t,2)}function rse(e,t){return Ot(e.getUTCFullYear()%100,t,2)}function ase(e,t){return e=g6(e),Ot(e.getUTCFullYear()%100,t,2)}function ise(e,t){return Ot(e.getUTCFullYear()%1e4,t,4)}function sse(e,t){var n=e.getUTCDay();return e=n>=4||n===0?pu(e):pu.ceil(e),Ot(e.getUTCFullYear()%1e4,t,4)}function ose(){return"+0000"}function _3(){return"%"}function N3(e){return+e}function C3(e){return Math.floor(+e/1e3)}var Oc,y6,x6;lse({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function lse(e){return Oc=lie(e),y6=Oc.format,Oc.parse,x6=Oc.utcFormat,Oc.utcParse,Oc}function cse(e){return new Date(e)}function use(e){return e instanceof Date?+e:+new Date(+e)}function qO(e,t,n,r,a,s,l,u,d,f){var m=OO(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),w=f("%I:%M"),b=f("%I %p"),N=f("%a %d"),E=f("%b %d"),O=f("%B"),A=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>Jre(e,s/r))},n.copy=function(){return S6(t).domain(e)},vs.apply(n,arguments)}function yy(){var e=0,t=.5,n=1,r=1,a,s,l,u,d,f=Nr,m,p=!1,g;function x(w){return isNaN(w=+w)?g:(w=.5+((w=+m(w))-s)*(r*wn}return hS=e,hS}var mS,T3;function pse(){if(T3)return mS;T3=1;var e=xy(),t=O6(),n=Gu();function r(a){return a&&a.length?e(a,n,t):void 0}return mS=r,mS}var vse=pse();const by=Rt(vse);var pS,k3;function E6(){if(k3)return pS;k3=1;function e(t,n){return te.e^s.s<0?1:-1;for(r=s.d.length,a=e.d.length,t=0,n=re.d[t]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};Me.decimalPlaces=Me.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*un;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Me.dividedBy=Me.div=function(e){return is(this,new this.constructor(e))};Me.dividedToIntegerBy=Me.idiv=function(e){var t=this,n=t.constructor;return Yt(is(t,new n(e),0,1),n.precision)};Me.equals=Me.eq=function(e){return!this.cmp(e)};Me.exponent=function(){return kn(this)};Me.greaterThan=Me.gt=function(e){return this.cmp(e)>0};Me.greaterThanOrEqualTo=Me.gte=function(e){return this.cmp(e)>=0};Me.isInteger=Me.isint=function(){return this.e>this.d.length-2};Me.isNegative=Me.isneg=function(){return this.s<0};Me.isPositive=Me.ispos=function(){return this.s>0};Me.isZero=function(){return this.s===0};Me.lessThan=Me.lt=function(e){return this.cmp(e)<0};Me.lessThanOrEqualTo=Me.lte=function(e){return this.cmp(e)<1};Me.logarithm=Me.log=function(e){var t,n=this,r=n.constructor,a=r.precision,s=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ia))throw Error(ka+"NaN");if(n.s<1)throw Error(ka+(n.s?"NaN":"-Infinity"));return n.eq(ia)?new r(0):(mn=!1,t=is(Yf(n,s),Yf(e,s),s),mn=!0,Yt(t,a))};Me.minus=Me.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?M6(t,e):T6(t,(e.s=-e.s,e))};Me.modulo=Me.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(ka+"NaN");return n.s?(mn=!1,t=is(n,e,0,1).times(e),mn=!0,n.minus(t)):Yt(new r(n),a)};Me.naturalExponential=Me.exp=function(){return k6(this)};Me.naturalLogarithm=Me.ln=function(){return Yf(this)};Me.negated=Me.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Me.plus=Me.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?T6(t,e):M6(t,(e.s=-e.s,e))};Me.precision=Me.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ll+e);if(t=kn(a)+1,r=a.d.length-1,n=r*un+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Me.squareRoot=Me.sqrt=function(){var e,t,n,r,a,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(ka+"NaN")}for(e=kn(u),mn=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=fi(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Xu((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(s=r,r=s.plus(is(u,s,l+2)).times(.5),fi(s.d).slice(0,l)===(t=fi(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Yt(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!="9999")break;l+=4}return mn=!0,Yt(r,n)};Me.times=Me.mul=function(e){var t,n,r,a,s,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=s[a]+x[r]*g[a-r-1]+t,s[a--]=u%Hn|0,t=u/Hn|0;s[a]=(s[a]+t)%Hn|0}for(;!s[--l];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,mn?Yt(e,p.precision):e};Me.toDecimalPlaces=Me.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(wi(e,0,Ku),t===void 0?t=r.rounding:wi(t,0,8),Yt(n,e+kn(n)+1,t))};Me.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=gl(r,!0):(wi(e,0,Ku),t===void 0?t=a.rounding:wi(t,0,8),r=Yt(new a(r),e+1,t),n=gl(r,!0,e+1)),n};Me.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?gl(a):(wi(e,0,Ku),t===void 0?t=s.rounding:wi(t,0,8),r=Yt(new s(a),e+kn(a)+1,t),n=gl(r.abs(),!1,e+kn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Me.toInteger=Me.toint=function(){var e=this,t=e.constructor;return Yt(new t(e),kn(e)+1,t.rounding)};Me.toNumber=function(){return+this};Me.toPower=Me.pow=function(e){var t,n,r,a,s,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ia);if(u=new d(u),!u.s){if(e.s<1)throw Error(ka+"Infinity");return u}if(u.eq(ia))return u;if(r=d.precision,e.eq(ia))return Yt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,l){if((n=m<0?-m:m)<=A6){for(a=new d(ia),t=Math.ceil(r/un+4),mn=!1;n%2&&(a=a.times(u),I3(a.d,t)),n=Xu(n/2),n!==0;)u=u.times(u),I3(u.d,t);return mn=!0,e.s<0?new d(ia).div(a):Yt(a,r)}}else if(s<0)throw Error(ka+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,mn=!1,a=e.times(Yf(u,r+f)),mn=!0,a=k6(a),a.s=s,a};Me.toPrecision=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?(n=kn(a),r=gl(a,n<=s.toExpNeg||n>=s.toExpPos)):(wi(e,1,Ku),t===void 0?t=s.rounding:wi(t,0,8),a=Yt(new s(a),e,t),n=kn(a),r=gl(a,e<=n||n<=s.toExpNeg,e)),r};Me.toSignificantDigits=Me.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(wi(e,1,Ku),t===void 0?t=r.rounding:wi(t,0,8)),Yt(new r(n),e,t)};Me.toString=Me.valueOf=Me.val=Me.toJSON=Me[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=kn(e),n=e.constructor;return gl(e,t<=n.toExpNeg||t>=n.toExpPos)};function T6(e,t){var n,r,a,s,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),mn?Yt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),s=l-a,s){for(s<0?(r=d,s=-s,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/un),u=l>u?l+1:u+1,s>u&&(s=u,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(u=d.length,s=f.length,u-s<0&&(s=u,r=f,f=d,d=r),n=0;s;)n=(d[--s]=d[s]+f[s]+n)/Hn|0,d[s]%=Hn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,mn?Yt(t,p):t}function wi(e,t,n){if(e!==~~e||en)throw Error(ll+e)}function fi(e){var t,n,r,a=e.length-1,s="",l=e[0];if(a>0){for(s+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,s){for(var l=0;s--;)r[s]-=l,l=r[s]1;)r.shift()}return function(r,a,s,l){var u,d,f,m,p,g,x,j,w,b,N,E,O,A,C,k,T,M,R=r.constructor,L=r.s==a.s?1:-1,D=r.d,U=a.d;if(!r.s)return new R(r);if(!a.s)throw Error(ka+"Division by zero");for(d=r.e-a.e,T=U.length,C=D.length,x=new R(L),j=x.d=[],f=0;U[f]==(D[f]||0);)++f;if(U[f]>(D[f]||0)&&--d,s==null?E=s=R.precision:l?E=s+(kn(r)-kn(a))+1:E=s,E<0)return new R(0);if(E=E/un+2|0,f=0,T==1)for(m=0,U=U[0],E++;(f1&&(U=e(U,m),D=e(D,m),T=U.length,C=D.length),A=T,w=D.slice(0,T),b=w.length;b=Hn/2&&++k;do m=0,u=t(U,w,T,b),u<0?(N=w[0],T!=b&&(N=N*Hn+(w[1]||0)),m=N/k|0,m>1?(m>=Hn&&(m=Hn-1),p=e(U,m),g=p.length,b=w.length,u=t(p,w,g,b),u==1&&(m--,n(p,T16)throw Error(HO+kn(e));if(!e.s)return new m(ia);for(mn=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Go(2,f))/Math.LN10*2+5|0,u+=r,n=a=s=new m(ia),m.precision=u;;){if(a=Yt(a.times(e),u),n=n.times(++d),l=s.plus(is(a,n,u)),fi(l.d).slice(0,u)===fi(s.d).slice(0,u)){for(;f--;)s=Yt(s.times(s),u);return m.precision=p,t==null?(mn=!0,Yt(s,p)):s}s=l}}function kn(e){for(var t=e.e*un,n=e.d[0];n>=10;n/=10)t++;return t}function bS(e,t,n){if(t>e.LN10.sd())throw mn=!0,n&&(e.precision=n),Error(ka+"LN10 precision limit exceeded");return Yt(new e(e.LN10),t)}function Ys(e){for(var t="";e--;)t+="0";return t}function Yf(e,t){var n,r,a,s,l,u,d,f,m,p=1,g=10,x=e,j=x.d,w=x.constructor,b=w.precision;if(x.s<1)throw Error(ka+(x.s?"NaN":"-Infinity"));if(x.eq(ia))return new w(0);if(t==null?(mn=!1,f=b):f=t,x.eq(10))return t==null&&(mn=!0),bS(w,f);if(f+=g,w.precision=f,n=fi(j),r=n.charAt(0),s=kn(x),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=fi(x.d),r=n.charAt(0),p++;s=kn(x),r>1?(x=new w("0."+n),s++):x=new w(r+"."+n.slice(1))}else return d=bS(w,f+2,b).times(s+""),x=Yf(new w(r+"."+n.slice(1)),f-g).plus(d),w.precision=b,t==null?(mn=!0,Yt(x,b)):x;for(u=l=x=is(x.minus(ia),x.plus(ia),f),m=Yt(x.times(x),f),a=3;;){if(l=Yt(l.times(m),f),d=u.plus(is(l,new w(a),f)),fi(d.d).slice(0,f)===fi(u.d).slice(0,f))return u=u.times(2),s!==0&&(u=u.plus(bS(w,f+2,b).times(s+""))),u=is(u,new w(p),f),w.precision=b,t==null?(mn=!0,Yt(u,b)):u;u=d,a+=2}}function $3(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Xu(n/un),e.d=[],r=(n+1)%un,n<0&&(r+=un),rJv||e.e<-Jv))throw Error(HO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Yt(e,t,n){var r,a,s,l,u,d,f,m,p=e.d;for(l=1,s=p[0];s>=10;s/=10)l++;if(r=t-l,r<0)r+=un,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/un),s=p.length,m>=s)return e;for(f=s=p[m],l=1;s>=10;s/=10)l++;r%=un,a=r-un+l}if(n!==void 0&&(s=Go(10,l-a-1),u=f/s%10|0,d=t<0||p[m+1]!==void 0||f%s,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Go(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(s=kn(e),p.length=1,t=t-s-1,p[0]=Go(10,(un-t%un)%un),e.e=Xu(-t/un)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,s=1,m--):(p.length=m+1,s=Go(10,un-r),p[m]=a>0?(f/Go(10,l-a)%Go(10,a)|0)*s:0),d)for(;;)if(m==0){(p[0]+=s)==Hn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=Hn)break;p[m--]=0,s=1}for(r=p.length;p[--r]===0;)p.pop();if(mn&&(e.e>Jv||e.e<-Jv))throw Error(HO+kn(e));return e}function M6(e,t){var n,r,a,s,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),mn?Yt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/un),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?s=s.charAt(0)+"."+s.slice(1)+Ys(r):l>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+Ys(-a-1)+s,n&&(r=n-l)>0&&(s+=Ys(r))):a>=l?(s+=Ys(a+1-l),n&&(r=n-a-1)>0&&(s=s+"."+Ys(r))):((r=a+1)0&&(a+1===l&&(s+="."),s+=Ys(r))),e.s<0?"-"+s:s}function I3(e,t){if(e.length>t)return e.length=t,!0}function P6(e){var t,n,r;function a(s){var l=this;if(!(l instanceof a))return new a(s);if(l.constructor=a,s instanceof a){l.s=s.s,l.e=s.e,l.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(ll+s);if(s>0)l.s=1;else if(s<0)s=-s,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(s===~~s&&s<1e7){l.e=0,l.d=[s];return}return $3(l,s.toString())}else if(typeof s!="string")throw Error(ll+s);if(s.charCodeAt(0)===45?(s=s.slice(1),l.s=-1):l.s=1,Cse.test(s))$3(l,s);else throw Error(ll+s)}if(a.prototype=Me,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=P6,a.config=a.set=Ose,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(ll+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(ll+n+": "+r);return this}var WO=P6(Nse);ia=new WO(1);const Ut=WO;function Ese(e){return Mse(e)||kse(e)||Tse(e)||Ase()}function Ase(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Tse(e,t){if(e){if(typeof e=="string")return rN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rN(e,t)}}function kse(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Mse(e){if(Array.isArray(e))return rN(e)}function rN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,L3(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,s=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw s}}return n}}function Gse(e){if(Array.isArray(e))return e}function L6(e){var t=Kf(e,2),n=t[0],r=t[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function z6(e,t,n){if(e.lte(0))return new Ut(0);var r=Sy.getDigitCount(e.toNumber()),a=new Ut(10).pow(r),s=e.div(a),l=r!==1?.05:.1,u=new Ut(Math.ceil(s.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new Ut(Math.ceil(d))}function Yse(e,t,n){var r=1,a=new Ut(e);if(!a.isint()&&n){var s=Math.abs(e);s<1?(r=new Ut(10).pow(Sy.getDigitCount(e)-1),a=new Ut(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new Ut(Math.floor(e)))}else e===0?a=new Ut(Math.floor((t-1)/2)):n||(a=new Ut(Math.floor(e)));var l=Math.floor((t-1)/2),u=$se(Dse(function(d){return a.add(new Ut(d-l).mul(r)).toNumber()}),aN);return u(0,t)}function B6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new Ut(0),tickMin:new Ut(0),tickMax:new Ut(0)};var s=z6(new Ut(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new Ut(0):(l=new Ut(e).add(t).div(2),l=l.sub(new Ut(l).mod(s)));var u=Math.ceil(l.sub(e).div(s).toNumber()),d=Math.ceil(new Ut(t).sub(l).div(s).toNumber()),f=u+d+1;return f>n?B6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:s,tickMin:l.sub(new Ut(u).mul(s)),tickMax:l.add(new Ut(d).mul(s))})}function Kse(e){var t=Kf(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=L6([n,r]),d=Kf(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(sN(aN(0,a-1).map(function(){return 1/0}))):[].concat(sN(aN(0,a-1).map(function(){return-1/0})),[m]);return n>r?iN(p):p}if(f===m)return Yse(f,a,s);var g=B6(f,m,l,s),x=g.step,j=g.tickMin,w=g.tickMax,b=Sy.rangeStep(j,w.add(new Ut(.1).mul(x)),x);return n>r?iN(b):b}function Xse(e,t){var n=Kf(e,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=L6([r,a]),u=Kf(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=z6(new Ut(f).sub(d).div(m-1),s,0),g=[].concat(sN(Sy.rangeStep(new Ut(d),new Ut(f).sub(new Ut(.99).mul(p)),p)),[f]);return r>a?iN(g):g}var Zse=$6(Kse),Qse=$6(Xse),Jse=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function vu(e){"@babel/helpers - typeof";return vu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vu(e)}function eg(){return eg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function soe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ooe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function loe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var d=s.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(Sr(p-m)!==Sr(g-p)){var j=[];if(Sr(g-p)===Sr(d[1]-d[0])){x=g;var w=p+d[1]-d[0];j[0]=Math.min(w,(w+m)/2),j[1]=Math.max(w,(w+m)/2)}else{x=m;var b=g+d[1]-d[0];j[0]=Math.min(p,(b+p)/2),j[1]=Math.max(p,(b+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var E=Math.min(m,g),O=Math.max(m,g);if(t>(E+p)/2&&t<=(O+p)/2){l=a[f].index;break}}}else for(var A=0;A0&&A(r[A].coordinate+r[A-1].coordinate)/2&&t<=(r[A].coordinate+r[A+1].coordinate)/2||A===u-1&&t>(r[A].coordinate+r[A-1].coordinate)/2){l=r[A].index;break}return l},VO=function(t){var n,r=t,a=r.type.displayName,s=(n=t.type)!==null&&n!==void 0&&n.defaultProps?jn(jn({},t.type.defaultProps),t.props):t.props,l=s.stroke,u=s.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},Noe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var l={},u=Object.keys(s),d=0,f=u.length;d=0});if(N&&N.length){var E=N[0].type.defaultProps,O=E!==void 0?jn(jn({},E),N[0].props):N[0].props,A=O.barSize,C=O[b];l[C]||(l[C]=[]);var k=Je(A)?n:A;l[C].push({item:N[0],stackList:N.slice(1),barSize:Je(k)?void 0:_r(k,r,0)})}}return l},Coe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,s=t.sizeList,l=s===void 0?[]:s,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=_r(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(A,C){return A+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var w=(a-j)/2>>0,b={offset:w-f,size:0};m=l.reduce(function(A,C){var k={item:C.item,position:{offset:b.offset+b.size+f,size:g?x:C.barSize}},T=[].concat(q3(A),[k]);return b=T[T.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:b})}),T},p)}else{var N=_r(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var E=(a-2*N-(d-1)*f)/d;E>1&&(E>>=0);var O=u===+u?Math.min(E,u):E;m=l.reduce(function(A,C,k){var T=[].concat(q3(A),[{item:C.item,position:{offset:N+(E+f)*k+(E-O)/2,size:O}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:T[T.length-1].position})}),T},p)}return m},Ooe=function(t,n,r,a){var s=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=H6({children:s,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,w=f.layout;if((w==="vertical"||w==="horizontal"&&j==="middle")&&x!=="center"&&Ee(t[x]))return jn(jn({},t),{},Kc({},x,t[x]+(p||0)));if((w==="horizontal"||w==="vertical"&&x==="center")&&j!=="middle"&&Ee(t[j]))return jn(jn({},t),{},Kc({},j,t[j]+(g||0)))}return t},Eoe=function(t,n,r){return Je(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},W6=function(t,n,r,a,s){var l=n.props.children,u=oa(l,Vh).filter(function(f){return Eoe(a,s,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=In(m,r);if(Je(p))return f;var g=Array.isArray(p)?[wy(p),by(p)]:[p,p],x=d.reduce(function(j,w){var b=In(m,w,0),N=g[0]-Math.abs(Array.isArray(b)?b[0]:b),E=g[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(N,j[0]),Math.max(E,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},Aoe=function(t,n,r,a,s){var l=n.map(function(u){return W6(t,u,r,s,a)}).filter(function(u){return!Je(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},V6=function(t,n,r,a,s){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&W6(t,d,f,a)||Ef(t,f,r,s)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?Sr(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=s?s.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!zh(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:s?s[p]:p,index:g,offset:f}})},wS=new WeakMap,Up=function(t,n){if(typeof n!="function")return t;wS.has(t)||wS.set(t,new WeakMap);var r=wS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},K6=function(t,n,r){var a=t.scale,s=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:Uf(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:Kv(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Of(),realScaleType:"point"}:s==="category"?{scale:Uf(),realScaleType:"band"}:{scale:Kv(),realScaleType:"linear"};if(ml(a)){var d="scale".concat(iy(a));return{scale:(O3[d]||Of)(),realScaleType:O3[d]?d:"point"}}return Ye(a)?{scale:a}:{scale:Of(),realScaleType:"point"}},U3=1e-4,X6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),s=Math.min(a[0],a[1])-U3,l=Math.max(a[0],a[1])+U3,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},Toe=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(t[u][r][0]=s,t[u][r][1]=s+d,s=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},Poe=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},Roe={sign:Moe,expand:wee,none:lu,silhouette:jee,wiggle:See,positive:Poe},Doe=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),s=Roe[r],l=bee().keys(a).value(function(u,d){return+In(u,d,0)}).order(z_).offset(s);return l(t)},$oe=function(t,n,r,a,s,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?jn(jn({},g.type.defaultProps),g.props):g.props,w=j.stackId,b=j.hide;if(b)return p;var N=j[r],E=p[N]||{hasStack:!1,stackGroups:{}};if(Ln(w)){var O=E.stackGroups[w]||{numericAxisId:r,cateAxisId:a,items:[]};O.items.push(g),E.hasStack=!0,E.stackGroups[w]=O}else E.stackGroups[Vu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return jn(jn({},p),{},Kc({},N,E))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(w,b){var N=x.stackGroups[b];return jn(jn({},w),{},Kc({},b,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:Doe(t,N.items,s)}))},j)}return jn(jn({},p),{},Kc({},g,x))},m)},Z6=function(t,n){var r=n.realScaleType,a=n.type,s=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(s&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=Zse(f,s,u);return t.domain([wy(m),by(m)]),{niceTicks:m}}if(s&&a==="number"){var p=t.domain(),g=Qse(p,s,u);return{niceTicks:g}}return null};function H3(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,s=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Je(a[t.dataKey])){var u=kv(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var d=In(a,Je(l)?t.dataKey:l);return Je(d)?null:t.scale(d)}var W3=function(t){var n=t.axis,r=t.ticks,a=t.offset,s=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=In(l,n.dataKey,n.domain[u]);return Je(d)?null:n.scale(d)-s/2+a},Ioe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},Loe=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?jn(jn({},t.type.defaultProps),t.props):t.props,s=a.stackId;if(Ln(s)){var l=n[s];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},zoe=function(t){return t.reduce(function(n,r){return[wy(r.concat([n[0]]).filter(Ee)),by(r.concat([n[1]]).filter(Ee))]},[1/0,-1/0])},Q6=function(t,n,r){return Object.keys(t).reduce(function(a,s){var l=t[s],u=l.stackedData,d=u.reduce(function(f,m){var p=zoe(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},V3=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,G3=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,uN=function(t,n,r){if(Ye(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ee(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(V3.test(t[0])){var s=+V3.exec(t[0])[1];a[0]=n[0]-s}else Ye(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ee(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(G3.test(t[1])){var l=+G3.exec(t[1])[1];a[1]=n[1]+l}else Ye(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},ng=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var s=bO(n,function(p){return p.coordinate}),l=1/0,u=1,d=s.length;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},Yoe=function(t,n,r,a,s){var l=t.width,u=t.height,d=t.startAngle,f=t.endAngle,m=_r(t.cx,l,l/2),p=_r(t.cy,u,u/2),g=tq(l,u,r),x=_r(t.innerRadius,g,0),j=_r(t.outerRadius,g,g*.8),w=Object.keys(n);return w.reduce(function(b,N){var E=n[N],O=E.domain,A=E.reversed,C;if(Je(E.range))a==="angleAxis"?C=[d,f]:a==="radiusAxis"&&(C=[x,j]),A&&(C=[C[1],C[0]]);else{C=E.range;var k=C,T=Foe(k,2);d=T[0],f=T[1]}var M=K6(E,s),R=M.realScaleType,L=M.scale;L.domain(O).range(C),X6(L);var D=Z6(L,Xi(Xi({},E),{},{realScaleType:R})),U=Xi(Xi(Xi({},E),D),{},{range:C,radius:j,realScaleType:R,scale:L,cx:m,cy:p,innerRadius:x,outerRadius:j,startAngle:d,endAngle:f});return Xi(Xi({},b),{},eq({},N,U))},{})},Koe=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return Math.sqrt(Math.pow(r-s,2)+Math.pow(a-l,2))},Xoe=function(t,n){var r=t.x,a=t.y,s=n.cx,l=n.cy,u=Koe({x:r,y:a},{x:s,y:l});if(u<=0)return{radius:u};var d=(r-s)/u,f=Math.acos(d);return a>l&&(f=2*Math.PI-f),{radius:u,angle:Goe(f),angleInRadian:f}},Zoe=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),l=Math.min(a,s);return{startAngle:n-l*360,endAngle:r-l*360}},Qoe=function(t,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),l=Math.floor(a/360),u=Math.min(s,l);return t+u*360},Z3=function(t,n){var r=t.x,a=t.y,s=Xoe({x:r,y:a},n),l=s.radius,u=s.angle,d=n.innerRadius,f=n.outerRadius;if(lf)return!1;if(l===0)return!0;var m=Zoe(n),p=m.startAngle,g=m.endAngle,x=u,j;if(p<=g){for(;x>g;)x-=360;for(;x=p&&x<=g}else{for(;x>p;)x-=360;for(;x=g&&x<=p}return j?Xi(Xi({},n),{},{radius:l,angle:Qoe(x,n)}):null},nq=function(t){return!y.isValidElement(t)&&!Ye(t)&&typeof t!="boolean"?t.className:""};function Jf(e){"@babel/helpers - typeof";return Jf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jf(e)}var Joe=["offset"];function ele(e){return ale(e)||rle(e)||nle(e)||tle()}function tle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nle(e,t){if(e){if(typeof e=="string")return dN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return dN(e,t)}}function rle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ale(e){if(Array.isArray(e))return dN(e)}function dN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function sle(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Q3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $n(e){for(var t=1;t=0?1:-1,O,A;a==="insideStart"?(O=x+E*l,A=w):a==="insideEnd"?(O=j-E*l,A=!w):a==="end"&&(O=j+E*l,A=w),A=N<=0?A:!A;var C=Jt(f,m,b,O),k=Jt(f,m,b,O+(A?1:-1)*359),T="M".concat(C.x,",").concat(C.y,` + A`).concat(b,",").concat(b,",0,1,").concat(A?0:1,`, + `).concat(k.x,",").concat(k.y),M=Je(t.id)?Vu("recharts-radial-line-"):t.id;return W.createElement("text",eh({},r,{dominantBaseline:"central",className:et("recharts-radial-bar-label",u)}),W.createElement("defs",null,W.createElement("path",{id:M,d:T})),W.createElement("textPath",{xlinkHref:"#".concat(M)},n))},hle=function(t){var n=t.viewBox,r=t.offset,a=t.position,s=n,l=s.cx,u=s.cy,d=s.innerRadius,f=s.outerRadius,m=s.startAngle,p=s.endAngle,g=(m+p)/2;if(a==="outside"){var x=Jt(l,u,f+r,g),j=x.x,w=x.y;return{x:j,y:w,textAnchor:j>=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var b=(d+f)/2,N=Jt(l,u,b,g),E=N.x,O=N.y;return{x:E,y:O,textAnchor:"middle",verticalAnchor:"middle"}},mle=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,s=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",w=f>=0?1:-1,b=w*a,N=w>0?"end":"start",E=w>0?"start":"end";if(s==="top"){var O={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return $n($n({},O),r?{height:Math.max(d-r.y,0),width:f}:{})}if(s==="bottom"){var A={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return $n($n({},A),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(s==="left"){var C={x:u-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return $n($n({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(s==="right"){var k={x:u+f+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"};return $n($n({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var T=r?{width:f,height:m}:{};return s==="insideLeft"?$n({x:u+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"},T):s==="insideRight"?$n({x:u+f-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},T):s==="insideTop"?$n({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},T):s==="insideBottom"?$n({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},T):s==="insideTopLeft"?$n({x:u+b,y:d+g,textAnchor:E,verticalAnchor:j},T):s==="insideTopRight"?$n({x:u+f-b,y:d+g,textAnchor:N,verticalAnchor:j},T):s==="insideBottomLeft"?$n({x:u+b,y:d+m-g,textAnchor:E,verticalAnchor:x},T):s==="insideBottomRight"?$n({x:u+f-b,y:d+m-g,textAnchor:N,verticalAnchor:x},T):Wu(s)&&(Ee(s.x)||Zo(s.x))&&(Ee(s.y)||Zo(s.y))?$n({x:u+_r(s.x,f),y:d+_r(s.y,m),textAnchor:"end",verticalAnchor:"end"},T):$n({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},T)},ple=function(t){return"cx"in t&&Ee(t.cx)};function Vn(e){var t=e.offset,n=t===void 0?5:t,r=ile(e,Joe),a=$n({offset:n},r),s=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!s||Je(u)&&Je(d)&&!y.isValidElement(f)&&!Ye(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(Ye(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=ule(a);var j=ple(s),w=qe(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return fle(a,x,w);var b=j?hle(a):mle(a);return W.createElement(vl,eh({className:et("recharts-label",p)},w,b,{breakAll:g}),x)}Vn.displayName="Label";var rq=function(t){var n=t.cx,r=t.cy,a=t.angle,s=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,w=t.width,b=t.height,N=t.clockWise,E=t.labelViewBox;if(E)return E;if(Ee(w)&&Ee(b)){if(Ee(p)&&Ee(g))return{x:p,y:g,width:w,height:b};if(Ee(x)&&Ee(j))return{x,y:j,width:w,height:b}}return Ee(p)&&Ee(g)?{x:p,y:g,width:0,height:0}:Ee(n)&&Ee(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},vle=function(t,n){return t?t===!0?W.createElement(Vn,{key:"label-implicit",viewBox:n}):Ln(t)?W.createElement(Vn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===Vn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Ye(t)?W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Wu(t)?W.createElement(Vn,eh({viewBox:n},t,{key:"label-implicit"})):null:null},gle=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,s=rq(t),l=oa(a,Vn).map(function(d,f){return y.cloneElement(d,{viewBox:n||s,key:"label-".concat(f)})});if(!r)return l;var u=vle(t.label,n||s);return[u].concat(ele(l))};Vn.parseViewBox=rq;Vn.renderCallByParent=gle;var jS,J3;function yle(){if(J3)return jS;J3=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return jS=e,jS}var xle=yle();const ble=Rt(xle);function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}var wle=["valueAccessor"],jle=["data","dataKey","clockWise","id","textBreakAll"];function Sle(e){return Ole(e)||Cle(e)||Nle(e)||_le()}function _le(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nle(e,t){if(e){if(typeof e=="string")return fN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return fN(e,t)}}function Cle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Ole(e){if(Array.isArray(e))return fN(e)}function fN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kle(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Mle=function(t){return Array.isArray(t.value)?ble(t.value):t.value};function ss(e){var t=e.valueAccessor,n=t===void 0?Mle:t,r=n$(e,wle),a=r.data,s=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=n$(r,jle);return!a||!a.length?null:W.createElement(Nt,{className:"recharts-label-list"},a.map(function(m,p){var g=Je(s)?n(m,p):In(m&&m.payload,s),x=Je(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(Vn,ag({},qe(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:Vn.parseViewBox(Je(l)?m:t$(t$({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}ss.displayName="LabelList";function Ple(e,t){return e?e===!0?W.createElement(ss,{key:"labelList-implicit",data:t}):W.isValidElement(e)||Ye(e)?W.createElement(ss,{key:"labelList-implicit",data:t,content:e}):Wu(e)?W.createElement(ss,ag({data:t},e,{key:"labelList-implicit"})):null:null}function Rle(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=oa(r,ss).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var s=Ple(e.label,t);return[s].concat(Sle(a))}ss.renderCallByParent=Rle;function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function hN(){return hN=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(l>f),`, + `).concat(p.x,",").concat(p.y,` + `);if(a>0){var x=Jt(n,r,a,l),j=Jt(n,r,a,f);g+="L ".concat(j.x,",").concat(j.y,` + A `).concat(a,",").concat(a,`,0, + `).concat(+(Math.abs(d)>180),",").concat(+(l<=f),`, + `).concat(x.x,",").concat(x.y," Z")}else g+="L ".concat(n,",").concat(r," Z");return g},zle=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,s=t.outerRadius,l=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,m=t.endAngle,p=Sr(m-f),g=Hp({cx:n,cy:r,radius:s,angle:f,sign:p,cornerRadius:l,cornerIsExternal:d}),x=g.circleTangency,j=g.lineTangency,w=g.theta,b=Hp({cx:n,cy:r,radius:s,angle:m,sign:-p,cornerRadius:l,cornerIsExternal:d}),N=b.circleTangency,E=b.lineTangency,O=b.theta,A=d?Math.abs(f-m):Math.abs(f-m)-w-O;if(A<0)return u?"M ".concat(j.x,",").concat(j.y,` + a`).concat(l,",").concat(l,",0,0,1,").concat(l*2,`,0 + a`).concat(l,",").concat(l,",0,0,1,").concat(-l*2,`,0 + `):aq({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:f,endAngle:m});var C="M ".concat(j.x,",").concat(j.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(x.x,",").concat(x.y,` + A`).concat(s,",").concat(s,",0,").concat(+(A>180),",").concat(+(p<0),",").concat(N.x,",").concat(N.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(E.x,",").concat(E.y,` + `);if(a>0){var k=Hp({cx:n,cy:r,radius:a,angle:f,sign:p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),T=k.circleTangency,M=k.lineTangency,R=k.theta,L=Hp({cx:n,cy:r,radius:a,angle:m,sign:-p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),D=L.circleTangency,U=L.lineTangency,V=L.theta,H=d?Math.abs(f-m):Math.abs(f-m)-R-V;if(H<0&&l===0)return"".concat(C,"L").concat(n,",").concat(r,"Z");C+="L".concat(U.x,",").concat(U.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(D.x,",").concat(D.y,` + A`).concat(a,",").concat(a,",0,").concat(+(H>180),",").concat(+(p>0),",").concat(T.x,",").concat(T.y,` + A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(M.x,",").concat(M.y,"Z")}else C+="L".concat(n,",").concat(r,"Z");return C},Ble={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},iq=function(t){var n=a$(a$({},Ble),t),r=n.cx,a=n.cy,s=n.innerRadius,l=n.outerRadius,u=n.cornerRadius,d=n.forceCornerRadius,f=n.cornerIsExternal,m=n.startAngle,p=n.endAngle,g=n.className;if(l0&&Math.abs(m-p)<360?b=zle({cx:r,cy:a,innerRadius:s,outerRadius:l,cornerRadius:Math.min(w,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):b=aq({cx:r,cy:a,innerRadius:s,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",hN({},qe(n,!0),{className:x,d:b,role:"img"}))};function rh(e){"@babel/helpers - typeof";return rh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rh(e)}function mN(){return mN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function ice(e,t){return Tl(e.getTime(),t.getTime())}function sce(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function oce(e,t){return e===t}function p$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.entries(),l,u,d=0;(l=s.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var lce=Tl;function cce(e,t,n){var r=m$(e),a=r.length;if(m$(t).length!==a)return!1;for(;a-- >0;)if(!sq(e,t,n,r[a]))return!1;return!0}function uf(e,t,n){var r=f$(e),a=r.length;if(f$(t).length!==a)return!1;for(var s,l,u;a-- >0;)if(s=r[a],!sq(e,t,n,s)||(l=h$(e,s),u=h$(t,s),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function uce(e,t){return Tl(e.valueOf(),t.valueOf())}function dce(e,t){return e.source===t.source&&e.flags===t.flags}function v$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.values(),l,u;(l=s.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function fce(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function hce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function sq(e,t,n,r){return(r===rce||r===nce||r===tce)&&(e.$$typeof||t.$$typeof)?!0:ece(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var mce="[object Arguments]",pce="[object Boolean]",vce="[object Date]",gce="[object Error]",yce="[object Map]",xce="[object Number]",bce="[object Object]",wce="[object RegExp]",jce="[object Set]",Sce="[object String]",_ce="[object URL]",Nce=Array.isArray,g$=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,y$=Object.assign,Cce=Object.prototype.toString.call.bind(Object.prototype.toString);function Oce(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,s=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(w,b,N){if(w===b)return!0;if(w==null||b==null)return!1;var E=typeof w;if(E!==typeof b)return!1;if(E!=="object")return E==="number"?l(w,b,N):E==="function"?a(w,b,N):!1;var O=w.constructor;if(O!==b.constructor)return!1;if(O===Object)return u(w,b,N);if(Nce(w))return t(w,b,N);if(g$!=null&&g$(w))return p(w,b,N);if(O===Date)return n(w,b,N);if(O===RegExp)return f(w,b,N);if(O===Map)return s(w,b,N);if(O===Set)return m(w,b,N);var A=Cce(w);if(A===vce)return n(w,b,N);if(A===wce)return f(w,b,N);if(A===yce)return s(w,b,N);if(A===jce)return m(w,b,N);if(A===bce)return typeof w.then!="function"&&typeof b.then!="function"&&u(w,b,N);if(A===_ce)return g(w,b,N);if(A===gce)return r(w,b,N);if(A===mce)return u(w,b,N);if(A===pce||A===xce||A===Sce)return d(w,b,N);if(x){var C=x[A];if(!C){var k=Jle(w);k&&(C=x[k])}if(C)return C(w,b,N)}return!1}}function Ece(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?uf:ace,areDatesEqual:ice,areErrorsEqual:sce,areFunctionsEqual:oce,areMapsEqual:r?d$(p$,uf):p$,areNumbersEqual:lce,areObjectsEqual:r?uf:cce,arePrimitiveWrappersEqual:uce,areRegExpsEqual:dce,areSetsEqual:r?d$(v$,uf):v$,areTypedArraysEqual:r?uf:fce,areUrlsEqual:hce,unknownTagComparators:void 0};if(n&&(a=y$({},a,n(a))),t){var s=Vp(a.areArraysEqual),l=Vp(a.areMapsEqual),u=Vp(a.areObjectsEqual),d=Vp(a.areSetsEqual);a=y$({},a,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function Ace(e){return function(t,n,r,a,s,l,u){return e(t,n,u)}}function Tce(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,s=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:s})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:s})};var l={cache:void 0,equals:a,meta:void 0,strict:s};return function(d,f){return n(d,f,l)}}var kce=po();po({strict:!0});po({circular:!0});po({circular:!0,strict:!0});po({createInternalComparator:function(){return Tl}});po({strict:!0,createInternalComparator:function(){return Tl}});po({circular:!0,createInternalComparator:function(){return Tl}});po({circular:!0,createInternalComparator:function(){return Tl},strict:!0});function po(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,s=e.strict,l=s===void 0?!1:s,u=Ece(e),d=Oce(u),f=r?r(d):Ace(d);return Tce({circular:n,comparator:d,createState:a,equals:f,strict:l})}function Mce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function x$(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>t?(e(s),n=-1):Mce(a)};requestAnimationFrame(r)}function pN(e){"@babel/helpers - typeof";return pN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pN(e)}function Pce(e){return Ice(e)||$ce(e)||Dce(e)||Rce()}function Rce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dce(e,t){if(e){if(typeof e=="string")return b$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b$(e,t)}}function b$(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},w=function(N){for(var E=N>1?1:N,O=E,A=0;A<8;++A){var C=p(O)-E,k=x(O);if(Math.abs(C-E)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,s=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*s,w=g+(x-j)*u/1e3,b=g*u/1e3+m;return Math.abs(b-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function mue(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,s;for(s=0;s=0)&&(n[a]=e[a]);return n}function CS(e){return yue(e)||gue(e)||vue(e)||pue()}function pue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vue(e,t){if(e){if(typeof e=="string")return bN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bN(e,t)}}function gue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function yue(e){if(Array.isArray(e))return bN(e)}function bN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function lg(e){return lg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},lg(e)}var ji=(function(e){Sue(n,e);var t=_ue(n);function n(r,a){var s;xue(this,n),s=t.call(this,r,a);var l=s.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(s.handleStyleChange=s.handleStyleChange.bind(SN(s)),s.changeStyle=s.changeStyle.bind(SN(s)),!u||x<=0)return s.state={style:{}},typeof g=="function"&&(s.state={style:m}),jN(s);if(p&&p.length)s.state={style:p[0].style};else if(f){if(typeof g=="function")return s.state={style:f},jN(s);s.state={style:d?gf({},d,f):f}}else s.state={style:{}};return s}return wue(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,l=a.canBegin;this.mounted=!0,!(!s||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,l=s.isActive,u=s.canBegin,d=s.attributeName,f=s.shouldReAnimate,m=s.to,p=s.from,g=this.state.style;if(u){if(!l){var x={style:d?gf({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(kce(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=j||f?p:a.to;if(this.state&&g){var b={style:d?gf({},d,w):w};(d&&g[d]!==w||!d&&g!==w)&&this.setState(b)}this.runAnimation(Ia(Ia({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=due(l,u,eue(f),d,this.changeStyle),j=function(){s.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var s=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(w,b,N){if(N===0)return w;var E=b.duration,O=b.easing,A=O===void 0?"ease":O,C=b.style,k=b.properties,T=b.onAnimationEnd,M=N>0?l[N-1]:b,R=k||Object.keys(C);if(typeof A=="function"||A==="spring")return[].concat(CS(w),[s.runJSAnimation.bind(s,{from:M.style,to:C,duration:E,easing:A}),E]);var L=S$(R,E,A),D=Ia(Ia(Ia({},M.style),C),{},{transition:L});return[].concat(CS(w),[D,E,T]).filter(Fce)};return this.manager.start([d].concat(CS(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=Lce());var s=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var w=u?gf({},u,d):d,b=S$(Object.keys(w),l,f);j.start([m,s,Ia(Ia({},w),{},{transition:b}),l,p])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=hue(a,fue),f=y.Children.count(s),m=this.state.style;if(typeof s=="function")return s(m);if(!u||f===0||l<=0)return s;var p=function(x){var j=x.props,w=j.style,b=w===void 0?{}:w,N=j.className,E=y.cloneElement(x,Ia(Ia({},d),{},{style:Ia(Ia({},b),m),className:N}));return E};return f===1?p(y.Children.only(s)):W.createElement("div",null,y.Children.map(s,function(g){return p(g)}))}}]),n})(y.PureComponent);ji.displayName="Animate";ji.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};ji.propTypes={from:Mt.oneOfType([Mt.object,Mt.string]),to:Mt.oneOfType([Mt.object,Mt.string]),attributeName:Mt.string,duration:Mt.number,begin:Mt.number,easing:Mt.oneOfType([Mt.string,Mt.func]),steps:Mt.arrayOf(Mt.shape({duration:Mt.number.isRequired,style:Mt.object.isRequired,easing:Mt.oneOfType([Mt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Mt.func]),properties:Mt.arrayOf("string"),onAnimationEnd:Mt.func})),children:Mt.oneOfType([Mt.node,Mt.func]),isActive:Mt.bool,canBegin:Mt.bool,onAnimationEnd:Mt.func,shouldReAnimate:Mt.bool,onAnimationStart:Mt.func,onAnimationReStart:Mt.func};function sh(e){"@babel/helpers - typeof";return sh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sh(e)}function cg(){return cg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,d=r>=0?1:-1,f=a>=0&&r>=0||a<0&&r<0?1:0,m;if(l>0&&s instanceof Array){for(var p=[0,0,0,0],g=0,x=4;gl?l:s[g];m="M".concat(t,",").concat(n+u*p[0]),p[0]>0&&(m+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(f,",").concat(t+d*p[0],",").concat(n)),m+="L ".concat(t+r-d*p[1],",").concat(n),p[1]>0&&(m+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(f,`, + `).concat(t+r,",").concat(n+u*p[1])),m+="L ".concat(t+r,",").concat(n+a-u*p[2]),p[2]>0&&(m+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(f,`, + `).concat(t+r-d*p[2],",").concat(n+a)),m+="L ".concat(t+d*p[3],",").concat(n+a),p[3]>0&&(m+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(f,`, + `).concat(t,",").concat(n+a-u*p[3])),m+="Z"}else if(l>0&&s===+s&&s>0){var j=Math.min(l,s);m="M ".concat(t,",").concat(n+u*j,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+d*j,",").concat(n,` + L `).concat(t+r-d*j,",").concat(n,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r,",").concat(n+u*j,` + L `).concat(t+r,",").concat(n+a-u*j,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r-d*j,",").concat(n+a,` + L `).concat(t+d*j,",").concat(n+a,` + A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t,",").concat(n+a-u*j," Z")}else m="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return m},Rue=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,s=n.x,l=n.y,u=n.width,d=n.height;if(Math.abs(u)>0&&Math.abs(d)>0){var f=Math.min(s,s+u),m=Math.max(s,s+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},Due={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},GO=function(t){var n=k$(k$({},Due),t),r=y.useRef(),a=y.useState(-1),s=Cue(a,2),l=s[0],u=s[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var A=r.current.getTotalLength();A&&u(A)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,w=n.animationDuration,b=n.animationBegin,N=n.isAnimationActive,E=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var O=et("recharts-rectangle",x);return E?W.createElement(ji,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:w,animationEasing:j,isActive:E},function(A){var C=A.width,k=A.height,T=A.x,M=A.y;return W.createElement(ji,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,isActive:N,easing:j},W.createElement("path",cg({},qe(n,!0),{className:O,d:M$(T,M,C,k,g),ref:r})))}):W.createElement("path",cg({},qe(n,!0),{className:O,d:M$(d,f,m,p,g)}))},$ue=["points","className","baseLinePoints","connectNulls"];function Uc(){return Uc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function P$(e){return Fue(e)||que(e)||Bue(e)||zue()}function zue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bue(e,t){if(e){if(typeof e=="string")return _N(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _N(e,t)}}function que(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Fue(e){if(Array.isArray(e))return _N(e)}function _N(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){R$(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),R$(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Tf=function(t,n){var r=Uue(t);n&&(r=[r.reduce(function(s,l){return[].concat(P$(s),P$(l))},[])]);var a=r.map(function(s){return s.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},Hue=function(t,n,r){var a=Tf(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Tf(n.reverse(),r).slice(1))},Wue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,s=t.connectNulls,l=Iue(t,$ue);if(!n||!n.length)return null;var u=et("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=Hue(n,a,s);return W.createElement("g",{className:u},W.createElement("path",Uc({},qe(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Uc({},qe(l,!0),{fill:"none",d:Tf(n,s)})):null,d?W.createElement("path",Uc({},qe(l,!0),{fill:"none",d:Tf(a,s)})):null)}var m=Tf(n,s);return W.createElement("path",Uc({},qe(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function NN(){return NN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Que(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Jue=function(t,n,r,a,s,l){return"M".concat(t,",").concat(s,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},ede=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,w=Zue(t,Vue),b=Gue({x:r,y:s,top:u,left:f,width:p,height:x},w);return!Ee(r)||!Ee(s)||!Ee(p)||!Ee(x)||!Ee(u)||!Ee(f)?null:W.createElement("path",CN({},qe(b,!0),{className:et("recharts-cross",j),d:Jue(r,s,p,x,u,f)}))},OS,$$;function tde(){if($$)return OS;$$=1;var e=xy(),t=O6(),n=Ci();function r(a,s){return a&&a.length?e(a,n(s,2),t):void 0}return OS=r,OS}var nde=tde();const rde=Rt(nde);var ES,I$;function ade(){if(I$)return ES;I$=1;var e=xy(),t=Ci(),n=E6();function r(a,s){return a&&a.length?e(a,t(s,2),n):void 0}return ES=r,ES}var ide=ade();const sde=Rt(ide);var ode=["cx","cy","angle","ticks","axisLine"],lde=["ticks","tick","angle","tickFormatter","stroke"];function yu(e){"@babel/helpers - typeof";return yu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yu(e)}function kf(){return kf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function cde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ude(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function B$(e,t){for(var n=0;nU$?l=a==="outer"?"start":"end":s<-U$?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,s=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=Wo(Wo({},qe(this.props,!1)),{},{fill:"none"},qe(u,!1));if(d==="circle")return W.createElement(_y,Ko({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:s,r:l}));var m=this.props.ticks,p=m.map(function(g){return Jt(a,s,l,g.coordinate)});return W.createElement(Wue,Ko({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,s=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=qe(this.props,!1),p=qe(l,!1),g=Wo(Wo({},m),{},{fill:"none"},qe(u,!1)),x=s.map(function(j,w){var b=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),E=Wo(Wo(Wo({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:w,payload:j,x:b.x2,y:b.y2});return W.createElement(Nt,Ko({className:et("recharts-polar-angle-axis-tick",nq(l)),key:"tick-".concat(j.coordinate)},pl(r.props,j,w)),u&&W.createElement("line",Ko({className:"recharts-polar-angle-axis-tick-line"},g,b)),l&&t.renderTickItem(l,E,d?d(j.value,w):j.value))});return W.createElement(Nt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,s=r.radius,l=r.axisLine;return s<=0||!a||!a.length?null:W.createElement(Nt,{className:et("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,s){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):Ye(r)?l=r(a):l=W.createElement(vl,Ko({},a,{className:"recharts-polar-angle-axis-tick-value"}),s),l}}])})(y.PureComponent);Oy(Ey,"displayName","PolarAngleAxis");Oy(Ey,"axisType","angleAxis");Oy(Ey,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var AS,H$;function Nde(){if(H$)return AS;H$=1;var e=CB(),t=e(Object.getPrototypeOf,Object);return AS=t,AS}var TS,W$;function Cde(){if(W$)return TS;W$=1;var e=ms(),t=Nde(),n=ps(),r="[object Object]",a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return TS=f,TS}var Ode=Cde();const Ede=Rt(Ode);var kS,V$;function Ade(){if(V$)return kS;V$=1;var e=ms(),t=ps(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return kS=r,kS}var Tde=Ade();const kde=Rt(Tde);function lh(e){"@babel/helpers - typeof";return lh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lh(e)}function fg(){return fg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:w,animationEasing:j,isActive:N},function(O){var A=O.upperWidth,C=O.lowerWidth,k=O.height,T=O.x,M=O.y;return W.createElement(ji,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,easing:j},W.createElement("path",fg({},qe(n,!0),{className:E,d:X$(T,M,A,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",fg({},qe(n,!0),{className:E,d:X$(d,f,m,p,g)})))},Fde=["option","shapeType","propTransformer","activeClassName","isActive"];function ch(e){"@babel/helpers - typeof";return ch=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ch(e)}function Ude(e,t){if(e==null)return{};var n=Hde(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Hde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Z$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function hg(e){for(var t=1;t0?sa(O,"paddingAngle",0):0;if(C){var T=ra(C.endAngle-C.startAngle,O.endAngle-O.startAngle),M=Xt(Xt({},O),{},{startAngle:E+k,endAngle:E+T(w)+k});b.push(M),E=M.endAngle}else{var R=O.endAngle,L=O.startAngle,D=ra(0,R-L),U=D(w),V=Xt(Xt({},O),{},{startAngle:E+k,endAngle:E+U+k});b.push(V),E=V.endAngle}}),W.createElement(Nt,null,r.renderSectorsStatically(b))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(s){if(!s.altKey)switch(s.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,s=r.isAnimationActive,l=this.state.prevSectors;return s&&a&&a.length&&(!l||!Wh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,s=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(s||!l||!l.length||!Ee(f)||!Ee(m)||!Ee(p)||!Ee(g))return null;var w=et("recharts-pie",u);return W.createElement(Nt,{tabIndex:this.props.rootTabIndex,className:w,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),Vn.renderCallByParent(this.props,null,!1),(!x||j)&&ss.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r=360?E:E-1)*d,A=b-E*x-O,C=a.reduce(function(M,R){var L=In(R,N,0);return M+(Ee(L)?L:0)},0),k;if(C>0){var T;k=a.map(function(M,R){var L=In(M,N,0),D=In(M,m,R),U=(Ee(L)?L:0)/C,V;R?V=T.endAngle+Sr(w)*d*(L!==0?1:0):V=l;var H=V+Sr(w)*((L!==0?x:0)+U*A),G=(V+H)/2,$=(j.innerRadius+j.outerRadius)/2,I=[{name:D,value:L,payload:M,dataKey:N,type:g}],q=Jt(j.cx,j.cy,$,G);return T=Xt(Xt(Xt({percent:U,cornerRadius:s,name:D,tooltipPayload:I,midAngle:G,middleRadius:$,tooltipPosition:q},M),j),{},{value:In(M,N),startAngle:V,endAngle:H,payload:M,paddingAngle:Sr(w)*d}),T})}return Xt(Xt({},j),{},{sectors:k,data:a})});var MS,tI;function dfe(){if(tI)return MS;tI=1;var e=Math.ceil,t=Math.max;function n(r,a,s,l){for(var u=-1,d=t(e((a-r)/(s||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=s;return f}return MS=n,MS}var PS,nI;function bq(){if(nI)return PS;nI=1;var e=FB(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var s=a<0?-1:1;return s*n}return a===a?a:0}return PS=r,PS}var RS,rI;function ffe(){if(rI)return RS;rI=1;var e=dfe(),t=dy(),n=bq();function r(a){return function(s,l,u){return u&&typeof u!="number"&&t(s,l,u)&&(l=u=void 0),s=n(s),l===void 0?(l=s,s=0):l=n(l),u=u===void 0?s0&&r.handleDrag(a.changedTouches[0])}),Jr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:s,startIndex:u})}),r.detachDragEndListener()}),Jr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Jr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Jr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Jr(r,"handleSlideDragStart",function(a){var s=cI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return _fe(t,e),bfe(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,s),g=Math.max(a,s),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,l=a.tickFormatter,u=a.dataKey,d=In(s[r],u,r);return Ye(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,w=r.pageX-s;w>0?w=Math.min(w,f+m-p-u,f+m-p-l):w<0&&(w=Math.max(w,f-l,f-u));var b=this.getIndex({startX:l+w,endX:u+w});(b.startIndex!==g||b.endIndex!==x)&&j&&j(b),this.setState({startX:l+w,endX:u+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=cI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,w=m.gap,b=m.data,N={startX:this.state.startX,endX:this.state.endX},E=r.pageX-s;E>0?E=Math.min(E,p+g-x-f):E<0&&(E=Math.max(E,p-f)),N[l]=f+E;var O=this.getIndex(N),A=O.startIndex,C=O.endIndex,k=function(){var M=b.length-1;return l==="startX"&&(u>d?A%w===0:C%w===0)||ud?C%w===0:A%w===0)||u>d&&C===M};this.setState(Jr(Jr({},l,f+E),"brushMoveStartX",r.pageX),function(){j&&k()&&j(O)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Jr({},a,x),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:s,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:s,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,w=d.startIndex,b=d.endIndex,N=Math.max(r,this.props.x),E=$S($S({},qe(this.props,!1)),{},{x:N,y:f,width:m,height:p}),O=x||"Min value: ".concat((s=j[w])===null||s===void 0?void 0:s.name,", Max value: ").concat((l=j[b])===null||l===void 0?void 0:l.name);return W.createElement(Nt,{tabIndex:0,role:"slider","aria-label":O,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,E))}},{key:"renderSlide",value:function(r,a){var s=this.props,l=s.y,u=s.height,d=s.stroke,f=s.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(Nt,{className:"recharts-brush-texts"},W.createElement(vl,vg({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(vl,vg({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,w=g.isTextActive,b=g.isSlideMoving,N=g.isTravellerMoving,E=g.isTravellerFocused;if(!a||!a.length||!Ee(u)||!Ee(d)||!Ee(f)||!Ee(m)||f<=0||m<=0)return null;var O=et("recharts-brush",s),A=W.Children.count(l)===1,C=yfe("userSelect","none");return W.createElement(Nt,{className:O,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(w||b||N||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(s+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:s,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return W.isValidElement(r)?s=W.cloneElement(r,a):Ye(r)?s=r(a):s=t.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(s!==a.prevData||f!==a.prevUpdateId)return $S({prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},s&&s.length?Cfe({data:s,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,l=0,u=s-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Jr(ju,"displayName","Brush");Jr(ju,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var IS,uI;function Ofe(){if(uI)return IS;uI=1;var e=xO();function t(n,r){var a;return e(n,function(s,l,u){return a=r(s,l,u),!a}),!!a}return IS=t,IS}var LS,dI;function Efe(){if(dI)return LS;dI=1;var e=xB(),t=Ci(),n=Ofe(),r=Ur(),a=dy();function s(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return LS=s,LS}var Afe=Efe();const Tfe=Rt(Afe);var yi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},zS,fI;function kfe(){if(fI)return zS;fI=1;var e=IB();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return zS=t,zS}var BS,hI;function Mfe(){if(hI)return BS;hI=1;var e=kfe(),t=DB(),n=Ci();function r(a,s){var l={};return s=n(s,3),t(a,function(u,d,f){e(l,d,s(u,d,f))}),l}return BS=r,BS}var Pfe=Mfe();const Rfe=Rt(Pfe);var qS,mI;function Dfe(){if(mI)return qS;mI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Hfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Wfe(e,t){var n=e.x,r=e.y,a=Ufe(e,zfe),s="".concat(n),l=parseInt(s,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return df(df(df(df(df({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function yI(e){return W.createElement(gq,kN({shapeType:"rectangle",propTransformer:Wfe,activeClassName:"recharts-active-bar"},e))}var Vfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var s=Ee(r)||pJ(r);return s?t(r,a):(s||vr(!1),n)}},Gfe=["value","background"],Nq;function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function Yfe(e,t){if(e==null)return{};var n=Kfe(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Kfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function yg(){return yg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(H)0&&(V=Math.min((ie||0)-(H[Q-1]||0),V))}),Number.isFinite(V)){var G=V/U,$=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(T=G*$/2),w.padding==="no-gap"){var I=_r(t.barCategoryGap,G*$),q=G*$/2;T=q-I-(q-I)/$*I}}}a==="xAxis"?M=[r.left+(O.left||0)+(T||0),r.left+r.width-(O.right||0)-(T||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(O.bottom||0),r.top+(O.top||0)]:[r.top+(O.top||0)+(T||0),r.top+r.height-(O.bottom||0)-(T||0)]:M=w.range,C&&(M=[M[1],M[0]]);var Z=K6(w,s,g),ee=Z.scale,F=Z.realScaleType;ee.domain(N).range(M),X6(ee);var z=Z6(ee,qa(qa({},w),{},{realScaleType:F}));a==="xAxis"?(D=b==="top"&&!A||b==="bottom"&&A,R=r.left,L=p[k]-D*w.height):a==="yAxis"&&(D=b==="left"&&!A||b==="right"&&A,R=p[k]-D*w.width,L=r.top);var K=qa(qa(qa({},w),z),{},{realScaleType:F,x:R,y:L,scale:ee,width:a==="xAxis"?r.width:w.width,height:a==="yAxis"?r.height:w.height});return K.bandSize=ng(K,z),!w.hide&&a==="xAxis"?p[k]+=(D?-1:1)*K.height:w.hide||(p[k]+=(D?-1:1)*K.width),qa(qa({},x),{},ky({},j,K))},{})},Tq=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return{x:Math.min(r,s),y:Math.min(a,l),width:Math.abs(s-r),height:Math.abs(l-a)}},she=function(t){var n=t.x1,r=t.y1,a=t.x2,s=t.y2;return Tq({x:n,y:r},{x:a,y:s})},kq=(function(){function e(t){rhe(this,e),this.scale=t}return ahe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();ky(kq,"EPS",1e-4);var YO=function(t){var n=Object.keys(t).reduce(function(r,a){return qa(qa({},r),{},ky({},a,kq.create(t[a])))},{});return qa(qa({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=s.bandAware,u=s.position;return Rfe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return _q(a,function(s,l){return n[l].isInRange(s)})}})};function ohe(e){return(e%180+180)%180}var lhe=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=ohe(a),l=s*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?s[m]:m]:void 0}}return HS=r,HS}var WS,_I;function uhe(){if(_I)return WS;_I=1;var e=bq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return WS=t,WS}var VS,NI;function dhe(){if(NI)return VS;NI=1;var e=TB(),t=Ci(),n=uhe(),r=Math.max;function a(s,l,u){var d=s==null?0:s.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(s,t(l,3),f)}return VS=a,VS}var GS,CI;function fhe(){if(CI)return GS;CI=1;var e=che(),t=dhe(),n=e(t);return GS=n,GS}var hhe=fhe();const mhe=Rt(hhe);var phe=Vz();const vhe=Rt(phe);var ghe=vhe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),KO=y.createContext(void 0),XO=y.createContext(void 0),Mq=y.createContext(void 0),Pq=y.createContext({}),Rq=y.createContext(void 0),Dq=y.createContext(0),$q=y.createContext(0),OI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=ghe(s);return W.createElement(KO.Provider,{value:r},W.createElement(XO.Provider,{value:a},W.createElement(Pq.Provider,{value:s},W.createElement(Mq.Provider,{value:m},W.createElement(Rq.Provider,{value:l},W.createElement(Dq.Provider,{value:f},W.createElement($q.Provider,{value:d},u)))))))},yhe=function(){return y.useContext(Rq)},Iq=function(t){var n=y.useContext(KO);n==null&&vr(!1);var r=n[t];return r==null&&vr(!1),r},xhe=function(){var t=y.useContext(KO);return Ks(t)},bhe=function(){var t=y.useContext(XO),n=mhe(t,function(r){return _q(r.domain,Number.isFinite)});return n||Ks(t)},Lq=function(t){var n=y.useContext(XO);n==null&&vr(!1);var r=n[t];return r==null&&vr(!1),r},whe=function(){var t=y.useContext(Mq);return t},jhe=function(){return y.useContext(Pq)},ZO=function(){return y.useContext($q)},QO=function(){return y.useContext(Dq)};function _u(e){"@babel/helpers - typeof";return _u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_u(e)}function She(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _he(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var s=n();return e*(t-e*s/2-r)>=0&&e*(t+e*s/2-a)<=0}function ime(e,t){return Wq(e,t+1)}function sme(e,t,n,r,a){for(var s=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Wq(r,f)};var w=d,b,N=function(){return b===void 0&&(b=n(j,w)),b},E=j.coordinate,O=d===0||Sg(e,E,N,m,u);O||(d=0,m=l,f+=1),O&&(m=E+e*(N()/2+a),d+=f)},g;f<=s.length;)if(g=p(),g)return g.v;return[]}function mh(e){"@babel/helpers - typeof";return mh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mh(e)}function DI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t0?x.coordinate-b*e:x.coordinate})}else s[g]=x=ur(ur({},x),{},{tickCoord:x.coordinate});var N=Sg(e,x.tickCoord,w,u,d);N&&(d=x.tickCoord-e*(w()/2+a),s[g]=ur(ur({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return s}function dme(e,t,n,r,a,s){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(s){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=ur(ur({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=Sg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=ur(ur({},m),{},{isShow:!0}))}for(var j=s?u-1:u,w=function(E){var O=l[E],A,C=function(){return A===void 0&&(A=n(O,E)),A};if(E===0){var k=e*(O.coordinate-e*C()/2-d);l[E]=O=ur(ur({},O),{},{tickCoord:k<0?O.coordinate-k*e:O.coordinate})}else l[E]=O=ur(ur({},O),{},{tickCoord:O.coordinate});var T=Sg(e,O.tickCoord,C,d,f);T&&(d=O.tickCoord+e*(C()/2+a),l[E]=ur(ur({},O),{},{isShow:!0}))},b=0;b=2?Sr(a[1].coordinate-a[0].coordinate):1,N=ame(s,b,x);return d==="equidistantPreserveStart"?sme(b,N,w,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=dme(b,N,w,a,l,d==="preserveStartEnd"):g=ume(b,N,w,a,l),g.filter(function(E){return E.isShow}))}var fme=["viewBox"],hme=["viewBox"],mme=["ticks"];function Ou(e){"@babel/helpers - typeof";return Ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(e)}function Wc(){return Wc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function pme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vme(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function II(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(Nt,{className:et("recharts-cartesian-axis",f),ref:function(b){r.layerReference=b}},s&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),Vn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var l,u=et(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,Dn(Dn({},a),{},{className:u})):Ye(r)?l=r(Dn(Dn({},a),{},{className:u})):l=W.createElement(vl,Wc({},a,{className:"recharts-cartesian-axis-tick-value"}),s),l}}])})(y.Component);nE(Zu,"displayName","CartesianAxis");nE(Zu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var Sme=["x1","y1","x2","y2","key"],_me=["offset"];function yl(e){"@babel/helpers - typeof";return yl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yl(e)}function LI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function fr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Eme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Ame=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,s=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:s,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function Yq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(Ye(e))n=e(t);else{var r=t.x1,a=t.y1,s=t.x2,l=t.y2,u=t.key,d=zI(t,Sme),f=qe(d,!1);f.offset;var m=zI(f,_me);n=W.createElement("line",el({},m,{x1:r,y1:a,x2:s,y2:l,fill:"none",key:u}))}return n}function Tme(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,s=e.horizontalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return Yq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function kme(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,s=e.verticalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return Yq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Mme(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,s=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?a+l-g:m[x+1]-g;if(w<=0)return null;var b=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:w,width:s,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function Pme(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,s=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+s-s)}).sort(function(g,x){return g-x});s!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?s+u-g:m[x+1]-g;if(w<=0)return null;var b=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:w,height:d,stroke:"none",fill:r[b],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Rme=function(t,n){var r=t.xAxis,a=t.width,s=t.height,l=t.offset;return Y6(tE(fr(fr(fr({},Zu.defaultProps),r),{},{ticks:es(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.left,l.left+l.width,n)},Dme=function(t,n){var r=t.yAxis,a=t.width,s=t.height,l=t.offset;return Y6(tE(fr(fr(fr({},Zu.defaultProps),r),{},{ticks:es(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.top,l.top+l.height,n)},Ec={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function yf(e){var t,n,r,a,s,l,u=ZO(),d=QO(),f=jhe(),m=fr(fr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Ec.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Ec.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Ec.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:Ec.horizontalFill,vertical:(s=e.vertical)!==null&&s!==void 0?s:Ec.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:Ec.verticalFill,x:Ee(e.x)?e.x:f.left,y:Ee(e.y)?e.y:f.top,width:Ee(e.width)?e.width:f.width,height:Ee(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,w=m.syncWithTicks,b=m.horizontalValues,N=m.verticalValues,E=xhe(),O=bhe();if(!Ee(x)||x<=0||!Ee(j)||j<=0||!Ee(p)||p!==+p||!Ee(g)||g!==+g)return null;var A=m.verticalCoordinatesGenerator||Rme,C=m.horizontalCoordinatesGenerator||Dme,k=m.horizontalPoints,T=m.verticalPoints;if((!k||!k.length)&&Ye(C)){var M=b&&b.length,R=C({yAxis:O?fr(fr({},O),{},{ticks:M?b:O.ticks}):void 0,width:u,height:d,offset:f},M?!0:w);Va(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(yl(R),"]")),Array.isArray(R)&&(k=R)}if((!T||!T.length)&&Ye(A)){var L=N&&N.length,D=A({xAxis:E?fr(fr({},E),{},{ticks:L?N:E.ticks}):void 0,width:u,height:d,offset:f},L?!0:w);Va(Array.isArray(D),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(yl(D),"]")),Array.isArray(D)&&(T=D)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Ame,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(Tme,el({},m,{offset:f,horizontalPoints:k,xAxis:E,yAxis:O})),W.createElement(kme,el({},m,{offset:f,verticalPoints:T,xAxis:E,yAxis:O})),W.createElement(Mme,el({},m,{horizontalPoints:k})),W.createElement(Pme,el({},m,{verticalPoints:T})))}yf.displayName="CartesianGrid";var $me=["type","layout","connectNulls","ref"],Ime=["key"];function Eu(e){"@babel/helpers - typeof";return Eu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Eu(e)}function BI(e,t){if(e==null)return{};var n=Lme(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Mf(){return Mf=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Ac(d.slice(0,j)),[p-w]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(Ac(t.repeat(d,m)),Ac(x),b).map(function(N){return"".concat(N,"px")}).join(", ")}),Fa(n,"id",Vu("recharts-line-")),Fa(n,"pathRef",function(l){n.mainCurve=l}),Fa(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),Fa(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Yme(t,e),Hme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.points,u=s.xAxis,d=s.yAxis,f=s.layout,m=s.children,p=oa(m,Vh);if(!p)return null;var g=function(w,b){return{x:w.x,y:w.y,value:w.value,errorVal:In(w.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(Nt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,s){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=qe(this.props,!1),g=qe(d,!0),x=f.map(function(w,b){var N=Qr(Qr(Qr({key:"dot-".concat(b),r:3},p),g),{},{index:b,cx:w.x,cy:w.y,value:w.value,dataKey:m,payload:w.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return W.createElement(Nt,Mf({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,s,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=BI(u,$me),g=Qr(Qr(Qr({},qe(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(ig,Mf({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,w=l.width,b=l.height,N=this.state,E=N.prevPoints,O=N.totalLength;return W.createElement(ji,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(A){var C=A.t;if(E){var k=E.length/u.length,T=u.map(function(U,V){var H=Math.floor(V*k);if(E[H]){var G=E[H],$=ra(G.x,U.x),I=ra(G.y,U.y);return Qr(Qr({},U),{},{x:$(C),y:I(C)})}if(j){var q=ra(w*2,U.x),Z=ra(b/2,U.y);return Qr(Qr({},U),{},{x:q(C),y:Z(C)})}return Qr(Qr({},U),{},{x:U.x,y:U.y})});return s.renderCurveStatically(T,r,a)}var M=ra(0,O),R=M(C),L;if(d){var D="".concat(d).split(/[,\s]+/gim).map(function(U){return parseFloat(U)});L=s.getStrokeDasharray(R,O,D)}else L=s.generateSimpleStrokeDasharray(O,R);return s.renderCurveStatically(u,r,a,{strokeDasharray:L})})}},{key:"renderCurve",value:function(r,a){var s=this.props,l=s.points,u=s.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Wh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,w=a.isAnimationActive,b=a.id;if(s||!u||!u.length)return null;var N=this.state.isAnimationFinished,E=u.length===1,O=et("recharts-line",d),A=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=A||C,T=Je(b)?this.id:b,M=(r=qe(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},R=M.r,L=R===void 0?3:R,D=M.strokeWidth,U=D===void 0?2:D,V=OJ(l)?l:{},H=V.clipDot,G=H===void 0?!0:H,$=L*2+U;return W.createElement(Nt,{className:O},A||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(T)},W.createElement("rect",{x:A?g:g-x/2,y:C?p:p-j/2,width:A?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(T)},W.createElement("rect",{x:g-$/2,y:p-$/2,width:x+$,height:j+$}))):null,!E&&this.renderCurve(k,T),this.renderErrorBar(k,T),(E||l)&&this.renderDots(k,G,T),(!w||N)&&ss.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Ac(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lpe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function zpe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ee(a)&&Ee(s)?t.slice(a,s+1):[]};function c8(e){return e==="number"?[0,"auto"]:void 0}var XN=function(t,n,r,a){var s=t.graphicalItems,l=t.tooltipAxis,u=$y(n,t);return r<0||!s||!s.length||r>=u.length?null:s.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=kv(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(Mu(d),[J6(f,g)]):d},[])},KI=function(t,n,r,a){var s=a||{x:t.chartX,y:t.chartY},l=Qpe(s,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=_oe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=XN(t,n,m,p),x=Jpe(r,u,m,s);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},eve=function(t,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=G6(m,s);return r.reduce(function(j,w){var b,N=w.type.defaultProps!==void 0?ge(ge({},w.type.defaultProps),w.props):w.props,E=N.type,O=N.dataKey,A=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,T=N.ticks,M=N.includeHidden,R=N[l];if(j[R])return j;var L=$y(t.data,{graphicalItems:a.filter(function(z){var K,ie=l in z.props?z.props[l]:(K=z.type.defaultProps)===null||K===void 0?void 0:K[l];return ie===R}),dataStartIndex:d,dataEndIndex:f}),D=L.length,U,V,H;Cpe(N.domain,A,E)&&(U=uN(N.domain,null,A),x&&(E==="number"||k!=="auto")&&(H=Ef(L,O,"category")));var G=c8(E);if(!U||U.length===0){var $,I=($=N.domain)!==null&&$!==void 0?$:G;if(O){if(U=Ef(L,O,E),E==="category"&&x){var q=gJ(U);C&&q?(V=U,U=pg(0,D)):C||(U=Y3(I,U,w).reduce(function(z,K){return z.indexOf(K)>=0?z:[].concat(Mu(z),[K])},[]))}else if(E==="category")C?U=U.filter(function(z){return z!==""&&!Je(z)}):U=Y3(I,U,w).reduce(function(z,K){return z.indexOf(K)>=0||K===""||Je(K)?z:[].concat(Mu(z),[K])},[]);else if(E==="number"){var Z=Aoe(L,a.filter(function(z){var K,ie,Q=l in z.props?z.props[l]:(K=z.type.defaultProps)===null||K===void 0?void 0:K[l],he="hide"in z.props?z.props.hide:(ie=z.type.defaultProps)===null||ie===void 0?void 0:ie.hide;return Q===R&&(M||!he)}),O,s,m);Z&&(U=Z)}x&&(E==="number"||k!=="auto")&&(H=Ef(L,O,"category"))}else x?U=pg(0,D):u&&u[R]&&u[R].hasStack&&E==="number"?U=g==="expand"?[0,1]:Q6(u[R].stackGroups,d,f):U=V6(L,a.filter(function(z){var K=l in z.props?z.props[l]:z.type.defaultProps[l],ie="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return K===R&&(M||!ie)}),E,m,!0);if(E==="number")U=GN(p,U,R,s,T),I&&(U=uN(I,U,A));else if(E==="category"&&I){var ee=I,F=U.every(function(z){return ee.indexOf(z)>=0});F&&(U=ee)}}return ge(ge({},j),{},He({},R,ge(ge({},N),{},{axisType:s,domain:U,categoricalDomain:H,duplicateDomain:V,originalDomain:(b=N.domain)!==null&&b!==void 0?b:G,isCategorical:x,layout:m})))},{})},tve=function(t,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=$y(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=G6(m,s),w=-1;return r.reduce(function(b,N){var E=N.type.defaultProps!==void 0?ge(ge({},N.type.defaultProps),N.props):N.props,O=E[l],A=c8("number");if(!b[O]){w++;var C;return j?C=pg(0,x):u&&u[O]&&u[O].hasStack?(C=Q6(u[O].stackGroups,d,f),C=GN(p,C,O,s)):(C=uN(A,V6(g,r.filter(function(k){var T,M,R=l in k.props?k.props[l]:(T=k.type.defaultProps)===null||T===void 0?void 0:T[l],L="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return R===O&&!L}),"number",m),a.defaultProps.allowDataOverflow),C=GN(p,C,O,s)),ge(ge({},b),{},He({},O,ge(ge({axisType:s},a.defaultProps),{},{hide:!0,orientation:sa(Xpe,"".concat(s,".").concat(w%2),null),domain:C,originalDomain:A,isCategorical:j,layout:m})))}return b},{})},nve=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=oa(m,s),x={};return g&&g.length?x=eve(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=tve(t,{Axis:s,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},rve=function(t){var n=Ks(t),r=es(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:bO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:ng(n,r)}},XI=function(t){var n=t.children,r=t.defaultShowTooltip,a=ea(n,ju),s=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},ave=function(t){return!t||!t.length?!1:t.some(function(n){var r=as(n&&n.type);return r&&r.indexOf("Bar")>=0})},ZI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},ive=function(t,n){var r=t.props,a=t.graphicalItems,s=t.xAxisMap,l=s===void 0?{}:s,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=ea(p,ju),j=ea(p,sl),w=Object.keys(d).reduce(function(C,k){var T=d[k],M=T.orientation;return!T.mirror&&!T.hide?ge(ge({},C),{},He({},M,C[M]+T.width)):C},{left:g.left||0,right:g.right||0}),b=Object.keys(l).reduce(function(C,k){var T=l[k],M=T.orientation;return!T.mirror&&!T.hide?ge(ge({},C),{},He({},M,sa(C,"".concat(M))+T.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ge(ge({},b),w),E=N.bottom;x&&(N.bottom+=x.props.height||ju.defaultProps.height),j&&n&&(N=Ooe(N,a,r,n));var O=f-N.left-N.right,A=m-N.top-N.bottom;return ge(ge({brushBottom:E},N),{},{width:Math.max(O,0),height:Math.max(A,0)})},sve=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},rE=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,s=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,E){var O=E.graphicalItems,A=E.stackGroups,C=E.offset,k=E.updateId,T=E.dataStartIndex,M=E.dataEndIndex,R=N.barSize,L=N.layout,D=N.barGap,U=N.barCategoryGap,V=N.maxBarSize,H=ZI(L),G=H.numericAxisName,$=H.cateAxisName,I=ave(O),q=[];return O.forEach(function(Z,ee){var F=$y(N.data,{graphicalItems:[Z],dataStartIndex:T,dataEndIndex:M}),z=Z.type.defaultProps!==void 0?ge(ge({},Z.type.defaultProps),Z.props):Z.props,K=z.dataKey,ie=z.maxBarSize,Q=z["".concat(G,"Id")],he=z["".concat($,"Id")],ae={},we=d.reduce(function(Tt,zt){var at=E["".concat(zt.axisType,"Map")],re=z["".concat(zt.axisType,"Id")];at&&at[re]||zt.axisType==="zAxis"||vr(!1);var Se=at[re];return ge(ge({},Tt),{},He(He({},zt.axisType,Se),"".concat(zt.axisType,"Ticks"),es(Se)))},ae),Y=we[$],pe=we["".concat($,"Ticks")],je=A&&A[Q]&&A[Q].hasStack&&Loe(Z,A[Q].stackGroups),X=as(Z.type).indexOf("Bar")>=0,Ae=ng(Y,pe),Oe=[],We=I&&Noe({barSize:R,stackGroups:A,totalSize:sve(we,$)});if(X){var Ve,be,_e=Je(ie)?V:ie,rt=(Ve=(be=ng(Y,pe,!0))!==null&&be!==void 0?be:_e)!==null&&Ve!==void 0?Ve:0;Oe=Coe({barGap:D,barCategoryGap:U,bandSize:rt!==Ae?rt:Ae,sizeList:We[he],maxBarSize:_e}),rt!==Ae&&(Oe=Oe.map(function(Tt){return ge(ge({},Tt),{},{position:ge(ge({},Tt.position),{},{offset:Tt.position.offset-rt/2})})}))}var fn=Z&&Z.type&&Z.type.getComposedData;fn&&q.push({props:ge(ge({},fn(ge(ge({},we),{},{displayedData:F,props:N,dataKey:K,item:Z,bandSize:Ae,barPosition:Oe,offset:C,stackedData:je,layout:L,dataStartIndex:T,dataEndIndex:M}))),{},He(He(He({key:Z.key||"item-".concat(ee)},G,we[G]),$,we[$]),"animationId",k)),childIndex:TJ(Z,N.children),item:Z})}),q},x=function(N,E){var O=N.props,A=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!lR({props:O}))return null;var T=O.children,M=O.layout,R=O.stackOffset,L=O.data,D=O.reverseStackOrder,U=ZI(M),V=U.numericAxisName,H=U.cateAxisName,G=oa(T,r),$=$oe(L,G,"".concat(V,"Id"),"".concat(H,"Id"),R,D),I=d.reduce(function(z,K){var ie="".concat(K.axisType,"Map");return ge(ge({},z),{},He({},ie,nve(O,ge(ge({},K),{},{graphicalItems:G,stackGroups:K.axisType===V&&$,dataStartIndex:A,dataEndIndex:C}))))},{}),q=ive(ge(ge({},I),{},{props:O,graphicalItems:G}),E?.legendBBox);Object.keys(I).forEach(function(z){I[z]=m(O,I[z],q,z.replace("Map",""),n)});var Z=I["".concat(H,"Map")],ee=rve(Z),F=g(O,ge(ge({},I),{},{dataStartIndex:A,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:$,offset:q}));return ge(ge({formattedGraphicalItems:F,graphicalItems:G,offset:q,stackGroups:$},ee),I)},j=(function(b){function N(E){var O,A,C;return zpe(this,N),C=Fpe(this,N,[E]),He(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),He(C,"accessibilityManager",new Npe),He(C,"handleLegendBBoxUpdate",function(k){if(k){var T=C.state,M=T.dataStartIndex,R=T.dataEndIndex,L=T.updateId;C.setState(ge({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:R,updateId:L},ge(ge({},C.state),{},{legendBBox:k}))))}}),He(C,"handleReceiveSyncEvent",function(k,T,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(T)}}),He(C,"handleBrushChange",function(k){var T=k.startIndex,M=k.endIndex;if(T!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var R=C.state.updateId;C.setState(function(){return ge({dataStartIndex:T,dataEndIndex:M},x({props:C.props,dataStartIndex:T,dataEndIndex:M,updateId:R},C.state))}),C.triggerSyncEvent({dataStartIndex:T,dataEndIndex:M})}}),He(C,"handleMouseEnter",function(k){var T=C.getMouseInfo(k);if(T){var M=ge(ge({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseEnter;Ye(R)&&R(M,k)}}),He(C,"triggeredAfterMouseMove",function(k){var T=C.getMouseInfo(k),M=T?ge(ge({},T),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseMove;Ye(R)&&R(M,k)}),He(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),He(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),He(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),He(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var T={isTooltipActive:!1};C.setState(T),C.triggerSyncEvent(T);var M=C.props.onMouseLeave;Ye(M)&&M(T,k)}),He(C,"handleOuterEvent",function(k){var T=AJ(k),M=sa(C.props,"".concat(T));if(T&&Ye(M)){var R,L;/.*touch.*/i.test(T)?L=C.getMouseInfo(k.changedTouches[0]):L=C.getMouseInfo(k),M((R=L)!==null&&R!==void 0?R:{},k)}}),He(C,"handleClick",function(k){var T=C.getMouseInfo(k);if(T){var M=ge(ge({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onClick;Ye(R)&&R(M,k)}}),He(C,"handleMouseDown",function(k){var T=C.props.onMouseDown;if(Ye(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleMouseUp",function(k){var T=C.props.onMouseUp;if(Ye(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),He(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),He(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),He(C,"handleDoubleClick",function(k){var T=C.props.onDoubleClick;if(Ye(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleContextMenu",function(k){var T=C.props.onContextMenu;if(Ye(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&XS.emit(ZS,C.props.syncId,k,C.eventEmitterSymbol)}),He(C,"applySyncEvent",function(k){var T=C.props,M=T.layout,R=T.syncMethod,L=C.state.updateId,D=k.dataStartIndex,U=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ge({dataStartIndex:D,dataEndIndex:U},x({props:C.props,dataStartIndex:D,dataEndIndex:U,updateId:L},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,H=k.chartY,G=k.activeTooltipIndex,$=C.state,I=$.offset,q=$.tooltipTicks;if(!I)return;if(typeof R=="function")G=R(q,k);else if(R==="value"){G=-1;for(var Z=0;Z=0){var je,X;if(V.dataKey&&!V.allowDuplicatedCategory){var Ae=typeof V.dataKey=="function"?pe:"payload.".concat(V.dataKey.toString());je=kv(Z,Ae,G),X=ee&&F&&kv(F,Ae,G)}else je=Z?.[H],X=ee&&F&&F[H];if(he||Q){var Oe=k.props.activeIndex!==void 0?k.props.activeIndex:H;return[y.cloneElement(k,ge(ge(ge({},R.props),we),{},{activeIndex:Oe})),null,null]}if(!Je(je))return[Y].concat(Mu(C.renderActivePoints({item:R,activePoint:je,basePoint:X,childIndex:H,isRange:ee})))}else{var We,Ve=(We=C.getItemByXY(C.state.activeCoordinate))!==null&&We!==void 0?We:{graphicalItem:Y},be=Ve.graphicalItem,_e=be.item,rt=_e===void 0?k:_e,fn=be.childIndex,Tt=ge(ge(ge({},R.props),we),{},{activeIndex:fn});return[y.cloneElement(rt,Tt),null,null]}return ee?[Y,null,null]:[Y,null]}),He(C,"renderCustomized",function(k,T,M){return y.cloneElement(k,ge(ge({key:"recharts-customized-".concat(M)},C.props),C.state))}),He(C,"renderMap",{CartesianGrid:{handler:Yp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:Yp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:Yp},YAxis:{handler:Yp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((O=E.id)!==null&&O!==void 0?O:Vu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=UB(C.triggeredAfterMouseMove,(A=E.throttleDelay)!==null&&A!==void 0?A:1e3/60),C.state={},C}return Wpe(N,b),qpe(N,[{key:"componentDidMount",value:function(){var O,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(O=this.props.margin.left)!==null&&O!==void 0?O:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var O=this.props,A=O.children,C=O.data,k=O.height,T=O.layout,M=ea(A,oi);if(M){var R=M.props.defaultIndex;if(!(typeof R!="number"||R<0||R>this.state.tooltipTicks.length-1)){var L=this.state.tooltipTicks[R]&&this.state.tooltipTicks[R].value,D=XN(this.state,C,R,L),U=this.state.tooltipTicks[R].coordinate,V=(this.state.offset.top+k)/2,H=T==="horizontal",G=H?{x:U,y:V}:{y:U,x:V},$=this.state.formattedGraphicalItems.find(function(q){var Z=q.item;return Z.type.name==="Scatter"});$&&(G=ge(ge({},G),$.props.points[R].tooltipPosition),D=$.props.points[R].tooltipPayload);var I={activeTooltipIndex:R,isTooltipActive:!0,activeLabel:L,activePayload:D,activeCoordinate:G};this.setState(I),this.renderCursor(M),this.accessibilityManager.setIndex(R)}}}},{key:"getSnapshotBeforeUpdate",value:function(O,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==O.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==O.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(O){M_([ea(O.children,oi)],[ea(this.props.children,oi)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var O=ea(this.props.children,oi);if(O&&typeof O.props.shared=="boolean"){var A=O.props.shared?"axis":"item";return u.indexOf(A)>=0?A:s}return s}},{key:"getMouseInfo",value:function(O){if(!this.container)return null;var A=this.container,C=A.getBoundingClientRect(),k=gre(C),T={chartX:Math.round(O.pageX-k.left),chartY:Math.round(O.pageY-k.top)},M=C.width/A.offsetWidth||1,R=this.inRange(T.chartX,T.chartY,M);if(!R)return null;var L=this.state,D=L.xAxisMap,U=L.yAxisMap,V=this.getTooltipEventType(),H=KI(this.state,this.props.data,this.props.layout,R);if(V!=="axis"&&D&&U){var G=Ks(D).scale,$=Ks(U).scale,I=G&&G.invert?G.invert(T.chartX):null,q=$&&$.invert?$.invert(T.chartY):null;return ge(ge({},T),{},{xValue:I,yValue:q},H)}return H?ge(ge({},T),H):null}},{key:"inRange",value:function(O,A){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,T=O/C,M=A/C;if(k==="horizontal"||k==="vertical"){var R=this.state.offset,L=T>=R.left&&T<=R.left+R.width&&M>=R.top&&M<=R.top+R.height;return L?{x:T,y:M}:null}var D=this.state,U=D.angleAxisMap,V=D.radiusAxisMap;if(U&&V){var H=Ks(U);return Z3({x:T,y:M},H)}return null}},{key:"parseEventsOfWrapper",value:function(){var O=this.props.children,A=this.getTooltipEventType(),C=ea(O,oi),k={};C&&A==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var T=Mv(this.props,this.handleOuterEvent);return ge(ge({},T),k)}},{key:"addListener",value:function(){XS.on(ZS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){XS.removeListener(ZS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(O,A,C){for(var k=this.state.formattedGraphicalItems,T=0,M=k.length;T");return e}const $c=y.forwardRef(({id:e,className:t,children:n,config:r,...a},s)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(u8.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:s,className:ue("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(uve,{id:u,config:r}),i.jsx(ure,{children:n})]})})});$c.displayName="Chart";const uve=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(cve).map(([r,a])=>` +${a} [data-chart=${e}] { +${n.map(([s,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${s}: ${u};`:null}).join(` +`)} +} +`).join(` +`)}}):null},ff=oi,Ic=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:s=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=d8(),w=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,E=`${g||N?.dataKey||N?.name||"value"}`,O=ZN(j,N,E),A=!g&&typeof l=="string"?j[l]?.label||l:O?.label;return u?i.jsx("div",{className:ue("font-medium",d),children:u(A,t)}):A?i.jsx("div",{className:ue("font-medium",d),children:A}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const b=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:ue("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[b?null:w,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,E)=>{const O=`${p||N.name||N.dataKey||"value"}`,A=ZN(j,N,O),C=m||N.payload.fill||N.color;return i.jsx("div",{className:ue("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,E,N.payload):i.jsxs(i.Fragment,{children:[A?.icon?i.jsx(A.icon,{}):!s&&i.jsx("div",{className:ue("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":b&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:ue("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[b?w:null,i.jsx("span",{className:"text-muted-foreground",children:A?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});Ic.displayName="ChartTooltip";const dve=sl,f8=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},s)=>{const{config:l}=d8();return n?.length?i.jsx("div",{ref:s,className:ue("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=ZN(l,u,d);return i.jsxs("div",{className:ue("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});f8.displayName="ChartLegend";function ZN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const fve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),hve=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),QI=e=>{const t=hve(e);return t.charAt(0).toUpperCase()+t.slice(1)},h8=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),mve=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var pve={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const vve=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...pve,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:h8("lucide",a),...!s&&!mve(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(s)?s:[s]]));const Te=(e,t)=>{const n=y.forwardRef(({className:r,...a},s)=>y.createElement(vve,{ref:s,iconNode:t,className:h8(`lucide-${fve(QI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=QI(e),n};const gve=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],yve=Te("activity",gve);const xve=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],m8=Te("arrow-left",xve);const bve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],wve=Te("arrow-right",bve);const jve=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],JI=Te("ban",jve);const Sve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],_ve=Te("book-open",Sve);const Nve=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Cve=Te("bot",Nve);const Ove=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],p8=Te("boxes",Ove);const Eve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],eL=Te("calendar",Eve);const Ave=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],Tve=Te("chart-column",Ave);const kve=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],cl=Te("check",kve);const Mve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],gh=Te("chevron-down",Mve);const Pve=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Yh=Te("chevron-left",Pve);const Rve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Kh=Te("chevron-right",Rve);const Dve=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],QN=Te("chevron-up",Dve);const $ve=[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]],aE=Te("chevrons-left",$ve);const Ive=[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]],iE=Te("chevrons-right",Ive);const Lve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],zve=Te("chevrons-up-down",Lve);const Bve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],xl=Te("circle-alert",Bve);const qve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Dr=Te("circle-check",qve);const Fve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Uve=Te("circle-question-mark",Fve);const Hve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],v8=Te("circle-user",Hve);const Wve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],JN=Te("circle-x",Wve);const Vve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Gve=Te("circle",Vve);const Yve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ul=Te("clock",Yve);const Kve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],eC=Te("copy",Kve);const Xve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Zve=Te("database",Xve);const Qve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Jve=Te("dollar-sign",Qve);const ege=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],tC=Te("download",ege);const tge=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Pf=Te("external-link",tge);const nge=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],nC=Te("eye-off",nge);const rge=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ya=Te("eye",rge);const age=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],Ag=Te("file-search",age);const ige=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],sE=Te("file-text",ige);const sge=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],rC=Te("funnel",sge);const oge=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Tg=Te("hash",oge);const lge=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],kg=Te("house",lge);const cge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Pu=Te("info",cge);const uge=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],dge=Te("key",uge);const fge=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],yh=Te("loader-circle",fge);const hge=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],tL=Te("lock",hge);const mge=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],nL=Te("log-out",mge);const pge=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],vge=Te("menu",pge);const gge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Xh=Te("message-square",gge);const yge=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],aC=Te("moon",yge);const xge=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Mg=Te("package",xge);const bge=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],g8=Te("palette",bge);const wge=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],jge=Te("pause",wge);const Sge=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Ru=Te("pencil",Sge);const _ge=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Nge=Te("play",_ge);const Cge=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ir=Te("plus",Cge);const Oge=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],oE=Te("power",Oge);const Ege=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],os=Te("refresh-cw",Ege);const Age=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Tge=Te("rotate-ccw",Age);const kge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Mge=Te("rotate-cw",kge);const Pge=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],lE=Te("save",Pge);const Rge=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Br=Te("search",Rge);const Dge=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],y8=Te("server",Dge);const $ge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Ige=Te("settings-2",$ge);const Lge=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ha=Te("settings",Lge);const zge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Bge=Te("shield",zge);const qge=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Fge=Te("skip-forward",qge);const Uge=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],Hge=Te("sliders-vertical",Uge);const Wge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],cE=Te("smile",Wge);const Vge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Gge=Te("sparkles",Vge);const Yge=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Du=Te("square-pen",Yge);const Kge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],rL=Te("star",Kge);const Xge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],iC=Te("sun",Xge);const Zge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Qge=Te("terminal",Zge);const Jge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Ct=Te("trash-2",Jge);const eye=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],tye=Te("trending-up",eye);const nye=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Xc=Te("triangle-alert",nye);const rye=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],x8=Te("user",rye);const aye=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],iye=Te("users",aye);const sye=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Zh=Te("x",sye);const oye=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],xh=Te("zap",oye),aL=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,iL=et,Qu=(e,t)=>n=>{var r;if(t?.variants==null)return iL(e,n?.class,n?.className);const{variants:a,defaultVariants:s}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=s?.[f];if(m===null)return null;const g=aL(m)||aL(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[w,b]=j;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...f,p,g]:f},[]);return iL(e,l,d,n?.class,n?.className)},bh=Qu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),oe=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const l=r?pQ:"button";return i.jsx(l,{className:ue(bh({variant:t,size:n,className:e})),ref:s,...a})});oe.displayName="Button";function lye(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(24),[d,f]=y.useState(!0),[m,p]=y.useState(null),[g,x]=y.useState(!0),j=y.useCallback(async()=>{try{x(!0);const R=await xn.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");p({hitokoto:R.data.hitokoto,from:R.data.from||R.data.from_who||"未知"})}catch(R){console.error("获取一言失败:",R),p({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{x(!1)}},[]),w=y.useCallback(async()=>{try{const R=localStorage.getItem("access-token"),L=await xn.get(`/api/webui/statistics/dashboard?hours=${l}`,{headers:{Authorization:`Bearer ${R}`}});t(L.data),r(!1),s(100)}catch(R){console.error("Failed to fetch dashboard data:",R),r(!1),s(100)}},[l]);if(y.useEffect(()=>{if(!n)return;s(0);const R=setTimeout(()=>s(15),200),L=setTimeout(()=>s(30),800),D=setTimeout(()=>s(45),2e3),U=setTimeout(()=>s(60),4e3),V=setTimeout(()=>s(75),6500),H=setTimeout(()=>s(85),9e3),G=setTimeout(()=>s(92),11e3);return()=>{clearTimeout(R),clearTimeout(L),clearTimeout(D),clearTimeout(U),clearTimeout(V),clearTimeout(H),clearTimeout(G)}},[n]),y.useEffect(()=>{w(),j()},[w,j]),y.useEffect(()=>{if(!d)return;const R=setInterval(()=>{w()},3e4);return()=>clearInterval(R)},[d,w]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[i.jsx(os,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Ih,{value:a,className:"h-2"}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:[a,"%"]})]})]})});const{summary:b,model_stats:N,hourly_data:E,daily_data:O,recent_activity:A}=e,C=R=>{const L=Math.floor(R/3600),D=Math.floor(R%3600/60);return`${L}小时${D}分钟`},k=R=>new Date(R).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),T=N.slice(0,6).map(R=>({name:R.model_name,value:R.request_count,fill:`hsl(var(--chart-${N.indexOf(R)%5+1}))`})),M={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(hl,{value:l.toString(),onValueChange:R=>u(Number(R)),children:i.jsxs(ao,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Lt,{value:"24",children:"24小时"}),i.jsx(Lt,{value:"168",children:"7天"}),i.jsx(Lt,{value:"720",children:"30天"})]})}),i.jsxs(oe,{variant:d?"default":"outline",size:"sm",onClick:()=>f(!d),className:"gap-2",children:[i.jsx(os,{className:`h-4 w-4 ${d?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:w,children:i.jsx(os,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(yve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",l<48?l+"小时":Math.floor(l/24)+"天"]})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"总花费"}),i.jsx(Jve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",b.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.cost_per_hour>0?`¥${b.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(Zve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(b.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.tokens_per_hour>0?`${(b.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(xh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[b.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(ul,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(Pt,{children:i.jsx("div",{className:"text-xl font-bold",children:C(b.online_time)})})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(Xh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",b.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(tye,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages>0?`¥${(b.total_cost/b.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(hl,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(ao,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Lt,{value:"trends",children:"趋势"}),i.jsx(Lt,{value:"models",children:"模型"}),i.jsx(Lt,{value:"activity",children:"活动"}),i.jsx(Lt,{value:"daily",children:"日统计"})]}),i.jsxs(vn,{value:"trends",className:"space-y-4",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"请求趋势"}),i.jsxs(Wn,{children:["最近",l,"小时的请求量变化"]})]}),i.jsx(Pt,{children:i.jsx($c,{config:M,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(ove,{data:E,children:[i.jsx(yf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Qs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(ff,{content:i.jsx(Ic,{labelFormatter:R=>k(R)})}),i.jsx(Gh,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"花费趋势"}),i.jsx(Wn,{children:"API调用成本变化"})]}),i.jsx(Pt,{children:i.jsx($c,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(JS,{data:E,children:[i.jsx(yf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Qs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(ff,{content:i.jsx(Ic,{labelFormatter:R=>k(R)})}),i.jsx(hi,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"Token消耗"}),i.jsx(Wn,{children:"Token使用量变化"})]}),i.jsx(Pt,{children:i.jsx($c,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(JS,{data:E,children:[i.jsx(yf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Qs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(ff,{content:i.jsx(Ic,{labelFormatter:R=>k(R)})}),i.jsx(hi,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(vn,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"模型请求分布"}),i.jsx(Wn,{children:"各模型使用占比"})]}),i.jsx(Pt,{children:i.jsx($c,{config:Object.fromEntries(N.slice(0,6).map((R,L)=>[R.model_name,{label:R.model_name,color:`hsl(var(--chart-${L%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(lve,{children:[i.jsx(ff,{content:i.jsx(Ic,{})}),i.jsx(gs,{data:T,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percent:L})=>`${R} ${L?(L*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:T.map((R,L)=>i.jsx(fy,{fill:R.fill},`cell-${L}`))})]})})})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"模型详细统计"}),i.jsx(Wn,{children:"请求数、花费和性能"})]}),i.jsx(Pt,{children:i.jsx(Gt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:N.map((R,L)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:R.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${L%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:R.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",R.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(R.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[R.avg_response_time.toFixed(2),"s"]})]})]})]},L))})})})]})]})}),i.jsx(vn,{value:"activity",children:i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"最近活动"}),i.jsx(Wn,{children:"最新的API调用记录"})]}),i.jsx(Pt,{children:i.jsx(Gt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((R,L)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:R.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:R.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:k(R.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:R.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",R.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[R.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${R.status==="success"?"text-green-600":"text-red-600"}`,children:R.status})]})]})]},L))})})})]})}),i.jsx(vn,{value:"daily",children:i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"每日统计"}),i.jsx(Wn,{children:"最近7天的数据汇总"})]}),i.jsx(Pt,{children:i.jsx($c,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(JS,{data:O,children:[i.jsx(yf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Qs,{dataKey:"timestamp",tickFormatter:R=>{const L=new Date(R);return`${L.getMonth()+1}/${L.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(ff,{content:i.jsx(Ic,{labelFormatter:R=>new Date(R).toLocaleDateString("zh-CN")})}),i.jsx(dve,{content:i.jsx(f8,{})}),i.jsx(hi,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(hi,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(Ke,{className:"border-2 border-primary/20",children:[i.jsx(gt,{className:"pb-3",children:i.jsx(yt,{className:"text-lg",children:"每日一言"})}),i.jsx(Pt,{children:g?i.jsxs("div",{className:"space-y-2",children:[i.jsx(ZM,{className:"h-6 w-3/4"}),i.jsx(ZM,{className:"h-4 w-1/4"})]}):m?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',m.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",m.from]})]}):null})]})]})})}const cye={theme:"system",setTheme:()=>null},b8=y.createContext(cye),uE=()=>{const e=y.useContext(b8);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},uye=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,s=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(s,innerHeight-s));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},w8=y.createContext(void 0),j8=()=>{const e=y.useContext(w8);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function Iy(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function Ly(e){const[t,n]=y.useState(void 0);return Yn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let l,u;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var zy="Switch",[dye]=yr(zy),[fye,hye]=dye(zy),S8=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=Ue(t,O=>x(O)),w=y.useRef(!1),b=g?m||!!g.closest("form"):!0,[N,E]=Ta({prop:a,defaultProp:s??!1,onChange:f,caller:zy});return i.jsxs(fye,{scope:n,checked:N,disabled:u,children:[i.jsx($e.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":O8(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:Ne(e.onClick,O=>{E(A=>!A),b&&(w.current=O.isPropagationStopped(),w.current||O.stopPropagation())})}),b&&i.jsx(C8,{control:g,bubbles:!w.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});S8.displayName=zy;var _8="SwitchThumb",N8=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=hye(_8,n);return i.jsx($e.span,{"data-state":O8(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});N8.displayName=_8;var mye="SwitchBubbleInput",C8=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const l=y.useRef(null),u=Ue(l,s),d=Iy(n),f=Ly(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});C8.displayName=mye;function O8(e){return e?"checked":"unchecked"}var E8=S8,pye=N8;const dt=y.forwardRef(({className:e,...t},n)=>i.jsx(E8,{className:ue("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(pye,{className:ue("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));dt.displayName=E8.displayName;var vye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],gye=vye.reduce((e,t)=>{const n=$h(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),yye="Label",A8=y.forwardRef((e,t)=>i.jsx(gye.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));A8.displayName=yye;var T8=A8;const xye=Qu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),ne=y.forwardRef(({className:e,...t},n)=>i.jsx(T8,{ref:n,className:ue(xye(),e),...t}));ne.displayName=T8.displayName;const Ce=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:ue("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ce.displayName="Input";const bye=1,wye=1e6;let e_=0;function jye(){return e_=(e_+1)%Number.MAX_SAFE_INTEGER,e_.toString()}const t_=new Map,sL=e=>{if(t_.has(e))return;const t=setTimeout(()=>{t_.delete(e),Rf({type:"REMOVE_TOAST",toastId:e})},wye);t_.set(e,t)},Sye=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,bye)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?sL(n):e.toasts.forEach(r=>{sL(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},fv=[];let hv={toasts:[]};function Rf(e){hv=Sye(hv,e),fv.forEach(t=>{t(hv)})}function _ye({...e}){const t=jye(),n=a=>Rf({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Rf({type:"DISMISS_TOAST",toastId:t});return Rf({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function xr(){const[e,t]=y.useState(hv);return y.useEffect(()=>(fv.push(t),()=>{const n=fv.indexOf(t);n>-1&&fv.splice(n,1)}),[e]),{...e,toast:_ye,dismiss:n=>Rf({type:"DISMISS_TOAST",toastId:n})}}const Nye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function Cye(e){const t=Nye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const dE="0.11.5 Beta",fE="MaiBot Dashboard",Oye=`${fE} v${dE}`,Eye=(e="v")=>`${e}${dE}`;function Aye(e,t=globalThis?.document){const n=yn(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Tye="DismissableLayer",sC="dismissableLayer.update",kye="dismissableLayer.pointerDownOutside",Mye="dismissableLayer.focusOutside",oL,k8=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),kl=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(k8),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=Ue(t,T=>p(T)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=w.indexOf(b),E=m?w.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,A=E>=N,C=Rye(T=>{const M=T.target,R=[...f.branches].some(L=>L.contains(M));!A||R||(a?.(T),l?.(T),T.defaultPrevented||u?.())},g),k=Dye(T=>{const M=T.target;[...f.branches].some(L=>L.contains(M))||(s?.(T),l?.(T),T.defaultPrevented||u?.())},g);return Aye(T=>{E===f.layers.size-1&&(r?.(T),!T.defaultPrevented&&u&&(T.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(oL=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),lL(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=oL)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),lL())},[m,f]),y.useEffect(()=>{const T=()=>x({});return document.addEventListener(sC,T),()=>document.removeEventListener(sC,T)},[]),i.jsx($e.div,{...d,ref:j,style:{pointerEvents:O?A?"auto":"none":void 0,...e.style},onFocusCapture:Ne(e.onFocusCapture,k.onFocusCapture),onBlurCapture:Ne(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:Ne(e.onPointerDownCapture,C.onPointerDownCapture)})});kl.displayName=Tye;var Pye="DismissableLayerBranch",M8=y.forwardRef((e,t)=>{const n=y.useContext(k8),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),i.jsx($e.div,{...e,ref:a})});M8.displayName=Pye;function Rye(e,t=globalThis?.document){const n=yn(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let d=function(){P8(kye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Dye(e,t=globalThis?.document){const n=yn(e),r=y.useRef(!1);return y.useEffect(()=>{const a=s=>{s.target&&!r.current&&P8(Mye,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function lL(){const e=new CustomEvent(sC);document.dispatchEvent(e)}function P8(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?VC(a,s):a.dispatchEvent(s)}var $ye=kl,Iye=M8,n_="focusScope.autoFocusOnMount",r_="focusScope.autoFocusOnUnmount",cL={bubbles:!1,cancelable:!0},Lye="FocusScope",Qh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...l}=e,[u,d]=y.useState(null),f=yn(a),m=yn(s),p=y.useRef(null),g=Ue(t,w=>d(w)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let w=function(O){if(x.paused||!u)return;const A=O.target;u.contains(A)?p.current=A:Gs(p.current,{select:!0})},b=function(O){if(x.paused||!u)return;const A=O.relatedTarget;A!==null&&(u.contains(A)||Gs(p.current,{select:!0}))},N=function(O){if(document.activeElement===document.body)for(const C of O)C.removedNodes.length>0&&Gs(u)};document.addEventListener("focusin",w),document.addEventListener("focusout",b);const E=new MutationObserver(N);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",b),E.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){dL.add(x);const w=document.activeElement;if(!u.contains(w)){const N=new CustomEvent(n_,cL);u.addEventListener(n_,f),u.dispatchEvent(N),N.defaultPrevented||(zye(Hye(R8(u)),{select:!0}),document.activeElement===w&&Gs(u))}return()=>{u.removeEventListener(n_,f),setTimeout(()=>{const N=new CustomEvent(r_,cL);u.addEventListener(r_,m),u.dispatchEvent(N),N.defaultPrevented||Gs(w??document.body,{select:!0}),u.removeEventListener(r_,m),dL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(w=>{if(!n&&!r||x.paused)return;const b=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,N=document.activeElement;if(b&&N){const E=w.currentTarget,[O,A]=Bye(E);O&&A?!w.shiftKey&&N===A?(w.preventDefault(),n&&Gs(O,{select:!0})):w.shiftKey&&N===O&&(w.preventDefault(),n&&Gs(A,{select:!0})):N===E&&w.preventDefault()}},[n,r,x.paused]);return i.jsx($e.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Qh.displayName=Lye;function zye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Gs(r,{select:t}),document.activeElement!==n)return}function Bye(e){const t=R8(e),n=uL(t,e),r=uL(t.reverse(),e);return[n,r]}function R8(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function uL(e,t){for(const n of e)if(!qye(n,{upTo:t}))return n}function qye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Fye(e){return e instanceof HTMLInputElement&&"select"in e}function Gs(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Fye(e)&&t&&e.select()}}var dL=Uye();function Uye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=fL(e,t),e.unshift(t)},remove(t){e=fL(e,t),e[0]?.resume()}}}function fL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Hye(e){return e.filter(t=>t.tagName!=="A")}var Wye="Portal",Ml=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,s]=y.useState(!1);Yn(()=>s(!0),[]);const l=n||a&&globalThis?.document?.body;return l?OY.createPortal(i.jsx($e.div,{...r,ref:t}),l):null});Ml.displayName=Wye;var a_=0;function By(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??hL()),document.body.insertAdjacentElement("beforeend",e[1]??hL()),a_++,()=>{a_===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),a_--}},[])}function hL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var li=function(){return li=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return lxe;var t=cxe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},dxe=L8(),Zc="data-scroll-locked",fxe=function(e,t,n,r){var a=e.left,s=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` + .`.concat(Gye,` { + overflow: hidden `).concat(r,`; + padding-right: `).concat(u,"px ").concat(r,`; + } + body[`).concat(Zc,`] { + overflow: hidden `).concat(r,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` + padding-left: `.concat(a,`px; + padding-top: `).concat(s,`px; + padding-right: `).concat(l,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(u,"px ").concat(r,`; + `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),` + } + + .`).concat(mv,` { + right: `).concat(u,"px ").concat(r,`; + } + + .`).concat(pv,` { + margin-right: `).concat(u,"px ").concat(r,`; + } + + .`).concat(mv," .").concat(mv,` { + right: 0 `).concat(r,`; + } + + .`).concat(pv," .").concat(pv,` { + margin-right: 0 `).concat(r,`; + } + + body[`).concat(Zc,`] { + `).concat(Yye,": ").concat(u,`px; + } +`)},pL=function(){var e=parseInt(document.body.getAttribute(Zc)||"0",10);return isFinite(e)?e:0},hxe=function(){y.useEffect(function(){return document.body.setAttribute(Zc,(pL()+1).toString()),function(){var e=pL()-1;e<=0?document.body.removeAttribute(Zc):document.body.setAttribute(Zc,e.toString())}},[])},mxe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;hxe();var s=y.useMemo(function(){return uxe(a)},[a]);return y.createElement(dxe,{styles:fxe(s,!t,a,n?"":"!important")})},oC=!1;if(typeof window<"u")try{var Kp=Object.defineProperty({},"passive",{get:function(){return oC=!0,!0}});window.addEventListener("test",Kp,Kp),window.removeEventListener("test",Kp,Kp)}catch{oC=!1}var Tc=oC?{passive:!1}:!1,pxe=function(e){return e.tagName==="TEXTAREA"},z8=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!pxe(e)&&n[t]==="visible")},vxe=function(e){return z8(e,"overflowY")},gxe=function(e){return z8(e,"overflowX")},vL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=B8(e,r);if(a){var s=q8(e,r),l=s[1],u=s[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},yxe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},xxe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},B8=function(e,t){return e==="v"?vxe(t):gxe(t)},q8=function(e,t){return e==="v"?yxe(t):xxe(t)},bxe=function(e,t){return e==="h"&&t==="rtl"?-1:1},wxe=function(e,t,n,r,a){var s=bxe(e,window.getComputedStyle(t).direction),l=s*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=q8(e,u),j=x[0],w=x[1],b=x[2],N=w-b-s*j;(j||N)&&B8(e,u)&&(p+=N,g+=j);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Xp=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},gL=function(e){return[e.deltaX,e.deltaY]},yL=function(e){return e&&"current"in e?e.current:e},jxe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Sxe=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},_xe=0,kc=[];function Nxe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(_xe++)[0],s=y.useState(L8)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var w=Vye([e.lockRef.current],(e.shards||[]).map(yL),!0).filter(Boolean);return w.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(w,b){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var N=Xp(w),E=n.current,O="deltaX"in w?w.deltaX:E[0]-N[0],A="deltaY"in w?w.deltaY:E[1]-N[1],C,k=w.target,T=Math.abs(O)>Math.abs(A)?"h":"v";if("touches"in w&&T==="h"&&k.type==="range")return!1;var M=vL(T,k);if(!M)return!0;if(M?C=T:(C=T==="v"?"h":"v",M=vL(T,k)),!M)return!1;if(!r.current&&"changedTouches"in w&&(O||A)&&(r.current=C),!C)return!0;var R=r.current||C;return wxe(R,b,w,R==="h"?O:A)},[]),d=y.useCallback(function(w){var b=w;if(!(!kc.length||kc[kc.length-1]!==s)){var N="deltaY"in b?gL(b):Xp(b),E=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&jxe(C.delta,N)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var O=(l.current.shards||[]).map(yL).filter(Boolean).filter(function(C){return C.contains(b.target)}),A=O.length>0?u(b,O[0]):!l.current.noIsolation;A&&b.cancelable&&b.preventDefault()}}},[]),f=y.useCallback(function(w,b,N,E){var O={name:w,delta:b,target:N,should:E,shadowParent:Cxe(N)};t.current.push(O),setTimeout(function(){t.current=t.current.filter(function(A){return A!==O})},1)},[]),m=y.useCallback(function(w){n.current=Xp(w),r.current=void 0},[]),p=y.useCallback(function(w){f(w.type,gL(w),w.target,u(w,e.lockRef.current))},[]),g=y.useCallback(function(w){f(w.type,Xp(w),w.target,u(w,e.lockRef.current))},[]);y.useEffect(function(){return kc.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Tc),document.addEventListener("touchmove",d,Tc),document.addEventListener("touchstart",m,Tc),function(){kc=kc.filter(function(w){return w!==s}),document.removeEventListener("wheel",d,Tc),document.removeEventListener("touchmove",d,Tc),document.removeEventListener("touchstart",m,Tc)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(s,{styles:Sxe(a)}):null,x?y.createElement(mxe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Cxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Oxe=txe(I8,Nxe);var Jh=y.forwardRef(function(e,t){return y.createElement(qy,li({},e,{ref:t,sideCar:Oxe}))});Jh.classNames=qy.classNames;var Exe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Mc=new WeakMap,Zp=new WeakMap,Qp={},l_=0,F8=function(e){return e&&(e.host||F8(e.parentNode))},Axe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=F8(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Txe=function(e,t,n,r){var a=Axe(t,Array.isArray(e)?e:[e]);Qp[n]||(Qp[n]=new WeakMap);var s=Qp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",w=(Mc.get(g)||0)+1,b=(s.get(g)||0)+1;Mc.set(g,w),s.set(g,b),l.push(g),w===1&&j&&Zp.set(g,!0),b===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),l_++,function(){l.forEach(function(p){var g=Mc.get(p)-1,x=s.get(p)-1;Mc.set(p,g),s.set(p,x),g||(Zp.has(p)||p.removeAttribute(r),Zp.delete(p)),x||p.removeAttribute(n)}),l_--,l_||(Mc=new WeakMap,Mc=new WeakMap,Zp=new WeakMap,Qp={})}},Fy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=Exe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),Txe(r,a,n,"aria-hidden")):function(){return null}};function kxe(e){const t=Mxe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Rxe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function Mxe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=$xe(a),u=Dxe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Pxe=Symbol("radix.slottable");function Rxe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Pxe}function Dxe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function $xe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Uy="Dialog",[U8,H8]=yr(Uy),[Ixe,Ja]=U8(Uy),W8=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Ta({prop:r,defaultProp:a??!1,onChange:s,caller:Uy});return i.jsx(Ixe,{scope:t,triggerRef:u,contentRef:d,contentId:Gn(),titleId:Gn(),descriptionId:Gn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};W8.displayName=Uy;var V8="DialogTrigger",G8=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(V8,n),s=Ue(t,a.triggerRef);return i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":pE(a.open),...r,ref:s,onClick:Ne(e.onClick,a.onOpenToggle)})});G8.displayName=V8;var hE="DialogPortal",[Lxe,Y8]=U8(hE,{forceMount:void 0}),K8=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=Ja(hE,t);return i.jsx(Lxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(zn,{present:n||s.open,children:i.jsx(Ml,{asChild:!0,container:a,children:l})}))})};K8.displayName=hE;var Pg="DialogOverlay",X8=y.forwardRef((e,t)=>{const n=Y8(Pg,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Ja(Pg,e.__scopeDialog);return s.modal?i.jsx(zn,{present:r||s.open,children:i.jsx(Bxe,{...a,ref:t})}):null});X8.displayName=Pg;var zxe=kxe("DialogOverlay.RemoveScroll"),Bxe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(Pg,n);return i.jsx(Jh,{as:zxe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx($e.div,{"data-state":pE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),bl="DialogContent",Z8=y.forwardRef((e,t)=>{const n=Y8(bl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Ja(bl,e.__scopeDialog);return i.jsx(zn,{present:r||s.open,children:s.modal?i.jsx(qxe,{...a,ref:t}):i.jsx(Fxe,{...a,ref:t})})});Z8.displayName=bl;var qxe=y.forwardRef((e,t)=>{const n=Ja(bl,e.__scopeDialog),r=y.useRef(null),a=Ue(t,n.contentRef,r);return y.useEffect(()=>{const s=r.current;if(s)return Fy(s)},[]),i.jsx(Q8,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ne(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Ne(e.onPointerDownOutside,s=>{const l=s.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&s.preventDefault()}),onFocusOutside:Ne(e.onFocusOutside,s=>s.preventDefault())})}),Fxe=y.forwardRef((e,t)=>{const n=Ja(bl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(Q8,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),Q8=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...l}=e,u=Ja(bl,n),d=y.useRef(null),f=Ue(t,d);return By(),i.jsxs(i.Fragment,{children:[i.jsx(Qh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(kl,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":pE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(Hxe,{titleId:u.titleId}),i.jsx(Vxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),mE="DialogTitle",J8=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(mE,n);return i.jsx($e.h2,{id:a.titleId,...r,ref:t})});J8.displayName=mE;var eF="DialogDescription",tF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(eF,n);return i.jsx($e.p,{id:a.descriptionId,...r,ref:t})});tF.displayName=eF;var nF="DialogClose",rF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(nF,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:Ne(e.onClick,()=>a.onOpenChange(!1))})});rF.displayName=nF;function pE(e){return e?"open":"closed"}var aF="DialogTitleWarning",[Uxe,iF]=vZ(aF,{contentName:bl,titleName:mE,docsSlug:"dialog"}),Hxe=({titleId:e})=>{const t=iF(aF),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Wxe="DialogDescriptionWarning",Vxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${iF(Wxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},vE=W8,sF=G8,gE=K8,Hy=X8,Wy=Z8,yE=J8,xE=tF,bE=rF;const sr=vE,oF=sF,Gxe=gE,lF=y.forwardRef(({className:e,...t},n)=>i.jsx(Hy,{ref:n,className:ue("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));lF.displayName=Hy.displayName;const Kn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Gxe,{children:[i.jsx(lF,{}),i.jsxs(Wy,{ref:r,className:ue("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(bE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Zh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Kn.displayName=Wy.displayName;const Xn=({className:e,...t})=>i.jsx("div",{className:ue("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Xn.displayName="DialogHeader";const qr=({className:e,...t})=>i.jsx("div",{className:ue("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});qr.displayName="DialogFooter";const Zn=y.forwardRef(({className:e,...t},n)=>i.jsx(yE,{ref:n,className:ue("text-lg font-semibold leading-none tracking-tight",e),...t}));Zn.displayName=yE.displayName;const gr=y.forwardRef(({className:e,...t},n)=>i.jsx(xE,{ref:n,className:ue("text-sm text-muted-foreground",e),...t}));gr.displayName=xE.displayName;var Yxe=Symbol("radix.slottable");function Kxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Yxe,t}var cF="AlertDialog",[Xxe]=yr(cF,[H8]),ys=H8(),uF=e=>{const{__scopeAlertDialog:t,...n}=e,r=ys(t);return i.jsx(vE,{...r,...n,modal:!0})};uF.displayName=cF;var Zxe="AlertDialogTrigger",dF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(sF,{...a,...r,ref:t})});dF.displayName=Zxe;var Qxe="AlertDialogPortal",fF=e=>{const{__scopeAlertDialog:t,...n}=e,r=ys(t);return i.jsx(gE,{...r,...n})};fF.displayName=Qxe;var Jxe="AlertDialogOverlay",hF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(Hy,{...a,...r,ref:t})});hF.displayName=Jxe;var Qc="AlertDialogContent",[ebe,tbe]=Xxe(Qc),nbe=Kxe("AlertDialogContent"),mF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,s=ys(n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return i.jsx(Uxe,{contentName:Qc,titleName:pF,docsSlug:"alert-dialog",children:i.jsx(ebe,{scope:n,cancelRef:d,children:i.jsxs(Wy,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:Ne(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(nbe,{children:r}),i.jsx(abe,{contentRef:l})]})})})});mF.displayName=Qc;var pF="AlertDialogTitle",vF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(yE,{...a,...r,ref:t})});vF.displayName=pF;var gF="AlertDialogDescription",yF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(xE,{...a,...r,ref:t})});yF.displayName=gF;var rbe="AlertDialogAction",xF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(bE,{...a,...r,ref:t})});xF.displayName=rbe;var bF="AlertDialogCancel",wF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=tbe(bF,n),s=ys(n),l=Ue(t,a);return i.jsx(bE,{...s,...r,ref:l})});wF.displayName=bF;var abe=({contentRef:e})=>{const t=`\`${Qc}\` requires a description for the component to be accessible for screen reader users. + +You can add a description to the \`${Qc}\` by passing a \`${gF}\` component as a child, which also benefits sighted users by adding visible context to the dialog. + +Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Qc}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. + +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},ibe=uF,sbe=dF,obe=fF,jF=hF,SF=mF,_F=xF,NF=wF,CF=vF,OF=yF;const dn=ibe,mr=sbe,lbe=obe,EF=y.forwardRef(({className:e,...t},n)=>i.jsx(jF,{className:ue("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));EF.displayName=jF.displayName;const en=y.forwardRef(({className:e,...t},n)=>i.jsxs(lbe,{children:[i.jsx(EF,{}),i.jsx(SF,{ref:n,className:ue("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));en.displayName=SF.displayName;const tn=({className:e,...t})=>i.jsx("div",{className:ue("flex flex-col space-y-2 text-center sm:text-left",e),...t});tn.displayName="AlertDialogHeader";const nn=({className:e,...t})=>i.jsx("div",{className:ue("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});nn.displayName="AlertDialogFooter";const rn=y.forwardRef(({className:e,...t},n)=>i.jsx(CF,{ref:n,className:ue("text-lg font-semibold",e),...t}));rn.displayName=CF.displayName;const an=y.forwardRef(({className:e,...t},n)=>i.jsx(OF,{ref:n,className:ue("text-sm text-muted-foreground",e),...t}));an.displayName=OF.displayName;const sn=y.forwardRef(({className:e,...t},n)=>i.jsx(_F,{ref:n,className:ue(bh(),e),...t}));sn.displayName=_F.displayName;const on=y.forwardRef(({className:e,...t},n)=>i.jsx(NF,{ref:n,className:ue(bh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));on.displayName=NF.displayName;function cbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(hl,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(ao,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Lt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(g8,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Lt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Bge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Lt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Ha,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Lt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Pu,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Gt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(vn,{value:"appearance",className:"mt-0",children:i.jsx(ube,{})}),i.jsx(vn,{value:"security",className:"mt-0",children:i.jsx(dbe,{})}),i.jsx(vn,{value:"other",className:"mt-0",children:i.jsx(fbe,{})}),i.jsx(vn,{value:"about",className:"mt-0",children:i.jsx(hbe,{})})]})]})]})}function xL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=s=>{s=s.replace("#","");const l=parseInt(s.substring(0,2),16)/255,u=parseInt(s.substring(2,4),16)/255,d=parseInt(s.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";xL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),xL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(c_,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(c_,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(c_,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Na,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(Na,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(Na,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(Na,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(Na,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(Na,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Na,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(Na,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(Na,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(Na,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(Na,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(Na,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ce,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(ne,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(dt,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(ne,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(dt,{id:"waves-background",checked:a,onCheckedChange:s})]})})]})]})]})}function dbe(){const e=ua(),[t,n]=y.useState(""),[r,a]=y.useState(""),[s,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(""),[O,A]=y.useState(!1),{toast:C}=xr(),k=y.useMemo(()=>Cye(r),[r]),T=()=>localStorage.getItem("access-token")||"",M=async H=>{try{await navigator.clipboard.writeText(H),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},R=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const H=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${H}`,variant:"destructive"});return}m(!0);try{const H=T(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${H}`},body:JSON.stringify({new_token:r.trim()})}),$=await G.json();G.ok&&$.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:$.message||"无法更新 Token",variant:"destructive"})}catch(H){console.error("更新 Token 错误:",H),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},L=async()=>{g(!0);try{const H=T(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${H}`}}),$=await G.json();G.ok&&$.success?(localStorage.setItem("access-token",$.token),n($.token),E($.token),b(!0),A(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:$.message||"无法生成新 Token",variant:"destructive"})}catch(H){console.error("生成 Token 错误:",H),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},D=async()=>{try{await navigator.clipboard.writeText(N),A(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},U=()=>{b(!1),setTimeout(()=>{E(""),A(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=H=>{H||U()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(sr,{open:w,onOpenChange:V,children:i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(Xc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(gr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(ne,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Xc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs(qr,{className:"gap-2 sm:gap-0",children:[i.jsx(oe,{variant:"outline",onClick:D,className:"gap-2",children:O?i.jsxs(i.Fragment,{children:[i.jsx(cl,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(eC,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(oe,{onClick:U,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ce,{id:"current-token",type:s?"text":"password",value:t||T(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(T()),l(!s)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:s?"隐藏":"显示",children:s?i.jsx(nC,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ya,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(oe,{variant:"outline",size:"icon",onClick:()=>M(T()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(cl,{className:"h-4 w-4 text-green-500"}):i.jsx(eC,{className:"h-4 w-4"})}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(os,{className:ue("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重新生成 Token"}),i.jsx(an,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:L,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ce,{id:"new-token",type:u?"text":"password",value:r,onChange:H=>a(H.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(nC,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ya,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(H=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[H.passed?i.jsx(Dr,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(JN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:ue(H.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:H.label})]},H.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(cl,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(oe,{onClick:R,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function fbe(){const e=ua(),{toast:t}=xr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const s=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${s}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(s){console.error("重置配置状态错误:",s),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(Tge,{className:ue("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重新配置"}),i.jsx(an,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function hbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",fE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",dE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Gt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(pn,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(pn,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(pn,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(pn,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(pn,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(pn,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(pn,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(pn,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(pn,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(pn,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(pn,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(pn,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(pn,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(pn,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(pn,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(pn,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function pn({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function c_({value:e,current:t,onChange:n,label:r,description:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ue("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function Na({value:e,current:t,onChange:n,label:r,colorClass:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ue("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:ue("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class mbe{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const s=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),s),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),s),l)}}function pbe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new mbe(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,s=e.current;if(!a||!s)return;const l=r.current,u=()=>{const w=a.getBoundingClientRect();l.bounding=w,s.style.width=`${w.width}px`,s.style.height=`${w.height}px`},d=()=>{if(!l.bounding)return;const{width:w,height:b}=l.bounding;l.lines=[],l.paths.forEach(R=>R.remove()),l.paths=[];const N=10,E=32,O=w+200,A=b+30,C=Math.ceil(O/N),k=Math.ceil(A/E),T=(w-N*C)/2,M=(b-E*k)/2;for(let R=0;R<=C;R++){const L=[];for(let U=0;U<=k;U++){const V={x:T+N*R,y:M+E*U,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};L.push(V)}const D=document.createElementNS("http://www.w3.org/2000/svg","path");s.appendChild(D),l.paths.push(D),l.lines.push(L)}},f=w=>{const{lines:b,mouse:N,noise:E}=l;b.forEach(O=>{O.forEach(A=>{const C=E.perlin2((A.x+w*.0125)*.002,(A.y+w*.005)*.0015)*12;A.wave.x=Math.cos(C)*32,A.wave.y=Math.sin(C)*16;const k=A.x-N.sx,T=A.y-N.sy,M=Math.hypot(k,T),R=Math.max(175,N.vs);if(M{const N={x:w.x+w.wave.x+(b?w.cursor.x:0),y:w.y+w.wave.y+(b?w.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:w,paths:b}=l;w.forEach((N,E)=>{let O=m(N[0],!1),A=`M ${O.x} ${O.y}`;N.forEach((C,k)=>{const T=k===N.length-1;O=m(C,!T),A+=`L ${O.x} ${O.y}`}),b[E].setAttribute("d",A)})},g=w=>{const{mouse:b}=l;b.sx+=(b.x-b.sx)*.1,b.sy+=(b.y-b.sy)*.1;const N=b.x-b.lx,E=b.y-b.ly,O=Math.hypot(N,E);b.v=O,b.vs+=(O-b.vs)*.1,b.vs=Math.min(100,b.vs),b.lx=b.x,b.ly=b.y,b.a=Math.atan2(E,N),a&&(a.style.setProperty("--x",`${b.sx}px`),a.style.setProperty("--y",`${b.sy}px`)),f(w),p(),n.current=requestAnimationFrame(g)},x=w=>{if(!l.bounding)return;const{mouse:b}=l;b.x=w.pageX-l.bounding.left,b.y=w.pageY-l.bounding.top+window.scrollY,b.set||(b.sx=b.x,b.sy=b.y,b.lx=b.x,b.ly=b.y,b.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` + path { + fill: none; + stroke: hsl(var(--primary) / 0.20); + stroke-width: 1px; + } + `})})]})}function vbe(){const e=ua();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function AF(){return!!localStorage.getItem("access-token")}function gbe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,s]=y.useState(""),l=ua(),{enableWavesBackground:u,setEnableWavesBackground:d}=j8(),{theme:f,setTheme:m}=uE();y.useEffect(()=>{AF()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async w=>{if(w.preventDefault(),s(""),!e.trim()){s("请输入 Access Token");return}r(!0);try{const b=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await b.json();if(b.ok&&N.valid){localStorage.setItem("access-token",e.trim());const E=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),O=await E.json();E.ok&&O.is_first_setup?l({to:"/setup"}):l({to:"/"})}else s(N.message||"Token 验证失败,请检查后重试")}catch(b){console.error("Token 验证错误:",b),s("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(pbe,{}),i.jsxs(Ke,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(iC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(aC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(gt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(tL,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(yt,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(Wn,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(Pt,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx(dge,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ce,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:w=>t(w.target.value),className:ue("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(xl,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(oe,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(sr,{children:[i.jsx(oF,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(Uve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(tL,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(gr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(Qge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(sE,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(xl,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(xh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsxs(rn,{className:"flex items-center gap-2",children:[i.jsx(xh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(an,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:Oye})})]})}const Qt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:ue("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Qt.displayName="Textarea";var ybe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xbe=ybe.reduce((e,t)=>{const n=$h(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),bbe="Separator",bL="horizontal",wbe=["horizontal","vertical"],TF=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=bL,...a}=e,s=jbe(r)?r:bL,u=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return i.jsx(xbe.div,{"data-orientation":s,...u,...a,ref:t})});TF.displayName=bbe;function jbe(e){return wbe.includes(e)}var kF=TF;const wh=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(kF,{ref:a,decorative:n,orientation:t,className:ue("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));wh.displayName=kF.displayName;const Sbe=Qu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Ht({className:e,variant:t,...n}){return i.jsx("div",{className:ue(Sbe({variant:t}),e),...n})}function _be({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((s,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ce,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ce,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,s)=>i.jsxs(Ht,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(s),className:"ml-1 hover:text-destructive",children:i.jsx(Zh,{className:"h-3 w-3"})})]},s))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ce,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(oe,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function Nbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Qt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Qt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Qt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(wh,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Qt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Qt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function Cbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ce,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ce,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(dt,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ce,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(wh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(dt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(dt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ce,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function Obe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(dt,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(wh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(dt,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ce,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Qt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(wh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(dt,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function Ze(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function st(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function Ebe(){const e=await Ze("/api/webui/config/bot",{method:"GET",headers:st()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function Abe(){const e=await Ze("/api/webui/config/bot",{method:"GET",headers:st()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function Tbe(){const e=await Ze("/api/webui/config/bot",{method:"GET",headers:st()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function kbe(){const e=await Ze("/api/webui/config/bot",{method:"GET",headers:st()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},s=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:s.all_global??!0}}async function Mbe(e){const t=await Ze("/api/webui/config/bot/section/bot",{method:"POST",headers:st(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function Pbe(e){const t=await Ze("/api/webui/config/bot/section/personality",{method:"POST",headers:st(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function Rbe(e){const t=await Ze("/api/webui/config/bot/section/emoji",{method:"POST",headers:st(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function Dbe(e){const t=[];t.push(Ze("/api/webui/config/bot/section/tool",{method:"POST",headers:st(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(Ze("/api/webui/config/bot/section/jargon",{method:"POST",headers:st(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(Ze("/api/webui/config/bot/section/mood",{method:"POST",headers:st(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const s=await a.json();throw new Error(s.detail||"保存其他配置失败")}return{success:!0}}async function wL(){const e=localStorage.getItem("access-token"),t=await Ze("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function $be(){const e=ua(),{toast:t}=xr(),[n,r]=y.useState(0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.请控制你的发言频率,不要太过频繁的发言 +4.如果有人对你感到厌烦,请减少回复 +5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.某句话如果已经被回复过,不要重复回复`}),[j,w]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[b,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),E=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:Cve},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:x8},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:cE},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Ha},{id:"complete",title:"完成设置",description:"后续配置提示",icon:xh}],O=(n+1)/E.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[D,U,V,H]=await Promise.all([Ebe(),Abe(),Tbe(),kbe()]);p(D),x(U),w(V),N(H)}catch(D){t({title:"加载配置失败",description:D instanceof Error?D.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const A=async()=>{u(!0);try{switch(n){case 0:await Mbe(m);break;case 1:await Pbe(g);break;case 2:await Rbe(j);break;case 3:await Dbe(b);break}return t({title:"保存成功",description:`${E[n].title}配置已保存`}),!0}catch(L){return t({title:"保存失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await A()&&n{n>0&&r(n-1)},T=async()=>{s(!0);try{if(!await A()){s(!1);return}await wL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(L){t({title:"完成失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}finally{s(!1)}},M=async()=>{try{await wL(),e({to:"/"})}catch(L){t({title:"跳过失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}},R=()=>{switch(n){case 0:return i.jsx(_be,{config:m,onChange:p});case 1:return i.jsx(Nbe,{config:g,onChange:x});case 2:return i.jsx(Cbe,{config:j,onChange:w});case 3:return i.jsx(Obe,{config:b,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(xh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(Gge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",fE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",E.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(O),"%"]})]}),i.jsx(Ih,{value:O,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:E.map((L,D)=>{const U=L.icon;return i.jsxs("div",{className:ue("flex flex-1 flex-col items-center gap-1 md:gap-2",De({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(kg,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(oe,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(m8,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var PF=["PageUp","PageDown"],RF=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],DF={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Ju="Slider",[lC,Ibe,Lbe]=Rh(Ju),[$F]=yr(Ju,[Lbe]),[zbe,Vy]=$F(Ju),IF=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:s=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...w}=e,b=y.useRef(new Set),N=y.useRef(0),O=l==="horizontal"?Bbe:qbe,[A=[],C]=Ta({prop:m,defaultProp:f,onChange:D=>{[...b.current][N.current]?.focus(),p(D)}}),k=y.useRef(A);function T(D){const U=Vbe(A,D);L(D,U)}function M(D){L(D,N.current)}function R(){const D=k.current[N.current];A[N.current]!==D&&g(A)}function L(D,U,{commit:V}={commit:!1}){const H=Xbe(s),G=Zbe(Math.round((D-r)/s)*s+r,H),$=Df(G,[r,a]);C((I=[])=>{const q=Hbe(I,$,U);if(Kbe(q,d*s)){N.current=q.indexOf($);const Z=String(q)!==String(I);return Z&&V&&g(q),Z?q:I}else return I})}return i.jsx(zbe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:b.current,values:A,orientation:l,form:j,children:i.jsx(lC.Provider,{scope:e.__scopeSlider,children:i.jsx(lC.Slot,{scope:e.__scopeSlider,children:i.jsx(O,{"aria-disabled":u,"data-disabled":u?"":void 0,...w,ref:t,onPointerDown:Ne(w.onPointerDown,()=>{u||(k.current=A)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:T,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:R,onHomeKeyDown:()=>!u&&L(r,0,{commit:!0}),onEndKeyDown:()=>!u&&L(a,A.length-1,{commit:!0}),onStepKeyDown:({event:D,direction:U})=>{if(!u){const G=PF.includes(D.key)||D.shiftKey&&RF.includes(D.key)?10:1,$=N.current,I=A[$],q=s*G*U;L(I+q,$,{commit:!0})}}})})})})});IF.displayName=Ju;var[LF,zF]=$F(Ju,{startEdge:"left",endEdge:"right",size:"width",direction:1}),Bbe=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:s,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=Ue(t,O=>g(O)),j=y.useRef(void 0),w=Uu(a),b=w==="ltr",N=b&&!s||!b&&s;function E(O){const A=j.current||p.getBoundingClientRect(),C=[0,A.width],T=wE(C,N?[n,r]:[r,n]);return j.current=A,T(O-A.left)}return i.jsx(LF,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(BF,{dir:w,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:O=>{const A=E(O.clientX);l?.(A)},onSlideMove:O=>{const A=E(O.clientX);u?.(A)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:O=>{const C=DF[N?"from-left":"from-right"].includes(O.key);f?.({event:O,direction:C?-1:1})}})})}),qbe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:s,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=Ue(t,m),g=y.useRef(void 0),x=!a;function j(w){const b=g.current||m.current.getBoundingClientRect(),N=[0,b.height],O=wE(N,x?[r,n]:[n,r]);return g.current=b,O(w-b.top)}return i.jsx(LF,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(BF,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const b=j(w.clientY);s?.(b)},onSlideMove:w=>{const b=j(w.clientY);l?.(b)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:w=>{const N=DF[x?"from-bottom":"from-top"].includes(w.key);d?.({event:w,direction:N?-1:1})}})})}),BF=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:s,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=Vy(Ju,n);return i.jsx($e.span,{...f,ref:t,onKeyDown:Ne(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):PF.concat(RF).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:Ne(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:Ne(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:Ne(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),s(p))})})}),qF="SliderTrack",FF=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Vy(qF,n);return i.jsx($e.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});FF.displayName=qF;var cC="SliderRange",UF=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Vy(cC,n),s=zF(cC,n),l=y.useRef(null),u=Ue(t,l),d=a.values.length,f=a.values.map(g=>VF(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx($e.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[s.startEdge]:m+"%",[s.endEdge]:p+"%"}})});UF.displayName=cC;var uC="SliderThumb",HF=y.forwardRef((e,t)=>{const n=Ibe(e.__scopeSlider),[r,a]=y.useState(null),s=Ue(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(Fbe,{...e,ref:s,index:l})}),Fbe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...s}=e,l=Vy(uC,n),u=zF(uC,n),[d,f]=y.useState(null),m=Ue(t,E=>f(E)),p=d?l.form||!!d.closest("form"):!0,g=Ly(d),x=l.values[r],j=x===void 0?0:VF(x,l.min,l.max),w=Wbe(r,l.values.length),b=g?.[u.size],N=b?Gbe(b,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(lC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx($e.span,{role:"slider","aria-label":e["aria-label"]||w,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...s,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:Ne(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(WF,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});HF.displayName=uC;var Ube="RadioBubbleInput",WF=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(a,r),l=Iy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.input,{style:{display:"none"},...n,ref:s,defaultValue:t})});WF.displayName=Ube;function Hbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,s)=>a-s)}function VF(e,t,n){const s=100/(n-t)*(e-t);return Df(s,[0,100])}function Wbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Vbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function Gbe(e,t,n){const r=e/2,s=wE([0,50],[0,r]);return(r-s(t)*n)*n}function Ybe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Kbe(e,t){if(t>0){const n=Ybe(e);return Math.min(...n)>=t}return!0}function wE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Xbe(e){return(String(e).split(".")[1]||"").length}function Zbe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var GF=IF,Qbe=FF,Jbe=UF,e0e=HF;const Gy=y.forwardRef(({className:e,...t},n)=>i.jsxs(GF,{ref:n,className:ue("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(Qbe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Jbe,{className:"absolute h-full bg-primary"})}),i.jsx(e0e,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));Gy.displayName=GF.displayName;const t0e=["top","right","bottom","left"],io=Math.min,aa=Math.max,Rg=Math.round,Jp=Math.floor,xi=e=>({x:e,y:e}),n0e={left:"right",right:"left",bottom:"top",top:"bottom"},r0e={start:"end",end:"start"};function dC(e,t,n){return aa(e,io(t,n))}function ds(e,t){return typeof e=="function"?e(t):e}function fs(e){return e.split("-")[0]}function ed(e){return e.split("-")[1]}function jE(e){return e==="x"?"y":"x"}function SE(e){return e==="y"?"height":"width"}const a0e=new Set(["top","bottom"]);function mi(e){return a0e.has(fs(e))?"y":"x"}function _E(e){return jE(mi(e))}function i0e(e,t,n){n===void 0&&(n=!1);const r=ed(e),a=_E(e),s=SE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Dg(l)),[l,Dg(l)]}function s0e(e){const t=Dg(e);return[fC(e),t,fC(t)]}function fC(e){return e.replace(/start|end/g,t=>r0e[t])}const jL=["left","right"],SL=["right","left"],o0e=["top","bottom"],l0e=["bottom","top"];function c0e(e,t,n){switch(e){case"top":case"bottom":return n?t?SL:jL:t?jL:SL;case"left":case"right":return t?o0e:l0e;default:return[]}}function u0e(e,t,n,r){const a=ed(e);let s=c0e(fs(e),n==="start",r);return a&&(s=s.map(l=>l+"-"+a),t&&(s=s.concat(s.map(fC)))),s}function Dg(e){return e.replace(/left|right|bottom|top/g,t=>n0e[t])}function d0e(e){return{top:0,right:0,bottom:0,left:0,...e}}function YF(e){return typeof e!="number"?d0e(e):{top:e,right:e,bottom:e,left:e}}function $g(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function _L(e,t,n){let{reference:r,floating:a}=e;const s=mi(t),l=_E(t),u=SE(l),d=fs(t),f=s==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(ed(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const f0e=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:l}=n,u=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=_L(f,r,d),g=r,x={},j=0;for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=ds(e,t)||{};if(f==null)return{};const p=YF(m),g={x:n,y:r},x=_E(a),j=SE(x),w=await l.getDimensions(f),b=x==="y",N=b?"top":"left",E=b?"bottom":"right",O=b?"clientHeight":"clientWidth",A=s.reference[j]+s.reference[x]-g[x]-s.floating[j],C=g[x]-s.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let T=k?k[O]:0;(!T||!await(l.isElement==null?void 0:l.isElement(k)))&&(T=u.floating[O]||s.floating[j]);const M=A/2-C/2,R=T/2-w[j]/2-1,L=io(p[N],R),D=io(p[E],R),U=L,V=T-w[j]-D,H=T/2-w[j]/2+M,G=dC(U,H,V),$=!d.arrow&&ed(a)!=null&&H!==G&&s.reference[j]/2-(HH<=0)){var D,U;const H=(((D=s.flip)==null?void 0:D.index)||0)+1,G=T[H];if(G&&(!(p==="alignment"?E!==mi(G):!1)||L.every(q=>mi(q.placement)===E?q.overflows[0]>0:!0)))return{data:{index:H,overflows:L},reset:{placement:G}};let $=(U=L.filter(I=>I.overflows[0]<=0).sort((I,q)=>I.overflows[1]-q.overflows[1])[0])==null?void 0:U.placement;if(!$)switch(x){case"bestFit":{var V;const I=(V=L.filter(q=>{if(k){const Z=mi(q.placement);return Z===E||Z==="y"}return!0}).map(q=>[q.placement,q.overflows.filter(Z=>Z>0).reduce((Z,ee)=>Z+ee,0)]).sort((q,Z)=>q[1]-Z[1])[0])==null?void 0:V[0];I&&($=I);break}case"initialPlacement":$=u;break}if(a!==$)return{reset:{placement:$}}}return{}}}};function NL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function CL(e){return t0e.some(t=>e[t]>=0)}const p0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=ds(e,t);switch(r){case"referenceHidden":{const s=await jh(t,{...a,elementContext:"reference"}),l=NL(s,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:CL(l)}}}case"escaped":{const s=await jh(t,{...a,altBoundary:!0}),l=NL(s,n.floating);return{data:{escapedOffsets:l,escaped:CL(l)}}}default:return{}}}}},KF=new Set(["left","top"]);async function v0e(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=fs(n),u=ed(n),d=mi(n)==="y",f=KF.has(l)?-1:1,m=s&&d?-1:1,p=ds(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const g0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:l,middlewareData:u}=t,d=await v0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:s+d.y,data:{...d,placement:l}}}}},y0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:b=>{let{x:N,y:E}=b;return{x:N,y:E}}},...d}=ds(e,t),f={x:n,y:r},m=await jh(t,d),p=mi(fs(a)),g=jE(p);let x=f[g],j=f[p];if(s){const b=g==="y"?"top":"left",N=g==="y"?"bottom":"right",E=x+m[b],O=x-m[N];x=dC(E,x,O)}if(l){const b=p==="y"?"top":"left",N=p==="y"?"bottom":"right",E=j+m[b],O=j-m[N];j=dC(E,j,O)}const w=u.fn({...t,[g]:x,[p]:j});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[g]:s,[p]:l}}}}}},x0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=ds(e,t),m={x:n,y:r},p=mi(a),g=jE(p);let x=m[g],j=m[p];const w=ds(u,t),b=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const O=g==="y"?"height":"width",A=s.reference[g]-s.floating[O]+b.mainAxis,C=s.reference[g]+s.reference[O]-b.mainAxis;xC&&(x=C)}if(f){var N,E;const O=g==="y"?"width":"height",A=KF.has(fs(a)),C=s.reference[p]-s.floating[O]+(A&&((N=l.offset)==null?void 0:N[p])||0)+(A?0:b.crossAxis),k=s.reference[p]+s.reference[O]+(A?0:((E=l.offset)==null?void 0:E[p])||0)-(A?b.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},b0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:l,elements:u}=t,{apply:d=()=>{},...f}=ds(e,t),m=await jh(t,f),p=fs(a),g=ed(a),x=mi(a)==="y",{width:j,height:w}=s.floating;let b,N;p==="top"||p==="bottom"?(b=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,b=g==="end"?"top":"bottom");const E=w-m.top-m.bottom,O=j-m.left-m.right,A=io(w-m[b],E),C=io(j-m[N],O),k=!t.middlewareData.shift;let T=A,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=O),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=E),k&&!g){const L=aa(m.left,0),D=aa(m.right,0),U=aa(m.top,0),V=aa(m.bottom,0);x?M=j-2*(L!==0||D!==0?L+D:aa(m.left,m.right)):T=w-2*(U!==0||V!==0?U+V:aa(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:T});const R=await l.getDimensions(u.floating);return j!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function Yy(){return typeof window<"u"}function td(e){return XF(e)?(e.nodeName||"").toLowerCase():"#document"}function la(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Oi(e){var t;return(t=(XF(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function XF(e){return Yy()?e instanceof Node||e instanceof la(e).Node:!1}function Ka(e){return Yy()?e instanceof Element||e instanceof la(e).Element:!1}function Si(e){return Yy()?e instanceof HTMLElement||e instanceof la(e).HTMLElement:!1}function OL(e){return!Yy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof la(e).ShadowRoot}const w0e=new Set(["inline","contents"]);function em(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Xa(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!w0e.has(a)}const j0e=new Set(["table","td","th"]);function S0e(e){return j0e.has(td(e))}const _0e=[":popover-open",":modal"];function Ky(e){return _0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const N0e=["transform","translate","scale","rotate","perspective"],C0e=["transform","translate","scale","rotate","perspective","filter"],O0e=["paint","layout","strict","content"];function NE(e){const t=CE(),n=Ka(e)?Xa(e):e;return N0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||C0e.some(r=>(n.willChange||"").includes(r))||O0e.some(r=>(n.contain||"").includes(r))}function E0e(e){let t=so(e);for(;Si(t)&&!$u(t);){if(NE(t))return t;if(Ky(t))return null;t=so(t)}return null}function CE(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const A0e=new Set(["html","body","#document"]);function $u(e){return A0e.has(td(e))}function Xa(e){return la(e).getComputedStyle(e)}function Xy(e){return Ka(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function so(e){if(td(e)==="html")return e;const t=e.assignedSlot||e.parentNode||OL(e)&&e.host||Oi(e);return OL(t)?t.host:t}function ZF(e){const t=so(e);return $u(t)?e.ownerDocument?e.ownerDocument.body:e.body:Si(t)&&em(t)?t:ZF(t)}function Sh(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=ZF(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),l=la(a);if(s){const u=hC(l);return t.concat(l,l.visualViewport||[],em(a)?a:[],u&&n?Sh(u):[])}return t.concat(a,Sh(a,[],n))}function hC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function QF(e){const t=Xa(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=Si(e),s=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Rg(n)!==s||Rg(r)!==l;return u&&(n=s,r=l),{width:n,height:r,$:u}}function OE(e){return Ka(e)?e:e.contextElement}function Jc(e){const t=OE(e);if(!Si(t))return xi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=QF(t);let l=(s?Rg(n.width):n.width)/r,u=(s?Rg(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const T0e=xi(0);function JF(e){const t=la(e);return!CE()||!t.visualViewport?T0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function k0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==la(e)?!1:t}function wl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=OE(e);let l=xi(1);t&&(r?Ka(r)&&(l=Jc(r)):l=Jc(e));const u=k0e(s,n,r)?JF(s):xi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(s){const g=la(s),x=r&&Ka(r)?la(r):r;let j=g,w=hC(j);for(;w&&r&&x!==j;){const b=Jc(w),N=w.getBoundingClientRect(),E=Xa(w),O=N.left+(w.clientLeft+parseFloat(E.paddingLeft))*b.x,A=N.top+(w.clientTop+parseFloat(E.paddingTop))*b.y;d*=b.x,f*=b.y,m*=b.x,p*=b.y,d+=O,f+=A,j=la(w),w=hC(j)}}return $g({width:m,height:p,x:d,y:f})}function Zy(e,t){const n=Xy(e).scrollLeft;return t?t.left+n:wl(Oi(e)).left+n}function eU(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Zy(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function M0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",l=Oi(r),u=t?Ky(t.floating):!1;if(r===l||u&&s)return n;let d={scrollLeft:0,scrollTop:0},f=xi(1);const m=xi(0),p=Si(r);if((p||!p&&!s)&&((td(r)!=="body"||em(l))&&(d=Xy(r)),Si(r))){const x=wl(r);f=Jc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!s?eU(l,d):xi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function P0e(e){return Array.from(e.getClientRects())}function R0e(e){const t=Oi(e),n=Xy(e),r=e.ownerDocument.body,a=aa(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=aa(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Zy(e);const u=-n.scrollTop;return Xa(r).direction==="rtl"&&(l+=aa(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:l,y:u}}const EL=25;function D0e(e,t){const n=la(e),r=Oi(e),a=n.visualViewport;let s=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){s=a.width,l=a.height;const m=CE();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Zy(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=EL&&(s-=j)}else f<=EL&&(s+=f);return{width:s,height:l,x:u,y:d}}const $0e=new Set(["absolute","fixed"]);function I0e(e,t){const n=wl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=Si(e)?Jc(e):xi(1),l=e.clientWidth*s.x,u=e.clientHeight*s.y,d=a*s.x,f=r*s.y;return{width:l,height:u,x:d,y:f}}function AL(e,t,n){let r;if(t==="viewport")r=D0e(e,n);else if(t==="document")r=R0e(Oi(e));else if(Ka(t))r=I0e(t,n);else{const a=JF(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return $g(r)}function tU(e,t){const n=so(e);return n===t||!Ka(n)||$u(n)?!1:Xa(n).position==="fixed"||tU(n,t)}function L0e(e,t){const n=t.get(e);if(n)return n;let r=Sh(e,[],!1).filter(u=>Ka(u)&&td(u)!=="body"),a=null;const s=Xa(e).position==="fixed";let l=s?so(e):e;for(;Ka(l)&&!$u(l);){const u=Xa(l),d=NE(l);!d&&u.position==="fixed"&&(a=null),(s?!d&&!a:!d&&u.position==="static"&&!!a&&$0e.has(a.position)||em(l)&&!d&&tU(e,l))?r=r.filter(m=>m!==l):a=u,l=so(l)}return t.set(e,r),r}function z0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?Ky(t)?[]:L0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=AL(t,m,a);return f.top=aa(p.top,f.top),f.right=io(p.right,f.right),f.bottom=io(p.bottom,f.bottom),f.left=aa(p.left,f.left),f},AL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function B0e(e){const{width:t,height:n}=QF(e);return{width:t,height:n}}function q0e(e,t,n){const r=Si(t),a=Oi(t),s=n==="fixed",l=wl(e,!0,s,t);let u={scrollLeft:0,scrollTop:0};const d=xi(0);function f(){d.x=Zy(a)}if(r||!r&&!s)if((td(t)!=="body"||em(a))&&(u=Xy(t)),r){const x=wl(t,!0,s,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();s&&!r&&a&&f();const m=a&&!r&&!s?eU(a,u):xi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function u_(e){return Xa(e).position==="static"}function TL(e,t){if(!Si(e)||Xa(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Oi(e)===n&&(n=n.ownerDocument.body),n}function nU(e,t){const n=la(e);if(Ky(e))return n;if(!Si(e)){let a=so(e);for(;a&&!$u(a);){if(Ka(a)&&!u_(a))return a;a=so(a)}return n}let r=TL(e,t);for(;r&&S0e(r)&&u_(r);)r=TL(r,t);return r&&$u(r)&&u_(r)&&!NE(r)?n:r||E0e(e)||n}const F0e=async function(e){const t=this.getOffsetParent||nU,n=this.getDimensions,r=await n(e.floating);return{reference:q0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function U0e(e){return Xa(e).direction==="rtl"}const H0e={convertOffsetParentRelativeRectToViewportRelativeRect:M0e,getDocumentElement:Oi,getClippingRect:z0e,getOffsetParent:nU,getElementRects:F0e,getClientRects:P0e,getDimensions:B0e,getScale:Jc,isElement:Ka,isRTL:U0e};function rU(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function W0e(e,t){let n=null,r;const a=Oi(e);function s(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),s();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Jp(p),w=Jp(a.clientWidth-(m+g)),b=Jp(a.clientHeight-(p+x)),N=Jp(m),O={rootMargin:-j+"px "+-w+"px "+-b+"px "+-N+"px",threshold:aa(0,io(1,d))||1};let A=!0;function C(k){const T=k[0].intersectionRatio;if(T!==d){if(!A)return l();T?l(!1,T):r=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!rU(f,e.getBoundingClientRect())&&l(),A=!1}try{n=new IntersectionObserver(C,{...O,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,O)}n.observe(e)}return l(!0),s}function V0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=OE(e),m=a||s?[...f?Sh(f):[],...Sh(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),s&&N.addEventListener("resize",n)});const p=f&&u?W0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[E]=N;E&&E.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var O;(O=x)==null||O.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,w=d?wl(e):null;d&&b();function b(){const N=wl(e);w&&!rU(w,N)&&n(),w=N,j=requestAnimationFrame(b)}return n(),()=>{var N;m.forEach(E=>{a&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const G0e=g0e,Y0e=y0e,K0e=m0e,X0e=b0e,Z0e=p0e,kL=h0e,Q0e=x0e,J0e=(e,t,n)=>{const r=new Map,a={platform:H0e,...n},s={...a.platform,_c:r};return f0e(e,t,{...a,platform:s})};var ewe=typeof document<"u",twe=function(){},vv=ewe?y.useLayoutEffect:twe;function Ig(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Ig(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!Ig(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function aU(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ML(e,t){const n=aU(e);return Math.round(t*n)/n}function d_(e){const t=y.useRef(e);return vv(()=>{t.current=e}),t}function nwe(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);Ig(g,r)||x(r);const[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useCallback(q=>{q!==k.current&&(k.current=q,w(q))},[]),O=y.useCallback(q=>{q!==T.current&&(T.current=q,N(q))},[]),A=s||j,C=l||b,k=y.useRef(null),T=y.useRef(null),M=y.useRef(m),R=d!=null,L=d_(d),D=d_(a),U=d_(f),V=y.useCallback(()=>{if(!k.current||!T.current)return;const q={placement:t,strategy:n,middleware:g};D.current&&(q.platform=D.current),J0e(k.current,T.current,q).then(Z=>{const ee={...Z,isPositioned:U.current!==!1};H.current&&!Ig(M.current,ee)&&(M.current=ee,Nl.flushSync(()=>{p(ee)}))})},[g,t,n,D,U]);vv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(q=>({...q,isPositioned:!1})))},[f]);const H=y.useRef(!1);vv(()=>(H.current=!0,()=>{H.current=!1}),[]),vv(()=>{if(A&&(k.current=A),C&&(T.current=C),A&&C){if(L.current)return L.current(A,C,V);V()}},[A,C,V,L,R]);const G=y.useMemo(()=>({reference:k,floating:T,setReference:E,setFloating:O}),[E,O]),$=y.useMemo(()=>({reference:A,floating:C}),[A,C]),I=y.useMemo(()=>{const q={position:n,left:0,top:0};if(!$.floating)return q;const Z=ML($.floating,m.x),ee=ML($.floating,m.y);return u?{...q,transform:"translate("+Z+"px, "+ee+"px)",...aU($.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:Z,top:ee}},[n,u,$.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:$,floatingStyles:I}),[m,V,G,$,I])}const rwe=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?kL({element:r.current,padding:a}).fn(n):{}:r?kL({element:r,padding:a}).fn(n):{}}}},awe=(e,t)=>({...G0e(e),options:[e,t]}),iwe=(e,t)=>({...Y0e(e),options:[e,t]}),swe=(e,t)=>({...Q0e(e),options:[e,t]}),owe=(e,t)=>({...K0e(e),options:[e,t]}),lwe=(e,t)=>({...X0e(e),options:[e,t]}),cwe=(e,t)=>({...Z0e(e),options:[e,t]}),uwe=(e,t)=>({...rwe(e),options:[e,t]});var dwe="Arrow",iU=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return i.jsx($e.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});iU.displayName=dwe;var fwe=iU,EE="Popper",[sU,vo]=yr(EE),[hwe,oU]=sU(EE),lU=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(hwe,{scope:t,anchor:r,onAnchorChange:a,children:n})};lU.displayName=EE;var cU="PopperAnchor",uU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=oU(cU,n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&s.onAnchorChange(d.current)}),r?null:i.jsx($e.div,{...a,ref:u})});uU.displayName=cU;var AE="PopperContent",[mwe,pwe]=sU(AE),dU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...w}=e,b=oU(AE,n),[N,E]=y.useState(null),O=Ue(t,ae=>E(ae)),[A,C]=y.useState(null),k=Ly(A),T=k?.width??0,M=k?.height??0,R=r+(s!=="center"?"-"+s:""),L=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},D=Array.isArray(f)?f:[f],U=D.length>0,V={padding:L,boundary:D.filter(gwe),altBoundary:U},{refs:H,floatingStyles:G,placement:$,isPositioned:I,middlewareData:q}=nwe({strategy:"fixed",placement:R,whileElementsMounted:(...ae)=>V0e(...ae,{animationFrame:x==="always"}),elements:{reference:b.anchor},middleware:[awe({mainAxis:a+M,alignmentAxis:l}),d&&iwe({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?swe():void 0,...V}),d&&owe({...V}),lwe({...V,apply:({elements:ae,rects:we,availableWidth:Y,availableHeight:pe})=>{const{width:je,height:X}=we.reference,Ae=ae.floating.style;Ae.setProperty("--radix-popper-available-width",`${Y}px`),Ae.setProperty("--radix-popper-available-height",`${pe}px`),Ae.setProperty("--radix-popper-anchor-width",`${je}px`),Ae.setProperty("--radix-popper-anchor-height",`${X}px`)}}),A&&uwe({element:A,padding:u}),ywe({arrowWidth:T,arrowHeight:M}),g&&cwe({strategy:"referenceHidden",...V})]}),[Z,ee]=mU($),F=yn(j);Yn(()=>{I&&F?.()},[I,F]);const z=q.arrow?.x,K=q.arrow?.y,ie=q.arrow?.centerOffset!==0,[Q,he]=y.useState();return Yn(()=>{N&&he(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:H.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:I?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Q,"--radix-popper-transform-origin":[q.transformOrigin?.x,q.transformOrigin?.y].join(" "),...q.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(mwe,{scope:n,placedSide:Z,onArrowChange:C,arrowX:z,arrowY:K,shouldHideArrow:ie,children:i.jsx($e.div,{"data-side":Z,"data-align":ee,...w,ref:O,style:{...w.style,animation:I?void 0:"none"}})})})});dU.displayName=AE;var fU="PopperArrow",vwe={top:"bottom",right:"left",bottom:"top",left:"right"},hU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=pwe(fU,r),l=vwe[s.placedSide];return i.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:i.jsx(fwe,{...a,ref:n,style:{...a.style,display:"block"}})})});hU.displayName=fU;function gwe(e){return e!==null}var ywe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=mU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",w="";return f==="bottom"?(j=l?p:`${g}px`,w=`${-d}px`):f==="top"?(j=l?p:`${g}px`,w=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,w=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,w=l?p:`${x}px`),{data:{x:j,y:w}}}});function mU(e){const[t,n="center"]=e.split("-");return[t,n]}var tm=lU,nm=uU,Qy=dU,Jy=hU;function xwe(e){const t=bwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(jwe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function bwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=_we(a),u=Swe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var wwe=Symbol("radix.slottable");function jwe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===wwe}function Swe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function _we(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var pU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Nwe="VisuallyHidden",ex=y.forwardRef((e,t)=>i.jsx($e.span,{...e,ref:t,style:{...pU,...e.style}}));ex.displayName=Nwe;var Cwe=ex,Owe=[" ","Enter","ArrowUp","ArrowDown"],Ewe=[" ","Enter"],jl="Select",[tx,nx,Awe]=Rh(jl),[nd]=yr(jl,[Awe,vo]),rx=vo(),[Twe,go]=nd(jl),[kwe,Mwe]=nd(jl),vU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,w=rx(t),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),k=Uu(f),[T,M]=Ta({prop:r,defaultProp:a??!1,onChange:s,caller:jl}),[R,L]=Ta({prop:l,defaultProp:u,onChange:d,caller:jl}),D=y.useRef(null),U=b?j||!!b.closest("form"):!0,[V,H]=y.useState(new Set),G=Array.from(V).map($=>$.props.value).join(";");return i.jsx(tm,{...w,children:i.jsxs(Twe,{required:x,scope:t,trigger:b,onTriggerChange:N,valueNode:E,onValueNodeChange:O,valueNodeHasChildren:A,onValueNodeHasChildrenChange:C,contentId:Gn(),value:R,onValueChange:L,open:T,onOpenChange:M,dir:k,triggerPointerDownPosRef:D,disabled:g,children:[i.jsx(tx.Provider,{scope:t,children:i.jsx(kwe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback($=>{H(I=>new Set(I).add($))},[]),onNativeOptionRemove:y.useCallback($=>{H(I=>{const q=new Set(I);return q.delete($),q})},[]),children:n})}),U?i.jsxs(BU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:R,onChange:$=>L($.target.value),disabled:g,form:j,children:[R===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};vU.displayName=jl;var gU="SelectTrigger",yU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=rx(n),l=go(gU,n),u=l.disabled||r,d=Ue(t,l.onTriggerChange),f=nx(n),m=y.useRef("touch"),[p,g,x]=FU(w=>{const b=f().filter(O=>!O.disabled),N=b.find(O=>O.value===l.value),E=UU(b,w,N);E!==void 0&&l.onValueChange(E.value)}),j=w=>{u||(l.onOpenChange(!0),x()),w&&(l.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return i.jsx(nm,{asChild:!0,...s,children:i.jsx($e.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":qU(l.value)?"":void 0,...a,ref:d,onClick:Ne(a.onClick,w=>{w.currentTarget.focus(),m.current!=="mouse"&&j(w)}),onPointerDown:Ne(a.onPointerDown,w=>{m.current=w.pointerType;const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(j(w),w.preventDefault())}),onKeyDown:Ne(a.onKeyDown,w=>{const b=p.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(b&&w.key===" ")&&Owe.includes(w.key)&&(j(),w.preventDefault())})})})});yU.displayName=gU;var xU="SelectValue",bU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:l="",...u}=e,d=go(xU,n),{onValueNodeHasChildrenChange:f}=d,m=s!==void 0,p=Ue(t,d.onValueNodeChange);return Yn(()=>{f(m)},[f,m]),i.jsx($e.span,{...u,ref:p,style:{pointerEvents:"none"},children:qU(d.value)?i.jsx(i.Fragment,{children:l}):s})});bU.displayName=xU;var Pwe="SelectIcon",wU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx($e.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});wU.displayName=Pwe;var Rwe="SelectPortal",jU=e=>i.jsx(Ml,{asChild:!0,...e});jU.displayName=Rwe;var Sl="SelectContent",SU=y.forwardRef((e,t)=>{const n=go(Sl,e.__scopeSelect),[r,a]=y.useState();if(Yn(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?Nl.createPortal(i.jsx(_U,{scope:e.__scopeSelect,children:i.jsx(tx.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),s):null}return i.jsx(NU,{...e,ref:t})});SU.displayName=Sl;var Ba=10,[_U,yo]=nd(Sl),Dwe="SelectContentImpl",$we=xwe("SelectContent.RemoveScroll"),NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b,...N}=e,E=go(Sl,n),[O,A]=y.useState(null),[C,k]=y.useState(null),T=Ue(t,ae=>A(ae)),[M,R]=y.useState(null),[L,D]=y.useState(null),U=nx(n),[V,H]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(O)return Fy(O)},[O]),By();const $=y.useCallback(ae=>{const[we,...Y]=U().map(X=>X.ref.current),[pe]=Y.slice(-1),je=document.activeElement;for(const X of ae)if(X===je||(X?.scrollIntoView({block:"nearest"}),X===we&&C&&(C.scrollTop=0),X===pe&&C&&(C.scrollTop=C.scrollHeight),X?.focus(),document.activeElement!==je))return},[U,C]),I=y.useCallback(()=>$([M,O]),[$,M,O]);y.useEffect(()=>{V&&I()},[V,I]);const{onOpenChange:q,triggerPointerDownPosRef:Z}=E;y.useEffect(()=>{if(O){let ae={x:0,y:0};const we=pe=>{ae={x:Math.abs(Math.round(pe.pageX)-(Z.current?.x??0)),y:Math.abs(Math.round(pe.pageY)-(Z.current?.y??0))}},Y=pe=>{ae.x<=10&&ae.y<=10?pe.preventDefault():O.contains(pe.target)||q(!1),document.removeEventListener("pointermove",we),Z.current=null};return Z.current!==null&&(document.addEventListener("pointermove",we),document.addEventListener("pointerup",Y,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",we),document.removeEventListener("pointerup",Y,{capture:!0})}}},[O,q,Z]),y.useEffect(()=>{const ae=()=>q(!1);return window.addEventListener("blur",ae),window.addEventListener("resize",ae),()=>{window.removeEventListener("blur",ae),window.removeEventListener("resize",ae)}},[q]);const[ee,F]=FU(ae=>{const we=U().filter(je=>!je.disabled),Y=we.find(je=>je.ref.current===document.activeElement),pe=UU(we,ae,Y);pe&&setTimeout(()=>pe.ref.current.focus())}),z=y.useCallback((ae,we,Y)=>{const pe=!G.current&&!Y;(E.value!==void 0&&E.value===we||pe)&&(R(ae),pe&&(G.current=!0))},[E.value]),K=y.useCallback(()=>O?.focus(),[O]),ie=y.useCallback((ae,we,Y)=>{const pe=!G.current&&!Y;(E.value!==void 0&&E.value===we||pe)&&D(ae)},[E.value]),Q=r==="popper"?mC:CU,he=Q===mC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b}:{};return i.jsx(_U,{scope:n,content:O,viewport:C,onViewportChange:k,itemRefCallback:z,selectedItem:M,onItemLeave:K,itemTextRefCallback:ie,focusSelectedItem:I,selectedItemText:L,position:r,isPositioned:V,searchRef:ee,children:i.jsx(Jh,{as:$we,allowPinchZoom:!0,children:i.jsx(Qh,{asChild:!0,trapped:E.open,onMountAutoFocus:ae=>{ae.preventDefault()},onUnmountAutoFocus:Ne(a,ae=>{E.trigger?.focus({preventScroll:!0}),ae.preventDefault()}),children:i.jsx(kl,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:ae=>ae.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:i.jsx(Q,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:ae=>ae.preventDefault(),...N,...he,onPlaced:()=>H(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:Ne(N.onKeyDown,ae=>{const we=ae.ctrlKey||ae.altKey||ae.metaKey;if(ae.key==="Tab"&&ae.preventDefault(),!we&&ae.key.length===1&&F(ae.key),["ArrowUp","ArrowDown","Home","End"].includes(ae.key)){let pe=U().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ae.key)&&(pe=pe.slice().reverse()),["ArrowUp","ArrowDown"].includes(ae.key)){const je=ae.target,X=pe.indexOf(je);pe=pe.slice(X+1)}setTimeout(()=>$(pe)),ae.preventDefault()}})})})})})})});NU.displayName=Dwe;var Iwe="SelectItemAlignedPosition",CU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=go(Sl,n),l=yo(Sl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=Ue(t,T=>m(T)),g=nx(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:N,focusSelectedItem:E}=l,O=y.useCallback(()=>{if(s.trigger&&s.valueNode&&u&&f&&w&&b&&N){const T=s.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),L=N.getBoundingClientRect();if(s.dir!=="rtl"){const je=L.left-M.left,X=R.left-je,Ae=T.left-X,Oe=T.width+Ae,We=Math.max(Oe,M.width),Ve=window.innerWidth-Ba,be=Df(X,[Ba,Math.max(Ba,Ve-We)]);u.style.minWidth=Oe+"px",u.style.left=be+"px"}else{const je=M.right-L.right,X=window.innerWidth-R.right-je,Ae=window.innerWidth-T.right-X,Oe=T.width+Ae,We=Math.max(Oe,M.width),Ve=window.innerWidth-Ba,be=Df(X,[Ba,Math.max(Ba,Ve-We)]);u.style.minWidth=Oe+"px",u.style.right=be+"px"}const D=g(),U=window.innerHeight-Ba*2,V=w.scrollHeight,H=window.getComputedStyle(f),G=parseInt(H.borderTopWidth,10),$=parseInt(H.paddingTop,10),I=parseInt(H.borderBottomWidth,10),q=parseInt(H.paddingBottom,10),Z=G+$+V+q+I,ee=Math.min(b.offsetHeight*5,Z),F=window.getComputedStyle(w),z=parseInt(F.paddingTop,10),K=parseInt(F.paddingBottom,10),ie=T.top+T.height/2-Ba,Q=U-ie,he=b.offsetHeight/2,ae=b.offsetTop+he,we=G+$+ae,Y=Z-we;if(we<=ie){const je=D.length>0&&b===D[D.length-1].ref.current;u.style.bottom="0px";const X=f.clientHeight-w.offsetTop-w.offsetHeight,Ae=Math.max(Q,he+(je?K:0)+X+I),Oe=we+Ae;u.style.height=Oe+"px"}else{const je=D.length>0&&b===D[0].ref.current;u.style.top="0px";const Ae=Math.max(ie,G+w.offsetTop+(je?z:0)+he)+Y;u.style.height=Ae+"px",w.scrollTop=we-ie+w.offsetTop}u.style.margin=`${Ba}px 0`,u.style.minHeight=ee+"px",u.style.maxHeight=U+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,s.trigger,s.valueNode,u,f,w,b,N,s.dir,r]);Yn(()=>O(),[O]);const[A,C]=y.useState();Yn(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(T=>{T&&j.current===!0&&(O(),E?.(),j.current=!1)},[O,E]);return i.jsx(zwe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:i.jsx($e.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});CU.displayName=Iwe;var Lwe="SelectPopperPosition",mC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=Ba,...s}=e,l=rx(n);return i.jsx(Qy,{...l,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.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)"}})});mC.displayName=Lwe;var[zwe,TE]=nd(Sl,{}),pC="SelectViewport",OU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=yo(pC,n),l=TE(pC,n),u=Ue(t,s.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(tx.Slot,{scope:n,children:i.jsx($e.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:Ne(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-Ba*2,w=parseFloat(p.style.minHeight),b=parseFloat(p.style.height),N=Math.max(w,b);if(N0?A:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});OU.displayName=pC;var EU="SelectGroup",[Bwe,qwe]=nd(EU),Fwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Gn();return i.jsx(Bwe,{scope:n,id:a,children:i.jsx($e.div,{role:"group","aria-labelledby":a,...r,ref:t})})});Fwe.displayName=EU;var AU="SelectLabel",TU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=qwe(AU,n);return i.jsx($e.div,{id:a.id,...r,ref:t})});TU.displayName=AU;var Lg="SelectItem",[Uwe,kU]=nd(Lg),MU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...l}=e,u=go(Lg,n),d=yo(Lg,n),f=u.value===r,[m,p]=y.useState(s??""),[g,x]=y.useState(!1),j=Ue(t,E=>d.itemRefCallback?.(E,r,a)),w=Gn(),b=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Uwe,{scope:n,value:r,disabled:a,textId:w,isSelected:f,onItemTextChange:y.useCallback(E=>{p(O=>O||(E?.textContent??"").trim())},[]),children:i.jsx(tx.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx($e.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:Ne(l.onFocus,()=>x(!0)),onBlur:Ne(l.onBlur,()=>x(!1)),onClick:Ne(l.onClick,()=>{b.current!=="mouse"&&N()}),onPointerUp:Ne(l.onPointerUp,()=>{b.current==="mouse"&&N()}),onPointerDown:Ne(l.onPointerDown,E=>{b.current=E.pointerType}),onPointerMove:Ne(l.onPointerMove,E=>{b.current=E.pointerType,a?d.onItemLeave?.():b.current==="mouse"&&E.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Ne(l.onPointerLeave,E=>{E.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:Ne(l.onKeyDown,E=>{d.searchRef?.current!==""&&E.key===" "||(Ewe.includes(E.key)&&N(),E.key===" "&&E.preventDefault())})})})})});MU.displayName=Lg;var xf="SelectItemText",PU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,l=go(xf,n),u=yo(xf,n),d=kU(xf,n),f=Mwe(xf,n),[m,p]=y.useState(null),g=Ue(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return Yn(()=>(w(j),()=>b(j)),[w,b,j]),i.jsxs(i.Fragment,{children:[i.jsx($e.span,{id:d.textId,...s,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Nl.createPortal(s.children,l.valueNode):null]})});PU.displayName=xf;var RU="SelectItemIndicator",DU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return kU(RU,n).isSelected?i.jsx($e.span,{"aria-hidden":!0,...r,ref:t}):null});DU.displayName=RU;var vC="SelectScrollUpButton",$U=y.forwardRef((e,t)=>{const n=yo(vC,e.__scopeSelect),r=TE(vC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;s(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(LU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});$U.displayName=vC;var gC="SelectScrollDownButton",IU=y.forwardRef((e,t)=>{const n=yo(gC,e.__scopeSelect),r=TE(gC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(LU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});IU.displayName=gC;var LU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=yo("SelectScrollButton",n),l=y.useRef(null),u=nx(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Yn(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx($e.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:Ne(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:Ne(a.onPointerMove,()=>{s.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:Ne(a.onPointerLeave,()=>{d()})})}),Hwe="SelectSeparator",zU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx($e.div,{"aria-hidden":!0,...r,ref:t})});zU.displayName=Hwe;var yC="SelectArrow",Wwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=rx(n),s=go(yC,n),l=yo(yC,n);return s.open&&l.position==="popper"?i.jsx(Jy,{...a,...r,ref:t}):null});Wwe.displayName=yC;var Vwe="SelectBubbleInput",BU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(r,a),l=Iy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.select,{...n,style:{...pU,...n.style},ref:s,defaultValue:t})});BU.displayName=Vwe;function qU(e){return e===""||e===void 0}function FU(e){const t=yn(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),s=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}function UU(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=Gwe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function Gwe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Ywe=vU,HU=yU,Kwe=bU,Xwe=wU,Zwe=jU,WU=SU,Qwe=OU,VU=TU,GU=MU,Jwe=PU,eje=DU,YU=$U,KU=IU,XU=zU;const St=Ywe,_t=Kwe,xt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(HU,{ref:r,className:ue("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx(Xwe,{asChild:!0,children:i.jsx(gh,{className:"h-4 w-4 opacity-50"})})]}));xt.displayName=HU.displayName;const ZU=y.forwardRef(({className:e,...t},n)=>i.jsx(YU,{ref:n,className:ue("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(QN,{className:"h-4 w-4"})}));ZU.displayName=YU.displayName;const QU=y.forwardRef(({className:e,...t},n)=>i.jsx(KU,{ref:n,className:ue("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(gh,{className:"h-4 w-4"})}));QU.displayName=KU.displayName;const bt=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(Zwe,{children:i.jsxs(WU,{ref:a,className:ue("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(ZU,{}),i.jsx(Qwe,{className:ue("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(QU,{})]})}));bt.displayName=WU.displayName;const tje=y.forwardRef(({className:e,...t},n)=>i.jsx(VU,{ref:n,className:ue("px-2 py-1.5 text-sm font-semibold",e),...t}));tje.displayName=VU.displayName;const ke=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(GU,{ref:r,className:ue("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(eje,{children:i.jsx(cl,{className:"h-4 w-4"})})}),i.jsx(Jwe,{children:t})]}));ke.displayName=GU.displayName;const nje=y.forwardRef(({className:e,...t},n)=>i.jsx(XU,{ref:n,className:ue("-mx-1 my-1 h-px bg-muted",e),...t}));nje.displayName=XU.displayName;function rje(e){const t=aje(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(sje);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function aje(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=lje(a),u=oje(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ije=Symbol("radix.slottable");function sje(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ije}function oje(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function lje(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ax="Popover",[JU]=yr(ax,[vo]),rm=vo(),[cje,xo]=JU(ax),eH=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=rm(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Ta({prop:r,defaultProp:a??!1,onChange:s,caller:ax});return i.jsx(tm,{...u,children:i.jsx(cje,{scope:t,contentId:Gn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};eH.displayName=ax;var tH="PopoverAnchor",uje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=xo(tH,n),s=rm(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(nm,{...s,...r,ref:t})});uje.displayName=tH;var nH="PopoverTrigger",rH=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=xo(nH,n),s=rm(n),l=Ue(t,a.triggerRef),u=i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":lH(a.open),...r,ref:l,onClick:Ne(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(nm,{asChild:!0,...s,children:u})});rH.displayName=nH;var kE="PopoverPortal",[dje,fje]=JU(kE,{forceMount:void 0}),aH=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,s=xo(kE,t);return i.jsx(dje,{scope:t,forceMount:n,children:i.jsx(zn,{present:n||s.open,children:i.jsx(Ml,{asChild:!0,container:a,children:r})})})};aH.displayName=kE;var Iu="PopoverContent",iH=y.forwardRef((e,t)=>{const n=fje(Iu,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,s=xo(Iu,e.__scopePopover);return i.jsx(zn,{present:r||s.open,children:s.modal?i.jsx(mje,{...a,ref:t}):i.jsx(pje,{...a,ref:t})})});iH.displayName=Iu;var hje=rje("PopoverContent.RemoveScroll"),mje=y.forwardRef((e,t)=>{const n=xo(Iu,e.__scopePopover),r=y.useRef(null),a=Ue(t,r),s=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return Fy(l)},[]),i.jsx(Jh,{as:hje,allowPinchZoom:!0,children:i.jsx(sH,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ne(e.onCloseAutoFocus,l=>{l.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Ne(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;s.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:Ne(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),pje=y.forwardRef((e,t)=>{const n=xo(Iu,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(sH,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),sH=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=xo(Iu,n),x=rm(n);return By(),i.jsx(Qh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(kl,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Qy,{"data-state":lH(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),oH="PopoverClose",vje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=xo(oH,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:Ne(e.onClick,()=>a.onOpenChange(!1))})});vje.displayName=oH;var gje="PopoverArrow",yje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=rm(n);return i.jsx(Jy,{...a,...r,ref:t})});yje.displayName=gje;function lH(e){return e?"open":"closed"}var xje=eH,bje=rH,wje=aH,cH=iH;const oo=xje,lo=bje,hs=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(wje,{children:i.jsx(cH,{ref:a,align:t,sideOffset:n,className:ue("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));hs.displayName=cH.displayName;const rd="/api/webui/config";async function jje(){const t=await(await Ze(`${rd}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function eu(){const t=await(await Ze(`${rd}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function PL(e){const n=await(await Ze(`${rd}/bot`,{method:"POST",headers:st(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function zg(e){const n=await(await Ze(`${rd}/model`,{method:"POST",headers:st(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function Sje(e,t){const r=await(await Ze(`${rd}/bot/section/${e}`,{method:"POST",headers:st(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function xC(e,t){const r=await(await Ze(`${rd}/model/section/${e}`,{method:"POST",headers:st(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}const _je=xn.create({baseURL:"",timeout:1e4});async function ME(){try{return(await _je.post("/api/webui/system/restart")).data}catch(e){throw console.error("重启麦麦失败:",e),e}}const Nje=Qu("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),ix=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx("div",{ref:r,role:"alert",className:ue(Nje({variant:t}),e),...n}));ix.displayName="Alert";const Cje=y.forwardRef(({className:e,...t},n)=>i.jsx("h5",{ref:n,className:ue("mb-1 font-medium leading-none tracking-tight",e),...t}));Cje.displayName="AlertTitle";const sx=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("text-sm [&_p]:leading-relaxed",e),...t}));sx.displayName="AlertDescription";function PE({onRestartComplete:e,onRestartFailed:t}){const[n,r]=y.useState(0),[a,s]=y.useState("restarting"),[l,u]=y.useState(0),[d,f]=y.useState(0);y.useEffect(()=>{const g=setInterval(()=>{r(w=>w>=90?w:w+1)},200),x=setInterval(()=>{u(w=>w+1)},1e3),j=setTimeout(()=>{s("checking"),m()},3e3);return()=>{clearInterval(g),clearInterval(x),clearTimeout(j)}},[]);const m=()=>{const x=async()=>{try{if(f(w=>w+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)r(100),s("success"),setTimeout(()=>{e?.()},1500);else throw new Error("Status check failed")}catch{d<60?setTimeout(x,2e3):(s("failed"),t?.())}};x()},p=g=>{const x=Math.floor(g/60),j=g%60;return`${x}:${j.toString().padStart(2,"0")}`};return i.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:i.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[i.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[a==="restarting"&&i.jsxs(i.Fragment,{children:[i.jsx(yh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),a==="checking"&&i.jsxs(i.Fragment,{children:[i.jsx(yh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),i.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",d,"/60)"]})]}),a==="success"&&i.jsxs(i.Fragment,{children:[i.jsx(Dr,{className:"h-16 w-16 text-green-500"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),a==="failed"&&i.jsxs(i.Fragment,{children:[i.jsx(xl,{className:"h-16 w-16 text-destructive"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),a!=="failed"&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(Ih,{value:n,className:"h-2"}),i.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[i.jsxs("span",{children:[n,"%"]}),i.jsxs("span",{children:["已用时: ",p(l)]})]})]}),i.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:i.jsxs("p",{className:"text-sm text-muted-foreground",children:[a==="restarting"&&"🔄 配置已保存,正在重启主程序...",a==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",a==="success"&&"✅ 配置已生效,服务运行正常",a==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),a==="failed"&&i.jsxs("div",{className:"flex gap-2",children:[i.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),i.jsx("button",{onClick:()=>{s("checking"),f(0),m()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function Oje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),{toast:g}=xr(),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[T,M]=y.useState(null),[R,L]=y.useState(null),[D,U]=y.useState(null),[V,H]=y.useState(null),[G,$]=y.useState(null),[I,q]=y.useState(null),[Z,ee]=y.useState(null),[F,z]=y.useState(null),[K,ie]=y.useState(null),[Q,he]=y.useState(null),[ae,we]=y.useState(null),[Y,pe]=y.useState(null),[je,X]=y.useState(null),Ae=y.useRef(null),Oe=y.useRef(!0),We=y.useRef({}),Ve=y.useCallback(async()=>{try{t(!0);const re=await jje();We.current=re,j(re.bot),b(re.personality);const Se=re.chat;Se.talk_value_rules||(Se.talk_value_rules=[]),E(Se),A(re.expression),k(re.emoji),M(re.memory),L(re.tool),U(re.mood),H(re.voice),$(re.lpmm_knowledge),q(re.keyword_reaction),ee(re.response_post_process),z(re.chinese_typo),ie(re.response_splitter),he(re.log),we(re.debug),pe(re.maim_message),X(re.telemetry),u(!1),Oe.current=!1}catch(re){console.error("加载配置失败:",re),g({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[g]);y.useEffect(()=>{Ve()},[Ve]);const be=y.useCallback(async(re,Se)=>{if(!Oe.current)try{s(!0),await Sje(re,Se),u(!1)}catch(ut){console.error(`自动保存 ${re} 失败:`,ut),u(!0)}finally{s(!1)}},[]),_e=y.useCallback((re,Se)=>{Oe.current||(u(!0),Ae.current&&clearTimeout(Ae.current),Ae.current=setTimeout(()=>{be(re,Se)},2e3))},[be]);y.useEffect(()=>{x&&!Oe.current&&_e("bot",x)},[x,_e]),y.useEffect(()=>{w&&!Oe.current&&_e("personality",w)},[w,_e]),y.useEffect(()=>{N&&!Oe.current&&_e("chat",N)},[N,_e]),y.useEffect(()=>{O&&!Oe.current&&_e("expression",O)},[O,_e]),y.useEffect(()=>{C&&!Oe.current&&_e("emoji",C)},[C,_e]),y.useEffect(()=>{T&&!Oe.current&&_e("memory",T)},[T,_e]),y.useEffect(()=>{R&&!Oe.current&&_e("tool",R)},[R,_e]),y.useEffect(()=>{D&&!Oe.current&&_e("mood",D)},[D,_e]),y.useEffect(()=>{V&&!Oe.current&&_e("voice",V)},[V,_e]),y.useEffect(()=>{G&&!Oe.current&&_e("lpmm_knowledge",G)},[G,_e]),y.useEffect(()=>{I&&!Oe.current&&_e("keyword_reaction",I)},[I,_e]),y.useEffect(()=>{Z&&!Oe.current&&_e("response_post_process",Z)},[Z,_e]),y.useEffect(()=>{F&&!Oe.current&&_e("chinese_typo",F)},[F,_e]),y.useEffect(()=>{K&&!Oe.current&&_e("response_splitter",K)},[K,_e]),y.useEffect(()=>{Q&&!Oe.current&&_e("log",Q)},[Q,_e]),y.useEffect(()=>{ae&&!Oe.current&&_e("debug",ae)},[ae,_e]),y.useEffect(()=>{Y&&!Oe.current&&_e("maim_message",Y)},[Y,_e]),y.useEffect(()=>{je&&!Oe.current&&_e("telemetry",je)},[je,_e]);const rt=async()=>{try{r(!0),Ae.current&&clearTimeout(Ae.current);const re={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:D,voice:V,lpmm_knowledge:G,keyword_reaction:I,response_post_process:Z,chinese_typo:F,response_splitter:K,log:Q,debug:ae,maim_message:Y,telemetry:je};await PL(re),u(!1),g({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(re){console.error("保存配置失败:",re),g({title:"保存失败",description:re.message,variant:"destructive"})}finally{r(!1)}},fn=async()=>{try{f(!0),ME().catch(()=>{}),p(!0)}catch(re){console.error("重启失败:",re),p(!1),g({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),f(!1)}},Tt=async()=>{try{r(!0),Ae.current&&clearTimeout(Ae.current);const re={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:D,voice:V,lpmm_knowledge:G,keyword_reaction:I,response_post_process:Z,chinese_typo:F,response_splitter:K,log:Q,debug:ae,maim_message:Y,telemetry:je};await PL(re),u(!1),g({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(Se=>setTimeout(Se,500)),await fn()}catch(re){console.error("保存失败:",re),g({title:"保存失败",description:re.message,variant:"destructive"})}finally{r(!1)}},zt=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},at=()=>{p(!1),f(!1),g({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return e?i.jsx(Gt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:rt,disabled:n||a||!l||d,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(lE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:n||a||d,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(oE,{className:"mr-2 h-4 w-4"}),d?"重启中...":l?"保存并重启":"重启麦麦"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重启麦麦?"}),i.jsx(an,{children:l?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:l?Tt:fn,children:l?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(ix,{children:[i.jsx(Pu,{className:"h-4 w-4"}),i.jsxs(sx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(hl,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(ao,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Lt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Lt,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Lt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Lt,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Lt,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Lt,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Lt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Lt,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Lt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Lt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(vn,{value:"bot",className:"space-y-4",children:x&&i.jsx(Eje,{config:x,onChange:j})}),i.jsx(vn,{value:"personality",className:"space-y-4",children:w&&i.jsx(Aje,{config:w,onChange:b})}),i.jsx(vn,{value:"chat",className:"space-y-4",children:N&&i.jsx(Tje,{config:N,onChange:E})}),i.jsx(vn,{value:"expression",className:"space-y-4",children:O&&i.jsx(kje,{config:O,onChange:A})}),i.jsx(vn,{value:"features",className:"space-y-4",children:C&&T&&R&&i.jsx(Mje,{emojiConfig:C,memoryConfig:T,toolConfig:R,onEmojiChange:k,onMemoryChange:M,onToolChange:L})}),i.jsx(vn,{value:"processing",className:"space-y-4",children:I&&Z&&F&&K&&i.jsx(Pje,{keywordReactionConfig:I,responsePostProcessConfig:Z,chineseTypoConfig:F,responseSplitterConfig:K,onKeywordReactionChange:q,onResponsePostProcessChange:ee,onChineseTypoChange:z,onResponseSplitterChange:ie})}),i.jsx(vn,{value:"mood",className:"space-y-4",children:D&&i.jsx(Rje,{config:D,onChange:U})}),i.jsx(vn,{value:"voice",className:"space-y-4",children:V&&i.jsx(Dje,{config:V,onChange:H})}),i.jsx(vn,{value:"lpmm",className:"space-y-4",children:G&&i.jsx($je,{config:G,onChange:$})}),i.jsxs(vn,{value:"other",className:"space-y-4",children:[Q&&i.jsx(Ije,{config:Q,onChange:he}),ae&&i.jsx(Lje,{config:ae,onChange:we}),Y&&i.jsx(zje,{config:Y,onChange:pe}),je&&i.jsx(Bje,{config:je,onChange:X})]})]}),m&&i.jsx(PE,{onRestartComplete:zt,onRestartFailed:at})]})})}function Eje({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},s=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"platform",children:"平台"}),i.jsx(Ce,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ce,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ce,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{children:"其他平台账号"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ce,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{children:"别名"}),i.jsxs(oe,{onClick:s,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ce,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function Aje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=s=>{t({...e,states:e.states.filter((l,u)=>u!==s)})},a=(s,l)=>{const u=[...e.states];u[s]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"personality",children:"人格特质"}),i.jsx(Qt,{id:"personality",value:e.personality,onChange:s=>t({...e,personality:s.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Qt,{id:"reply_style",value:e.reply_style,onChange:s=>t({...e,reply_style:s.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"interest",children:"兴趣"}),i.jsx(Qt,{id:"interest",value:e.interest,onChange:s=>t({...e,interest:s.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Qt,{id:"plan_style",value:e.plan_style,onChange:s=>t({...e,plan_style:s.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Qt,{id:"visual_style",value:e.visual_style,onChange:s=>t({...e,visual_style:s.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Qt,{id:"private_plan_style",value:e.private_plan_style,onChange:s=>t({...e,private_plan_style:s.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{children:"状态列表(人格多样性)"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((s,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Qt,{value:s,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsx(an,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ce,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:s=>t({...e,state_probability:parseFloat(s.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function Tje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},s=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[w,b]=y.useState("59");y.useEffect(()=>{const E=u.split("-");if(E.length===2){const[O,A]=E,[C,k]=O.split(":"),[T,M]=A.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),T&&j(T.padStart(2,"0")),M&&b(M.padStart(2,"0"))}},[u]);const N=(E,O,A,C)=>{const k=`${E}:${O}-${A}:${C}`;d(k)};return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(ul,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(hs,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs",children:"小时"}),i.jsxs(St,{value:f,onValueChange:E=>{m(E),N(E,p,x,w)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(ke,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs",children:"分钟"}),i.jsxs(St,{value:p,onValueChange:E=>{g(E),N(f,E,x,w)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(ke,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs",children:"小时"}),i.jsxs(St,{value:x,onValueChange:E=>{j(E),N(f,p,E,w)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(ke,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs",children:"分钟"}),i.jsxs(St,{value:w,onValueChange:E=>{b(E),N(f,p,x,E)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(ke,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ya,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(hs,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ce,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ce,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ce,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ce,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(ne,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(ne,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(oe,{onClick:n,size:"sm",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{variant:"ghost",size:"sm",children:i.jsx(Ct,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(St,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"global",children:"全局配置"}),i.jsx(ke,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"平台"}),i.jsxs(St,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"qq",children:"QQ"}),i.jsx(ke,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ce,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"类型"}),i.jsxs(St,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"group",children:"群组(group)"}),i.jsx(ke,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(s,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ce,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(Gy,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function kje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const w=[...e.learning_list];w[g][x]=j,t({...e,learning_list:w})},s=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ya,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(hs,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:w})=>{const b=w.includes(g)||g==="*",[N,E]=y.useState(!b);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ce,{value:g,onChange:O=>p(x,j,O.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),w.length>0&&i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(St,{value:g,onValueChange:O=>p(x,j,O),children:[i.jsx(xt,{className:"flex-1",children:i.jsx(_t,{placeholder:"选择聊天流"})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"*",children:"* (全局共享)"}),w.map((O,A)=>i.jsx(ke,{value:O,children:O},A))]})]}),i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((w,b)=>b!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const w=[...e.expression_groups];w[g][x]=j,t({...e,expression_groups:w})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((A,C)=>C!==x&&A[0]===""),w=g[0]==="",b=g[0].split(":"),N=b[0]||"qq",E=b[1]||"",O=b[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",w&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(s,{rule:g}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(St,{value:w?"global":"specific",onValueChange:A=>{A==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!w,children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"global",children:"全局配置"}),i.jsx(ke,{value:"specific",disabled:j&&!w,children:"详细配置"})]})]}),j&&!w&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!w&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"平台"}),i.jsxs(St,{value:N,onValueChange:A=>{a(x,0,`${A}:${E}:${O}`)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"qq",children:"QQ"}),i.jsx(ke,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ce,{value:E,onChange:A=>{a(x,0,`${N}:${A.target.value}:${O}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"类型"}),i.jsxs(St,{value:O,onValueChange:A=>{a(x,0,`${N}:${E}:${A}`)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"group",children:"群组(group)"}),i.jsx(ke,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(dt,{checked:g[1]==="enable",onCheckedChange:A=>a(x,1,A?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(dt,{checked:g[2]==="enable",onCheckedChange:A=>a(x,2,A?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ce,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:A=>{const C=parseFloat(A.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(Gy,{value:[parseFloat(g[3])||1],onValueChange:A=>a(x,3,A[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(oe,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(w=>w[0]).filter(w=>w!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(ir,{className:"h-4 w-4"})}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((w,b)=>i.jsx(l,{member:w,groupIndex:x,memberIndex:b,availableChatIds:j},b))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function Mje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:s}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>s({...n,enable_tool:l})}),i.jsx(ne,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ce,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ce,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ce,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ce,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(ne,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(ne,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(ne,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(ne,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ce,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function Pje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:s,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=A=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==A)})},m=(A,C,k)=>{const T=[...e.regex_rules];C==="regex"&&typeof k=="string"?T[A]={...T[A],regex:[k]}:C==="reaction"&&typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,regex_rules:T})},p=({regex:A,reaction:C,onRegexChange:k,onReactionChange:T})=>{const[M,R]=y.useState(!1),[L,D]=y.useState(""),[U,V]=y.useState(null),[H,G]=y.useState(""),[$,I]=y.useState({}),[q,Z]=y.useState(""),ee=y.useRef(null),[F,z]=y.useState("build"),K=ae=>ae.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),ie=(ae,we=0)=>{const Y=ee.current;if(!Y)return;const pe=Y.selectionStart||0,je=Y.selectionEnd||0,X=A.substring(0,pe)+ae+A.substring(je);k(X),setTimeout(()=>{const Ae=pe+ae.length+we;Y.setSelectionRange(Ae,Ae),Y.focus()},0)};y.useEffect(()=>{if(!A||!L){V(null),I({}),Z(C),G("");return}try{const ae=K(A),we=new RegExp(ae,"g"),Y=L.match(we);V(Y),G("");const je=new RegExp(ae).exec(L);if(je&&je.groups){I(je.groups);let X=C;Object.entries(je.groups).forEach(([Ae,Oe])=>{X=X.replace(new RegExp(`\\[${Ae}\\]`,"g"),Oe||"")}),Z(X)}else I({}),Z(C)}catch(ae){G(ae.message),V(null),I({}),Z(C)}},[A,L,C]);const Q=()=>{if(!L||!U||U.length===0)return i.jsx("span",{className:"text-muted-foreground",children:L||"请输入测试文本"});try{const ae=K(A),we=new RegExp(ae,"g");let Y=0;const pe=[];let je;for(;(je=we.exec(L))!==null;)je.index>Y&&pe.push(i.jsx("span",{children:L.substring(Y,je.index)},`text-${Y}`)),pe.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),Y=je.index+je[0].length;return Y)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(sr,{open:M,onOpenChange:R,children:[i.jsx(oF,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ag,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"正则表达式编辑器"}),i.jsx(gr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Gt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(hl,{value:F,onValueChange:ae=>z(ae),className:"w-full",children:[i.jsxs(ao,{className:"grid w-full grid-cols-2",children:[i.jsx(Lt,{value:"build",children:"🔧 构建器"}),i.jsx(Lt,{value:"test",children:"🧪 测试器"})]}),i.jsxs(vn,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ce,{ref:ee,value:A,onChange:ae=>k(ae.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Qt,{value:C,onChange:ae=>T(ae.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[he.map(ae=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ae.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ae.items.map(we=>i.jsx(oe,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>ie(we.pattern,we.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:we.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:we.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:we.desc})]})},we.label))})]},ae.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(vn,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:A||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Qt,{id:"test-text",value:L,onChange:ae=>D(ae.target.value),placeholder:`在此输入要测试的文本... +例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),H&&i.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[i.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),i.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:H})]}),!H&&L&&i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex items-center gap-2",children:U&&U.length>0?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),i.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",U.length," 处)"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),i.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"匹配高亮"}),i.jsx(Gt,{className:"h-40 rounded-md bg-muted p-3",children:i.jsx("div",{className:"text-sm break-words",children:Q()})})]}),Object.keys($).length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"命名捕获组"}),i.jsx(Gt,{className:"h-32 rounded-md border p-3",children:i.jsx("div",{className:"space-y-2",children:Object.entries($).map(([ae,we])=>i.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ae,"]"]}),i.jsx("span",{className:"text-muted-foreground",children:"="}),i.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:we})]},ae))})})]}),Object.keys($).length>0&&C&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"Reaction 替换预览"}),i.jsx(Gt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:i.jsx("div",{className:"text-sm break-words",children:q})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),i.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),i.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),i.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},g=()=>{a({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},x=A=>{a({...e,keyword_rules:e.keyword_rules.filter((C,k)=>k!==A)})},j=(A,C,k)=>{const T=[...e.keyword_rules];typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,keyword_rules:T})},w=A=>{const C=[...e.keyword_rules];C[A]={...C[A],keywords:[...C[A].keywords||[],""]},a({...e,keyword_rules:C})},b=(A,C)=>{const k=[...e.keyword_rules];k[A]={...k[A],keywords:(k[A].keywords||[]).filter((T,M)=>M!==C)},a({...e,keyword_rules:k})},N=(A,C,k)=>{const T=[...e.keyword_rules],M=[...T[A].keywords||[]];M[C]=k,T[A]={...T[A],keywords:M},a({...e,keyword_rules:T})},E=({rule:A})=>{const C=`{ regex = [${(A.regex||[]).map(k=>`"${k}"`).join(", ")}], reaction = "${A.reaction}" }`;return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ya,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(hs,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Gt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},O=({rule:A})=>{const C=`[[keyword_reaction.keyword_rules]] +keywords = [${(A.keywords||[]).map(k=>`"${k}"`).join(", ")}] +reaction = "${A.reaction}"`;return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ya,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(hs,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Gt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),i.jsxs(oe,{onClick:d,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(p,{regex:A.regex&&A.regex[0]||"",reaction:A.reaction,onRegexChange:k=>m(C,"regex",k),onReactionChange:k=>m(C,"reaction",k)}),i.jsx(E,{rule:A}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除正则规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>f(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),i.jsx(Ce,{value:A.regex&&A.regex[0]||"",onChange:k=>m(C,"regex",k.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Qt,{value:A.reaction,onChange:k=>m(C,"reaction",k.target.value),placeholder:`触发后麦麦的反应... +可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(oe,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(O,{rule:A}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(oe,{onClick:()=>w(C),size:"sm",variant:"ghost",children:[i.jsx(ir,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(A.keywords||[]).map((k,T)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ce,{value:k,onChange:M=>N(C,T,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(oe,{onClick:()=>b(C,T),size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})]},T)),(!A.keywords||A.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Qt,{value:A.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:A=>s({...t,enable_response_post_process:A})}),i.jsx(ne,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(dt,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:A=>l({...n,enable:A})}),i.jsx(ne,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ce,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:A=>l({...n,error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ce,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:A=>l({...n,min_freq:parseInt(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ce,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:A=>l({...n,tone_error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ce,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:A=>l({...n,word_replace_rate:parseFloat(A.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(dt,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:A=>u({...r,enable:A})}),i.jsx(ne,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ce,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:A=>u({...r,max_length:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ce,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:A=>u({...r,max_sentence_num:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:A=>u({...r,enable_kaomoji_protection:A})}),i.jsx(ne,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:A=>u({...r,enable_overflow_return_all:A})}),i.jsx(ne,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function Rje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(ne,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"情绪更新阈值"}),i.jsx(Ce,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"情感特征"}),i.jsx(Qt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function Dje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(ne,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function $je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(ne,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"LPMM 模式"}),i.jsxs(St,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(xt,{children:i.jsx(_t,{placeholder:"选择 LPMM 模式"})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"classic",children:"经典模式"}),i.jsx(ke,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"同义词搜索 TopK"}),i.jsx(Ce,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"同义词阈值"}),i.jsx(Ce,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"实体提取线程数"}),i.jsx(Ce,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"嵌入向量维度"}),i.jsx(Ce,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function Ije({config:e,onChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),s("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"日期格式"}),i.jsx(Ce,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"日志级别样式"}),i.jsxs(St,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:p.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"日志文本颜色"}),i.jsxs(St,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:g.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"全局日志级别"}),i.jsxs(St,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:m.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"控制台日志级别"}),i.jsxs(St,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:m.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"文件日志级别"}),i.jsxs(St,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:m.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ce,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(oe,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(Ct,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ce,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(St,{value:a,onValueChange:s,children:[i.jsx(xt,{className:"w-32",children:i.jsx(_t,{})}),i.jsx(bt,{children:m.map(x=>i.jsx(ke,{value:x,children:x},x))})]}),i.jsx(oe,{onClick:d,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(Ct,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function Lje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(dt,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(dt,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(dt,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(dt,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function zje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},s=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(dt,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"主机地址"}),i.jsx(Ce,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"端口号"}),i.jsx(Ce,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"连接模式"}),i.jsxs(St,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"ws",children:"WebSocket (ws)"}),i.jsx(ke,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(ne,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"SSL 证书文件路径"}),i.jsx(Ce,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"SSL 密钥文件路径"}),i.jsx(Ce,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ce,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(oe,{onClick:a,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>s(u),children:i.jsx(Ct,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function Bje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(dt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const Pl=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:ue("w-full caption-bottom text-sm",e),...t})}));Pl.displayName="Table";const Rl=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:ue("[&_tr]:border-b",e),...t}));Rl.displayName="TableHeader";const Dl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:ue("[&_tr:last-child]:border-0",e),...t}));Dl.displayName="TableBody";const qje=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:ue("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));qje.displayName="TableFooter";const Tn=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:ue("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));Tn.displayName="TableRow";const Xe=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:ue("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Xe.displayName="TableHead";const Be=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:ue("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Be.displayName="TableCell";const Fje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:ue("mt-4 text-sm text-muted-foreground",e),...t}));Fje.displayName="TableCaption";var ox="Checkbox",[Uje]=yr(ox),[Hje,RE]=Uje(ox);function Wje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Ta({prop:n,defaultProp:a??!1,onChange:d,caller:ox}),[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useRef(!1),O=j?!!l||!!j.closest("form"):!0,A={checked:g,disabled:s,setChecked:x,control:j,setControl:w,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:E,required:f,defaultChecked:ro(a)?!1:a,isFormControl:O,bubbleInput:b,setBubbleInput:N};return i.jsx(Hje,{scope:t,...A,children:Vje(p)?p(A):r})}var uH="CheckboxTrigger",dH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:s,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=RE(uH,e),w=Ue(a,m),b=y.useRef(d);return y.useEffect(()=>{const N=s?.form;if(N){const E=()=>p(b.current);return N.addEventListener("reset",E),()=>N.removeEventListener("reset",E)}},[s,p]),i.jsx($e.button,{type:"button",role:"checkbox","aria-checked":ro(d)?"mixed":d,"aria-required":f,"data-state":vH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:w,onKeyDown:Ne(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:Ne(n,N=>{p(E=>ro(E)?!0:!E),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});dH.displayName=uH;var DE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(Wje,{__scopeCheckbox:n,checked:a,defaultChecked:s,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(dH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(pH,{__scopeCheckbox:n})]})})});DE.displayName=ox;var fH="CheckboxIndicator",hH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,s=RE(fH,n);return i.jsx(zn,{present:r||ro(s.checked)||s.checked===!0,children:i.jsx($e.span,{"data-state":vH(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});hH.displayName=fH;var mH="CheckboxBubbleInput",pH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:s,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=RE(mH,e),j=Ue(n,x),w=Iy(s),b=Ly(r);y.useEffect(()=>{const E=g;if(!E)return;const O=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(O,"checked").set,k=!a.current;if(w!==s&&C){const T=new Event("click",{bubbles:k});E.indeterminate=ro(s),C.call(E,ro(s)?!1:s),E.dispatchEvent(T)}},[g,w,s,a]);const N=y.useRef(ro(s)?!1:s);return i.jsx($e.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});pH.displayName=mH;function Vje(e){return typeof e=="function"}function ro(e){return e==="indeterminate"}function vH(e){return ro(e)?"indeterminate":e?"checked":"unchecked"}const pr=y.forwardRef(({className:e,...t},n)=>i.jsx(DE,{ref:n,className:ue("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(hH,{className:ue("grid place-content-center text-current"),children:i.jsx(cl,{className:"h-4 w-4"})})}));pr.displayName=DE.displayName;function Gje(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(!1),[L,D]=y.useState(""),[U,V]=y.useState(new Set),[H,G]=y.useState(!1),{toast:$}=xr(),I=y.useRef(null),q=y.useRef(!0);y.useEffect(()=>{Z()},[]);const Z=async()=>{try{r(!0);const be=await eu();t(be.api_providers||[]),f(!1),q.current=!1}catch(be){console.error("加载配置失败:",be)}finally{r(!1)}},ee=async()=>{try{p(!0),ME().catch(()=>{}),x(!0)}catch(be){console.error("重启失败:",be),x(!1),$({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),p(!1)}},F=async()=>{try{s(!0),I.current&&clearTimeout(I.current);const be=await eu();be.api_providers=e,await zg(be),f(!1),$({title:"保存成功",description:"正在重启麦麦..."}),await ee()}catch(be){console.error("保存配置失败:",be),$({title:"保存失败",description:be.message,variant:"destructive"}),s(!1)}},z=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},K=()=>{x(!1),p(!1),$({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},ie=y.useCallback(async be=>{if(!q.current)try{u(!0),await xC("api_providers",be),f(!1)}catch(_e){console.error("自动保存失败:",_e),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!q.current)return f(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{ie(e)},2e3),()=>{I.current&&clearTimeout(I.current)}},[e,ie]);const Q=async()=>{try{s(!0),I.current&&clearTimeout(I.current);const be=await eu();be.api_providers=e,await zg(be),f(!1),$({title:"保存成功",description:"模型提供商配置已保存"})}catch(be){console.error("保存配置失败:",be),$({title:"保存失败",description:be.message,variant:"destructive"})}finally{s(!1)}},he=(be,_e)=>{N(be||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),O(_e),R(!1),w(!0)},ae=async()=>{if(b?.api_key)try{await navigator.clipboard.writeText(b.api_key),$({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{$({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},we=()=>{if(!b)return;const be={...b,max_retry:b.max_retry??2,timeout:b.timeout??30,retry_interval:b.retry_interval??10};if(E!==null){const _e=[...e];_e[E]=be,t(_e)}else t([...e,be]);w(!1),N(null),O(null)},Y=be=>{if(!be&&b){const _e={...b,max_retry:b.max_retry??2,timeout:b.timeout??30,retry_interval:b.retry_interval??10};N(_e)}w(be)},pe=be=>{T(be),C(!0)},je=()=>{if(k!==null){const be=e.filter((_e,rt)=>rt!==k);t(be),$({title:"删除成功",description:"提供商已从列表中移除"})}C(!1),T(null)},X=be=>{const _e=new Set(U);_e.has(be)?_e.delete(be):_e.add(be),V(_e)},Ae=()=>{if(U.size===Ve.length)V(new Set);else{const be=Ve.map((_e,rt)=>e.findIndex(fn=>fn===Ve[rt]));V(new Set(be))}},Oe=()=>{if(U.size===0){$({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}G(!0)},We=()=>{const be=e.filter((_e,rt)=>!U.has(rt));t(be),V(new Set),G(!1),$({title:"批量删除成功",description:`已删除 ${U.size} 个提供商`})},Ve=e.filter(be=>{if(!L)return!0;const _e=L.toLowerCase();return be.name.toLowerCase().includes(_e)||be.base_url.toLowerCase().includes(_e)||be.client_type.toLowerCase().includes(_e)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[U.size>0&&i.jsxs(oe,{onClick:Oe,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Ct,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",U.size,")"]}),i.jsxs(oe,{onClick:()=>he(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(oe,{onClick:Q,disabled:a||l||!d||m,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(lE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:a||l||m,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(oE,{className:"mr-2 h-4 w-4"}),m?"重启中...":d?"保存并重启":"重启麦麦"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重启麦麦?"}),i.jsx(an,{children:d?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:d?F:ee,children:d?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(ix,{children:[i.jsx(Pu,{className:"h-4 w-4"}),i.jsxs(sx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(Gt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"搜索提供商名称、URL 或类型...",value:L,onChange:be=>D(be.target.value),className:"pl-9"})]}),L&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Ve.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Ve.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:L?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):Ve.map((be,_e)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:be.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:be.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>he(be,_e),children:i.jsx(Ru,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>pe(_e),children:i.jsx(Ct,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:be.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:be.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:be.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:be.retry_interval})]})]})]},_e))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:U.size===Ve.length&&Ve.length>0,onCheckedChange:Ae})}),i.jsx(Xe,{children:"名称"}),i.jsx(Xe,{children:"基础URL"}),i.jsx(Xe,{children:"客户端类型"}),i.jsx(Xe,{className:"text-right",children:"最大重试"}),i.jsx(Xe,{className:"text-right",children:"超时(秒)"}),i.jsx(Xe,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:Ve.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:8,className:"text-center text-muted-foreground py-8",children:L?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):Ve.map((be,_e)=>{const rt=e.findIndex(fn=>fn===be);return i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:U.has(rt),onCheckedChange:()=>X(rt)})}),i.jsx(Be,{className:"font-medium",children:be.name}),i.jsx(Be,{className:"max-w-xs truncate",title:be.base_url,children:be.base_url}),i.jsx(Be,{children:be.client_type}),i.jsx(Be,{className:"text-right",children:be.max_retry}),i.jsx(Be,{className:"text-right",children:be.timeout}),i.jsx(Be,{className:"text-right",children:be.retry_interval}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>he(be,rt),children:i.jsx(Ru,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>pe(rt),children:i.jsx(Ct,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},_e)})})]})})]}),i.jsx(sr,{open:j,onOpenChange:Y,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:E!==null?"编辑提供商":"添加提供商"}),i.jsx(gr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"name",children:"名称 *"}),i.jsx(Ce,{id:"name",value:b?.name||"",onChange:be=>N(_e=>_e?{..._e,name:be.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ce,{id:"base_url",value:b?.base_url||"",onChange:be=>N(_e=>_e?{..._e,base_url:be.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ce,{id:"api_key",type:M?"text":"password",value:b?.api_key||"",onChange:be=>N(_e=>_e?{..._e,api_key:be.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:()=>R(!M),title:M?"隐藏密钥":"显示密钥",children:M?i.jsx(nC,{className:"h-4 w-4"}):i.jsx(Ya,{className:"h-4 w-4"})}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:ae,title:"复制密钥",children:i.jsx(eC,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(St,{value:b?.client_type||"openai",onValueChange:be=>N(_e=>_e?{..._e,client_type:be}:null),children:[i.jsx(xt,{id:"client_type",children:i.jsx(_t,{placeholder:"选择客户端类型"})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"openai",children:"OpenAI"}),i.jsx(ke,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ce,{id:"max_retry",type:"number",min:"0",value:b?.max_retry??"",onChange:be=>{const _e=be.target.value===""?null:parseInt(be.target.value);N(rt=>rt?{...rt,max_retry:_e}:null)},placeholder:"默认: 2"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ce,{id:"timeout",type:"number",min:"1",value:b?.timeout??"",onChange:be=>{const _e=be.target.value===""?null:parseInt(be.target.value);N(rt=>rt?{...rt,timeout:_e}:null)},placeholder:"默认: 30"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ce,{id:"retry_interval",type:"number",min:"1",value:b?.retry_interval??"",onChange:be=>{const _e=be.target.value===""?null:parseInt(be.target.value);N(rt=>rt?{...rt,retry_interval:_e}:null)},placeholder:"默认: 10"})]})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>w(!1),children:"取消"}),i.jsx(oe,{onClick:we,children:"保存"})]})]})}),i.jsx(dn,{open:A,onOpenChange:C,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除提供商 "',k!==null?e[k]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:je,children:"删除"})]})]})}),i.jsx(dn,{open:H,onOpenChange:G,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["确定要删除选中的 ",U.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:We,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),g&&i.jsx(PE,{onRestartComplete:z,onRestartFailed:K})]})}var RL=1,Yje=.9,Kje=.8,Xje=.17,f_=.1,h_=.999,Zje=.9999,Qje=.99,Jje=/[\\\/_+.#"@\[\(\{&]/,e1e=/[\\\/_+.#"@\[\(\{&]/g,t1e=/[\s-]/,gH=/[\s-]/g;function bC(e,t,n,r,a,s,l){if(s===t.length)return a===e.length?RL:Qje;var u=`${a},${s}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(s),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=bC(e,t,n,r,f+1,s+1,l),p>m&&(f===a?p*=RL:Jje.test(e.charAt(f-1))?(p*=Kje,x=e.slice(a,f-1).match(e1e),x&&a>0&&(p*=Math.pow(h_,x.length))):t1e.test(e.charAt(f-1))?(p*=Yje,j=e.slice(a,f-1).match(gH),j&&a>0&&(p*=Math.pow(h_,j.length))):(p*=Xje,a>0&&(p*=Math.pow(h_,f-a))),e.charAt(f)!==t.charAt(s)&&(p*=Zje)),(pp&&(p=g*f_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function DL(e){return e.toLowerCase().replace(gH," ")}function n1e(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,bC(e,t,DL(e),DL(t),0,0,{})}var r1e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],bo=r1e.reduce((e,t)=>{const n=$h(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),hf='[cmdk-group=""]',m_='[cmdk-group-items=""]',a1e='[cmdk-group-heading=""]',yH='[cmdk-item=""]',$L=`${yH}:not([aria-disabled="true"])`,wC="cmdk-item-select",Lc="data-value",i1e=(e,t,n)=>n1e(e,t,n),xH=y.createContext(void 0),am=()=>y.useContext(xH),bH=y.createContext(void 0),$E=()=>y.useContext(bH),wH=y.createContext(void 0),jH=y.forwardRef((e,t)=>{let n=zc(()=>{var z,K;return{search:"",value:(K=(z=e.value)!=null?z:e.defaultValue)!=null?K:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=zc(()=>new Set),a=zc(()=>new Map),s=zc(()=>new Map),l=zc(()=>new Set),u=SH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:w=!1,vimBindings:b=!0,...N}=e,E=Gn(),O=Gn(),A=Gn(),C=y.useRef(null),k=v1e();_l(()=>{if(m!==void 0){let z=m.trim();n.current.value=z,T.emit()}},[m]),_l(()=>{k(6,V)},[]);let T=y.useMemo(()=>({subscribe:z=>(l.current.add(z),()=>l.current.delete(z)),snapshot:()=>n.current,setState:(z,K,ie)=>{var Q,he,ae,we;if(!Object.is(n.current[z],K)){if(n.current[z]=K,z==="search")U(),L(),k(1,D);else if(z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Y=document.getElementById(A);Y?Y.focus():(Q=document.getElementById(E))==null||Q.focus()}if(k(7,()=>{var Y;n.current.selectedItemId=(Y=H())==null?void 0:Y.id,T.emit()}),ie||k(5,V),((he=u.current)==null?void 0:he.value)!==void 0){let Y=K??"";(we=(ae=u.current).onValueChange)==null||we.call(ae,Y);return}}T.emit()}},emit:()=>{l.current.forEach(z=>z())}}),[]),M=y.useMemo(()=>({value:(z,K,ie)=>{var Q;K!==((Q=s.current.get(z))==null?void 0:Q.value)&&(s.current.set(z,{value:K,keywords:ie}),n.current.filtered.items.set(z,R(K,ie)),k(2,()=>{L(),T.emit()}))},item:(z,K)=>(r.current.add(z),K&&(a.current.has(K)?a.current.get(K).add(z):a.current.set(K,new Set([z]))),k(3,()=>{U(),L(),n.current.value||D(),T.emit()}),()=>{s.current.delete(z),r.current.delete(z),n.current.filtered.items.delete(z);let ie=H();k(4,()=>{U(),ie?.getAttribute("id")===z&&D(),T.emit()})}),group:z=>(a.current.has(z)||a.current.set(z,new Set),()=>{s.current.delete(z),a.current.delete(z)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:E,inputId:A,labelId:O,listInnerRef:C}),[]);function R(z,K){var ie,Q;let he=(Q=(ie=u.current)==null?void 0:ie.filter)!=null?Q:i1e;return z?he(z,n.current.search,K):0}function L(){if(!n.current.search||u.current.shouldFilter===!1)return;let z=n.current.filtered.items,K=[];n.current.filtered.groups.forEach(Q=>{let he=a.current.get(Q),ae=0;he.forEach(we=>{let Y=z.get(we);ae=Math.max(Y,ae)}),K.push([Q,ae])});let ie=C.current;G().sort((Q,he)=>{var ae,we;let Y=Q.getAttribute("id"),pe=he.getAttribute("id");return((ae=z.get(pe))!=null?ae:0)-((we=z.get(Y))!=null?we:0)}).forEach(Q=>{let he=Q.closest(m_);he?he.appendChild(Q.parentElement===he?Q:Q.closest(`${m_} > *`)):ie.appendChild(Q.parentElement===ie?Q:Q.closest(`${m_} > *`))}),K.sort((Q,he)=>he[1]-Q[1]).forEach(Q=>{var he;let ae=(he=C.current)==null?void 0:he.querySelector(`${hf}[${Lc}="${encodeURIComponent(Q[0])}"]`);ae?.parentElement.appendChild(ae)})}function D(){let z=G().find(ie=>ie.getAttribute("aria-disabled")!=="true"),K=z?.getAttribute(Lc);T.setState("value",K||void 0)}function U(){var z,K,ie,Q;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let he=0;for(let ae of r.current){let we=(K=(z=s.current.get(ae))==null?void 0:z.value)!=null?K:"",Y=(Q=(ie=s.current.get(ae))==null?void 0:ie.keywords)!=null?Q:[],pe=R(we,Y);n.current.filtered.items.set(ae,pe),pe>0&&he++}for(let[ae,we]of a.current)for(let Y of we)if(n.current.filtered.items.get(Y)>0){n.current.filtered.groups.add(ae);break}n.current.filtered.count=he}function V(){var z,K,ie;let Q=H();Q&&(((z=Q.parentElement)==null?void 0:z.firstChild)===Q&&((ie=(K=Q.closest(hf))==null?void 0:K.querySelector(a1e))==null||ie.scrollIntoView({block:"nearest"})),Q.scrollIntoView({block:"nearest"}))}function H(){var z;return(z=C.current)==null?void 0:z.querySelector(`${yH}[aria-selected="true"]`)}function G(){var z;return Array.from(((z=C.current)==null?void 0:z.querySelectorAll($L))||[])}function $(z){let K=G()[z];K&&T.setState("value",K.getAttribute(Lc))}function I(z){var K;let ie=H(),Q=G(),he=Q.findIndex(we=>we===ie),ae=Q[he+z];(K=u.current)!=null&&K.loop&&(ae=he+z<0?Q[Q.length-1]:he+z===Q.length?Q[0]:Q[he+z]),ae&&T.setState("value",ae.getAttribute(Lc))}function q(z){let K=H(),ie=K?.closest(hf),Q;for(;ie&&!Q;)ie=z>0?m1e(ie,hf):p1e(ie,hf),Q=ie?.querySelector($L);Q?T.setState("value",Q.getAttribute(Lc)):I(z)}let Z=()=>$(G().length-1),ee=z=>{z.preventDefault(),z.metaKey?Z():z.altKey?q(1):I(1)},F=z=>{z.preventDefault(),z.metaKey?$(0):z.altKey?q(-1):I(-1)};return y.createElement(bo.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:z=>{var K;(K=N.onKeyDown)==null||K.call(N,z);let ie=z.nativeEvent.isComposing||z.keyCode===229;if(!(z.defaultPrevented||ie))switch(z.key){case"n":case"j":{b&&z.ctrlKey&&ee(z);break}case"ArrowDown":{ee(z);break}case"p":case"k":{b&&z.ctrlKey&&F(z);break}case"ArrowUp":{F(z);break}case"Home":{z.preventDefault(),$(0);break}case"End":{z.preventDefault(),Z();break}case"Enter":{z.preventDefault();let Q=H();if(Q){let he=new Event(wC);Q.dispatchEvent(he)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:y1e},d),lx(e,z=>y.createElement(bH.Provider,{value:T},y.createElement(xH.Provider,{value:M},z))))}),s1e=y.forwardRef((e,t)=>{var n,r;let a=Gn(),s=y.useRef(null),l=y.useContext(wH),u=am(),d=SH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;_l(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=_H(a,s,[e.value,e.children,s],e.keywords),p=$E(),g=co(k=>k.value&&k.value===m.current),x=co(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=s.current;if(!(!k||e.disabled))return k.addEventListener(wC,j),()=>k.removeEventListener(wC,j)},[x,e.onSelect,e.disabled]);function j(){var k,T;w(),(T=(k=d.current).onSelect)==null||T.call(k,m.current)}function w(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:b,value:N,onSelect:E,forceMount:O,keywords:A,...C}=e;return y.createElement(bo.div,{ref:zr(s,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!g,"data-disabled":!!b,"data-selected":!!g,onPointerMove:b||u.getDisablePointerSelection()?void 0:w,onClick:b?void 0:j},e.children)}),o1e=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,l=Gn(),u=y.useRef(null),d=y.useRef(null),f=Gn(),m=am(),p=co(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);_l(()=>m.group(l),[]),_H(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(bo.div,{ref:zr(u,t),...s,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),lx(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(wH.Provider,{value:g},x))))}),l1e=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),s=co(l=>!l.search);return!n&&!s?null:y.createElement(bo.div,{ref:zr(a,t),...r,"cmdk-separator":"",role:"separator"})}),c1e=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,s=$E(),l=co(f=>f.search),u=co(f=>f.selectedItemId),d=am();return y.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),y.createElement(bo.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||s.setState("search",f.target.value),n?.(f.target.value)}})}),u1e=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=y.useRef(null),l=y.useRef(null),u=co(f=>f.selectedItemId),d=am();return y.useEffect(()=>{if(l.current&&s.current){let f=l.current,m=s.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(bo.div,{ref:zr(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},lx(e,f=>y.createElement("div",{ref:zr(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),d1e=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:l,...u}=e;return y.createElement(vE,{open:n,onOpenChange:r},y.createElement(gE,{container:l},y.createElement(Hy,{"cmdk-overlay":"",className:a}),y.createElement(Wy,{"aria-label":e.label,"cmdk-dialog":"",className:s},y.createElement(jH,{ref:t,...u}))))}),f1e=y.forwardRef((e,t)=>co(n=>n.filtered.count===0)?y.createElement(bo.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),h1e=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return y.createElement(bo.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},lx(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Hr=Object.assign(jH,{List:u1e,Item:s1e,Input:c1e,Group:o1e,Separator:l1e,Dialog:d1e,Empty:f1e,Loading:h1e});function m1e(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function p1e(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function SH(e){let t=y.useRef(e);return _l(()=>{t.current=e}),t}var _l=typeof window>"u"?y.useEffect:y.useLayoutEffect;function zc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function co(e){let t=$E(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function _H(e,t,n,r=[]){let a=y.useRef(),s=am();return _l(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());s.value(e,u,d),(l=t.current)==null||l.setAttribute(Lc,u),a.current=u}),a}var v1e=()=>{let[e,t]=y.useState(),n=zc(()=>new Map);return _l(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function g1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function lx({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(g1e(t),{ref:t.ref},n(t.props.children)):n(t)}var y1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const NH=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr,{ref:n,className:ue("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));NH.displayName=Hr.displayName;const CH=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Br,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Hr.Input,{ref:n,className:ue("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));CH.displayName=Hr.Input.displayName;const OH=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr.List,{ref:n,className:ue("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));OH.displayName=Hr.List.displayName;const EH=y.forwardRef((e,t)=>i.jsx(Hr.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));EH.displayName=Hr.Empty.displayName;const AH=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr.Group,{ref:n,className:ue("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));AH.displayName=Hr.Group.displayName;const x1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr.Separator,{ref:n,className:ue("-mx-1 h-px bg-border",e),...t}));x1e.displayName=Hr.Separator.displayName;const TH=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr.Item,{ref:n,className:ue("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));TH.displayName=Hr.Item.displayName;function b1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:s}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(oo,{open:l,onOpenChange:u,children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",role:"combobox","aria-expanded":l,className:ue("w-full justify-between min-h-10 h-auto",s),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Ht,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Zh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(zve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(hs,{className:"w-full p-0",align:"start",children:i.jsxs(NH,{children:[i.jsx(CH,{placeholder:"搜索...",className:"h-9"}),i.jsxs(OH,{children:[i.jsx(EH,{children:a}),i.jsx(AH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(TH,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:ue("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(cl,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function w1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,s]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(!1),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(null),[L,D]=y.useState(!1),[U,V]=y.useState(null),[H,G]=y.useState(""),[$,I]=y.useState(new Set),[q,Z]=y.useState(!1),{toast:ee}=xr(),F=y.useRef(null),z=y.useRef(null),K=y.useRef(!0);y.useEffect(()=>{ie()},[]);const ie=async()=>{try{f(!0);const re=await eu(),Se=re.models||[];t(Se),s(Se.map(Or=>Or.name));const ut=re.api_providers||[];r(ut.map(Or=>Or.name)),u(re.model_task_config||null),w(!1),K.current=!1}catch(re){console.error("加载配置失败:",re)}finally{f(!1)}},Q=async()=>{try{N(!0),ME().catch(()=>{}),O(!0)}catch(re){console.error("重启失败:",re),O(!1),ee({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),N(!1)}},he=async()=>{try{p(!0),F.current&&clearTimeout(F.current),z.current&&clearTimeout(z.current);const re=await eu();re.models=e,re.model_task_config=l,await zg(re),w(!1),ee({title:"保存成功",description:"正在重启麦麦..."}),await Q()}catch(re){console.error("保存配置失败:",re),ee({title:"保存失败",description:re.message,variant:"destructive"}),p(!1)}},ae=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},we=()=>{O(!1),N(!1),ee({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},Y=y.useCallback(async re=>{if(!K.current)try{x(!0),await xC("models",re),w(!1)}catch(Se){console.error("自动保存模型列表失败:",Se),w(!0)}finally{x(!1)}},[]),pe=y.useCallback(async re=>{if(!K.current)try{x(!0),await xC("model_task_config",re),w(!1)}catch(Se){console.error("自动保存任务配置失败:",Se),w(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!K.current)return w(!0),F.current&&clearTimeout(F.current),F.current=setTimeout(()=>{Y(e)},2e3),()=>{F.current&&clearTimeout(F.current)}},[e,Y]),y.useEffect(()=>{if(!(K.current||!l))return w(!0),z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{pe(l)},2e3),()=>{z.current&&clearTimeout(z.current)}},[l,pe]);const je=async()=>{try{p(!0),F.current&&clearTimeout(F.current),z.current&&clearTimeout(z.current);const re=await eu();re.models=e,re.model_task_config=l,await zg(re),w(!1),ee({title:"保存成功",description:"模型配置已保存"}),await ie()}catch(re){console.error("保存配置失败:",re),ee({title:"保存失败",description:re.message,variant:"destructive"})}finally{p(!1)}},X=(re,Se)=>{T(re||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),R(Se),C(!0)},Ae=()=>{if(!k)return;const re={...k,price_in:k.price_in??0,price_out:k.price_out??0};let Se;M!==null?(Se=[...e],Se[M]=re):Se=[...e,re],t(Se),s(Se.map(ut=>ut.name)),C(!1),T(null),R(null)},Oe=re=>{if(!re&&k){const Se={...k,price_in:k.price_in??0,price_out:k.price_out??0};T(Se)}C(re)},We=re=>{V(re),D(!0)},Ve=()=>{if(U!==null){const re=e.filter((Se,ut)=>ut!==U);t(re),s(re.map(Se=>Se.name)),ee({title:"删除成功",description:"模型已从列表中移除"})}D(!1),V(null)},be=re=>{const Se=new Set($);Se.has(re)?Se.delete(re):Se.add(re),I(Se)},_e=()=>{if($.size===zt.length)I(new Set);else{const re=zt.map((Se,ut)=>e.findIndex(Or=>Or===zt[ut]));I(new Set(re))}},rt=()=>{if($.size===0){ee({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}Z(!0)},fn=()=>{const re=e.filter((Se,ut)=>!$.has(ut));t(re),s(re.map(Se=>Se.name)),I(new Set),Z(!1),ee({title:"批量删除成功",description:`已删除 ${$.size} 个模型`})},Tt=(re,Se,ut)=>{l&&u({...l,[re]:{...l[re],[Se]:ut}})},zt=e.filter(re=>{if(!H)return!0;const Se=H.toLowerCase();return re.name.toLowerCase().includes(Se)||re.model_identifier.toLowerCase().includes(Se)||re.api_provider.toLowerCase().includes(Se)}),at=re=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(ut=>ut.includes(re)):!1;return d?i.jsx(Gt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:je,disabled:m||g||!j||b,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(lE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:m||g||b,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(oE,{className:"mr-2 h-4 w-4"}),b?"重启中...":j?"保存并重启":"重启麦麦"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重启麦麦?"}),i.jsx(an,{children:j?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:j?he:Q,children:j?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(ix,{children:[i.jsx(Pu,{className:"h-4 w-4"}),i.jsxs(sx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(hl,{defaultValue:"models",className:"w-full",children:[i.jsxs(ao,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Lt,{value:"models",children:"模型配置"}),i.jsx(Lt,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(vn,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[$.size>0&&i.jsxs(oe,{onClick:rt,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Ct,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",$.size,")"]}),i.jsxs(oe,{onClick:()=>X(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"搜索模型名称、标识符或提供商...",value:H,onChange:re=>G(re.target.value),className:"pl-9"})]}),H&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",zt.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:zt.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:H?"未找到匹配的模型":"暂无模型配置"}):zt.map((re,Se)=>{const ut=at(re.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:re.name}),i.jsx(Ht,{variant:ut?"default":"secondary",className:ut?"bg-green-600 hover:bg-green-700":"",children:ut?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:re.model_identifier,children:re.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>X(re,Se),children:i.jsx(Ru,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>We(Se),children:i.jsx(Ct,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:re.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:re.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",re.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",re.price_out,"/M"]})]})]})]},Se)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:$.size===zt.length&&zt.length>0,onCheckedChange:_e})}),i.jsx(Xe,{className:"w-24",children:"使用状态"}),i.jsx(Xe,{children:"模型名称"}),i.jsx(Xe,{children:"模型标识符"}),i.jsx(Xe,{children:"提供商"}),i.jsx(Xe,{className:"text-right",children:"输入价格"}),i.jsx(Xe,{className:"text-right",children:"输出价格"}),i.jsx(Xe,{className:"text-center",children:"强制流式"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:zt.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:9,className:"text-center text-muted-foreground py-8",children:H?"未找到匹配的模型":"暂无模型配置"})}):zt.map((re,Se)=>{const ut=e.findIndex(bs=>bs===re),Or=at(re.name);return i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:$.has(ut),onCheckedChange:()=>be(ut)})}),i.jsx(Be,{children:i.jsx(Ht,{variant:Or?"default":"secondary",className:Or?"bg-green-600 hover:bg-green-700":"",children:Or?"已使用":"未使用"})}),i.jsx(Be,{className:"font-medium",children:re.name}),i.jsx(Be,{className:"max-w-xs truncate",title:re.model_identifier,children:re.model_identifier}),i.jsx(Be,{children:re.api_provider}),i.jsxs(Be,{className:"text-right",children:["¥",re.price_in,"/M"]}),i.jsxs(Be,{className:"text-right",children:["¥",re.price_out,"/M"]}),i.jsx(Be,{className:"text-center",children:re.force_stream_mode?"是":"否"}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>X(re,ut),children:i.jsx(Ru,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>We(ut),children:i.jsx(Ct,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Se)})})]})})]}),i.jsxs(vn,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx(La,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(re,Se)=>Tt("utils",re,Se)}),i.jsx(La,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(re,Se)=>Tt("utils_small",re,Se)}),i.jsx(La,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(re,Se)=>Tt("tool_use",re,Se)}),i.jsx(La,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(re,Se)=>Tt("replyer",re,Se)}),i.jsx(La,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(re,Se)=>Tt("planner",re,Se)}),i.jsx(La,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(re,Se)=>Tt("vlm",re,Se),hideTemperature:!0}),i.jsx(La,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(re,Se)=>Tt("voice",re,Se),hideTemperature:!0,hideMaxTokens:!0}),i.jsx(La,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(re,Se)=>Tt("embedding",re,Se),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx(La,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(re,Se)=>Tt("lpmm_entity_extract",re,Se)}),i.jsx(La,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(re,Se)=>Tt("lpmm_rdf_build",re,Se)}),i.jsx(La,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(re,Se)=>Tt("lpmm_qa",re,Se)})]})]})]})]}),i.jsx(sr,{open:A,onOpenChange:Oe,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:M!==null?"编辑模型":"添加模型"}),i.jsx(gr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ce,{id:"model_name",value:k?.name||"",onChange:re=>T(Se=>Se?{...Se,name:re.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ce,{id:"model_identifier",value:k?.model_identifier||"",onChange:re=>T(Se=>Se?{...Se,model_identifier:re.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(St,{value:k?.api_provider||"",onValueChange:re=>T(Se=>Se?{...Se,api_provider:re}:null),children:[i.jsx(xt,{id:"api_provider",children:i.jsx(_t,{placeholder:"选择提供商"})}),i.jsx(bt,{children:n.map(re=>i.jsx(ke,{value:re,children:re},re))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ce,{id:"price_in",type:"number",step:"0.1",min:"0",value:k?.price_in??"",onChange:re=>{const Se=re.target.value===""?null:parseFloat(re.target.value);T(ut=>ut?{...ut,price_in:Se}:null)},placeholder:"默认: 0"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ce,{id:"price_out",type:"number",step:"0.1",min:"0",value:k?.price_out??"",onChange:re=>{const Se=re.target.value===""?null:parseFloat(re.target.value);T(ut=>ut?{...ut,price_out:Se}:null)},placeholder:"默认: 0"})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"force_stream_mode",checked:k?.force_stream_mode||!1,onCheckedChange:re=>T(Se=>Se?{...Se,force_stream_mode:re}:null)}),i.jsx(ne,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>C(!1),children:"取消"}),i.jsx(oe,{onClick:Ae,children:"保存"})]})]})}),i.jsx(dn,{open:L,onOpenChange:D,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除模型 "',U!==null?e[U]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:Ve,children:"删除"})]})]})}),i.jsx(dn,{open:q,onOpenChange:Z,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["确定要删除选中的 ",$.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:fn,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),E&&i.jsx(PE,{onRestartComplete:ae,onRestartFailed:we})]})})}function La({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:s=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"模型列表"}),i.jsx(b1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!s&&i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{children:"温度"}),i.jsx(Ce,{type:"number",step:"0.1",min:"0",max:"1",value:n.temperature??.3,onChange:d=>{const f=parseFloat(d.target.value);!isNaN(f)&&f>=0&&f<=1&&a("temperature",f)},className:"w-20 h-8 text-sm"})]}),i.jsx(Gy,{value:[n.temperature??.3],onValueChange:d=>a("temperature",d[0]),min:0,max:1,step:.1,className:"w-full"})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"最大 Token"}),i.jsx(Ce,{type:"number",step:"1",min:"1",value:n.max_tokens??1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const xs="/api/webui/emoji";async function j1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await Ze(`${xs}/list?${t}`,{headers:st()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function S1e(e){const t=await Ze(`${xs}/${e}`,{headers:st()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function _1e(e,t){const n=await Ze(`${xs}/${e}`,{method:"PATCH",headers:st(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function N1e(e){const t=await Ze(`${xs}/${e}`,{method:"DELETE",headers:st()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function C1e(){const e=await Ze(`${xs}/stats/summary`,{headers:st()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function O1e(e){const t=await Ze(`${xs}/${e}/register`,{method:"POST",headers:st()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function E1e(e){const t=await Ze(`${xs}/${e}/ban`,{method:"POST",headers:st()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function jC(e){const t=localStorage.getItem("access-token");return`${xs}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}async function A1e(e){const t=await Ze(`${xs}/batch/delete`,{method:"POST",headers:st(),body:JSON.stringify({emoji_ids:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"批量删除失败")}return t.json()}function T1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,s]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m,p]=y.useState(20),[g,x]=y.useState(""),[j,w]=y.useState("all"),[b,N]=y.useState("all"),[E,O]=y.useState("all"),[A,C]=y.useState(null),[k,T]=y.useState(!1),[M,R]=y.useState(!1),[L,D]=y.useState(!1),[U,V]=y.useState(new Set),[H,G]=y.useState(!1),[$,I]=y.useState(""),{toast:q}=xr(),Z=y.useCallback(async()=>{try{s(!0);const X=await j1e({page:l,page_size:m,search:g||void 0,is_registered:j==="all"?void 0:j==="registered",is_banned:b==="all"?void 0:b==="banned",format:E==="all"?void 0:E,sort_by:"usage_count",sort_order:"desc"});t(X.data),f(X.total)}catch(X){const Ae=X instanceof Error?X.message:"加载表情包列表失败";q({title:"错误",description:Ae,variant:"destructive"})}finally{s(!1)}},[l,m,g,j,b,E,q]),ee=async()=>{try{const X=await C1e();r(X.data)}catch(X){console.error("加载统计数据失败:",X)}};y.useEffect(()=>{Z()},[Z]),y.useEffect(()=>{ee()},[]);const F=async X=>{try{const Ae=await S1e(X.id);C(Ae.data),T(!0)}catch(Ae){const Oe=Ae instanceof Error?Ae.message:"加载详情失败";q({title:"错误",description:Oe,variant:"destructive"})}},z=X=>{C(X),R(!0)},K=X=>{C(X),D(!0)},ie=async()=>{if(A)try{await N1e(A.id),q({title:"成功",description:"表情包已删除"}),D(!1),C(null),Z(),ee()}catch(X){const Ae=X instanceof Error?X.message:"删除失败";q({title:"错误",description:Ae,variant:"destructive"})}},Q=async X=>{try{await O1e(X.id),q({title:"成功",description:"表情包已注册"}),Z(),ee()}catch(Ae){const Oe=Ae instanceof Error?Ae.message:"注册失败";q({title:"错误",description:Oe,variant:"destructive"})}},he=async X=>{try{await E1e(X.id),q({title:"成功",description:"表情包已封禁"}),Z(),ee()}catch(Ae){const Oe=Ae instanceof Error?Ae.message:"封禁失败";q({title:"错误",description:Oe,variant:"destructive"})}},ae=X=>{const Ae=new Set(U);Ae.has(X)?Ae.delete(X):Ae.add(X),V(Ae)},we=()=>{U.size===e.length&&e.length>0?V(new Set):V(new Set(e.map(X=>X.id)))},Y=async()=>{try{const X=await A1e(Array.from(U));q({title:"批量删除完成",description:X.message}),V(new Set),G(!1),Z(),ee()}catch(X){q({title:"批量删除失败",description:X instanceof Error?X.message:"批量删除失败",variant:"destructive"})}},pe=()=>{const X=parseInt($),Ae=Math.ceil(d/m);X>=1&&X<=Ae?(u(X),I("")):q({title:"无效的页码",description:`请输入1-${Ae}之间的页码`,variant:"destructive"})},je=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Gt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(Ke,{children:i.jsxs(gt,{className:"pb-2",children:[i.jsx(Wn,{children:"总数"}),i.jsx(yt,{className:"text-2xl",children:n.total})]})}),i.jsx(Ke,{children:i.jsxs(gt,{className:"pb-2",children:[i.jsx(Wn,{children:"已注册"}),i.jsx(yt,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(Ke,{children:i.jsxs(gt,{className:"pb-2",children:[i.jsx(Wn,{children:"已封禁"}),i.jsx(yt,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(Ke,{children:i.jsxs(gt,{className:"pb-2",children:[i.jsx(Wn,{children:"未注册"}),i.jsx(yt,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(Ke,{children:[i.jsx(gt,{children:i.jsxs(yt,{className:"flex items-center gap-2",children:[i.jsx(rC,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(Pt,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Br,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"描述或哈希值...",value:g,onChange:X=>{x(X.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"注册状态"}),i.jsxs(St,{value:j,onValueChange:X=>{w(X),u(1)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部"}),i.jsx(ke,{value:"registered",children:"已注册"}),i.jsx(ke,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"封禁状态"}),i.jsxs(St,{value:b,onValueChange:X=>{N(X),u(1)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部"}),i.jsx(ke,{value:"banned",children:"已封禁"}),i.jsx(ke,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"格式"}),i.jsxs(St,{value:E,onValueChange:X=>{O(X),u(1)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部"}),je.map(X=>i.jsxs(ke,{value:X,children:[X.toUpperCase()," (",n?.formats[X],")"]},X))]})]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 pt-4 border-t",children:[i.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:U.size>0&&i.jsxs("span",{children:["已选择 ",U.size," 个表情包"]})}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ne,{htmlFor:"emoji-page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),i.jsxs(St,{value:m.toString(),onValueChange:X=>{p(parseInt(X)),u(1),V(new Set)},children:[i.jsx(xt,{id:"emoji-page-size",className:"w-20",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"10",children:"10"}),i.jsx(ke,{value:"20",children:"20"}),i.jsx(ke,{value:"50",children:"50"}),i.jsx(ke,{value:"100",children:"100"})]})]}),U.size>0&&i.jsxs(i.Fragment,{children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>V(new Set),children:"取消选择"}),i.jsxs(oe,{variant:"destructive",size:"sm",onClick:()=>G(!0),children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]}),i.jsx("div",{className:"flex justify-end pt-4 border-t",children:i.jsxs(oe,{variant:"outline",size:"sm",onClick:Z,disabled:a,children:[i.jsx(os,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"表情包列表"}),i.jsxs(Wn,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:e.length>0&&U.size===e.length,onCheckedChange:we,"aria-label":"全选"})}),i.jsx(Xe,{className:"w-16",children:"预览"}),i.jsx(Xe,{children:"描述"}),i.jsx(Xe,{children:"格式"}),i.jsx(Xe,{children:"情绪标签"}),i.jsx(Xe,{className:"text-center",children:"状态"}),i.jsx(Xe,{className:"text-right",children:"使用次数"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:e.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(X=>i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:U.has(X.id),onCheckedChange:()=>ae(X.id),"aria-label":`选择 ${X.description}`})}),i.jsx(Be,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:jC(X.id),alt:X.description||"表情包",className:"w-full h-full object-cover",onError:Ae=>{const Oe=Ae.target;Oe.style.display="none";const We=Oe.parentElement;We&&(We.innerHTML='')}})})}),i.jsx(Be,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:X.description||"无描述",children:X.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[X.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Be,{children:i.jsx(Ht,{variant:"outline",children:X.format.toUpperCase()})}),i.jsx(Be,{children:i.jsx(IL,{emotions:X.emotion})}),i.jsx(Be,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[X.is_registered&&i.jsxs(Ht,{variant:"default",className:"bg-green-600",children:[i.jsx(Dr,{className:"h-3 w-3 mr-1"}),"已注册"]}),X.is_banned&&i.jsxs(Ht,{variant:"destructive",children:[i.jsx(JN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Be,{className:"text-right font-mono",children:X.usage_count}),i.jsx(Be,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>F(X),children:[i.jsx(Pu,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>z(X),children:[i.jsx(Du,{className:"h-4 w-4 mr-1"}),"编辑"]}),!X.is_registered&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>Q(X),className:"text-green-600 hover:text-green-700",children:[i.jsx(Dr,{className:"h-4 w-4 mr-1"}),"注册"]}),!X.is_banned&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>he(X),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(JI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>K(X),className:"text-red-600 hover:text-red-700",children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},X.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(X=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:jC(X.id),alt:X.description||"表情包",className:"w-full h-full object-cover",onError:Ae=>{const Oe=Ae.target;Oe.style.display="none";const We=Oe.parentElement;We&&(We.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:X.description||"无描述",children:X.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[X.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Ht,{variant:"outline",className:"text-xs flex-shrink-0",children:X.format.toUpperCase()}),X.is_registered&&i.jsxs(Ht,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Dr,{className:"h-3 w-3 mr-1"}),"已注册"]}),X.is_banned&&i.jsxs(Ht,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(JN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",X.usage_count]})]}),X.emotion&&X.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(IL,{emotions:X.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>F(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Pu,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>z(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Du,{className:"h-3 w-3 mr-1"}),"编辑"]}),!X.is_registered&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>Q(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Dr,{className:"h-3 w-3 mr-1"}),"注册"]}),!X.is_banned&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>he(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(JI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>K(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(Ct,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},X.id))}),d>0&&i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(1),disabled:l===1,className:"hidden sm:flex",children:i.jsx(aE,{className:"h-4 w-4"})}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(X=>Math.max(1,X-1)),disabled:l===1,children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-1"}),i.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ce,{type:"number",value:$,onChange:X=>I(X.target.value),onKeyDown:X=>X.key==="Enter"&&pe(),placeholder:l.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(d/m)}),i.jsx(oe,{variant:"outline",size:"sm",onClick:pe,disabled:!$,className:"h-8",children:"跳转"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(X=>X+1),disabled:l>=Math.ceil(d/m),children:[i.jsx("span",{className:"hidden sm:inline",children:"下一页"}),i.jsx(Kh,{className:"h-4 w-4 sm:ml-1"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(Math.ceil(d/m)),disabled:l>=Math.ceil(d/m),className:"hidden sm:flex",children:i.jsx(iE,{className:"h-4 w-4"})})]})]})]})]}),i.jsx(k1e,{emoji:A,open:k,onOpenChange:T}),i.jsx(M1e,{emoji:A,open:M,onOpenChange:R,onSuccess:()=>{Z(),ee()}})]})}),i.jsx(dn,{open:H,onOpenChange:G,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["你确定要删除选中的 ",U.size," 个表情包吗?此操作不可撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:Y,children:"确认删除"})]})]})}),i.jsx(sr,{open:L,onOpenChange:D,children:i.jsxs(Kn,{children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"确认删除"}),i.jsx(gr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>D(!1),children:"取消"}),i.jsx(oe,{variant:"destructive",onClick:ie,children:"删除"})]})]})})]})}function k1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsx(Xn,{children:i.jsx(Zn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:jC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const s=a.target;s.style.display="none";const l=s.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Ht,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:(()=>{const a=e.emotion?e.emotion.split(/[,,]/).map(s=>s.trim()).filter(Boolean):[];return a.length>0?a.map((s,l)=>i.jsx(Ht,{variant:"secondary",children:s},l)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})()})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Ht,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Ht,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Ht,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function M1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=xr();y.useEffect(()=>{e&&(s(e.description||""),u(e.emotion||""),f(e.is_registered),p(e.is_banned))},[e]);const w=async()=>{if(e)try{x(!0);const b=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean).join(",");await _1e(e.id,{description:a||void 0,emotion:b||void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(b){const N=b instanceof Error?b.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表情包"}),i.jsx(gr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(ne,{children:"描述"}),i.jsx(Qt,{value:a,onChange:b=>s(b.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(ne,{children:"情绪标签"}),i.jsx(Ce,{value:l,onChange:b=>u(b.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(pr,{id:"is_registered",checked:d,onCheckedChange:b=>f(b===!0)}),i.jsx(ne,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(pr,{id:"is_banned",checked:m,onCheckedChange:b=>p(b===!0)}),i.jsx(ne,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:w,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function IL({emotions:e}){const t=e?e.split(/[,,]/).map(s=>s.trim()).filter(Boolean):[];if(t.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const n=(s,l=6)=>s.length<=l?s:s.slice(0,l)+"...",r=t.slice(0,3),a=t.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[r.map((s,l)=>i.jsx(Ht,{variant:"secondary",className:"text-xs flex-shrink-0",title:s,children:n(s)},l)),a>0&&i.jsxs(Ht,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${a} 个标签: ${t.slice(3).join(", ")}`,children:["+",a]})]})}const $l="/api/webui/expression";async function P1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await Ze(`${$l}/list?${t}`,{headers:st()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function R1e(e){const t=await Ze(`${$l}/${e}`,{headers:st()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function D1e(e){const t=await Ze(`${$l}/`,{method:"POST",headers:st(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function $1e(e,t){const n=await Ze(`${$l}/${e}`,{method:"PATCH",headers:st(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function I1e(e){const t=await Ze(`${$l}/${e}`,{method:"DELETE",headers:st()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function L1e(e){const t=await Ze(`${$l}/batch/delete`,{method:"POST",headers:st(),body:JSON.stringify({ids:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"批量删除表达方式失败")}return t.json()}async function z1e(){const e=await Ze(`${$l}/stats/summary`,{headers:st()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function B1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d,f]=y.useState(20),[m,p]=y.useState(""),[g,x]=y.useState(null),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(!1),[A,C]=y.useState(null),[k,T]=y.useState(new Set),[M,R]=y.useState(!1),[L,D]=y.useState(""),[U,V]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:H}=xr(),G=async()=>{try{r(!0);const Q=await P1e({page:l,page_size:d,search:m||void 0});t(Q.data),s(Q.total)}catch(Q){H({title:"加载失败",description:Q instanceof Error?Q.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},$=async()=>{try{const Q=await z1e();V(Q.data)}catch(Q){console.error("加载统计数据失败:",Q)}};y.useEffect(()=>{G(),$()},[l,d,m]);const I=async Q=>{try{const he=await R1e(Q.id);x(he.data),w(!0)}catch(he){H({title:"加载详情失败",description:he instanceof Error?he.message:"无法加载表达方式详情",variant:"destructive"})}},q=Q=>{x(Q),N(!0)},Z=async Q=>{try{await I1e(Q.id),H({title:"删除成功",description:`已删除表达方式: ${Q.situation}`}),C(null),G(),$()}catch(he){H({title:"删除失败",description:he instanceof Error?he.message:"无法删除表达方式",variant:"destructive"})}},ee=Q=>{const he=new Set(k);he.has(Q)?he.delete(Q):he.add(Q),T(he)},F=()=>{k.size===e.length&&e.length>0?T(new Set):T(new Set(e.map(Q=>Q.id)))},z=async()=>{try{await L1e(Array.from(k)),H({title:"批量删除成功",description:`已删除 ${k.size} 个表达方式`}),T(new Set),R(!1),G(),$()}catch(Q){H({title:"批量删除失败",description:Q instanceof Error?Q.message:"无法批量删除表达方式",variant:"destructive"})}},K=()=>{const Q=parseInt(L),he=Math.ceil(a/d);Q>=1&&Q<=he?(u(Q),D("")):H({title:"无效的页码",description:`请输入1-${he}之间的页码`,variant:"destructive"})},ie=Q=>Q?new Date(Q*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Xh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(oe,{onClick:()=>O(!0),className:"gap-2",children:[i.jsx(ir,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Gt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:U.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:U.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:U.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(ne,{htmlFor:"search",children:"搜索"}),i.jsx("div",{className:"flex flex-col sm:flex-row gap-2 mt-1.5",children:i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Br,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{id:"search",placeholder:"搜索情境、风格或上下文...",value:m,onChange:Q=>p(Q.target.value),className:"pl-9"})]})}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[i.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:k.size>0&&i.jsxs("span",{children:["已选择 ",k.size," 个表达方式"]})}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ne,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),i.jsxs(St,{value:d.toString(),onValueChange:Q=>{f(parseInt(Q)),u(1),T(new Set)},children:[i.jsx(xt,{id:"page-size",className:"w-20",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"10",children:"10"}),i.jsx(ke,{value:"20",children:"20"}),i.jsx(ke,{value:"50",children:"50"}),i.jsx(ke,{value:"100",children:"100"})]})]}),k.size>0&&i.jsxs(i.Fragment,{children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>T(new Set),children:"取消选择"}),i.jsxs(oe,{variant:"destructive",size:"sm",onClick:()=>R(!0),children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:k.size===e.length&&e.length>0,onCheckedChange:F})}),i.jsx(Xe,{children:"情境"}),i.jsx(Xe,{children:"风格"}),i.jsx(Xe,{children:"聊天ID"}),i.jsx(Xe,{children:"最后活跃"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:n?i.jsx(Tn,{children:i.jsx(Be,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(Q=>i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:k.has(Q.id),onCheckedChange:()=>ee(Q.id)})}),i.jsx(Be,{className:"font-medium max-w-xs truncate",children:Q.situation}),i.jsx(Be,{className:"max-w-xs truncate",children:Q.style}),i.jsx(Be,{className:"font-mono text-sm",children:Q.chat_id}),i.jsx(Be,{className:"text-sm text-muted-foreground",children:ie(Q.last_active_time)}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>I(Q),children:i.jsx(Ya,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>q(Q),children:i.jsx(Du,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>C(Q),children:i.jsx(Ct,{className:"h-4 w-4 text-destructive"})})]})})]},Q.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(Q=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(pr,{checked:k.has(Q.id),onCheckedChange:()=>ee(Q.id),className:"mt-1"}),i.jsxs("div",{className:"min-w-0 flex-1 overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:Q.situation,children:Q.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:Q.style,children:Q.style})]})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:Q.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:ie(Q.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>I(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ya,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>q(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Du,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>C(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Ct,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},Q.id))}),a>0&&i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(1),disabled:l===1,className:"hidden sm:flex",children:i.jsx(aE,{className:"h-4 w-4"})}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-1"}),i.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ce,{type:"number",value:L,onChange:Q=>D(Q.target.value),onKeyDown:Q=>Q.key==="Enter"&&K(),placeholder:l.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(a/d)}),i.jsx(oe,{variant:"outline",size:"sm",onClick:K,disabled:!L,className:"h-8",children:"跳转"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:[i.jsx("span",{className:"hidden sm:inline",children:"下一页"}),i.jsx(Kh,{className:"h-4 w-4 sm:ml-1"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(Math.ceil(a/d)),disabled:l>=Math.ceil(a/d),className:"hidden sm:flex",children:i.jsx(iE,{className:"h-4 w-4"})})]})]})]})]})}),i.jsx(q1e,{expression:g,open:j,onOpenChange:w}),i.jsx(F1e,{open:E,onOpenChange:O,onSuccess:()=>{G(),$(),O(!1)}}),i.jsx(U1e,{expression:g,open:b,onOpenChange:N,onSuccess:()=>{G(),$(),N(!1)}}),i.jsx(dn,{open:!!A,onOpenChange:()=>C(null),children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除表达方式 "',A?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>A&&Z(A),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),i.jsx(H1e,{open:M,onOpenChange:R,onConfirm:z,count:k.size})]})}function q1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"表达方式详情"}),i.jsx(gr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Pc,{label:"情境",value:e.situation}),i.jsx(Pc,{label:"风格",value:e.style}),i.jsx(Pc,{icon:Tg,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Pc,{icon:Tg,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Pc,{icon:ul,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Pc,{icon:ul,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx(qr,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Pc({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(ne,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ue("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function F1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[s,l]=y.useState(!1),{toast:u}=xr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await D1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"新增表达方式"}),i.jsx(gr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(ne,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ce,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(ne,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ce,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(ne,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ce,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"context",children:"上下文"}),i.jsx(Qt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Qt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(oe,{onClick:d,disabled:s,children:s?"创建中...":"创建"})]})]})})}function U1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=xr();y.useEffect(()=>{e&&s({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await $1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表达方式"}),i.jsx(gr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ce,{id:"edit_situation",value:a.situation||"",onChange:m=>s({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ce,{id:"edit_style",value:a.style||"",onChange:m=>s({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ce,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>s({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Qt,{id:"edit_context",value:a.context||"",onChange:m=>s({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Qt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>s({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function H1e({open:e,onOpenChange:t,onConfirm:n,count:r}){return i.jsx(dn,{open:e,onOpenChange:t,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["您即将删除 ",r," 个表达方式,此操作无法撤销。确定要继续吗?"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:n,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"确认删除"})]})]})})}const ad="/api/webui/person";async function W1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await Ze(`${ad}/list?${t}`,{headers:st()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function V1e(e){const t=await Ze(`${ad}/${e}`,{headers:st()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function G1e(e,t){const n=await Ze(`${ad}/${e}`,{method:"PATCH",headers:st(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function Y1e(e){const t=await Ze(`${ad}/${e}`,{method:"DELETE",headers:st()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function K1e(){const e=await Ze(`${ad}/stats/summary`,{headers:st()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}async function X1e(e){const t=await Ze(`${ad}/batch/delete`,{method:"POST",headers:st(),body:JSON.stringify({person_ids:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"批量删除失败")}return t.json()}function Z1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d,f]=y.useState(20),[m,p]=y.useState(""),[g,x]=y.useState(void 0),[j,w]=y.useState(void 0),[b,N]=y.useState(null),[E,O]=y.useState(!1),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState({total:0,known:0,unknown:0,platforms:{}}),[L,D]=y.useState(new Set),[U,V]=y.useState(!1),[H,G]=y.useState(""),{toast:$}=xr(),I=async()=>{try{r(!0);const Y=await W1e({page:l,page_size:d,search:m||void 0,is_known:g,platform:j});t(Y.data),s(Y.total)}catch(Y){$({title:"加载失败",description:Y instanceof Error?Y.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},q=async()=>{try{const Y=await K1e();R(Y.data)}catch(Y){console.error("加载统计数据失败:",Y)}};y.useEffect(()=>{I(),q()},[l,d,m,g,j]);const Z=async Y=>{try{const pe=await V1e(Y.person_id);N(pe.data),O(!0)}catch(pe){$({title:"加载详情失败",description:pe instanceof Error?pe.message:"无法加载人物详情",variant:"destructive"})}},ee=Y=>{N(Y),C(!0)},F=async Y=>{try{await Y1e(Y.person_id),$({title:"删除成功",description:`已删除人物信息: ${Y.person_name||Y.nickname||Y.user_id}`}),T(null),I(),q()}catch(pe){$({title:"删除失败",description:pe instanceof Error?pe.message:"无法删除人物信息",variant:"destructive"})}},z=y.useMemo(()=>Object.keys(M.platforms),[M.platforms]),K=Y=>{const pe=new Set(L);pe.has(Y)?pe.delete(Y):pe.add(Y),D(pe)},ie=()=>{L.size===e.length&&e.length>0?D(new Set):D(new Set(e.map(Y=>Y.person_id)))},Q=()=>{if(L.size===0){$({title:"未选择任何人物",description:"请先选择要删除的人物",variant:"destructive"});return}V(!0)},he=async()=>{try{const Y=await X1e(Array.from(L));$({title:"批量删除完成",description:Y.message}),D(new Set),V(!1),I(),q()}catch(Y){$({title:"批量删除失败",description:Y instanceof Error?Y.message:"批量删除失败",variant:"destructive"})}},ae=()=>{const Y=parseInt(H),pe=Math.ceil(a/d);Y>=1&&Y<=pe?(u(Y),G("")):$({title:"无效的页码",description:`请输入1-${pe}之间的页码`,variant:"destructive"})},we=Y=>Y?new Date(Y*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(iye,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Gt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:M.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:M.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:M.unknown})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(ne,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Br,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:m,onChange:Y=>p(Y.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(ne,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(St,{value:g===void 0?"all":g.toString(),onValueChange:Y=>{x(Y==="all"?void 0:Y==="true"),u(1)},children:[i.jsx(xt,{id:"filter-known",className:"mt-1.5",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部"}),i.jsx(ke,{value:"true",children:"已认识"}),i.jsx(ke,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(ne,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(St,{value:j||"all",onValueChange:Y=>{w(Y==="all"?void 0:Y),u(1)},children:[i.jsx(xt,{id:"filter-platform",className:"mt-1.5",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部平台"}),z.map(Y=>i.jsxs(ke,{value:Y,children:[Y," (",M.platforms[Y],")"]},Y))]})]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[i.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:L.size>0&&i.jsxs("span",{children:["已选择 ",L.size," 个人物"]})}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ne,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),i.jsxs(St,{value:d.toString(),onValueChange:Y=>{f(parseInt(Y)),u(1),D(new Set)},children:[i.jsx(xt,{id:"page-size",className:"w-20",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"10",children:"10"}),i.jsx(ke,{value:"20",children:"20"}),i.jsx(ke,{value:"50",children:"50"}),i.jsx(ke,{value:"100",children:"100"})]})]}),L.size>0&&i.jsxs(oe,{variant:"destructive",size:"sm",onClick:Q,children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:e.length>0&&L.size===e.length,onCheckedChange:ie,"aria-label":"全选"})}),i.jsx(Xe,{children:"状态"}),i.jsx(Xe,{children:"名称"}),i.jsx(Xe,{children:"昵称"}),i.jsx(Xe,{children:"平台"}),i.jsx(Xe,{children:"用户ID"}),i.jsx(Xe,{children:"最后更新"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:n?i.jsx(Tn,{children:i.jsx(Be,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(Y=>i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:L.has(Y.person_id),onCheckedChange:()=>K(Y.person_id),"aria-label":`选择 ${Y.person_name||Y.nickname||Y.user_id}`})}),i.jsx(Be,{children:i.jsx("div",{className:ue("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",Y.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:Y.is_known?"已认识":"未认识"})}),i.jsx(Be,{className:"font-medium",children:Y.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Be,{children:Y.nickname||"-"}),i.jsx(Be,{children:Y.platform}),i.jsx(Be,{className:"font-mono text-sm",children:Y.user_id}),i.jsx(Be,{className:"text-sm text-muted-foreground",children:we(Y.last_know)}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Z(Y),children:i.jsx(Ya,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ee(Y),children:i.jsx(Du,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>T(Y),children:i.jsx(Ct,{className:"h-4 w-4 text-destructive"})})]})})]},Y.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(Y=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(pr,{checked:L.has(Y.person_id),onCheckedChange:()=>K(Y.person_id),className:"mt-1"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:ue("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",Y.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:Y.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:Y.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),Y.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",Y.nickname]})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:Y.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:Y.user_id,children:Y.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:we(Y.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>Z(Y),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ya,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>ee(Y),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Du,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>T(Y),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Ct,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},Y.id))}),a>0&&i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(1),disabled:l===1,className:"hidden sm:flex",children:i.jsx(aE,{className:"h-4 w-4"})}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-1"}),i.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ce,{type:"number",value:H,onChange:Y=>G(Y.target.value),onKeyDown:Y=>Y.key==="Enter"&&ae(),placeholder:l.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(a/d)}),i.jsx(oe,{variant:"outline",size:"sm",onClick:ae,disabled:!H,className:"h-8",children:"跳转"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:[i.jsx("span",{className:"hidden sm:inline",children:"下一页"}),i.jsx(Kh,{className:"h-4 w-4 sm:ml-1"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(Math.ceil(a/d)),disabled:l>=Math.ceil(a/d),className:"hidden sm:flex",children:i.jsx(iE,{className:"h-4 w-4"})})]})]})]})]})}),i.jsx(Q1e,{person:b,open:E,onOpenChange:O}),i.jsx(J1e,{person:b,open:A,onOpenChange:C,onSuccess:()=>{I(),q(),C(!1)}}),i.jsx(dn,{open:!!k,onOpenChange:()=>T(null),children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除人物信息 "',k?.person_name||k?.nickname||k?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>k&&F(k),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),i.jsx(dn,{open:U,onOpenChange:V,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["确定要删除选中的 ",L.size," 个人物信息吗? 此操作不可撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:he,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})}function Q1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"人物详情"}),i.jsxs(gr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Ki,{icon:x8,label:"人物名称",value:e.person_name}),i.jsx(Ki,{icon:Xh,label:"昵称",value:e.nickname}),i.jsx(Ki,{icon:Tg,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Ki,{icon:Tg,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Ki,{label:"平台",value:e.platform}),i.jsx(Ki,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,s)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},s))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Ki,{icon:ul,label:"认识时间",value:r(e.know_times)}),i.jsx(Ki,{icon:ul,label:"首次记录",value:r(e.know_since)}),i.jsx(Ki,{icon:ul,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx(qr,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Ki({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(ne,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ue("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function J1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=xr();y.useEffect(()=>{e&&s({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await G1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑人物信息"}),i.jsxs(gr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ce,{id:"person_name",value:a.person_name||"",onChange:m=>s({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ce,{id:"nickname",value:a.nickname||"",onChange:m=>s({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Qt,{id:"name_reason",value:a.name_reason||"",onChange:m=>s({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Qt,{id:"memory_points",value:a.memory_points||"",onChange:m=>s({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(ne,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(dt,{id:"is_known",checked:a.is_known,onCheckedChange:m=>s({...a,is_known:m})})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function eSe(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const tSe={},bf={};function tl(e,t){try{const r=(tSe[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in bf?bf[r]:LL(r,r.split(":"))}catch{if(e in bf)return bf[e];const n=e?.match(nSe);return n?LL(e,n.slice(1)):NaN}}const nSe=/([+-]\d\d):?(\d\d)?/;function LL(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return bf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class pi extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(tl(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),kH(this),SC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new pi(...n,t):new pi(Date.now(),t)}withTimeZone(t){return new pi(+this,t)}getTimezoneOffset(){const t=-tl(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),SC(this),+this}[Symbol.for("constructDateFrom")](t){return new pi(+new Date(t),this.timeZone)}}const zL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!zL.test(e))return;const t=e.replace(zL,"$1UTC");pi.prototype[t]&&(e.startsWith("get")?pi.prototype[e]=function(){return this.internal[t]()}:(pi.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),rSe(this),+this},pi.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),SC(this),+this}))});function SC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-tl(e.timeZone,e)*60))}function rSe(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),kH(e)}function kH(e){const t=tl(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),l=a-s,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(tl(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=tl(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),w=-new Date(+e).getTimezoneOffset()-x,b=x!==n,N=w-d;if(b&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const E=tl(e.timeZone,e),O=E>0?Math.floor(E):Math.ceil(E),A=x-O;A&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+A),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+A))}}class dr extends pi{static tz(t,...n){return n.length?new dr(...n,t):new dr(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${eSe(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new dr(+this,t)}[Symbol.for("constructDateFrom")](t){return new dr(+new Date(t),this.timeZone)}}const MH=6048e5,aSe=864e5,BL=Symbol.for("constructDateFrom");function Mn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&BL in e?e[BL](t):e instanceof Date?new e.constructor(t):new Date(t)}function Wt(e,t){return Mn(t||e,e)}function PH(e,t,n){const r=Wt(e,n?.in);return isNaN(t)?Mn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function RH(e,t,n){const r=Wt(e,n?.in);if(isNaN(t))return Mn(e,NaN);if(!t)return r;const a=r.getDate(),s=Mn(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const l=s.getDate();return a>=l?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}let iSe={};function im(){return iSe}function uo(e,t){const n=im(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Wt(e,t?.in),s=a.getDay(),l=(s=s.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function qL(e){const t=Wt(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Il(e,...t){const n=Mn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function Nh(e,t){const n=Wt(e,t?.in);return n.setHours(0,0,0,0),n}function $H(e,t,n){const[r,a]=Il(n?.in,e,t),s=Nh(r),l=Nh(a),u=+s-qL(s),d=+l-qL(l);return Math.round((u-d)/aSe)}function sSe(e,t){const n=DH(e,t),r=Mn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),_h(r)}function oSe(e,t,n){return PH(e,t*7,n)}function lSe(e,t,n){return RH(e,t*12,n)}function cSe(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=Mn.bind(null,a));const s=Wt(a,r);(!n||n{!r&&typeof a=="object"&&(r=Mn.bind(null,a));const s=Wt(a,r);(!n||n>s||isNaN(+s))&&(n=s)}),Mn(r,n||NaN)}function dSe(e,t,n){const[r,a]=Il(n?.in,e,t);return+Nh(r)==+Nh(a)}function IH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function fSe(e){return!(!IH(e)&&typeof e!="number"||isNaN(+Wt(e)))}function hSe(e,t,n){const[r,a]=Il(n?.in,e,t),s=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return s*12+l}function mSe(e,t){const n=Wt(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function LH(e,t){const[n,r]=Il(e,t.start,t.end);return{start:n,end:r}}function pSe(e,t){const{start:n,end:r}=LH(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=s;)d.push(Mn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function vSe(e,t){const n=Wt(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function gSe(e,t){const n=Wt(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function zH(e,t){const n=Wt(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function ySe(e,t){const{start:n,end:r}=LH(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=s;)d.push(Mn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function BH(e,t){const n=im(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Wt(e,t?.in),s=a.getDay(),l=(s{let r;const a=bSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function tu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const jSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},SSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},_Se={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},NSe={date:tu({formats:jSe,defaultWidth:"full"}),time:tu({formats:SSe,defaultWidth:"full"}),dateTime:tu({formats:_Se,defaultWidth:"full"})},CSe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},OSe=(e,t,n,r)=>CSe[e];function ci(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const ESe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},ASe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},TSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},kSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},MSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},PSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},RSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},DSe={ordinalNumber:RSe,era:ci({values:ESe,defaultWidth:"wide"}),quarter:ci({values:ASe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ci({values:TSe,defaultWidth:"wide"}),day:ci({values:kSe,defaultWidth:"wide"}),dayPeriod:ci({values:MSe,defaultWidth:"wide",formattingValues:PSe,defaultFormattingWidth:"wide"})};function ui(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const l=s[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?ISe(u,p=>p.test(l)):$Se(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function $Se(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function ISe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const LSe=/^(\d+)(th|st|nd|rd)?/i,zSe=/\d+/i,BSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},qSe={any:[/^b/i,/^(a|c)/i]},FSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},USe={any:[/1/i,/2/i,/3/i,/4/i]},HSe={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},WSe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},VSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},GSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},YSe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},KSe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},XSe={ordinalNumber:qH({matchPattern:LSe,parsePattern:zSe,valueCallback:e=>parseInt(e,10)}),era:ui({matchPatterns:BSe,defaultMatchWidth:"wide",parsePatterns:qSe,defaultParseWidth:"any"}),quarter:ui({matchPatterns:FSe,defaultMatchWidth:"wide",parsePatterns:USe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ui({matchPatterns:HSe,defaultMatchWidth:"wide",parsePatterns:WSe,defaultParseWidth:"any"}),day:ui({matchPatterns:VSe,defaultMatchWidth:"wide",parsePatterns:GSe,defaultParseWidth:"any"}),dayPeriod:ui({matchPatterns:YSe,defaultMatchWidth:"any",parsePatterns:KSe,defaultParseWidth:"any"})},IE={code:"en-US",formatDistance:wSe,formatLong:NSe,formatRelative:OSe,localize:DSe,match:XSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function ZSe(e,t){const n=Wt(e,t?.in);return $H(n,zH(n))+1}function FH(e,t){const n=Wt(e,t?.in),r=+_h(n)-+sSe(n);return Math.round(r/MH)+1}function UH(e,t){const n=Wt(e,t?.in),r=n.getFullYear(),a=im(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=Mn(t?.in||e,0);l.setFullYear(r+1,0,s),l.setHours(0,0,0,0);const u=uo(l,t),d=Mn(t?.in||e,0);d.setFullYear(r,0,s),d.setHours(0,0,0,0);const f=uo(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function QSe(e,t){const n=im(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=UH(e,t),s=Mn(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),uo(s,t)}function HH(e,t){const n=Wt(e,t?.in),r=+uo(n,t)-+QSe(n,t);return Math.round(r/MH)+1}function It(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Vs={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return It(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):It(n+1,2)},d(e,t){return It(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return It(e.getHours()%12||12,t.length)},H(e,t){return It(e.getHours(),t.length)},m(e,t){return It(e.getMinutes(),t.length)},s(e,t){return It(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return It(a,t.length)}},Rc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},FL={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Vs.y(e,t)},Y:function(e,t,n,r){const a=UH(e,r),s=a>0?a:1-a;if(t==="YY"){const l=s%100;return It(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):It(s,t.length)},R:function(e,t){const n=DH(e);return It(n,t.length)},u:function(e,t){const n=e.getFullYear();return It(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return It(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return It(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Vs.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return It(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=HH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):It(a,t.length)},I:function(e,t,n){const r=FH(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):It(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Vs.d(e,t)},D:function(e,t,n){const r=ZSe(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):It(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return It(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return It(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return It(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Rc.noon:r===0?a=Rc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Rc.evening:r>=12?a=Rc.afternoon:r>=4?a=Rc.morning:a=Rc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Vs.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Vs.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):It(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):It(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Vs.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Vs.s(e,t)},S:function(e,t){return Vs.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return HL(r);case"XXXX":case"XX":return Yo(r);case"XXXXX":case"XXX":default:return Yo(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return HL(r);case"xxxx":case"xx":return Yo(r);case"xxxxx":case"xxx":default:return Yo(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+UL(r,":");case"OOOO":default:return"GMT"+Yo(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+UL(r,":");case"zzzz":default:return"GMT"+Yo(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return It(r,t.length)},T:function(e,t,n){return It(+e,t.length)}};function UL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+It(s,2)}function HL(e,t){return e%60===0?(e>0?"-":"+")+It(Math.abs(e)/60,2):Yo(e,t)}function Yo(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=It(Math.trunc(r/60),2),s=It(r%60,2);return n+a+t+s}const WL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},WH=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},JSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return WL(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",WL(r,t)).replace("{{time}}",WH(a,t))},e_e={p:WH,P:JSe},t_e=/^D+$/,n_e=/^Y+$/,r_e=["D","DD","YY","YYYY"];function a_e(e){return t_e.test(e)}function i_e(e){return n_e.test(e)}function s_e(e,t,n){const r=o_e(e,t,n);if(console.warn(r),r_e.includes(e))throw new RangeError(r)}function o_e(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const l_e=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,c_e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,u_e=/^'([^]*?)'?$/,d_e=/''/g,f_e=/[a-zA-Z]/;function gv(e,t,n){const r=im(),a=n?.locale??r.locale??IE,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=Wt(e,n?.in);if(!fSe(u))throw new RangeError("Invalid time value");let d=t.match(c_e).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=e_e[p];return g(m,a.formatLong)}return m}).join("").match(l_e).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:h_e(m)};if(FL[p])return{isToken:!0,value:m};if(p.match(f_e))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:s,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&i_e(p)||!n?.useAdditionalDayOfYearTokens&&a_e(p))&&s_e(p,t,String(e));const g=FL[p[0]];return g(u,p,a.localize,f)}).join("")}function h_e(e){const t=e.match(u_e);return t?t[1].replace(d_e,"'"):e}function m_e(e,t){const n=Wt(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=Mn(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function p_e(e,t){return Wt(e,t?.in).getMonth()}function v_e(e,t){return Wt(e,t?.in).getFullYear()}function g_e(e,t){return+Wt(e)>+Wt(t)}function y_e(e,t){return+Wt(e)<+Wt(t)}function x_e(e,t,n){const[r,a]=Il(n?.in,e,t);return+uo(r,n)==+uo(a,n)}function b_e(e,t,n){const[r,a]=Il(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function w_e(e,t,n){const[r,a]=Il(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function j_e(e,t,n){const r=Wt(e,n?.in),a=r.getFullYear(),s=r.getDate(),l=Mn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=m_e(l);return r.setMonth(t,Math.min(s,u)),r}function S_e(e,t,n){const r=Wt(e,n?.in);return isNaN(+r)?Mn(e,NaN):(r.setFullYear(t),r)}const VL=5,__e=4;function N_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),s=t.addDays(a,VL*7-1);return t.getMonth(e)===t.getMonth(s)?VL:__e}function VH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function C_e(e,t){const n=VH(e,t),r=N_e(e,t);return t.addDays(n,r*7-1)}class ca{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?dr.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,s)=>this.overrides?.newDate?this.overrides.newDate(r,a,s):this.options.timeZone?new dr(r,a,s,this.options.timeZone):new Date(r,a,s),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):PH(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):RH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):oSe(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):lSe(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):$H(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):hSe(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):pSe(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):ySe(r),s=new Set(a.map(u=>this.getYear(u)));if(s.size===a.length)return a;const l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):C_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):xSe(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):mSe(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):BH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):gSe(r),this.format=(r,a,s)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):gv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):FH(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):p_e(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):v_e(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):HH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):g_e(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):y_e(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):IH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):dSe(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):b_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):w_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):cSe(r),this.min=r=>this.overrides?.min?this.overrides.min(r):uSe(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):j_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):S_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):VH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):Nh(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):_h(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):vSe(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):uo(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):zH(r),this.options={locale:IE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&ca.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,s=n?.code;if(s&&ca.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}ca.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Ei=new ca;class GH{constructor(t,n,r=Ei){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class O_e{constructor(t,n){this.date=t,this.weeks=n}}class E_e{constructor(t,n){this.days=n,this.weekNumber=t}}function A_e(e){return W.createElement("button",{...e})}function T_e(e){return W.createElement("span",{...e})}function k_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function M_e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function P_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var Le;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(Le||(Le={}));var gn;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(gn||(gn={}));var Wa;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Wa||(Wa={}));var ta;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(ta||(ta={}));function R_e(e){const{options:t,className:n,components:r,classNames:a,...s}=e,l=[a[Le.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===s.value);return W.createElement("span",{"data-disabled":s.disabled,className:a[Le.DropdownRoot]},W.createElement(r.Select,{className:l,...s},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[Le.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[Le.Chevron]})))}function D_e(e){return W.createElement("div",{...e})}function $_e(e){return W.createElement("div",{...e})}function I_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function L_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function z_e(e){return W.createElement("table",{...e})}function B_e(e){return W.createElement("div",{...e})}const YH=y.createContext(void 0);function sm(){const e=y.useContext(YH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function q_e(e){const{components:t}=sm();return W.createElement(t.Dropdown,{...e})}function F_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...s}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=sm(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...s},W.createElement(l.PreviousMonthButton,{type:"button",className:u[Le.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[Le.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[Le.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[Le.Chevron]})))}function U_e(e){const{components:t}=sm();return W.createElement(t.Button,{...e})}function H_e(e){return W.createElement("option",{...e})}function W_e(e){const{components:t}=sm();return W.createElement(t.Button,{...e})}function V_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function G_e(e){return W.createElement("select",{...e})}function Y_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function K_e(e){return W.createElement("th",{...e})}function X_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function Z_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function Q_e(e){return W.createElement("th",{...e})}function J_e(e){return W.createElement("tbody",{...e})}function eNe(e){const{components:t}=sm();return W.createElement(t.Dropdown,{...e})}const tNe=Object.freeze(Object.defineProperty({__proto__:null,Button:A_e,CaptionLabel:T_e,Chevron:k_e,Day:M_e,DayButton:P_e,Dropdown:R_e,DropdownNav:D_e,Footer:$_e,Month:I_e,MonthCaption:L_e,MonthGrid:z_e,Months:B_e,MonthsDropdown:q_e,Nav:F_e,NextMonthButton:U_e,Option:H_e,PreviousMonthButton:W_e,Root:V_e,Select:G_e,Week:Y_e,WeekNumber:Z_e,WeekNumberHeader:Q_e,Weekday:K_e,Weekdays:X_e,Weeks:J_e,YearsDropdown:eNe},Symbol.toStringTag,{value:"Module"}));function ts(e,t,n=!1,r=Ei){let{from:a,to:s}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&s?(l(s,a)<0&&([a,s]=[s,a]),l(t,a)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?u(s,t):!n&&a?u(a,t):!1}function KH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function LE(e){return!!(e&&typeof e=="object"&&"from"in e)}function XH(e){return!!(e&&typeof e=="object"&&"after"in e)}function ZH(e){return!!(e&&typeof e=="object"&&"before"in e)}function QH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function JH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function ns(e,t,n=Ei){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:s,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(JH(u,n))return u.includes(e);if(LE(u))return ts(u,e,!1,n);if(QH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(KH(u)){const d=s(u.before,e),f=s(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return XH(u)?s(e,u.after)>0:ZH(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function nNe(e,t,n,r,a){const{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:w,isAfter:b}=a,N=n&&x(n),E=r&&w(r),O={[gn.focused]:[],[gn.outside]:[],[gn.disabled]:[],[gn.hidden]:[],[gn.today]:[]},A={};for(const C of e){const{date:k,displayMonth:T}=C,M=!!(T&&!g(k,T)),R=!!(N&&j(k,N)),L=!!(E&&b(k,E)),D=!!(s&&ns(k,s,a)),U=!!(l&&ns(k,l,a))||R||L||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&O.outside.push(C),D&&O.disabled.push(C),U&&O.hidden.push(C),V&&O.today.push(C),u&&Object.keys(u).forEach(H=>{const G=u?.[H];G&&ns(k,G,a)&&(A[H]?A[H].push(C):A[H]=[C])})}return C=>{const k={[gn.focused]:!1,[gn.disabled]:!1,[gn.hidden]:!1,[gn.outside]:!1,[gn.today]:!1},T={};for(const M in O){const R=O[M];k[M]=R.some(L=>L===C)}for(const M in A)T[M]=A[M].some(R=>R===C);return{...k,...T}}}function rNe(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[s])=>(n[s]?a.push(n[s]):t[gn[s]]?a.push(t[gn[s]]):t[Wa[s]]&&a.push(t[Wa[s]]),a),[t[Le.Day]])}function aNe(e){return{...tNe,...e}}function iNe(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function zE(){const e={};for(const t in Le)e[Le[t]]=`rdp-${Le[t]}`;for(const t in gn)e[gn[t]]=`rdp-${gn[t]}`;for(const t in Wa)e[Wa[t]]=`rdp-${Wa[t]}`;for(const t in ta)e[ta[t]]=`rdp-${ta[t]}`;return e}function e9(e,t,n){return(n??new ca(t)).formatMonthYear(e)}const sNe=e9;function oNe(e,t,n){return(n??new ca(t)).format(e,"d")}function lNe(e,t=Ei){return t.format(e,"LLLL")}function cNe(e,t,n){return(n??new ca(t)).format(e,"cccccc")}function uNe(e,t=Ei){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function dNe(){return""}function t9(e,t=Ei){return t.format(e,"yyyy")}const fNe=t9,hNe=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:e9,formatDay:oNe,formatMonthCaption:sNe,formatMonthDropdown:lNe,formatWeekNumber:uNe,formatWeekNumberHeader:dNe,formatWeekdayName:cNe,formatYearCaption:fNe,formatYearDropdown:t9},Symbol.toStringTag,{value:"Module"}));function mNe(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...hNe,...e}}function pNe(e,t,n,r,a){const{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),w=t&&gs(n)||!1;return{value:j,label:x,disabled:w}})}function vNe(e,t={},n={}){let r={...t?.[Le.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function gNe(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),s=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);s.push(u)}return s}function yNe(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=s(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function n9(e,t,n,r){let a=(r??new ca(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const xNe=n9;function r9(e,t,n){return(n??new ca(t)).formatMonthYear(e)}const bNe=r9;function wNe(e,t,n,r){let a=(r??new ca(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function jNe(e){return"Choose the Month"}function SNe(){return""}function _Ne(e){return"Go to the Next Month"}function NNe(e){return"Go to the Previous Month"}function CNe(e,t,n){return(n??new ca(t)).format(e,"cccc")}function ONe(e,t){return`Week ${e}`}function ENe(e){return"Week Number"}function ANe(e){return"Choose the Year"}const TNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:bNe,labelDay:xNe,labelDayButton:n9,labelGrid:r9,labelGridcell:wNe,labelMonthDropdown:jNe,labelNav:SNe,labelNext:_Ne,labelPrevious:NNe,labelWeekNumber:ONe,labelWeekNumberHeader:ENe,labelWeekday:CNe,labelYearDropdown:ANe},Symbol.toStringTag,{value:"Module"})),om=e=>e instanceof HTMLElement?e:null,p_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],kNe=e=>om(e.querySelector("[data-animated-month]")),v_=e=>om(e.querySelector("[data-animated-caption]")),g_=e=>om(e.querySelector("[data-animated-weeks]")),MNe=e=>om(e.querySelector("[data-animated-nav]")),PNe=e=>om(e.querySelector("[data-animated-weekdays]"));function RNe(e,t,{classNames:n,months:r,focused:a,dateLib:s}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=s.isSameMonth(r[0].date,f[0].date),p=s.isAfter(r[0].date,f[0].date),g=p?n[ta.caption_after_enter]:n[ta.caption_before_enter],x=p?n[ta.weeks_after_enter]:n[ta.weeks_before_enter],j=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(p_(w).forEach(O=>{if(!(O instanceof HTMLElement))return;const A=kNe(O);A&&O.contains(A)&&O.removeChild(A);const C=v_(O);C&&C.classList.remove(g);const k=g_(O);k&&k.classList.remove(x)}),l.current=w):l.current=null,d.current||m||a)return;const b=j instanceof HTMLElement?p_(j):[],N=p_(e.current);if(N?.every(E=>E instanceof HTMLElement)&&b&&b.every(E=>E instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const E=MNe(e.current);E&&(E.style.zIndex="1"),N.forEach((O,A)=>{const C=b[A];if(!C)return;O.style.position="relative",O.style.overflow="hidden";const k=v_(O);k&&k.classList.add(g);const T=g_(O);T&&T.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),E&&(E.style.zIndex=""),k&&k.classList.remove(g),T&&T.classList.remove(x),O.style.position="",O.style.overflow="",O.contains(C)&&O.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const R=PNe(C);R&&(R.style.opacity="0");const L=v_(C);L&&(L.classList.add(p?n[ta.caption_before_exit]:n[ta.caption_after_exit]),L.addEventListener("animationend",M));const D=g_(C);D&&D.classList.add(p?n[ta.weeks_before_exit]:n[ta.weeks_after_exit]),O.insertBefore(C,O.firstChild)})}})}function DNe(e,t,n,r){const a=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:w,isAfter:b,startOfBroadcastWeek:N,startOfISOWeek:E,startOfWeek:O}=r,A=d?N(a,r):l?E(a):O(a),C=d?g(s):l?x(j(s)):w(j(s)),k=m(C,A),T=p(s,a)+1,M=[];for(let D=0;D<=k;D++){const U=f(A,D);if(t&&b(U,t))break;M.push(U)}const L=(d?35:42)*T;if(u&&M.length{const a=r.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function INe(e,t,n,r){const{numberOfMonths:a=1}=n,s=[];for(let l=0;lt)break;s.push(u)}return s}function GL(e,t,n,r){const{month:a,defaultMonth:s,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||s||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(b,r):n.ISOWeek?g(b):x(b),E=n.broadcastCalendar?s(b):n.ISOWeek?l(u(b)):d(u(b)),O=t.filter(T=>T>=N&&T<=E),A=n.broadcastCalendar?35:42;if(n.fixedWeeks&&O.length{const R=A-O.length;return M>E&&M<=a(E,R)});O.push(...T)}const C=O.reduce((T,M)=>{const R=n.ISOWeek?f(M):m(M),L=T.find(U=>U.weekNumber===R),D=new GH(M,b,r);return L?L.days.push(D):T.push(new E_e(R,[D])),T},[]),k=new O_e(b,C);return w.push(k),w},[]);return n.reverseMonths?j.reverse():j}function zNe(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:w}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&w&&(r=w),!r&&x&&(r=m(x,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&b&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&b&&(r=f(e.today??p())),[n&&s(n),r&&s(r)]}function BNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?s:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function cx(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function UNe(e,t){const[n,r]=zNe(e,t),{startOfMonth:a,endOfMonth:s}=t,l=GL(e,n,r,t),[u,d]=cx(l,e.month?l:void 0);y.useEffect(()=>{const k=GL(e,n,r,t);d(k)},[e.timeZone]);const f=INe(u,r,e,t),m=DNe(f,e.endMonth?s(e.endMonth):void 0,e,t),p=LNe(f,m,e,t),g=FNe(p),x=$Ne(p),j=qNe(u,n,e,t),w=BNe(u,r,e,t),{disableNavigation:b,onMonthChange:N}=e,E=k=>g.some(T=>T.days.some(M=>M.isEqualTo(k))),O=k=>{if(b)return;let T=a(k);n&&Ta(r)&&(T=a(r)),d(T),N?.(T)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:w,goToMonth:O,goToDay:k=>{E(k)||O(k.date)}}}var si;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(si||(si={}));function YL(e){return!e[gn.disabled]&&!e[gn.hidden]&&!e[gn.outside]}function HNe(e,t,n,r){let a,s=-1;for(const l of e){const u=t(l);YL(u)&&(u[gn.focused]&&sYL(t(l)))),a}function WNe(e,t,n,r,a,s,l){const{ISOWeek:u,broadcastCalendar:d}=s,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:w,max:b,min:N,startOfBroadcastWeek:E,startOfISOWeek:O,startOfWeek:A}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:T=>d?E(T,l):u?O(T):A(T),endOfWeek:T=>d?x(T):u?j(T):w(T)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=b([r,k]):t==="after"&&a&&(k=N([a,k])),k}function a9(e,t,n,r,a,s,l,u=0){if(u>365)return;const d=WNe(e,t,n.date,r,a,s,l),f=!!(s.disabled&&ns(d,s.disabled,l)),m=!!(s.hidden&&ns(d,s.hidden,l)),p=d,g=new GH(d,p,l);return!f&&!m?g:a9(e,t,g,r,a,s,l,u+1)}function VNe(e,t,n,r,a){const{autoFocus:s}=e,[l,u]=y.useState(),d=HNe(t.days,n,r||(()=>!1),l),[f,m]=y.useState(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(w,b)=>{if(!f)return;const N=a9(w,b,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(O=>O.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function GNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=cx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,w)=>{let b=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;b=u?.filter(N=>!d(N,x))}else u?.length===p?b=[x]:b=[...b,x];return a||l(b),a?.(b,x,j,w),b},isSelected:f}}function YNe(e,t,n=0,r=0,a=!1,s=Ei){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=s;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=s.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?ts(e,u,!1,n):JH(u,n)?u.some(d=>ts(e,d,!1,n)):LE(u)?u.from&&u.to?KL(e,{from:u.from,to:u.to},n):!1:QH(u)?KNe(e,u.dayOfWeek,n):KH(u)?n.isAfter(u.before,u.after)?KL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):ns(e.from,u,n)||ns(e.to,u,n):XH(u)||ZH(u)?ns(e.from,u,n)||ns(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function ZNe(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:s,onSelect:l}=e,[u,d]=cx(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:w,max:b}=e,N=g?YNe(g,f,w,b,s,t):void 0;return r&&n&&N?.from&&N.to&&XNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&ts(f,g,!1,t)}}function QNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=cx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function JNe(e,t){const n=QNe(e,t),r=GNe(e,t),a=ZNe(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function eCe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new dr(t.today,t.timeZone)),t.month&&(t.month=new dr(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new dr(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new dr(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new dr(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new dr(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(ot=>new dr(ot,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new dr(t.selected.from,t.timeZone):void 0,to:t.selected.to?new dr(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:s,locale:l,classNames:u}=y.useMemo(()=>{const ot={...IE,...t.locale};return{dateLib:new ca({locale:ot,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:aNe(t.components),formatters:mNe(t.formatters),labels:{...TNe,...t.labels},locale:ot,classNames:{...zE(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:w,onDayMouseEnter:b,onDayMouseLeave:N,onNextClick:E,onPrevClick:O,showWeekNumber:A,styles:C}=t,{formatCaption:k,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:L,formatWeekdayName:D,formatYearDropdown:U}=r,V=UNe(t,s),{days:H,months:G,navStart:$,navEnd:I,previousMonth:q,nextMonth:Z,goToMonth:ee}=V,F=nNe(H,t,$,I,s),{isSelected:z,select:K,selected:ie}=JNe(t,s)??{},{blur:Q,focused:he,isFocusTarget:ae,moveFocus:we,setFocused:Y}=VNe(t,V,F,z??(()=>!1),s),{labelDayButton:pe,labelGridcell:je,labelGrid:X,labelMonthDropdown:Ae,labelNav:Oe,labelPrevious:We,labelNext:Ve,labelWeekday:be,labelWeekNumber:_e,labelWeekNumberHeader:rt,labelYearDropdown:fn}=a,Tt=y.useMemo(()=>gNe(s,t.ISOWeek),[s,t.ISOWeek]),zt=f!==void 0||x!==void 0,at=y.useCallback(()=>{q&&(ee(q),O?.(q))},[q,ee,O]),re=y.useCallback(()=>{Z&&(ee(Z),E?.(Z))},[ee,Z,E]),Se=y.useCallback((ot,Kt)=>Ge=>{Ge.preventDefault(),Ge.stopPropagation(),Y(ot),K?.(ot.date,Kt,Ge),x?.(ot.date,Kt,Ge)},[K,x,Y]),ut=y.useCallback((ot,Kt)=>Ge=>{Y(ot),j?.(ot.date,Kt,Ge)},[j,Y]),Or=y.useCallback((ot,Kt)=>Ge=>{Q(),g?.(ot.date,Kt,Ge)},[Q,g]),bs=y.useCallback((ot,Kt)=>Ge=>{const Et={ArrowLeft:[Ge.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[Ge.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[Ge.shiftKey?"year":"week","after"],ArrowUp:[Ge.shiftKey?"year":"week","before"],PageUp:[Ge.shiftKey?"year":"month","before"],PageDown:[Ge.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(Et[Ge.key]){Ge.preventDefault(),Ge.stopPropagation();const[qn,lt]=Et[Ge.key];we(qn,lt)}w?.(ot.date,Kt,Ge)},[we,w,t.dir]),mx=y.useCallback((ot,Kt)=>Ge=>{b?.(ot.date,Kt,Ge)},[b]),mm=y.useCallback((ot,Kt)=>Ge=>{N?.(ot.date,Kt,Ge)},[N]),px=y.useCallback(ot=>Kt=>{const Ge=Number(Kt.target.value),Et=s.setMonth(s.startOfMonth(ot),Ge);ee(Et)},[s,ee]),vx=y.useCallback(ot=>Kt=>{const Ge=Number(Kt.target.value),Et=s.setYear(s.startOfMonth(ot),Ge);ee(Et)},[s,ee]),{className:jo,style:wr}=y.useMemo(()=>({className:[u[Le.Root],t.className].filter(Boolean).join(" "),style:{...C?.[Le.Root],...t.style}}),[u,t.className,t.style,C]),ei=iNe(t),lr=y.useRef(null);RNe(lr,!!t.animate,{classNames:u,months:G,focused:he,dateLib:s});const gx={dayPickerProps:t,selected:ie,select:K,isSelected:z,months:G,nextMonth:Z,previousMonth:q,goToMonth:ee,getModifiers:F,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(YH.Provider,{value:gx},W.createElement(n.Root,{rootRef:t.animate?lr:void 0,className:jo,style:wr,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...ei},W.createElement(n.Months,{className:u[Le.Months],style:C?.[Le.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Le.Nav],style:C?.[Le.Nav],"aria-label":Oe(),onPreviousClick:at,onNextClick:re,previousMonth:q,nextMonth:Z}),G.map((ot,Kt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[Le.Month],style:C?.[Le.Month],key:Kt,displayIndex:Kt,calendarMonth:ot},m==="around"&&!t.hideNavigation&&Kt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[Le.PreviousMonthButton],tabIndex:q?void 0:-1,"aria-disabled":q?void 0:!0,"aria-label":We(q),onClick:at,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:q?void 0:!0,className:u[Le.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[Le.MonthCaption],style:C?.[Le.MonthCaption],calendarMonth:ot,displayIndex:Kt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[Le.Dropdowns],style:C?.[Le.Dropdowns]},(()=>{const Ge=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[Le.MonthsDropdown],"aria-label":Ae(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:px(ot.date),options:pNe(ot.date,$,I,r,s),style:C?.[Le.Dropdown],value:s.getMonth(ot.date)}):W.createElement("span",{key:"month"},M(ot.date,s)),Et=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[Le.YearsDropdown],"aria-label":fn(s.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:vx(ot.date),options:yNe($,I,r,s,!!t.reverseYears),style:C?.[Le.Dropdown],value:s.getYear(ot.date)}):W.createElement("span",{key:"year"},U(ot.date,s));return s.getMonthYearOrder()==="year-first"?[Et,Ge]:[Ge,Et]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(ot.date,s.options,s))):W.createElement(n.CaptionLabel,{className:u[Le.CaptionLabel],role:"status","aria-live":"polite"},k(ot.date,s.options,s))),m==="around"&&!t.hideNavigation&&Kt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[Le.NextMonthButton],tabIndex:Z?void 0:-1,"aria-disabled":Z?void 0:!0,"aria-label":Ve(Z),onClick:re,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:Z?void 0:!0,className:u[Le.Chevron],orientation:t.dir==="rtl"?"left":"right"})),Kt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Le.Nav],style:C?.[Le.Nav],"aria-label":Oe(),onPreviousClick:at,onNextClick:re,previousMonth:q,nextMonth:Z}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":X(ot.date,s.options,s)||void 0,className:u[Le.MonthGrid],style:C?.[Le.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[Le.Weekdays],style:C?.[Le.Weekdays]},A&&W.createElement(n.WeekNumberHeader,{"aria-label":rt(s.options),className:u[Le.WeekNumberHeader],style:C?.[Le.WeekNumberHeader],scope:"col"},L()),Tt.map(Ge=>W.createElement(n.Weekday,{"aria-label":be(Ge,s.options,s),className:u[Le.Weekday],key:String(Ge),style:C?.[Le.Weekday],scope:"col"},D(Ge,s.options,s)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[Le.Weeks],style:C?.[Le.Weeks]},ot.weeks.map(Ge=>W.createElement(n.Week,{className:u[Le.Week],key:Ge.weekNumber,style:C?.[Le.Week],week:Ge},A&&W.createElement(n.WeekNumber,{week:Ge,style:C?.[Le.WeekNumber],"aria-label":_e(Ge.weekNumber,{locale:l}),className:u[Le.WeekNumber],scope:"row",role:"rowheader"},R(Ge.weekNumber,s)),Ge.days.map(Et=>{const{date:qn}=Et,lt=F(Et);if(lt[gn.focused]=!lt.hidden&&!!he?.isEqualTo(Et),lt[Wa.selected]=z?.(qn)||lt.selected,LE(ie)){const{from:Bl,to:_o}=ie;lt[Wa.range_start]=!!(Bl&&_o&&s.isSameDay(qn,Bl)),lt[Wa.range_end]=!!(Bl&&_o&&s.isSameDay(qn,_o)),lt[Wa.range_middle]=ts(ie,qn,!0,s)}const zl=vNe(lt,C,t.modifiersStyles),So=rNe(lt,u,t.modifiersClassNames),yx=!zt&&!lt.hidden?je(qn,lt,s.options,s):void 0;return W.createElement(n.Day,{key:`${s.format(qn,"yyyy-MM-dd")}_${s.format(Et.displayMonth,"yyyy-MM")}`,day:Et,modifiers:lt,className:So.join(" "),style:zl,role:"gridcell","aria-selected":lt.selected||void 0,"aria-label":yx,"data-day":s.format(qn,"yyyy-MM-dd"),"data-month":Et.outside?s.format(qn,"yyyy-MM"):void 0,"data-selected":lt.selected||void 0,"data-disabled":lt.disabled||void 0,"data-hidden":lt.hidden||void 0,"data-outside":Et.outside||void 0,"data-focused":lt.focused||void 0,"data-today":lt.today||void 0},!lt.hidden&&zt?W.createElement(n.DayButton,{className:u[Le.DayButton],style:C?.[Le.DayButton],type:"button",day:Et,modifiers:lt,disabled:lt.disabled||void 0,tabIndex:ae(Et)?0:-1,"aria-label":pe(qn,lt,s.options,s),onClick:Se(Et,lt),onBlur:Or(Et,lt),onFocus:ut(Et,lt),onKeyDown:bs(Et,lt),onMouseEnter:mx(Et,lt),onMouseLeave:mm(Et,lt)},T(qn,s.options,s)):!lt.hidden&&T(Et.date,s.options,s))})))))))),t.footer&&W.createElement(n.Footer,{className:u[Le.Footer],style:C?.[Le.Footer],role:"status","aria-live":"polite"},t.footer)))}function XL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:s,components:l,...u}){const d=zE();return i.jsx(eCe,{showOutsideDays:n,className:ue("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...s},classNames:{root:ue("w-fit",d.root),months:ue("relative flex flex-col gap-4 md:flex-row",d.months),month:ue("flex w-full flex-col gap-4",d.month),nav:ue("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:ue(bh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:ue(bh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:ue("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:ue("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:ue("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:ue("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:ue("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:ue("flex",d.weekdays),weekday:ue("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:ue("mt-2 flex w-full",d.week),week_number_header:ue("w-[--cell-size] select-none",d.week_number_header),week_number:ue("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:ue("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:ue("bg-accent rounded-l-md",d.range_start),range_middle:ue("rounded-none",d.range_middle),range_end:ue("bg-accent rounded-r-md",d.range_end),today:ue("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:ue("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:ue("text-muted-foreground opacity-50",d.disabled),hidden:ue("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:ue(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(Yh,{className:ue("size-4",f),...p}):m==="right"?i.jsx(Kh,{className:ue("size-4",f),...p}):i.jsx(gh,{className:ue("size-4",f),...p}),DayButton:tCe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function tCe({className:e,day:t,modifiers:n,...r}){const a=zE(),s=y.useRef(null);return y.useEffect(()=>{n.focused&&s.current?.focus()},[n.focused]),i.jsx(oe,{ref:s,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:ue("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class nCe{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const Bc=new nCe;typeof window<"u"&&Bc.connect();const rCe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},aCe=(e,t,n)=>{let r;const a=rCe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},iCe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},sCe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},oCe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},lCe={date:tu({formats:iCe,defaultWidth:"full"}),time:tu({formats:sCe,defaultWidth:"full"}),dateTime:tu({formats:oCe,defaultWidth:"full"})};function ZL(e,t,n){const r="eeee p";return x_e(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const cCe={lastWeek:ZL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:ZL,other:"PP p"},uCe=(e,t,n,r)=>{const a=cCe[e];return typeof a=="function"?a(t,n,r):a},dCe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},fCe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},hCe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},mCe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},pCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},vCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},gCe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},yCe={ordinalNumber:gCe,era:ci({values:dCe,defaultWidth:"wide"}),quarter:ci({values:fCe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ci({values:hCe,defaultWidth:"wide"}),day:ci({values:mCe,defaultWidth:"wide"}),dayPeriod:ci({values:pCe,defaultWidth:"wide",formattingValues:vCe,defaultFormattingWidth:"wide"})},xCe=/^(第\s*)?\d+(日|时|分|秒)?/i,bCe=/\d+/i,wCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},jCe={any:[/^(前)/i,/^(公元)/i]},SCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},_Ce={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},NCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},CCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},OCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},ECe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},ACe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},TCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},kCe={ordinalNumber:qH({matchPattern:xCe,parsePattern:bCe,valueCallback:e=>parseInt(e,10)}),era:ui({matchPatterns:wCe,defaultMatchWidth:"wide",parsePatterns:jCe,defaultParseWidth:"any"}),quarter:ui({matchPatterns:SCe,defaultMatchWidth:"wide",parsePatterns:_Ce,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ui({matchPatterns:NCe,defaultMatchWidth:"wide",parsePatterns:CCe,defaultParseWidth:"any"}),day:ui({matchPatterns:OCe,defaultMatchWidth:"wide",parsePatterns:ECe,defaultParseWidth:"any"}),dayPeriod:ui({matchPatterns:ACe,defaultMatchWidth:"any",parsePatterns:TCe,defaultParseWidth:"any"})},ev={code:"zh-CN",formatDistance:aCe,formatLong:lCe,formatRelative:uCe,localize:yCe,match:kCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function MCe(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,s]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,w]=y.useState(!1),b=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const D=Bc.getAllLogs();t(D);const U=Bc.onLog(()=>{t(Bc.getAllLogs())}),V=Bc.onConnectionChange(H=>{w(H)});return()=>{U(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const E=y.useMemo(()=>{const D=new Set(e.map(U=>U.module));return Array.from(D).sort()},[e]),O=D=>{switch(D){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},A=D=>{switch(D){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},C=()=>{window.location.reload()},k=()=>{Bc.clearLogs(),t([])},T=()=>{const D=L.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` +`),U=new Blob([D],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(U),H=document.createElement("a");H.href=V,H.download=`logs-${gv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,H.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},R=()=>{f(void 0),p(void 0)},L=y.useMemo(()=>e.filter(D=>{const U=n===""||D.message.toLowerCase().includes(n.toLowerCase())||D.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||D.level===a,H=l==="all"||D.module===l;let G=!0;if(d||m){const $=new Date(D.timestamp);if(d){const I=new Date(d);I.setHours(0,0,0,0),G=G&&$>=I}if(m){const I=new Date(m);I.setHours(23,59,59,999),G=G&&$<=I}}return U&&V&&H&&G}),[e,n,a,l,d,m]);return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:ue("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(Ke,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"搜索日志...",value:n,onChange:D=>r(D.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(St,{value:a,onValueChange:s,children:[i.jsxs(xt,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(rC,{className:"h-4 w-4 mr-2"}),i.jsx(_t,{placeholder:"级别"})]}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部级别"}),i.jsx(ke,{value:"DEBUG",children:"DEBUG"}),i.jsx(ke,{value:"INFO",children:"INFO"}),i.jsx(ke,{value:"WARNING",children:"WARNING"}),i.jsx(ke,{value:"ERROR",children:"ERROR"}),i.jsx(ke,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(St,{value:l,onValueChange:u,children:[i.jsxs(xt,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(rC,{className:"h-4 w-4 mr-2"}),i.jsx(_t,{placeholder:"模块"})]}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部模块"}),E.map(D=>i.jsx(ke,{value:D,children:D},D))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ue("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(eL,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?gv(d,"PPP",{locale:ev}):"开始日期"})]})}),i.jsx(hs,{className:"w-auto p-0",align:"start",children:i.jsx(XL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:ev})})]}),i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ue("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(eL,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?gv(m,"PPP",{locale:ev}):"结束日期"})]})}),i.jsx(hs,{className:"w-auto p-0",align:"start",children:i.jsx(XL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:ev})})]}),(d||m)&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:R,className:"w-full sm:w-auto h-9",children:[i.jsx(Zh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(oe,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(jge,{className:"h-4 w-4"}):i.jsx(Nge,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(os,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(Ct,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:T,className:"flex-1 sm:flex-none h-9",children:[i.jsx(tC,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[L.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(Ke,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Gt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:b,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[L.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):L.map(D=>i.jsxs("div",{className:ue("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",A(D.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:D.timestamp}),i.jsxs("span",{className:ue("text-xs font-semibold",O(D.level)),children:["[",D.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:D.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:D.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:D.timestamp}),i.jsxs("span",{className:ue("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",O(D.level)),children:["[",D.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:D.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:D.message})]})]},D.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const PCe="Mai-with-u",RCe="plugin-repo",DCe="main",$Ce="plugin_details.json";async function ICe(){try{const e=await Ze("/api/webui/plugins/fetch-raw",{method:"POST",headers:st(),body:JSON.stringify({owner:PCe,repo:RCe,branch:DCe,file_path:$Ce})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function LCe(){try{const e=await Ze("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function zCe(){try{const e=await Ze("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function BCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,s=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function qCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const s=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(s)},3e4)},a.onmessage=s=>{try{if(s.data==="pong")return;const l=JSON.parse(s.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=s=>{console.error("Plugin progress WebSocket error:",s),t?.(s)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function tv(){try{const e=await Ze("/api/webui/plugins/installed",{headers:st()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function nv(e,t){return t.some(n=>n.id===e)}function rv(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function FCe(e,t,n="main"){const r=await Ze("/api/webui/plugins/install",{method:"POST",headers:st(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function UCe(e){const t=await Ze("/api/webui/plugins/uninstall",{method:"POST",headers:st(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function HCe(e,t,n="main"){const r=await Ze("/api/webui/plugins/update",{method:"POST",headers:st(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}const QL={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function WCe(){const e=ua(),[t,n]=y.useState(null),[r,a]=y.useState(""),[s,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[,T]=y.useState([]),{toast:M}=xr();y.useEffect(()=>{let I=null,q=!1;return(async()=>{if(I=qCe(ee=>{q||(A(ee),ee.stage==="success"?setTimeout(()=>{q||A(null)},2e3):ee.stage==="error"&&(j(!1),b(ee.error||"加载失败")))},ee=>{console.error("WebSocket error:",ee),q||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(ee=>{if(!I){ee();return}const F=()=>{I&&I.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),ee()):I&&I.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),ee()):setTimeout(F,100)};F()}),!q){const ee=await LCe();E(ee),ee.installed||M({title:"Git 未安装",description:ee.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!q){const ee=await zCe();k(ee)}if(!q)try{j(!0),b(null);const ee=await ICe();if(!q){const F=await tv();T(F);const z=ee.map(K=>{const ie=nv(K.id,F),Q=rv(K.id,F);return{...K,installed:ie,installed_version:Q}});for(const K of F)!z.some(Q=>Q.id===K.id)&&K.manifest&&z.push({id:K.id,manifest:{manifest_version:K.manifest.manifest_version||1,name:K.manifest.name,version:K.manifest.version,description:K.manifest.description||"",author:K.manifest.author,license:K.manifest.license||"Unknown",host_application:K.manifest.host_application,homepage_url:K.manifest.homepage_url,repository_url:K.manifest.repository_url,keywords:K.manifest.keywords||[],categories:K.manifest.categories||[],default_locale:K.manifest.default_locale||"zh-CN",locales_path:K.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:K.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(z)}}catch(ee){if(!q){const F=ee instanceof Error?ee.message:"加载插件列表失败";b(F),M({title:"加载失败",description:F,variant:"destructive"})}}finally{q||j(!1)}})(),()=>{q=!0,I&&I.close()}},[M]);const R=I=>{if(!I.installed&&C&&!L(I))return i.jsxs(Ht,{variant:"destructive",className:"gap-1",children:[i.jsx(xl,{className:"h-3 w-3"}),"不兼容"]});if(I.installed){const q=I.installed_version?.trim(),Z=I.manifest.version?.trim();if(q!==Z){const ee=q?.split(".").map(Number)||[0,0,0],F=Z?.split(".").map(Number)||[0,0,0];for(let z=0;z<3;z++){if((F[z]||0)>(ee[z]||0))return i.jsxs(Ht,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(xl,{className:"h-3 w-3"}),"可更新"]});if((F[z]||0)<(ee[z]||0))break}}return i.jsxs(Ht,{variant:"default",className:"gap-1",children:[i.jsx(Dr,{className:"h-3 w-3"}),"已安装"]})}return null},L=I=>!C||!I.manifest?.host_application?!0:BCe(I.manifest.host_application.min_version,I.manifest.host_application.max_version,C),D=I=>{if(!I.installed||!I.installed_version||!I.manifest?.version)return!1;const q=I.installed_version.trim(),Z=I.manifest.version.trim();if(q===Z)return!1;const ee=q.split(".").map(Number),F=Z.split(".").map(Number);for(let z=0;z<3;z++){if((F[z]||0)>(ee[z]||0))return!0;if((F[z]||0)<(ee[z]||0))return!1}return!1},U=p.filter(I=>{if(!I.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",I.id),!1;const q=r===""||I.manifest.name?.toLowerCase().includes(r.toLowerCase())||I.manifest.description?.toLowerCase().includes(r.toLowerCase())||I.manifest.keywords&&I.manifest.keywords.some(z=>z.toLowerCase().includes(r.toLowerCase())),Z=s==="all"||I.manifest.categories&&I.manifest.categories.includes(s);let ee=!0;u==="installed"?ee=I.installed===!0:u==="updates"&&(ee=I.installed===!0&&D(I));const F=!f||!C||L(I);return q&&Z&&ee&&F}),V=()=>{n(null)},H=async I=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!L(I)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await FCe(I.id,I.manifest.repository_url||"","main"),M({title:"安装成功",description:`${I.manifest.name} 已成功安装`});const q=await tv();T(q),g(Z=>Z.map(ee=>{if(ee.id===I.id){const F=nv(ee.id,q),z=rv(ee.id,q);return{...ee,installed:F,installed_version:z}}return ee}))}catch(q){M({title:"安装失败",description:q instanceof Error?q.message:"未知错误",variant:"destructive"})}},G=async I=>{try{await UCe(I.id),M({title:"卸载成功",description:`${I.manifest.name} 已成功卸载`});const q=await tv();T(q),g(Z=>Z.map(ee=>{if(ee.id===I.id){const F=nv(ee.id,q),z=rv(ee.id,q);return{...ee,installed:F,installed_version:z}}return ee}))}catch(q){M({title:"卸载失败",description:q instanceof Error?q.message:"未知错误",variant:"destructive"})}},$=async I=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const q=await HCe(I.id,I.manifest.repository_url||"","main");M({title:"更新成功",description:`${I.manifest.name} 已从 ${q.old_version} 更新到 ${q.new_version}`});const Z=await tv();T(Z),g(ee=>ee.map(F=>{if(F.id===I.id){const z=nv(F.id,Z),K=rv(F.id,Z);return{...F,installed:z,installed_version:K}}return F}))}catch(q){M({title:"更新失败",description:q instanceof Error?q.message:"未知错误",variant:"destructive"})}};return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(oe,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(Ige,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(Ke,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(gt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Xc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(yt,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(Wn,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(Pt,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(Ke,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"搜索插件...",value:r,onChange:I=>a(I.target.value),className:"pl-9"})]}),i.jsxs(St,{value:s,onValueChange:l,children:[i.jsx(xt,{className:"w-full sm:w-[200px]",children:i.jsx(_t,{placeholder:"选择分类"})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部分类"}),i.jsx(ke,{value:"Group Management",children:"群组管理"}),i.jsx(ke,{value:"Entertainment & Interaction",children:"娱乐互动"}),i.jsx(ke,{value:"Utility Tools",children:"实用工具"}),i.jsx(ke,{value:"Content Generation",children:"内容生成"}),i.jsx(ke,{value:"Multimedia",children:"多媒体"}),i.jsx(ke,{value:"External Integration",children:"外部集成"}),i.jsx(ke,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),i.jsx(ke,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(pr,{id:"compatible-only",checked:f,onCheckedChange:I=>m(I===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(hl,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(ao,{className:"grid w-full grid-cols-3",children:[i.jsxs(Lt,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Lt,{value:"installed",children:["已安装 (",p.filter(I=>I.installed).length,")"]}),i.jsxs(Lt,{value:"updates",children:["可更新 (",p.filter(I=>I.installed&&D(I)).length,")"]})]})}),O&&O.stage==="loading"&&i.jsx(Ke,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(yh,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[O.operation==="fetch"&&"加载插件列表",O.operation==="install"&&`安装插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="uninstall"&&`卸载插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="update"&&`更新插件${O.plugin_id?`: ${O.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[O.progress,"%"]})]}),i.jsx(Ih,{value:O.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.message}),O.operation==="fetch"&&O.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",O.loaded_plugins," / ",O.total_plugins," 个插件"]})]})}),O&&O.stage==="error"&&O.error&&i.jsx(Ke,{className:"border-destructive bg-destructive/10",children:i.jsx(gt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Xc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(yt,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(Wn,{className:"text-destructive/80",children:O.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(yh,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):w?i.jsx(Ke,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Xc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:w}),i.jsx(oe,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):U.length===0?i.jsx(Ke,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Br,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||s!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:U.map(I=>i.jsxs(Ke,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(gt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(yt,{className:"text-xl",children:I.manifest?.name||I.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[I.manifest?.categories&&I.manifest.categories[0]&&i.jsx(Ht,{variant:"secondary",className:"text-xs whitespace-nowrap",children:QL[I.manifest.categories[0]]||I.manifest.categories[0]}),R(I)]})]}),i.jsx(Wn,{className:"line-clamp-2",children:I.manifest?.description||"无描述"})]}),i.jsx(Pt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tC,{className:"h-4 w-4"}),i.jsx("span",{children:I.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(rL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:I.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[I.manifest?.keywords&&I.manifest.keywords.slice(0,3).map(q=>i.jsx(Ht,{variant:"outline",className:"text-xs",children:q},q)),I.manifest?.keywords&&I.manifest.keywords.length>3&&i.jsxs(Ht,{variant:"outline",className:"text-xs",children:["+",I.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",I.manifest?.version||"unknown"," · ",I.manifest?.author?.name||"Unknown"]}),I.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[I.manifest.host_application.min_version,I.manifest.host_application.max_version?` - ${I.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(nz,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>n(I),children:"查看详情"}),I.installed?D(I)?i.jsxs(oe,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>$(I),children:[i.jsx(os,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(oe,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(I),children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(oe,{size:"sm",disabled:!N?.installed||O?.operation==="install"||C!==null&&!L(I),title:N?.installed?C!==null&&!L(I)?`不兼容当前版本 (需要 ${I.manifest?.host_application?.min_version||"未知"}${I.manifest?.host_application?.max_version?` - ${I.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>H(I),children:[i.jsx(tC,{className:"h-4 w-4 mr-1"}),O?.operation==="install"&&O?.plugin_id===I.id?"安装中...":"安装"]})]})})]},I.id))}),i.jsx(sr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Xn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Zn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(gr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(Pf,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Ht,{variant:"secondary",children:QL[t.manifest.categories[0]]||t.manifest.categories[0]}),R(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(rL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(I=>i.jsx(Ht,{variant:"outline",children:I},I))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs(qr,{children:[t.manifest.homepage_url&&i.jsxs(oe,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(Pf,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(oe,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(Pf,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function VCe(){return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(os,{className:"h-4 w-4 mr-2"}),"刷新"]}),i.jsxs(oe,{size:"sm",children:[i.jsx(Ha,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"已安装插件"}),i.jsx(Mg,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"已启用"}),i.jsx(Dr,{className:"h-4 w-4 text-green-600"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"已禁用"}),i.jsx(xl,{className:"h-4 w-4 text-orange-600"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"可更新"}),i.jsx(os,{className:"h-4 w-4 text-blue-600"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"已安装的插件"}),i.jsx(Wn,{children:"查看和管理已安装插件的配置"})]}),i.jsx(Pt,{children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[i.jsx(Mg,{className:"h-16 w-16 text-muted-foreground/50"}),i.jsxs("div",{className:"text-center space-y-2",children:[i.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),i.jsx("div",{className:"flex gap-2",children:i.jsx(oe,{variant:"outline",asChild:!0,children:i.jsxs("a",{href:"/plugins",children:[i.jsx(Pf,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Ke,{children:[i.jsx(gt,{children:i.jsx(yt,{className:"text-base",children:"即将推出的功能"})}),i.jsx(Pt,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Dr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Dr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Dr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Dr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),i.jsxs(Ke,{children:[i.jsx(gt,{children:i.jsx(yt,{className:"text-base",children:"开发者工具"})}),i.jsx(Pt,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Ha,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"热重载"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Ha,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Ha,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Ha,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),i.jsx(Ke,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:i.jsx(Pt,{className:"pt-6",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(xl,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",i.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function GCe(){const e=ua(),{toast:t}=xr(),[n,r]=y.useState([]),[a,s]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b=y.useCallback(async()=>{try{s(!0),u(null);const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${T}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const R=await M.json();r(R.mirrors||[])}catch(T){const M=T instanceof Error?T.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{s(!1)}},[t]);y.useEffect(()=>{b()},[b]);const N=async()=>{try{const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const R=await M.json();throw new Error(R.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),w({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b()}catch(T){t({title:"添加失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},E=async()=>{if(d)try{const T=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),b()}catch(T){t({title:"更新失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},O=async T=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),b()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},A=async T=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!T.enabled})})).ok)throw new Error("更新状态失败");b()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=T=>{f(T),w({id:T.id,name:T.name,raw_prefix:T.raw_prefix,clone_prefix:T.clone_prefix,enabled:T.enabled,priority:T.priority}),x(!0)},k=async(T,M)=>{const R=M==="up"?T.priority-1:T.priority+1;if(!(R<1))try{const L=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${L}`,"Content-Type":"application/json"},body:JSON.stringify({priority:R})})).ok)throw new Error("更新优先级失败");b()}catch(L){t({title:"更新失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}};return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(m8,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(oe,{onClick:()=>p(!0),children:[i.jsx(ir,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(Ke,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(yh,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(Ke,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Xc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(oe,{onClick:b,children:"重新加载"})]})}):i.jsxs(Ke,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{children:"状态"}),i.jsx(Xe,{children:"名称"}),i.jsx(Xe,{children:"ID"}),i.jsx(Xe,{children:"优先级"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:n.map(T=>i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(dt,{checked:T.enabled,onCheckedChange:()=>A(T)})}),i.jsx(Be,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:T.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",T.raw_prefix]})]})}),i.jsx(Be,{children:i.jsx(Ht,{variant:"outline",children:T.id})}),i.jsx(Be,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:T.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(QN,{className:"h-3 w-3"})}),i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"down"),children:i.jsx(gh,{className:"h-3 w-3"})})]})]})}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>C(T),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>O(T.id),children:i.jsx(Ct,{className:"h-4 w-4 text-destructive"})})]})})]},T.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(T=>i.jsx(Ke,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:T.name}),T.enabled&&i.jsx(Ht,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Ht,{variant:"outline",className:"mt-1 text-xs",children:T.id})]}),i.jsx(dt,{checked:T.enabled,onCheckedChange:()=>A(T)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:T.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:T.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(oe,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(T),children:[i.jsx(Ru,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(QN,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"down"),children:i.jsx(gh,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"destructive",size:"sm",onClick:()=>O(T.id),children:i.jsx(Ct,{className:"h-4 w-4"})})]})]})},T.id))})]}),i.jsx(sr,{open:m,onOpenChange:p,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"添加镜像源"}),i.jsx(gr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ce,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:T=>w({...j,id:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ce,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ce,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ce,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ce,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"add-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(ne,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(oe,{onClick:N,children:"添加"})]})]})}),i.jsx(sr,{open:g,onOpenChange:x,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑镜像源"}),i.jsx(gr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"镜像源 ID"}),i.jsx(Ce,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ce,{id:"edit-name",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ce,{id:"edit-raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ce,{id:"edit-clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ce,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"edit-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(ne,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(oe,{onClick:E,children:"保存"})]})]})})]})})}const YCe=Qu("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),i9=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},s)=>i.jsx("kbd",{className:ue(YCe({size:t,className:e})),ref:s,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));i9.displayName="Kbd";const KCe=[{icon:kg,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:sE,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:y8,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:p8,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:cE,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:Xh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:v8,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:Tve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:Mg,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:Ag,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Ha,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function XCe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState(0),l=ua(),u=KCe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),s(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),s(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),s(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Xn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Zn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ce,{value:n,onChange:m=>{r(m.target.value),s(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Gt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>s(p),className:ue("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Br,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function ZCe(e){const t=QCe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(eOe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function QCe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=nOe(a),u=tOe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var JCe=Symbol("radix.slottable");function eOe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===JCe}function tOe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function nOe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var _C=["Enter"," "],rOe=["ArrowDown","PageUp","Home"],s9=["ArrowUp","PageDown","End"],aOe=[...rOe,...s9],iOe={ltr:[..._C,"ArrowRight"],rtl:[..._C,"ArrowLeft"]},sOe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},lm="Menu",[Ch,oOe,lOe]=Rh(lm),[Ll,o9]=yr(lm,[lOe,vo,Xg]),cm=vo(),l9=Xg(),[c9,wo]=Ll(lm),[cOe,um]=Ll(lm),u9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:s,modal:l=!0}=e,u=cm(t),[d,f]=y.useState(null),m=y.useRef(!1),p=yn(s),g=Uu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(tm,{...u,children:i.jsx(c9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(cOe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};u9.displayName=lm;var uOe="MenuAnchor",BE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=cm(n);return i.jsx(nm,{...a,...r,ref:t})});BE.displayName=uOe;var qE="MenuPortal",[dOe,d9]=Ll(qE,{forceMount:void 0}),f9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,s=wo(qE,t);return i.jsx(dOe,{scope:t,forceMount:n,children:i.jsx(zn,{present:n||s.open,children:i.jsx(Ml,{asChild:!0,container:a,children:r})})})};f9.displayName=qE;var Aa="MenuContent",[fOe,FE]=Ll(Aa),h9=y.forwardRef((e,t)=>{const n=d9(Aa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=wo(Aa,e.__scopeMenu),l=um(Aa,e.__scopeMenu);return i.jsx(Ch.Provider,{scope:e.__scopeMenu,children:i.jsx(zn,{present:r||s.open,children:i.jsx(Ch.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(hOe,{...a,ref:t}):i.jsx(mOe,{...a,ref:t})})})})}),hOe=y.forwardRef((e,t)=>{const n=wo(Aa,e.__scopeMenu),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return Fy(s)},[]),i.jsx(UE,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Ne(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),mOe=y.forwardRef((e,t)=>{const n=wo(Aa,e.__scopeMenu);return i.jsx(UE,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),pOe=ZCe("MenuContent.ScrollLock"),UE=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...w}=e,b=wo(Aa,n),N=um(Aa,n),E=cm(n),O=l9(n),A=oOe(n),[C,k]=y.useState(null),T=y.useRef(null),M=Ue(t,T,b.onContentChange),R=y.useRef(0),L=y.useRef(""),D=y.useRef(0),U=y.useRef(null),V=y.useRef("right"),H=y.useRef(0),G=j?Jh:y.Fragment,$=j?{as:pOe,allowPinchZoom:!0}:void 0,I=Z=>{const ee=L.current+Z,F=A().filter(ae=>!ae.disabled),z=document.activeElement,K=F.find(ae=>ae.ref.current===z)?.textValue,ie=F.map(ae=>ae.textValue),Q=OOe(ie,ee,K),he=F.find(ae=>ae.textValue===Q)?.ref.current;(function ae(we){L.current=we,window.clearTimeout(R.current),we!==""&&(R.current=window.setTimeout(()=>ae(""),1e3))})(ee),he&&setTimeout(()=>he.focus())};y.useEffect(()=>()=>window.clearTimeout(R.current),[]),By();const q=y.useCallback(Z=>V.current===U.current?.side&&AOe(Z,U.current?.area),[]);return i.jsx(fOe,{scope:n,searchRef:L,onItemEnter:y.useCallback(Z=>{q(Z)&&Z.preventDefault()},[q]),onItemLeave:y.useCallback(Z=>{q(Z)||(T.current?.focus(),k(null))},[q]),onTriggerLeave:y.useCallback(Z=>{q(Z)&&Z.preventDefault()},[q]),pointerGraceTimerRef:D,onPointerGraceIntentChange:y.useCallback(Z=>{U.current=Z},[]),children:i.jsx(G,{...$,children:i.jsx(Qh,{asChild:!0,trapped:a,onMountAutoFocus:Ne(s,Z=>{Z.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(kl,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(lz,{asChild:!0,...O,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:Ne(d,Z=>{N.isUsingKeyboardRef.current||Z.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Qy,{role:"menu","aria-orientation":"vertical","data-state":T9(b.open),"data-radix-menu-content":"",dir:N.dir,...E,...w,ref:M,style:{outline:"none",...w.style},onKeyDown:Ne(w.onKeyDown,Z=>{const F=Z.target.closest("[data-radix-menu-content]")===Z.currentTarget,z=Z.ctrlKey||Z.altKey||Z.metaKey,K=Z.key.length===1;F&&(Z.key==="Tab"&&Z.preventDefault(),!z&&K&&I(Z.key));const ie=T.current;if(Z.target!==ie||!aOe.includes(Z.key))return;Z.preventDefault();const he=A().filter(ae=>!ae.disabled).map(ae=>ae.ref.current);s9.includes(Z.key)&&he.reverse(),NOe(he)}),onBlur:Ne(e.onBlur,Z=>{Z.currentTarget.contains(Z.target)||(window.clearTimeout(R.current),L.current="")}),onPointerMove:Ne(e.onPointerMove,Oh(Z=>{const ee=Z.target,F=H.current!==Z.clientX;if(Z.currentTarget.contains(ee)&&F){const z=Z.clientX>H.current?"right":"left";V.current=z,H.current=Z.clientX}}))})})})})})})});h9.displayName=Aa;var vOe="MenuGroup",HE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"group",...r,ref:t})});HE.displayName=vOe;var gOe="MenuLabel",m9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});m9.displayName=gOe;var Bg="MenuItem",JL="menu.itemSelect",ux=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,s=y.useRef(null),l=um(Bg,e.__scopeMenu),u=FE(Bg,e.__scopeMenu),d=Ue(t,s),f=y.useRef(!1),m=()=>{const p=s.current;if(!n&&p){const g=new CustomEvent(JL,{bubbles:!0,cancelable:!0});p.addEventListener(JL,x=>r?.(x),{once:!0}),VC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(p9,{...a,ref:d,disabled:n,onClick:Ne(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:Ne(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:Ne(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||_C.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});ux.displayName=Bg;var p9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...s}=e,l=FE(Bg,n),u=l9(n),d=y.useRef(null),f=Ue(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[s.children]),i.jsx(Ch.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(cz,{asChild:!0,...u,focusable:!r,children:i.jsx($e.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:f,onPointerMove:Ne(e.onPointerMove,Oh(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Ne(e.onPointerLeave,Oh(j=>l.onItemLeave(j))),onFocus:Ne(e.onFocus,()=>p(!0)),onBlur:Ne(e.onBlur,()=>p(!1))})})})}),yOe="MenuCheckboxItem",v9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(w9,{scope:e.__scopeMenu,checked:n,children:i.jsx(ux,{role:"menuitemcheckbox","aria-checked":qg(n)?"mixed":n,...a,ref:t,"data-state":GE(n),onSelect:Ne(a.onSelect,()=>r?.(qg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});v9.displayName=yOe;var g9="MenuRadioGroup",[xOe,bOe]=Ll(g9,{value:void 0,onValueChange:()=>{}}),y9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,s=yn(r);return i.jsx(xOe,{scope:e.__scopeMenu,value:n,onValueChange:s,children:i.jsx(HE,{...a,ref:t})})});y9.displayName=g9;var x9="MenuRadioItem",b9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=bOe(x9,e.__scopeMenu),s=n===a.value;return i.jsx(w9,{scope:e.__scopeMenu,checked:s,children:i.jsx(ux,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":GE(s),onSelect:Ne(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});b9.displayName=x9;var WE="MenuItemIndicator",[w9,wOe]=Ll(WE,{checked:!1}),j9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,s=wOe(WE,n);return i.jsx(zn,{present:r||qg(s.checked)||s.checked===!0,children:i.jsx($e.span,{...a,ref:t,"data-state":GE(s.checked)})})});j9.displayName=WE;var jOe="MenuSeparator",S9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});S9.displayName=jOe;var SOe="MenuArrow",_9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=cm(n);return i.jsx(Jy,{...a,...r,ref:t})});_9.displayName=SOe;var VE="MenuSub",[_Oe,N9]=Ll(VE),C9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,s=wo(VE,t),l=cm(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=yn(a);return y.useEffect(()=>(s.open===!1&&p(!1),()=>p(!1)),[s.open,p]),i.jsx(tm,{...l,children:i.jsx(c9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(_Oe,{scope:t,contentId:Gn(),triggerId:Gn(),trigger:u,onTriggerChange:d,children:n})})})};C9.displayName=VE;var wf="MenuSubTrigger",O9=y.forwardRef((e,t)=>{const n=wo(wf,e.__scopeMenu),r=um(wf,e.__scopeMenu),a=N9(wf,e.__scopeMenu),s=FE(wf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=s,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(BE,{asChild:!0,...f,children:i.jsx(p9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":T9(n.open),...e,ref:zr(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Ne(e.onPointerMove,Oh(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(s.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:Ne(e.onPointerLeave,Oh(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",w=j?-5:5,b=g[j?"left":"right"],N=g[j?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:b,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:b,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:Ne(e.onKeyDown,p=>{const g=s.searchRef.current!=="";e.disabled||g&&p.key===" "||iOe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});O9.displayName=wf;var E9="MenuSubContent",A9=y.forwardRef((e,t)=>{const n=d9(Aa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=wo(Aa,e.__scopeMenu),l=um(Aa,e.__scopeMenu),u=N9(E9,e.__scopeMenu),d=y.useRef(null),f=Ue(t,d);return i.jsx(Ch.Provider,{scope:e.__scopeMenu,children:i.jsx(zn,{present:r||s.open,children:i.jsx(Ch.Slot,{scope:e.__scopeMenu,children:i.jsx(UE,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:Ne(e.onFocusOutside,m=>{m.target!==u.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:Ne(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:Ne(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=sOe[l.dir].includes(m.key);p&&g&&(s.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});A9.displayName=E9;function T9(e){return e?"open":"closed"}function qg(e){return e==="indeterminate"}function GE(e){return qg(e)?"indeterminate":e?"checked":"unchecked"}function NOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function COe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function OOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=COe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function EOe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function AOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return EOe(n,t)}function Oh(e){return t=>t.pointerType==="mouse"?e(t):void 0}var TOe=u9,kOe=BE,MOe=f9,POe=h9,ROe=HE,DOe=m9,$Oe=ux,IOe=v9,LOe=y9,zOe=b9,BOe=j9,qOe=S9,FOe=_9,UOe=C9,HOe=O9,WOe=A9,YE="ContextMenu",[VOe]=yr(YE,[o9]),br=o9(),[GOe,k9]=VOe(YE),M9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:s=!0}=e,[l,u]=y.useState(!1),d=br(t),f=yn(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(GOe,{scope:t,open:l,onOpenChange:m,modal:s,children:i.jsx(TOe,{...d,dir:a,open:l,onOpenChange:m,modal:s,children:n})})};M9.displayName=YE;var P9="ContextMenuTrigger",R9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,s=k9(P9,n),l=br(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},s.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(kOe,{...l,virtualRef:d}),i.jsx($e.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:Ne(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:Ne(e.onPointerDown,av(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:Ne(e.onPointerMove,av(m)),onPointerCancel:r?e.onPointerCancel:Ne(e.onPointerCancel,av(m)),onPointerUp:r?e.onPointerUp:Ne(e.onPointerUp,av(m))})]})});R9.displayName=P9;var YOe="ContextMenuPortal",D9=e=>{const{__scopeContextMenu:t,...n}=e,r=br(t);return i.jsx(MOe,{...r,...n})};D9.displayName=YOe;var $9="ContextMenuContent",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=k9($9,n),s=br(n),l=y.useRef(!1);return i.jsx(POe,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});I9.displayName=$9;var KOe="ContextMenuGroup",XOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(ROe,{...a,...r,ref:t})});XOe.displayName=KOe;var ZOe="ContextMenuLabel",L9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(DOe,{...a,...r,ref:t})});L9.displayName=ZOe;var QOe="ContextMenuItem",z9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx($Oe,{...a,...r,ref:t})});z9.displayName=QOe;var JOe="ContextMenuCheckboxItem",B9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(IOe,{...a,...r,ref:t})});B9.displayName=JOe;var eEe="ContextMenuRadioGroup",tEe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(LOe,{...a,...r,ref:t})});tEe.displayName=eEe;var nEe="ContextMenuRadioItem",q9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(zOe,{...a,...r,ref:t})});q9.displayName=nEe;var rEe="ContextMenuItemIndicator",F9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(BOe,{...a,...r,ref:t})});F9.displayName=rEe;var aEe="ContextMenuSeparator",U9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(qOe,{...a,...r,ref:t})});U9.displayName=aEe;var iEe="ContextMenuArrow",sEe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(FOe,{...a,...r,ref:t})});sEe.displayName=iEe;var H9="ContextMenuSub",W9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:s}=e,l=br(t),[u,d]=Ta({prop:a,defaultProp:s??!1,onChange:r,caller:H9});return i.jsx(UOe,{...l,open:u,onOpenChange:d,children:n})};W9.displayName=H9;var oEe="ContextMenuSubTrigger",V9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(HOe,{...a,...r,ref:t})});V9.displayName=oEe;var lEe="ContextMenuSubContent",G9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(WOe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});G9.displayName=lEe;function av(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var cEe=M9,uEe=R9,dEe=D9,Y9=I9,K9=L9,X9=z9,Z9=B9,Q9=q9,J9=F9,eW=U9,fEe=W9,tW=V9,nW=G9;const hEe=cEe,mEe=uEe,pEe=fEe,rW=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(tW,{ref:a,className:ue("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(Kh,{className:"ml-auto h-4 w-4"})]}));rW.displayName=tW.displayName;const aW=y.forwardRef(({className:e,...t},n)=>i.jsx(nW,{ref:n,className:ue("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));aW.displayName=nW.displayName;const iW=y.forwardRef(({className:e,...t},n)=>i.jsx(dEe,{children:i.jsx(Y9,{ref:n,className:ue("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));iW.displayName=Y9.displayName;const za=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(X9,{ref:r,className:ue("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));za.displayName=X9.displayName;const vEe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(Z9,{ref:a,className:ue("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(J9,{children:i.jsx(cl,{className:"h-4 w-4"})})}),t]}));vEe.displayName=Z9.displayName;const gEe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Q9,{ref:r,className:ue("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(J9,{children:i.jsx(Gve,{className:"h-2 w-2 fill-current"})})}),t]}));gEe.displayName=Q9.displayName;const yEe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(K9,{ref:r,className:ue("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));yEe.displayName=K9.displayName;const jf=y.forwardRef(({className:e,...t},n)=>i.jsx(eW,{ref:n,className:ue("-mx-1 my-1 h-px bg-border",e),...t}));jf.displayName=eW.displayName;const qc=({className:e,...t})=>i.jsx("span",{className:ue("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});qc.displayName="ContextMenuShortcut";var xEe=Symbol("radix.slottable");function bEe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=xEe,t}var[dx]=yr("Tooltip",[vo]),fx=vo(),sW="TooltipProvider",wEe=700,NC="tooltip.open",[jEe,KE]=dx(sW),oW=e=>{const{__scopeTooltip:t,delayDuration:n=wEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(jEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:s})};oW.displayName=sW;var Eh="Tooltip",[SEe,dm]=dx(Eh),lW=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:s,disableHoverableContent:l,delayDuration:u}=e,d=KE(Eh,e.__scopeTooltip),f=fx(t),[m,p]=y.useState(null),g=Gn(),x=y.useRef(0),j=l??d.disableHoverableContent,w=u??d.delayDuration,b=y.useRef(!1),[N,E]=Ta({prop:r,defaultProp:a??!1,onChange:T=>{T?(d.onOpen(),document.dispatchEvent(new CustomEvent(NC))):d.onClose(),s?.(T)},caller:Eh}),O=y.useMemo(()=>N?b.current?"delayed-open":"instant-open":"closed",[N]),A=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,b.current=!1,E(!0)},[E]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,E(!1)},[E]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{b.current=!0,E(!0),x.current=0},w)},[w,E]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(tm,{...f,children:i.jsx(SEe,{scope:t,contentId:g,open:N,stateAttribute:O,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():A()},[d.isOpenDelayedRef,k,A]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:A,onClose:C,disableHoverableContent:j,children:n})})};lW.displayName=Eh;var CC="TooltipTrigger",cW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=dm(CC,n),s=KE(CC,n),l=fx(n),u=y.useRef(null),d=Ue(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(nm,{asChild:!0,...l,children:i.jsx($e.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:Ne(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:Ne(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:Ne(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:Ne(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:Ne(e.onBlur,a.onClose),onClick:Ne(e.onClick,a.onClose)})})});cW.displayName=CC;var XE="TooltipPortal",[_Ee,NEe]=dx(XE,{forceMount:void 0}),uW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,s=dm(XE,t);return i.jsx(_Ee,{scope:t,forceMount:n,children:i.jsx(zn,{present:n||s.open,children:i.jsx(Ml,{asChild:!0,container:a,children:r})})})};uW.displayName=XE;var Lu="TooltipContent",dW=y.forwardRef((e,t)=>{const n=NEe(Lu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,l=dm(Lu,e.__scopeTooltip);return i.jsx(zn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(fW,{side:a,...s,ref:t}):i.jsx(CEe,{side:a,...s,ref:t})})}),CEe=y.forwardRef((e,t)=>{const n=dm(Lu,e.__scopeTooltip),r=KE(Lu,e.__scopeTooltip),a=y.useRef(null),s=Ue(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,w)=>{const b=j.currentTarget,N={x:j.clientX,y:j.clientY},E=kEe(N,b.getBoundingClientRect()),O=MEe(N,E),A=PEe(w.getBoundingClientRect()),C=DEe([...O,...A]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=b=>x(b,m),w=b=>x(b,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",w)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=w=>{const b=w.target,N={x:w.clientX,y:w.clientY},E=d?.contains(b)||m?.contains(b),O=!REe(N,l);E?g():O&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(fW,{...e,ref:s})}),[OEe,EEe]=dx(Eh,{isInside:!1}),AEe=bEe("TooltipContent"),fW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:l,...u}=e,d=dm(Lu,n),f=fx(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(NC,m),()=>document.removeEventListener(NC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(kl,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Qy,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(AEe,{children:r}),i.jsx(OEe,{scope:n,isInside:!0,children:i.jsx(Cwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});dW.displayName=Lu;var hW="TooltipArrow",TEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=fx(n);return EEe(hW,n).isInside?null:i.jsx(Jy,{...a,...r,ref:t})});TEe.displayName=hW;function kEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function MEe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function PEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function REe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function DEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),$Ee(t)}function $Ee(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const s=t[t.length-1],l=t[t.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],l=n[n.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var IEe=oW,LEe=lW,zEe=cW,BEe=uW,mW=dW;const qEe=IEe,FEe=LEe,UEe=zEe,pW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(BEe,{children:i.jsx(mW,{ref:r,sideOffset:t,className:ue("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));pW.displayName=mW.displayName;function HEe({children:e}){vbe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[s,l]=y.useState(!1),{theme:u,setTheme:d}=uE(),f=YY(),m=ua();y.useEffect(()=>{const w=b=>{(b.metaKey||b.ctrlKey)&&b.key==="k"&&(b.preventDefault(),l(!0))};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);const p=[{title:"概览",items:[{icon:kg,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:sE,label:"麦麦主程序配置",path:"/config/bot"},{icon:y8,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:p8,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:cE,label:"表情包管理",path:"/resource/emoji"},{icon:Xh,label:"表达方式管理",path:"/resource/expression"},{icon:v8,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:Mg,label:"插件市场",path:"/plugins"},{icon:Hge,label:"插件配置",path:"/plugin-config"},{icon:Ag,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Ha,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(qEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:ue("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:ue("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:ue("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:Eye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:ue("space-y-6",!t&&"lg:space-y-3"),children:p.map((w,b)=>i.jsxs("li",{children:[i.jsx("div",{className:ue("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:w.title})}),!t&&b>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:w.items.map(N=>{const E=f({to:N.path}),O=N.icon,A=i.jsxs(i.Fragment,{children:[E&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:ue("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(O,{className:ue("h-5 w-5 flex-shrink-0",E&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:ue("text-sm font-medium whitespace-nowrap transition-all duration-300",E&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(FEe,{children:[i.jsx(UEe,{asChild:!0,children:i.jsx(zC,{to:N.path,className:ue("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",E?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:A})}),!t&&i.jsx(pW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},w.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(vge,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(Yh,{className:ue("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(i9,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(XCe,{open:s,onOpenChange:l}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(_ve,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:w=>{uye(x==="dark"?"light":"dark",d,w)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(iC,{className:"h-5 w-5"}):i.jsx(aC,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(nL,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(hEe,{children:[i.jsx(mEe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(iW,{className:"w-64",children:[i.jsxs(za,{onClick:()=>m({to:"/"}),children:[i.jsx(kg,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(za,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Ha,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(za,{onClick:()=>m({to:"/logs"}),children:[i.jsx(Ag,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(jf,{}),i.jsxs(pEe,{children:[i.jsxs(rW,{children:[i.jsx(g8,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(aW,{className:"w-48",children:[i.jsxs(za,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(iC,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(qc,{children:"✓"})]}),i.jsxs(za,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(aC,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(qc,{children:"✓"})]}),i.jsxs(za,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Ha,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(qc,{children:"✓"})]})]})]}),i.jsx(jf,{}),i.jsxs(za,{onClick:()=>window.location.reload(),children:[i.jsx(Mge,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(qc,{children:"⌘R"})]}),i.jsxs(za,{onClick:()=>l(!0),children:[i.jsx(Br,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(qc,{children:"⌘K"})]}),i.jsx(jf,{}),i.jsxs(za,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(Pf,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(jf,{}),i.jsxs(za,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(nL,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const fm=zY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(BC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!AF())throw i5({to:"/auth"})}}),WEe=or({getParentRoute:()=>fm,path:"/auth",component:gbe}),VEe=or({getParentRoute:()=>fm,path:"/setup",component:$be}),da=or({getParentRoute:()=>fm,id:"protected",component:()=>i.jsx(HEe,{children:i.jsx(BC,{})})}),GEe=or({getParentRoute:()=>da,path:"/",component:lye}),YEe=or({getParentRoute:()=>da,path:"/config/bot",component:Oje}),KEe=or({getParentRoute:()=>da,path:"/config/modelProvider",component:Gje}),XEe=or({getParentRoute:()=>da,path:"/config/model",component:w1e}),ZEe=or({getParentRoute:()=>da,path:"/resource/emoji",component:T1e}),QEe=or({getParentRoute:()=>da,path:"/resource/expression",component:B1e}),JEe=or({getParentRoute:()=>da,path:"/resource/person",component:Z1e}),e2e=or({getParentRoute:()=>da,path:"/logs",component:MCe}),t2e=or({getParentRoute:()=>da,path:"/plugins",component:WCe}),n2e=or({getParentRoute:()=>da,path:"/plugin-config",component:VCe}),r2e=or({getParentRoute:()=>da,path:"/plugin-mirrors",component:GCe}),a2e=or({getParentRoute:()=>da,path:"/settings",component:cbe}),i2e=or({getParentRoute:()=>fm,path:"*",component:MF}),s2e=fm.addChildren([WEe,VEe,da.addChildren([GEe,YEe,KEe,XEe,ZEe,QEe,JEe,t2e,n2e,r2e,e2e,a2e]),i2e]),o2e=KY({routeTree:s2e,defaultNotFoundComponent:MF});function l2e({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,s]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[u];m&&(d.style.setProperty("--primary",m.hsl),m.gradient?(d.style.setProperty("--primary-gradient",m.gradient),d.classList.add("has-gradient")):(d.style.removeProperty("--primary-gradient"),d.classList.remove("has-gradient")))}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),s(u)}};return i.jsx(b8.Provider,{...r,value:l,children:e})}function c2e({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[s,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;s?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(s))},[s,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:s,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(w8.Provider,{value:f,children:e})}var ZE="ToastProvider",[QE,u2e,d2e]=Rh("Toast"),[vW]=yr("Toast",[d2e]),[f2e,hx]=vW(ZE),gW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${ZE}\`. Expected non-empty \`string\`.`),i.jsx(QE.Provider,{scope:t,children:i.jsx(f2e,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};gW.displayName=ZE;var yW="ToastViewport",h2e=["F8"],OC="toast.viewportPause",EC="toast.viewportResume",xW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=h2e,label:a="Notifications ({hotkey})",...s}=e,l=hx(yW,n),u=u2e(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=Ue(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const b=N=>{r.length!==0&&r.every(O=>N[O]||N.code===O)&&p.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),y.useEffect(()=>{const b=d.current,N=p.current;if(j&&b&&N){const E=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(OC);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},O=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(EC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},A=k=>{!b.contains(k.relatedTarget)&&O()},C=()=>{b.contains(document.activeElement)||O()};return b.addEventListener("focusin",E),b.addEventListener("focusout",A),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",C),window.addEventListener("blur",E),window.addEventListener("focus",O),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",A),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",C),window.removeEventListener("blur",E),window.removeEventListener("focus",O)}}},[j,l.isClosePausedRef]);const w=y.useCallback(({tabbingDirection:b})=>{const E=u().map(O=>{const A=O.ref.current,C=[A,...C2e(A)];return b==="forwards"?C:C.reverse()});return(b==="forwards"?E.reverse():E).flat()},[u]);return y.useEffect(()=>{const b=p.current;if(b){const N=E=>{const O=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!O){const C=document.activeElement,k=E.shiftKey;if(E.target===b&&k){f.current?.focus();return}const R=w({tabbingDirection:k?"backwards":"forwards"}),L=R.findIndex(D=>D===C);y_(R.slice(L+1))?E.preventDefault():k?f.current?.focus():m.current?.focus()}};return b.addEventListener("keydown",N),()=>b.removeEventListener("keydown",N)}},[u,w]),i.jsxs(Iye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(AC,{ref:f,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"forwards"});y_(b)}}),i.jsx(QE.Slot,{scope:n,children:i.jsx($e.ol,{tabIndex:-1,...s,ref:g})}),j&&i.jsx(AC,{ref:m,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"backwards"});y_(b)}})]})});xW.displayName=yW;var bW="ToastFocusProxy",AC=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=hx(bW,n);return i.jsx(ex,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!s.viewport?.contains(u)&&r()}})});AC.displayName=bW;var hm="Toast",m2e="toast.swipeStart",p2e="toast.swipeMove",v2e="toast.swipeCancel",g2e="toast.swipeEnd",wW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...l}=e,[u,d]=Ta({prop:r,defaultProp:a??!0,onChange:s,caller:hm});return i.jsx(zn,{present:n||u,children:i.jsx(b2e,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:yn(e.onPause),onResume:yn(e.onResume),onSwipeStart:Ne(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Ne(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:Ne(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Ne(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});wW.displayName=hm;var[y2e,x2e]=vW(hm,{onClose(){}}),b2e=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,w=hx(hm,n),[b,N]=y.useState(null),E=Ue(t,H=>N(H)),O=y.useRef(null),A=y.useRef(null),C=a||w.duration,k=y.useRef(0),T=y.useRef(C),M=y.useRef(0),{onToastAdd:R,onToastRemove:L}=w,D=yn(()=>{b?.contains(document.activeElement)&&w.viewport?.focus(),l()}),U=y.useCallback(H=>{!H||H===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout(D,H))},[D]);y.useEffect(()=>{const H=w.viewport;if(H){const G=()=>{U(T.current),f?.()},$=()=>{const I=new Date().getTime()-k.current;T.current=T.current-I,window.clearTimeout(M.current),d?.()};return H.addEventListener(OC,$),H.addEventListener(EC,G),()=>{H.removeEventListener(OC,$),H.removeEventListener(EC,G)}}},[w.viewport,C,d,f,U]),y.useEffect(()=>{s&&!w.isClosePausedRef.current&&U(C)},[s,C,w.isClosePausedRef,U]),y.useEffect(()=>(R(),()=>L()),[R,L]);const V=y.useMemo(()=>b?EW(b):null,[b]);return w.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(w2e,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(y2e,{scope:n,onClose:D,children:Nl.createPortal(i.jsx(QE.ItemSlot,{scope:n,children:i.jsx($ye,{asChild:!0,onEscapeKeyDown:Ne(u,()=>{w.isFocusedToastEscapeKeyDownRef.current||D(),w.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx($e.li,{tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":w.swipeDirection,...j,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Ne(e.onKeyDown,H=>{H.key==="Escape"&&(u?.(H.nativeEvent),H.nativeEvent.defaultPrevented||(w.isFocusedToastEscapeKeyDownRef.current=!0,D()))}),onPointerDown:Ne(e.onPointerDown,H=>{H.button===0&&(O.current={x:H.clientX,y:H.clientY})}),onPointerMove:Ne(e.onPointerMove,H=>{if(!O.current)return;const G=H.clientX-O.current.x,$=H.clientY-O.current.y,I=!!A.current,q=["left","right"].includes(w.swipeDirection),Z=["left","up"].includes(w.swipeDirection)?Math.min:Math.max,ee=q?Z(0,G):0,F=q?0:Z(0,$),z=H.pointerType==="touch"?10:2,K={x:ee,y:F},ie={originalEvent:H,delta:K};I?(A.current=K,iv(p2e,p,ie,{discrete:!1})):e5(K,w.swipeDirection,z)?(A.current=K,iv(m2e,m,ie,{discrete:!1}),H.target.setPointerCapture(H.pointerId)):(Math.abs(G)>z||Math.abs($)>z)&&(O.current=null)}),onPointerUp:Ne(e.onPointerUp,H=>{const G=A.current,$=H.target;if($.hasPointerCapture(H.pointerId)&&$.releasePointerCapture(H.pointerId),A.current=null,O.current=null,G){const I=H.currentTarget,q={originalEvent:H,delta:G};e5(G,w.swipeDirection,w.swipeThreshold)?iv(g2e,x,q,{discrete:!0}):iv(v2e,g,q,{discrete:!0}),I.addEventListener("click",Z=>Z.preventDefault(),{once:!0})}})})})}),w.viewport)})]}):null}),w2e=e=>{const{__scopeToast:t,children:n,...r}=e,a=hx(hm,t),[s,l]=y.useState(!1),[u,d]=y.useState(!1);return _2e(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(Ml,{asChild:!0,children:i.jsx(ex,{...r,children:s&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},j2e="ToastTitle",jW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});jW.displayName=j2e;var S2e="ToastDescription",SW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});SW.displayName=S2e;var _W="ToastAction",NW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(OW,{altText:n,asChild:!0,children:i.jsx(JE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${_W}\`. Expected non-empty \`string\`.`),null)});NW.displayName=_W;var CW="ToastClose",JE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=x2e(CW,n);return i.jsx(OW,{asChild:!0,children:i.jsx($e.button,{type:"button",...r,ref:t,onClick:Ne(e.onClick,a.onClose)})})});JE.displayName=CW;var OW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx($e.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function EW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),N2e(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...EW(r))}}),t}function iv(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?VC(a,s):a.dispatchEvent(s)}var e5=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function _2e(e=()=>{}){const t=yn(e);Yn(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function N2e(e){return e.nodeType===e.ELEMENT_NODE}function C2e(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function y_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var O2e=gW,AW=xW,TW=wW,kW=jW,MW=SW,PW=NW,RW=JE;const E2e=O2e,DW=y.forwardRef(({className:e,...t},n)=>i.jsx(AW,{ref:n,className:ue("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));DW.displayName=AW.displayName;const A2e=Qu("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),$W=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(TW,{ref:r,className:ue(A2e({variant:t}),e),...n}));$W.displayName=TW.displayName;const T2e=y.forwardRef(({className:e,...t},n)=>i.jsx(PW,{ref:n,className:ue("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));T2e.displayName=PW.displayName;const IW=y.forwardRef(({className:e,...t},n)=>i.jsx(RW,{ref:n,className:ue("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Zh,{className:"h-4 w-4"})}));IW.displayName=RW.displayName;const LW=y.forwardRef(({className:e,...t},n)=>i.jsx(kW,{ref:n,className:ue("text-sm font-semibold [&+div]:text-xs",e),...t}));LW.displayName=kW.displayName;const zW=y.forwardRef(({className:e,...t},n)=>i.jsx(MW,{ref:n,className:ue("text-sm opacity-90",e),...t}));zW.displayName=MW.displayName;function k2e(){const{toasts:e}=xr();return i.jsxs(E2e,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return i.jsxs($W,{...s,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx(LW,{children:n}),r&&i.jsx(zW,{children:r})]}),a,i.jsx(IW,{})]},t)}),i.jsx(DW,{})]})}oG.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(l2e,{defaultTheme:"system",children:i.jsxs(c2e,{children:[i.jsx(QY,{router:o2e}),i.jsx(k2e,{})]})})})); diff --git a/webui/dist/assets/index-CcCiBqqZ.js b/webui/dist/assets/index-CcCiBqqZ.js deleted file mode 100644 index ba92bec5..00000000 --- a/webui/dist/assets/index-CcCiBqqZ.js +++ /dev/null @@ -1,157 +0,0 @@ -function XV(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var Np=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function At(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var E0={exports:{}},Yd={};var Gk;function ZV(){if(Gk)return Yd;Gk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var l=null;if(s!==void 0&&(l=""+s),a.key!==void 0&&(l=""+a.key),"key"in a){s={};for(var u in a)u!=="key"&&(s[u]=a[u])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:s}}return Yd.Fragment=t,Yd.jsx=n,Yd.jsxs=n,Yd}var Yk;function QV(){return Yk||(Yk=1,E0.exports=ZV()),E0.exports}var i=QV(),A0={exports:{}},Ze={};var Kk;function JV(){if(Kk)return Ze;Kk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(I){return I===null||typeof I!="object"?null:(I=g&&I[g]||I["@@iterator"],typeof I=="function"?I:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function N(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}N.prototype.isReactComponent={},N.prototype.setState=function(I,z){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,z,"setState")},N.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function E(){}E.prototype=N.prototype;function O(I,z,Y){this.props=I,this.context=z,this.refs=b,this.updater=Y||j}var A=O.prototype=new E;A.constructor=O,w(A,N.prototype),A.isPureReactComponent=!0;var C=Array.isArray;function k(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function R(I,z,Y){var te=Y.ref;return{$$typeof:e,type:I,key:z,ref:te!==void 0?te:null,props:Y}}function B(I,z){return R(I.type,z,I.props)}function $(I){return typeof I=="object"&&I!==null&&I.$$typeof===e}function H(I){var z={"=":"=0",":":"=2"};return"$"+I.replace(/[=:]/g,function(Y){return z[Y]})}var V=/\/+/g;function q(I,z){return typeof I=="object"&&I!==null&&I.key!=null?H(""+I.key):z.toString(36)}function G(I){switch(I.status){case"fulfilled":return I.value;case"rejected":throw I.reason;default:switch(typeof I.status=="string"?I.then(k,k):(I.status="pending",I.then(function(z){I.status==="pending"&&(I.status="fulfilled",I.value=z)},function(z){I.status==="pending"&&(I.status="rejected",I.reason=z)})),I.status){case"fulfilled":return I.value;case"rejected":throw I.reason}}throw I}function L(I,z,Y,te,ae){var ge=typeof I;(ge==="undefined"||ge==="boolean")&&(I=null);var ee=!1;if(I===null)ee=!0;else switch(ge){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(I.$$typeof){case e:case t:ee=!0;break;case m:return ee=I._init,L(ee(I._payload),z,Y,te,ae)}}if(ee)return ae=ae(I),ee=te===""?"."+q(I,0):te,C(ae)?(Y="",ee!=null&&(Y=ee.replace(V,"$&/")+"/"),L(ae,z,Y,"",function(we){return we})):ae!=null&&($(ae)&&(ae=B(ae,Y+(ae.key==null||I&&I.key===ae.key?"":(""+ae.key).replace(V,"$&/")+"/")+ee)),z.push(ae)),1;ee=0;var Se=te===""?".":te+":";if(C(I))for(var re=0;re>>1,J=L[K];if(0>>1;Ka(Y,U))tea(ae,Y)?(L[K]=ae,L[te]=U,K=te):(L[K]=Y,L[z]=U,K=z);else if(tea(ae,U))L[K]=ae,L[te]=U,K=te;else break e}}return D}function a(L,D){var U=L.sortIndex-D.sortIndex;return U!==0?U:L.id-D.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,w=!1,b=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function A(L){for(var D=n(f);D!==null;){if(D.callback===null)r(f);else if(D.startTime<=L)r(f),D.sortIndex=D.expirationTime,t(d,D);else break;D=n(f)}}function C(L){if(w=!1,A(L),!j)if(n(d)!==null)j=!0,k||(k=!0,H());else{var D=n(f);D!==null&&G(C,D.startTime-L)}}var k=!1,T=-1,M=5,R=-1;function B(){return b?!0:!(e.unstable_now()-RL&&B());){var K=p.callback;if(typeof K=="function"){p.callback=null,g=p.priorityLevel;var J=K(p.expirationTime<=L);if(L=e.unstable_now(),typeof J=="function"){p.callback=J,A(L),D=!0;break t}p===n(d)&&r(d),A(L)}else r(d);p=n(d)}if(p!==null)D=!0;else{var I=n(f);I!==null&&G(C,I.startTime-L),D=!1}}break e}finally{p=null,g=U,x=!1}D=void 0}}finally{D?H():k=!1}}}var H;if(typeof O=="function")H=function(){O($)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,q=V.port2;V.port1.onmessage=$,H=function(){q.postMessage(null)}}else H=function(){N($,0)};function G(L,D){T=N(function(){L(e.unstable_now())},D)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(L){L.callback=null},e.unstable_forceFrameRate=function(L){0>L||125K?(L.sortIndex=U,t(f,L),n(d)===null&&L===n(f)&&(w?(E(T),T=-1):w=!0,G(C,U-K))):(L.sortIndex=J,t(d,L),j||x||(j=!0,k||(k=!0,H()))),L},e.unstable_shouldYield=B,e.unstable_wrapCallback=function(L){var D=g;return function(){var U=g;g=D;try{return L.apply(this,arguments)}finally{g=U}}}})(M0)),M0}var Qk;function tG(){return Qk||(Qk=1,k0.exports=eG()),k0.exports}var P0={exports:{}},cr={};var Jk;function nG(){if(Jk)return cr;Jk=1;var e=Eh();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),P0.exports=nG(),P0.exports}var tM;function rG(){if(tM)return Kd;tM=1;var e=tG(),t=Eh(),n=JL();function r(o){var c="https://react.dev/errors/"+o;if(1J||(o.current=K[J],K[J]=null,J--)}function Y(o,c){J++,K[J]=o.current,o.current=c}var te=I(null),ae=I(null),ge=I(null),ee=I(null);function Se(o,c){switch(Y(ge,c),Y(ae,o),Y(te,null),c.nodeType){case 9:case 11:o=(o=c.documentElement)&&(o=o.namespaceURI)?vk(o):0;break;default:if(o=c.tagName,c=c.namespaceURI)c=vk(c),o=gk(c,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}z(te),Y(te,o)}function re(){z(te),z(ae),z(ge)}function we(o){o.memoizedState!==null&&Y(ee,o);var c=te.current,h=gk(c,o.type);c!==h&&(Y(ae,o),Y(te,h))}function je(o){ae.current===o&&(z(te),z(ae)),ee.current===o&&(z(ee),Hd._currentValue=U)}var fe,Le;function Oe(o){if(fe===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);fe=c&&c[1]||"",Le=-1)":-1S||X[v]!==se[S]){var pe=` -`+X[v].replace(" at new "," at ");return o.displayName&&pe.includes("")&&(pe=pe.replace("",o.displayName)),pe}while(1<=v&&0<=S);break}}}finally{We=!1,Error.prepareStackTrace=h}return(h=o?o.displayName||o.name:"")?Oe(h):""}function Ae(o,c){switch(o.tag){case 26:case 27:case 5:return Oe(o.type);case 16:return Oe("Lazy");case 13:return o.child!==c&&c!==null?Oe("Suspense Fallback"):Oe("Suspense");case 19:return Oe("SuspenseList");case 0:case 15:return be(o.type,!1);case 11:return be(o.type.render,!1);case 1:return be(o.type,!0);case 31:return Oe("Activity");default:return""}}function ke(o){try{var c="",h=null;do c+=Ae(o,h),h=o,o=o.return;while(o);return c}catch(v){return` -Error generating stack: `+v.message+` -`+v.stack}}var Qt=Object.prototype.hasOwnProperty,St=e.unstable_scheduleCallback,Tt=e.unstable_cancelCallback,Sn=e.unstable_shouldYield,le=e.unstable_requestPaint,ue=e.unstable_now,Ve=e.unstable_getCurrentPriorityLevel,Mn=e.unstable_ImmediatePriority,$l=e.unstable_UserBlockingPriority,Il=e.unstable_NormalPriority,fx=e.unstable_LowPriority,fm=e.unstable_IdlePriority,hx=e.log,mx=e.unstable_setDisableYieldValue,bo=null,br=null;function Qa(o){if(typeof hx=="function"&&mx(o),br&&typeof br.setStrictMode=="function")try{br.setStrictMode(bo,o)}catch{}}var lr=Math.clz32?Math.clz32:Gt,px=Math.log,it=Math.LN2;function Gt(o){return o>>>=0,o===0?32:31-(px(o)/it|0)|0}var Ye=256,wt=262144,qn=4194304;function st(o){var c=o&42;if(c!==0)return c;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function Ll(o,c,h){var v=o.pendingLanes;if(v===0)return 0;var S=0,_=o.suspendedLanes,P=o.pingedLanes;o=o.warmLanes;var F=v&134217727;return F!==0?(v=F&~_,v!==0?S=st(v):(P&=F,P!==0?S=st(P):h||(h=F&~o,h!==0&&(S=st(h))))):(F=v&~_,F!==0?S=st(F):P!==0?S=st(P):h||(h=v&~o,h!==0&&(S=st(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function wo(o,c){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&c)===0}function vx(o,c){switch(o){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bl(){var o=qn;return qn<<=1,(qn&62914560)===0&&(qn=4194304),o}function jo(o){for(var c=[],h=0;31>h;h++)c.push(o);return c}function ad(o,c){o.pendingLanes|=c,c!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function LW(o,c,h,v,S,_){var P=o.pendingLanes;o.pendingLanes=h,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=h,o.entangledLanes&=h,o.errorRecoveryDisabledLanes&=h,o.shellSuspendCounter=0;var F=o.entanglements,X=o.expirationTimes,se=o.hiddenUpdates;for(h=P&~h;0"u")return null;try{return o.activeElement||o.body}catch{return o.body}}var HW=/[\n"\\]/g;function da(o){return o.replace(HW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function jx(o,c,h,v,S,_,P,F){o.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?o.type=P:o.removeAttribute("type"),c!=null?P==="number"?(c===0&&o.value===""||o.value!=c)&&(o.value=""+ua(c)):o.value!==""+ua(c)&&(o.value=""+ua(c)):P!=="submit"&&P!=="reset"||o.removeAttribute("value"),c!=null?Sx(o,P,ua(c)):h!=null?Sx(o,P,ua(h)):v!=null&&o.removeAttribute("value"),S==null&&_!=null&&(o.defaultChecked=!!_),S!=null&&(o.checked=S&&typeof S!="function"&&typeof S!="symbol"),F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?o.name=""+ua(F):o.removeAttribute("name")}function uA(o,c,h,v,S,_,P,F){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(o.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){wx(o);return}h=h!=null?""+ua(h):"",c=c!=null?""+ua(c):h,F||c===o.value||(o.value=c),o.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,o.checked=F?o.checked:!!v,o.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(o.name=P),wx(o)}function Sx(o,c,h){c==="number"&&pm(o.ownerDocument)===o||o.defaultValue===""+h||(o.defaultValue=""+h)}function Wl(o,c,h,v){if(o=o.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Ex=!1;if(Ai)try{var ld={};Object.defineProperty(ld,"passive",{get:function(){Ex=!0}}),window.addEventListener("test",ld,ld),window.removeEventListener("test",ld,ld)}catch{Ex=!1}var ys=null,Ax=null,gm=null;function gA(){if(gm)return gm;var o,c=Ax,h=c.length,v,S="value"in ys?ys.value:ys.textContent,_=S.length;for(o=0;o=dd),SA=" ",_A=!1;function NA(o,c){switch(o){case"keyup":return y7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function CA(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Kl=!1;function b7(o,c){switch(o){case"compositionend":return CA(c);case"keypress":return c.which!==32?null:(_A=!0,SA);case"textInput":return o=c.data,o===SA&&_A?null:o;default:return null}}function w7(o,c){if(Kl)return o==="compositionend"||!Rx&&NA(o,c)?(o=gA(),gm=Ax=ys=null,Kl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-o};o=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=RA(h)}}function $A(o,c){return o&&c?o===c?!0:o&&o.nodeType===3?!1:c&&c.nodeType===3?$A(o,c.parentNode):"contains"in o?o.contains(c):o.compareDocumentPosition?!!(o.compareDocumentPosition(c)&16):!1:!1}function IA(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var c=pm(o.document);c instanceof o.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)o=c.contentWindow;else break;c=pm(o.document)}return c}function Ix(o){var c=o&&o.nodeName&&o.nodeName.toLowerCase();return c&&(c==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||c==="textarea"||o.contentEditable==="true")}var A7=Ai&&"documentMode"in document&&11>=document.documentMode,Xl=null,Lx=null,pd=null,Bx=!1;function LA(o,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;Bx||Xl==null||Xl!==pm(v)||(v=Xl,"selectionStart"in v&&Ix(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),pd&&md(pd,v)||(pd=v,v=up(Lx,"onSelect"),0>=P,S-=P,Ja=1<<32-lr(c)+S|h<at?(ht=Ie,Ie=null):ht=Ie.sibling;var yt=de(ne,Ie,ie[at],ye);if(yt===null){Ie===null&&(Ie=ht);break}o&&Ie&&yt.alternate===null&&c(ne,Ie),Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt,Ie=ht}if(at===ie.length)return h(ne,Ie),mt&&ki(ne,at),ze;if(Ie===null){for(;atat?(ht=Ie,Ie=null):ht=Ie.sibling;var zs=de(ne,Ie,yt.value,ye);if(zs===null){Ie===null&&(Ie=ht);break}o&&Ie&&zs.alternate===null&&c(ne,Ie),Z=_(zs,Z,at),gt===null?ze=zs:gt.sibling=zs,gt=zs,Ie=ht}if(yt.done)return h(ne,Ie),mt&&ki(ne,at),ze;if(Ie===null){for(;!yt.done;at++,yt=ie.next())yt=xe(ne,yt.value,ye),yt!==null&&(Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt);return mt&&ki(ne,at),ze}for(Ie=v(Ie);!yt.done;at++,yt=ie.next())yt=me(Ie,ne,at,yt.value,ye),yt!==null&&(o&&yt.alternate!==null&&Ie.delete(yt.key===null?at:yt.key),Z=_(yt,Z,at),gt===null?ze=yt:gt.sibling=yt,gt=yt);return o&&Ie.forEach(function(KV){return c(ne,KV)}),mt&&ki(ne,at),ze}function zt(ne,Z,ie,ye){if(typeof ie=="object"&&ie!==null&&ie.type===w&&ie.key===null&&(ie=ie.props.children),typeof ie=="object"&&ie!==null){switch(ie.$$typeof){case x:e:{for(var ze=ie.key;Z!==null;){if(Z.key===ze){if(ze=ie.type,ze===w){if(Z.tag===7){h(ne,Z.sibling),ye=S(Z,ie.props.children),ye.return=ne,ne=ye;break e}}else if(Z.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===M&&Po(ze)===Z.type){h(ne,Z.sibling),ye=S(Z,ie.props),wd(ye,ie),ye.return=ne,ne=ye;break e}h(ne,Z);break}else c(ne,Z);Z=Z.sibling}ie.type===w?(ye=Eo(ie.props.children,ne.mode,ye,ie.key),ye.return=ne,ne=ye):(ye=Om(ie.type,ie.key,ie.props,null,ne.mode,ye),wd(ye,ie),ye.return=ne,ne=ye)}return P(ne);case j:e:{for(ze=ie.key;Z!==null;){if(Z.key===ze)if(Z.tag===4&&Z.stateNode.containerInfo===ie.containerInfo&&Z.stateNode.implementation===ie.implementation){h(ne,Z.sibling),ye=S(Z,ie.children||[]),ye.return=ne,ne=ye;break e}else{h(ne,Z);break}else c(ne,Z);Z=Z.sibling}ye=Vx(ie,ne.mode,ye),ye.return=ne,ne=ye}return P(ne);case M:return ie=Po(ie),zt(ne,Z,ie,ye)}if(G(ie))return Me(ne,Z,ie,ye);if(H(ie)){if(ze=H(ie),typeof ze!="function")throw Error(r(150));return ie=ze.call(ie),Fe(ne,Z,ie,ye)}if(typeof ie.then=="function")return zt(ne,Z,Rm(ie),ye);if(ie.$$typeof===O)return zt(ne,Z,Tm(ne,ie),ye);Dm(ne,ie)}return typeof ie=="string"&&ie!==""||typeof ie=="number"||typeof ie=="bigint"?(ie=""+ie,Z!==null&&Z.tag===6?(h(ne,Z.sibling),ye=S(Z,ie),ye.return=ne,ne=ye):(h(ne,Z),ye=Wx(ie,ne.mode,ye),ye.return=ne,ne=ye),P(ne)):h(ne,Z)}return function(ne,Z,ie,ye){try{bd=0;var ze=zt(ne,Z,ie,ye);return oc=null,ze}catch(Ie){if(Ie===sc||Ie===Mm)throw Ie;var gt=Hr(29,Ie,null,ne.mode);return gt.lanes=ye,gt.return=ne,gt}finally{}}}var Do=o2(!0),l2=o2(!1),Ss=!1;function ab(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ib(o,c){o=o.updateQueue,c.updateQueue===o&&(c.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function _s(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function Ns(o,c,h){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(jt&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=Cm(o),WA(o,null,h),c}return Nm(o,v,c,h),Cm(o)}function jd(o,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,JE(o,h)}}function sb(o,c){var h=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},o.updateQueue=h;return}o=h.lastBaseUpdate,o===null?h.firstBaseUpdate=c:o.next=c,h.lastBaseUpdate=c}var ob=!1;function Sd(){if(ob){var o=ic;if(o!==null)throw o}}function _d(o,c,h,v){ob=!1;var S=o.updateQueue;Ss=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,F=S.shared.pending;if(F!==null){S.shared.pending=null;var X=F,se=X.next;X.next=null,P===null?_=se:P.next=se,P=X;var pe=o.alternate;pe!==null&&(pe=pe.updateQueue,F=pe.lastBaseUpdate,F!==P&&(F===null?pe.firstBaseUpdate=se:F.next=se,pe.lastBaseUpdate=X))}if(_!==null){var xe=S.baseState;P=0,pe=se=X=null,F=_;do{var de=F.lane&-536870913,me=de!==F.lane;if(me?(ft&de)===de:(v&de)===de){de!==0&&de===ac&&(ob=!0),pe!==null&&(pe=pe.next={lane:0,tag:F.tag,payload:F.payload,callback:null,next:null});e:{var Me=o,Fe=F;de=c;var zt=h;switch(Fe.tag){case 1:if(Me=Fe.payload,typeof Me=="function"){xe=Me.call(zt,xe,de);break e}xe=Me;break e;case 3:Me.flags=Me.flags&-65537|128;case 0:if(Me=Fe.payload,de=typeof Me=="function"?Me.call(zt,xe,de):Me,de==null)break e;xe=p({},xe,de);break e;case 2:Ss=!0}}de=F.callback,de!==null&&(o.flags|=64,me&&(o.flags|=8192),me=S.callbacks,me===null?S.callbacks=[de]:me.push(de))}else me={lane:de,tag:F.tag,payload:F.payload,callback:F.callback,next:null},pe===null?(se=pe=me,X=xe):pe=pe.next=me,P|=de;if(F=F.next,F===null){if(F=S.shared.pending,F===null)break;me=F,F=me.next,me.next=null,S.lastBaseUpdate=me,S.shared.pending=null}}while(!0);pe===null&&(X=xe),S.baseState=X,S.firstBaseUpdate=se,S.lastBaseUpdate=pe,_===null&&(S.shared.lanes=0),Ts|=P,o.lanes=P,o.memoizedState=xe}}function c2(o,c){if(typeof o!="function")throw Error(r(191,o));o.call(c)}function u2(o,c){var h=o.callbacks;if(h!==null)for(o.callbacks=null,o=0;o_?_:8;var P=L.T,F={};L.T=F,Cb(o,!1,c,h);try{var X=S(),se=L.S;if(se!==null&&se(F,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var pe=L7(X,v);Od(o,c,pe,Kr(o))}else Od(o,c,v,Kr(o))}catch(xe){Od(o,c,{then:function(){},status:"rejected",reason:xe},Kr())}finally{D.p=_,P!==null&&F.types!==null&&(P.types=F.types),L.T=P}}function H7(){}function _b(o,c,h,v){if(o.tag!==5)throw Error(r(476));var S=F2(o).queue;q2(o,S,c,U,h===null?H7:function(){return U2(o),h(v)})}function F2(o){var c=o.memoizedState;if(c!==null)return c;c={memoizedState:U,baseState:U,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:U},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Di,lastRenderedState:h},next:null},o.memoizedState=c,o=o.alternate,o!==null&&(o.memoizedState=c),c}function U2(o){var c=F2(o);c.next===null&&(c=o.alternate.memoizedState),Od(o,c.next.queue,{},Kr())}function Nb(){return tr(Hd)}function H2(){return jn().memoizedState}function W2(){return jn().memoizedState}function W7(o){for(var c=o.return;c!==null;){switch(c.tag){case 24:case 3:var h=Kr();o=_s(h);var v=Ns(c,o,h);v!==null&&(Mr(v,c,h),jd(v,c,h)),c={cache:eb()},o.payload=c;return}c=c.return}}function V7(o,c,h){var v=Kr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Wm(o)?G2(c,h):(h=Ux(o,c,h,v),h!==null&&(Mr(h,o,v),Y2(h,c,v)))}function V2(o,c,h){var v=Kr();Od(o,c,h,v)}function Od(o,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(Wm(o))G2(c,S);else{var _=o.alternate;if(o.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,F=_(P,h);if(S.hasEagerState=!0,S.eagerState=F,Ur(F,P))return Nm(o,c,S,0),Ht===null&&_m(),!1}catch{}finally{}if(h=Ux(o,c,S,v),h!==null)return Mr(h,o,v),Y2(h,c,v),!0}return!1}function Cb(o,c,h,v){if(v={lane:2,revertLane:a0(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},Wm(o)){if(c)throw Error(r(479))}else c=Ux(o,h,v,2),c!==null&&Mr(c,o,2)}function Wm(o){var c=o.alternate;return o===et||c!==null&&c===et}function G2(o,c){cc=Lm=!0;var h=o.pending;h===null?c.next=c:(c.next=h.next,h.next=c),o.pending=c}function Y2(o,c,h){if((h&4194048)!==0){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,JE(o,h)}}var Ed={readContext:tr,use:qm,useCallback:gn,useContext:gn,useEffect:gn,useImperativeHandle:gn,useLayoutEffect:gn,useInsertionEffect:gn,useMemo:gn,useReducer:gn,useRef:gn,useState:gn,useDebugValue:gn,useDeferredValue:gn,useTransition:gn,useSyncExternalStore:gn,useId:gn,useHostTransitionStatus:gn,useFormState:gn,useActionState:gn,useOptimistic:gn,useMemoCache:gn,useCacheRefresh:gn};Ed.useEffectEvent=gn;var K2={readContext:tr,use:qm,useCallback:function(o,c){return wr().memoizedState=[o,c===void 0?null:c],o},useContext:tr,useEffect:M2,useImperativeHandle:function(o,c,h){h=h!=null?h.concat([o]):null,Um(4194308,4,$2.bind(null,c,o),h)},useLayoutEffect:function(o,c){return Um(4194308,4,o,c)},useInsertionEffect:function(o,c){Um(4,2,o,c)},useMemo:function(o,c){var h=wr();c=c===void 0?null:c;var v=o();if($o){Qa(!0);try{o()}finally{Qa(!1)}}return h.memoizedState=[v,c],v},useReducer:function(o,c,h){var v=wr();if(h!==void 0){var S=h(c);if($o){Qa(!0);try{h(c)}finally{Qa(!1)}}}else S=c;return v.memoizedState=v.baseState=S,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:S},v.queue=o,o=o.dispatch=V7.bind(null,et,o),[v.memoizedState,o]},useRef:function(o){var c=wr();return o={current:o},c.memoizedState=o},useState:function(o){o=xb(o);var c=o.queue,h=V2.bind(null,et,c);return c.dispatch=h,[o.memoizedState,h]},useDebugValue:jb,useDeferredValue:function(o,c){var h=wr();return Sb(h,o,c)},useTransition:function(){var o=xb(!1);return o=q2.bind(null,et,o.queue,!0,!1),wr().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,c,h){var v=et,S=wr();if(mt){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Ht===null)throw Error(r(349));(ft&127)!==0||v2(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,M2(y2.bind(null,v,_,o),[o]),v.flags|=2048,dc(9,{destroy:void 0},g2.bind(null,v,_,h,c),null),h},useId:function(){var o=wr(),c=Ht.identifierPrefix;if(mt){var h=ei,v=Ja;h=(v&~(1<<32-lr(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=Bm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Jn]=c,_[Cr]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(rr(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&Ii(c)}}return en(c),zb(c,c.type,o===null?null:o.memoizedProps,c.pendingProps,h),null;case 6:if(o&&c.stateNode!=null)o.memoizedProps!==v&&Ii(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(o=ge.current,nc(c)){if(o=c.stateNode,h=c.memoizedProps,v=null,S=er,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}o[Jn]=c,o=!!(o.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||mk(o.nodeValue,h)),o||ws(c,!0)}else o=dp(o).createTextNode(v),o[Jn]=c,c.stateNode=o}return en(c),null;case 31:if(h=c.memoizedState,o===null||o.memoizedState!==null){if(v=nc(c),h!==null){if(o===null){if(!v)throw Error(r(318));if(o=c.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));o[Jn]=c}else Ao(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;en(c),o=!1}else h=Xx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=h),o=!0;if(!o)return c.flags&256?(Vr(c),c):(Vr(c),null);if((c.flags&128)!==0)throw Error(r(558))}return en(c),null;case 13:if(v=c.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(S=nc(c),v!==null&&v.dehydrated!==null){if(o===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Jn]=c}else Ao(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;en(c),S=!1}else S=Xx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Vr(c),c):(Vr(c),null)}return Vr(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,o=o!==null&&o.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==o&&h&&(c.child.flags|=8192),Xm(c,c.updateQueue),en(c),null);case 4:return re(),o===null&&l0(c.stateNode.containerInfo),en(c),null;case 10:return Pi(c.type),en(c),null;case 19:if(z(wn),v=c.memoizedState,v===null)return en(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)Td(v,!1);else{if(yn!==0||o!==null&&(o.flags&128)!==0)for(o=c.child;o!==null;){if(_=Im(o),_!==null){for(c.flags|=128,Td(v,!1),o=_.updateQueue,c.updateQueue=o,Xm(c,o),c.subtreeFlags=0,o=h,h=c.child;h!==null;)VA(h,o),h=h.sibling;return Y(wn,wn.current&1|2),mt&&ki(c,v.treeForkCount),c.child}o=o.sibling}v.tail!==null&&ue()>tp&&(c.flags|=128,S=!0,Td(v,!1),c.lanes=4194304)}else{if(!S)if(o=Im(_),o!==null){if(c.flags|=128,S=!0,o=o.updateQueue,c.updateQueue=o,Xm(c,o),Td(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!mt)return en(c),null}else 2*ue()-v.renderingStartTime>tp&&h!==536870912&&(c.flags|=128,S=!0,Td(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(o=v.last,o!==null?o.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=ue(),o.sibling=null,h=wn.current,Y(wn,S?h&1|2:h&1),mt&&ki(c,v.treeForkCount),o):(en(c),null);case 22:case 23:return Vr(c),cb(),v=c.memoizedState!==null,o!==null?o.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(en(c),c.subtreeFlags&6&&(c.flags|=8192)):en(c),h=c.updateQueue,h!==null&&Xm(c,h.retryQueue),h=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),o!==null&&z(Mo),null;case 24:return h=null,o!==null&&(h=o.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Pi(_n),en(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function Z7(o,c){switch(Yx(c),c.tag){case 1:return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 3:return Pi(_n),re(),o=c.flags,(o&65536)!==0&&(o&128)===0?(c.flags=o&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Vr(c),c.alternate===null)throw Error(r(340));Ao()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 13:if(Vr(c),o=c.memoizedState,o!==null&&o.dehydrated!==null){if(c.alternate===null)throw Error(r(340));Ao()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 19:return z(wn),null;case 4:return re(),null;case 10:return Pi(c.type),null;case 22:case 23:return Vr(c),cb(),o!==null&&z(Mo),o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 24:return Pi(_n),null;case 25:return null;default:return null}}function xT(o,c){switch(Yx(c),c.tag){case 3:Pi(_n),re();break;case 26:case 27:case 5:je(c);break;case 4:re();break;case 31:c.memoizedState!==null&&Vr(c);break;case 13:Vr(c);break;case 19:z(wn);break;case 10:Pi(c.type);break;case 22:case 23:Vr(c),cb(),o!==null&&z(Mo);break;case 24:Pi(_n)}}function kd(o,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&o)===o){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(F){Mt(c,c.return,F)}}function Es(o,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&o)===o){var P=v.inst,F=P.destroy;if(F!==void 0){P.destroy=void 0,S=c;var X=h,se=F;try{se()}catch(pe){Mt(S,X,pe)}}}v=v.next}while(v!==_)}}catch(pe){Mt(c,c.return,pe)}}function bT(o){var c=o.updateQueue;if(c!==null){var h=o.stateNode;try{u2(c,h)}catch(v){Mt(o,o.return,v)}}}function wT(o,c,h){h.props=Io(o.type,o.memoizedProps),h.state=o.memoizedState;try{h.componentWillUnmount()}catch(v){Mt(o,c,v)}}function Md(o,c){try{var h=o.ref;if(h!==null){switch(o.tag){case 26:case 27:case 5:var v=o.stateNode;break;case 30:v=o.stateNode;break;default:v=o.stateNode}typeof h=="function"?o.refCleanup=h(v):h.current=v}}catch(S){Mt(o,c,S)}}function ti(o,c){var h=o.ref,v=o.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){Mt(o,c,S)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){Mt(o,c,S)}else h.current=null}function jT(o){var c=o.type,h=o.memoizedProps,v=o.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){Mt(o,o.return,S)}}function qb(o,c,h){try{var v=o.stateNode;xV(v,o.type,h,c),v[Cr]=c}catch(S){Mt(o,o.return,S)}}function ST(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&Ds(o.type)||o.tag===4}function Fb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||ST(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&Ds(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Ub(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(o,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(o),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ei));else if(v!==4&&(v===27&&Ds(o.type)&&(h=o.stateNode,c=null),o=o.child,o!==null))for(Ub(o,c,h),o=o.sibling;o!==null;)Ub(o,c,h),o=o.sibling}function Zm(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?h.insertBefore(o,c):h.appendChild(o);else if(v!==4&&(v===27&&Ds(o.type)&&(h=o.stateNode),o=o.child,o!==null))for(Zm(o,c,h),o=o.sibling;o!==null;)Zm(o,c,h),o=o.sibling}function _T(o){var c=o.stateNode,h=o.memoizedProps;try{for(var v=o.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);rr(c,v,h),c[Jn]=o,c[Cr]=h}catch(_){Mt(o,o.return,_)}}var Li=!1,On=!1,Hb=!1,NT=typeof WeakSet=="function"?WeakSet:Set,Un=null;function Q7(o,c){if(o=o.containerInfo,d0=yp,o=IA(o),Ix(o)){if("selectionStart"in o)var h={start:o.selectionStart,end:o.selectionEnd};else e:{h=(h=o.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,F=-1,X=-1,se=0,pe=0,xe=o,de=null;t:for(;;){for(var me;xe!==h||S!==0&&xe.nodeType!==3||(F=P+S),xe!==_||v!==0&&xe.nodeType!==3||(X=P+v),xe.nodeType===3&&(P+=xe.nodeValue.length),(me=xe.firstChild)!==null;)de=xe,xe=me;for(;;){if(xe===o)break t;if(de===h&&++se===S&&(F=P),de===_&&++pe===v&&(X=P),(me=xe.nextSibling)!==null)break;xe=de,de=xe.parentNode}xe=me}h=F===-1||X===-1?null:{start:F,end:X}}else h=null}h=h||{start:0,end:0}}else h=null;for(f0={focusedElem:o,selectionRange:h},yp=!1,Un=c;Un!==null;)if(c=Un,o=c.child,(c.subtreeFlags&1028)!==0&&o!==null)o.return=c,Un=o;else for(;Un!==null;){switch(c=Un,_=c.alternate,o=c.flags,c.tag){case 0:if((o&4)!==0&&(o=c.updateQueue,o=o!==null?o.events:null,o!==null))for(h=0;h title"))),rr(_,v,h),_[Jn]=o,Fn(_),v=_;break e;case"link":var P=kk("link","href",S).get(v+(h.href||""));if(P){for(var F=0;Fzt&&(P=zt,zt=Fe,Fe=P);var ne=DA(F,Fe),Z=DA(F,zt);if(ne&&Z&&(me.rangeCount!==1||me.anchorNode!==ne.node||me.anchorOffset!==ne.offset||me.focusNode!==Z.node||me.focusOffset!==Z.offset)){var ie=xe.createRange();ie.setStart(ne.node,ne.offset),me.removeAllRanges(),Fe>zt?(me.addRange(ie),me.extend(Z.node,Z.offset)):(ie.setEnd(Z.node,Z.offset),me.addRange(ie))}}}}for(xe=[],me=F;me=me.parentNode;)me.nodeType===1&&xe.push({element:me,left:me.scrollLeft,top:me.scrollTop});for(typeof F.focus=="function"&&F.focus(),F=0;Fh?32:h,L.T=null,h=Zb,Zb=null;var _=Ms,P=Ui;if(Pn=0,vc=Ms=null,Ui=0,(jt&6)!==0)throw Error(r(331));var F=jt;if(jt|=4,$T(_.current),PT(_,_.current,P,h),jt=F,Ld(0,!1),br&&typeof br.onPostCommitFiberRoot=="function")try{br.onPostCommitFiberRoot(bo,_)}catch{}return!0}finally{D.p=S,L.T=v,ek(o,c)}}function nk(o,c,h){c=ha(h,c),c=Tb(o.stateNode,c,2),o=Ns(o,c,2),o!==null&&(ad(o,2),ni(o))}function Mt(o,c,h){if(o.tag===3)nk(o,o,h);else for(;c!==null;){if(c.tag===3){nk(c,o,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(ks===null||!ks.has(v))){o=ha(h,o),h=rT(2),v=Ns(c,h,2),v!==null&&(aT(h,v,c,o),ad(v,2),ni(v));break}}c=c.return}}function t0(o,c,h){var v=o.pingCache;if(v===null){v=o.pingCache=new tV;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Gb=!0,S.add(h),o=sV.bind(null,o,c,h),c.then(o,o))}function sV(o,c,h){var v=o.pingCache;v!==null&&v.delete(c),o.pingedLanes|=o.suspendedLanes&h,o.warmLanes&=~h,Ht===o&&(ft&h)===h&&(yn===4||yn===3&&(ft&62914560)===ft&&300>ue()-ep?(jt&2)===0&&gc(o,0):Yb|=h,pc===ft&&(pc=0)),ni(o)}function rk(o,c){c===0&&(c=Bl()),o=Oo(o,c),o!==null&&(ad(o,c),ni(o))}function oV(o){var c=o.memoizedState,h=0;c!==null&&(h=c.retryLane),rk(o,h)}function lV(o,c){var h=0;switch(o.tag){case 31:case 13:var v=o.stateNode,S=o.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=o.stateNode;break;case 22:v=o.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),rk(o,h)}function cV(o,c){return St(o,c)}var op=null,xc=null,n0=!1,lp=!1,r0=!1,Rs=0;function ni(o){o!==xc&&o.next===null&&(xc===null?op=xc=o:xc=xc.next=o),lp=!0,n0||(n0=!0,dV())}function Ld(o,c){if(!r0&&lp){r0=!0;do for(var h=!1,v=op;v!==null;){if(o!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,F=v.pingedLanes;_=(1<<31-lr(42|o)+1)-1,_&=S&~(P&~F),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,ok(v,_))}else _=ft,_=Ll(v,v===Ht?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||wo(v,_)||(h=!0,ok(v,_));v=v.next}while(h);r0=!1}}function uV(){ak()}function ak(){lp=n0=!1;var o=0;Rs!==0&&wV()&&(o=Rs);for(var c=ue(),h=null,v=op;v!==null;){var S=v.next,_=ik(v,c);_===0?(v.next=null,h===null?op=S:h.next=S,S===null&&(xc=h)):(h=v,(o!==0||(_&3)!==0)&&(lp=!0)),v=S}Pn!==0&&Pn!==5||Ld(o),Rs!==0&&(Rs=0)}function ik(o,c){for(var h=o.suspendedLanes,v=o.pingedLanes,S=o.expirationTimes,_=o.pendingLanes&-62914561;0<_;){var P=31-lr(_),F=1<F)break;var pe=X.transferSize,xe=X.initiatorType;pe&&pk(xe)&&(X=X.responseEnd,P+=pe*(X"u"?null:document;function Ok(o,c,h){var v=bc;if(v&&typeof c=="string"&&c){var S=da(c);S='link[rel="'+o+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),Ck.has(S)||(Ck.add(S),o={rel:o,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function TV(o){Hi.D(o),Ok("dns-prefetch",o,null)}function kV(o,c){Hi.C(o,c),Ok("preconnect",o,c)}function MV(o,c,h){Hi.L(o,c,h);var v=bc;if(v&&o&&c){var S='link[rel="preload"][as="'+da(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+da(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+da(h.imageSizes)+'"]')):S+='[href="'+da(o)+'"]';var _=S;switch(c){case"style":_=wc(o);break;case"script":_=jc(o)}xa.has(_)||(o=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:o,as:c},h),xa.set(_,o),v.querySelector(S)!==null||c==="style"&&v.querySelector(Fd(_))||c==="script"&&v.querySelector(Ud(_))||(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function PV(o,c){Hi.m(o,c);var h=bc;if(h&&o){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+da(v)+'"][href="'+da(o)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=jc(o)}if(!xa.has(_)&&(o=p({rel:"modulepreload",href:o},c),xa.set(_,o),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(Ud(_)))return}v=h.createElement("link"),rr(v,"link",o),Fn(v),h.head.appendChild(v)}}}function RV(o,c,h){Hi.S(o,c,h);var v=bc;if(v&&o){var S=Ul(v).hoistableStyles,_=wc(o);c=c||"default";var P=S.get(_);if(!P){var F={loading:0,preload:null};if(P=v.querySelector(Fd(_)))F.loading=5;else{o=p({rel:"stylesheet",href:o,"data-precedence":c},h),(h=xa.get(_))&&x0(o,h);var X=P=v.createElement("link");Fn(X),rr(X,"link",o),X._p=new Promise(function(se,pe){X.onload=se,X.onerror=pe}),X.addEventListener("load",function(){F.loading|=1}),X.addEventListener("error",function(){F.loading|=2}),F.loading|=4,hp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:F},S.set(_,P)}}}function DV(o,c){Hi.X(o,c);var h=bc;if(h&&o){var v=Ul(h).hoistableScripts,S=jc(o),_=v.get(S);_||(_=h.querySelector(Ud(S)),_||(o=p({src:o,async:!0},c),(c=xa.get(S))&&b0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function $V(o,c){Hi.M(o,c);var h=bc;if(h&&o){var v=Ul(h).hoistableScripts,S=jc(o),_=v.get(S);_||(_=h.querySelector(Ud(S)),_||(o=p({src:o,async:!0,type:"module"},c),(c=xa.get(S))&&b0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function Ek(o,c,h,v){var S=(S=ge.current)?fp(S):null;if(!S)throw Error(r(446));switch(o){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=wc(h.href),h=Ul(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){o=wc(h.href);var _=Ul(S).hoistableStyles,P=_.get(o);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(o,P),(_=S.querySelector(Fd(o)))&&!_._p&&(P.instance=_,P.state.loading=5),xa.has(o)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},xa.set(o,h),_||IV(S,o,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=jc(h),h=Ul(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,o))}}function wc(o){return'href="'+da(o)+'"'}function Fd(o){return'link[rel="stylesheet"]['+o+"]"}function Ak(o){return p({},o,{"data-precedence":o.precedence,precedence:null})}function IV(o,c,h,v){o.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=o.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),rr(c,"link",h),Fn(c),o.head.appendChild(c))}function jc(o){return'[src="'+da(o)+'"]'}function Ud(o){return"script[async]"+o}function Tk(o,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=o.querySelector('style[data-href~="'+da(h.href)+'"]');if(v)return c.instance=v,Fn(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(o.ownerDocument||o).createElement("style"),Fn(v),rr(v,"style",S),hp(v,h.precedence,o),c.instance=v;case"stylesheet":S=wc(h.href);var _=o.querySelector(Fd(S));if(_)return c.state.loading|=4,c.instance=_,Fn(_),_;v=Ak(h),(S=xa.get(S))&&x0(v,S),_=(o.ownerDocument||o).createElement("link"),Fn(_);var P=_;return P._p=new Promise(function(F,X){P.onload=F,P.onerror=X}),rr(_,"link",v),c.state.loading|=4,hp(_,h.precedence,o),c.instance=_;case"script":return _=jc(h.src),(S=o.querySelector(Ud(_)))?(c.instance=S,Fn(S),S):(v=h,(S=xa.get(_))&&(v=p({},h),b0(v,S)),o=o.ownerDocument||o,S=o.createElement("script"),Fn(S),rr(S,"link",v),o.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,hp(v,h.precedence,o));return c.instance}function hp(o,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function LV(o,c,h){if(h===1||c.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return o=c.disabled,typeof c.precedence=="string"&&o==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Pk(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function BV(o,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=wc(v.href),_=c.querySelector(Fd(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(o.count++,o=pp.bind(o),c.then(o,o)),h.state.loading|=4,h.instance=_,Fn(_);return}_=c.ownerDocument||c,v=Ak(v),(S=xa.get(S))&&x0(v,S),_=_.createElement("link"),Fn(_);var P=_;P._p=new Promise(function(F,X){P.onload=F,P.onerror=X}),rr(_,"link",v),h.instance=_}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(o.count++,h=pp.bind(o),c.addEventListener("load",h),c.addEventListener("error",h))}}var w0=0;function zV(o,c){return o.stylesheets&&o.count===0&&gp(o,o.stylesheets),0w0?50:800)+c);return o.unsuspend=h,function(){o.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function pp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)gp(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var vp=null;function gp(o,c){o.stylesheets=null,o.unsuspend!==null&&(o.count++,vp=new Map,c.forEach(qV,o),vp=null,pp.call(o))}function qV(o,c){if(!(c.state.loading&4)){var h=vp.get(o);if(h)var v=h.get(null);else{h=new Map,vp.set(o,h);for(var S=o.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),T0.exports=rG(),T0.exports}var iG=aG();const g_=new WeakMap,sG=new WeakMap,vv={current:[]};let R0=!1,jf=0;const hf=new Set,Cp=new Map;function e5(e){for(const t of e){if(vv.current.includes(t))continue;vv.current.push(t),t.recompute();const n=sG.get(t);if(n)for(const r of n){const a=g_.get(r);a?.length&&e5(a)}}}function oG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function lG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function t5(e){if(jf>0&&!Cp.has(e)&&Cp.set(e,e.prevState),hf.add(e),!(jf>0)&&!R0)try{for(R0=!0;hf.size>0;){const t=Array.from(hf);hf.clear();for(const n of t){const r=Cp.get(n)??n.prevState;n.prevState=r,oG(n)}for(const n of t){const r=g_.get(n);r&&(vv.current.push(n),e5(r))}for(const n of t){const r=g_.get(n);if(r)for(const a of r)lG(a)}}}finally{R0=!1,vv.current=[],Cp.clear()}}function Sf(e){jf++;try{e()}finally{if(jf--,jf===0){const t=hf.values().next().value;t&&t5(t)}}}function cG(e){return typeof e=="function"}class uG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,s;this.listeners.add(r);const l=(s=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:s.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):cG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),t5(this)}}const Ks="__TSR_index",rM="popstate",aM="beforeunload";function dG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},s=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=gv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Ks];u=iM(f+1,u),s({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Ks];u=iM(f,u),s({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{s({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{s({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{s({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Ks]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function iM(e,t){t||(t={});const n=AC();return{...t,key:n,__TSR_key:n,[Ks]:e}}function fG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const s=()=>a,l=M=>a=M,u=(M=>M),d=(()=>gv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=AC();t.history.replaceState({[Ks]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const w=()=>f;let b,N;const E=()=>{b&&(T._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),T._ignoreSubscribers=!1,b=void 0,N=void 0,m=void 0)},O=(M,R,B)=>{const $=u(R);N||(m=f),f=gv(R,B),b={href:$,state:B,isPush:b?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>E()))},A=M=>{f=d(),T.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),R=M.state[Ks]-f.state[Ks],B=R===1,$=R===-1,H=!B&&!$||p;p=!1;const V=H?"GO":$?"BACK":"FORWARD",q=H?{type:"GO",index:R}:{type:$?"BACK":"FORWARD"};if(x)x=!1;else{const G=s();if(typeof document<"u"&&G.length){for(const L of G)if(await L.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),T.notify(q);return}}}f=d(),T.notify(q)},k=M=>{if(j){j=!1;return}let R=!1;const B=s();if(typeof document<"u"&&B.length)for(const $ of B){const H=$.enableBeforeUnload??!0;if(H===!0){R=!0;break}if(typeof H=="function"&&H()===!0){R=!0;break}}if(R)return M.preventDefault(),M.returnValue=""},T=dG({getLocation:w,getLength:()=>t.history.length,pushState:(M,R)=>O("push",M,R),replaceState:(M,R)=>O("replace",M,R),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(aM,k,{capture:!0}),t.removeEventListener(rM,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:s,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(aM,k,{capture:!0}),t.addEventListener(rM,C),t.history.pushState=function(...M){const R=n.apply(t.history,M);return T._ignoreSubscribers||A("PUSH"),R},t.history.replaceState=function(...M){const R=r.apply(t.history,M);return T._ignoreSubscribers||A("REPLACE"),R},T}function gv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=AC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Ks]:0,key:a,__TSR_key:a}}}function AC(){return(Math.random()+1).toString(36).substring(7)}function y_(e){return e[e.length-1]}function hG(e){return typeof e=="function"}function el(e,t){return hG(e)?e(t):e}const mG=Object.prototype.hasOwnProperty;function _a(e,t){if(e===t)return e;const n=t,r=lM(e)&&lM(n);if(!r&&!(yv(e)&&yv(n)))return n;const a=r?e:sM(e);if(!a)return n;const s=r?n:sM(n);if(!s)return n;const l=a.length,u=s.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!oM(n)||!n.hasOwnProperty("isPrototypeOf"))}function oM(e){return Object.prototype.toString.call(e)==="[object Object]"}function lM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function tl(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!tl(e[l],t[l],n)))return!1;return a===s}return!1}function tu(e){let t,n;const r=new Promise((a,s)=>{t=a,n=s});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function Xs(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const pG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function cM(e,t=pG){function n(a,s,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var vG="Invariant failed";function pr(e,t){if(!e)throw new Error(vG)}const mi=0,cl=1,nu=2,ru=3;function ts(e){return TC(e.filter(t=>t!==void 0).join("/"))}function TC(e){return e.replace(/\/{2,}/g,"/")}function kC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function Zs(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function av(e){return Zs(kC(e))}function xv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function gG(e,t,n){return xv(e,n)===xv(t,n)}function yG(e){const{type:t,value:n}=e;if(t===mi)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===cl){const s=n.substring(1);if(r&&a)return`${r}{$${s}}${a}`;if(r)return`${r}{$${s}}`;if(a)return`{$${s}}${a}`}if(t===ru){const s=n.substring(1);return r&&a?`${r}{-$${s}}${a}`:r?`${r}{-$${s}}`:a?`{-$${s}}${a}`:`{-$${s}}`}if(t===nu){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function xG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=au(e,r).slice();const s=au(t,r);a.length>1&&y_(a)?.value==="/"&&a.pop();for(let d=0,f=s.length;d1&&(y_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:mi,value:"/"}));const l=a.map(yG);return ts(l)}const au=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=NG(e);return t?.set(e,r),r},bG=/^\$.{1,}$/,wG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,jG=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,SG=/^\$$/,_G=/^(.*?)\{\$\}(.*)$/;function NG(e){e=TC(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:mi,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(_G);if(a){const u=a[1],d=a[2];return{type:nu,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const s=r.match(jG);if(s){const u=s[1],d=s[2],f=s[3];return{type:ru,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(wG);if(l){const u=l[1],d=l[2],f=l[3];return{type:cl,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(bG.test(r)){const u=r.substring(1);return{type:cl,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return SG.test(r)?{type:nu,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:mi,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:mi,value:"/"})),t}function D0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=au(e,r);function s(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?CG(m,n):m}let l=!1;const u={},d=ts(a.map(f=>{if(f.type===mi)return f.value;if(f.type===nu){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=s("_splat");return`${m}${g}${p}`}if(f.type===cl){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${s(m)??"undefined"}${g}`}if(f.type===ru){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${s(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function CG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function x_(e,t,n){const r=OG(e,t,n);if(!(t.to&&!r))return r??{}}function OG(e,{to:t,fuzzy:n,caseSensitive:r},a){const s=t,l=au(e.startsWith("/")?e:`/${e}`,a),u=au(s.startsWith("/")?s:`/${s}`,a),d={};return EG(l,u,d,n,r)?d:void 0}function EG(e,t,n,r,a){let s=0,l=0;for(;sw.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(ts(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===mi){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;s++,l++;continue}else return!1}if(d.type===cl){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,s++),l++;continue}if(d.type===ru){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=ts(e.slice(s).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const s=kC(r.fullPath);let l=au(s),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return AG;if(p.type===mi)return TG;let x;p.type===cl?x=kG:p.type===ru?(x=MG,d++):x=PG;for(let j=g+1;j{const s=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function BG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(pr(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=Zs(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const s=LG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:s}}function Wa(e){return!!e?.isNotFound}function zG(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const bv="tsr-scroll-restoration-v1_3",qG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function FG(){const e=zG();if(!e)return null;const t=e.getItem(bv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=el(r,n)||n,e.setItem(bv,JSON.stringify(n)))}}const Op=FG(),b_=e=>e.state.__TSR_key||e.href;function UG(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let wv=!1;function n5({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:s}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];wv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(s??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}wv=!1}function HG(e,t){if(!Op&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!Op))return;e.isScrollRestorationSetup=!0,wv=!1;const r=e.options.getScrollRestorationKey||b_;window.history.scrollRestoration="manual";const a=s=>{if(wv||!e.isScrollRestoring)return;let l="";if(s.target===document||s.target===window)l="window";else{const d=s.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=UG(s.target)}const u=r(e.state.location);Op.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",qG(a,100),!0),e.subscribe("onRendered",s=>{const l=r(s.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(n5({storageKey:bv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&Op.set(u=>(u[l]||={},u)))})}function WG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function VG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function $0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function GG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const s=n[r];s==null?n[r]=$0(a):Array.isArray(s)?s.push($0(a)):n[r]=[s,$0(a)]}return n}const YG=XG(JSON.parse),KG=ZG(JSON.stringify,JSON.parse);function XG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=GG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function ZG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const s=VG(a,r);return s?`?${s}`:""}}const ea="__root__";function r5(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function ci(e){return e instanceof Response&&!!e.options}function QG(e){const t=new Map;let n,r;const a=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,n=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){const l=t.get(s);if(l)return a(l),l.value},set(s,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(s);if(u)u.value=l,a(u);else{const d={key:s,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(s,d)}}}}const iv=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},zg=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),a5=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),pr(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);pr(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,a5(e,t))},Vs=(e,t,n)=>{if(!(!ci(n)&&!Wa(n))){if(ci(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=ci(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Wa(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw ci(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(a5(e,n),n)}},i5=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Xd=(e,t,n,r)=>{const{id:a,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Vs(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Vs(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},JG=(e,t,n,r)=>{const a=e.router.getMatch(t),s=e.matches[n-1]?.id,l=s?e.router.getMatch(s):void 0;if(e.router.isShell()){a.ssr=r.id===ea;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:Ep(f,a.searchError),params:Ep(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:Ep(x.search,x.searchError),params:Ep(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(Xs(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},s5=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!zg(e,t)&&(n.options.loader||n.options.beforeLoad||c5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{iv(e)},a);r._nonReactive.pendingTimeout=l}},eY=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;s5(e,t,n,r);const a=()=>{const s=e.router.getMatch(t);s.preload&&(s.status==="redirected"||s.status==="notFound")&&Vs(e,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},tY=(e,t,n,r)=>{const a=e.router.getMatch(t),s=a._nonReactive.loadPromise;a._nonReactive.loadPromise=tu(()=>{s?.resolve()});const{paramsError:l,searchError:u}=a;l&&Xd(e,n,l,"PARSE_PARAMS"),u&&Xd(e,n,u,"VALIDATE_SEARCH"),s5(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,T=>({...T,isFetching:"beforeLoad",fetchCount:T.fetchCount+1,abortController:d,context:g})))},w=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,T=>({...T,isFetching:!1}))};if(!r.options.beforeLoad){Sf(()=>{j(),w()});return}a._nonReactive.beforeLoadPromise=tu();const{search:b,params:N,cause:E}=a,O=zg(e,t),A={search:b,abortController:d,params:N,preload:O,context:g,location:e.location,navigate:T=>e.router.navigate({...T,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:O?"preload":E,matches:e.matches,...e.router.options.additionalContext},C=T=>{if(T===void 0){Sf(()=>{j(),w()});return}(ci(T)||Wa(T))&&(j(),Xd(e,n,T,"BEFORE_LOAD")),Sf(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:T,context:{...M.context,...T}})),w()})};let k;try{if(k=r.options.beforeLoad(A),Xs(k))return j(),k.catch(T=>{Xd(e,n,T,"BEFORE_LOAD")}).then(C)}catch(T){j(),Xd(e,n,T,"BEFORE_LOAD")}C(k)},nY=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],s=()=>{if(e.router.isServer){const d=JG(e,n,t,a);if(Xs(d))return d.then(u)}return u()},l=()=>tY(e,n,t,a),u=()=>{if(i5(e,n))return;const d=eY(e,n,a);return Xs(d)?d.then(l):l()};return s()},_f=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([s,l,u])=>{const d=s?.meta,f=s?.links,m=s?.scripts,p=s?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},o5=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:s,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=zg(e,t);return{params:s,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},hM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&l5(r);const s=r.options.loader?.(o5(e,t,n,r)),l=r.options.loader&&Xs(s);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await s:s;Vs(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=_f(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let l=s;const u=a._nonReactive.minPendingPromise;u&&await u,Wa(s)&&await r.options.notFoundComponent?.preload?.(),Vs(e,e.router.getMatch(t),s);try{r.options.onError?.(s)}catch(m){l=m,Vs(e,e.router.getMatch(t),m)}const d=_f(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const s=e.router.getMatch(t);if(s){const l=_f(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}s._nonReactive.loaderPromise=void 0}Vs(e,s,a)}},rY=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,s=!1;const l=e.router.looseRoutesById[r];if(i5(e,n)){if(e.router.isServer){const f=_f(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Vs(e,m,p)}else{const m=Date.now()-f.updatedAt,p=zg(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(o5(e,n,t,l)):x,w=!!p&&!e.router.state.matches.some(O=>O.id===n),b=e.router.getMatch(n);b._nonReactive.loaderPromise=tu(),w!==b.preload&&e.updateMatch(n,O=>({...O,preload:w}));const{status:N,invalid:E}=b;if(a=N==="success"&&(E||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)s=!0,(async()=>{try{await hM(e,n,t,l);const O=e.router.getMatch(n);O._nonReactive.loaderPromise?.resolve(),O._nonReactive.loadPromise?.resolve(),O._nonReactive.loaderPromise=void 0}catch(O){ci(O)&&await e.router.navigate(O.options)}})();else if(N!=="success"||a&&e.sync)await hM(e,n,t,l);else{const O=_f(e,n,l);if(O){const A=await O;e.updateMatch(n,C=>({...C,...A}))}}}}const u=e.router.getMatch(n);s||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,s||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=s?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function mM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&iv(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of u5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Ep(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function c5(e){for(const t of u5)if(e.options[t]?.preload)return!0;return!1}const u5=["component","errorComponent","pendingComponent","notFoundComponent"];function aY(e){return{input:({url:t})=>{for(const n of e)t=d5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=f5(e[n],t);return t}}}function iY(e){const t=av(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),s=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(s)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=ts(["/",t,l.pathname]),l)}}function d5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function f5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function nl(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,s=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:s}}class sY{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",s=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=fG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new uG(lY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),HG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(s||a!==d||l!==f){this.basepath=d;const g=[];av(d)!==""&&g.push(iY({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:aY(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=BG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=d5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:w,hash:b}=p;return{href:j,publicHref:d,url:p.href,pathname:cM(w),searchStr:x,search:_a(r?.search,g),hash:b.split("#").reverse()[0]??"",state:_a(r?.state,f)}},s=a(n),{__tempLocation:l,__tempKey:u}=s.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=s.state.key,d.state.__TSR_key=s.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:s}}return s},this.resolvePathWithBase=(n,r)=>xG({base:n,to:TC(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=QG(1e3),this.getMatchedRoutes=(n,r)=>cY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(s=>s.status==="pending"),r=this.state.matches.filter(s=>s.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(s=>{this.cancelMatch(s.id)})},this.buildLocation=n=>{const r=(s={})=>{const l=s._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=y_(u);s.from;const f=s.unsafeRelative==="path"?l.pathname:s.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=s.to?this.resolvePathWithBase(m,`${s.to}`):this.resolvePathWithBase(m,"."),j=s.params===!1||s.params===null?{}:(s.params??!0)===!0?g:Object.assign(g,el(s.params,g)),w=D0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(w,void 0,{_buildLocation:!0}).map(B=>this.looseRoutesById[B.routeId]);if(Object.keys(j).length>0)for(const B of b){const $=B.options.params?.stringify??B.options.stringifyParams;$&&Object.assign(j,$(j))}const N=n.leaveParams?x:cM(D0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let E=p;if(n._includeValidateSearch&&this.options.search?.strict){const B={};b.forEach($=>{if($.options.validateSearch)try{Object.assign(B,w_($.options.validateSearch,{...B,...E}))}catch{}}),E=B}E=uY({search:E,dest:s,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=_a(p,E);const O=this.options.stringifySearch(E),A=s.hash===!0?l.hash:s.hash?el(s.hash,l.hash):void 0,C=A?`#${A}`:"";let k=s.state===!0?l.state:s.state?el(s.state,l.state):{};k=_a(l.state,k);const T=`${N}${O}${C}`,M=new URL(T,this.origin),R=f5(this.rewrite,M);return{publicHref:R.pathname+R.search+R.hash,href:T,url:R.href,pathname:N,search:E,searchStr:O,state:k,hash:A??"",unmaskOnReload:s.unmaskOnReload}},a=(s={},l)=>{const u=r(s);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=x_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const s=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=tl(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=Zs(this.latestLocation.href)===Zs(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=tu(()=>{u?.resolve()}),l&&s())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:s,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=gv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:s,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...s})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...s}).url),s.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...s,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(av(a(this.latestLocation.href))!==av(a(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),r5({href:s})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(s=>s.id===a.id))}))},this.load=async n=>{let r,a,s;for(s=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...nl({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...nl({resolvedLocation:f,location:d})}),await mM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];Sf(()=>{this.__store.setState(x=>{const j=x.matches,w=x.pendingMatches||x.matches;return m=j.filter(b=>!w.some(N=>N.id===b.id)),p=w.filter(b=>!j.some(N=>N.id===b.id)),g=w.filter(b=>j.some(N=>N.id===b.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(b=>b.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(w=>{this.looseRoutesById[w.routeId].options[j]?.(w)})})})})}})}catch(d){ci(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Wa(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const s=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(nl({resolvedLocation:l,location:s})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(s=>s.id===n)?"pendingMatches":this.state.matches.some(s=>s.id===n)?"matches":this.state.cachedMatches.some(s=>s.id===n)?"cachedMatches":"";a&&this.__store.setState(s=>({...s,[a]:s[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(s=>!r(s))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const s=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:n})},this.loadRouteChunk=l5,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...s,...this.state.cachedMatches.map(u=>u.id)]);Sf(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await mM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{s.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(ci(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Wa(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},s=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=x_(u.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!d||n.params&&!tl(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?tl(u.search,s.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??KG,parseSearch:t.parseSearch??YG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:s}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&s["**"]:Zs(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return ea}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,w]=(()=>{const H=g?.search??t.search,V=g?._strictSearch??void 0;try{const q=w_(m.options.validateSearch,{...H})??void 0;return[{...H,...q},{...V,...q},void 0]}catch(q){let G=q;if(q instanceof jv||(G=new jv(q.message,{cause:q})),n?.throwOnError)throw G;return[H,{},G]}})(),b=m.options.loaderDeps?.({search:x})??"",N=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:O}=D0({path:m.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),A=m.id+E+N,C=this.getMatch(A),k=this.state.matches.find(H=>H.routeId===m.id),T=C?._strictParams??O;let M;if(!C){const H=m.options.params?.parse??m.options.parseParams;if(H)try{Object.assign(T,H(T))}catch(V){if(M=new oY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(s,T);const R=k?"stay":"enter";let B;if(C)B={...C,cause:R,params:k?_a(k.params,s):s,_strictParams:T,search:_a(k?k.search:C.search,x),_strictSearch:j};else{const H=m.options.loader||m.options.beforeLoad||m.lazyFn||c5(m)?"pending":"success";B={id:A,index:p,routeId:m.id,params:k?_a(k.params,s):s,_strictParams:T,pathname:E,updatedAt:Date.now(),search:k?_a(k.search,x):x,_strictSearch:j,searchError:void 0,status:H,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:tu()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:R,loaderDeps:k?_a(k.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(B.globalNotFound=u===m.id),B.searchError=w;const $=f(g);B.context={...$,...B.__routeContext,...B.__beforeLoadContext},d.push(B)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],w=f(j);if(g.options.context){const b={deps:m.loaderDeps,params:m.params,context:w??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(b)??void 0}m.context={...w,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class jv extends Error{}class oY extends Error{}function lY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function w_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new jv("Async validation not supported");if(n.issues)throw new jv(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function cY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:s,parseCache:l}){let u={};const d=Zs(e),f=x=>x_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of s){const w=f(j);if(w)if(j.path!=="/"&&w["**"])x||(x={foundRoute:j,routeParams:w});else{m=j,u=w;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[ea];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function uY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((w,b)=>b(w),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((w,b)=>b(w),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...w_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],s=({search:u})=>t.search?t.search===!0?u:el(t.search,u):{};a.push(s);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const dY="Error preloading route! ☝️";class h5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=ea:this.parentRoute||pr(!1);let s=a?ea:r?.path;s&&s!=="/"&&(s=kC(s));const l=r?.id||s;let u=a?ea:ts([this.parentRoute.id===ea?"":this.parentRoute.id,l]);s===ea&&(s="/"),u!==ea&&(u=ts(["/",u]));const d=u===ea?"/":ts([this.parentRoute.fullPath,s]);this._path=s,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class fY extends h5{constructor(t){super(t)}}function MC(e){const t=e.errorComponent??qg;return i.jsx(hY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class hY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function qg({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function mY({children:e,fallback:t=null}){return pY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function pY(){return W.useSyncExternalStore(vY,()=>!0,()=>!1)}function vY(){return()=>{}}var I0={exports:{}},L0={},B0={exports:{}},z0={};var pM;function gY(){if(pM)return z0;pM=1;var e=Eh();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),w=j[0].inst,b=j[1];return s(function(){w.value=x,w.getSnapshot=g,d(w)&&b({inst:w})},[p,x,g]),a(function(){return d(w)&&b({inst:w}),p(function(){d(w)&&b({inst:w})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return z0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,z0}var vM;function yY(){return vM||(vM=1,B0.exports=gY()),B0.exports}var gM;function xY(){if(gM)return L0;gM=1;var e=Eh(),t=yY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return L0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=s(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=u(function(){function N(k){if(!E){if(E=!0,O=k,k=g(k),x!==void 0&&w.hasValue){var T=w.value;if(x(T,k))return A=T}return A=k}if(T=A,r(O,k))return T;var M=g(k);return x!==void 0&&x(T,M)?(O=k,T):(O=k,A=M)}var E=!1,O,A,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var b=a(f,j[0],j[1]);return l(function(){w.hasValue=!0,w.value=b},[b]),d(b),b},L0}var yM;function bY(){return yM||(yM=1,I0.exports=xY()),I0.exports}var wY=bY();function jY(e,t=r=>r,n={}){const r=n.equal??SY;return wY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function SY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=xM(e);if(n.length!==xM(t).length)return!1;for(let r=0;r"u"?q0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=q0,q0)}function zr(e){const t=y.useContext(m5());return e?.warn,t}function Nr(e){const t=zr({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return jY(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const s=_a(r.current,e.select(a));return r.current=s,s}return e.select(a)}return a})}const Fg=y.createContext(void 0),_Y=y.createContext(void 0);function yi(e){const t=y.useContext(e.from?_Y:Fg);return Nr({select:r=>{const a=r.matches.find(s=>e.from?e.from===s.routeId:s.id===t);if(pr(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function PC(e){return yi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function RC(e){const{select:t,...n}=e;return yi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function DC(e){return yi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function $C(e){return yi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function la(e){const t=zr();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var Sl=JL();const NY=At(Sl),Ap=typeof window<"u"?y.useLayoutEffect:y.useEffect;function F0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function CY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([s])=>{t(s)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function OY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function EY(e,t){const n=zr(),[r,a]=y.useState(!1),s=y.useRef(!1),l=OY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:w,resetScroll:b,viewTransition:N,children:E,target:O,disabled:A,style:C,className:k,onClick:T,onFocus:M,onMouseEnter:R,onMouseLeave:B,onTouchStart:$,ignoreBlocker:H,params:V,search:q,hash:G,state:L,mask:D,reloadDocument:U,unsafeRelative:K,from:J,_fromLocation:I,...z}=e,Y=Nr({select:le=>le.location.search,structuralSharing:!0}),te=e.from,ae=y.useMemo(()=>({...e,from:te}),[n,Y,te,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),ge=y.useMemo(()=>n.buildLocation({...ae}),[n,ae]),ee=y.useMemo(()=>{if(A)return;let le=ge.maskedLocation?ge.maskedLocation.url:ge.url,ue=!1;return n.origin&&(le.startsWith(n.origin)?le=n.history.createHref(le.replace(n.origin,""))||"/":ue=!0),{href:le,external:ue}},[A,ge.maskedLocation,ge.url,n.origin,n.history]),Se=y.useMemo(()=>{if(ee?.external)return ee.href;try{return new URL(m),m}catch{}},[m,ee]),re=e.reloadDocument||Se?!1:p??n.options.defaultPreload,we=g??n.options.defaultPreloadDelay??0,je=Nr({select:le=>{if(Se)return!1;if(f?.exact){if(!gG(le.location.pathname,ge.pathname,n.basepath))return!1}else{const ue=xv(le.location.pathname,n.basepath),Ve=xv(ge.pathname,n.basepath);if(!(ue.startsWith(Ve)&&(ue.length===Ve.length||ue[Ve.length]==="/")))return!1}return(f?.includeSearch??!0)&&!tl(le.location.search,ge.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?le.location.hash===ge.hash:!0}}),fe=y.useCallback(()=>{n.preloadRoute({...ae}).catch(le=>{console.warn(le),console.warn(dY)})},[n,ae]),Le=y.useCallback(le=>{le?.isIntersecting&&fe()},[fe]);CY(l,Le,PY,{disabled:!!A||re!=="viewport"}),y.useEffect(()=>{s.current||!A&&re==="render"&&(fe(),s.current=!0)},[A,fe,re]);const Oe=le=>{const ue=le.currentTarget.getAttribute("target"),Ve=O!==void 0?O:ue;if(!A&&!RY(le)&&!le.defaultPrevented&&(!Ve||Ve==="_self")&&le.button===0){le.preventDefault(),Sl.flushSync(()=>{a(!0)});const Mn=n.subscribe("onResolved",()=>{Mn(),a(!1)});n.navigate({...ae,replace:j,resetScroll:b,hashScrollIntoView:x,startTransition:w,viewTransition:N,ignoreBlocker:H})}};if(Se)return{...z,ref:l,href:Se,...E&&{children:E},...O&&{target:O},...A&&{disabled:A},...C&&{style:C},...k&&{className:k},...T&&{onClick:T},...M&&{onFocus:M},...R&&{onMouseEnter:R},...B&&{onMouseLeave:B},...$&&{onTouchStart:$}};const We=le=>{A||re&&fe()},be=We,Ae=le=>{if(!(A||!re))if(!we)fe();else{const ue=le.target;if(Zd.has(ue))return;const Ve=setTimeout(()=>{Zd.delete(ue),fe()},we);Zd.set(ue,Ve)}},ke=le=>{if(A||!re||!we)return;const ue=le.target,Ve=Zd.get(ue);Ve&&(clearTimeout(Ve),Zd.delete(ue))},Qt=je?el(u,{})??AY:U0,St=je?U0:el(d,{})??U0,Tt=[k,Qt.className,St.className].filter(Boolean).join(" "),Sn=(C||Qt.style||St.style)&&{...C,...Qt.style,...St.style};return{...z,...Qt,...St,href:ee?.href,ref:l,onClick:Qd([T,Oe]),onFocus:Qd([M,We]),onMouseEnter:Qd([R,Ae]),onMouseLeave:Qd([B,ke]),onTouchStart:Qd([$,be]),disabled:!!A,target:O,...Sn&&{style:Sn},...Tt&&{className:Tt},...A&&TY,...je&&kY,...r&&MY}}const U0={},AY={className:"active"},TY={role:"link","aria-disabled":!0},kY={"data-status":"active","aria-current":"page"},MY={"data-transitioning":"transitioning"},Zd=new WeakMap,PY={rootMargin:"100px"},Qd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},IC=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:s,...l}=EY(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:s},u)});function RY(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class DY extends h5{constructor(t){super(t),this.useMatch=n=>yi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>$C({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>RC({...n,from:this.id}),this.useLoaderData=n=>PC({...n,from:this.id}),this.useNavigate=()=>la({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(IC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function or(e){return new DY(e)}class $Y extends fY{constructor(t){super(t),this.useMatch=n=>yi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>$C({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>RC({...n,from:this.id}),this.useLoaderData=n=>PC({...n,from:this.id}),this.useNavigate=()=>la({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(IC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function IY(e){return new $Y(e)}function bM(e){return typeof e=="object"?new wM(e,{silent:!0}).createRoute(e):new wM(e,{silent:!0}).createRoute}class wM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=or(r);return a.isRoot=!1,a},this.silent=n?.silent}}class jM{constructor(t){this.useMatch=n=>yi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>yi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>$C({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>DC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>RC({...n,from:this.options.id}),this.useLoaderData=n=>PC({...n,from:this.options.id}),this.useNavigate=()=>{const n=zr();return la({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function SM(e){return typeof e=="object"?new jM(e):t=>new jM({id:e,...t})}function LY(){const e=zr(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:s}=Nr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=F0(s),u=s||n||a,d=F0(u),f=s||a,m=F0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return Zs(e.latestLocation.href)!==Zs(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),Ap(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),Ap(()=>{l&&!s&&e.emit({type:"onLoad",...nl(e.state)})},[l,e,s]),Ap(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...nl(e.state)})},[f,m,e]),Ap(()=>{d&&!u&&(e.emit({type:"onResolved",...nl(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),WG(e))},[u,d,e]),null}function BY(e){const t=Nr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(MC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Wa(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Wa(n))return e.fallback?.(n);throw n},children:e.children})}function zY(){return i.jsx("p",{children:"Not Found"})}function Rc(e){return i.jsx(i.Fragment,{children:e.children})}function p5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx(zY,{})}function qY({children:e}){const t=zr();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function FY(){const e=zr();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||b_)(e.latestLocation),r=n!==b_(e.latestLocation)?n:void 0,a={storageKey:bv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(qY,{children:`(${n5.toString()})(${JSON.stringify(a)})`})}const v5=y.memo(function({matchId:t}){const n=zr(),r=Nr({select:N=>{const E=N.matches.find(O=>O.id===t);return pr(E),{routeId:E.routeId,ssr:E.ssr,_displayPending:E._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],s=a.options.pendingComponent??n.options.defaultPendingComponent,l=s?i.jsx(s,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??s??(a.options.errorComponent?.preload||m))?y.Suspense:Rc,g=u?MC:Rc,x=f?BY:Rc,j=Nr({select:N=>N.loadedAt}),w=Nr({select:N=>{const E=N.matches.findIndex(O=>O.id===t);return N.matches[E-1]?.routeId}}),b=a.isRoot?a.options.shellComponent??Rc:Rc;return i.jsxs(b,{children:[i.jsx(Fg.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||qg,onCatch:(N,E)=>{if(Wa(N))throw N;d?.(N,E)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(mY,{fallback:l,children:i.jsx(_M,{matchId:t})}):i.jsx(_M,{matchId:t})})})})}),w===ea&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx(UY,{}),i.jsx(FY,{})]}):null]})});function UY(){const e=zr(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...nl(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const _M=y.memo(function({matchId:t}){const n=zr(),{match:r,key:a,routeId:s}=Nr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[s],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(LC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=tu();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return pr(Wa(r.error)),p5(n,l,r.error);if(r.status==="redirected")throw pr(ci(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||qg;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),LC=y.memo(function(){const t=zr(),n=y.useContext(Fg),r=Nr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],s=Nr({select:f=>{const p=f.matches.find(g=>g.id===n);return pr(p),p.globalNotFound}}),l=Nr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(s)return p5(t,a,void 0);if(!l)return null;const d=i.jsx(v5,{matchId:l});return r===ea?i.jsx(y.Suspense,{fallback:u,children:d}):d});function HY(){const e=zr(),n=e.routesById[ea].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?Rc:y.Suspense,s=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(LY,{}),i.jsx(WY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:s}):s}function WY(){const e=zr(),t=Nr({select:a=>a.matches[0]?.id}),n=Nr({select:a=>a.loadedAt}),r=t?i.jsx(v5,{matchId:t}):null;return i.jsx(Fg.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(MC,{getResetKey:()=>n,errorComponent:qg,onCatch:a=>{a.message||a.toString()},children:r})})}function VY(){const e=zr();return Nr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s})},[e])}const GY=e=>new YY(e);class YY extends sY{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=bM,globalThis.createLazyFileRoute=SM):typeof window<"u"&&(window.createFileRoute=bM,window.createLazyFileRoute=SM);function KY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=m5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function XY({router:e,...t}){return i.jsx(KY,{router:e,...t,children:i.jsx(HY,{})})}function g5(e,t){return function(){return e.apply(t,arguments)}}const{toString:ZY}=Object.prototype,{getPrototypeOf:BC}=Object,{iterator:Ug,toStringTag:y5}=Symbol,Hg=(e=>t=>{const n=ZY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ka=e=>(e=e.toLowerCase(),t=>Hg(t)===e),Wg=e=>t=>typeof t===e,{isArray:Lu}=Array,iu=Wg("undefined");function Ah(e){return e!==null&&!iu(e)&&e.constructor!==null&&!iu(e.constructor)&&Dr(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const x5=Ka("ArrayBuffer");function QY(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&x5(e.buffer),t}const JY=Wg("string"),Dr=Wg("function"),b5=Wg("number"),Th=e=>e!==null&&typeof e=="object",eK=e=>e===!0||e===!1,sv=e=>{if(Hg(e)!=="object")return!1;const t=BC(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(y5 in e)&&!(Ug in e)},tK=e=>{if(!Th(e)||Ah(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},nK=Ka("Date"),rK=Ka("File"),aK=Ka("Blob"),iK=Ka("FileList"),sK=e=>Th(e)&&Dr(e.pipe),oK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Dr(e.append)&&((t=Hg(e))==="formdata"||t==="object"&&Dr(e.toString)&&e.toString()==="[object FormData]"))},lK=Ka("URLSearchParams"),[cK,uK,dK,fK]=["ReadableStream","Request","Response","Headers"].map(Ka),hK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function kh(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),Lu(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Yo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,j5=e=>!iu(e)&&e!==Yo;function j_(){const{caseless:e,skipUndefined:t}=j5(this)&&this||{},n={},r=(a,s)=>{const l=e&&w5(n,s)||s;sv(n[l])&&sv(a)?n[l]=j_(n[l],a):sv(a)?n[l]=j_({},a):Lu(a)?n[l]=a.slice():(!t||!iu(a))&&(n[l]=a)};for(let a=0,s=arguments.length;a(kh(t,(a,s)=>{n&&Dr(a)?e[s]=g5(a,n):e[s]=a},{allOwnKeys:r}),e),pK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),vK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},gK=(e,t,n,r)=>{let a,s,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),s=a.length;s-- >0;)l=a[s],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&BC(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},yK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},xK=e=>{if(!e)return null;if(Lu(e))return e;let t=e.length;if(!b5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},bK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&BC(Uint8Array)),wK=(e,t)=>{const r=(e&&e[Ug]).call(e);let a;for(;(a=r.next())&&!a.done;){const s=a.value;t.call(e,s[0],s[1])}},jK=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},SK=Ka("HTMLFormElement"),_K=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),NM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),NK=Ka("RegExp"),S5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};kh(n,(a,s)=>{let l;(l=t(a,s,e))!==!1&&(r[s]=l||a)}),Object.defineProperties(e,r)},CK=e=>{S5(e,(t,n)=>{if(Dr(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Dr(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},OK=(e,t)=>{const n={},r=a=>{a.forEach(s=>{n[s]=!0})};return Lu(e)?r(e):r(String(e).split(t)),n},EK=()=>{},AK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function TK(e){return!!(e&&Dr(e.append)&&e[y5]==="FormData"&&e[Ug])}const kK=e=>{const t=new Array(10),n=(r,a)=>{if(Th(r)){if(t.indexOf(r)>=0)return;if(Ah(r))return r;if(!("toJSON"in r)){t[a]=r;const s=Lu(r)?[]:{};return kh(r,(l,u)=>{const d=n(l,a+1);!iu(d)&&(s[u]=d)}),t[a]=void 0,s}}return r};return n(e,0)},MK=Ka("AsyncFunction"),PK=e=>e&&(Th(e)||Dr(e))&&Dr(e.then)&&Dr(e.catch),_5=((e,t)=>e?setImmediate:t?((n,r)=>(Yo.addEventListener("message",({source:a,data:s})=>{a===Yo&&s===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Yo.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Dr(Yo.postMessage)),RK=typeof queueMicrotask<"u"?queueMicrotask.bind(Yo):typeof process<"u"&&process.nextTick||_5,DK=e=>e!=null&&Dr(e[Ug]),he={isArray:Lu,isArrayBuffer:x5,isBuffer:Ah,isFormData:oK,isArrayBufferView:QY,isString:JY,isNumber:b5,isBoolean:eK,isObject:Th,isPlainObject:sv,isEmptyObject:tK,isReadableStream:cK,isRequest:uK,isResponse:dK,isHeaders:fK,isUndefined:iu,isDate:nK,isFile:rK,isBlob:aK,isRegExp:NK,isFunction:Dr,isStream:sK,isURLSearchParams:lK,isTypedArray:bK,isFileList:iK,forEach:kh,merge:j_,extend:mK,trim:hK,stripBOM:pK,inherits:vK,toFlatObject:gK,kindOf:Hg,kindOfTest:Ka,endsWith:yK,toArray:xK,forEachEntry:wK,matchAll:jK,isHTMLForm:SK,hasOwnProperty:NM,hasOwnProp:NM,reduceDescriptors:S5,freezeMethods:CK,toObjectSet:OK,toCamelCase:_K,noop:EK,toFiniteNumber:AK,findKey:w5,global:Yo,isContextDefined:j5,isSpecCompliantForm:TK,toJSONObject:kK,isAsyncFn:MK,isThenable:PK,setImmediate:_5,asap:RK,isIterable:DK};function tt(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}he.inherits(tt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:he.toJSONObject(this.config),code:this.code,status:this.status}}});const N5=tt.prototype,C5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{C5[e]={value:e}});Object.defineProperties(tt,C5);Object.defineProperty(N5,"isAxiosError",{value:!0});tt.from=(e,t,n,r,a,s)=>{const l=Object.create(N5);he.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return tt.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",s&&Object.assign(l,s),l};const $K=null;function S_(e){return he.isPlainObject(e)||he.isArray(e)}function O5(e){return he.endsWith(e,"[]")?e.slice(0,-2):e}function CM(e,t,n){return e?e.concat(t).map(function(a,s){return a=O5(a),!n&&s?"["+a+"]":a}).join(n?".":""):t}function IK(e){return he.isArray(e)&&!e.some(S_)}const LK=he.toFlatObject(he,{},null,function(t){return/^is[A-Z]/.test(t)});function Vg(e,t,n){if(!he.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=he.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,b){return!he.isUndefined(b[w])});const r=n.metaTokens,a=n.visitor||m,s=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&he.isSpecCompliantForm(t);if(!he.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(he.isDate(j))return j.toISOString();if(he.isBoolean(j))return j.toString();if(!d&&he.isBlob(j))throw new tt("Blob is not supported. Use a Buffer instead.");return he.isArrayBuffer(j)||he.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,w,b){let N=j;if(j&&!b&&typeof j=="object"){if(he.endsWith(w,"{}"))w=r?w:w.slice(0,-2),j=JSON.stringify(j);else if(he.isArray(j)&&IK(j)||(he.isFileList(j)||he.endsWith(w,"[]"))&&(N=he.toArray(j)))return w=O5(w),N.forEach(function(O,A){!(he.isUndefined(O)||O===null)&&t.append(l===!0?CM([w],A,s):l===null?w:w+"[]",f(O))}),!1}return S_(j)?!0:(t.append(CM(b,w,s),f(j)),!1)}const p=[],g=Object.assign(LK,{defaultVisitor:m,convertValue:f,isVisitable:S_});function x(j,w){if(!he.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+w.join("."));p.push(j),he.forEach(j,function(N,E){(!(he.isUndefined(N)||N===null)&&a.call(t,N,he.isString(E)?E.trim():E,w,g))===!0&&x(N,w?w.concat(E):[E])}),p.pop()}}if(!he.isObject(e))throw new TypeError("data must be an object");return x(e),t}function OM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function zC(e,t){this._pairs=[],e&&Vg(e,this,t)}const E5=zC.prototype;E5.append=function(t,n){this._pairs.push([t,n])};E5.toString=function(t){const n=t?function(r){return t.call(this,r,OM)}:OM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function BK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function A5(e,t,n){if(!t)return e;const r=n&&n.encode||BK;he.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let s;if(a?s=a(t,n):s=he.isURLSearchParams(t)?t.toString():new zC(t,n).toString(r),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class EM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){he.forEach(this.handlers,function(r){r!==null&&t(r)})}}const T5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},zK=typeof URLSearchParams<"u"?URLSearchParams:zC,qK=typeof FormData<"u"?FormData:null,FK=typeof Blob<"u"?Blob:null,UK={isBrowser:!0,classes:{URLSearchParams:zK,FormData:qK,Blob:FK},protocols:["http","https","file","blob","url","data"]},qC=typeof window<"u"&&typeof document<"u",__=typeof navigator=="object"&&navigator||void 0,HK=qC&&(!__||["ReactNative","NativeScript","NS"].indexOf(__.product)<0),WK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",VK=qC&&window.location.href||"http://localhost",GK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:qC,hasStandardBrowserEnv:HK,hasStandardBrowserWebWorkerEnv:WK,navigator:__,origin:VK},Symbol.toStringTag,{value:"Module"})),hr={...GK,...UK};function YK(e,t){return Vg(e,new hr.classes.URLSearchParams,{visitor:function(n,r,a,s){return hr.isNode&&he.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function KK(e){return he.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function XK(e){const t={},n=Object.keys(e);let r;const a=n.length;let s;for(r=0;r=n.length;return l=!l&&he.isArray(a)?a.length:l,d?(he.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!he.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],s)&&he.isArray(a[l])&&(a[l]=XK(a[l])),!u)}if(he.isFormData(e)&&he.isFunction(e.entries)){const n={};return he.forEachEntry(e,(r,a)=>{t(KK(r),a,n,0)}),n}return null}function ZK(e,t,n){if(he.isString(e))try{return(t||JSON.parse)(e),he.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Mh={transitional:T5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,s=he.isObject(t);if(s&&he.isHTMLForm(t)&&(t=new FormData(t)),he.isFormData(t))return a?JSON.stringify(k5(t)):t;if(he.isArrayBuffer(t)||he.isBuffer(t)||he.isStream(t)||he.isFile(t)||he.isBlob(t)||he.isReadableStream(t))return t;if(he.isArrayBufferView(t))return t.buffer;if(he.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return YK(t,this.formSerializer).toString();if((u=he.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Vg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||a?(n.setContentType("application/json",!1),ZK(t)):t}],transformResponse:[function(t){const n=this.transitional||Mh.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(he.isResponse(t)||he.isReadableStream(t))return t;if(t&&he.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?tt.from(u,tt.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:hr.classes.FormData,Blob:hr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};he.forEach(["delete","get","head","post","put","patch"],e=>{Mh.headers[e]={}});const QK=he.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),JK=e=>{const t={};let n,r,a;return e&&e.split(` -`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&QK[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},AM=Symbol("internals");function Jd(e){return e&&String(e).trim().toLowerCase()}function ov(e){return e===!1||e==null?e:he.isArray(e)?e.map(ov):String(e)}function eX(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const tX=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function H0(e,t,n,r,a){if(he.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!he.isString(t)){if(he.isString(r))return t.indexOf(r)!==-1;if(he.isRegExp(r))return r.test(t)}}function nX(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function rX(e,t){const n=he.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,s,l){return this[r].call(this,t,a,s,l)},configurable:!0})})}let $r=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function s(u,d,f){const m=Jd(d);if(!m)throw new Error("header name must be a non-empty string");const p=he.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=ov(u))}const l=(u,d)=>he.forEach(u,(f,m)=>s(f,m,d));if(he.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(he.isString(t)&&(t=t.trim())&&!tX(t))l(JK(t),n);else if(he.isObject(t)&&he.isIterable(t)){let u={},d,f;for(const m of t){if(!he.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?he.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=Jd(t),t){const r=he.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return eX(a);if(he.isFunction(n))return n.call(this,a,r);if(he.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Jd(t),t){const r=he.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||H0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function s(l){if(l=Jd(l),l){const u=he.findKey(r,l);u&&(!n||H0(r,r[u],u,n))&&(delete r[u],a=!0)}}return he.isArray(t)?t.forEach(s):s(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const s=n[r];(!t||H0(this,this[s],s,t,!0))&&(delete this[s],a=!0)}return a}normalize(t){const n=this,r={};return he.forEach(this,(a,s)=>{const l=he.findKey(r,s);if(l){n[l]=ov(a),delete n[s];return}const u=t?nX(s):String(s).trim();u!==s&&delete n[s],n[u]=ov(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return he.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&he.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[AM]=this[AM]={accessors:{}}).accessors,a=this.prototype;function s(l){const u=Jd(l);r[u]||(rX(a,l),r[u]=!0)}return he.isArray(t)?t.forEach(s):s(t),this}};$r.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);he.reduceDescriptors($r.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});he.freezeMethods($r);function W0(e,t){const n=this||Mh,r=t||n,a=$r.from(r.headers);let s=r.data;return he.forEach(e,function(u){s=u.call(n,s,a.normalize(),t?t.status:void 0)}),a.normalize(),s}function M5(e){return!!(e&&e.__CANCEL__)}function Bu(e,t,n){tt.call(this,e??"canceled",tt.ERR_CANCELED,t,n),this.name="CanceledError"}he.inherits(Bu,tt,{__CANCEL__:!0});function P5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new tt("Request failed with status code "+n.status,[tt.ERR_BAD_REQUEST,tt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function aX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function iX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[s];l||(l=f),n[a]=d,r[a]=f;let p=s,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===s&&(s=(s+1)%e),f-l{n=m,a=null,s&&(clearTimeout(s),s=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,s||(s=setTimeout(()=>{s=null,l(a)},r-p)))},()=>a&&l(a)]}const Sv=(e,t,n=3)=>{let r=0;const a=iX(50,250);return sX(s=>{const l=s.loaded,u=s.lengthComputable?s.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:s,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},TM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},kM=e=>(...t)=>he.asap(()=>e(...t)),oX=hr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,hr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(hr.origin),hr.navigator&&/(msie|trident)/i.test(hr.navigator.userAgent)):()=>!0,lX=hr.hasStandardBrowserEnv?{write(e,t,n,r,a,s,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];he.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),he.isString(r)&&u.push(`path=${r}`),he.isString(a)&&u.push(`domain=${a}`),s===!0&&u.push("secure"),he.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function cX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function uX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function R5(e,t,n){let r=!cX(t);return e&&(r||n==!1)?uX(e,t):t}const MM=e=>e instanceof $r?{...e}:e;function ul(e,t){t=t||{};const n={};function r(f,m,p,g){return he.isPlainObject(f)&&he.isPlainObject(m)?he.merge.call({caseless:g},f,m):he.isPlainObject(m)?he.merge({},m):he.isArray(m)?m.slice():m}function a(f,m,p,g){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function s(f,m){if(!he.isUndefined(m))return r(void 0,m)}function l(f,m){if(he.isUndefined(m)){if(!he.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(MM(f),MM(m),p,!0)};return he.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);he.isUndefined(g)&&p!==u||(n[m]=g)}),n}const D5=e=>{const t=ul({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:s,headers:l,auth:u}=t;if(t.headers=l=$r.from(l),t.url=A5(R5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),he.isFormData(n)){if(hr.hasStandardBrowserEnv||hr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(he.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(hr.hasStandardBrowserEnv&&(r&&he.isFunction(r)&&(r=r(t)),r||r!==!1&&oX(t.url))){const d=a&&s&&lX.read(s);d&&l.set(a,d)}return t},dX=typeof XMLHttpRequest<"u",fX=dX&&function(e){return new Promise(function(n,r){const a=D5(e);let s=a.data;const l=$r.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function w(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function N(){if(!b)return;const O=$r.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:O,config:e,request:b};P5(function(T){n(T),w()},function(T){r(T),w()},C),b=null}"onloadend"in b?b.onloadend=N:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(N)},b.onabort=function(){b&&(r(new tt("Request aborted",tt.ECONNABORTED,e,b)),b=null)},b.onerror=function(A){const C=A&&A.message?A.message:"Network Error",k=new tt(C,tt.ERR_NETWORK,e,b);k.event=A||null,r(k),b=null},b.ontimeout=function(){let A=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||T5;a.timeoutErrorMessage&&(A=a.timeoutErrorMessage),r(new tt(A,C.clarifyTimeoutError?tt.ETIMEDOUT:tt.ECONNABORTED,e,b)),b=null},s===void 0&&l.setContentType(null),"setRequestHeader"in b&&he.forEach(l.toJSON(),function(A,C){b.setRequestHeader(C,A)}),he.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),u&&u!=="json"&&(b.responseType=a.responseType),f&&([g,j]=Sv(f,!0),b.addEventListener("progress",g)),d&&b.upload&&([p,x]=Sv(d),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=O=>{b&&(r(!O||O.type?new Bu(null,e,b):O),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const E=aX(a.url);if(E&&hr.protocols.indexOf(E)===-1){r(new tt("Unsupported protocol "+E+":",tt.ERR_BAD_REQUEST,e));return}b.send(s||null)})},hX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const s=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof tt?m:new Bu(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,s(new tt(`timeout ${t} of ms exceeded`,tt.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>he.asap(u),d}},mX=function*(e,t){let n=e.byteLength;if(n{const a=pX(e,t);let s=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=s+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},RM=64*1024,{isFunction:Tp}=he,gX=(({Request:e,Response:t})=>({Request:e,Response:t}))(he.global),{ReadableStream:DM,TextEncoder:$M}=he.global,IM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},yX=e=>{e=he.merge.call({skipUndefined:!0},gX,e);const{fetch:t,Request:n,Response:r}=e,a=t?Tp(t):typeof fetch=="function",s=Tp(n),l=Tp(r);if(!a)return!1;const u=a&&Tp(DM),d=a&&(typeof $M=="function"?(j=>w=>j.encode(w))(new $M):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=s&&u&&IM(()=>{let j=!1;const w=new n(hr.origin,{body:new DM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!w}),m=l&&u&&IM(()=>he.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(w,b)=>{let N=w&&w[j];if(N)return N.call(w);throw new tt(`Response type '${j}' is not supported`,tt.ERR_NOT_SUPPORT,b)})});const g=async j=>{if(j==null)return 0;if(he.isBlob(j))return j.size;if(he.isSpecCompliantForm(j))return(await new n(hr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(he.isArrayBufferView(j)||he.isArrayBuffer(j))return j.byteLength;if(he.isURLSearchParams(j)&&(j=j+""),he.isString(j))return(await d(j)).byteLength},x=async(j,w)=>{const b=he.toFiniteNumber(j.getContentLength());return b??g(w)};return async j=>{let{url:w,method:b,data:N,signal:E,cancelToken:O,timeout:A,onDownloadProgress:C,onUploadProgress:k,responseType:T,headers:M,withCredentials:R="same-origin",fetchOptions:B}=D5(j),$=t||fetch;T=T?(T+"").toLowerCase():"text";let H=hX([E,O&&O.toAbortSignal()],A),V=null;const q=H&&H.unsubscribe&&(()=>{H.unsubscribe()});let G;try{if(k&&f&&b!=="get"&&b!=="head"&&(G=await x(M,N))!==0){let I=new n(w,{method:"POST",body:N,duplex:"half"}),z;if(he.isFormData(N)&&(z=I.headers.get("content-type"))&&M.setContentType(z),I.body){const[Y,te]=TM(G,Sv(kM(k)));N=PM(I.body,RM,Y,te)}}he.isString(R)||(R=R?"include":"omit");const L=s&&"credentials"in n.prototype,D={...B,signal:H,method:b.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:L?R:void 0};V=s&&new n(w,D);let U=await(s?$(V,B):$(w,D));const K=m&&(T==="stream"||T==="response");if(m&&(C||K&&q)){const I={};["status","statusText","headers"].forEach(ae=>{I[ae]=U[ae]});const z=he.toFiniteNumber(U.headers.get("content-length")),[Y,te]=C&&TM(z,Sv(kM(C),!0))||[];U=new r(PM(U.body,RM,Y,()=>{te&&te(),q&&q()}),I)}T=T||"text";let J=await p[he.findKey(p,T)||"text"](U,j);return!K&&q&&q(),await new Promise((I,z)=>{P5(I,z,{data:J,headers:$r.from(U.headers),status:U.status,statusText:U.statusText,config:j,request:V})})}catch(L){throw q&&q(),L&&L.name==="TypeError"&&/Load failed|fetch/i.test(L.message)?Object.assign(new tt("Network Error",tt.ERR_NETWORK,j,V),{cause:L.cause||L}):tt.from(L,L&&L.code,j,V)}}},xX=new Map,$5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,s=[r,a,n];let l=s.length,u=l,d,f,m=xX;for(;u--;)d=s[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:yX(t)),m=f;return f};$5();const FC={http:$K,xhr:fX,fetch:{get:$5}};he.forEach(FC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const LM=e=>`- ${e}`,bX=e=>he.isFunction(e)||e===null||e===!1;function wX(e,t){e=he.isArray(e)?e:[e];const{length:n}=e;let r,a;const s={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : -`+l.map(LM).join(` -`):" "+LM(l[0]):"as no adapter specified";throw new tt("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const I5={getAdapter:wX,adapters:FC};function V0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Bu(null,e)}function BM(e){return V0(e),e.headers=$r.from(e.headers),e.data=W0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),I5.getAdapter(e.adapter||Mh.adapter,e)(e).then(function(r){return V0(e),r.data=W0.call(e,e.transformResponse,r),r.headers=$r.from(r.headers),r},function(r){return M5(r)||(V0(e),r&&r.response&&(r.response.data=W0.call(e,e.transformResponse,r.response),r.response.headers=$r.from(r.response.headers))),Promise.reject(r)})}const L5="1.13.2",Gg={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Gg[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const zM={};Gg.transitional=function(t,n,r){function a(s,l){return"[Axios v"+L5+"] Transitional option '"+s+"'"+l+(r?". "+r:"")}return(s,l,u)=>{if(t===!1)throw new tt(a(l," has been removed"+(n?" in "+n:"")),tt.ERR_DEPRECATED);return n&&!zM[l]&&(zM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,l,u):!0}};Gg.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function jX(e,t,n){if(typeof e!="object")throw new tt("options must be an object",tt.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const s=r[a],l=t[s];if(l){const u=e[s],d=u===void 0||l(u,s,e);if(d!==!0)throw new tt("option "+s+" must be "+d,tt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new tt("Unknown option "+s,tt.ERR_BAD_OPTION)}}const lv={assertOptions:jX,validators:Gg},ri=lv.validators;let rl=class{constructor(t){this.defaults=t||{},this.interceptors={request:new EM,response:new EM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const s=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ul(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:s}=n;r!==void 0&&lv.assertOptions(r,{silentJSONParsing:ri.transitional(ri.boolean),forcedJSONParsing:ri.transitional(ri.boolean),clarifyTimeoutError:ri.transitional(ri.boolean)},!1),a!=null&&(he.isFunction(a)?n.paramsSerializer={serialize:a}:lv.assertOptions(a,{encode:ri.function,serialize:ri.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),lv.assertOptions(n,{baseUrl:ri.spelling("baseURL"),withXsrfToken:ri.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=s&&he.merge(s.common,s[n.method]);s&&he.forEach(["delete","get","head","post","put","patch","common"],j=>{delete s[j]}),n.headers=$r.concat(l,s);const u=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,u.unshift(w.fulfilled,w.rejected))});const f=[];this.interceptors.response.forEach(function(w){f.push(w.fulfilled,w.rejected)});let m,p=0,g;if(!d){const j=[BM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](a);r._listeners=null}),this.promise.then=a=>{let s;const l=new Promise(u=>{r.subscribe(u),s=u}).then(a);return l.cancel=function(){r.unsubscribe(s)},l},t(function(s,l,u){r.reason||(r.reason=new Bu(s,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new B5(function(a){t=a}),cancel:t}}};function _X(e){return function(n){return e.apply(null,n)}}function NX(e){return he.isObject(e)&&e.isAxiosError===!0}const N_={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(N_).forEach(([e,t])=>{N_[t]=e});function z5(e){const t=new rl(e),n=g5(rl.prototype.request,t);return he.extend(n,rl.prototype,t,{allOwnKeys:!0}),he.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return z5(ul(e,a))},n}const vn=z5(Mh);vn.Axios=rl;vn.CanceledError=Bu;vn.CancelToken=SX;vn.isCancel=M5;vn.VERSION=L5;vn.toFormData=Vg;vn.AxiosError=tt;vn.Cancel=vn.CanceledError;vn.all=function(t){return Promise.all(t)};vn.spread=_X;vn.isAxiosError=NX;vn.mergeConfig=ul;vn.AxiosHeaders=$r;vn.formToJSON=e=>k5(he.isHTMLForm(e)?new FormData(e):e);vn.getAdapter=I5.getAdapter;vn.HttpStatusCode=N_;vn.default=vn;const{Axios:CAe,AxiosError:OAe,CanceledError:EAe,isCancel:AAe,CancelToken:TAe,VERSION:kAe,all:MAe,Cancel:PAe,isAxiosError:RAe,spread:DAe,toFormData:$Ae,AxiosHeaders:IAe,HttpStatusCode:LAe,formToJSON:BAe,getAdapter:zAe,mergeConfig:qAe}=vn;function q5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),F5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),_v="-",qM=[],EX="arbitrary..",AX=e=>{const t=kX(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return TX(l);const u=l.split(_v),d=u[0]===""&&u.length>1?1:0;return U5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?CX(f,d):d:f||qM}return n[l]||qM}}},U5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],s=n.nextPart.get(a);if(s){const f=U5(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(_v):e.slice(t).join(_v),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?EX+r:void 0})(),kX=e=>{const{theme:t,classGroups:n}=e;return MX(n,t)},MX=(e,t)=>{const n=F5();for(const r in e){const a=e[r];UC(a,n,r,t)}return n},UC=(e,t,n,r)=>{const a=e.length;for(let s=0;s{if(typeof e=="string"){RX(e,t,n);return}if(typeof e=="function"){DX(e,t,n,r);return}$X(e,t,n,r)},RX=(e,t,n)=>{const r=e===""?t:H5(t,e);r.classGroupId=n},DX=(e,t,n,r)=>{if(IX(e)){UC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(OX(n,e))},$X=(e,t,n,r)=>{const a=Object.entries(e),s=a.length;for(let l=0;l{let n=e;const r=t.split(_v),a=r.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,LX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(s,l)=>{n[s]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=r[s])!==void 0)return a(s,l),l},set(s,l){s in n?n[s]=l:a(s,l)}}},C_="!",FM=":",BX=[],UM=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),zX=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const s=[];let l=0,u=0,d=0,f;const m=a.length;for(let w=0;wd?f-d:void 0;return UM(s,x,g,j)};if(t){const a=t+FM,s=r;r=l=>l.startsWith(a)?s(l.slice(a.length)):UM(BX,!1,l,void 0,!0)}if(n){const a=r;r=s=>n({className:s,parseClassName:a})}return r},qX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let s=0;s0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},FX=e=>({cache:LX(e.cacheSize),parseClassName:zX(e),sortModifiers:qX(e),...AX(e)}),UX=/\s+/,HX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:s}=t,l=[],u=e.trim().split(UX);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:w}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let b=!!w,N=r(b?j.substring(0,w):j);if(!N){if(!b){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}b=!1}const E=g.length===0?"":g.length===1?g[0]:s(g).join(":"),O=x?E+C_:E,A=O+N;if(l.indexOf(A)>-1)continue;l.push(A);const C=a(N,b);for(let k=0;k0?" "+d:d)}return d},WX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,s;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=FX(f),r=n.cache.get,a=n.cache.set,s=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=HX(d,n);return a(d,m),m};return s=l,(...d)=>s(WX(...d))},GX=[],Rn=e=>{const t=n=>n[e]||GX;return t.isThemeGetter=!0,t},V5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,G5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,YX=/^\d+\/\d+$/,KX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,XX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ZX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,QX=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,JX=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,_c=e=>YX.test(e),ot=e=>!!e&&!Number.isNaN(Number(e)),qs=e=>!!e&&Number.isInteger(Number(e)),G0=e=>e.endsWith("%")&&ot(e.slice(0,-1)),Wi=e=>KX.test(e),eZ=()=>!0,tZ=e=>XX.test(e)&&!ZX.test(e),Y5=()=>!1,nZ=e=>QX.test(e),rZ=e=>JX.test(e),aZ=e=>!Pe(e)&&!Re(e),iZ=e=>zu(e,Z5,Y5),Pe=e=>V5.test(e),zo=e=>zu(e,Q5,tZ),Y0=e=>zu(e,uZ,ot),HM=e=>zu(e,K5,Y5),sZ=e=>zu(e,X5,rZ),kp=e=>zu(e,J5,nZ),Re=e=>G5.test(e),ef=e=>qu(e,Q5),oZ=e=>qu(e,dZ),WM=e=>qu(e,K5),lZ=e=>qu(e,Z5),cZ=e=>qu(e,X5),Mp=e=>qu(e,J5,!0),zu=(e,t,n)=>{const r=V5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},qu=(e,t,n=!1)=>{const r=G5.exec(e);return r?r[1]?t(r[1]):n:!1},K5=e=>e==="position"||e==="percentage",X5=e=>e==="image"||e==="url",Z5=e=>e==="length"||e==="size"||e==="bg-size",Q5=e=>e==="length",uZ=e=>e==="number",dZ=e=>e==="family-name",J5=e=>e==="shadow",fZ=()=>{const e=Rn("color"),t=Rn("font"),n=Rn("text"),r=Rn("font-weight"),a=Rn("tracking"),s=Rn("leading"),l=Rn("breakpoint"),u=Rn("container"),d=Rn("spacing"),f=Rn("radius"),m=Rn("shadow"),p=Rn("inset-shadow"),g=Rn("text-shadow"),x=Rn("drop-shadow"),j=Rn("blur"),w=Rn("perspective"),b=Rn("aspect"),N=Rn("ease"),E=Rn("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...A(),Re,Pe],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],M=()=>[Re,Pe,d],R=()=>[_c,"full","auto",...M()],B=()=>[qs,"none","subgrid",Re,Pe],$=()=>["auto",{span:["full",qs,Re,Pe]},qs,Re,Pe],H=()=>[qs,"auto",Re,Pe],V=()=>["auto","min","max","fr",Re,Pe],q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],L=()=>["auto",...M()],D=()=>[_c,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],U=()=>[e,Re,Pe],K=()=>[...A(),WM,HM,{position:[Re,Pe]}],J=()=>["no-repeat",{repeat:["","x","y","space","round"]}],I=()=>["auto","cover","contain",lZ,iZ,{size:[Re,Pe]}],z=()=>[G0,ef,zo],Y=()=>["","none","full",f,Re,Pe],te=()=>["",ot,ef,zo],ae=()=>["solid","dashed","dotted","double"],ge=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ee=()=>[ot,G0,WM,HM],Se=()=>["","none",j,Re,Pe],re=()=>["none",ot,Re,Pe],we=()=>["none",ot,Re,Pe],je=()=>[ot,Re,Pe],fe=()=>[_c,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Wi],breakpoint:[Wi],color:[eZ],container:[Wi],"drop-shadow":[Wi],ease:["in","out","in-out"],font:[aZ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Wi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Wi],shadow:[Wi],spacing:["px",ot],text:[Wi],"text-shadow":[Wi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",_c,Pe,Re,b]}],container:["container"],columns:[{columns:[ot,Pe,Re,u]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[qs,"auto",Re,Pe]}],basis:[{basis:[_c,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ot,_c,"auto","initial","none",Pe]}],grow:[{grow:["",ot,Re,Pe]}],shrink:[{shrink:["",ot,Re,Pe]}],order:[{order:[qs,"first","last","none",Re,Pe]}],"grid-cols":[{"grid-cols":B()}],"col-start-end":[{col:$()}],"col-start":[{"col-start":H()}],"col-end":[{"col-end":H()}],"grid-rows":[{"grid-rows":B()}],"row-start-end":[{row:$()}],"row-start":[{"row-start":H()}],"row-end":[{"row-end":H()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...q(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...q()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":q()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:L()}],mx:[{mx:L()}],my:[{my:L()}],ms:[{ms:L()}],me:[{me:L()}],mt:[{mt:L()}],mr:[{mr:L()}],mb:[{mb:L()}],ml:[{ml:L()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:D()}],w:[{w:[u,"screen",...D()]}],"min-w":[{"min-w":[u,"screen","none",...D()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...D()]}],h:[{h:["screen","lh",...D()]}],"min-h":[{"min-h":["screen","lh","none",...D()]}],"max-h":[{"max-h":["screen","lh",...D()]}],"font-size":[{text:["base",n,ef,zo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Re,Y0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",G0,Pe]}],"font-family":[{font:[oZ,Pe,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,Re,Pe]}],"line-clamp":[{"line-clamp":[ot,"none",Re,Y0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",Re,Pe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Re,Pe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:U()}],"text-color":[{text:U()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ae(),"wavy"]}],"text-decoration-thickness":[{decoration:[ot,"from-font","auto",Re,zo]}],"text-decoration-color":[{decoration:U()}],"underline-offset":[{"underline-offset":[ot,"auto",Re,Pe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Re,Pe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Re,Pe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:K()}],"bg-repeat":[{bg:J()}],"bg-size":[{bg:I()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},qs,Re,Pe],radial:["",Re,Pe],conic:[qs,Re,Pe]},cZ,sZ]}],"bg-color":[{bg:U()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:U()}],"gradient-via":[{via:U()}],"gradient-to":[{to:U()}],rounded:[{rounded:Y()}],"rounded-s":[{"rounded-s":Y()}],"rounded-e":[{"rounded-e":Y()}],"rounded-t":[{"rounded-t":Y()}],"rounded-r":[{"rounded-r":Y()}],"rounded-b":[{"rounded-b":Y()}],"rounded-l":[{"rounded-l":Y()}],"rounded-ss":[{"rounded-ss":Y()}],"rounded-se":[{"rounded-se":Y()}],"rounded-ee":[{"rounded-ee":Y()}],"rounded-es":[{"rounded-es":Y()}],"rounded-tl":[{"rounded-tl":Y()}],"rounded-tr":[{"rounded-tr":Y()}],"rounded-br":[{"rounded-br":Y()}],"rounded-bl":[{"rounded-bl":Y()}],"border-w":[{border:te()}],"border-w-x":[{"border-x":te()}],"border-w-y":[{"border-y":te()}],"border-w-s":[{"border-s":te()}],"border-w-e":[{"border-e":te()}],"border-w-t":[{"border-t":te()}],"border-w-r":[{"border-r":te()}],"border-w-b":[{"border-b":te()}],"border-w-l":[{"border-l":te()}],"divide-x":[{"divide-x":te()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":te()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ae(),"hidden","none"]}],"divide-style":[{divide:[...ae(),"hidden","none"]}],"border-color":[{border:U()}],"border-color-x":[{"border-x":U()}],"border-color-y":[{"border-y":U()}],"border-color-s":[{"border-s":U()}],"border-color-e":[{"border-e":U()}],"border-color-t":[{"border-t":U()}],"border-color-r":[{"border-r":U()}],"border-color-b":[{"border-b":U()}],"border-color-l":[{"border-l":U()}],"divide-color":[{divide:U()}],"outline-style":[{outline:[...ae(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ot,Re,Pe]}],"outline-w":[{outline:["",ot,ef,zo]}],"outline-color":[{outline:U()}],shadow:[{shadow:["","none",m,Mp,kp]}],"shadow-color":[{shadow:U()}],"inset-shadow":[{"inset-shadow":["none",p,Mp,kp]}],"inset-shadow-color":[{"inset-shadow":U()}],"ring-w":[{ring:te()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:U()}],"ring-offset-w":[{"ring-offset":[ot,zo]}],"ring-offset-color":[{"ring-offset":U()}],"inset-ring-w":[{"inset-ring":te()}],"inset-ring-color":[{"inset-ring":U()}],"text-shadow":[{"text-shadow":["none",g,Mp,kp]}],"text-shadow-color":[{"text-shadow":U()}],opacity:[{opacity:[ot,Re,Pe]}],"mix-blend":[{"mix-blend":[...ge(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ge()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ot]}],"mask-image-linear-from-pos":[{"mask-linear-from":ee()}],"mask-image-linear-to-pos":[{"mask-linear-to":ee()}],"mask-image-linear-from-color":[{"mask-linear-from":U()}],"mask-image-linear-to-color":[{"mask-linear-to":U()}],"mask-image-t-from-pos":[{"mask-t-from":ee()}],"mask-image-t-to-pos":[{"mask-t-to":ee()}],"mask-image-t-from-color":[{"mask-t-from":U()}],"mask-image-t-to-color":[{"mask-t-to":U()}],"mask-image-r-from-pos":[{"mask-r-from":ee()}],"mask-image-r-to-pos":[{"mask-r-to":ee()}],"mask-image-r-from-color":[{"mask-r-from":U()}],"mask-image-r-to-color":[{"mask-r-to":U()}],"mask-image-b-from-pos":[{"mask-b-from":ee()}],"mask-image-b-to-pos":[{"mask-b-to":ee()}],"mask-image-b-from-color":[{"mask-b-from":U()}],"mask-image-b-to-color":[{"mask-b-to":U()}],"mask-image-l-from-pos":[{"mask-l-from":ee()}],"mask-image-l-to-pos":[{"mask-l-to":ee()}],"mask-image-l-from-color":[{"mask-l-from":U()}],"mask-image-l-to-color":[{"mask-l-to":U()}],"mask-image-x-from-pos":[{"mask-x-from":ee()}],"mask-image-x-to-pos":[{"mask-x-to":ee()}],"mask-image-x-from-color":[{"mask-x-from":U()}],"mask-image-x-to-color":[{"mask-x-to":U()}],"mask-image-y-from-pos":[{"mask-y-from":ee()}],"mask-image-y-to-pos":[{"mask-y-to":ee()}],"mask-image-y-from-color":[{"mask-y-from":U()}],"mask-image-y-to-color":[{"mask-y-to":U()}],"mask-image-radial":[{"mask-radial":[Re,Pe]}],"mask-image-radial-from-pos":[{"mask-radial-from":ee()}],"mask-image-radial-to-pos":[{"mask-radial-to":ee()}],"mask-image-radial-from-color":[{"mask-radial-from":U()}],"mask-image-radial-to-color":[{"mask-radial-to":U()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":A()}],"mask-image-conic-pos":[{"mask-conic":[ot]}],"mask-image-conic-from-pos":[{"mask-conic-from":ee()}],"mask-image-conic-to-pos":[{"mask-conic-to":ee()}],"mask-image-conic-from-color":[{"mask-conic-from":U()}],"mask-image-conic-to-color":[{"mask-conic-to":U()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:K()}],"mask-repeat":[{mask:J()}],"mask-size":[{mask:I()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Re,Pe]}],filter:[{filter:["","none",Re,Pe]}],blur:[{blur:Se()}],brightness:[{brightness:[ot,Re,Pe]}],contrast:[{contrast:[ot,Re,Pe]}],"drop-shadow":[{"drop-shadow":["","none",x,Mp,kp]}],"drop-shadow-color":[{"drop-shadow":U()}],grayscale:[{grayscale:["",ot,Re,Pe]}],"hue-rotate":[{"hue-rotate":[ot,Re,Pe]}],invert:[{invert:["",ot,Re,Pe]}],saturate:[{saturate:[ot,Re,Pe]}],sepia:[{sepia:["",ot,Re,Pe]}],"backdrop-filter":[{"backdrop-filter":["","none",Re,Pe]}],"backdrop-blur":[{"backdrop-blur":Se()}],"backdrop-brightness":[{"backdrop-brightness":[ot,Re,Pe]}],"backdrop-contrast":[{"backdrop-contrast":[ot,Re,Pe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ot,Re,Pe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ot,Re,Pe]}],"backdrop-invert":[{"backdrop-invert":["",ot,Re,Pe]}],"backdrop-opacity":[{"backdrop-opacity":[ot,Re,Pe]}],"backdrop-saturate":[{"backdrop-saturate":[ot,Re,Pe]}],"backdrop-sepia":[{"backdrop-sepia":["",ot,Re,Pe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Re,Pe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ot,"initial",Re,Pe]}],ease:[{ease:["linear","initial",N,Re,Pe]}],delay:[{delay:[ot,Re,Pe]}],animate:[{animate:["none",E,Re,Pe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,Re,Pe]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:re()}],"rotate-x":[{"rotate-x":re()}],"rotate-y":[{"rotate-y":re()}],"rotate-z":[{"rotate-z":re()}],scale:[{scale:we()}],"scale-x":[{"scale-x":we()}],"scale-y":[{"scale-y":we()}],"scale-z":[{"scale-z":we()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[Re,Pe,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:fe()}],"translate-x":[{"translate-x":fe()}],"translate-y":[{"translate-y":fe()}],"translate-z":[{"translate-z":fe()}],"translate-none":["translate-none"],accent:[{accent:U()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:U()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Re,Pe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Re,Pe]}],fill:[{fill:["none",...U()]}],"stroke-w":[{stroke:[ot,ef,zo,Y0]}],stroke:[{stroke:["none",...U()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},hZ=VX(fZ);function ce(...e){return hZ(Je(e))}const Xe=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("rounded-xl border bg-card text-card-foreground shadow",e),...t}));Xe.displayName="Card";const pt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex flex-col space-y-1.5 p-6",e),...t}));pt.displayName="CardHeader";const vt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("font-semibold leading-none tracking-tight",e),...t}));vt.displayName="CardTitle";const Wn=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));Wn.displayName="CardDescription";const Ct=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("p-6 pt-0",e),...t}));Ct.displayName="CardContent";const eB=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("flex items-center p-6 pt-0",e),...t}));eB.displayName="CardFooter";function _e(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function mZ(e,t){const n=y.createContext(t),r=s=>{const{children:l,...u}=s,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(s){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function gr(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,pZ(a,...t)]}function pZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function VM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Ir(...e){return t=>{let n=!1;const r=e.map(a=>{const s=VM(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(yZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=bZ(a),u=xZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gZ=Symbol("radix.slottable");function yZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gZ}function xZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Ph(e){const t=e+"CollectionProvider",[n,r]=gr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=w=>{const{scope:b,children:N}=w,E=W.useRef(null),O=W.useRef(new Map).current;return i.jsx(a,{scope:b,itemMap:O,collectionRef:E,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=GM(u),f=W.forwardRef((w,b)=>{const{scope:N,children:E}=w,O=s(u,N),A=Ue(b,O.collectionRef);return i.jsx(d,{ref:A,children:E})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=GM(m),x=W.forwardRef((w,b)=>{const{scope:N,children:E,...O}=w,A=W.useRef(null),C=Ue(b,A),k=s(m,N);return W.useEffect(()=>(k.itemMap.set(A,{ref:A,...O}),()=>void k.itemMap.delete(A))),i.jsx(g,{[p]:"",ref:C,children:E})});x.displayName=m;function j(w){const b=s(e+"CollectionConsumer",w);return W.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const O=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(b.itemMap.values()).sort((k,T)=>O.indexOf(k.ref.current)-O.indexOf(T.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Yn=globalThis?.document?y.useLayoutEffect:()=>{},wZ=EC[" useId ".trim().toString()]||(()=>{}),jZ=0;function Gn(e){const[t,n]=y.useState(wZ());return Yn(()=>{n(r=>r??String(jZ++))},[e]),t?`radix-${t}`:""}function SZ(e){const t=_Z(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(CZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function _Z(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=EZ(a),u=OZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var NZ=Symbol("radix.slottable");function CZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===NZ}function OZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function EZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var AZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$e=AZ.reduce((e,t)=>{const n=SZ(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function HC(e,t){e&&Sl.flushSync(()=>e.dispatchEvent(t))}function ln(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var TZ=EC[" useInsertionEffect ".trim().toString()]||Yn;function Ea({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,l]=kZ({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=MZ(m)?m(e):m;p!==e&&l.current?.(p)}else s(m)},[u,e,s,l]);return[d,f]}function kZ({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),s=y.useRef(t);return TZ(()=>{s.current=t},[t]),y.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function MZ(e){return typeof e=="function"}var PZ=y.createContext(void 0);function Fu(e){const t=y.useContext(PZ);return e||t||"ltr"}var K0="rovingFocusGroup.onEntryFocus",RZ={bubbles:!1,cancelable:!0},Rh="RovingFocusGroup",[O_,tB,DZ]=Ph(Rh),[$Z,Yg]=gr(Rh,[DZ]),[IZ,LZ]=$Z(Rh),nB=y.forwardRef((e,t)=>i.jsx(O_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(O_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(BZ,{...e,ref:t})})}));nB.displayName=Rh;var BZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=Ue(t,g),j=Fu(s),[w,b]=Ea({prop:l,defaultProp:u??null,onChange:d,caller:Rh}),[N,E]=y.useState(!1),O=ln(f),A=tB(n),C=y.useRef(!1),[k,T]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(K0,O),()=>M.removeEventListener(K0,O)},[O]),i.jsx(IZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:w,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>T(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>T(M=>M-1),[]),children:i.jsx($e.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:_e(e.onMouseDown,()=>{C.current=!0}),onFocus:_e(e.onFocus,M=>{const R=!C.current;if(M.target===M.currentTarget&&R&&!N){const B=new CustomEvent(K0,RZ);if(M.currentTarget.dispatchEvent(B),!B.defaultPrevented){const $=A().filter(L=>L.focusable),H=$.find(L=>L.active),V=$.find(L=>L.id===w),G=[H,V,...$].filter(Boolean).map(L=>L.ref.current);iB(G,m)}}C.current=!1}),onBlur:_e(e.onBlur,()=>E(!1))})})}),rB="RovingFocusGroupItem",aB=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:l,...u}=e,d=Gn(),f=s||d,m=LZ(rB,n),p=m.currentTabStopId===f,g=tB(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:w}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(O_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx($e.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:_e(e.onMouseDown,b=>{r?m.onItemFocus(f):b.preventDefault()}),onFocus:_e(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:_e(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){m.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const N=FZ(b,m.orientation,m.dir);if(N!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let O=g().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")O.reverse();else if(N==="prev"||N==="next"){N==="prev"&&O.reverse();const A=O.indexOf(b.currentTarget);O=m.loop?UZ(O,A+1):O.slice(A+1)}setTimeout(()=>iB(O))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:w!=null}):l})})});aB.displayName=rB;var zZ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function qZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function FZ(e,t,n){const r=qZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return zZ[r]}function iB(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function UZ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var sB=nB,oB=aB;function HZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var Bn=e=>{const{present:t,children:n}=e,r=WZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),s=Ue(r.ref,VZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:s}):null};Bn.displayName="Presence";function WZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),s=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=HZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Pp(r.current);s.current=u==="mounted"?f:"none"},[u]),Yn(()=>{const f=r.current,m=a.current;if(m!==e){const g=s.current,x=Pp(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Yn(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const w=Pp(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&w&&(d("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=x=>{x.target===t&&(s.current=Pp(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Pp(e){return e?.animationName||"none"}function VZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Kg="Tabs",[GZ]=gr(Kg,[Yg]),lB=Yg(),[YZ,WC]=GZ(Kg),cB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Fu(u),[p,g]=Ea({prop:r,onChange:a,defaultProp:s??"",caller:Kg});return i.jsx(YZ,{scope:n,baseId:Gn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx($e.div,{dir:m,"data-orientation":l,...f,ref:t})})});cB.displayName=Kg;var uB="TabsList",dB=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=WC(uB,n),l=lB(n);return i.jsx(sB,{asChild:!0,...l,orientation:s.orientation,dir:s.dir,loop:r,children:i.jsx($e.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});dB.displayName=uB;var fB="TabsTrigger",hB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,l=WC(fB,n),u=lB(n),d=vB(l.baseId,r),f=gB(l.baseId,r),m=r===l.value;return i.jsx(oB,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx($e.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...s,ref:t,onMouseDown:_e(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:_e(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:_e(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});hB.displayName=fB;var mB="TabsContent",pB=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...l}=e,u=WC(mB,n),d=vB(u.baseId,r),f=gB(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(Bn,{present:a||m,children:({present:g})=>i.jsx($e.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&s})})});pB.displayName=mB;function vB(e,t){return`${e}-trigger-${t}`}function gB(e,t){return`${e}-content-${t}`}var KZ=cB,yB=dB,xB=hB,bB=pB;const dl=KZ,eo=y.forwardRef(({className:e,...t},n)=>i.jsx(yB,{ref:n,className:ce("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));eo.displayName=yB.displayName;const Rt=y.forwardRef(({className:e,...t},n)=>i.jsx(xB,{ref:n,className:ce("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Rt.displayName=xB.displayName;const sn=y.forwardRef(({className:e,...t},n)=>i.jsx(bB,{ref:n,className:ce("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));sn.displayName=bB.displayName;function Rf(e,[t,n]){return Math.min(n,Math.max(t,e))}function XZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var VC="ScrollArea",[wB]=gr(VC),[ZZ,Ta]=wB(VC),jB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:s=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(0),[O,A]=y.useState(0),[C,k]=y.useState(!1),[T,M]=y.useState(!1),R=Ue(t,$=>d($)),B=Fu(a);return i.jsx(ZZ,{scope:n,type:r,dir:B,scrollHideDelay:s,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:w,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:E,onCornerHeightChange:A,children:i.jsx($e.div,{dir:B,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":O+"px",...e.style}})})});jB.displayName=VC;var SB="ScrollAreaViewport",_B=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...s}=e,l=Ta(SB,n),u=y.useRef(null),d=Ue(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx($e.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});_B.displayName=SB;var ji="ScrollAreaScrollbar",GC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)}),[u,s,l]),a.type==="hover"?i.jsx(QZ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(JZ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(NB,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(YC,{...r,ref:t}):null});GC.displayName=ji;var QZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),[s,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(Bn,{present:n||s,children:i.jsx(NB,{"data-state":s?"visible":"hidden",...r,ref:t})})}),JZ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ta(ji,e.__scopeScrollArea),s=e.orientation==="horizontal",l=Zg(()=>d("SCROLL_END"),100),[u,d]=XZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=s?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,s,d,l]),i.jsx(Bn,{present:n||u!=="hidden",children:i.jsx(YC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:_e(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:_e(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),NB=y.forwardRef((e,t)=>{const n=Ta(ji,e.__scopeScrollArea),{forceMount:r,...a}=e,[s,l]=y.useState(!1),u=e.orientation==="horizontal",d=Zg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Ta(ji,e.__scopeScrollArea),s=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=TB(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>s.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return iQ(g,l.current,u,x)}return n==="horizontal"?i.jsx(eQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollLeft,x=YM(g,u,a.dir);s.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(tQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollTop,x=YM(g,u);s.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),eQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ta(ji,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(OB,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Xg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),MB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:Cv(l.paddingLeft),paddingEnd:Cv(l.paddingRight)}})}})}),tQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ta(ji,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(OB,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Xg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),MB(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:Cv(l.paddingTop),paddingEnd:Cv(l.paddingBottom)}})}})}),[nQ,CB]=wB(ji),OB=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Ta(ji,n),[j,w]=y.useState(null),b=Ue(t,R=>w(R)),N=y.useRef(null),E=y.useRef(""),O=x.viewport,A=r.content-r.viewport,C=ln(m),k=ln(d),T=Zg(p,10);function M(R){if(N.current){const B=R.clientX-N.current.left,$=R.clientY-N.current.top;f({x:B,y:$})}}return y.useEffect(()=>{const R=B=>{const $=B.target;j?.contains($)&&C(B,A)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[O,j,A,C]),y.useEffect(k,[r,k]),su(j,T),su(x.content,T),i.jsx(nQ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:ln(s),onThumbPointerUp:ln(l),onThumbPositionChange:k,onThumbPointerDown:ln(u),children:i.jsx($e.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:_e(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),N.current=j.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(R))}),onPointerMove:_e(e.onPointerMove,M),onPointerUp:_e(e.onPointerUp,R=>{const B=R.target;B.hasPointerCapture(R.pointerId)&&B.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),Nv="ScrollAreaThumb",EB=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=CB(Nv,e.__scopeScrollArea);return i.jsx(Bn,{present:n||a.hasThumb,children:i.jsx(rQ,{ref:t,...r})})}),rQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,s=Ta(Nv,n),l=CB(Nv,n),{onThumbPositionChange:u}=l,d=Ue(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Zg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=s.viewport;if(p){const g=()=>{if(m(),!f.current){const x=sQ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[s.viewport,m,u]),i.jsx($e.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:_e(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,w=p.clientY-x.top;l.onThumbPointerDown({x:j,y:w})}),onPointerUp:_e(e.onPointerUp,l.onThumbPointerUp)})});EB.displayName=Nv;var KC="ScrollAreaCorner",AB=y.forwardRef((e,t)=>{const n=Ta(KC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(aQ,{...e,ref:t}):null});AB.displayName=KC;var aQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Ta(KC,n),[s,l]=y.useState(0),[u,d]=y.useState(0),f=!!(s&&u);return su(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),su(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx($e.div,{...r,ref:t,style:{width:s,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Cv(e){return e?parseInt(e,10):0}function TB(e,t){const n=e/t;return isNaN(n)?0:n}function Xg(e){const t=TB(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function iQ(e,t,n,r="ltr"){const a=Xg(n),s=a/2,l=t||s,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return kB([d,f],p)(e)}function YM(e,t,n="ltr"){const r=Xg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,u=s-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Rf(e,d);return kB([0,l],[0,u])(f)}function kB(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function MB(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const s={left:e.scrollLeft,top:e.scrollTop},l=n.left!==s.left,u=n.top!==s.top;(l||u)&&t(),n=s,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Zg(e,t){const n=ln(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function su(e,t){const n=ln(t);Yn(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var PB=jB,oQ=_B,lQ=AB;const Wt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(PB,{ref:r,className:ce("relative overflow-hidden",e),...n,children:[i.jsx(oQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx(RB,{}),i.jsx(lQ,{})]}));Wt.displayName=PB.displayName;const RB=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(GC,{ref:r,orientation:t,className:ce("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(EB,{className:"relative flex-1 rounded-full bg-border"})}));RB.displayName=GC.displayName;function KM({className:e,...t}){return i.jsx("div",{className:ce("animate-pulse rounded-md bg-primary/10",e),...t})}function cQ(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l);u.displayName=s+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,uQ(a,...t)]}function uQ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var dQ=Symbol.for("react.lazy"),Ov=EC[" use ".trim().toString()];function fQ(e){return typeof e=="object"&&e!==null&&"then"in e}function DB(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===dQ&&"_payload"in e&&fQ(e._payload)}function Dh(e){const t=mQ(e),n=y.forwardRef((r,a)=>{let{children:s,...l}=r;DB(s)&&typeof Ov=="function"&&(s=Ov(s._payload));const u=y.Children.toArray(s),d=u.find(vQ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var hQ=Dh("Slot");function mQ(e){const t=y.forwardRef((n,r)=>{let{children:a,...s}=n;if(DB(a)&&typeof Ov=="function"&&(a=Ov(a._payload)),y.isValidElement(a)){const l=yQ(a),u=gQ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var pQ=Symbol("radix.slottable");function vQ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===pQ}function gQ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function yQ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var xQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$B=xQ.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),XC="Progress",ZC=100,[bQ]=cQ(XC),[wQ,jQ]=bQ(XC),IB=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:s=SQ,...l}=e;(a||a===0)&&!XM(a)&&console.error(_Q(`${a}`,"Progress"));const u=XM(a)?a:ZC;r!==null&&!ZM(r,u)&&console.error(NQ(`${r}`,"Progress"));const d=ZM(r,u)?r:null,f=Ev(d)?s(d,u):void 0;return i.jsx(wQ,{scope:n,value:d,max:u,children:i.jsx($B.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":Ev(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":zB(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});IB.displayName=XC;var LB="ProgressIndicator",BB=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=jQ(LB,n);return i.jsx($B.div,{"data-state":zB(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});BB.displayName=LB;function SQ(e,t){return`${Math.round(e/t*100)}%`}function zB(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Ev(e){return typeof e=="number"}function XM(e){return Ev(e)&&!isNaN(e)&&e>0}function ZM(e,t){return Ev(e)&&!isNaN(e)&&e<=t&&e>=0}function _Q(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${ZC}\`.`}function NQ(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${ZC} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var qB=IB,CQ=BB;const $h=y.forwardRef(({className:e,value:t,...n},r)=>i.jsx(qB,{ref:r,className:ce("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(CQ,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));$h.displayName=qB.displayName;var X0,QM;function qr(){if(QM)return X0;QM=1;var e=Array.isArray;return X0=e,X0}var Z0,JM;function FB(){if(JM)return Z0;JM=1;var e=typeof Np=="object"&&Np&&Np.Object===Object&&Np;return Z0=e,Z0}var Q0,eP;function Si(){if(eP)return Q0;eP=1;var e=FB(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return Q0=n,Q0}var J0,tP;function Ih(){if(tP)return J0;tP=1;var e=Si(),t=e.Symbol;return J0=t,J0}var ew,nP;function OQ(){if(nP)return ew;nP=1;var e=Ih(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function s(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return ew=s,ew}var tw,rP;function EQ(){if(rP)return tw;rP=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return tw=n,tw}var nw,aP;function fs(){if(aP)return nw;aP=1;var e=Ih(),t=OQ(),n=EQ(),r="[object Null]",a="[object Undefined]",s=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:s&&s in Object(u)?t(u):n(u)}return nw=l,nw}var rw,iP;function hs(){if(iP)return rw;iP=1;function e(t){return t!=null&&typeof t=="object"}return rw=e,rw}var aw,sP;function Uu(){if(sP)return aw;sP=1;var e=fs(),t=hs(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return aw=r,aw}var iw,oP;function QC(){if(oP)return iw;oP=1;var e=qr(),t=Uu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(s,l){if(e(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||t(s)?!0:r.test(s)||!n.test(s)||l!=null&&s in Object(l)}return iw=a,iw}var sw,lP;function lo(){if(lP)return sw;lP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return sw=e,sw}var ow,cP;function JC(){if(cP)return ow;cP=1;var e=fs(),t=lo(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==s}return ow=l,ow}var lw,uP;function AQ(){if(uP)return lw;uP=1;var e=Si(),t=e["__core-js_shared__"];return lw=t,lw}var cw,dP;function TQ(){if(dP)return cw;dP=1;var e=AQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return cw=n,cw}var uw,fP;function UB(){if(fP)return uw;fP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return uw=n,uw}var dw,hP;function kQ(){if(hP)return dw;hP=1;var e=JC(),t=TQ(),n=lo(),r=UB(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:s;return x.test(r(g))}return dw=p,dw}var fw,mP;function MQ(){if(mP)return fw;mP=1;function e(t,n){return t?.[n]}return fw=e,fw}var hw,pP;function _l(){if(pP)return hw;pP=1;var e=kQ(),t=MQ();function n(r,a){var s=t(r,a);return e(s)?s:void 0}return hw=n,hw}var mw,vP;function Qg(){if(vP)return mw;vP=1;var e=_l(),t=e(Object,"create");return mw=t,mw}var pw,gP;function PQ(){if(gP)return pw;gP=1;var e=Qg();function t(){this.__data__=e?e(null):{},this.size=0}return pw=t,pw}var vw,yP;function RQ(){if(yP)return vw;yP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return vw=e,vw}var gw,xP;function DQ(){if(xP)return gw;xP=1;var e=Qg(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(s){var l=this.__data__;if(e){var u=l[s];return u===t?void 0:u}return r.call(l,s)?l[s]:void 0}return gw=a,gw}var yw,bP;function $Q(){if(bP)return yw;bP=1;var e=Qg(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var s=this.__data__;return e?s[a]!==void 0:n.call(s,a)}return yw=r,yw}var xw,wP;function IQ(){if(wP)return xw;wP=1;var e=Qg(),t="__lodash_hash_undefined__";function n(r,a){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=e&&a===void 0?t:a,this}return xw=n,xw}var bw,jP;function LQ(){if(jP)return bw;jP=1;var e=PQ(),t=RQ(),n=DQ(),r=$Q(),a=IQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return Cw=t,Cw}var Ow,AP;function UQ(){if(AP)return Ow;AP=1;var e=Jg();function t(n,r){var a=this.__data__,s=e(a,n);return s<0?(++this.size,a.push([n,r])):a[s][1]=r,this}return Ow=t,Ow}var Ew,TP;function ey(){if(TP)return Ew;TP=1;var e=BQ(),t=zQ(),n=qQ(),r=FQ(),a=UQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Ko=function(t){return fl(t)&&t.indexOf("%")===t.length-1},Ce=function(t){return fJ(t)&&!Lh(t)},hJ=function(t){return Qe(t)},Ln=function(t){return Ce(t)||fl(t)},mJ=0,Wu=function(t){var n=++mJ;return"".concat(t||"").concat(n)},Sr=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ce(t)&&!fl(t))return r;var s;if(Ko(t)){var l=t.indexOf("%");s=n*parseFloat(t.slice(0,l))/100}else s=+t;return Lh(s)&&(s=r),a&&s>n&&(s=n),s},Ws=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},pJ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function jJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function A_(e){"@babel/helpers - typeof";return A_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},A_(e)}var aR={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},ns=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},iR=null,ej=null,sO=function e(t){if(t===iR&&Array.isArray(ej))return ej;var n=[];return y.Children.forEach(t,function(r){Qe(r)||(lJ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),ej=n,iR=t,n};function ia(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return ns(a)}):r=[ns(t)],sO(e).forEach(function(a){var s=aa(a,"type.displayName")||aa(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function Qr(e,t){var n=ia(e,t);return n&&n[0]}var sR=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ce(r)||r<=0||!Ce(a)||a<=0)},SJ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],_J=function(t){return t&&t.type&&fl(t.type)&&SJ.indexOf(t.type)>=0},NJ=function(t){return t&&A_(t)==="object"&&"clipDot"in t},CJ=function(t,n,r,a){var s,l=(s=Jw?.[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!Ke(t)&&(a&&l.includes(n)||yJ.includes(n))||r&&iO.includes(n)},qe=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!Hu(a))return null;var s={};return Object.keys(a).forEach(function(l){var u;CJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(s[l]=a[l])}),s},T_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return oR(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function M_(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=TJ(e,AJ),m=a||{width:n,height:r,x:0,y:0},p=Je("recharts-surface",s);return W.createElement("svg",k_({},qe(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var MJ=["children","className"];function P_(){return P_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function RJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var xt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=PJ(e,MJ),s=Je("recharts-layer",r);return W.createElement("g",P_({className:s},qe(a,!0),{ref:t}),n)}),Ha=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;ss?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(s);++a=s?n:e(n,r,a)}return nj=t,nj}var rj,dR;function KB(){if(dR)return rj;dR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+s+"]");function d(f){return u.test(f)}return rj=d,rj}var aj,fR;function IJ(){if(fR)return aj;fR=1;function e(t){return t.split("")}return aj=e,aj}var ij,hR;function LJ(){if(hR)return ij;hR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",w="["+s+"]?",b="(?:"+x+"(?:"+[m,p,g].join("|")+")"+w+j+")*",N=w+j+b,E="(?:"+[m+u+"?",u,p,g,l].join("|")+")",O=RegExp(d+"(?="+d+")|"+E+N,"g");function A(C){return C.match(O)||[]}return ij=A,ij}var sj,mR;function BJ(){if(mR)return sj;mR=1;var e=IJ(),t=KB(),n=LJ();function r(a){return t(a)?n(a):e(a)}return sj=r,sj}var oj,pR;function zJ(){if(pR)return oj;pR=1;var e=$J(),t=KB(),n=BJ(),r=WB();function a(s){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[s]()+f}}return oj=a,oj}var lj,vR;function qJ(){if(vR)return lj;vR=1;var e=zJ(),t=e("toUpperCase");return lj=t,lj}var FJ=qJ();const ry=At(FJ);function Kt(e){return function(){return e}}const XB=Math.cos,kv=Math.sin,Xa=Math.sqrt,Mv=Math.PI,ay=2*Mv,R_=Math.PI,D_=2*R_,Ho=1e-6,UJ=D_-Ho;function ZB(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return ZB;const n=10**t;return function(r){this._+=r[0];for(let a=1,s=r.length;aHo)if(!(Math.abs(p*d-f*m)>Ho)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,w=d*d+f*f,b=x*x+j*j,N=Math.sqrt(w),E=Math.sqrt(g),O=s*Math.tan((R_-Math.acos((w+g-b)/(2*N*E)))/2),A=O/E,C=O/N;Math.abs(A-1)>Ho&&this._append`L${t+A*m},${n+A*p}`,this._append`A${s},${s},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,s,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-s:s-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Ho||Math.abs(this._y1-m)>Ho)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%D_+D_),g>UJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Ho&&this._append`A${r},${r},0,${+(g>=R_)},${p},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function oO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new WJ(t)}function lO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function QB(e){this._context=e}QB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function iy(e){return new QB(e)}function JB(e){return e[0]}function ez(e){return e[1]}function tz(e,t){var n=Kt(!0),r=null,a=iy,s=null,l=oO(u);e=typeof e=="function"?e:e===void 0?JB:Kt(e),t=typeof t=="function"?t:t===void 0?ez:Kt(t);function u(d){var f,m=(d=lO(d)).length,p,g=!1,x;for(r==null&&(s=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(O[j],A[j]);u.lineEnd(),u.areaEnd()}N&&(O[g]=+e(b,g,p),A[g]=+t(b,g,p),u.point(r?+r(b,g,p):O[g],n?+n(b,g,p):A[g]))}if(E)return u=null,E+""||null}function m(){return tz().defined(a).curve(l).context(s)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Kt(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Kt(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Kt(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Kt(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Kt(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Kt(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Kt(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,s!=null&&(u=l(s)),f):l},f.context=function(p){return arguments.length?(p==null?s=u=null:u=l(s=p),f):s},f}class nz{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function VJ(e){return new nz(e,!0)}function GJ(e){return new nz(e,!1)}const cO={draw(e,t){const n=Xa(t/Mv);e.moveTo(n,0),e.arc(0,0,n,0,ay)}},YJ={draw(e,t){const n=Xa(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},rz=Xa(1/3),KJ=rz*2,XJ={draw(e,t){const n=Xa(t/KJ),r=n*rz;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},ZJ={draw(e,t){const n=Xa(t),r=-n/2;e.rect(r,r,n,n)}},QJ=.8908130915292852,az=kv(Mv/10)/kv(7*Mv/10),JJ=kv(ay/10)*az,eee=-XB(ay/10)*az,tee={draw(e,t){const n=Xa(t*QJ),r=JJ*n,a=eee*n;e.moveTo(0,-n),e.lineTo(r,a);for(let s=1;s<5;++s){const l=ay*s/5,u=XB(l),d=kv(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},cj=Xa(3),nee={draw(e,t){const n=-Xa(t/(cj*3));e.moveTo(0,n*2),e.lineTo(-cj*n,-n),e.lineTo(cj*n,-n),e.closePath()}},ba=-.5,wa=Xa(3)/2,$_=1/Xa(12),ree=($_/2+1)*3,aee={draw(e,t){const n=Xa(t/ree),r=n/2,a=n*$_,s=r,l=n*$_+n,u=-s,d=l;e.moveTo(r,a),e.lineTo(s,l),e.lineTo(u,d),e.lineTo(ba*r-wa*a,wa*r+ba*a),e.lineTo(ba*s-wa*l,wa*s+ba*l),e.lineTo(ba*u-wa*d,wa*u+ba*d),e.lineTo(ba*r+wa*a,ba*a-wa*r),e.lineTo(ba*s+wa*l,ba*l-wa*s),e.lineTo(ba*u+wa*d,ba*d-wa*u),e.closePath()}};function iee(e,t){let n=null,r=oO(a);e=typeof e=="function"?e:Kt(e||cO),t=typeof t=="function"?t:Kt(t===void 0?64:+t);function a(){let s;if(n||(n=s=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(e=typeof s=="function"?s:Kt(s),a):e},a.size=function(s){return arguments.length?(t=typeof s=="function"?s:Kt(+s),a):t},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function Pv(){}function Rv(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function iz(e){this._context=e}iz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Rv(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function see(e){return new iz(e)}function sz(e){this._context=e}sz.prototype={areaStart:Pv,areaEnd:Pv,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function oee(e){return new sz(e)}function oz(e){this._context=e}oz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:Rv(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lee(e){return new oz(e)}function lz(e){this._context=e}lz.prototype={areaStart:Pv,areaEnd:Pv,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function cee(e){return new lz(e)}function gR(e){return e<0?-1:1}function yR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(s*a+l*r)/(r+a);return(gR(s)+gR(l))*Math.min(Math.abs(s),Math.abs(l),.5*Math.abs(u))||0}function xR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function uj(e,t,n){var r=e._x0,a=e._y0,s=e._x1,l=e._y1,u=(s-r)/3;e._context.bezierCurveTo(r+u,a+u*t,s-u,l-u*n,s,l)}function Dv(e){this._context=e}Dv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:uj(this,this._t0,xR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,uj(this,xR(this,n=yR(this,e,t)),n);break;default:uj(this,this._t0,n=yR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function cz(e){this._context=new uz(e)}(cz.prototype=Object.create(Dv.prototype)).point=function(e,t){Dv.prototype.point.call(this,t,e)};function uz(e){this._context=e}uz.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,s){this._context.bezierCurveTo(t,e,r,n,s,a)}};function uee(e){return new Dv(e)}function dee(e){return new cz(e)}function dz(e){this._context=e}dz.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=bR(e),a=bR(t),s=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/s[t];for(s[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function hee(e){return new sy(e,.5)}function mee(e){return new sy(e,0)}function pee(e){return new sy(e,1)}function ou(e,t){if((l=e.length)>1)for(var n=1,r,a,s=e[t[0]],l,u=s.length;n=0;)n[t]=t;return n}function vee(e,t){return e[t]}function gee(e){const t=[];return t.key=e,t}function yee(){var e=Kt([]),t=I_,n=ou,r=vee;function a(s){var l=Array.from(e.apply(this,arguments),gee),u,d=l.length,f=-1,m;for(const p of s)for(u=0,++f;u0){for(var n,r,a=0,s=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,s=r.length;n0)||!((s=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,s,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Oee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var fz={symbolCircle:cO,symbolCross:YJ,symbolDiamond:XJ,symbolSquare:ZJ,symbolStar:tee,symbolTriangle:nee,symbolWye:aee},Eee=Math.PI/180,Aee=function(t){var n="symbol".concat(ry(t));return fz[n]||cO},Tee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*Eee;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},kee=function(t,n){fz["symbol".concat(ry(t))]=n},uO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,s=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=Cee(t,jee),f=jR(jR({},d),{},{type:r,size:s,sizeType:u}),m=function(){var b=Aee(r),N=iee().type(b).size(Tee(s,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=qe(f,!0);return g===+g&&x===+x&&s===+s?W.createElement("path",L_({},j,{className:Je("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};uO.registerSymbol=kee;function lu(e){"@babel/helpers - typeof";return lu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lu(e)}function B_(){return B_=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var E=x.inactive?f:x.color;return W.createElement("li",B_({className:b,style:p,key:"legend-item-".concat(j)},hl(r.props,x,j)),W.createElement(M_,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:s==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);$f(dO,"displayName","Legend");$f(dO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var dj,_R;function qee(){if(_R)return dj;_R=1;var e=ey();function t(){this.__data__=new e,this.size=0}return dj=t,dj}var fj,NR;function Fee(){if(NR)return fj;NR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return fj=e,fj}var hj,CR;function Uee(){if(CR)return hj;CR=1;function e(t){return this.__data__.get(t)}return hj=e,hj}var mj,OR;function Hee(){if(OR)return mj;OR=1;function e(t){return this.__data__.has(t)}return mj=e,mj}var pj,ER;function Wee(){if(ER)return pj;ER=1;var e=ey(),t=tO(),n=nO(),r=200;function a(s,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var w=p.get(l),b=p.get(u);if(w&&b)return w==u&&b==l;var N=-1,E=!0,O=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return Ij=t,Ij}var Lj,QR;function ate(){if(QR)return Lj;QR=1;var e=fs(),t=pO(),n=hs(),r="[object Arguments]",a="[object Array]",s="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",w="[object WeakMap]",b="[object ArrayBuffer]",N="[object DataView]",E="[object Float32Array]",O="[object Float64Array]",A="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",R="[object Uint16Array]",B="[object Uint32Array]",$={};$[E]=$[O]=$[A]=$[C]=$[k]=$[T]=$[M]=$[R]=$[B]=!0,$[r]=$[a]=$[b]=$[s]=$[N]=$[l]=$[u]=$[d]=$[f]=$[m]=$[p]=$[g]=$[x]=$[j]=$[w]=!1;function H(V){return n(V)&&t(V.length)&&!!$[e(V)]}return Lj=H,Lj}var Bj,JR;function jz(){if(JR)return Bj;JR=1;function e(t){return function(n){return t(n)}}return Bj=e,Bj}var pf={exports:{}};pf.exports;var eD;function ite(){return eD||(eD=1,(function(e,t){var n=FB(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(pf,pf.exports)),pf.exports}var zj,tD;function Sz(){if(tD)return zj;tD=1;var e=ate(),t=jz(),n=ite(),r=n&&n.isTypedArray,a=r?t(r):e;return zj=a,zj}var qj,nD;function ste(){if(nD)return qj;nD=1;var e=tte(),t=hO(),n=qr(),r=wz(),a=mO(),s=Sz(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&s(f),w=p||g||x||j,b=w?e(f.length,String):[],N=b.length;for(var E in f)(m||u.call(f,E))&&!(w&&(E=="length"||x&&(E=="offset"||E=="parent")||j&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||a(E,N)))&&b.push(E);return b}return qj=d,qj}var Fj,rD;function ote(){if(rD)return Fj;rD=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return Fj=t,Fj}var Uj,aD;function _z(){if(aD)return Uj;aD=1;function e(t,n){return function(r){return t(n(r))}}return Uj=e,Uj}var Hj,iD;function lte(){if(iD)return Hj;iD=1;var e=_z(),t=e(Object.keys,Object);return Hj=t,Hj}var Wj,sD;function cte(){if(sD)return Wj;sD=1;var e=ote(),t=lte(),n=Object.prototype,r=n.hasOwnProperty;function a(s){if(!e(s))return t(s);var l=[];for(var u in Object(s))r.call(s,u)&&u!="constructor"&&l.push(u);return l}return Wj=a,Wj}var Vj,oD;function Bh(){if(oD)return Vj;oD=1;var e=JC(),t=pO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Vj=n,Vj}var Gj,lD;function oy(){if(lD)return Gj;lD=1;var e=ste(),t=cte(),n=Bh();function r(a){return n(a)?e(a):t(a)}return Gj=r,Gj}var Yj,cD;function ute(){if(cD)return Yj;cD=1;var e=Zee(),t=ete(),n=oy();function r(a){return e(a,n,t)}return Yj=r,Yj}var Kj,uD;function dte(){if(uD)return Kj;uD=1;var e=ute(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(s,l,u,d,f,m){var p=u&t,g=e(s),x=g.length,j=e(l),w=j.length;if(x!=w&&!p)return!1;for(var b=x;b--;){var N=g[b];if(!(p?N in l:r.call(l,N)))return!1}var E=m.get(s),O=m.get(l);if(E&&O)return E==l&&O==s;var A=!0;m.set(s,l),m.set(l,s);for(var C=p;++b-1}return w1=t,w1}var j1,ID;function kte(){if(ID)return j1;ID=1;function e(t,n,r){for(var a=-1,s=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return s(N);j=!1,g=r,b=new e}else b=f?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Vte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Gte(e){return e.value}function Yte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=Wte(t,Ite);return W.createElement(dO,n)}var WD=1,al=(function(e){function t(){var n;Lte(this,t);for(var r=arguments.length,a=new Array(r),s=0;sWD||Math.abs(a.height-this.lastBoundingBox.height)>WD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Vi({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&s==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Vi(Vi({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Vi(Vi({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Yte(s,Vi(Vi({},this.props),{},{payload:Az(m,f,Gte)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Vi(Vi({},this.defaultProps),r.props),l=s.layout;return l==="vertical"&&Ce(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);ly(al,"displayName","Legend");ly(al,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var O1,VD;function Kte(){if(VD)return O1;VD=1;var e=Ih(),t=hO(),n=qr(),r=e?e.isConcatSpreadable:void 0;function a(s){return n(s)||t(s)||!!(r&&s&&s[r])}return O1=a,O1}var E1,GD;function Mz(){if(GD)return E1;GD=1;var e=bz(),t=Kte();function n(r,a,s,l,u){var d=-1,f=r.length;for(s||(s=t),u||(u=[]);++d0&&s(m)?a>1?n(m,a-1,s,l,u):e(u,m):l||(u[u.length]=m)}return u}return E1=n,E1}var A1,YD;function Xte(){if(YD)return A1;YD=1;function e(t){return function(n,r,a){for(var s=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++s];if(r(l[f],f,l)===!1)break}return n}}return A1=e,A1}var T1,KD;function Zte(){if(KD)return T1;KD=1;var e=Xte(),t=e();return T1=t,T1}var k1,XD;function Pz(){if(XD)return k1;XD=1;var e=Zte(),t=oy();function n(r,a){return r&&e(r,a,t)}return k1=n,k1}var M1,ZD;function Qte(){if(ZD)return M1;ZD=1;var e=Bh();function t(n,r){return function(a,s){if(a==null)return a;if(!e(a))return n(a,s);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||s&&d&&m||!a&&m||!l)return 1;if(!s&&!u&&!p&&n=f)return m;var p=a[s];return m*(p=="desc"?-1:1)}}return n.index-r.index}return I1=t,I1}var L1,r4;function nne(){if(r4)return L1;r4=1;var e=rO(),t=aO(),n=_i(),r=Rz(),a=Jte(),s=jz(),l=tne(),u=Vu(),d=qr();function f(m,p,g){p.length?p=e(p,function(w){return d(w)?function(b){return t(b,w.length===1?w[0]:w)}:w}):p=[u];var x=-1;p=e(p,s(n));var j=r(m,function(w,b,N){var E=e(p,function(O){return O(w)});return{criteria:E,index:++x,value:w}});return a(j,function(w,b){return l(w,b,g)})}return L1=f,L1}var B1,a4;function rne(){if(a4)return B1;a4=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return B1=e,B1}var z1,i4;function ane(){if(i4)return z1;i4=1;var e=rne(),t=Math.max;function n(r,a,s){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++s>=e)return arguments[0]}else s=0;return a.apply(void 0,arguments)}}return H1=r,H1}var W1,u4;function lne(){if(u4)return W1;u4=1;var e=sne(),t=one(),n=t(e);return W1=n,W1}var V1,d4;function cne(){if(d4)return V1;d4=1;var e=Vu(),t=ane(),n=lne();function r(a,s){return n(t(a,s,e),a+"")}return V1=r,V1}var G1,f4;function cy(){if(f4)return G1;f4=1;var e=eO(),t=Bh(),n=mO(),r=lo();function a(s,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],s):!1}return G1=a,G1}var Y1,h4;function une(){if(h4)return Y1;h4=1;var e=Mz(),t=nne(),n=cne(),r=cy(),a=n(function(s,l){if(s==null)return[];var u=l.length;return u>1&&r(s,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(s,e(l,1),[])});return Y1=a,Y1}var dne=une();const yO=At(dne);function If(e){"@babel/helpers - typeof";return If=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},If(e)}function F_(){return F_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(tf,"-left"),Ce(n)&&t&&Ce(t.x)&&n=t.y),"".concat(tf,"-top"),Ce(r)&&t&&Ce(t.y)&&rw?Math.max(m,d[r]):Math.max(p,d[r])}function Cne(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function One(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,s=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=v4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=v4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=Cne({translateX:m,translateY:p,useTranslate3d:u})):f=_ne,{cssProperties:f,cssClasses:Nne({translateX:m,translateY:p,coordinate:n})}}function uu(e){"@babel/helpers - typeof";return uu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},uu(e)}function g4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function y4(e){for(var t=1;tx4||Math.abs(r.height-this.state.lastBoundingBox.height)>x4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,w=a.reverseDirection,b=a.useTranslate3d,N=a.viewBox,E=a.wrapperStyle,O=One({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:N}),A=O.cssClasses,C=O.cssProperties,k=y4(y4({transition:g&&s?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return W.createElement("div",{tabIndex:-1,className:A,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),Ine=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Nl={isSsr:Ine()};function du(e){"@babel/helpers - typeof";return du=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},du(e)}function b4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function w4(e){for(var t=1;t0;return W.createElement($ne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:s,coordinate:m,hasPayload:k,offset:x,position:b,reverseDirection:N,useTranslate3d:E,viewBox:O,wrapperStyle:A},Gne(f,w4(w4({},this.props),{},{payload:C})))}}])})(y.PureComponent);xO(ii,"displayName","Tooltip");xO(ii,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Nl.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var X1,j4;function Yne(){if(j4)return X1;j4=1;var e=Si(),t=function(){return e.Date.now()};return X1=t,X1}var Z1,S4;function Kne(){if(S4)return Z1;S4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return Z1=t,Z1}var Q1,_4;function Xne(){if(_4)return Q1;_4=1;var e=Kne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return Q1=n,Q1}var J1,N4;function zz(){if(N4)return J1;N4=1;var e=Xne(),t=lo(),n=Uu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=s.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return J1=d,J1}var eS,C4;function Zne(){if(C4)return eS;C4=1;var e=lo(),t=Yne(),n=zz(),r="Expected a function",a=Math.max,s=Math.min;function l(u,d,f){var m,p,g,x,j,w,b=0,N=!1,E=!1,O=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,E="maxWait"in f,g=E?a(n(f.maxWait)||0,d):g,O="trailing"in f?!!f.trailing:O);function A(V){var q=m,G=p;return m=p=void 0,b=V,x=u.apply(G,q),x}function C(V){return b=V,j=setTimeout(M,d),N?A(V):x}function k(V){var q=V-w,G=V-b,L=d-q;return E?s(L,g-G):L}function T(V){var q=V-w,G=V-b;return w===void 0||q>=d||q<0||E&&G>=g}function M(){var V=t();if(T(V))return R(V);j=setTimeout(M,k(V))}function R(V){return j=void 0,O&&m?A(V):(m=p=void 0,x)}function B(){j!==void 0&&clearTimeout(j),b=0,m=w=p=j=void 0}function $(){return j===void 0?x:R(t())}function H(){var V=t(),q=T(V);if(m=arguments,p=this,w=V,q){if(j===void 0)return C(w);if(E)return clearTimeout(j),j=setTimeout(M,d),A(w)}return j===void 0&&(j=setTimeout(M,d)),x}return H.cancel=B,H.flush=$,H}return eS=l,eS}var tS,O4;function Qne(){if(O4)return tS;O4=1;var e=Zne(),t=lo(),n="Expected a function";function r(a,s,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,s,{leading:u,maxWait:s,trailing:d})}return tS=r,tS}var Jne=Qne();const qz=At(Jne);function Bf(e){"@babel/helpers - typeof";return Bf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bf(e)}function E4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $p(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(V=qz(V,w,{trailing:!0,leading:!1}));var q=new ResizeObserver(V),G=C.current.getBoundingClientRect(),L=G.width,D=G.height;return $(L,D),q.observe(C.current),function(){q.disconnect()}},[$,w]);var H=y.useMemo(function(){var V=R.containerWidth,q=R.containerHeight;if(V<0||q<0)return null;Ha(Ko(l)||Ko(d),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,l,d),Ha(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Ko(l)?V:l,L=Ko(d)?q:d;n&&n>0&&(G?L=G/n:L&&(G=L*n),g&&L>g&&(L=g)),Ha(G>0||L>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,G,L,l,d,m,p,n);var D=!Array.isArray(x)&&ns(x.type).endsWith("Chart");return W.Children.map(x,function(U){return W.isValidElement(U)?y.cloneElement(U,$p({width:G,height:L},D?{style:$p({height:"100%",width:"100%",maxHeight:L,maxWidth:G},U.props.style)}:{})):U})},[n,x,d,g,p,m,R,l]);return W.createElement("div",{id:b?"".concat(b):void 0,className:Je("recharts-responsive-container",N),style:$p($p({},A),{},{width:l,height:d,minWidth:m,minHeight:p,maxHeight:g}),ref:C},H)}),uy=function(t){return null};uy.displayName="Cell";function zf(e){"@babel/helpers - typeof";return zf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zf(e)}function T4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function V_(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Nl.isSsr)return{width:0,height:0};var r=mre(n),a=JSON.stringify({text:t,copyStyle:r});if(Nc.widthCache[a])return Nc.widthCache[a];try{var s=document.getElementById(k4);s||(s=document.createElement("span"),s.setAttribute("id",k4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var l=V_(V_({},hre),r);Object.assign(s.style,l),s.textContent="".concat(t);var u=s.getBoundingClientRect(),d={width:u.width,height:u.height};return Nc.widthCache[a]=d,++Nc.cacheCount>fre&&(Nc.cacheCount=0,Nc.widthCache={}),d}catch{return{width:0,height:0}}},pre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function qf(e){"@babel/helpers - typeof";return qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qf(e)}function zv(e,t){return xre(e)||yre(e,t)||gre(e,t)||vre()}function vre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function gre(e,t){if(e){if(typeof e=="string")return M4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return M4(e,t)}}function M4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Pre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function L4(e,t){return Ire(e)||$re(e,t)||Dre(e,t)||Rre()}function Rre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dre(e,t){if(e){if(typeof e=="string")return B4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return B4(e,t)}}function B4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function(L,D){var U=D.word,K=D.width,J=L[L.length-1];if(J&&(a==null||s||J.width+K+rD.width?L:D})};if(!m)return x;for(var w="…",b=function(G){var L=p.slice(0,G),D=Wz({breakAll:f,style:d,children:L+w}).wordsWithComputedWidth,U=g(D),K=U.length>l||j(U).width>Number(a);return[K,U]},N=0,E=p.length-1,O=0,A;N<=E&&O<=p.length-1;){var C=Math.floor((N+E)/2),k=C-1,T=b(k),M=L4(T,2),R=M[0],B=M[1],$=b(C),H=L4($,1),V=H[0];if(!R&&!V&&(N=C+1),R&&V&&(E=C-1),!R&&V){A=B;break}O++}return A||x},z4=function(t){var n=Qe(t)?[]:t.toString().split(Hz);return[{words:n}]},Bre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,s=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Nl.isSsr){var d,f,m=Wz({breakAll:l,children:a,style:s});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return z4(a);return Lre({breakAll:l,children:a,maxLines:u,style:s},d,f,n,r)}return z4(a)},q4="#808080",ml=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,w=j===void 0?"end":j,b=t.fill,N=b===void 0?q4:b,E=I4(t,kre),O=y.useMemo(function(){return Bre({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),A=E.dx,C=E.dy,k=E.angle,T=E.className,M=E.breakAll,R=I4(E,Mre);if(!Ln(r)||!Ln(s))return null;var B=r+(Ce(A)?A:0),$=s+(Ce(C)?C:0),H;switch(w){case"start":H=nS("calc(".concat(f,")"));break;case"middle":H=nS("calc(".concat((O.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:H=nS("calc(".concat(O.length-1," * -").concat(u,")"));break}var V=[];if(p){var q=O[0].width,G=E.width;V.push("scale(".concat((Ce(G)?G/q:1)/q,")"))}return k&&V.push("rotate(".concat(k,", ").concat(B,", ").concat($,")")),V.length&&(R.transform=V.join(" ")),W.createElement("text",G_({},qe(R,!0),{x:B,y:$,className:Je("recharts-text",T),textAnchor:x,fill:N.includes("url")?q4:N}),O.map(function(L,D){var U=L.words.join(M?"":" ");return W.createElement("tspan",{x:B,dy:D===0?H:u,key:"".concat(U,"-").concat(D)},U)}))};function Qs(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function zre(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function bO(e){let t,n,r;e.length!==2?(t=Qs,n=(u,d)=>Qs(e(u),d),r=(u,d)=>e(u)-d):(t=e===Qs||e===zre?e:qre,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:s}}function qre(){return 0}function Vz(e){return e===null?NaN:+e}function*Fre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Ure=bO(Qs),zh=Ure.right;bO(Vz).center;class F4 extends Map{constructor(t,n=Vre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(U4(this,t))}has(t){return super.has(U4(this,t))}set(t,n){return super.set(Hre(this,t),n)}delete(t){return super.delete(Wre(this,t))}}function U4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Hre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Wre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Vre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Gre(e=Qs){if(e===Qs)return Gz;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function Gz(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Yre=Math.sqrt(50),Kre=Math.sqrt(10),Xre=Math.sqrt(2);function qv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),l=s>=Yre?10:s>=Kre?5:s>=Xre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=s-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function W4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function Yz(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?Gz:Gre(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));Yz(e,t,x,j,a)}const s=e[t];let l=n,u=r;for(nf(e,n,t),a(e[r],s)>0&&nf(e,n,r);l0;)--u}a(e[n],s)===0?nf(e,n,u):(++u,nf(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function nf(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Zre(e,t,n){if(e=Float64Array.from(Fre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return W4(e);if(t>=1)return H4(e);var r,a=(r-1)*t,s=Math.floor(a),l=H4(Yz(e,s).subarray(0,s+1)),u=W4(e.subarray(s+1));return l+(u-l)*(a-s)}}function Qre(e,t,n=Vz){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,s=Math.floor(a),l=+n(e[s],s,e),u=+n(e[s+1],s+1,e);return l+(u-l)*(a-s)}}function Jre(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Lp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Lp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=tae.exec(e))?new Rr(t[1],t[2],t[3],1):(t=nae.exec(e))?new Rr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=rae.exec(e))?Lp(t[1],t[2],t[3],t[4]):(t=aae.exec(e))?Lp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=iae.exec(e))?Q4(t[1],t[2]/100,t[3]/100,1):(t=sae.exec(e))?Q4(t[1],t[2]/100,t[3]/100,t[4]):V4.hasOwnProperty(e)?K4(V4[e]):e==="transparent"?new Rr(NaN,NaN,NaN,0):null}function K4(e){return new Rr(e>>16&255,e>>8&255,e&255,1)}function Lp(e,t,n,r){return r<=0&&(e=t=n=NaN),new Rr(e,t,n,r)}function cae(e){return e instanceof qh||(e=Wf(e)),e?(e=e.rgb(),new Rr(e.r,e.g,e.b,e.opacity)):new Rr}function Q_(e,t,n,r){return arguments.length===1?cae(e):new Rr(e,t,n,r??1)}function Rr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}jO(Rr,Q_,Xz(qh,{brighter(e){return e=e==null?Fv:Math.pow(Fv,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Uf:Math.pow(Uf,e),new Rr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Rr(il(this.r),il(this.g),il(this.b),Uv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:X4,formatHex:X4,formatHex8:uae,formatRgb:Z4,toString:Z4}));function X4(){return`#${Xo(this.r)}${Xo(this.g)}${Xo(this.b)}`}function uae(){return`#${Xo(this.r)}${Xo(this.g)}${Xo(this.b)}${Xo((isNaN(this.opacity)?1:this.opacity)*255)}`}function Z4(){const e=Uv(this.opacity);return`${e===1?"rgb(":"rgba("}${il(this.r)}, ${il(this.g)}, ${il(this.b)}${e===1?")":`, ${e})`}`}function Uv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function il(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Xo(e){return e=il(e),(e<16?"0":"")+e.toString(16)}function Q4(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new qa(e,t,n,r)}function Zz(e){if(e instanceof qa)return new qa(e.h,e.s,e.l,e.opacity);if(e instanceof qh||(e=Wf(e)),!e)return new qa;if(e instanceof qa)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,u=s-a,d=(s+a)/2;return u?(t===s?l=(n-r)/u+(n0&&d<1?0:l,new qa(l,u,d,e.opacity)}function dae(e,t,n,r){return arguments.length===1?Zz(e):new qa(e,t,n,r??1)}function qa(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}jO(qa,dae,Xz(qh,{brighter(e){return e=e==null?Fv:Math.pow(Fv,e),new qa(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Uf:Math.pow(Uf,e),new qa(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new Rr(rS(e>=240?e-240:e+120,a,r),rS(e,a,r),rS(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new qa(J4(this.h),Bp(this.s),Bp(this.l),Uv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Uv(this.opacity);return`${e===1?"hsl(":"hsla("}${J4(this.h)}, ${Bp(this.s)*100}%, ${Bp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function J4(e){return e=(e||0)%360,e<0?e+360:e}function Bp(e){return Math.max(0,Math.min(1,e||0))}function rS(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const SO=e=>()=>e;function fae(e,t){return function(n){return e+n*t}}function hae(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function mae(e){return(e=+e)==1?Qz:function(t,n){return n-t?hae(t,n,e):SO(isNaN(t)?n:t)}}function Qz(e,t){var n=t-e;return n?fae(e,n):SO(isNaN(e)?t:e)}const e3=(function e(t){var n=mae(t);function r(a,s){var l=n((a=Q_(a)).r,(s=Q_(s)).r),u=n(a.g,s.g),d=n(a.b,s.b),f=Qz(a.opacity,s.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function pae(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(s){for(a=0;an&&(s=t.slice(n,s),u[l]?u[l]+=s:u[++l]=s),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:Hv(r,a)})),n=aS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Cae(e,t,n){var r=e[0],a=e[1],s=t[0],l=t[1];return a2?Oae:Cae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?s:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),Hv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,Wv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=_O,m()},p.clamp=function(g){return arguments.length?(l=g?!0:_r,m()):l!==_r},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(s=g,p):s},function(g,x){return r=g,a=x,m()}}function NO(){return dy()(_r,_r)}function Eae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Vv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function fu(e){return e=Vv(Math.abs(e)),e?e[1]:NaN}function Aae(e,t){return function(n,r){for(var a=n.length,s=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),s.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return s.reverse().join(t)}}function Tae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var kae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Vf(e){if(!(t=kae.exec(e)))throw new Error("invalid format: "+e);var t;return new CO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Vf.prototype=CO.prototype;function CO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}CO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Mae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var Jz;function Pae(e,t){var n=Vv(e,t);if(!n)return e+"";var r=n[0],a=n[1],s=a-(Jz=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Vv(e,Math.max(0,t+s-1))[0]}function n3(e,t){var n=Vv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const r3={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Eae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>n3(e*100,t),r:n3,s:Pae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function a3(e){return e}var i3=Array.prototype.map,s3=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Rae(e){var t=e.grouping===void 0||e.thousands===void 0?a3:Aae(i3.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?a3:Tae(i3.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=Vf(p);var g=p.fill,x=p.align,j=p.sign,w=p.symbol,b=p.zero,N=p.width,E=p.comma,O=p.precision,A=p.trim,C=p.type;C==="n"?(E=!0,C="g"):r3[C]||(O===void 0&&(O=12),A=!0,C="g"),(b||g==="0"&&x==="=")&&(b=!0,g="0",x="=");var k=w==="$"?n:w==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=w==="$"?r:/[%p]/.test(C)?l:"",M=r3[C],R=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function B($){var H=k,V=T,q,G,L;if(C==="c")V=M($)+V,$="";else{$=+$;var D=$<0||1/$<0;if($=isNaN($)?d:M(Math.abs($),O),A&&($=Mae($)),D&&+$==0&&j!=="+"&&(D=!1),H=(D?j==="("?j:u:j==="-"||j==="("?"":j)+H,V=(C==="s"?s3[8+Jz/3]:"")+V+(D&&j==="("?")":""),R){for(q=-1,G=$.length;++qL||L>57){V=(L===46?a+$.slice(q+1):$.slice(q))+V,$=$.slice(0,q);break}}}E&&!b&&($=t($,1/0));var U=H.length+$.length+V.length,K=U>1)+H+$+V+K.slice(U);break;default:$=K+H+$+V;break}return s($)}return B.toString=function(){return p+""},B}function m(p,g){var x=f((p=Vf(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(fu(g)/3)))*3,w=Math.pow(10,-j),b=s3[8+j/3];return function(N){return x(w*N)+b}}return{format:f,formatPrefix:m}}var zp,OO,e6;Dae({thousands:",",grouping:[3],currency:["$",""]});function Dae(e){return zp=Rae(e),OO=zp.format,e6=zp.formatPrefix,zp}function $ae(e){return Math.max(0,-fu(Math.abs(e)))}function Iae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(fu(t)/3)))*3-fu(Math.abs(e)))}function Lae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,fu(t)-fu(e))+1}function t6(e,t,n,r){var a=X_(e,t,n),s;switch(r=Vf(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(s=Iae(a,l))&&(r.precision=s),e6(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Lae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=$ae(a))&&(r.precision=s-(r.type==="%")*2);break}}return OO(r)}function co(e){var t=e.domain;return e.ticks=function(n){var r=t();return Y_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return t6(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,s=r.length-1,l=r[a],u=r[s],d,f,m=10;for(u0;){if(f=K_(l,u,n),f===d)return r[a]=l,r[s]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function Gv(){var e=NO();return e.copy=function(){return Fh(e,Gv())},ka.apply(e,arguments),co(e)}function n6(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Wv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return n6(e).unknown(t)},e=arguments.length?Array.from(e,Wv):[0,1],co(n)}function r6(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],s=e[r],l;return sMath.pow(e,t)}function Uae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function c3(e){return(t,n)=>-e(-t,n)}function EO(e){const t=e(o3,l3),n=t.domain;let r=10,a,s;function l(){return a=Uae(r),s=Fae(r),n()[0]<0?(a=c3(a),s=c3(s),e(Bae,zae)):e(o3,l3),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(w)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(w=g>0?j/s(-g):j*s(g),!(wm)break;N.push(w)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=Vf(d)).precision==null&&(d.trim=!0),d=OO(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/s(Math.round(a(m)));return p*rn(r6(n(),{floor:u=>s(Math.floor(a(u))),ceil:u=>s(Math.ceil(a(u)))})),t}function a6(){const e=EO(dy()).domain([1,10]);return e.copy=()=>Fh(e,a6()).base(e.base()),ka.apply(e,arguments),e}function u3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function d3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function AO(e){var t=1,n=e(u3(t),d3(t));return n.constant=function(r){return arguments.length?e(u3(t=+r),d3(t)):t},co(n)}function i6(){var e=AO(dy());return e.copy=function(){return Fh(e,i6()).constant(e.constant())},ka.apply(e,arguments)}function f3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Hae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Wae(e){return e<0?-e*e:e*e}function TO(e){var t=e(_r,_r),n=1;function r(){return n===1?e(_r,_r):n===.5?e(Hae,Wae):e(f3(n),f3(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},co(t)}function kO(){var e=TO(dy());return e.copy=function(){return Fh(e,kO()).exponent(e.exponent())},ka.apply(e,arguments),e}function Vae(){return kO.apply(null,arguments).exponent(.5)}function h3(e){return Math.sign(e)*e*e}function Gae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function s6(){var e=NO(),t=[0,1],n=!1,r;function a(s){var l=Gae(e(s));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(s){return e.invert(h3(s))},a.domain=function(s){return arguments.length?(e.domain(s),a):e.domain()},a.range=function(s){return arguments.length?(e.range((t=Array.from(s,Wv)).map(h3)),a):t.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(e.clamp(s),a):e.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return s6(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},ka.apply(a,arguments),co(a)}function o6(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(s=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return l6().domain([e,t]).range(a).unknown(s)},ka.apply(co(l),arguments)}function c6(){var e=[.5],t=[0,1],n,r=1;function a(s){return s!=null&&s<=s?t[zh(e,s,0,r)]:n}return a.domain=function(s){return arguments.length?(e=Array.from(s),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(s){return arguments.length?(t=Array.from(s),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(s){var l=t.indexOf(s);return[e[l-1],e[l]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return c6().domain(e).range(t).unknown(n)},ka.apply(a,arguments)}const iS=new Date,sS=new Date;function zn(e,t,n,r){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const l=a(s),u=a.ceil(s);return s-l(t(s=new Date(+s),l==null?1:Math.floor(l)),s),a.range=(s,l,u)=>{const d=[];if(s=a.ceil(s),u=u==null?1:Math.floor(u),!(s0))return d;let f;do d.push(f=new Date(+s)),t(s,u),e(s);while(fzn(l=>{if(l>=l)for(;e(l),!s(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!s(l););else for(;--u>=0;)for(;t(l,1),!s(l););}),n&&(a.count=(s,l)=>(iS.setTime(+s),sS.setTime(+l),e(iS),e(sS),Math.floor(n(iS,sS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?l=>r(l)%s===0:l=>a.count(0,l)%s===0):a)),a}const Yv=zn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Yv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?zn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Yv);Yv.range;const Xi=1e3,Ca=Xi*60,Zi=Ca*60,ss=Zi*24,MO=ss*7,m3=ss*30,oS=ss*365,Zo=zn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Xi)},(e,t)=>(t-e)/Xi,e=>e.getUTCSeconds());Zo.range;const PO=zn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xi)},(e,t)=>{e.setTime(+e+t*Ca)},(e,t)=>(t-e)/Ca,e=>e.getMinutes());PO.range;const RO=zn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ca)},(e,t)=>(t-e)/Ca,e=>e.getUTCMinutes());RO.range;const DO=zn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Xi-e.getMinutes()*Ca)},(e,t)=>{e.setTime(+e+t*Zi)},(e,t)=>(t-e)/Zi,e=>e.getHours());DO.range;const $O=zn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Zi)},(e,t)=>(t-e)/Zi,e=>e.getUTCHours());$O.range;const Uh=zn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ca)/ss,e=>e.getDate()-1);Uh.range;const fy=zn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ss,e=>e.getUTCDate()-1);fy.range;const u6=zn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ss,e=>Math.floor(e/ss));u6.range;function Cl(e){return zn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Ca)/MO)}const hy=Cl(0),Kv=Cl(1),Yae=Cl(2),Kae=Cl(3),hu=Cl(4),Xae=Cl(5),Zae=Cl(6);hy.range;Kv.range;Yae.range;Kae.range;hu.range;Xae.range;Zae.range;function Ol(e){return zn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/MO)}const my=Ol(0),Xv=Ol(1),Qae=Ol(2),Jae=Ol(3),mu=Ol(4),eie=Ol(5),tie=Ol(6);my.range;Xv.range;Qae.range;Jae.range;mu.range;eie.range;tie.range;const IO=zn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());IO.range;const LO=zn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());LO.range;const os=zn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());os.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:zn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});os.range;const ls=zn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());ls.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:zn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});ls.range;function d6(e,t,n,r,a,s){const l=[[Zo,1,Xi],[Zo,5,5*Xi],[Zo,15,15*Xi],[Zo,30,30*Xi],[s,1,Ca],[s,5,5*Ca],[s,15,15*Ca],[s,30,30*Ca],[a,1,Zi],[a,3,3*Zi],[a,6,6*Zi],[a,12,12*Zi],[r,1,ss],[r,2,2*ss],[n,1,MO],[t,1,m3],[t,3,3*m3],[e,1,oS]];function u(f,m,p){const g=mb).right(l,g);if(x===l.length)return e.every(X_(f/oS,m/oS,p));if(x===0)return Yv.every(Math.max(X_(f,m,p),1));const[j,w]=l[g/l[x-1][2]53)return null;"w"in fe||(fe.w=1),"Z"in fe?(Oe=cS(rf(fe.y,0,1)),We=Oe.getUTCDay(),Oe=We>4||We===0?Xv.ceil(Oe):Xv(Oe),Oe=fy.offset(Oe,(fe.V-1)*7),fe.y=Oe.getUTCFullYear(),fe.m=Oe.getUTCMonth(),fe.d=Oe.getUTCDate()+(fe.w+6)%7):(Oe=lS(rf(fe.y,0,1)),We=Oe.getDay(),Oe=We>4||We===0?Kv.ceil(Oe):Kv(Oe),Oe=Uh.offset(Oe,(fe.V-1)*7),fe.y=Oe.getFullYear(),fe.m=Oe.getMonth(),fe.d=Oe.getDate()+(fe.w+6)%7)}else("W"in fe||"U"in fe)&&("w"in fe||(fe.w="u"in fe?fe.u%7:"W"in fe?1:0),We="Z"in fe?cS(rf(fe.y,0,1)).getUTCDay():lS(rf(fe.y,0,1)).getDay(),fe.m=0,fe.d="W"in fe?(fe.w+6)%7+fe.W*7-(We+5)%7:fe.w+fe.U*7-(We+6)%7);return"Z"in fe?(fe.H+=fe.Z/100|0,fe.M+=fe.Z%100,cS(fe)):lS(fe)}}function M(re,we,je,fe){for(var Le=0,Oe=we.length,We=je.length,be,Ae;Le=We)return-1;if(be=we.charCodeAt(Le++),be===37){if(be=we.charAt(Le++),Ae=C[be in p3?we.charAt(Le++):be],!Ae||(fe=Ae(re,je,fe))<0)return-1}else if(be!=je.charCodeAt(fe++))return-1}return fe}function R(re,we,je){var fe=f.exec(we.slice(je));return fe?(re.p=m.get(fe[0].toLowerCase()),je+fe[0].length):-1}function B(re,we,je){var fe=x.exec(we.slice(je));return fe?(re.w=j.get(fe[0].toLowerCase()),je+fe[0].length):-1}function $(re,we,je){var fe=p.exec(we.slice(je));return fe?(re.w=g.get(fe[0].toLowerCase()),je+fe[0].length):-1}function H(re,we,je){var fe=N.exec(we.slice(je));return fe?(re.m=E.get(fe[0].toLowerCase()),je+fe[0].length):-1}function V(re,we,je){var fe=w.exec(we.slice(je));return fe?(re.m=b.get(fe[0].toLowerCase()),je+fe[0].length):-1}function q(re,we,je){return M(re,t,we,je)}function G(re,we,je){return M(re,n,we,je)}function L(re,we,je){return M(re,r,we,je)}function D(re){return l[re.getDay()]}function U(re){return s[re.getDay()]}function K(re){return d[re.getMonth()]}function J(re){return u[re.getMonth()]}function I(re){return a[+(re.getHours()>=12)]}function z(re){return 1+~~(re.getMonth()/3)}function Y(re){return l[re.getUTCDay()]}function te(re){return s[re.getUTCDay()]}function ae(re){return d[re.getUTCMonth()]}function ge(re){return u[re.getUTCMonth()]}function ee(re){return a[+(re.getUTCHours()>=12)]}function Se(re){return 1+~~(re.getUTCMonth()/3)}return{format:function(re){var we=k(re+="",O);return we.toString=function(){return re},we},parse:function(re){var we=T(re+="",!1);return we.toString=function(){return re},we},utcFormat:function(re){var we=k(re+="",A);return we.toString=function(){return re},we},utcParse:function(re){var we=T(re+="",!0);return we.toString=function(){return re},we}}}var p3={"-":"",_:" ",0:"0"},Qn=/^\s*\d+/,oie=/^%/,lie=/[\\^$*+?|[\]().{}]/g;function bt(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",s=a.length;return r+(s[t.toLowerCase(),n]))}function uie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function die(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function fie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function hie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function mie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function v3(e,t,n){var r=Qn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function g3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function pie(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function vie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function gie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function y3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function yie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function x3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function xie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function bie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function wie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function jie(e,t,n){var r=Qn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Sie(e,t,n){var r=oie.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function _ie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Nie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function b3(e,t){return bt(e.getDate(),t,2)}function Cie(e,t){return bt(e.getHours(),t,2)}function Oie(e,t){return bt(e.getHours()%12||12,t,2)}function Eie(e,t){return bt(1+Uh.count(os(e),e),t,3)}function f6(e,t){return bt(e.getMilliseconds(),t,3)}function Aie(e,t){return f6(e,t)+"000"}function Tie(e,t){return bt(e.getMonth()+1,t,2)}function kie(e,t){return bt(e.getMinutes(),t,2)}function Mie(e,t){return bt(e.getSeconds(),t,2)}function Pie(e){var t=e.getDay();return t===0?7:t}function Rie(e,t){return bt(hy.count(os(e)-1,e),t,2)}function h6(e){var t=e.getDay();return t>=4||t===0?hu(e):hu.ceil(e)}function Die(e,t){return e=h6(e),bt(hu.count(os(e),e)+(os(e).getDay()===4),t,2)}function $ie(e){return e.getDay()}function Iie(e,t){return bt(Kv.count(os(e)-1,e),t,2)}function Lie(e,t){return bt(e.getFullYear()%100,t,2)}function Bie(e,t){return e=h6(e),bt(e.getFullYear()%100,t,2)}function zie(e,t){return bt(e.getFullYear()%1e4,t,4)}function qie(e,t){var n=e.getDay();return e=n>=4||n===0?hu(e):hu.ceil(e),bt(e.getFullYear()%1e4,t,4)}function Fie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+bt(t/60|0,"0",2)+bt(t%60,"0",2)}function w3(e,t){return bt(e.getUTCDate(),t,2)}function Uie(e,t){return bt(e.getUTCHours(),t,2)}function Hie(e,t){return bt(e.getUTCHours()%12||12,t,2)}function Wie(e,t){return bt(1+fy.count(ls(e),e),t,3)}function m6(e,t){return bt(e.getUTCMilliseconds(),t,3)}function Vie(e,t){return m6(e,t)+"000"}function Gie(e,t){return bt(e.getUTCMonth()+1,t,2)}function Yie(e,t){return bt(e.getUTCMinutes(),t,2)}function Kie(e,t){return bt(e.getUTCSeconds(),t,2)}function Xie(e){var t=e.getUTCDay();return t===0?7:t}function Zie(e,t){return bt(my.count(ls(e)-1,e),t,2)}function p6(e){var t=e.getUTCDay();return t>=4||t===0?mu(e):mu.ceil(e)}function Qie(e,t){return e=p6(e),bt(mu.count(ls(e),e)+(ls(e).getUTCDay()===4),t,2)}function Jie(e){return e.getUTCDay()}function ese(e,t){return bt(Xv.count(ls(e)-1,e),t,2)}function tse(e,t){return bt(e.getUTCFullYear()%100,t,2)}function nse(e,t){return e=p6(e),bt(e.getUTCFullYear()%100,t,2)}function rse(e,t){return bt(e.getUTCFullYear()%1e4,t,4)}function ase(e,t){var n=e.getUTCDay();return e=n>=4||n===0?mu(e):mu.ceil(e),bt(e.getUTCFullYear()%1e4,t,4)}function ise(){return"+0000"}function j3(){return"%"}function S3(e){return+e}function _3(e){return Math.floor(+e/1e3)}var Cc,v6,g6;sse({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function sse(e){return Cc=sie(e),v6=Cc.format,Cc.parse,g6=Cc.utcFormat,Cc.utcParse,Cc}function ose(e){return new Date(e)}function lse(e){return e instanceof Date?+e:+new Date(+e)}function BO(e,t,n,r,a,s,l,u,d,f){var m=NO(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),w=f("%I:%M"),b=f("%I %p"),N=f("%a %d"),E=f("%b %d"),O=f("%B"),A=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>Zre(e,s/r))},n.copy=function(){return w6(t).domain(e)},ms.apply(n,arguments)}function vy(){var e=0,t=.5,n=1,r=1,a,s,l,u,d,f=_r,m,p=!1,g;function x(w){return isNaN(w=+w)?g:(w=.5+((w=+m(w))-s)*(r*wn}return dS=e,dS}var fS,E3;function hse(){if(E3)return fS;E3=1;var e=gy(),t=N6(),n=Vu();function r(a){return a&&a.length?e(a,n,t):void 0}return fS=r,fS}var mse=hse();const yy=At(mse);var hS,A3;function C6(){if(A3)return hS;A3=1;function e(t,n){return te.e^s.s<0?1:-1;for(r=s.d.length,a=e.d.length,t=0,n=re.d[t]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};Te.decimalPlaces=Te.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*tn;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Te.dividedBy=Te.div=function(e){return rs(this,new this.constructor(e))};Te.dividedToIntegerBy=Te.idiv=function(e){var t=this,n=t.constructor;return Vt(rs(t,new n(e),0,1),n.precision)};Te.equals=Te.eq=function(e){return!this.cmp(e)};Te.exponent=function(){return Tn(this)};Te.greaterThan=Te.gt=function(e){return this.cmp(e)>0};Te.greaterThanOrEqualTo=Te.gte=function(e){return this.cmp(e)>=0};Te.isInteger=Te.isint=function(){return this.e>this.d.length-2};Te.isNegative=Te.isneg=function(){return this.s<0};Te.isPositive=Te.ispos=function(){return this.s>0};Te.isZero=function(){return this.s===0};Te.lessThan=Te.lt=function(e){return this.cmp(e)<0};Te.lessThanOrEqualTo=Te.lte=function(e){return this.cmp(e)<1};Te.logarithm=Te.log=function(e){var t,n=this,r=n.constructor,a=r.precision,s=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ra))throw Error(Aa+"NaN");if(n.s<1)throw Error(Aa+(n.s?"NaN":"-Infinity"));return n.eq(ra)?new r(0):(rn=!1,t=rs(Gf(n,s),Gf(e,s),s),rn=!0,Vt(t,a))};Te.minus=Te.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?T6(t,e):E6(t,(e.s=-e.s,e))};Te.modulo=Te.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(Aa+"NaN");return n.s?(rn=!1,t=rs(n,e,0,1).times(e),rn=!0,n.minus(t)):Vt(new r(n),a)};Te.naturalExponential=Te.exp=function(){return A6(this)};Te.naturalLogarithm=Te.ln=function(){return Gf(this)};Te.negated=Te.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Te.plus=Te.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?E6(t,e):T6(t,(e.s=-e.s,e))};Te.precision=Te.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(sl+e);if(t=Tn(a)+1,r=a.d.length-1,n=r*tn+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Te.squareRoot=Te.sqrt=function(){var e,t,n,r,a,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(Aa+"NaN")}for(e=Tn(u),rn=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=ui(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Ku((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(s=r,r=s.plus(rs(u,s,l+2)).times(.5),ui(s.d).slice(0,l)===(t=ui(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Vt(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!="9999")break;l+=4}return rn=!0,Vt(r,n)};Te.times=Te.mul=function(e){var t,n,r,a,s,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=s[a]+x[r]*g[a-r-1]+t,s[a--]=u%Hn|0,t=u/Hn|0;s[a]=(s[a]+t)%Hn|0}for(;!s[--l];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,rn?Vt(e,p.precision):e};Te.toDecimalPlaces=Te.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(xi(e,0,Yu),t===void 0?t=r.rounding:xi(t,0,8),Vt(n,e+Tn(n)+1,t))};Te.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=pl(r,!0):(xi(e,0,Yu),t===void 0?t=a.rounding:xi(t,0,8),r=Vt(new a(r),e+1,t),n=pl(r,!0,e+1)),n};Te.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?pl(a):(xi(e,0,Yu),t===void 0?t=s.rounding:xi(t,0,8),r=Vt(new s(a),e+Tn(a)+1,t),n=pl(r.abs(),!1,e+Tn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Te.toInteger=Te.toint=function(){var e=this,t=e.constructor;return Vt(new t(e),Tn(e)+1,t.rounding)};Te.toNumber=function(){return+this};Te.toPower=Te.pow=function(e){var t,n,r,a,s,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ra);if(u=new d(u),!u.s){if(e.s<1)throw Error(Aa+"Infinity");return u}if(u.eq(ra))return u;if(r=d.precision,e.eq(ra))return Vt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,l){if((n=m<0?-m:m)<=O6){for(a=new d(ra),t=Math.ceil(r/tn+4),rn=!1;n%2&&(a=a.times(u),D3(a.d,t)),n=Ku(n/2),n!==0;)u=u.times(u),D3(u.d,t);return rn=!0,e.s<0?new d(ra).div(a):Vt(a,r)}}else if(s<0)throw Error(Aa+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,rn=!1,a=e.times(Gf(u,r+f)),rn=!0,a=A6(a),a.s=s,a};Te.toPrecision=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?(n=Tn(a),r=pl(a,n<=s.toExpNeg||n>=s.toExpPos)):(xi(e,1,Yu),t===void 0?t=s.rounding:xi(t,0,8),a=Vt(new s(a),e,t),n=Tn(a),r=pl(a,e<=n||n<=s.toExpNeg,e)),r};Te.toSignificantDigits=Te.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(xi(e,1,Yu),t===void 0?t=r.rounding:xi(t,0,8)),Vt(new r(n),e,t)};Te.toString=Te.valueOf=Te.val=Te.toJSON=Te[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=Tn(e),n=e.constructor;return pl(e,t<=n.toExpNeg||t>=n.toExpPos)};function E6(e,t){var n,r,a,s,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),rn?Vt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),s=l-a,s){for(s<0?(r=d,s=-s,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/tn),u=l>u?l+1:u+1,s>u&&(s=u,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(u=d.length,s=f.length,u-s<0&&(s=u,r=f,f=d,d=r),n=0;s;)n=(d[--s]=d[s]+f[s]+n)/Hn|0,d[s]%=Hn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,rn?Vt(t,p):t}function xi(e,t,n){if(e!==~~e||en)throw Error(sl+e)}function ui(e){var t,n,r,a=e.length-1,s="",l=e[0];if(a>0){for(s+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,s){for(var l=0;s--;)r[s]-=l,l=r[s]1;)r.shift()}return function(r,a,s,l){var u,d,f,m,p,g,x,j,w,b,N,E,O,A,C,k,T,M,R=r.constructor,B=r.s==a.s?1:-1,$=r.d,H=a.d;if(!r.s)return new R(r);if(!a.s)throw Error(Aa+"Division by zero");for(d=r.e-a.e,T=H.length,C=$.length,x=new R(B),j=x.d=[],f=0;H[f]==($[f]||0);)++f;if(H[f]>($[f]||0)&&--d,s==null?E=s=R.precision:l?E=s+(Tn(r)-Tn(a))+1:E=s,E<0)return new R(0);if(E=E/tn+2|0,f=0,T==1)for(m=0,H=H[0],E++;(f1&&(H=e(H,m),$=e($,m),T=H.length,C=$.length),A=T,w=$.slice(0,T),b=w.length;b=Hn/2&&++k;do m=0,u=t(H,w,T,b),u<0?(N=w[0],T!=b&&(N=N*Hn+(w[1]||0)),m=N/k|0,m>1?(m>=Hn&&(m=Hn-1),p=e(H,m),g=p.length,b=w.length,u=t(p,w,g,b),u==1&&(m--,n(p,T16)throw Error(FO+Tn(e));if(!e.s)return new m(ra);for(rn=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Wo(2,f))/Math.LN10*2+5|0,u+=r,n=a=s=new m(ra),m.precision=u;;){if(a=Vt(a.times(e),u),n=n.times(++d),l=s.plus(rs(a,n,u)),ui(l.d).slice(0,u)===ui(s.d).slice(0,u)){for(;f--;)s=Vt(s.times(s),u);return m.precision=p,t==null?(rn=!0,Vt(s,p)):s}s=l}}function Tn(e){for(var t=e.e*tn,n=e.d[0];n>=10;n/=10)t++;return t}function yS(e,t,n){if(t>e.LN10.sd())throw rn=!0,n&&(e.precision=n),Error(Aa+"LN10 precision limit exceeded");return Vt(new e(e.LN10),t)}function Hs(e){for(var t="";e--;)t+="0";return t}function Gf(e,t){var n,r,a,s,l,u,d,f,m,p=1,g=10,x=e,j=x.d,w=x.constructor,b=w.precision;if(x.s<1)throw Error(Aa+(x.s?"NaN":"-Infinity"));if(x.eq(ra))return new w(0);if(t==null?(rn=!1,f=b):f=t,x.eq(10))return t==null&&(rn=!0),yS(w,f);if(f+=g,w.precision=f,n=ui(j),r=n.charAt(0),s=Tn(x),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=ui(x.d),r=n.charAt(0),p++;s=Tn(x),r>1?(x=new w("0."+n),s++):x=new w(r+"."+n.slice(1))}else return d=yS(w,f+2,b).times(s+""),x=Gf(new w(r+"."+n.slice(1)),f-g).plus(d),w.precision=b,t==null?(rn=!0,Vt(x,b)):x;for(u=l=x=rs(x.minus(ra),x.plus(ra),f),m=Vt(x.times(x),f),a=3;;){if(l=Vt(l.times(m),f),d=u.plus(rs(l,new w(a),f)),ui(d.d).slice(0,f)===ui(u.d).slice(0,f))return u=u.times(2),s!==0&&(u=u.plus(yS(w,f+2,b).times(s+""))),u=rs(u,new w(p),f),w.precision=b,t==null?(rn=!0,Vt(u,b)):u;u=d,a+=2}}function R3(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Ku(n/tn),e.d=[],r=(n+1)%tn,n<0&&(r+=tn),rZv||e.e<-Zv))throw Error(FO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Vt(e,t,n){var r,a,s,l,u,d,f,m,p=e.d;for(l=1,s=p[0];s>=10;s/=10)l++;if(r=t-l,r<0)r+=tn,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/tn),s=p.length,m>=s)return e;for(f=s=p[m],l=1;s>=10;s/=10)l++;r%=tn,a=r-tn+l}if(n!==void 0&&(s=Wo(10,l-a-1),u=f/s%10|0,d=t<0||p[m+1]!==void 0||f%s,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Wo(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(s=Tn(e),p.length=1,t=t-s-1,p[0]=Wo(10,(tn-t%tn)%tn),e.e=Ku(-t/tn)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,s=1,m--):(p.length=m+1,s=Wo(10,tn-r),p[m]=a>0?(f/Wo(10,l-a)%Wo(10,a)|0)*s:0),d)for(;;)if(m==0){(p[0]+=s)==Hn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=Hn)break;p[m--]=0,s=1}for(r=p.length;p[--r]===0;)p.pop();if(rn&&(e.e>Zv||e.e<-Zv))throw Error(FO+Tn(e));return e}function T6(e,t){var n,r,a,s,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),rn?Vt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/tn),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?s=s.charAt(0)+"."+s.slice(1)+Hs(r):l>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+Hs(-a-1)+s,n&&(r=n-l)>0&&(s+=Hs(r))):a>=l?(s+=Hs(a+1-l),n&&(r=n-a-1)>0&&(s=s+"."+Hs(r))):((r=a+1)0&&(a+1===l&&(s+="."),s+=Hs(r))),e.s<0?"-"+s:s}function D3(e,t){if(e.length>t)return e.length=t,!0}function k6(e){var t,n,r;function a(s){var l=this;if(!(l instanceof a))return new a(s);if(l.constructor=a,s instanceof a){l.s=s.s,l.e=s.e,l.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(sl+s);if(s>0)l.s=1;else if(s<0)s=-s,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(s===~~s&&s<1e7){l.e=0,l.d=[s];return}return R3(l,s.toString())}else if(typeof s!="string")throw Error(sl+s);if(s.charCodeAt(0)===45?(s=s.slice(1),l.s=-1):l.s=1,_se.test(s))R3(l,s);else throw Error(sl+s)}if(a.prototype=Te,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=k6,a.config=a.set=Nse,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(sl+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(sl+n+": "+r);return this}var UO=k6(Sse);ra=new UO(1);const qt=UO;function Cse(e){return Tse(e)||Ase(e)||Ese(e)||Ose()}function Ose(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ese(e,t){if(e){if(typeof e=="string")return tN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tN(e,t)}}function Ase(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Tse(e){if(Array.isArray(e))return tN(e)}function tN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,$3(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,s=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw s}}return n}}function Wse(e){if(Array.isArray(e))return e}function $6(e){var t=Yf(e,2),n=t[0],r=t[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function I6(e,t,n){if(e.lte(0))return new qt(0);var r=wy.getDigitCount(e.toNumber()),a=new qt(10).pow(r),s=e.div(a),l=r!==1?.05:.1,u=new qt(Math.ceil(s.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new qt(Math.ceil(d))}function Vse(e,t,n){var r=1,a=new qt(e);if(!a.isint()&&n){var s=Math.abs(e);s<1?(r=new qt(10).pow(wy.getDigitCount(e)-1),a=new qt(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new qt(Math.floor(e)))}else e===0?a=new qt(Math.floor((t-1)/2)):n||(a=new qt(Math.floor(e)));var l=Math.floor((t-1)/2),u=Rse(Pse(function(d){return a.add(new qt(d-l).mul(r)).toNumber()}),nN);return u(0,t)}function L6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new qt(0),tickMin:new qt(0),tickMax:new qt(0)};var s=I6(new qt(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new qt(0):(l=new qt(e).add(t).div(2),l=l.sub(new qt(l).mod(s)));var u=Math.ceil(l.sub(e).div(s).toNumber()),d=Math.ceil(new qt(t).sub(l).div(s).toNumber()),f=u+d+1;return f>n?L6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:s,tickMin:l.sub(new qt(u).mul(s)),tickMax:l.add(new qt(d).mul(s))})}function Gse(e){var t=Yf(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=$6([n,r]),d=Yf(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(aN(nN(0,a-1).map(function(){return 1/0}))):[].concat(aN(nN(0,a-1).map(function(){return-1/0})),[m]);return n>r?rN(p):p}if(f===m)return Vse(f,a,s);var g=L6(f,m,l,s),x=g.step,j=g.tickMin,w=g.tickMax,b=wy.rangeStep(j,w.add(new qt(.1).mul(x)),x);return n>r?rN(b):b}function Yse(e,t){var n=Yf(e,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=$6([r,a]),u=Yf(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=I6(new qt(f).sub(d).div(m-1),s,0),g=[].concat(aN(wy.rangeStep(new qt(d),new qt(f).sub(new qt(.99).mul(p)),p)),[f]);return r>a?rN(g):g}var Kse=R6(Gse),Xse=R6(Yse),Zse=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function pu(e){"@babel/helpers - typeof";return pu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pu(e)}function Qv(){return Qv=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function aoe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ioe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function soe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var d=s.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(jr(p-m)!==jr(g-p)){var j=[];if(jr(g-p)===jr(d[1]-d[0])){x=g;var w=p+d[1]-d[0];j[0]=Math.min(w,(w+m)/2),j[1]=Math.max(w,(w+m)/2)}else{x=m;var b=g+d[1]-d[0];j[0]=Math.min(p,(b+p)/2),j[1]=Math.max(p,(b+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var E=Math.min(m,g),O=Math.max(m,g);if(t>(E+p)/2&&t<=(O+p)/2){l=a[f].index;break}}}else for(var A=0;A0&&A(r[A].coordinate+r[A-1].coordinate)/2&&t<=(r[A].coordinate+r[A+1].coordinate)/2||A===u-1&&t>(r[A].coordinate+r[A-1].coordinate)/2){l=r[A].index;break}return l},HO=function(t){var n,r=t,a=r.type.displayName,s=(n=t.type)!==null&&n!==void 0&&n.defaultProps?xn(xn({},t.type.defaultProps),t.props):t.props,l=s.stroke,u=s.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},Soe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var l={},u=Object.keys(s),d=0,f=u.length;d=0});if(N&&N.length){var E=N[0].type.defaultProps,O=E!==void 0?xn(xn({},E),N[0].props):N[0].props,A=O.barSize,C=O[b];l[C]||(l[C]=[]);var k=Qe(A)?n:A;l[C].push({item:N[0],stackList:N.slice(1),barSize:Qe(k)?void 0:Sr(k,r,0)})}}return l},_oe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,s=t.sizeList,l=s===void 0?[]:s,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=Sr(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(A,C){return A+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var w=(a-j)/2>>0,b={offset:w-f,size:0};m=l.reduce(function(A,C){var k={item:C.item,position:{offset:b.offset+b.size+f,size:g?x:C.barSize}},T=[].concat(B3(A),[k]);return b=T[T.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:b})}),T},p)}else{var N=Sr(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var E=(a-2*N-(d-1)*f)/d;E>1&&(E>>=0);var O=u===+u?Math.min(E,u):E;m=l.reduce(function(A,C,k){var T=[].concat(B3(A),[{item:C.item,position:{offset:N+(E+f)*k+(E-O)/2,size:O}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:T[T.length-1].position})}),T},p)}return m},Noe=function(t,n,r,a){var s=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=F6({children:s,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,w=f.layout;if((w==="vertical"||w==="horizontal"&&j==="middle")&&x!=="center"&&Ce(t[x]))return xn(xn({},t),{},Yc({},x,t[x]+(p||0)));if((w==="horizontal"||w==="vertical"&&x==="center")&&j!=="middle"&&Ce(t[j]))return xn(xn({},t),{},Yc({},j,t[j]+(g||0)))}return t},Coe=function(t,n,r){return Qe(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},U6=function(t,n,r,a,s){var l=n.props.children,u=ia(l,Wh).filter(function(f){return Coe(a,s,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=In(m,r);if(Qe(p))return f;var g=Array.isArray(p)?[xy(p),yy(p)]:[p,p],x=d.reduce(function(j,w){var b=In(m,w,0),N=g[0]-Math.abs(Array.isArray(b)?b[0]:b),E=g[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(N,j[0]),Math.max(E,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},Ooe=function(t,n,r,a,s){var l=n.map(function(u){return U6(t,u,r,s,a)}).filter(function(u){return!Qe(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},H6=function(t,n,r,a,s){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&U6(t,d,f,a)||Of(t,f,r,s)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?jr(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=s?s.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!Lh(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:s?s[p]:p,index:g,offset:f}})},xS=new WeakMap,qp=function(t,n){if(typeof n!="function")return t;xS.has(t)||xS.set(t,new WeakMap);var r=xS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},G6=function(t,n,r){var a=t.scale,s=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:Ff(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:Gv(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Cf(),realScaleType:"point"}:s==="category"?{scale:Ff(),realScaleType:"band"}:{scale:Gv(),realScaleType:"linear"};if(fl(a)){var d="scale".concat(ry(a));return{scale:(N3[d]||Cf)(),realScaleType:N3[d]?d:"point"}}return Ke(a)?{scale:a}:{scale:Cf(),realScaleType:"point"}},q3=1e-4,Y6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),s=Math.min(a[0],a[1])-q3,l=Math.max(a[0],a[1])+q3,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},Eoe=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(t[u][r][0]=s,t[u][r][1]=s+d,s=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},koe=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},Moe={sign:Toe,expand:xee,none:ou,silhouette:bee,wiggle:wee,positive:koe},Poe=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),s=Moe[r],l=yee().keys(a).value(function(u,d){return+In(u,d,0)}).order(I_).offset(s);return l(t)},Roe=function(t,n,r,a,s,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?xn(xn({},g.type.defaultProps),g.props):g.props,w=j.stackId,b=j.hide;if(b)return p;var N=j[r],E=p[N]||{hasStack:!1,stackGroups:{}};if(Ln(w)){var O=E.stackGroups[w]||{numericAxisId:r,cateAxisId:a,items:[]};O.items.push(g),E.hasStack=!0,E.stackGroups[w]=O}else E.stackGroups[Wu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return xn(xn({},p),{},Yc({},N,E))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(w,b){var N=x.stackGroups[b];return xn(xn({},w),{},Yc({},b,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:Poe(t,N.items,s)}))},j)}return xn(xn({},p),{},Yc({},g,x))},m)},K6=function(t,n){var r=n.realScaleType,a=n.type,s=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(s&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=Kse(f,s,u);return t.domain([xy(m),yy(m)]),{niceTicks:m}}if(s&&a==="number"){var p=t.domain(),g=Xse(p,s,u);return{niceTicks:g}}return null};function F3(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,s=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Qe(a[t.dataKey])){var u=Av(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var d=In(a,Qe(l)?t.dataKey:l);return Qe(d)?null:t.scale(d)}var U3=function(t){var n=t.axis,r=t.ticks,a=t.offset,s=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=In(l,n.dataKey,n.domain[u]);return Qe(d)?null:n.scale(d)-s/2+a},Doe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},$oe=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?xn(xn({},t.type.defaultProps),t.props):t.props,s=a.stackId;if(Ln(s)){var l=n[s];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},Ioe=function(t){return t.reduce(function(n,r){return[xy(r.concat([n[0]]).filter(Ce)),yy(r.concat([n[1]]).filter(Ce))]},[1/0,-1/0])},X6=function(t,n,r){return Object.keys(t).reduce(function(a,s){var l=t[s],u=l.stackedData,d=u.reduce(function(f,m){var p=Ioe(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},H3=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,W3=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,lN=function(t,n,r){if(Ke(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ce(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(H3.test(t[0])){var s=+H3.exec(t[0])[1];a[0]=n[0]-s}else Ke(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ce(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(W3.test(t[1])){var l=+W3.exec(t[1])[1];a[1]=n[1]+l}else Ke(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},eg=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var s=yO(n,function(p){return p.coordinate}),l=1/0,u=1,d=s.length;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},Voe=function(t,n,r,a,s){var l=t.width,u=t.height,d=t.startAngle,f=t.endAngle,m=Sr(t.cx,l,l/2),p=Sr(t.cy,u,u/2),g=J6(l,u,r),x=Sr(t.innerRadius,g,0),j=Sr(t.outerRadius,g,g*.8),w=Object.keys(n);return w.reduce(function(b,N){var E=n[N],O=E.domain,A=E.reversed,C;if(Qe(E.range))a==="angleAxis"?C=[d,f]:a==="radiusAxis"&&(C=[x,j]),A&&(C=[C[1],C[0]]);else{C=E.range;var k=C,T=zoe(k,2);d=T[0],f=T[1]}var M=G6(E,s),R=M.realScaleType,B=M.scale;B.domain(O).range(C),Y6(B);var $=K6(B,Yi(Yi({},E),{},{realScaleType:R})),H=Yi(Yi(Yi({},E),$),{},{range:C,radius:j,realScaleType:R,scale:B,cx:m,cy:p,innerRadius:x,outerRadius:j,startAngle:d,endAngle:f});return Yi(Yi({},b),{},Q6({},N,H))},{})},Goe=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return Math.sqrt(Math.pow(r-s,2)+Math.pow(a-l,2))},Yoe=function(t,n){var r=t.x,a=t.y,s=n.cx,l=n.cy,u=Goe({x:r,y:a},{x:s,y:l});if(u<=0)return{radius:u};var d=(r-s)/u,f=Math.acos(d);return a>l&&(f=2*Math.PI-f),{radius:u,angle:Woe(f),angleInRadian:f}},Koe=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),l=Math.min(a,s);return{startAngle:n-l*360,endAngle:r-l*360}},Xoe=function(t,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),l=Math.floor(a/360),u=Math.min(s,l);return t+u*360},K3=function(t,n){var r=t.x,a=t.y,s=Yoe({x:r,y:a},n),l=s.radius,u=s.angle,d=n.innerRadius,f=n.outerRadius;if(lf)return!1;if(l===0)return!0;var m=Koe(n),p=m.startAngle,g=m.endAngle,x=u,j;if(p<=g){for(;x>g;)x-=360;for(;x=p&&x<=g}else{for(;x>p;)x-=360;for(;x=g&&x<=p}return j?Yi(Yi({},n),{},{radius:l,angle:Xoe(x,n)}):null},eq=function(t){return!y.isValidElement(t)&&!Ke(t)&&typeof t!="boolean"?t.className:""};function Qf(e){"@babel/helpers - typeof";return Qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Qf(e)}var Zoe=["offset"];function Qoe(e){return nle(e)||tle(e)||ele(e)||Joe()}function Joe(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ele(e,t){if(e){if(typeof e=="string")return cN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return cN(e,t)}}function tle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function nle(e){if(Array.isArray(e))return cN(e)}function cN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function X3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $n(e){for(var t=1;t=0?1:-1,O,A;a==="insideStart"?(O=x+E*l,A=w):a==="insideEnd"?(O=j-E*l,A=!w):a==="end"&&(O=j+E*l,A=w),A=N<=0?A:!A;var C=Zt(f,m,b,O),k=Zt(f,m,b,O+(A?1:-1)*359),T="M".concat(C.x,",").concat(C.y,` - A`).concat(b,",").concat(b,",0,1,").concat(A?0:1,`, - `).concat(k.x,",").concat(k.y),M=Qe(t.id)?Wu("recharts-radial-line-"):t.id;return W.createElement("text",Jf({},r,{dominantBaseline:"central",className:Je("recharts-radial-bar-label",u)}),W.createElement("defs",null,W.createElement("path",{id:M,d:T})),W.createElement("textPath",{xlinkHref:"#".concat(M)},n))},dle=function(t){var n=t.viewBox,r=t.offset,a=t.position,s=n,l=s.cx,u=s.cy,d=s.innerRadius,f=s.outerRadius,m=s.startAngle,p=s.endAngle,g=(m+p)/2;if(a==="outside"){var x=Zt(l,u,f+r,g),j=x.x,w=x.y;return{x:j,y:w,textAnchor:j>=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var b=(d+f)/2,N=Zt(l,u,b,g),E=N.x,O=N.y;return{x:E,y:O,textAnchor:"middle",verticalAnchor:"middle"}},fle=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,s=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",w=f>=0?1:-1,b=w*a,N=w>0?"end":"start",E=w>0?"start":"end";if(s==="top"){var O={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return $n($n({},O),r?{height:Math.max(d-r.y,0),width:f}:{})}if(s==="bottom"){var A={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return $n($n({},A),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(s==="left"){var C={x:u-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return $n($n({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(s==="right"){var k={x:u+f+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"};return $n($n({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var T=r?{width:f,height:m}:{};return s==="insideLeft"?$n({x:u+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"},T):s==="insideRight"?$n({x:u+f-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},T):s==="insideTop"?$n({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},T):s==="insideBottom"?$n({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},T):s==="insideTopLeft"?$n({x:u+b,y:d+g,textAnchor:E,verticalAnchor:j},T):s==="insideTopRight"?$n({x:u+f-b,y:d+g,textAnchor:N,verticalAnchor:j},T):s==="insideBottomLeft"?$n({x:u+b,y:d+m-g,textAnchor:E,verticalAnchor:x},T):s==="insideBottomRight"?$n({x:u+f-b,y:d+m-g,textAnchor:N,verticalAnchor:x},T):Hu(s)&&(Ce(s.x)||Ko(s.x))&&(Ce(s.y)||Ko(s.y))?$n({x:u+Sr(s.x,f),y:d+Sr(s.y,m),textAnchor:"end",verticalAnchor:"end"},T):$n({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},T)},hle=function(t){return"cx"in t&&Ce(t.cx)};function Vn(e){var t=e.offset,n=t===void 0?5:t,r=rle(e,Zoe),a=$n({offset:n},r),s=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!s||Qe(u)&&Qe(d)&&!y.isValidElement(f)&&!Ke(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(Ke(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=lle(a);var j=hle(s),w=qe(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return ule(a,x,w);var b=j?dle(a):fle(a);return W.createElement(ml,Jf({className:Je("recharts-label",p)},w,b,{breakAll:g}),x)}Vn.displayName="Label";var tq=function(t){var n=t.cx,r=t.cy,a=t.angle,s=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,w=t.width,b=t.height,N=t.clockWise,E=t.labelViewBox;if(E)return E;if(Ce(w)&&Ce(b)){if(Ce(p)&&Ce(g))return{x:p,y:g,width:w,height:b};if(Ce(x)&&Ce(j))return{x,y:j,width:w,height:b}}return Ce(p)&&Ce(g)?{x:p,y:g,width:0,height:0}:Ce(n)&&Ce(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},mle=function(t,n){return t?t===!0?W.createElement(Vn,{key:"label-implicit",viewBox:n}):Ln(t)?W.createElement(Vn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===Vn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Ke(t)?W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Hu(t)?W.createElement(Vn,Jf({viewBox:n},t,{key:"label-implicit"})):null:null},ple=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,s=tq(t),l=ia(a,Vn).map(function(d,f){return y.cloneElement(d,{viewBox:n||s,key:"label-".concat(f)})});if(!r)return l;var u=mle(t.label,n||s);return[u].concat(Qoe(l))};Vn.parseViewBox=tq;Vn.renderCallByParent=ple;var bS,Z3;function vle(){if(Z3)return bS;Z3=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return bS=e,bS}var gle=vle();const yle=At(gle);function eh(e){"@babel/helpers - typeof";return eh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},eh(e)}var xle=["valueAccessor"],ble=["data","dataKey","clockWise","id","textBreakAll"];function wle(e){return Nle(e)||_le(e)||Sle(e)||jle()}function jle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sle(e,t){if(e){if(typeof e=="string")return uN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return uN(e,t)}}function _le(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Nle(e){if(Array.isArray(e))return uN(e)}function uN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ale(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Tle=function(t){return Array.isArray(t.value)?yle(t.value):t.value};function as(e){var t=e.valueAccessor,n=t===void 0?Tle:t,r=e$(e,xle),a=r.data,s=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=e$(r,ble);return!a||!a.length?null:W.createElement(xt,{className:"recharts-label-list"},a.map(function(m,p){var g=Qe(s)?n(m,p):In(m&&m.payload,s),x=Qe(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(Vn,ng({},qe(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:Vn.parseViewBox(Qe(l)?m:J3(J3({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}as.displayName="LabelList";function kle(e,t){return e?e===!0?W.createElement(as,{key:"labelList-implicit",data:t}):W.isValidElement(e)||Ke(e)?W.createElement(as,{key:"labelList-implicit",data:t,content:e}):Hu(e)?W.createElement(as,ng({data:t},e,{key:"labelList-implicit"})):null:null}function Mle(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=ia(r,as).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var s=kle(e.label,t);return[s].concat(wle(a))}as.renderCallByParent=Mle;function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}function dN(){return dN=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(l>f),`, - `).concat(p.x,",").concat(p.y,` - `);if(a>0){var x=Zt(n,r,a,l),j=Zt(n,r,a,f);g+="L ".concat(j.x,",").concat(j.y,` - A `).concat(a,",").concat(a,`,0, - `).concat(+(Math.abs(d)>180),",").concat(+(l<=f),`, - `).concat(x.x,",").concat(x.y," Z")}else g+="L ".concat(n,",").concat(r," Z");return g},Ile=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,s=t.outerRadius,l=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,m=t.endAngle,p=jr(m-f),g=Fp({cx:n,cy:r,radius:s,angle:f,sign:p,cornerRadius:l,cornerIsExternal:d}),x=g.circleTangency,j=g.lineTangency,w=g.theta,b=Fp({cx:n,cy:r,radius:s,angle:m,sign:-p,cornerRadius:l,cornerIsExternal:d}),N=b.circleTangency,E=b.lineTangency,O=b.theta,A=d?Math.abs(f-m):Math.abs(f-m)-w-O;if(A<0)return u?"M ".concat(j.x,",").concat(j.y,` - a`).concat(l,",").concat(l,",0,0,1,").concat(l*2,`,0 - a`).concat(l,",").concat(l,",0,0,1,").concat(-l*2,`,0 - `):nq({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:f,endAngle:m});var C="M ".concat(j.x,",").concat(j.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(x.x,",").concat(x.y,` - A`).concat(s,",").concat(s,",0,").concat(+(A>180),",").concat(+(p<0),",").concat(N.x,",").concat(N.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(E.x,",").concat(E.y,` - `);if(a>0){var k=Fp({cx:n,cy:r,radius:a,angle:f,sign:p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),T=k.circleTangency,M=k.lineTangency,R=k.theta,B=Fp({cx:n,cy:r,radius:a,angle:m,sign:-p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),$=B.circleTangency,H=B.lineTangency,V=B.theta,q=d?Math.abs(f-m):Math.abs(f-m)-R-V;if(q<0&&l===0)return"".concat(C,"L").concat(n,",").concat(r,"Z");C+="L".concat(H.x,",").concat(H.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat($.x,",").concat($.y,` - A`).concat(a,",").concat(a,",0,").concat(+(q>180),",").concat(+(p>0),",").concat(T.x,",").concat(T.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(M.x,",").concat(M.y,"Z")}else C+="L".concat(n,",").concat(r,"Z");return C},Lle={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},rq=function(t){var n=n$(n$({},Lle),t),r=n.cx,a=n.cy,s=n.innerRadius,l=n.outerRadius,u=n.cornerRadius,d=n.forceCornerRadius,f=n.cornerIsExternal,m=n.startAngle,p=n.endAngle,g=n.className;if(l0&&Math.abs(m-p)<360?b=Ile({cx:r,cy:a,innerRadius:s,outerRadius:l,cornerRadius:Math.min(w,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):b=nq({cx:r,cy:a,innerRadius:s,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",dN({},qe(n,!0),{className:x,d:b,role:"img"}))};function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function fN(){return fN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function rce(e,t){return El(e.getTime(),t.getTime())}function ace(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function ice(e,t){return e===t}function h$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.entries(),l,u,d=0;(l=s.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var sce=El;function oce(e,t,n){var r=f$(e),a=r.length;if(f$(t).length!==a)return!1;for(;a-- >0;)if(!aq(e,t,n,r[a]))return!1;return!0}function cf(e,t,n){var r=u$(e),a=r.length;if(u$(t).length!==a)return!1;for(var s,l,u;a-- >0;)if(s=r[a],!aq(e,t,n,s)||(l=d$(e,s),u=d$(t,s),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function lce(e,t){return El(e.valueOf(),t.valueOf())}function cce(e,t){return e.source===t.source&&e.flags===t.flags}function m$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.values(),l,u;(l=s.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function uce(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function dce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function aq(e,t,n,r){return(r===tce||r===ece||r===Jle)&&(e.$$typeof||t.$$typeof)?!0:Qle(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var fce="[object Arguments]",hce="[object Boolean]",mce="[object Date]",pce="[object Error]",vce="[object Map]",gce="[object Number]",yce="[object Object]",xce="[object RegExp]",bce="[object Set]",wce="[object String]",jce="[object URL]",Sce=Array.isArray,p$=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,v$=Object.assign,_ce=Object.prototype.toString.call.bind(Object.prototype.toString);function Nce(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,s=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(w,b,N){if(w===b)return!0;if(w==null||b==null)return!1;var E=typeof w;if(E!==typeof b)return!1;if(E!=="object")return E==="number"?l(w,b,N):E==="function"?a(w,b,N):!1;var O=w.constructor;if(O!==b.constructor)return!1;if(O===Object)return u(w,b,N);if(Sce(w))return t(w,b,N);if(p$!=null&&p$(w))return p(w,b,N);if(O===Date)return n(w,b,N);if(O===RegExp)return f(w,b,N);if(O===Map)return s(w,b,N);if(O===Set)return m(w,b,N);var A=_ce(w);if(A===mce)return n(w,b,N);if(A===xce)return f(w,b,N);if(A===vce)return s(w,b,N);if(A===bce)return m(w,b,N);if(A===yce)return typeof w.then!="function"&&typeof b.then!="function"&&u(w,b,N);if(A===jce)return g(w,b,N);if(A===pce)return r(w,b,N);if(A===fce)return u(w,b,N);if(A===hce||A===gce||A===wce)return d(w,b,N);if(x){var C=x[A];if(!C){var k=Zle(w);k&&(C=x[k])}if(C)return C(w,b,N)}return!1}}function Cce(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?cf:nce,areDatesEqual:rce,areErrorsEqual:ace,areFunctionsEqual:ice,areMapsEqual:r?c$(h$,cf):h$,areNumbersEqual:sce,areObjectsEqual:r?cf:oce,arePrimitiveWrappersEqual:lce,areRegExpsEqual:cce,areSetsEqual:r?c$(m$,cf):m$,areTypedArraysEqual:r?cf:uce,areUrlsEqual:dce,unknownTagComparators:void 0};if(n&&(a=v$({},a,n(a))),t){var s=Hp(a.areArraysEqual),l=Hp(a.areMapsEqual),u=Hp(a.areObjectsEqual),d=Hp(a.areSetsEqual);a=v$({},a,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function Oce(e){return function(t,n,r,a,s,l,u){return e(t,n,u)}}function Ece(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,s=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:s})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:s})};var l={cache:void 0,equals:a,meta:void 0,strict:s};return function(d,f){return n(d,f,l)}}var Ace=fo();fo({strict:!0});fo({circular:!0});fo({circular:!0,strict:!0});fo({createInternalComparator:function(){return El}});fo({strict:!0,createInternalComparator:function(){return El}});fo({circular:!0,createInternalComparator:function(){return El}});fo({circular:!0,createInternalComparator:function(){return El},strict:!0});function fo(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,s=e.strict,l=s===void 0?!1:s,u=Cce(e),d=Nce(u),f=r?r(d):Oce(d);return Ece({circular:n,comparator:d,createState:a,equals:f,strict:l})}function Tce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function g$(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>t?(e(s),n=-1):Tce(a)};requestAnimationFrame(r)}function hN(e){"@babel/helpers - typeof";return hN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hN(e)}function kce(e){return Dce(e)||Rce(e)||Pce(e)||Mce()}function Mce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Pce(e,t){if(e){if(typeof e=="string")return y$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y$(e,t)}}function y$(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},w=function(N){for(var E=N>1?1:N,O=E,A=0;A<8;++A){var C=p(O)-E,k=x(O);if(Math.abs(C-E)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,s=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*s,w=g+(x-j)*u/1e3,b=g*u/1e3+m;return Math.abs(b-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function fue(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,s;for(s=0;s=0)&&(n[a]=e[a]);return n}function _S(e){return vue(e)||pue(e)||mue(e)||hue()}function hue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mue(e,t){if(e){if(typeof e=="string")return yN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return yN(e,t)}}function pue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function vue(e){if(Array.isArray(e))return yN(e)}function yN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function sg(e){return sg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},sg(e)}var bi=(function(e){wue(n,e);var t=jue(n);function n(r,a){var s;gue(this,n),s=t.call(this,r,a);var l=s.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(s.handleStyleChange=s.handleStyleChange.bind(wN(s)),s.changeStyle=s.changeStyle.bind(wN(s)),!u||x<=0)return s.state={style:{}},typeof g=="function"&&(s.state={style:m}),bN(s);if(p&&p.length)s.state={style:p[0].style};else if(f){if(typeof g=="function")return s.state={style:f},bN(s);s.state={style:d?vf({},d,f):f}}else s.state={style:{}};return s}return xue(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,l=a.canBegin;this.mounted=!0,!(!s||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,l=s.isActive,u=s.canBegin,d=s.attributeName,f=s.shouldReAnimate,m=s.to,p=s.from,g=this.state.style;if(u){if(!l){var x={style:d?vf({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(Ace(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=j||f?p:a.to;if(this.state&&g){var b={style:d?vf({},d,w):w};(d&&g[d]!==w||!d&&g!==w)&&this.setState(b)}this.runAnimation(Da(Da({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=cue(l,u,Qce(f),d,this.changeStyle),j=function(){s.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var s=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(w,b,N){if(N===0)return w;var E=b.duration,O=b.easing,A=O===void 0?"ease":O,C=b.style,k=b.properties,T=b.onAnimationEnd,M=N>0?l[N-1]:b,R=k||Object.keys(C);if(typeof A=="function"||A==="spring")return[].concat(_S(w),[s.runJSAnimation.bind(s,{from:M.style,to:C,duration:E,easing:A}),E]);var B=w$(R,E,A),$=Da(Da(Da({},M.style),C),{},{transition:B});return[].concat(_S(w),[$,E,T]).filter(zce)};return this.manager.start([d].concat(_S(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=$ce());var s=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var w=u?vf({},u,d):d,b=w$(Object.keys(w),l,f);j.start([m,s,Da(Da({},w),{},{transition:b}),l,p])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=due(a,uue),f=y.Children.count(s),m=this.state.style;if(typeof s=="function")return s(m);if(!u||f===0||l<=0)return s;var p=function(x){var j=x.props,w=j.style,b=w===void 0?{}:w,N=j.className,E=y.cloneElement(x,Da(Da({},d),{},{style:Da(Da({},b),m),className:N}));return E};return f===1?p(y.Children.only(s)):W.createElement("div",null,y.Children.map(s,function(g){return p(g)}))}}]),n})(y.PureComponent);bi.displayName="Animate";bi.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};bi.propTypes={from:Nt.oneOfType([Nt.object,Nt.string]),to:Nt.oneOfType([Nt.object,Nt.string]),attributeName:Nt.string,duration:Nt.number,begin:Nt.number,easing:Nt.oneOfType([Nt.string,Nt.func]),steps:Nt.arrayOf(Nt.shape({duration:Nt.number.isRequired,style:Nt.object.isRequired,easing:Nt.oneOfType([Nt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Nt.func]),properties:Nt.arrayOf("string"),onAnimationEnd:Nt.func})),children:Nt.oneOfType([Nt.node,Nt.func]),isActive:Nt.bool,canBegin:Nt.bool,onAnimationEnd:Nt.func,shouldReAnimate:Nt.bool,onAnimationStart:Nt.func,onAnimationReStart:Nt.func};function ih(e){"@babel/helpers - typeof";return ih=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ih(e)}function og(){return og=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,d=r>=0?1:-1,f=a>=0&&r>=0||a<0&&r<0?1:0,m;if(l>0&&s instanceof Array){for(var p=[0,0,0,0],g=0,x=4;gl?l:s[g];m="M".concat(t,",").concat(n+u*p[0]),p[0]>0&&(m+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(f,",").concat(t+d*p[0],",").concat(n)),m+="L ".concat(t+r-d*p[1],",").concat(n),p[1]>0&&(m+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(f,`, - `).concat(t+r,",").concat(n+u*p[1])),m+="L ".concat(t+r,",").concat(n+a-u*p[2]),p[2]>0&&(m+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(f,`, - `).concat(t+r-d*p[2],",").concat(n+a)),m+="L ".concat(t+d*p[3],",").concat(n+a),p[3]>0&&(m+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(f,`, - `).concat(t,",").concat(n+a-u*p[3])),m+="Z"}else if(l>0&&s===+s&&s>0){var j=Math.min(l,s);m="M ".concat(t,",").concat(n+u*j,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+d*j,",").concat(n,` - L `).concat(t+r-d*j,",").concat(n,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r,",").concat(n+u*j,` - L `).concat(t+r,",").concat(n+a-u*j,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r-d*j,",").concat(n+a,` - L `).concat(t+d*j,",").concat(n+a,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t,",").concat(n+a-u*j," Z")}else m="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return m},Mue=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,s=n.x,l=n.y,u=n.width,d=n.height;if(Math.abs(u)>0&&Math.abs(d)>0){var f=Math.min(s,s+u),m=Math.max(s,s+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},Pue={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},WO=function(t){var n=A$(A$({},Pue),t),r=y.useRef(),a=y.useState(-1),s=_ue(a,2),l=s[0],u=s[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var A=r.current.getTotalLength();A&&u(A)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,w=n.animationDuration,b=n.animationBegin,N=n.isAnimationActive,E=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var O=Je("recharts-rectangle",x);return E?W.createElement(bi,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:w,animationEasing:j,isActive:E},function(A){var C=A.width,k=A.height,T=A.x,M=A.y;return W.createElement(bi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,isActive:N,easing:j},W.createElement("path",og({},qe(n,!0),{className:O,d:T$(T,M,C,k,g),ref:r})))}):W.createElement("path",og({},qe(n,!0),{className:O,d:T$(d,f,m,p,g)}))},Rue=["points","className","baseLinePoints","connectNulls"];function Fc(){return Fc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $ue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function k$(e){return zue(e)||Bue(e)||Lue(e)||Iue()}function Iue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Lue(e,t){if(e){if(typeof e=="string")return jN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jN(e,t)}}function Bue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function zue(e){if(Array.isArray(e))return jN(e)}function jN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){M$(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),M$(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Af=function(t,n){var r=que(t);n&&(r=[r.reduce(function(s,l){return[].concat(k$(s),k$(l))},[])]);var a=r.map(function(s){return s.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},Fue=function(t,n,r){var a=Af(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Af(n.reverse(),r).slice(1))},Uue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,s=t.connectNulls,l=Due(t,Rue);if(!n||!n.length)return null;var u=Je("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=Fue(n,a,s);return W.createElement("g",{className:u},W.createElement("path",Fc({},qe(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Fc({},qe(l,!0),{fill:"none",d:Af(n,s)})):null,d?W.createElement("path",Fc({},qe(l,!0),{fill:"none",d:Af(a,s)})):null)}var m=Af(n,s);return W.createElement("path",Fc({},qe(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function SN(){return SN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Xue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Zue=function(t,n,r,a,s,l){return"M".concat(t,",").concat(s,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},Que=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,w=Kue(t,Hue),b=Wue({x:r,y:s,top:u,left:f,width:p,height:x},w);return!Ce(r)||!Ce(s)||!Ce(p)||!Ce(x)||!Ce(u)||!Ce(f)?null:W.createElement("path",_N({},qe(b,!0),{className:Je("recharts-cross",j),d:Zue(r,s,p,x,u,f)}))},NS,R$;function Jue(){if(R$)return NS;R$=1;var e=gy(),t=N6(),n=_i();function r(a,s){return a&&a.length?e(a,n(s,2),t):void 0}return NS=r,NS}var ede=Jue();const tde=At(ede);var CS,D$;function nde(){if(D$)return CS;D$=1;var e=gy(),t=_i(),n=C6();function r(a,s){return a&&a.length?e(a,t(s,2),n):void 0}return CS=r,CS}var rde=nde();const ade=At(rde);var ide=["cx","cy","angle","ticks","axisLine"],sde=["ticks","tick","angle","tickFormatter","stroke"];function gu(e){"@babel/helpers - typeof";return gu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gu(e)}function Tf(){return Tf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function ode(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function lde(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function L$(e,t){for(var n=0;nq$?l=a==="outer"?"start":"end":s<-q$?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,s=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=Uo(Uo({},qe(this.props,!1)),{},{fill:"none"},qe(u,!1));if(d==="circle")return W.createElement(jy,Go({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:s,r:l}));var m=this.props.ticks,p=m.map(function(g){return Zt(a,s,l,g.coordinate)});return W.createElement(Uue,Go({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,s=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=qe(this.props,!1),p=qe(l,!1),g=Uo(Uo({},m),{},{fill:"none"},qe(u,!1)),x=s.map(function(j,w){var b=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),E=Uo(Uo(Uo({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:w,payload:j,x:b.x2,y:b.y2});return W.createElement(xt,Go({className:Je("recharts-polar-angle-axis-tick",eq(l)),key:"tick-".concat(j.coordinate)},hl(r.props,j,w)),u&&W.createElement("line",Go({className:"recharts-polar-angle-axis-tick-line"},g,b)),l&&t.renderTickItem(l,E,d?d(j.value,w):j.value))});return W.createElement(xt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,s=r.radius,l=r.axisLine;return s<=0||!a||!a.length?null:W.createElement(xt,{className:Je("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,s){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):Ke(r)?l=r(a):l=W.createElement(ml,Go({},a,{className:"recharts-polar-angle-axis-tick-value"}),s),l}}])})(y.PureComponent);Ny(Cy,"displayName","PolarAngleAxis");Ny(Cy,"axisType","angleAxis");Ny(Cy,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var OS,F$;function Sde(){if(F$)return OS;F$=1;var e=_z(),t=e(Object.getPrototypeOf,Object);return OS=t,OS}var ES,U$;function _de(){if(U$)return ES;U$=1;var e=fs(),t=Sde(),n=hs(),r="[object Object]",a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return ES=f,ES}var Nde=_de();const Cde=At(Nde);var AS,H$;function Ode(){if(H$)return AS;H$=1;var e=fs(),t=hs(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return AS=r,AS}var Ede=Ode();const Ade=At(Ede);function oh(e){"@babel/helpers - typeof";return oh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oh(e)}function ug(){return ug=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:w,animationEasing:j,isActive:N},function(O){var A=O.upperWidth,C=O.lowerWidth,k=O.height,T=O.x,M=O.y;return W.createElement(bi,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,easing:j},W.createElement("path",ug({},qe(n,!0),{className:E,d:Y$(T,M,A,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",ug({},qe(n,!0),{className:E,d:Y$(d,f,m,p,g)})))},zde=["option","shapeType","propTransformer","activeClassName","isActive"];function lh(e){"@babel/helpers - typeof";return lh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lh(e)}function qde(e,t){if(e==null)return{};var n=Fde(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Fde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function K$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function dg(e){for(var t=1;t0?aa(O,"paddingAngle",0):0;if(C){var T=ta(C.endAngle-C.startAngle,O.endAngle-O.startAngle),M=Yt(Yt({},O),{},{startAngle:E+k,endAngle:E+T(w)+k});b.push(M),E=M.endAngle}else{var R=O.endAngle,B=O.startAngle,$=ta(0,R-B),H=$(w),V=Yt(Yt({},O),{},{startAngle:E+k,endAngle:E+H+k});b.push(V),E=V.endAngle}}),W.createElement(xt,null,r.renderSectorsStatically(b))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(s){if(!s.altKey)switch(s.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,s=r.isAnimationActive,l=this.state.prevSectors;return s&&a&&a.length&&(!l||!Hh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,s=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(s||!l||!l.length||!Ce(f)||!Ce(m)||!Ce(p)||!Ce(g))return null;var w=Je("recharts-pie",u);return W.createElement(xt,{tabIndex:this.props.rootTabIndex,className:w,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),Vn.renderCallByParent(this.props,null,!1),(!x||j)&&as.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r=360?E:E-1)*d,A=b-E*x-O,C=a.reduce(function(M,R){var B=In(R,N,0);return M+(Ce(B)?B:0)},0),k;if(C>0){var T;k=a.map(function(M,R){var B=In(M,N,0),$=In(M,m,R),H=(Ce(B)?B:0)/C,V;R?V=T.endAngle+jr(w)*d*(B!==0?1:0):V=l;var q=V+jr(w)*((B!==0?x:0)+H*A),G=(V+q)/2,L=(j.innerRadius+j.outerRadius)/2,D=[{name:$,value:B,payload:M,dataKey:N,type:g}],U=Zt(j.cx,j.cy,L,G);return T=Yt(Yt(Yt({percent:H,cornerRadius:s,name:$,tooltipPayload:D,midAngle:G,middleRadius:L,tooltipPosition:U},M),j),{},{value:In(M,N),startAngle:V,endAngle:q,payload:M,paddingAngle:jr(w)*d}),T})}return Yt(Yt({},j),{},{sectors:k,data:a})});var TS,J$;function cfe(){if(J$)return TS;J$=1;var e=Math.ceil,t=Math.max;function n(r,a,s,l){for(var u=-1,d=t(e((a-r)/(s||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=s;return f}return TS=n,TS}var kS,eI;function yq(){if(eI)return kS;eI=1;var e=zz(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var s=a<0?-1:1;return s*n}return a===a?a:0}return kS=r,kS}var MS,tI;function ufe(){if(tI)return MS;tI=1;var e=cfe(),t=cy(),n=yq();function r(a){return function(s,l,u){return u&&typeof u!="number"&&t(s,l,u)&&(l=u=void 0),s=n(s),l===void 0?(l=s,s=0):l=n(l),u=u===void 0?s0&&r.handleDrag(a.changedTouches[0])}),Zr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:s,startIndex:u})}),r.detachDragEndListener()}),Zr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Zr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Zr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Zr(r,"handleSlideDragStart",function(a){var s=oI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return jfe(t,e),yfe(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,s),g=Math.max(a,s),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,l=a.tickFormatter,u=a.dataKey,d=In(s[r],u,r);return Ke(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,w=r.pageX-s;w>0?w=Math.min(w,f+m-p-u,f+m-p-l):w<0&&(w=Math.max(w,f-l,f-u));var b=this.getIndex({startX:l+w,endX:u+w});(b.startIndex!==g||b.endIndex!==x)&&j&&j(b),this.setState({startX:l+w,endX:u+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=oI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,w=m.gap,b=m.data,N={startX:this.state.startX,endX:this.state.endX},E=r.pageX-s;E>0?E=Math.min(E,p+g-x-f):E<0&&(E=Math.max(E,p-f)),N[l]=f+E;var O=this.getIndex(N),A=O.startIndex,C=O.endIndex,k=function(){var M=b.length-1;return l==="startX"&&(u>d?A%w===0:C%w===0)||ud?C%w===0:A%w===0)||u>d&&C===M};this.setState(Zr(Zr({},l,f+E),"brushMoveStartX",r.pageX),function(){j&&k()&&j(O)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Zr({},a,x),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:s,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:s,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,w=d.startIndex,b=d.endIndex,N=Math.max(r,this.props.x),E=RS(RS({},qe(this.props,!1)),{},{x:N,y:f,width:m,height:p}),O=x||"Min value: ".concat((s=j[w])===null||s===void 0?void 0:s.name,", Max value: ").concat((l=j[b])===null||l===void 0?void 0:l.name);return W.createElement(xt,{tabIndex:0,role:"slider","aria-label":O,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,E))}},{key:"renderSlide",value:function(r,a){var s=this.props,l=s.y,u=s.height,d=s.stroke,f=s.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(xt,{className:"recharts-brush-texts"},W.createElement(ml,mg({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(ml,mg({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,w=g.isTextActive,b=g.isSlideMoving,N=g.isTravellerMoving,E=g.isTravellerFocused;if(!a||!a.length||!Ce(u)||!Ce(d)||!Ce(f)||!Ce(m)||f<=0||m<=0)return null;var O=Je("recharts-brush",s),A=W.Children.count(l)===1,C=vfe("userSelect","none");return W.createElement(xt,{className:O,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(w||b||N||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(s+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:s,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return W.isValidElement(r)?s=W.cloneElement(r,a):Ke(r)?s=r(a):s=t.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(s!==a.prevData||f!==a.prevUpdateId)return RS({prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},s&&s.length?_fe({data:s,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,l=0,u=s-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Zr(wu,"displayName","Brush");Zr(wu,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var DS,lI;function Nfe(){if(lI)return DS;lI=1;var e=gO();function t(n,r){var a;return e(n,function(s,l,u){return a=r(s,l,u),!a}),!!a}return DS=t,DS}var $S,cI;function Cfe(){if(cI)return $S;cI=1;var e=gz(),t=_i(),n=Nfe(),r=qr(),a=cy();function s(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return $S=s,$S}var Ofe=Cfe();const Efe=At(Ofe);var vi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},IS,uI;function Afe(){if(uI)return IS;uI=1;var e=Dz();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return IS=t,IS}var LS,dI;function Tfe(){if(dI)return LS;dI=1;var e=Afe(),t=Pz(),n=_i();function r(a,s){var l={};return s=n(s,3),t(a,function(u,d,f){e(l,d,s(u,d,f))}),l}return LS=r,LS}var kfe=Tfe();const Mfe=At(kfe);var BS,fI;function Pfe(){if(fI)return BS;fI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ffe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ufe(e,t){var n=e.x,r=e.y,a=qfe(e,Ife),s="".concat(n),l=parseInt(s,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return uf(uf(uf(uf(uf({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function vI(e){return W.createElement(pq,AN({shapeType:"rectangle",propTransformer:Ufe,activeClassName:"recharts-active-bar"},e))}var Hfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var s=Ce(r)||hJ(r);return s?t(r,a):(s||pr(!1),n)}},Wfe=["value","background"],Sq;function ju(e){"@babel/helpers - typeof";return ju=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ju(e)}function Vfe(e,t){if(e==null)return{};var n=Gfe(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Gfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vg(){return vg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(q)0&&(V=Math.min((te||0)-(q[ae-1]||0),V))}),Number.isFinite(V)){var G=V/H,L=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(T=G*L/2),w.padding==="no-gap"){var D=Sr(t.barCategoryGap,G*L),U=G*L/2;T=U-D-(U-D)/L*D}}}a==="xAxis"?M=[r.left+(O.left||0)+(T||0),r.left+r.width-(O.right||0)-(T||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(O.bottom||0),r.top+(O.top||0)]:[r.top+(O.top||0)+(T||0),r.top+r.height-(O.bottom||0)-(T||0)]:M=w.range,C&&(M=[M[1],M[0]]);var K=G6(w,s,g),J=K.scale,I=K.realScaleType;J.domain(N).range(M),Y6(J);var z=K6(J,Ba(Ba({},w),{},{realScaleType:I}));a==="xAxis"?($=b==="top"&&!A||b==="bottom"&&A,R=r.left,B=p[k]-$*w.height):a==="yAxis"&&($=b==="left"&&!A||b==="right"&&A,R=p[k]-$*w.width,B=r.top);var Y=Ba(Ba(Ba({},w),z),{},{realScaleType:I,x:R,y:B,scale:J,width:a==="xAxis"?r.width:w.width,height:a==="yAxis"?r.height:w.height});return Y.bandSize=eg(Y,z),!w.hide&&a==="xAxis"?p[k]+=($?-1:1)*Y.height:w.hide||(p[k]+=($?-1:1)*Y.width),Ba(Ba({},x),{},Ay({},j,Y))},{})},Eq=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return{x:Math.min(r,s),y:Math.min(a,l),width:Math.abs(s-r),height:Math.abs(l-a)}},ahe=function(t){var n=t.x1,r=t.y1,a=t.x2,s=t.y2;return Eq({x:n,y:r},{x:a,y:s})},Aq=(function(){function e(t){the(this,e),this.scale=t}return nhe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();Ay(Aq,"EPS",1e-4);var VO=function(t){var n=Object.keys(t).reduce(function(r,a){return Ba(Ba({},r),{},Ay({},a,Aq.create(t[a])))},{});return Ba(Ba({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=s.bandAware,u=s.position;return Mfe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return jq(a,function(s,l){return n[l].isInRange(s)})}})};function ihe(e){return(e%180+180)%180}var she=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=ihe(a),l=s*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?s[m]:m]:void 0}}return FS=r,FS}var US,jI;function lhe(){if(jI)return US;jI=1;var e=yq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return US=t,US}var HS,SI;function che(){if(SI)return HS;SI=1;var e=Ez(),t=_i(),n=lhe(),r=Math.max;function a(s,l,u){var d=s==null?0:s.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(s,t(l,3),f)}return HS=a,HS}var WS,_I;function uhe(){if(_I)return WS;_I=1;var e=ohe(),t=che(),n=e(t);return WS=n,WS}var dhe=uhe();const fhe=At(dhe);var hhe=HB();const mhe=At(hhe);var phe=mhe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),GO=y.createContext(void 0),YO=y.createContext(void 0),Tq=y.createContext(void 0),kq=y.createContext({}),Mq=y.createContext(void 0),Pq=y.createContext(0),Rq=y.createContext(0),NI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=phe(s);return W.createElement(GO.Provider,{value:r},W.createElement(YO.Provider,{value:a},W.createElement(kq.Provider,{value:s},W.createElement(Tq.Provider,{value:m},W.createElement(Mq.Provider,{value:l},W.createElement(Pq.Provider,{value:f},W.createElement(Rq.Provider,{value:d},u)))))))},vhe=function(){return y.useContext(Mq)},Dq=function(t){var n=y.useContext(GO);n==null&&pr(!1);var r=n[t];return r==null&&pr(!1),r},ghe=function(){var t=y.useContext(GO);return Ws(t)},yhe=function(){var t=y.useContext(YO),n=fhe(t,function(r){return jq(r.domain,Number.isFinite)});return n||Ws(t)},$q=function(t){var n=y.useContext(YO);n==null&&pr(!1);var r=n[t];return r==null&&pr(!1),r},xhe=function(){var t=y.useContext(Tq);return t},bhe=function(){return y.useContext(kq)},KO=function(){return y.useContext(Rq)},XO=function(){return y.useContext(Pq)};function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function whe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jhe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var s=n();return e*(t-e*s/2-r)>=0&&e*(t+e*s/2-a)<=0}function rme(e,t){return Uq(e,t+1)}function ame(e,t,n,r,a){for(var s=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Uq(r,f)};var w=d,b,N=function(){return b===void 0&&(b=n(j,w)),b},E=j.coordinate,O=d===0||wg(e,E,N,m,u);O||(d=0,m=l,f+=1),O&&(m=E+e*(N()/2+a),d+=f)},g;f<=s.length;)if(g=p(),g)return g.v;return[]}function hh(e){"@babel/helpers - typeof";return hh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},hh(e)}function PI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t0?x.coordinate-b*e:x.coordinate})}else s[g]=x=ur(ur({},x),{},{tickCoord:x.coordinate});var N=wg(e,x.tickCoord,w,u,d);N&&(d=x.tickCoord-e*(w()/2+a),s[g]=ur(ur({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return s}function cme(e,t,n,r,a,s){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(s){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=ur(ur({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=wg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=ur(ur({},m),{},{isShow:!0}))}for(var j=s?u-1:u,w=function(E){var O=l[E],A,C=function(){return A===void 0&&(A=n(O,E)),A};if(E===0){var k=e*(O.coordinate-e*C()/2-d);l[E]=O=ur(ur({},O),{},{tickCoord:k<0?O.coordinate-k*e:O.coordinate})}else l[E]=O=ur(ur({},O),{},{tickCoord:O.coordinate});var T=wg(e,O.tickCoord,C,d,f);T&&(d=O.tickCoord+e*(C()/2+a),l[E]=ur(ur({},O),{},{isShow:!0}))},b=0;b=2?jr(a[1].coordinate-a[0].coordinate):1,N=nme(s,b,x);return d==="equidistantPreserveStart"?ame(b,N,w,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=cme(b,N,w,a,l,d==="preserveStartEnd"):g=lme(b,N,w,a,l),g.filter(function(E){return E.isShow}))}var ume=["viewBox"],dme=["viewBox"],fme=["ticks"];function Cu(e){"@babel/helpers - typeof";return Cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cu(e)}function Hc(){return Hc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function hme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function mme(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function DI(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(xt,{className:Je("recharts-cartesian-axis",f),ref:function(b){r.layerReference=b}},s&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),Vn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var l,u=Je(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,Dn(Dn({},a),{},{className:u})):Ke(r)?l=r(Dn(Dn({},a),{},{className:u})):l=W.createElement(ml,Hc({},a,{className:"recharts-cartesian-axis-tick-value"}),s),l}}])})(y.Component);eE(Xu,"displayName","CartesianAxis");eE(Xu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var wme=["x1","y1","x2","y2","key"],jme=["offset"];function vl(e){"@babel/helpers - typeof";return vl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vl(e)}function $I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function fr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Cme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Ome=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,s=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:s,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function Vq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(Ke(e))n=e(t);else{var r=t.x1,a=t.y1,s=t.x2,l=t.y2,u=t.key,d=II(t,wme),f=qe(d,!1);f.offset;var m=II(f,jme);n=W.createElement("line",Qo({},m,{x1:r,y1:a,x2:s,y2:l,fill:"none",key:u}))}return n}function Eme(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,s=e.horizontalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return Vq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function Ame(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,s=e.verticalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return Vq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Tme(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,s=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?a+l-g:m[x+1]-g;if(w<=0)return null;var b=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:w,width:s,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function kme(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,s=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+s-s)}).sort(function(g,x){return g-x});s!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?s+u-g:m[x+1]-g;if(w<=0)return null;var b=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:w,height:d,stroke:"none",fill:r[b],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Mme=function(t,n){var r=t.xAxis,a=t.width,s=t.height,l=t.offset;return V6(JO(fr(fr(fr({},Xu.defaultProps),r),{},{ticks:Qi(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.left,l.left+l.width,n)},Pme=function(t,n){var r=t.yAxis,a=t.width,s=t.height,l=t.offset;return V6(JO(fr(fr(fr({},Xu.defaultProps),r),{},{ticks:Qi(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.top,l.top+l.height,n)},Oc={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function gf(e){var t,n,r,a,s,l,u=KO(),d=XO(),f=bhe(),m=fr(fr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Oc.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Oc.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Oc.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:Oc.horizontalFill,vertical:(s=e.vertical)!==null&&s!==void 0?s:Oc.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:Oc.verticalFill,x:Ce(e.x)?e.x:f.left,y:Ce(e.y)?e.y:f.top,width:Ce(e.width)?e.width:f.width,height:Ce(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,w=m.syncWithTicks,b=m.horizontalValues,N=m.verticalValues,E=ghe(),O=yhe();if(!Ce(x)||x<=0||!Ce(j)||j<=0||!Ce(p)||p!==+p||!Ce(g)||g!==+g)return null;var A=m.verticalCoordinatesGenerator||Mme,C=m.horizontalCoordinatesGenerator||Pme,k=m.horizontalPoints,T=m.verticalPoints;if((!k||!k.length)&&Ke(C)){var M=b&&b.length,R=C({yAxis:O?fr(fr({},O),{},{ticks:M?b:O.ticks}):void 0,width:u,height:d,offset:f},M?!0:w);Ha(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(vl(R),"]")),Array.isArray(R)&&(k=R)}if((!T||!T.length)&&Ke(A)){var B=N&&N.length,$=A({xAxis:E?fr(fr({},E),{},{ticks:B?N:E.ticks}):void 0,width:u,height:d,offset:f},B?!0:w);Ha(Array.isArray($),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(vl($),"]")),Array.isArray($)&&(T=$)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Ome,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(Eme,Qo({},m,{offset:f,horizontalPoints:k,xAxis:E,yAxis:O})),W.createElement(Ame,Qo({},m,{offset:f,verticalPoints:T,xAxis:E,yAxis:O})),W.createElement(Tme,Qo({},m,{horizontalPoints:k})),W.createElement(kme,Qo({},m,{verticalPoints:T})))}gf.displayName="CartesianGrid";var Rme=["type","layout","connectNulls","ref"],Dme=["key"];function Ou(e){"@babel/helpers - typeof";return Ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(e)}function LI(e,t){if(e==null)return{};var n=$me(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $me(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function kf(){return kf=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Ec(d.slice(0,j)),[p-w]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(Ec(t.repeat(d,m)),Ec(x),b).map(function(N){return"".concat(N,"px")}).join(", ")}),za(n,"id",Wu("recharts-line-")),za(n,"pathRef",function(l){n.mainCurve=l}),za(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),za(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Vme(t,e),Fme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.points,u=s.xAxis,d=s.yAxis,f=s.layout,m=s.children,p=ia(m,Wh);if(!p)return null;var g=function(w,b){return{x:w.x,y:w.y,value:w.value,errorVal:In(w.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(xt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,s){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=qe(this.props,!1),g=qe(d,!0),x=f.map(function(w,b){var N=Xr(Xr(Xr({key:"dot-".concat(b),r:3},p),g),{},{index:b,cx:w.x,cy:w.y,value:w.value,dataKey:m,payload:w.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return W.createElement(xt,kf({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,s,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=LI(u,Rme),g=Xr(Xr(Xr({},qe(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(rg,kf({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,w=l.width,b=l.height,N=this.state,E=N.prevPoints,O=N.totalLength;return W.createElement(bi,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(A){var C=A.t;if(E){var k=E.length/u.length,T=u.map(function(H,V){var q=Math.floor(V*k);if(E[q]){var G=E[q],L=ta(G.x,H.x),D=ta(G.y,H.y);return Xr(Xr({},H),{},{x:L(C),y:D(C)})}if(j){var U=ta(w*2,H.x),K=ta(b/2,H.y);return Xr(Xr({},H),{},{x:U(C),y:K(C)})}return Xr(Xr({},H),{},{x:H.x,y:H.y})});return s.renderCurveStatically(T,r,a)}var M=ta(0,O),R=M(C),B;if(d){var $="".concat(d).split(/[,\s]+/gim).map(function(H){return parseFloat(H)});B=s.getStrokeDasharray(R,O,$)}else B=s.generateSimpleStrokeDasharray(O,R);return s.renderCurveStatically(u,r,a,{strokeDasharray:B})})}},{key:"renderCurve",value:function(r,a){var s=this.props,l=s.points,u=s.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Hh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,w=a.isAnimationActive,b=a.id;if(s||!u||!u.length)return null;var N=this.state.isAnimationFinished,E=u.length===1,O=Je("recharts-line",d),A=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=A||C,T=Qe(b)?this.id:b,M=(r=qe(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},R=M.r,B=R===void 0?3:R,$=M.strokeWidth,H=$===void 0?2:$,V=NJ(l)?l:{},q=V.clipDot,G=q===void 0?!0:q,L=B*2+H;return W.createElement(xt,{className:O},A||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(T)},W.createElement("rect",{x:A?g:g-x/2,y:C?p:p-j/2,width:A?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(T)},W.createElement("rect",{x:g-L/2,y:p-L/2,width:x+L,height:j+L}))):null,!E&&this.renderCurve(k,T),this.renderErrorBar(k,T),(E||l)&&this.renderDots(k,G,T),(!w||N)&&as.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Ec(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $pe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Ipe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Lpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ce(a)&&Ce(s)?t.slice(a,s+1):[]};function oF(e){return e==="number"?[0,"auto"]:void 0}var YN=function(t,n,r,a){var s=t.graphicalItems,l=t.tooltipAxis,u=Ry(n,t);return r<0||!s||!s.length||r>=u.length?null:s.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=Av(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(ku(d),[Z6(f,g)]):d},[])},GI=function(t,n,r,a){var s=a||{x:t.chartX,y:t.chartY},l=Xpe(s,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=joe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=YN(t,n,m,p),x=Zpe(r,u,m,s);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},Qpe=function(t,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=W6(m,s);return r.reduce(function(j,w){var b,N=w.type.defaultProps!==void 0?ve(ve({},w.type.defaultProps),w.props):w.props,E=N.type,O=N.dataKey,A=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,T=N.ticks,M=N.includeHidden,R=N[l];if(j[R])return j;var B=Ry(t.data,{graphicalItems:a.filter(function(z){var Y,te=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l];return te===R}),dataStartIndex:d,dataEndIndex:f}),$=B.length,H,V,q;_pe(N.domain,A,E)&&(H=lN(N.domain,null,A),x&&(E==="number"||k!=="auto")&&(q=Of(B,O,"category")));var G=oF(E);if(!H||H.length===0){var L,D=(L=N.domain)!==null&&L!==void 0?L:G;if(O){if(H=Of(B,O,E),E==="category"&&x){var U=pJ(H);C&&U?(V=H,H=hg(0,$)):C||(H=V3(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0?z:[].concat(ku(z),[Y])},[]))}else if(E==="category")C?H=H.filter(function(z){return z!==""&&!Qe(z)}):H=V3(D,H,w).reduce(function(z,Y){return z.indexOf(Y)>=0||Y===""||Qe(Y)?z:[].concat(ku(z),[Y])},[]);else if(E==="number"){var K=Ooe(B,a.filter(function(z){var Y,te,ae=l in z.props?z.props[l]:(Y=z.type.defaultProps)===null||Y===void 0?void 0:Y[l],ge="hide"in z.props?z.props.hide:(te=z.type.defaultProps)===null||te===void 0?void 0:te.hide;return ae===R&&(M||!ge)}),O,s,m);K&&(H=K)}x&&(E==="number"||k!=="auto")&&(q=Of(B,O,"category"))}else x?H=hg(0,$):u&&u[R]&&u[R].hasStack&&E==="number"?H=g==="expand"?[0,1]:X6(u[R].stackGroups,d,f):H=H6(B,a.filter(function(z){var Y=l in z.props?z.props[l]:z.type.defaultProps[l],te="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return Y===R&&(M||!te)}),E,m,!0);if(E==="number")H=WN(p,H,R,s,T),D&&(H=lN(D,H,A));else if(E==="category"&&D){var J=D,I=H.every(function(z){return J.indexOf(z)>=0});I&&(H=J)}}return ve(ve({},j),{},He({},R,ve(ve({},N),{},{axisType:s,domain:H,categoricalDomain:q,duplicateDomain:V,originalDomain:(b=N.domain)!==null&&b!==void 0?b:G,isCategorical:x,layout:m})))},{})},Jpe=function(t,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=Ry(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=W6(m,s),w=-1;return r.reduce(function(b,N){var E=N.type.defaultProps!==void 0?ve(ve({},N.type.defaultProps),N.props):N.props,O=E[l],A=oF("number");if(!b[O]){w++;var C;return j?C=hg(0,x):u&&u[O]&&u[O].hasStack?(C=X6(u[O].stackGroups,d,f),C=WN(p,C,O,s)):(C=lN(A,H6(g,r.filter(function(k){var T,M,R=l in k.props?k.props[l]:(T=k.type.defaultProps)===null||T===void 0?void 0:T[l],B="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return R===O&&!B}),"number",m),a.defaultProps.allowDataOverflow),C=WN(p,C,O,s)),ve(ve({},b),{},He({},O,ve(ve({axisType:s},a.defaultProps),{},{hide:!0,orientation:aa(Ype,"".concat(s,".").concat(w%2),null),domain:C,originalDomain:A,isCategorical:j,layout:m})))}return b},{})},eve=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=ia(m,s),x={};return g&&g.length?x=Qpe(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=Jpe(t,{Axis:s,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},tve=function(t){var n=Ws(t),r=Qi(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:yO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:eg(n,r)}},YI=function(t){var n=t.children,r=t.defaultShowTooltip,a=Qr(n,wu),s=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},nve=function(t){return!t||!t.length?!1:t.some(function(n){var r=ns(n&&n.type);return r&&r.indexOf("Bar")>=0})},KI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},rve=function(t,n){var r=t.props,a=t.graphicalItems,s=t.xAxisMap,l=s===void 0?{}:s,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=Qr(p,wu),j=Qr(p,al),w=Object.keys(d).reduce(function(C,k){var T=d[k],M=T.orientation;return!T.mirror&&!T.hide?ve(ve({},C),{},He({},M,C[M]+T.width)):C},{left:g.left||0,right:g.right||0}),b=Object.keys(l).reduce(function(C,k){var T=l[k],M=T.orientation;return!T.mirror&&!T.hide?ve(ve({},C),{},He({},M,aa(C,"".concat(M))+T.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ve(ve({},b),w),E=N.bottom;x&&(N.bottom+=x.props.height||wu.defaultProps.height),j&&n&&(N=Noe(N,a,r,n));var O=f-N.left-N.right,A=m-N.top-N.bottom;return ve(ve({brushBottom:E},N),{},{width:Math.max(O,0),height:Math.max(A,0)})},ave=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},tE=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,s=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,E){var O=E.graphicalItems,A=E.stackGroups,C=E.offset,k=E.updateId,T=E.dataStartIndex,M=E.dataEndIndex,R=N.barSize,B=N.layout,$=N.barGap,H=N.barCategoryGap,V=N.maxBarSize,q=KI(B),G=q.numericAxisName,L=q.cateAxisName,D=nve(O),U=[];return O.forEach(function(K,J){var I=Ry(N.data,{graphicalItems:[K],dataStartIndex:T,dataEndIndex:M}),z=K.type.defaultProps!==void 0?ve(ve({},K.type.defaultProps),K.props):K.props,Y=z.dataKey,te=z.maxBarSize,ae=z["".concat(G,"Id")],ge=z["".concat(L,"Id")],ee={},Se=d.reduce(function(Tt,Sn){var le=E["".concat(Sn.axisType,"Map")],ue=z["".concat(Sn.axisType,"Id")];le&&le[ue]||Sn.axisType==="zAxis"||pr(!1);var Ve=le[ue];return ve(ve({},Tt),{},He(He({},Sn.axisType,Ve),"".concat(Sn.axisType,"Ticks"),Qi(Ve)))},ee),re=Se[L],we=Se["".concat(L,"Ticks")],je=A&&A[ae]&&A[ae].hasStack&&$oe(K,A[ae].stackGroups),fe=ns(K.type).indexOf("Bar")>=0,Le=eg(re,we),Oe=[],We=D&&Soe({barSize:R,stackGroups:A,totalSize:ave(Se,L)});if(fe){var be,Ae,ke=Qe(te)?V:te,Qt=(be=(Ae=eg(re,we,!0))!==null&&Ae!==void 0?Ae:ke)!==null&&be!==void 0?be:0;Oe=_oe({barGap:$,barCategoryGap:H,bandSize:Qt!==Le?Qt:Le,sizeList:We[ge],maxBarSize:ke}),Qt!==Le&&(Oe=Oe.map(function(Tt){return ve(ve({},Tt),{},{position:ve(ve({},Tt.position),{},{offset:Tt.position.offset-Qt/2})})}))}var St=K&&K.type&&K.type.getComposedData;St&&U.push({props:ve(ve({},St(ve(ve({},Se),{},{displayedData:I,props:N,dataKey:Y,item:K,bandSize:Le,barPosition:Oe,offset:C,stackedData:je,layout:B,dataStartIndex:T,dataEndIndex:M}))),{},He(He(He({key:K.key||"item-".concat(J)},G,Se[G]),L,Se[L]),"animationId",k)),childIndex:EJ(K,N.children),item:K})}),U},x=function(N,E){var O=N.props,A=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!sR({props:O}))return null;var T=O.children,M=O.layout,R=O.stackOffset,B=O.data,$=O.reverseStackOrder,H=KI(M),V=H.numericAxisName,q=H.cateAxisName,G=ia(T,r),L=Roe(B,G,"".concat(V,"Id"),"".concat(q,"Id"),R,$),D=d.reduce(function(z,Y){var te="".concat(Y.axisType,"Map");return ve(ve({},z),{},He({},te,eve(O,ve(ve({},Y),{},{graphicalItems:G,stackGroups:Y.axisType===V&&L,dataStartIndex:A,dataEndIndex:C}))))},{}),U=rve(ve(ve({},D),{},{props:O,graphicalItems:G}),E?.legendBBox);Object.keys(D).forEach(function(z){D[z]=m(O,D[z],U,z.replace("Map",""),n)});var K=D["".concat(q,"Map")],J=tve(K),I=g(O,ve(ve({},D),{},{dataStartIndex:A,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:L,offset:U}));return ve(ve({formattedGraphicalItems:I,graphicalItems:G,offset:U,stackGroups:L},J),D)},j=(function(b){function N(E){var O,A,C;return Ipe(this,N),C=zpe(this,N,[E]),He(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),He(C,"accessibilityManager",new Spe),He(C,"handleLegendBBoxUpdate",function(k){if(k){var T=C.state,M=T.dataStartIndex,R=T.dataEndIndex,B=T.updateId;C.setState(ve({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:R,updateId:B},ve(ve({},C.state),{},{legendBBox:k}))))}}),He(C,"handleReceiveSyncEvent",function(k,T,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(T)}}),He(C,"handleBrushChange",function(k){var T=k.startIndex,M=k.endIndex;if(T!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var R=C.state.updateId;C.setState(function(){return ve({dataStartIndex:T,dataEndIndex:M},x({props:C.props,dataStartIndex:T,dataEndIndex:M,updateId:R},C.state))}),C.triggerSyncEvent({dataStartIndex:T,dataEndIndex:M})}}),He(C,"handleMouseEnter",function(k){var T=C.getMouseInfo(k);if(T){var M=ve(ve({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseEnter;Ke(R)&&R(M,k)}}),He(C,"triggeredAfterMouseMove",function(k){var T=C.getMouseInfo(k),M=T?ve(ve({},T),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseMove;Ke(R)&&R(M,k)}),He(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),He(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),He(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),He(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var T={isTooltipActive:!1};C.setState(T),C.triggerSyncEvent(T);var M=C.props.onMouseLeave;Ke(M)&&M(T,k)}),He(C,"handleOuterEvent",function(k){var T=OJ(k),M=aa(C.props,"".concat(T));if(T&&Ke(M)){var R,B;/.*touch.*/i.test(T)?B=C.getMouseInfo(k.changedTouches[0]):B=C.getMouseInfo(k),M((R=B)!==null&&R!==void 0?R:{},k)}}),He(C,"handleClick",function(k){var T=C.getMouseInfo(k);if(T){var M=ve(ve({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onClick;Ke(R)&&R(M,k)}}),He(C,"handleMouseDown",function(k){var T=C.props.onMouseDown;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleMouseUp",function(k){var T=C.props.onMouseUp;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),He(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),He(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),He(C,"handleDoubleClick",function(k){var T=C.props.onDoubleClick;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleContextMenu",function(k){var T=C.props.onContextMenu;if(Ke(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&YS.emit(KS,C.props.syncId,k,C.eventEmitterSymbol)}),He(C,"applySyncEvent",function(k){var T=C.props,M=T.layout,R=T.syncMethod,B=C.state.updateId,$=k.dataStartIndex,H=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ve({dataStartIndex:$,dataEndIndex:H},x({props:C.props,dataStartIndex:$,dataEndIndex:H,updateId:B},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,q=k.chartY,G=k.activeTooltipIndex,L=C.state,D=L.offset,U=L.tooltipTicks;if(!D)return;if(typeof R=="function")G=R(U,k);else if(R==="value"){G=-1;for(var K=0;K=0){var je,fe;if(V.dataKey&&!V.allowDuplicatedCategory){var Le=typeof V.dataKey=="function"?we:"payload.".concat(V.dataKey.toString());je=Av(K,Le,G),fe=J&&I&&Av(I,Le,G)}else je=K?.[q],fe=J&&I&&I[q];if(ge||ae){var Oe=k.props.activeIndex!==void 0?k.props.activeIndex:q;return[y.cloneElement(k,ve(ve(ve({},R.props),Se),{},{activeIndex:Oe})),null,null]}if(!Qe(je))return[re].concat(ku(C.renderActivePoints({item:R,activePoint:je,basePoint:fe,childIndex:q,isRange:J})))}else{var We,be=(We=C.getItemByXY(C.state.activeCoordinate))!==null&&We!==void 0?We:{graphicalItem:re},Ae=be.graphicalItem,ke=Ae.item,Qt=ke===void 0?k:ke,St=Ae.childIndex,Tt=ve(ve(ve({},R.props),Se),{},{activeIndex:St});return[y.cloneElement(Qt,Tt),null,null]}return J?[re,null,null]:[re,null]}),He(C,"renderCustomized",function(k,T,M){return y.cloneElement(k,ve(ve({key:"recharts-customized-".concat(M)},C.props),C.state))}),He(C,"renderMap",{CartesianGrid:{handler:Vp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:Vp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:Vp},YAxis:{handler:Vp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((O=E.id)!==null&&O!==void 0?O:Wu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=qz(C.triggeredAfterMouseMove,(A=E.throttleDelay)!==null&&A!==void 0?A:1e3/60),C.state={},C}return Upe(N,b),Bpe(N,[{key:"componentDidMount",value:function(){var O,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(O=this.props.margin.left)!==null&&O!==void 0?O:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var O=this.props,A=O.children,C=O.data,k=O.height,T=O.layout,M=Qr(A,ii);if(M){var R=M.props.defaultIndex;if(!(typeof R!="number"||R<0||R>this.state.tooltipTicks.length-1)){var B=this.state.tooltipTicks[R]&&this.state.tooltipTicks[R].value,$=YN(this.state,C,R,B),H=this.state.tooltipTicks[R].coordinate,V=(this.state.offset.top+k)/2,q=T==="horizontal",G=q?{x:H,y:V}:{y:H,x:V},L=this.state.formattedGraphicalItems.find(function(U){var K=U.item;return K.type.name==="Scatter"});L&&(G=ve(ve({},G),L.props.points[R].tooltipPosition),$=L.props.points[R].tooltipPayload);var D={activeTooltipIndex:R,isTooltipActive:!0,activeLabel:B,activePayload:$,activeCoordinate:G};this.setState(D),this.renderCursor(M),this.accessibilityManager.setIndex(R)}}}},{key:"getSnapshotBeforeUpdate",value:function(O,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==O.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==O.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(O){T_([Qr(O.children,ii)],[Qr(this.props.children,ii)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var O=Qr(this.props.children,ii);if(O&&typeof O.props.shared=="boolean"){var A=O.props.shared?"axis":"item";return u.indexOf(A)>=0?A:s}return s}},{key:"getMouseInfo",value:function(O){if(!this.container)return null;var A=this.container,C=A.getBoundingClientRect(),k=pre(C),T={chartX:Math.round(O.pageX-k.left),chartY:Math.round(O.pageY-k.top)},M=C.width/A.offsetWidth||1,R=this.inRange(T.chartX,T.chartY,M);if(!R)return null;var B=this.state,$=B.xAxisMap,H=B.yAxisMap,V=this.getTooltipEventType(),q=GI(this.state,this.props.data,this.props.layout,R);if(V!=="axis"&&$&&H){var G=Ws($).scale,L=Ws(H).scale,D=G&&G.invert?G.invert(T.chartX):null,U=L&&L.invert?L.invert(T.chartY):null;return ve(ve({},T),{},{xValue:D,yValue:U},q)}return q?ve(ve({},T),q):null}},{key:"inRange",value:function(O,A){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,T=O/C,M=A/C;if(k==="horizontal"||k==="vertical"){var R=this.state.offset,B=T>=R.left&&T<=R.left+R.width&&M>=R.top&&M<=R.top+R.height;return B?{x:T,y:M}:null}var $=this.state,H=$.angleAxisMap,V=$.radiusAxisMap;if(H&&V){var q=Ws(H);return K3({x:T,y:M},q)}return null}},{key:"parseEventsOfWrapper",value:function(){var O=this.props.children,A=this.getTooltipEventType(),C=Qr(O,ii),k={};C&&A==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var T=Tv(this.props,this.handleOuterEvent);return ve(ve({},T),k)}},{key:"addListener",value:function(){YS.on(KS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){YS.removeListener(KS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(O,A,C){for(var k=this.state.formattedGraphicalItems,T=0,M=k.length;T");return e}const Dc=y.forwardRef(({id:e,className:t,children:n,config:r,...a},s)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(lF.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:s,className:ce("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(lve,{id:u,config:r}),i.jsx(lre,{children:n})]})})});Dc.displayName="Chart";const lve=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(ove).map(([r,a])=>` -${a} [data-chart=${e}] { -${n.map(([s,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${s}: ${u};`:null}).join(` -`)} -} -`).join(` -`)}}):null},df=ii,$c=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:s=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=cF(),w=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,E=`${g||N?.dataKey||N?.name||"value"}`,O=KN(j,N,E),A=!g&&typeof l=="string"?j[l]?.label||l:O?.label;return u?i.jsx("div",{className:ce("font-medium",d),children:u(A,t)}):A?i.jsx("div",{className:ce("font-medium",d),children:A}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const b=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:ce("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[b?null:w,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,E)=>{const O=`${p||N.name||N.dataKey||"value"}`,A=KN(j,N,O),C=m||N.payload.fill||N.color;return i.jsx("div",{className:ce("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,E,N.payload):i.jsxs(i.Fragment,{children:[A?.icon?i.jsx(A.icon,{}):!s&&i.jsx("div",{className:ce("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":b&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:ce("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[b?w:null,i.jsx("span",{className:"text-muted-foreground",children:A?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});$c.displayName="ChartTooltip";const cve=al,uF=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},s)=>{const{config:l}=cF();return n?.length?i.jsx("div",{ref:s,className:ce("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=KN(l,u,d);return i.jsxs("div",{className:ce("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});uF.displayName="ChartLegend";function KN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const uve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),dve=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),XI=e=>{const t=dve(e);return t.charAt(0).toUpperCase()+t.slice(1)},dF=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),fve=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var hve={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const mve=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...hve,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:dF("lucide",a),...!s&&!fve(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(s)?s:[s]]));const Ee=(e,t)=>{const n=y.forwardRef(({className:r,...a},s)=>y.createElement(mve,{ref:s,iconNode:t,className:dF(`lucide-${uve(XI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=XI(e),n};const pve=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],vve=Ee("activity",pve);const gve=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],fF=Ee("arrow-left",gve);const yve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],xve=Ee("arrow-right",yve);const bve=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ZI=Ee("ban",bve);const wve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],jve=Ee("book-open",wve);const Sve=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],_ve=Ee("bot",Sve);const Nve=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],hF=Ee("boxes",Nve);const Cve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],QI=Ee("calendar",Cve);const Ove=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],Eve=Ee("chart-column",Ove);const Ave=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ol=Ee("check",Ave);const Tve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],vh=Ee("chevron-down",Tve);const kve=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],nE=Ee("chevron-left",kve);const Mve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],rE=Ee("chevron-right",Mve);const Pve=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],XN=Ee("chevron-up",Pve);const Rve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],Dve=Ee("chevrons-up-down",Rve);const $ve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],gl=Ee("circle-alert",$ve);const Ive=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Pr=Ee("circle-check",Ive);const Lve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Bve=Ee("circle-question-mark",Lve);const zve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],mF=Ee("circle-user",zve);const qve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],ZN=Ee("circle-x",qve);const Fve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Uve=Ee("circle",Fve);const Hve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ll=Ee("clock",Hve);const Wve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],QN=Ee("copy",Wve);const Vve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Gve=Ee("database",Vve);const Yve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Kve=Ee("dollar-sign",Yve);const Xve=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],JN=Ee("download",Xve);const Zve=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Mf=Ee("external-link",Zve);const Qve=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],eC=Ee("eye-off",Qve);const Jve=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Va=Ee("eye",Jve);const ege=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],Og=Ee("file-search",ege);const tge=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],aE=Ee("file-text",tge);const nge=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],tC=Ee("funnel",nge);const rge=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Eg=Ee("hash",rge);const age=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],Ag=Ee("house",age);const ige=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Mu=Ee("info",ige);const sge=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],oge=Ee("key",sge);const lge=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],gh=Ee("loader-circle",lge);const cge=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],JI=Ee("lock",cge);const uge=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],eL=Ee("log-out",uge);const dge=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],fge=Ee("menu",dge);const hge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Gh=Ee("message-square",hge);const mge=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],nC=Ee("moon",mge);const pge=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Tg=Ee("package",pge);const vge=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],pF=Ee("palette",vge);const gge=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],yge=Ee("pause",gge);const xge=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Pu=Ee("pencil",xge);const bge=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],wge=Ee("play",bge);const jge=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ir=Ee("plus",jge);const Sge=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],iE=Ee("power",Sge);const _ge=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],is=Ee("refresh-cw",_ge);const Nge=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Cge=Ee("rotate-ccw",Nge);const Oge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Ege=Ee("rotate-cw",Oge);const Age=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],sE=Ee("save",Age);const Tge=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Lr=Ee("search",Tge);const kge=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],vF=Ee("server",kge);const Mge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Pge=Ee("settings-2",Mge);const Rge=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Fa=Ee("settings",Rge);const Dge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],$ge=Ee("shield",Dge);const Ige=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Lge=Ee("skip-forward",Ige);const Bge=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],zge=Ee("sliders-vertical",Bge);const qge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],oE=Ee("smile",qge);const Fge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Uge=Ee("sparkles",Fge);const Hge=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Ru=Ee("square-pen",Hge);const Wge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],tL=Ee("star",Wge);const Vge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],rC=Ee("sun",Vge);const Gge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Yge=Ee("terminal",Gge);const Kge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],It=Ee("trash-2",Kge);const Xge=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],Zge=Ee("trending-up",Xge);const Qge=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Kc=Ee("triangle-alert",Qge);const Jge=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],gF=Ee("user",Jge);const eye=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],tye=Ee("users",eye);const nye=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Yh=Ee("x",nye);const rye=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],yh=Ee("zap",rye),nL=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,rL=Je,Zu=(e,t)=>n=>{var r;if(t?.variants==null)return rL(e,n?.class,n?.className);const{variants:a,defaultVariants:s}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=s?.[f];if(m===null)return null;const g=nL(m)||nL(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[w,b]=j;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...f,p,g]:f},[]);return rL(e,l,d,n?.class,n?.className)},xh=Zu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),oe=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const l=r?hQ:"button";return i.jsx(l,{className:ce(xh({variant:t,size:n,className:e})),ref:s,...a})});oe.displayName="Button";function aye(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(24),[d,f]=y.useState(!0),[m,p]=y.useState(null),[g,x]=y.useState(!0),j=y.useCallback(async()=>{try{x(!0);const R=await vn.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");p({hitokoto:R.data.hitokoto,from:R.data.from||R.data.from_who||"未知"})}catch(R){console.error("获取一言失败:",R),p({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{x(!1)}},[]),w=y.useCallback(async()=>{try{const R=localStorage.getItem("access-token"),B=await vn.get(`/api/webui/statistics/dashboard?hours=${l}`,{headers:{Authorization:`Bearer ${R}`}});t(B.data),r(!1),s(100)}catch(R){console.error("Failed to fetch dashboard data:",R),r(!1),s(100)}},[l]);if(y.useEffect(()=>{if(!n)return;s(0);const R=setTimeout(()=>s(15),200),B=setTimeout(()=>s(30),800),$=setTimeout(()=>s(45),2e3),H=setTimeout(()=>s(60),4e3),V=setTimeout(()=>s(75),6500),q=setTimeout(()=>s(85),9e3),G=setTimeout(()=>s(92),11e3);return()=>{clearTimeout(R),clearTimeout(B),clearTimeout($),clearTimeout(H),clearTimeout(V),clearTimeout(q),clearTimeout(G)}},[n]),y.useEffect(()=>{w(),j()},[w,j]),y.useEffect(()=>{if(!d)return;const R=setInterval(()=>{w()},3e4);return()=>clearInterval(R)},[d,w]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[i.jsx(is,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx($h,{value:a,className:"h-2"}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:[a,"%"]})]})]})});const{summary:b,model_stats:N,hourly_data:E,daily_data:O,recent_activity:A}=e,C=R=>{const B=Math.floor(R/3600),$=Math.floor(R%3600/60);return`${B}小时${$}分钟`},k=R=>new Date(R).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),T=N.slice(0,6).map(R=>({name:R.model_name,value:R.request_count,fill:`hsl(var(--chart-${N.indexOf(R)%5+1}))`})),M={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(dl,{value:l.toString(),onValueChange:R=>u(Number(R)),children:i.jsxs(eo,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Rt,{value:"24",children:"24小时"}),i.jsx(Rt,{value:"168",children:"7天"}),i.jsx(Rt,{value:"720",children:"30天"})]})}),i.jsxs(oe,{variant:d?"default":"outline",size:"sm",onClick:()=>f(!d),className:"gap-2",children:[i.jsx(is,{className:`h-4 w-4 ${d?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:w,children:i.jsx(is,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(vve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",l<48?l+"小时":Math.floor(l/24)+"天"]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"总花费"}),i.jsx(Kve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",b.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.cost_per_hour>0?`¥${b.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(Gve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(b.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.tokens_per_hour>0?`${(b.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(yh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[b.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(ll,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(Ct,{children:i.jsx("div",{className:"text-xl font-bold",children:C(b.online_time)})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(Gh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",b.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(Zge,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages>0?`¥${(b.total_cost/b.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(dl,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Rt,{value:"trends",children:"趋势"}),i.jsx(Rt,{value:"models",children:"模型"}),i.jsx(Rt,{value:"activity",children:"活动"}),i.jsx(Rt,{value:"daily",children:"日统计"})]}),i.jsxs(sn,{value:"trends",className:"space-y-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"请求趋势"}),i.jsxs(Wn,{children:["最近",l,"小时的请求量变化"]})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(ive,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(Vh,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"花费趋势"}),i.jsx(Wn,{children:"API调用成本变化"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(ZS,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(di,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"Token消耗"}),i.jsx(Wn,{children:"Token使用量变化"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(ZS,{data:E,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>k(R)})}),i.jsx(di,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(sn,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"模型请求分布"}),i.jsx(Wn,{children:"各模型使用占比"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:Object.fromEntries(N.slice(0,6).map((R,B)=>[R.model_name,{label:R.model_name,color:`hsl(var(--chart-${B%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(sve,{children:[i.jsx(df,{content:i.jsx($c,{})}),i.jsx(ps,{data:T,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percent:B})=>`${R} ${B?(B*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:T.map((R,B)=>i.jsx(uy,{fill:R.fill},`cell-${B}`))})]})})})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"模型详细统计"}),i.jsx(Wn,{children:"请求数、花费和性能"})]}),i.jsx(Ct,{children:i.jsx(Wt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:N.map((R,B)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:R.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${B%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:R.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",R.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(R.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[R.avg_response_time.toFixed(2),"s"]})]})]})]},B))})})})]})]})}),i.jsx(sn,{value:"activity",children:i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"最近活动"}),i.jsx(Wn,{children:"最新的API调用记录"})]}),i.jsx(Ct,{children:i.jsx(Wt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((R,B)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:R.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:R.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:k(R.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:R.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",R.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[R.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${R.status==="success"?"text-green-600":"text-red-600"}`,children:R.status})]})]})]},B))})})})]})}),i.jsx(sn,{value:"daily",children:i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"每日统计"}),i.jsx(Wn,{children:"最近7天的数据汇总"})]}),i.jsx(Ct,{children:i.jsx(Dc,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(ZS,{data:O,children:[i.jsx(gf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Ys,{dataKey:"timestamp",tickFormatter:R=>{const B=new Date(R);return`${B.getMonth()+1}/${B.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Ki,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(df,{content:i.jsx($c,{labelFormatter:R=>new Date(R).toLocaleDateString("zh-CN")})}),i.jsx(cve,{content:i.jsx(uF,{})}),i.jsx(di,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(di,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(Xe,{className:"border-2 border-primary/20",children:[i.jsx(pt,{className:"pb-3",children:i.jsx(vt,{className:"text-lg",children:"每日一言"})}),i.jsx(Ct,{children:g?i.jsxs("div",{className:"space-y-2",children:[i.jsx(KM,{className:"h-6 w-3/4"}),i.jsx(KM,{className:"h-4 w-1/4"})]}):m?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',m.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",m.from]})]}):null})]})]})})}const iye={theme:"system",setTheme:()=>null},yF=y.createContext(iye),lE=()=>{const e=y.useContext(yF);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},sye=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,s=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(s,innerHeight-s));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},xF=y.createContext(void 0),bF=()=>{const e=y.useContext(xF);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function Dy(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function $y(e){const[t,n]=y.useState(void 0);return Yn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let l,u;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Iy="Switch",[oye]=gr(Iy),[lye,cye]=oye(Iy),wF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=Ue(t,O=>x(O)),w=y.useRef(!1),b=g?m||!!g.closest("form"):!0,[N,E]=Ea({prop:a,defaultProp:s??!1,onChange:f,caller:Iy});return i.jsxs(lye,{scope:n,checked:N,disabled:u,children:[i.jsx($e.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":NF(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:_e(e.onClick,O=>{E(A=>!A),b&&(w.current=O.isPropagationStopped(),w.current||O.stopPropagation())})}),b&&i.jsx(_F,{control:g,bubbles:!w.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});wF.displayName=Iy;var jF="SwitchThumb",SF=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=cye(jF,n);return i.jsx($e.span,{"data-state":NF(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});SF.displayName=jF;var uye="SwitchBubbleInput",_F=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const l=y.useRef(null),u=Ue(l,s),d=Dy(n),f=$y(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});_F.displayName=uye;function NF(e){return e?"checked":"unchecked"}var CF=wF,dye=SF;const lt=y.forwardRef(({className:e,...t},n)=>i.jsx(CF,{className:ce("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(dye,{className:ce("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));lt.displayName=CF.displayName;var fye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],hye=fye.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),mye="Label",OF=y.forwardRef((e,t)=>i.jsx(hye.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));OF.displayName=mye;var EF=OF;const pye=Zu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Q=y.forwardRef(({className:e,...t},n)=>i.jsx(EF,{ref:n,className:ce(pye(),e),...t}));Q.displayName=EF.displayName;const Ne=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:ce("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ne.displayName="Input";const vye=1,gye=1e6;let QS=0;function yye(){return QS=(QS+1)%Number.MAX_SAFE_INTEGER,QS.toString()}const JS=new Map,aL=e=>{if(JS.has(e))return;const t=setTimeout(()=>{JS.delete(e),Pf({type:"REMOVE_TOAST",toastId:e})},gye);JS.set(e,t)},xye=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,vye)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?aL(n):e.toasts.forEach(r=>{aL(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},uv=[];let dv={toasts:[]};function Pf(e){dv=xye(dv,e),uv.forEach(t=>{t(dv)})}function bye({...e}){const t=yye(),n=a=>Pf({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Pf({type:"DISMISS_TOAST",toastId:t});return Pf({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function yr(){const[e,t]=y.useState(dv);return y.useEffect(()=>(uv.push(t),()=>{const n=uv.indexOf(t);n>-1&&uv.splice(n,1)}),[e]),{...e,toast:bye,dismiss:n=>Pf({type:"DISMISS_TOAST",toastId:n})}}const wye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function jye(e){const t=wye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const cE="0.11.5 Beta",uE="MaiBot Dashboard",Sye=`${uE} v${cE}`,_ye=(e="v")=>`${e}${cE}`;function Nye(e,t=globalThis?.document){const n=ln(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Cye="DismissableLayer",aC="dismissableLayer.update",Oye="dismissableLayer.pointerDownOutside",Eye="dismissableLayer.focusOutside",iL,AF=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Al=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(AF),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=Ue(t,T=>p(T)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=w.indexOf(b),E=m?w.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,A=E>=N,C=Tye(T=>{const M=T.target,R=[...f.branches].some(B=>B.contains(M));!A||R||(a?.(T),l?.(T),T.defaultPrevented||u?.())},g),k=kye(T=>{const M=T.target;[...f.branches].some(B=>B.contains(M))||(s?.(T),l?.(T),T.defaultPrevented||u?.())},g);return Nye(T=>{E===f.layers.size-1&&(r?.(T),!T.defaultPrevented&&u&&(T.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(iL=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),sL(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=iL)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),sL())},[m,f]),y.useEffect(()=>{const T=()=>x({});return document.addEventListener(aC,T),()=>document.removeEventListener(aC,T)},[]),i.jsx($e.div,{...d,ref:j,style:{pointerEvents:O?A?"auto":"none":void 0,...e.style},onFocusCapture:_e(e.onFocusCapture,k.onFocusCapture),onBlurCapture:_e(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:_e(e.onPointerDownCapture,C.onPointerDownCapture)})});Al.displayName=Cye;var Aye="DismissableLayerBranch",TF=y.forwardRef((e,t)=>{const n=y.useContext(AF),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),i.jsx($e.div,{...e,ref:a})});TF.displayName=Aye;function Tye(e,t=globalThis?.document){const n=ln(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let d=function(){kF(Oye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function kye(e,t=globalThis?.document){const n=ln(e),r=y.useRef(!1);return y.useEffect(()=>{const a=s=>{s.target&&!r.current&&kF(Eye,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function sL(){const e=new CustomEvent(aC);document.dispatchEvent(e)}function kF(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?HC(a,s):a.dispatchEvent(s)}var Mye=Al,Pye=TF,e_="focusScope.autoFocusOnMount",t_="focusScope.autoFocusOnUnmount",oL={bubbles:!1,cancelable:!0},Rye="FocusScope",Kh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...l}=e,[u,d]=y.useState(null),f=ln(a),m=ln(s),p=y.useRef(null),g=Ue(t,w=>d(w)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let w=function(O){if(x.paused||!u)return;const A=O.target;u.contains(A)?p.current=A:Us(p.current,{select:!0})},b=function(O){if(x.paused||!u)return;const A=O.relatedTarget;A!==null&&(u.contains(A)||Us(p.current,{select:!0}))},N=function(O){if(document.activeElement===document.body)for(const C of O)C.removedNodes.length>0&&Us(u)};document.addEventListener("focusin",w),document.addEventListener("focusout",b);const E=new MutationObserver(N);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",b),E.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){cL.add(x);const w=document.activeElement;if(!u.contains(w)){const N=new CustomEvent(e_,oL);u.addEventListener(e_,f),u.dispatchEvent(N),N.defaultPrevented||(Dye(zye(MF(u)),{select:!0}),document.activeElement===w&&Us(u))}return()=>{u.removeEventListener(e_,f),setTimeout(()=>{const N=new CustomEvent(t_,oL);u.addEventListener(t_,m),u.dispatchEvent(N),N.defaultPrevented||Us(w??document.body,{select:!0}),u.removeEventListener(t_,m),cL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(w=>{if(!n&&!r||x.paused)return;const b=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,N=document.activeElement;if(b&&N){const E=w.currentTarget,[O,A]=$ye(E);O&&A?!w.shiftKey&&N===A?(w.preventDefault(),n&&Us(O,{select:!0})):w.shiftKey&&N===O&&(w.preventDefault(),n&&Us(A,{select:!0})):N===E&&w.preventDefault()}},[n,r,x.paused]);return i.jsx($e.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Kh.displayName=Rye;function Dye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Us(r,{select:t}),document.activeElement!==n)return}function $ye(e){const t=MF(e),n=lL(t,e),r=lL(t.reverse(),e);return[n,r]}function MF(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function lL(e,t){for(const n of e)if(!Iye(n,{upTo:t}))return n}function Iye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Lye(e){return e instanceof HTMLInputElement&&"select"in e}function Us(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Lye(e)&&t&&e.select()}}var cL=Bye();function Bye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=uL(e,t),e.unshift(t)},remove(t){e=uL(e,t),e[0]?.resume()}}}function uL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function zye(e){return e.filter(t=>t.tagName!=="A")}var qye="Portal",Tl=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,s]=y.useState(!1);Yn(()=>s(!0),[]);const l=n||a&&globalThis?.document?.body;return l?NY.createPortal(i.jsx($e.div,{...r,ref:t}),l):null});Tl.displayName=qye;var n_=0;function Ly(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??dL()),document.body.insertAdjacentElement("beforeend",e[1]??dL()),n_++,()=>{n_===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),n_--}},[])}function dL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var si=function(){return si=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return axe;var t=ixe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},oxe=$F(),Xc="data-scroll-locked",lxe=function(e,t,n,r){var a=e.left,s=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` - .`.concat(Uye,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(u,"px ").concat(r,`; - } - body[`).concat(Xc,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(a,`px; - padding-top: `).concat(s,`px; - padding-right: `).concat(l,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(u,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(fv,` { - right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(hv,` { - margin-right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(fv," .").concat(fv,` { - right: 0 `).concat(r,`; - } - - .`).concat(hv," .").concat(hv,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(Xc,`] { - `).concat(Hye,": ").concat(u,`px; - } -`)},hL=function(){var e=parseInt(document.body.getAttribute(Xc)||"0",10);return isFinite(e)?e:0},cxe=function(){y.useEffect(function(){return document.body.setAttribute(Xc,(hL()+1).toString()),function(){var e=hL()-1;e<=0?document.body.removeAttribute(Xc):document.body.setAttribute(Xc,e.toString())}},[])},uxe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;cxe();var s=y.useMemo(function(){return sxe(a)},[a]);return y.createElement(oxe,{styles:lxe(s,!t,a,n?"":"!important")})},iC=!1;if(typeof window<"u")try{var Gp=Object.defineProperty({},"passive",{get:function(){return iC=!0,!0}});window.addEventListener("test",Gp,Gp),window.removeEventListener("test",Gp,Gp)}catch{iC=!1}var Ac=iC?{passive:!1}:!1,dxe=function(e){return e.tagName==="TEXTAREA"},IF=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!dxe(e)&&n[t]==="visible")},fxe=function(e){return IF(e,"overflowY")},hxe=function(e){return IF(e,"overflowX")},mL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=LF(e,r);if(a){var s=BF(e,r),l=s[1],u=s[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},mxe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},pxe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},LF=function(e,t){return e==="v"?fxe(t):hxe(t)},BF=function(e,t){return e==="v"?mxe(t):pxe(t)},vxe=function(e,t){return e==="h"&&t==="rtl"?-1:1},gxe=function(e,t,n,r,a){var s=vxe(e,window.getComputedStyle(t).direction),l=s*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=BF(e,u),j=x[0],w=x[1],b=x[2],N=w-b-s*j;(j||N)&&LF(e,u)&&(p+=N,g+=j);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Yp=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},pL=function(e){return[e.deltaX,e.deltaY]},vL=function(e){return e&&"current"in e?e.current:e},yxe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},xxe=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},bxe=0,Tc=[];function wxe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(bxe++)[0],s=y.useState($F)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var w=Fye([e.lockRef.current],(e.shards||[]).map(vL),!0).filter(Boolean);return w.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(w,b){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var N=Yp(w),E=n.current,O="deltaX"in w?w.deltaX:E[0]-N[0],A="deltaY"in w?w.deltaY:E[1]-N[1],C,k=w.target,T=Math.abs(O)>Math.abs(A)?"h":"v";if("touches"in w&&T==="h"&&k.type==="range")return!1;var M=mL(T,k);if(!M)return!0;if(M?C=T:(C=T==="v"?"h":"v",M=mL(T,k)),!M)return!1;if(!r.current&&"changedTouches"in w&&(O||A)&&(r.current=C),!C)return!0;var R=r.current||C;return gxe(R,b,w,R==="h"?O:A)},[]),d=y.useCallback(function(w){var b=w;if(!(!Tc.length||Tc[Tc.length-1]!==s)){var N="deltaY"in b?pL(b):Yp(b),E=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&yxe(C.delta,N)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var O=(l.current.shards||[]).map(vL).filter(Boolean).filter(function(C){return C.contains(b.target)}),A=O.length>0?u(b,O[0]):!l.current.noIsolation;A&&b.cancelable&&b.preventDefault()}}},[]),f=y.useCallback(function(w,b,N,E){var O={name:w,delta:b,target:N,should:E,shadowParent:jxe(N)};t.current.push(O),setTimeout(function(){t.current=t.current.filter(function(A){return A!==O})},1)},[]),m=y.useCallback(function(w){n.current=Yp(w),r.current=void 0},[]),p=y.useCallback(function(w){f(w.type,pL(w),w.target,u(w,e.lockRef.current))},[]),g=y.useCallback(function(w){f(w.type,Yp(w),w.target,u(w,e.lockRef.current))},[]);y.useEffect(function(){return Tc.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Ac),document.addEventListener("touchmove",d,Ac),document.addEventListener("touchstart",m,Ac),function(){Tc=Tc.filter(function(w){return w!==s}),document.removeEventListener("wheel",d,Ac),document.removeEventListener("touchmove",d,Ac),document.removeEventListener("touchstart",m,Ac)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(s,{styles:xxe(a)}):null,x?y.createElement(uxe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function jxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Sxe=Zye(DF,wxe);var Xh=y.forwardRef(function(e,t){return y.createElement(By,si({},e,{ref:t,sideCar:Sxe}))});Xh.classNames=By.classNames;var _xe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},kc=new WeakMap,Kp=new WeakMap,Xp={},s_=0,zF=function(e){return e&&(e.host||zF(e.parentNode))},Nxe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=zF(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Cxe=function(e,t,n,r){var a=Nxe(t,Array.isArray(e)?e:[e]);Xp[n]||(Xp[n]=new WeakMap);var s=Xp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",w=(kc.get(g)||0)+1,b=(s.get(g)||0)+1;kc.set(g,w),s.set(g,b),l.push(g),w===1&&j&&Kp.set(g,!0),b===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),s_++,function(){l.forEach(function(p){var g=kc.get(p)-1,x=s.get(p)-1;kc.set(p,g),s.set(p,x),g||(Kp.has(p)||p.removeAttribute(r),Kp.delete(p)),x||p.removeAttribute(n)}),s_--,s_||(kc=new WeakMap,kc=new WeakMap,Kp=new WeakMap,Xp={})}},zy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=_xe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),Cxe(r,a,n,"aria-hidden")):function(){return null}};function Oxe(e){const t=Exe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Txe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function Exe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=Mxe(a),u=kxe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Axe=Symbol("radix.slottable");function Txe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Axe}function kxe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function Mxe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var qy="Dialog",[qF,FF]=gr(qy),[Pxe,Za]=qF(qy),UF=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:qy});return i.jsx(Pxe,{scope:t,triggerRef:u,contentRef:d,contentId:Gn(),titleId:Gn(),descriptionId:Gn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};UF.displayName=qy;var HF="DialogTrigger",WF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(HF,n),s=Ue(t,a.triggerRef);return i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":hE(a.open),...r,ref:s,onClick:_e(e.onClick,a.onOpenToggle)})});WF.displayName=HF;var dE="DialogPortal",[Rxe,VF]=qF(dE,{forceMount:void 0}),GF=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=Za(dE,t);return i.jsx(Rxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:l})}))})};GF.displayName=dE;var kg="DialogOverlay",YF=y.forwardRef((e,t)=>{const n=VF(kg,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Za(kg,e.__scopeDialog);return s.modal?i.jsx(Bn,{present:r||s.open,children:i.jsx($xe,{...a,ref:t})}):null});YF.displayName=kg;var Dxe=Oxe("DialogOverlay.RemoveScroll"),$xe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(kg,n);return i.jsx(Xh,{as:Dxe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx($e.div,{"data-state":hE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),yl="DialogContent",KF=y.forwardRef((e,t)=>{const n=VF(yl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Za(yl,e.__scopeDialog);return i.jsx(Bn,{present:r||s.open,children:s.modal?i.jsx(Ixe,{...a,ref:t}):i.jsx(Lxe,{...a,ref:t})})});KF.displayName=yl;var Ixe=y.forwardRef((e,t)=>{const n=Za(yl,e.__scopeDialog),r=y.useRef(null),a=Ue(t,n.contentRef,r);return y.useEffect(()=>{const s=r.current;if(s)return zy(s)},[]),i.jsx(XF,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:_e(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:_e(e.onPointerDownOutside,s=>{const l=s.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&s.preventDefault()}),onFocusOutside:_e(e.onFocusOutside,s=>s.preventDefault())})}),Lxe=y.forwardRef((e,t)=>{const n=Za(yl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(XF,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),XF=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...l}=e,u=Za(yl,n),d=y.useRef(null),f=Ue(t,d);return Ly(),i.jsxs(i.Fragment,{children:[i.jsx(Kh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Al,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":hE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(zxe,{titleId:u.titleId}),i.jsx(Fxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),fE="DialogTitle",ZF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(fE,n);return i.jsx($e.h2,{id:a.titleId,...r,ref:t})});ZF.displayName=fE;var QF="DialogDescription",JF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(QF,n);return i.jsx($e.p,{id:a.descriptionId,...r,ref:t})});JF.displayName=QF;var e8="DialogClose",t8=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Za(e8,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,()=>a.onOpenChange(!1))})});t8.displayName=e8;function hE(e){return e?"open":"closed"}var n8="DialogTitleWarning",[Bxe,r8]=mZ(n8,{contentName:yl,titleName:fE,docsSlug:"dialog"}),zxe=({titleId:e})=>{const t=r8(n8),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},qxe="DialogDescriptionWarning",Fxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r8(qxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},mE=UF,a8=WF,pE=GF,Fy=YF,Uy=KF,vE=ZF,gE=JF,yE=t8;const sr=mE,i8=a8,Uxe=pE,s8=y.forwardRef(({className:e,...t},n)=>i.jsx(Fy,{ref:n,className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));s8.displayName=Fy.displayName;const Kn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Uxe,{children:[i.jsx(s8,{}),i.jsxs(Uy,{ref:r,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(yE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Yh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Kn.displayName=Uy.displayName;const Xn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Xn.displayName="DialogHeader";const Br=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Br.displayName="DialogFooter";const Zn=y.forwardRef(({className:e,...t},n)=>i.jsx(vE,{ref:n,className:ce("text-lg font-semibold leading-none tracking-tight",e),...t}));Zn.displayName=vE.displayName;const vr=y.forwardRef(({className:e,...t},n)=>i.jsx(gE,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));vr.displayName=gE.displayName;var Hxe=Symbol("radix.slottable");function Wxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Hxe,t}var o8="AlertDialog",[Vxe]=gr(o8,[FF]),vs=FF(),l8=e=>{const{__scopeAlertDialog:t,...n}=e,r=vs(t);return i.jsx(mE,{...r,...n,modal:!0})};l8.displayName=o8;var Gxe="AlertDialogTrigger",c8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(a8,{...a,...r,ref:t})});c8.displayName=Gxe;var Yxe="AlertDialogPortal",u8=e=>{const{__scopeAlertDialog:t,...n}=e,r=vs(t);return i.jsx(pE,{...r,...n})};u8.displayName=Yxe;var Kxe="AlertDialogOverlay",d8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(Fy,{...a,...r,ref:t})});d8.displayName=Kxe;var Zc="AlertDialogContent",[Xxe,Zxe]=Vxe(Zc),Qxe=Wxe("AlertDialogContent"),f8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,s=vs(n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return i.jsx(Bxe,{contentName:Zc,titleName:h8,docsSlug:"alert-dialog",children:i.jsx(Xxe,{scope:n,cancelRef:d,children:i.jsxs(Uy,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:_e(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(Qxe,{children:r}),i.jsx(ebe,{contentRef:l})]})})})});f8.displayName=Zc;var h8="AlertDialogTitle",m8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(vE,{...a,...r,ref:t})});m8.displayName=h8;var p8="AlertDialogDescription",v8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(gE,{...a,...r,ref:t})});v8.displayName=p8;var Jxe="AlertDialogAction",g8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=vs(n);return i.jsx(yE,{...a,...r,ref:t})});g8.displayName=Jxe;var y8="AlertDialogCancel",x8=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=Zxe(y8,n),s=vs(n),l=Ue(t,a);return i.jsx(yE,{...s,...r,ref:l})});x8.displayName=y8;var ebe=({contentRef:e})=>{const t=`\`${Zc}\` requires a description for the component to be accessible for screen reader users. - -You can add a description to the \`${Zc}\` by passing a \`${p8}\` component as a child, which also benefits sighted users by adding visible context to the dialog. - -Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Zc}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. - -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},tbe=l8,nbe=c8,rbe=u8,b8=d8,w8=f8,j8=g8,S8=x8,_8=m8,N8=v8;const bn=tbe,mr=nbe,abe=rbe,C8=y.forwardRef(({className:e,...t},n)=>i.jsx(b8,{className:ce("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));C8.displayName=b8.displayName;const cn=y.forwardRef(({className:e,...t},n)=>i.jsxs(abe,{children:[i.jsx(C8,{}),i.jsx(w8,{ref:n,className:ce("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));cn.displayName=w8.displayName;const un=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col space-y-2 text-center sm:text-left",e),...t});un.displayName="AlertDialogHeader";const dn=({className:e,...t})=>i.jsx("div",{className:ce("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});dn.displayName="AlertDialogFooter";const fn=y.forwardRef(({className:e,...t},n)=>i.jsx(_8,{ref:n,className:ce("text-lg font-semibold",e),...t}));fn.displayName=_8.displayName;const hn=y.forwardRef(({className:e,...t},n)=>i.jsx(N8,{ref:n,className:ce("text-sm text-muted-foreground",e),...t}));hn.displayName=N8.displayName;const mn=y.forwardRef(({className:e,...t},n)=>i.jsx(j8,{ref:n,className:ce(xh(),e),...t}));mn.displayName=j8.displayName;const pn=y.forwardRef(({className:e,...t},n)=>i.jsx(S8,{ref:n,className:ce(xh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));pn.displayName=S8.displayName;function ibe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(dl,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Rt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(pF,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Rt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx($ge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Rt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Fa,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Rt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Mu,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Wt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(sn,{value:"appearance",className:"mt-0",children:i.jsx(sbe,{})}),i.jsx(sn,{value:"security",className:"mt-0",children:i.jsx(obe,{})}),i.jsx(sn,{value:"other",className:"mt-0",children:i.jsx(lbe,{})}),i.jsx(sn,{value:"about",className:"mt-0",children:i.jsx(cbe,{})})]})]})]})}function gL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=s=>{s=s.replace("#","");const l=parseInt(s.substring(0,2),16)/255,u=parseInt(s.substring(2,4),16)/255,d=parseInt(s.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";gL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),gL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(o_,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(o_,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(o_,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Sa,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(Sa,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(Sa,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(Sa,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(Sa,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(Sa,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Sa,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(Sa,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(Sa,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(Sa,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(Sa,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(Sa,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ne,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(Q,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(lt,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(Q,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(lt,{id:"waves-background",checked:a,onCheckedChange:s})]})})]})]})]})}function obe(){const e=la(),[t,n]=y.useState(""),[r,a]=y.useState(""),[s,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(""),[O,A]=y.useState(!1),{toast:C}=yr(),k=y.useMemo(()=>jye(r),[r]),T=()=>localStorage.getItem("access-token")||"",M=async q=>{try{await navigator.clipboard.writeText(q),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},R=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const q=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${q}`,variant:"destructive"});return}m(!0);try{const q=T(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`},body:JSON.stringify({new_token:r.trim()})}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:L.message||"无法更新 Token",variant:"destructive"})}catch(q){console.error("更新 Token 错误:",q),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},B=async()=>{g(!0);try{const q=T(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${q}`}}),L=await G.json();G.ok&&L.success?(localStorage.setItem("access-token",L.token),n(L.token),E(L.token),b(!0),A(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:L.message||"无法生成新 Token",variant:"destructive"})}catch(q){console.error("生成 Token 错误:",q),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},$=async()=>{try{await navigator.clipboard.writeText(N),A(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},H=()=>{b(!1),setTimeout(()=>{E(""),A(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=q=>{q||H()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(sr,{open:w,onOpenChange:V,children:i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(Kc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(vr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(Q,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Kc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs(Br,{className:"gap-2 sm:gap-0",children:[i.jsx(oe,{variant:"outline",onClick:$,className:"gap-2",children:O?i.jsxs(i.Fragment,{children:[i.jsx(ol,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(QN,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(oe,{onClick:H,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ne,{id:"current-token",type:s?"text":"password",value:t||T(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(T()),l(!s)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:s?"隐藏":"显示",children:s?i.jsx(eC,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(oe,{variant:"outline",size:"icon",onClick:()=>M(T()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(ol,{className:"h-4 w-4 text-green-500"}):i.jsx(QN,{className:"h-4 w-4"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(is,{className:ce("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重新生成 Token"}),i.jsx(hn,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:B,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ne,{id:"new-token",type:u?"text":"password",value:r,onChange:q=>a(q.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(eC,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Va,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(q=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[q.passed?i.jsx(Pr,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(ZN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:ce(q.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:q.label})]},q.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(ol,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(oe,{onClick:R,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function lbe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const s=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${s}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(s){console.error("重置配置状态错误:",s),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(Cge,{className:ce("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重新配置"}),i.jsx(hn,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function cbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",uE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",cE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Wt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(an,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(an,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(an,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(an,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(an,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(an,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(an,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(an,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(an,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(an,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(an,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(an,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(an,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(an,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(an,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(an,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(an,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function an({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function o_({value:e,current:t,onChange:n,label:r,description:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function Sa({value:e,current:t,onChange:n,label:r,colorClass:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ce("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:ce("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class ube{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const s=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),s),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),s),l)}}function dbe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new ube(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,s=e.current;if(!a||!s)return;const l=r.current,u=()=>{const w=a.getBoundingClientRect();l.bounding=w,s.style.width=`${w.width}px`,s.style.height=`${w.height}px`},d=()=>{if(!l.bounding)return;const{width:w,height:b}=l.bounding;l.lines=[],l.paths.forEach(R=>R.remove()),l.paths=[];const N=10,E=32,O=w+200,A=b+30,C=Math.ceil(O/N),k=Math.ceil(A/E),T=(w-N*C)/2,M=(b-E*k)/2;for(let R=0;R<=C;R++){const B=[];for(let H=0;H<=k;H++){const V={x:T+N*R,y:M+E*H,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};B.push(V)}const $=document.createElementNS("http://www.w3.org/2000/svg","path");s.appendChild($),l.paths.push($),l.lines.push(B)}},f=w=>{const{lines:b,mouse:N,noise:E}=l;b.forEach(O=>{O.forEach(A=>{const C=E.perlin2((A.x+w*.0125)*.002,(A.y+w*.005)*.0015)*12;A.wave.x=Math.cos(C)*32,A.wave.y=Math.sin(C)*16;const k=A.x-N.sx,T=A.y-N.sy,M=Math.hypot(k,T),R=Math.max(175,N.vs);if(M{const N={x:w.x+w.wave.x+(b?w.cursor.x:0),y:w.y+w.wave.y+(b?w.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:w,paths:b}=l;w.forEach((N,E)=>{let O=m(N[0],!1),A=`M ${O.x} ${O.y}`;N.forEach((C,k)=>{const T=k===N.length-1;O=m(C,!T),A+=`L ${O.x} ${O.y}`}),b[E].setAttribute("d",A)})},g=w=>{const{mouse:b}=l;b.sx+=(b.x-b.sx)*.1,b.sy+=(b.y-b.sy)*.1;const N=b.x-b.lx,E=b.y-b.ly,O=Math.hypot(N,E);b.v=O,b.vs+=(O-b.vs)*.1,b.vs=Math.min(100,b.vs),b.lx=b.x,b.ly=b.y,b.a=Math.atan2(E,N),a&&(a.style.setProperty("--x",`${b.sx}px`),a.style.setProperty("--y",`${b.sy}px`)),f(w),p(),n.current=requestAnimationFrame(g)},x=w=>{if(!l.bounding)return;const{mouse:b}=l;b.x=w.pageX-l.bounding.left,b.y=w.pageY-l.bounding.top+window.scrollY,b.set||(b.sx=b.x,b.sy=b.y,b.lx=b.x,b.ly=b.y,b.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` - path { - fill: none; - stroke: hsl(var(--primary) / 0.20); - stroke-width: 1px; - } - `})})]})}function fbe(){const e=la();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function O8(){return!!localStorage.getItem("access-token")}function hbe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,s]=y.useState(""),l=la(),{enableWavesBackground:u,setEnableWavesBackground:d}=bF(),{theme:f,setTheme:m}=lE();y.useEffect(()=>{O8()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async w=>{if(w.preventDefault(),s(""),!e.trim()){s("请输入 Access Token");return}r(!0);try{const b=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await b.json();if(b.ok&&N.valid){localStorage.setItem("access-token",e.trim());const E=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),O=await E.json();E.ok&&O.is_first_setup?l({to:"/setup"}):l({to:"/"})}else s(N.message||"Token 验证失败,请检查后重试")}catch(b){console.error("Token 验证错误:",b),s("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(dbe,{}),i.jsxs(Xe,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(rC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(nC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(pt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(JI,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(vt,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(Wn,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(Ct,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx(oge,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ne,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:w=>t(w.target.value),className:ce("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(gl,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(oe,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(sr,{children:[i.jsx(i8,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(Bve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(JI,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(vr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(Yge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(aE,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(gl,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(yh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsxs(fn,{className:"flex items-center gap-2",children:[i.jsx(yh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(hn,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:Sye})})]})}const Xt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:ce("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Xt.displayName="Textarea";var mbe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],pbe=mbe.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),vbe="Separator",yL="horizontal",gbe=["horizontal","vertical"],E8=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=yL,...a}=e,s=ybe(r)?r:yL,u=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return i.jsx(pbe.div,{"data-orientation":s,...u,...a,ref:t})});E8.displayName=vbe;function ybe(e){return gbe.includes(e)}var A8=E8;const bh=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(A8,{ref:a,decorative:n,orientation:t,className:ce("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));bh.displayName=A8.displayName;const xbe=Zu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Ft({className:e,variant:t,...n}){return i.jsx("div",{className:ce(xbe({variant:t}),e),...n})}function bbe({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((s,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ne,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ne,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,s)=>i.jsxs(Ft,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(s),className:"ml-1 hover:text-destructive",children:i.jsx(Yh,{className:"h-3 w-3"})})]},s))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(oe,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function wbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Xt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Xt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Xt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(bh,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Xt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Xt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function jbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ne,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(lt,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(lt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(lt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function Sbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(lt,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(lt,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ne,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(Q,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Xt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(bh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(Q,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(lt,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function rt(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function dt(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function _be(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function Nbe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function Cbe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function Obe(){const e=await rt("/api/webui/config/bot",{method:"GET",headers:dt()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},s=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:s.all_global??!0}}async function Ebe(e){const t=await rt("/api/webui/config/bot/section/bot",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function Abe(e){const t=await rt("/api/webui/config/bot/section/personality",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function Tbe(e){const t=await rt("/api/webui/config/bot/section/emoji",{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function kbe(e){const t=[];t.push(rt("/api/webui/config/bot/section/tool",{method:"POST",headers:dt(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(rt("/api/webui/config/bot/section/jargon",{method:"POST",headers:dt(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(rt("/api/webui/config/bot/section/mood",{method:"POST",headers:dt(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const s=await a.json();throw new Error(s.detail||"保存其他配置失败")}return{success:!0}}async function xL(){const e=localStorage.getItem("access-token"),t=await rt("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function Mbe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState(0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.请控制你的发言频率,不要太过频繁的发言 -4.如果有人对你感到厌烦,请减少回复 -5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.某句话如果已经被回复过,不要重复回复`}),[j,w]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[b,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),E=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:_ve},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:gF},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:oE},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Fa},{id:"complete",title:"完成设置",description:"后续配置提示",icon:yh}],O=(n+1)/E.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[$,H,V,q]=await Promise.all([_be(),Nbe(),Cbe(),Obe()]);p($),x(H),w(V),N(q)}catch($){t({title:"加载配置失败",description:$ instanceof Error?$.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const A=async()=>{u(!0);try{switch(n){case 0:await Ebe(m);break;case 1:await Abe(g);break;case 2:await Tbe(j);break;case 3:await kbe(b);break}return t({title:"保存成功",description:`${E[n].title}配置已保存`}),!0}catch(B){return t({title:"保存失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await A()&&n{n>0&&r(n-1)},T=async()=>{s(!0);try{if(!await A()){s(!1);return}await xL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(B){t({title:"完成失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}finally{s(!1)}},M=async()=>{try{await xL(),e({to:"/"})}catch(B){t({title:"跳过失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}},R=()=>{switch(n){case 0:return i.jsx(bbe,{config:m,onChange:p});case 1:return i.jsx(wbe,{config:g,onChange:x});case 2:return i.jsx(jbe,{config:j,onChange:w});case 3:return i.jsx(Sbe,{config:b,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(yh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(Uge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",uE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",E.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(O),"%"]})]}),i.jsx($h,{value:O,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:E.map((B,$)=>{const H=B.icon;return i.jsxs("div",{className:ce("flex flex-1 flex-col items-center gap-1 md:gap-2",$e({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(Ag,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(oe,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(fF,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var k8=["PageUp","PageDown"],M8=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],P8={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Qu="Slider",[sC,Pbe,Rbe]=Ph(Qu),[R8]=gr(Qu,[Rbe]),[Dbe,Hy]=R8(Qu),D8=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:s=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...w}=e,b=y.useRef(new Set),N=y.useRef(0),O=l==="horizontal"?$be:Ibe,[A=[],C]=Ea({prop:m,defaultProp:f,onChange:$=>{[...b.current][N.current]?.focus(),p($)}}),k=y.useRef(A);function T($){const H=Fbe(A,$);B($,H)}function M($){B($,N.current)}function R(){const $=k.current[N.current];A[N.current]!==$&&g(A)}function B($,H,{commit:V}={commit:!1}){const q=Vbe(s),G=Gbe(Math.round(($-r)/s)*s+r,q),L=Rf(G,[r,a]);C((D=[])=>{const U=zbe(D,L,H);if(Wbe(U,d*s)){N.current=U.indexOf(L);const K=String(U)!==String(D);return K&&V&&g(U),K?U:D}else return D})}return i.jsx(Dbe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:b.current,values:A,orientation:l,form:j,children:i.jsx(sC.Provider,{scope:e.__scopeSlider,children:i.jsx(sC.Slot,{scope:e.__scopeSlider,children:i.jsx(O,{"aria-disabled":u,"data-disabled":u?"":void 0,...w,ref:t,onPointerDown:_e(w.onPointerDown,()=>{u||(k.current=A)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:T,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:R,onHomeKeyDown:()=>!u&&B(r,0,{commit:!0}),onEndKeyDown:()=>!u&&B(a,A.length-1,{commit:!0}),onStepKeyDown:({event:$,direction:H})=>{if(!u){const G=k8.includes($.key)||$.shiftKey&&M8.includes($.key)?10:1,L=N.current,D=A[L],U=s*G*H;B(D+U,L,{commit:!0})}}})})})})});D8.displayName=Qu;var[$8,I8]=R8(Qu,{startEdge:"left",endEdge:"right",size:"width",direction:1}),$be=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:s,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=Ue(t,O=>g(O)),j=y.useRef(void 0),w=Fu(a),b=w==="ltr",N=b&&!s||!b&&s;function E(O){const A=j.current||p.getBoundingClientRect(),C=[0,A.width],T=xE(C,N?[n,r]:[r,n]);return j.current=A,T(O-A.left)}return i.jsx($8,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(L8,{dir:w,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:O=>{const A=E(O.clientX);l?.(A)},onSlideMove:O=>{const A=E(O.clientX);u?.(A)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:O=>{const C=P8[N?"from-left":"from-right"].includes(O.key);f?.({event:O,direction:C?-1:1})}})})}),Ibe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:s,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=Ue(t,m),g=y.useRef(void 0),x=!a;function j(w){const b=g.current||m.current.getBoundingClientRect(),N=[0,b.height],O=xE(N,x?[r,n]:[n,r]);return g.current=b,O(w-b.top)}return i.jsx($8,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(L8,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const b=j(w.clientY);s?.(b)},onSlideMove:w=>{const b=j(w.clientY);l?.(b)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:w=>{const N=P8[x?"from-bottom":"from-top"].includes(w.key);d?.({event:w,direction:N?-1:1})}})})}),L8=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:s,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=Hy(Qu,n);return i.jsx($e.span,{...f,ref:t,onKeyDown:_e(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):k8.concat(M8).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:_e(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:_e(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:_e(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),s(p))})})}),B8="SliderTrack",z8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Hy(B8,n);return i.jsx($e.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});z8.displayName=B8;var oC="SliderRange",q8=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Hy(oC,n),s=I8(oC,n),l=y.useRef(null),u=Ue(t,l),d=a.values.length,f=a.values.map(g=>H8(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx($e.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[s.startEdge]:m+"%",[s.endEdge]:p+"%"}})});q8.displayName=oC;var lC="SliderThumb",F8=y.forwardRef((e,t)=>{const n=Pbe(e.__scopeSlider),[r,a]=y.useState(null),s=Ue(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(Lbe,{...e,ref:s,index:l})}),Lbe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...s}=e,l=Hy(lC,n),u=I8(lC,n),[d,f]=y.useState(null),m=Ue(t,E=>f(E)),p=d?l.form||!!d.closest("form"):!0,g=$y(d),x=l.values[r],j=x===void 0?0:H8(x,l.min,l.max),w=qbe(r,l.values.length),b=g?.[u.size],N=b?Ube(b,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(sC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx($e.span,{role:"slider","aria-label":e["aria-label"]||w,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...s,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:_e(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(U8,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});F8.displayName=lC;var Bbe="RadioBubbleInput",U8=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(a,r),l=Dy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.input,{style:{display:"none"},...n,ref:s,defaultValue:t})});U8.displayName=Bbe;function zbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,s)=>a-s)}function H8(e,t,n){const s=100/(n-t)*(e-t);return Rf(s,[0,100])}function qbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Fbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function Ube(e,t,n){const r=e/2,s=xE([0,50],[0,r]);return(r-s(t)*n)*n}function Hbe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Wbe(e,t){if(t>0){const n=Hbe(e);return Math.min(...n)>=t}return!0}function xE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Vbe(e){return(String(e).split(".")[1]||"").length}function Gbe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var W8=D8,Ybe=z8,Kbe=q8,Xbe=F8;const Wy=y.forwardRef(({className:e,...t},n)=>i.jsxs(W8,{ref:n,className:ce("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(Ybe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Kbe,{className:"absolute h-full bg-primary"})}),i.jsx(Xbe,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));Wy.displayName=W8.displayName;const Zbe=["top","right","bottom","left"],to=Math.min,na=Math.max,Mg=Math.round,Zp=Math.floor,gi=e=>({x:e,y:e}),Qbe={left:"right",right:"left",bottom:"top",top:"bottom"},Jbe={start:"end",end:"start"};function cC(e,t,n){return na(e,to(t,n))}function cs(e,t){return typeof e=="function"?e(t):e}function us(e){return e.split("-")[0]}function Ju(e){return e.split("-")[1]}function bE(e){return e==="x"?"y":"x"}function wE(e){return e==="y"?"height":"width"}const e0e=new Set(["top","bottom"]);function fi(e){return e0e.has(us(e))?"y":"x"}function jE(e){return bE(fi(e))}function t0e(e,t,n){n===void 0&&(n=!1);const r=Ju(e),a=jE(e),s=wE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Pg(l)),[l,Pg(l)]}function n0e(e){const t=Pg(e);return[uC(e),t,uC(t)]}function uC(e){return e.replace(/start|end/g,t=>Jbe[t])}const bL=["left","right"],wL=["right","left"],r0e=["top","bottom"],a0e=["bottom","top"];function i0e(e,t,n){switch(e){case"top":case"bottom":return n?t?wL:bL:t?bL:wL;case"left":case"right":return t?r0e:a0e;default:return[]}}function s0e(e,t,n,r){const a=Ju(e);let s=i0e(us(e),n==="start",r);return a&&(s=s.map(l=>l+"-"+a),t&&(s=s.concat(s.map(uC)))),s}function Pg(e){return e.replace(/left|right|bottom|top/g,t=>Qbe[t])}function o0e(e){return{top:0,right:0,bottom:0,left:0,...e}}function V8(e){return typeof e!="number"?o0e(e):{top:e,right:e,bottom:e,left:e}}function Rg(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function jL(e,t,n){let{reference:r,floating:a}=e;const s=fi(t),l=jE(t),u=wE(l),d=us(t),f=s==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(Ju(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const l0e=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:l}=n,u=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=jL(f,r,d),g=r,x={},j=0;for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=cs(e,t)||{};if(f==null)return{};const p=V8(m),g={x:n,y:r},x=jE(a),j=wE(x),w=await l.getDimensions(f),b=x==="y",N=b?"top":"left",E=b?"bottom":"right",O=b?"clientHeight":"clientWidth",A=s.reference[j]+s.reference[x]-g[x]-s.floating[j],C=g[x]-s.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let T=k?k[O]:0;(!T||!await(l.isElement==null?void 0:l.isElement(k)))&&(T=u.floating[O]||s.floating[j]);const M=A/2-C/2,R=T/2-w[j]/2-1,B=to(p[N],R),$=to(p[E],R),H=B,V=T-w[j]-$,q=T/2-w[j]/2+M,G=cC(H,q,V),L=!d.arrow&&Ju(a)!=null&&q!==G&&s.reference[j]/2-(qq<=0)){var $,H;const q=((($=s.flip)==null?void 0:$.index)||0)+1,G=T[q];if(G&&(!(p==="alignment"?E!==fi(G):!1)||B.every(U=>fi(U.placement)===E?U.overflows[0]>0:!0)))return{data:{index:q,overflows:B},reset:{placement:G}};let L=(H=B.filter(D=>D.overflows[0]<=0).sort((D,U)=>D.overflows[1]-U.overflows[1])[0])==null?void 0:H.placement;if(!L)switch(x){case"bestFit":{var V;const D=(V=B.filter(U=>{if(k){const K=fi(U.placement);return K===E||K==="y"}return!0}).map(U=>[U.placement,U.overflows.filter(K=>K>0).reduce((K,J)=>K+J,0)]).sort((U,K)=>U[1]-K[1])[0])==null?void 0:V[0];D&&(L=D);break}case"initialPlacement":L=u;break}if(a!==L)return{reset:{placement:L}}}return{}}}};function SL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function _L(e){return Zbe.some(t=>e[t]>=0)}const d0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=cs(e,t);switch(r){case"referenceHidden":{const s=await wh(t,{...a,elementContext:"reference"}),l=SL(s,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:_L(l)}}}case"escaped":{const s=await wh(t,{...a,altBoundary:!0}),l=SL(s,n.floating);return{data:{escapedOffsets:l,escaped:_L(l)}}}default:return{}}}}},G8=new Set(["left","top"]);async function f0e(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=us(n),u=Ju(n),d=fi(n)==="y",f=G8.has(l)?-1:1,m=s&&d?-1:1,p=cs(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const h0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:l,middlewareData:u}=t,d=await f0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:s+d.y,data:{...d,placement:l}}}}},m0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:b=>{let{x:N,y:E}=b;return{x:N,y:E}}},...d}=cs(e,t),f={x:n,y:r},m=await wh(t,d),p=fi(us(a)),g=bE(p);let x=f[g],j=f[p];if(s){const b=g==="y"?"top":"left",N=g==="y"?"bottom":"right",E=x+m[b],O=x-m[N];x=cC(E,x,O)}if(l){const b=p==="y"?"top":"left",N=p==="y"?"bottom":"right",E=j+m[b],O=j-m[N];j=cC(E,j,O)}const w=u.fn({...t,[g]:x,[p]:j});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[g]:s,[p]:l}}}}}},p0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=cs(e,t),m={x:n,y:r},p=fi(a),g=bE(p);let x=m[g],j=m[p];const w=cs(u,t),b=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const O=g==="y"?"height":"width",A=s.reference[g]-s.floating[O]+b.mainAxis,C=s.reference[g]+s.reference[O]-b.mainAxis;xC&&(x=C)}if(f){var N,E;const O=g==="y"?"width":"height",A=G8.has(us(a)),C=s.reference[p]-s.floating[O]+(A&&((N=l.offset)==null?void 0:N[p])||0)+(A?0:b.crossAxis),k=s.reference[p]+s.reference[O]+(A?0:((E=l.offset)==null?void 0:E[p])||0)-(A?b.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},v0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:l,elements:u}=t,{apply:d=()=>{},...f}=cs(e,t),m=await wh(t,f),p=us(a),g=Ju(a),x=fi(a)==="y",{width:j,height:w}=s.floating;let b,N;p==="top"||p==="bottom"?(b=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,b=g==="end"?"top":"bottom");const E=w-m.top-m.bottom,O=j-m.left-m.right,A=to(w-m[b],E),C=to(j-m[N],O),k=!t.middlewareData.shift;let T=A,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=O),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=E),k&&!g){const B=na(m.left,0),$=na(m.right,0),H=na(m.top,0),V=na(m.bottom,0);x?M=j-2*(B!==0||$!==0?B+$:na(m.left,m.right)):T=w-2*(H!==0||V!==0?H+V:na(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:T});const R=await l.getDimensions(u.floating);return j!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function Vy(){return typeof window<"u"}function ed(e){return Y8(e)?(e.nodeName||"").toLowerCase():"#document"}function sa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Ni(e){var t;return(t=(Y8(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Y8(e){return Vy()?e instanceof Node||e instanceof sa(e).Node:!1}function Ga(e){return Vy()?e instanceof Element||e instanceof sa(e).Element:!1}function wi(e){return Vy()?e instanceof HTMLElement||e instanceof sa(e).HTMLElement:!1}function NL(e){return!Vy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof sa(e).ShadowRoot}const g0e=new Set(["inline","contents"]);function Zh(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Ya(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!g0e.has(a)}const y0e=new Set(["table","td","th"]);function x0e(e){return y0e.has(ed(e))}const b0e=[":popover-open",":modal"];function Gy(e){return b0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const w0e=["transform","translate","scale","rotate","perspective"],j0e=["transform","translate","scale","rotate","perspective","filter"],S0e=["paint","layout","strict","content"];function SE(e){const t=_E(),n=Ga(e)?Ya(e):e;return w0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||j0e.some(r=>(n.willChange||"").includes(r))||S0e.some(r=>(n.contain||"").includes(r))}function _0e(e){let t=no(e);for(;wi(t)&&!Du(t);){if(SE(t))return t;if(Gy(t))return null;t=no(t)}return null}function _E(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const N0e=new Set(["html","body","#document"]);function Du(e){return N0e.has(ed(e))}function Ya(e){return sa(e).getComputedStyle(e)}function Yy(e){return Ga(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function no(e){if(ed(e)==="html")return e;const t=e.assignedSlot||e.parentNode||NL(e)&&e.host||Ni(e);return NL(t)?t.host:t}function K8(e){const t=no(e);return Du(t)?e.ownerDocument?e.ownerDocument.body:e.body:wi(t)&&Zh(t)?t:K8(t)}function jh(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=K8(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),l=sa(a);if(s){const u=dC(l);return t.concat(l,l.visualViewport||[],Zh(a)?a:[],u&&n?jh(u):[])}return t.concat(a,jh(a,[],n))}function dC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function X8(e){const t=Ya(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=wi(e),s=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Mg(n)!==s||Mg(r)!==l;return u&&(n=s,r=l),{width:n,height:r,$:u}}function NE(e){return Ga(e)?e:e.contextElement}function Qc(e){const t=NE(e);if(!wi(t))return gi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=X8(t);let l=(s?Mg(n.width):n.width)/r,u=(s?Mg(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const C0e=gi(0);function Z8(e){const t=sa(e);return!_E()||!t.visualViewport?C0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function O0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==sa(e)?!1:t}function xl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=NE(e);let l=gi(1);t&&(r?Ga(r)&&(l=Qc(r)):l=Qc(e));const u=O0e(s,n,r)?Z8(s):gi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(s){const g=sa(s),x=r&&Ga(r)?sa(r):r;let j=g,w=dC(j);for(;w&&r&&x!==j;){const b=Qc(w),N=w.getBoundingClientRect(),E=Ya(w),O=N.left+(w.clientLeft+parseFloat(E.paddingLeft))*b.x,A=N.top+(w.clientTop+parseFloat(E.paddingTop))*b.y;d*=b.x,f*=b.y,m*=b.x,p*=b.y,d+=O,f+=A,j=sa(w),w=dC(j)}}return Rg({width:m,height:p,x:d,y:f})}function Ky(e,t){const n=Yy(e).scrollLeft;return t?t.left+n:xl(Ni(e)).left+n}function Q8(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Ky(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function E0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",l=Ni(r),u=t?Gy(t.floating):!1;if(r===l||u&&s)return n;let d={scrollLeft:0,scrollTop:0},f=gi(1);const m=gi(0),p=wi(r);if((p||!p&&!s)&&((ed(r)!=="body"||Zh(l))&&(d=Yy(r)),wi(r))){const x=xl(r);f=Qc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!s?Q8(l,d):gi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function A0e(e){return Array.from(e.getClientRects())}function T0e(e){const t=Ni(e),n=Yy(e),r=e.ownerDocument.body,a=na(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=na(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Ky(e);const u=-n.scrollTop;return Ya(r).direction==="rtl"&&(l+=na(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:l,y:u}}const CL=25;function k0e(e,t){const n=sa(e),r=Ni(e),a=n.visualViewport;let s=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){s=a.width,l=a.height;const m=_E();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Ky(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=CL&&(s-=j)}else f<=CL&&(s+=f);return{width:s,height:l,x:u,y:d}}const M0e=new Set(["absolute","fixed"]);function P0e(e,t){const n=xl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=wi(e)?Qc(e):gi(1),l=e.clientWidth*s.x,u=e.clientHeight*s.y,d=a*s.x,f=r*s.y;return{width:l,height:u,x:d,y:f}}function OL(e,t,n){let r;if(t==="viewport")r=k0e(e,n);else if(t==="document")r=T0e(Ni(e));else if(Ga(t))r=P0e(t,n);else{const a=Z8(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return Rg(r)}function J8(e,t){const n=no(e);return n===t||!Ga(n)||Du(n)?!1:Ya(n).position==="fixed"||J8(n,t)}function R0e(e,t){const n=t.get(e);if(n)return n;let r=jh(e,[],!1).filter(u=>Ga(u)&&ed(u)!=="body"),a=null;const s=Ya(e).position==="fixed";let l=s?no(e):e;for(;Ga(l)&&!Du(l);){const u=Ya(l),d=SE(l);!d&&u.position==="fixed"&&(a=null),(s?!d&&!a:!d&&u.position==="static"&&!!a&&M0e.has(a.position)||Zh(l)&&!d&&J8(e,l))?r=r.filter(m=>m!==l):a=u,l=no(l)}return t.set(e,r),r}function D0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?Gy(t)?[]:R0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=OL(t,m,a);return f.top=na(p.top,f.top),f.right=to(p.right,f.right),f.bottom=to(p.bottom,f.bottom),f.left=na(p.left,f.left),f},OL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function $0e(e){const{width:t,height:n}=X8(e);return{width:t,height:n}}function I0e(e,t,n){const r=wi(t),a=Ni(t),s=n==="fixed",l=xl(e,!0,s,t);let u={scrollLeft:0,scrollTop:0};const d=gi(0);function f(){d.x=Ky(a)}if(r||!r&&!s)if((ed(t)!=="body"||Zh(a))&&(u=Yy(t)),r){const x=xl(t,!0,s,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();s&&!r&&a&&f();const m=a&&!r&&!s?Q8(a,u):gi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function l_(e){return Ya(e).position==="static"}function EL(e,t){if(!wi(e)||Ya(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Ni(e)===n&&(n=n.ownerDocument.body),n}function eU(e,t){const n=sa(e);if(Gy(e))return n;if(!wi(e)){let a=no(e);for(;a&&!Du(a);){if(Ga(a)&&!l_(a))return a;a=no(a)}return n}let r=EL(e,t);for(;r&&x0e(r)&&l_(r);)r=EL(r,t);return r&&Du(r)&&l_(r)&&!SE(r)?n:r||_0e(e)||n}const L0e=async function(e){const t=this.getOffsetParent||eU,n=this.getDimensions,r=await n(e.floating);return{reference:I0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function B0e(e){return Ya(e).direction==="rtl"}const z0e={convertOffsetParentRelativeRectToViewportRelativeRect:E0e,getDocumentElement:Ni,getClippingRect:D0e,getOffsetParent:eU,getElementRects:L0e,getClientRects:A0e,getDimensions:$0e,getScale:Qc,isElement:Ga,isRTL:B0e};function tU(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function q0e(e,t){let n=null,r;const a=Ni(e);function s(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),s();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Zp(p),w=Zp(a.clientWidth-(m+g)),b=Zp(a.clientHeight-(p+x)),N=Zp(m),O={rootMargin:-j+"px "+-w+"px "+-b+"px "+-N+"px",threshold:na(0,to(1,d))||1};let A=!0;function C(k){const T=k[0].intersectionRatio;if(T!==d){if(!A)return l();T?l(!1,T):r=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!tU(f,e.getBoundingClientRect())&&l(),A=!1}try{n=new IntersectionObserver(C,{...O,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,O)}n.observe(e)}return l(!0),s}function F0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=NE(e),m=a||s?[...f?jh(f):[],...jh(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),s&&N.addEventListener("resize",n)});const p=f&&u?q0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[E]=N;E&&E.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var O;(O=x)==null||O.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,w=d?xl(e):null;d&&b();function b(){const N=xl(e);w&&!tU(w,N)&&n(),w=N,j=requestAnimationFrame(b)}return n(),()=>{var N;m.forEach(E=>{a&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const U0e=h0e,H0e=m0e,W0e=u0e,V0e=v0e,G0e=d0e,AL=c0e,Y0e=p0e,K0e=(e,t,n)=>{const r=new Map,a={platform:z0e,...n},s={...a.platform,_c:r};return l0e(e,t,{...a,platform:s})};var X0e=typeof document<"u",Z0e=function(){},mv=X0e?y.useLayoutEffect:Z0e;function Dg(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Dg(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!Dg(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function nU(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function TL(e,t){const n=nU(e);return Math.round(t*n)/n}function c_(e){const t=y.useRef(e);return mv(()=>{t.current=e}),t}function Q0e(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);Dg(g,r)||x(r);const[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useCallback(U=>{U!==k.current&&(k.current=U,w(U))},[]),O=y.useCallback(U=>{U!==T.current&&(T.current=U,N(U))},[]),A=s||j,C=l||b,k=y.useRef(null),T=y.useRef(null),M=y.useRef(m),R=d!=null,B=c_(d),$=c_(a),H=c_(f),V=y.useCallback(()=>{if(!k.current||!T.current)return;const U={placement:t,strategy:n,middleware:g};$.current&&(U.platform=$.current),K0e(k.current,T.current,U).then(K=>{const J={...K,isPositioned:H.current!==!1};q.current&&!Dg(M.current,J)&&(M.current=J,Sl.flushSync(()=>{p(J)}))})},[g,t,n,$,H]);mv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(U=>({...U,isPositioned:!1})))},[f]);const q=y.useRef(!1);mv(()=>(q.current=!0,()=>{q.current=!1}),[]),mv(()=>{if(A&&(k.current=A),C&&(T.current=C),A&&C){if(B.current)return B.current(A,C,V);V()}},[A,C,V,B,R]);const G=y.useMemo(()=>({reference:k,floating:T,setReference:E,setFloating:O}),[E,O]),L=y.useMemo(()=>({reference:A,floating:C}),[A,C]),D=y.useMemo(()=>{const U={position:n,left:0,top:0};if(!L.floating)return U;const K=TL(L.floating,m.x),J=TL(L.floating,m.y);return u?{...U,transform:"translate("+K+"px, "+J+"px)",...nU(L.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:K,top:J}},[n,u,L.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:L,floatingStyles:D}),[m,V,G,L,D])}const J0e=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?AL({element:r.current,padding:a}).fn(n):{}:r?AL({element:r,padding:a}).fn(n):{}}}},ewe=(e,t)=>({...U0e(e),options:[e,t]}),twe=(e,t)=>({...H0e(e),options:[e,t]}),nwe=(e,t)=>({...Y0e(e),options:[e,t]}),rwe=(e,t)=>({...W0e(e),options:[e,t]}),awe=(e,t)=>({...V0e(e),options:[e,t]}),iwe=(e,t)=>({...G0e(e),options:[e,t]}),swe=(e,t)=>({...J0e(e),options:[e,t]});var owe="Arrow",rU=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return i.jsx($e.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});rU.displayName=owe;var lwe=rU,CE="Popper",[aU,ho]=gr(CE),[cwe,iU]=aU(CE),sU=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(cwe,{scope:t,anchor:r,onAnchorChange:a,children:n})};sU.displayName=CE;var oU="PopperAnchor",lU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=iU(oU,n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&s.onAnchorChange(d.current)}),r?null:i.jsx($e.div,{...a,ref:u})});lU.displayName=oU;var OE="PopperContent",[uwe,dwe]=aU(OE),cU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...w}=e,b=iU(OE,n),[N,E]=y.useState(null),O=Ue(t,ee=>E(ee)),[A,C]=y.useState(null),k=$y(A),T=k?.width??0,M=k?.height??0,R=r+(s!=="center"?"-"+s:""),B=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},$=Array.isArray(f)?f:[f],H=$.length>0,V={padding:B,boundary:$.filter(hwe),altBoundary:H},{refs:q,floatingStyles:G,placement:L,isPositioned:D,middlewareData:U}=Q0e({strategy:"fixed",placement:R,whileElementsMounted:(...ee)=>F0e(...ee,{animationFrame:x==="always"}),elements:{reference:b.anchor},middleware:[ewe({mainAxis:a+M,alignmentAxis:l}),d&&twe({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?nwe():void 0,...V}),d&&rwe({...V}),awe({...V,apply:({elements:ee,rects:Se,availableWidth:re,availableHeight:we})=>{const{width:je,height:fe}=Se.reference,Le=ee.floating.style;Le.setProperty("--radix-popper-available-width",`${re}px`),Le.setProperty("--radix-popper-available-height",`${we}px`),Le.setProperty("--radix-popper-anchor-width",`${je}px`),Le.setProperty("--radix-popper-anchor-height",`${fe}px`)}}),A&&swe({element:A,padding:u}),mwe({arrowWidth:T,arrowHeight:M}),g&&iwe({strategy:"referenceHidden",...V})]}),[K,J]=fU(L),I=ln(j);Yn(()=>{D&&I?.()},[D,I]);const z=U.arrow?.x,Y=U.arrow?.y,te=U.arrow?.centerOffset!==0,[ae,ge]=y.useState();return Yn(()=>{N&&ge(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:q.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:D?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ae,"--radix-popper-transform-origin":[U.transformOrigin?.x,U.transformOrigin?.y].join(" "),...U.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(uwe,{scope:n,placedSide:K,onArrowChange:C,arrowX:z,arrowY:Y,shouldHideArrow:te,children:i.jsx($e.div,{"data-side":K,"data-align":J,...w,ref:O,style:{...w.style,animation:D?void 0:"none"}})})})});cU.displayName=OE;var uU="PopperArrow",fwe={top:"bottom",right:"left",bottom:"top",left:"right"},dU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=dwe(uU,r),l=fwe[s.placedSide];return i.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:i.jsx(lwe,{...a,ref:n,style:{...a.style,display:"block"}})})});dU.displayName=uU;function hwe(e){return e!==null}var mwe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=fU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",w="";return f==="bottom"?(j=l?p:`${g}px`,w=`${-d}px`):f==="top"?(j=l?p:`${g}px`,w=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,w=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,w=l?p:`${x}px`),{data:{x:j,y:w}}}});function fU(e){const[t,n="center"]=e.split("-");return[t,n]}var Qh=sU,Jh=lU,Xy=cU,Zy=dU;function pwe(e){const t=vwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(ywe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function vwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=bwe(a),u=xwe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gwe=Symbol("radix.slottable");function ywe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gwe}function xwe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bwe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var hU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),wwe="VisuallyHidden",Qy=y.forwardRef((e,t)=>i.jsx($e.span,{...e,ref:t,style:{...hU,...e.style}}));Qy.displayName=wwe;var jwe=Qy,Swe=[" ","Enter","ArrowUp","ArrowDown"],_we=[" ","Enter"],bl="Select",[Jy,ex,Nwe]=Ph(bl),[td]=gr(bl,[Nwe,ho]),tx=ho(),[Cwe,mo]=td(bl),[Owe,Ewe]=td(bl),mU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,w=tx(t),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),k=Fu(f),[T,M]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:bl}),[R,B]=Ea({prop:l,defaultProp:u,onChange:d,caller:bl}),$=y.useRef(null),H=b?j||!!b.closest("form"):!0,[V,q]=y.useState(new Set),G=Array.from(V).map(L=>L.props.value).join(";");return i.jsx(Qh,{...w,children:i.jsxs(Cwe,{required:x,scope:t,trigger:b,onTriggerChange:N,valueNode:E,onValueNodeChange:O,valueNodeHasChildren:A,onValueNodeHasChildrenChange:C,contentId:Gn(),value:R,onValueChange:B,open:T,onOpenChange:M,dir:k,triggerPointerDownPosRef:$,disabled:g,children:[i.jsx(Jy.Provider,{scope:t,children:i.jsx(Owe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback(L=>{q(D=>new Set(D).add(L))},[]),onNativeOptionRemove:y.useCallback(L=>{q(D=>{const U=new Set(D);return U.delete(L),U})},[]),children:n})}),H?i.jsxs(LU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:R,onChange:L=>B(L.target.value),disabled:g,form:j,children:[R===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};mU.displayName=bl;var pU="SelectTrigger",vU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=tx(n),l=mo(pU,n),u=l.disabled||r,d=Ue(t,l.onTriggerChange),f=ex(n),m=y.useRef("touch"),[p,g,x]=zU(w=>{const b=f().filter(O=>!O.disabled),N=b.find(O=>O.value===l.value),E=qU(b,w,N);E!==void 0&&l.onValueChange(E.value)}),j=w=>{u||(l.onOpenChange(!0),x()),w&&(l.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return i.jsx(Jh,{asChild:!0,...s,children:i.jsx($e.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":BU(l.value)?"":void 0,...a,ref:d,onClick:_e(a.onClick,w=>{w.currentTarget.focus(),m.current!=="mouse"&&j(w)}),onPointerDown:_e(a.onPointerDown,w=>{m.current=w.pointerType;const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(j(w),w.preventDefault())}),onKeyDown:_e(a.onKeyDown,w=>{const b=p.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(b&&w.key===" ")&&Swe.includes(w.key)&&(j(),w.preventDefault())})})})});vU.displayName=pU;var gU="SelectValue",yU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:l="",...u}=e,d=mo(gU,n),{onValueNodeHasChildrenChange:f}=d,m=s!==void 0,p=Ue(t,d.onValueNodeChange);return Yn(()=>{f(m)},[f,m]),i.jsx($e.span,{...u,ref:p,style:{pointerEvents:"none"},children:BU(d.value)?i.jsx(i.Fragment,{children:l}):s})});yU.displayName=gU;var Awe="SelectIcon",xU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx($e.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});xU.displayName=Awe;var Twe="SelectPortal",bU=e=>i.jsx(Tl,{asChild:!0,...e});bU.displayName=Twe;var wl="SelectContent",wU=y.forwardRef((e,t)=>{const n=mo(wl,e.__scopeSelect),[r,a]=y.useState();if(Yn(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?Sl.createPortal(i.jsx(jU,{scope:e.__scopeSelect,children:i.jsx(Jy.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),s):null}return i.jsx(SU,{...e,ref:t})});wU.displayName=wl;var La=10,[jU,po]=td(wl),kwe="SelectContentImpl",Mwe=pwe("SelectContent.RemoveScroll"),SU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b,...N}=e,E=mo(wl,n),[O,A]=y.useState(null),[C,k]=y.useState(null),T=Ue(t,ee=>A(ee)),[M,R]=y.useState(null),[B,$]=y.useState(null),H=ex(n),[V,q]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(O)return zy(O)},[O]),Ly();const L=y.useCallback(ee=>{const[Se,...re]=H().map(fe=>fe.ref.current),[we]=re.slice(-1),je=document.activeElement;for(const fe of ee)if(fe===je||(fe?.scrollIntoView({block:"nearest"}),fe===Se&&C&&(C.scrollTop=0),fe===we&&C&&(C.scrollTop=C.scrollHeight),fe?.focus(),document.activeElement!==je))return},[H,C]),D=y.useCallback(()=>L([M,O]),[L,M,O]);y.useEffect(()=>{V&&D()},[V,D]);const{onOpenChange:U,triggerPointerDownPosRef:K}=E;y.useEffect(()=>{if(O){let ee={x:0,y:0};const Se=we=>{ee={x:Math.abs(Math.round(we.pageX)-(K.current?.x??0)),y:Math.abs(Math.round(we.pageY)-(K.current?.y??0))}},re=we=>{ee.x<=10&&ee.y<=10?we.preventDefault():O.contains(we.target)||U(!1),document.removeEventListener("pointermove",Se),K.current=null};return K.current!==null&&(document.addEventListener("pointermove",Se),document.addEventListener("pointerup",re,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",Se),document.removeEventListener("pointerup",re,{capture:!0})}}},[O,U,K]),y.useEffect(()=>{const ee=()=>U(!1);return window.addEventListener("blur",ee),window.addEventListener("resize",ee),()=>{window.removeEventListener("blur",ee),window.removeEventListener("resize",ee)}},[U]);const[J,I]=zU(ee=>{const Se=H().filter(je=>!je.disabled),re=Se.find(je=>je.ref.current===document.activeElement),we=qU(Se,ee,re);we&&setTimeout(()=>we.ref.current.focus())}),z=y.useCallback((ee,Se,re)=>{const we=!G.current&&!re;(E.value!==void 0&&E.value===Se||we)&&(R(ee),we&&(G.current=!0))},[E.value]),Y=y.useCallback(()=>O?.focus(),[O]),te=y.useCallback((ee,Se,re)=>{const we=!G.current&&!re;(E.value!==void 0&&E.value===Se||we)&&$(ee)},[E.value]),ae=r==="popper"?fC:_U,ge=ae===fC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b}:{};return i.jsx(jU,{scope:n,content:O,viewport:C,onViewportChange:k,itemRefCallback:z,selectedItem:M,onItemLeave:Y,itemTextRefCallback:te,focusSelectedItem:D,selectedItemText:B,position:r,isPositioned:V,searchRef:J,children:i.jsx(Xh,{as:Mwe,allowPinchZoom:!0,children:i.jsx(Kh,{asChild:!0,trapped:E.open,onMountAutoFocus:ee=>{ee.preventDefault()},onUnmountAutoFocus:_e(a,ee=>{E.trigger?.focus({preventScroll:!0}),ee.preventDefault()}),children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:ee=>ee.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:i.jsx(ae,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:ee=>ee.preventDefault(),...N,...ge,onPlaced:()=>q(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:_e(N.onKeyDown,ee=>{const Se=ee.ctrlKey||ee.altKey||ee.metaKey;if(ee.key==="Tab"&&ee.preventDefault(),!Se&&ee.key.length===1&&I(ee.key),["ArrowUp","ArrowDown","Home","End"].includes(ee.key)){let we=H().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ee.key)&&(we=we.slice().reverse()),["ArrowUp","ArrowDown"].includes(ee.key)){const je=ee.target,fe=we.indexOf(je);we=we.slice(fe+1)}setTimeout(()=>L(we)),ee.preventDefault()}})})})})})})});SU.displayName=kwe;var Pwe="SelectItemAlignedPosition",_U=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=mo(wl,n),l=po(wl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=Ue(t,T=>m(T)),g=ex(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:N,focusSelectedItem:E}=l,O=y.useCallback(()=>{if(s.trigger&&s.valueNode&&u&&f&&w&&b&&N){const T=s.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),B=N.getBoundingClientRect();if(s.dir!=="rtl"){const je=B.left-M.left,fe=R.left-je,Le=T.left-fe,Oe=T.width+Le,We=Math.max(Oe,M.width),be=window.innerWidth-La,Ae=Rf(fe,[La,Math.max(La,be-We)]);u.style.minWidth=Oe+"px",u.style.left=Ae+"px"}else{const je=M.right-B.right,fe=window.innerWidth-R.right-je,Le=window.innerWidth-T.right-fe,Oe=T.width+Le,We=Math.max(Oe,M.width),be=window.innerWidth-La,Ae=Rf(fe,[La,Math.max(La,be-We)]);u.style.minWidth=Oe+"px",u.style.right=Ae+"px"}const $=g(),H=window.innerHeight-La*2,V=w.scrollHeight,q=window.getComputedStyle(f),G=parseInt(q.borderTopWidth,10),L=parseInt(q.paddingTop,10),D=parseInt(q.borderBottomWidth,10),U=parseInt(q.paddingBottom,10),K=G+L+V+U+D,J=Math.min(b.offsetHeight*5,K),I=window.getComputedStyle(w),z=parseInt(I.paddingTop,10),Y=parseInt(I.paddingBottom,10),te=T.top+T.height/2-La,ae=H-te,ge=b.offsetHeight/2,ee=b.offsetTop+ge,Se=G+L+ee,re=K-Se;if(Se<=te){const je=$.length>0&&b===$[$.length-1].ref.current;u.style.bottom="0px";const fe=f.clientHeight-w.offsetTop-w.offsetHeight,Le=Math.max(ae,ge+(je?Y:0)+fe+D),Oe=Se+Le;u.style.height=Oe+"px"}else{const je=$.length>0&&b===$[0].ref.current;u.style.top="0px";const Le=Math.max(te,G+w.offsetTop+(je?z:0)+ge)+re;u.style.height=Le+"px",w.scrollTop=Se-te+w.offsetTop}u.style.margin=`${La}px 0`,u.style.minHeight=J+"px",u.style.maxHeight=H+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,s.trigger,s.valueNode,u,f,w,b,N,s.dir,r]);Yn(()=>O(),[O]);const[A,C]=y.useState();Yn(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(T=>{T&&j.current===!0&&(O(),E?.(),j.current=!1)},[O,E]);return i.jsx(Dwe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:i.jsx($e.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});_U.displayName=Pwe;var Rwe="SelectPopperPosition",fC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=La,...s}=e,l=tx(n);return i.jsx(Xy,{...l,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.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)"}})});fC.displayName=Rwe;var[Dwe,EE]=td(wl,{}),hC="SelectViewport",NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=po(hC,n),l=EE(hC,n),u=Ue(t,s.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(Jy.Slot,{scope:n,children:i.jsx($e.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:_e(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-La*2,w=parseFloat(p.style.minHeight),b=parseFloat(p.style.height),N=Math.max(w,b);if(N0?A:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});NU.displayName=hC;var CU="SelectGroup",[$we,Iwe]=td(CU),Lwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Gn();return i.jsx($we,{scope:n,id:a,children:i.jsx($e.div,{role:"group","aria-labelledby":a,...r,ref:t})})});Lwe.displayName=CU;var OU="SelectLabel",EU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Iwe(OU,n);return i.jsx($e.div,{id:a.id,...r,ref:t})});EU.displayName=OU;var $g="SelectItem",[Bwe,AU]=td($g),TU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...l}=e,u=mo($g,n),d=po($g,n),f=u.value===r,[m,p]=y.useState(s??""),[g,x]=y.useState(!1),j=Ue(t,E=>d.itemRefCallback?.(E,r,a)),w=Gn(),b=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Bwe,{scope:n,value:r,disabled:a,textId:w,isSelected:f,onItemTextChange:y.useCallback(E=>{p(O=>O||(E?.textContent??"").trim())},[]),children:i.jsx(Jy.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx($e.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:_e(l.onFocus,()=>x(!0)),onBlur:_e(l.onBlur,()=>x(!1)),onClick:_e(l.onClick,()=>{b.current!=="mouse"&&N()}),onPointerUp:_e(l.onPointerUp,()=>{b.current==="mouse"&&N()}),onPointerDown:_e(l.onPointerDown,E=>{b.current=E.pointerType}),onPointerMove:_e(l.onPointerMove,E=>{b.current=E.pointerType,a?d.onItemLeave?.():b.current==="mouse"&&E.currentTarget.focus({preventScroll:!0})}),onPointerLeave:_e(l.onPointerLeave,E=>{E.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:_e(l.onKeyDown,E=>{d.searchRef?.current!==""&&E.key===" "||(_we.includes(E.key)&&N(),E.key===" "&&E.preventDefault())})})})})});TU.displayName=$g;var yf="SelectItemText",kU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,l=mo(yf,n),u=po(yf,n),d=AU(yf,n),f=Ewe(yf,n),[m,p]=y.useState(null),g=Ue(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return Yn(()=>(w(j),()=>b(j)),[w,b,j]),i.jsxs(i.Fragment,{children:[i.jsx($e.span,{id:d.textId,...s,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Sl.createPortal(s.children,l.valueNode):null]})});kU.displayName=yf;var MU="SelectItemIndicator",PU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return AU(MU,n).isSelected?i.jsx($e.span,{"aria-hidden":!0,...r,ref:t}):null});PU.displayName=MU;var mC="SelectScrollUpButton",RU=y.forwardRef((e,t)=>{const n=po(mC,e.__scopeSelect),r=EE(mC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;s(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx($U,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});RU.displayName=mC;var pC="SelectScrollDownButton",DU=y.forwardRef((e,t)=>{const n=po(pC,e.__scopeSelect),r=EE(pC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx($U,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});DU.displayName=pC;var $U=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=po("SelectScrollButton",n),l=y.useRef(null),u=ex(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Yn(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx($e.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:_e(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:_e(a.onPointerMove,()=>{s.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:_e(a.onPointerLeave,()=>{d()})})}),zwe="SelectSeparator",IU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx($e.div,{"aria-hidden":!0,...r,ref:t})});IU.displayName=zwe;var vC="SelectArrow",qwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=tx(n),s=mo(vC,n),l=po(vC,n);return s.open&&l.position==="popper"?i.jsx(Zy,{...a,...r,ref:t}):null});qwe.displayName=vC;var Fwe="SelectBubbleInput",LU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(r,a),l=Dy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.select,{...n,style:{...hU,...n.style},ref:s,defaultValue:t})});LU.displayName=Fwe;function BU(e){return e===""||e===void 0}function zU(e){const t=ln(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),s=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}function qU(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=Uwe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function Uwe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Hwe=mU,FU=vU,Wwe=yU,Vwe=xU,Gwe=bU,UU=wU,Ywe=NU,HU=EU,WU=TU,Kwe=kU,Xwe=PU,VU=RU,GU=DU,YU=IU;const Dt=Hwe,$t=Wwe,Ot=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(FU,{ref:r,className:ce("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx(Vwe,{asChild:!0,children:i.jsx(vh,{className:"h-4 w-4 opacity-50"})})]}));Ot.displayName=FU.displayName;const KU=y.forwardRef(({className:e,...t},n)=>i.jsx(VU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(XN,{className:"h-4 w-4"})}));KU.displayName=VU.displayName;const XU=y.forwardRef(({className:e,...t},n)=>i.jsx(GU,{ref:n,className:ce("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(vh,{className:"h-4 w-4"})}));XU.displayName=GU.displayName;const Et=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(Gwe,{children:i.jsxs(UU,{ref:a,className:ce("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(KU,{}),i.jsx(Ywe,{className:ce("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(XU,{})]})}));Et.displayName=UU.displayName;const Zwe=y.forwardRef(({className:e,...t},n)=>i.jsx(HU,{ref:n,className:ce("px-2 py-1.5 text-sm font-semibold",e),...t}));Zwe.displayName=HU.displayName;const De=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(WU,{ref:r,className:ce("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Xwe,{children:i.jsx(ol,{className:"h-4 w-4"})})}),i.jsx(Kwe,{children:t})]}));De.displayName=WU.displayName;const Qwe=y.forwardRef(({className:e,...t},n)=>i.jsx(YU,{ref:n,className:ce("-mx-1 my-1 h-px bg-muted",e),...t}));Qwe.displayName=YU.displayName;function Jwe(e){const t=eje(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(nje);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function eje(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=aje(a),u=rje(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var tje=Symbol("radix.slottable");function nje(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===tje}function rje(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function aje(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var nx="Popover",[ZU]=gr(nx,[ho]),em=ho(),[ije,vo]=ZU(nx),QU=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=em(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Ea({prop:r,defaultProp:a??!1,onChange:s,caller:nx});return i.jsx(Qh,{...u,children:i.jsx(ije,{scope:t,contentId:Gn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};QU.displayName=nx;var JU="PopoverAnchor",sje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(JU,n),s=em(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(Jh,{...s,...r,ref:t})});sje.displayName=JU;var eH="PopoverTrigger",tH=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(eH,n),s=em(n),l=Ue(t,a.triggerRef),u=i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":sH(a.open),...r,ref:l,onClick:_e(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(Jh,{asChild:!0,...s,children:u})});tH.displayName=eH;var AE="PopoverPortal",[oje,lje]=ZU(AE,{forceMount:void 0}),nH=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,s=vo(AE,t);return i.jsx(oje,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};nH.displayName=AE;var $u="PopoverContent",rH=y.forwardRef((e,t)=>{const n=lje($u,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,s=vo($u,e.__scopePopover);return i.jsx(Bn,{present:r||s.open,children:s.modal?i.jsx(uje,{...a,ref:t}):i.jsx(dje,{...a,ref:t})})});rH.displayName=$u;var cje=Jwe("PopoverContent.RemoveScroll"),uje=y.forwardRef((e,t)=>{const n=vo($u,e.__scopePopover),r=y.useRef(null),a=Ue(t,r),s=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return zy(l)},[]),i.jsx(Xh,{as:cje,allowPinchZoom:!0,children:i.jsx(aH,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:_e(e.onCloseAutoFocus,l=>{l.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:_e(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;s.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:_e(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),dje=y.forwardRef((e,t)=>{const n=vo($u,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(aH,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),aH=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=vo($u,n),x=em(n);return Ly(),i.jsx(Kh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Xy,{"data-state":sH(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),iH="PopoverClose",fje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=vo(iH,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,()=>a.onOpenChange(!1))})});fje.displayName=iH;var hje="PopoverArrow",mje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=em(n);return i.jsx(Zy,{...a,...r,ref:t})});mje.displayName=hje;function sH(e){return e?"open":"closed"}var pje=QU,vje=tH,gje=nH,oH=rH;const ro=pje,ao=vje,ds=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(gje,{children:i.jsx(oH,{ref:a,align:t,sideOffset:n,className:ce("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));ds.displayName=oH.displayName;const nd="/api/webui/config";async function yje(){const t=await(await rt(`${nd}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function Jc(){const t=await(await rt(`${nd}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function kL(e){const n=await(await rt(`${nd}/bot`,{method:"POST",headers:dt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function Ig(e){const n=await(await rt(`${nd}/model`,{method:"POST",headers:dt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function xje(e,t){const r=await(await rt(`${nd}/bot/section/${e}`,{method:"POST",headers:dt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function gC(e,t){const r=await(await rt(`${nd}/model/section/${e}`,{method:"POST",headers:dt(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}const bje=vn.create({baseURL:"",timeout:1e4});async function TE(){try{return(await bje.post("/api/webui/system/restart")).data}catch(e){throw console.error("重启麦麦失败:",e),e}}const wje=Zu("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),rx=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx("div",{ref:r,role:"alert",className:ce(wje({variant:t}),e),...n}));rx.displayName="Alert";const jje=y.forwardRef(({className:e,...t},n)=>i.jsx("h5",{ref:n,className:ce("mb-1 font-medium leading-none tracking-tight",e),...t}));jje.displayName="AlertTitle";const ax=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ce("text-sm [&_p]:leading-relaxed",e),...t}));ax.displayName="AlertDescription";function kE({onRestartComplete:e,onRestartFailed:t}){const[n,r]=y.useState(0),[a,s]=y.useState("restarting"),[l,u]=y.useState(0),[d,f]=y.useState(0);y.useEffect(()=>{const g=setInterval(()=>{r(w=>w>=90?w:w+1)},200),x=setInterval(()=>{u(w=>w+1)},1e3),j=setTimeout(()=>{s("checking"),m()},3e3);return()=>{clearInterval(g),clearInterval(x),clearTimeout(j)}},[]);const m=()=>{const x=async()=>{try{if(f(w=>w+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)r(100),s("success"),setTimeout(()=>{e?.()},1500);else throw new Error("Status check failed")}catch{d<60?setTimeout(x,2e3):(s("failed"),t?.())}};x()},p=g=>{const x=Math.floor(g/60),j=g%60;return`${x}:${j.toString().padStart(2,"0")}`};return i.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:i.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[i.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[a==="restarting"&&i.jsxs(i.Fragment,{children:[i.jsx(gh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),a==="checking"&&i.jsxs(i.Fragment,{children:[i.jsx(gh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),i.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",d,"/60)"]})]}),a==="success"&&i.jsxs(i.Fragment,{children:[i.jsx(Pr,{className:"h-16 w-16 text-green-500"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),a==="failed"&&i.jsxs(i.Fragment,{children:[i.jsx(gl,{className:"h-16 w-16 text-destructive"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),a!=="failed"&&i.jsxs("div",{className:"space-y-2",children:[i.jsx($h,{value:n,className:"h-2"}),i.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[i.jsxs("span",{children:[n,"%"]}),i.jsxs("span",{children:["已用时: ",p(l)]})]})]}),i.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:i.jsxs("p",{className:"text-sm text-muted-foreground",children:[a==="restarting"&&"🔄 配置已保存,正在重启主程序...",a==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",a==="success"&&"✅ 配置已生效,服务运行正常",a==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),a==="failed"&&i.jsxs("div",{className:"flex gap-2",children:[i.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),i.jsx("button",{onClick:()=>{s("checking"),f(0),m()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function Sje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),{toast:g}=yr(),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[T,M]=y.useState(null),[R,B]=y.useState(null),[$,H]=y.useState(null),[V,q]=y.useState(null),[G,L]=y.useState(null),[D,U]=y.useState(null),[K,J]=y.useState(null),[I,z]=y.useState(null),[Y,te]=y.useState(null),[ae,ge]=y.useState(null),[ee,Se]=y.useState(null),[re,we]=y.useState(null),[je,fe]=y.useState(null),Le=y.useRef(null),Oe=y.useRef(!0),We=y.useRef({}),be=y.useCallback(async()=>{try{t(!0);const ue=await yje();We.current=ue,j(ue.bot),b(ue.personality);const Ve=ue.chat;Ve.talk_value_rules||(Ve.talk_value_rules=[]),E(Ve),A(ue.expression),k(ue.emoji),M(ue.memory),B(ue.tool),H(ue.mood),q(ue.voice),L(ue.lpmm_knowledge),U(ue.keyword_reaction),J(ue.response_post_process),z(ue.chinese_typo),te(ue.response_splitter),ge(ue.log),Se(ue.debug),we(ue.maim_message),fe(ue.telemetry),u(!1),Oe.current=!1}catch(ue){console.error("加载配置失败:",ue),g({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[g]);y.useEffect(()=>{be()},[be]);const Ae=y.useCallback(async(ue,Ve)=>{if(!Oe.current)try{s(!0),await xje(ue,Ve),u(!1)}catch(Mn){console.error(`自动保存 ${ue} 失败:`,Mn),u(!0)}finally{s(!1)}},[]),ke=y.useCallback((ue,Ve)=>{Oe.current||(u(!0),Le.current&&clearTimeout(Le.current),Le.current=setTimeout(()=>{Ae(ue,Ve)},2e3))},[Ae]);y.useEffect(()=>{x&&!Oe.current&&ke("bot",x)},[x,ke]),y.useEffect(()=>{w&&!Oe.current&&ke("personality",w)},[w,ke]),y.useEffect(()=>{N&&!Oe.current&&ke("chat",N)},[N,ke]),y.useEffect(()=>{O&&!Oe.current&&ke("expression",O)},[O,ke]),y.useEffect(()=>{C&&!Oe.current&&ke("emoji",C)},[C,ke]),y.useEffect(()=>{T&&!Oe.current&&ke("memory",T)},[T,ke]),y.useEffect(()=>{R&&!Oe.current&&ke("tool",R)},[R,ke]),y.useEffect(()=>{$&&!Oe.current&&ke("mood",$)},[$,ke]),y.useEffect(()=>{V&&!Oe.current&&ke("voice",V)},[V,ke]),y.useEffect(()=>{G&&!Oe.current&&ke("lpmm_knowledge",G)},[G,ke]),y.useEffect(()=>{D&&!Oe.current&&ke("keyword_reaction",D)},[D,ke]),y.useEffect(()=>{K&&!Oe.current&&ke("response_post_process",K)},[K,ke]),y.useEffect(()=>{I&&!Oe.current&&ke("chinese_typo",I)},[I,ke]),y.useEffect(()=>{Y&&!Oe.current&&ke("response_splitter",Y)},[Y,ke]),y.useEffect(()=>{ae&&!Oe.current&&ke("log",ae)},[ae,ke]),y.useEffect(()=>{ee&&!Oe.current&&ke("debug",ee)},[ee,ke]),y.useEffect(()=>{re&&!Oe.current&&ke("maim_message",re)},[re,ke]),y.useEffect(()=>{je&&!Oe.current&&ke("telemetry",je)},[je,ke]);const Qt=async()=>{try{r(!0),Le.current&&clearTimeout(Le.current);const ue={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:$,voice:V,lpmm_knowledge:G,keyword_reaction:D,response_post_process:K,chinese_typo:I,response_splitter:Y,log:ae,debug:ee,maim_message:re,telemetry:je};await kL(ue),u(!1),g({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(ue){console.error("保存配置失败:",ue),g({title:"保存失败",description:ue.message,variant:"destructive"})}finally{r(!1)}},St=async()=>{try{f(!0),TE().catch(()=>{}),p(!0)}catch(ue){console.error("重启失败:",ue),p(!1),g({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),f(!1)}},Tt=async()=>{try{r(!0),Le.current&&clearTimeout(Le.current);const ue={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:$,voice:V,lpmm_knowledge:G,keyword_reaction:D,response_post_process:K,chinese_typo:I,response_splitter:Y,log:ae,debug:ee,maim_message:re,telemetry:je};await kL(ue),u(!1),g({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(Ve=>setTimeout(Ve,500)),await St()}catch(ue){console.error("保存失败:",ue),g({title:"保存失败",description:ue.message,variant:"destructive"})}finally{r(!1)}},Sn=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},le=()=>{p(!1),f(!1),g({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return e?i.jsx(Wt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:Qt,disabled:n||a||!l||d,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(sE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:n||a||d,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(iE,{className:"mr-2 h-4 w-4"}),d?"重启中...":l?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:l?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:l?Tt:St,children:l?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(rx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(ax,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(dl,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(eo,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Rt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Rt,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Rt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Rt,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Rt,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Rt,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Rt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Rt,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Rt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Rt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(sn,{value:"bot",className:"space-y-4",children:x&&i.jsx(_je,{config:x,onChange:j})}),i.jsx(sn,{value:"personality",className:"space-y-4",children:w&&i.jsx(Nje,{config:w,onChange:b})}),i.jsx(sn,{value:"chat",className:"space-y-4",children:N&&i.jsx(Cje,{config:N,onChange:E})}),i.jsx(sn,{value:"expression",className:"space-y-4",children:O&&i.jsx(Oje,{config:O,onChange:A})}),i.jsx(sn,{value:"features",className:"space-y-4",children:C&&T&&R&&i.jsx(Eje,{emojiConfig:C,memoryConfig:T,toolConfig:R,onEmojiChange:k,onMemoryChange:M,onToolChange:B})}),i.jsx(sn,{value:"processing",className:"space-y-4",children:D&&K&&I&&Y&&i.jsx(Aje,{keywordReactionConfig:D,responsePostProcessConfig:K,chineseTypoConfig:I,responseSplitterConfig:Y,onKeywordReactionChange:U,onResponsePostProcessChange:J,onChineseTypoChange:z,onResponseSplitterChange:te})}),i.jsx(sn,{value:"mood",className:"space-y-4",children:$&&i.jsx(Tje,{config:$,onChange:H})}),i.jsx(sn,{value:"voice",className:"space-y-4",children:V&&i.jsx(kje,{config:V,onChange:q})}),i.jsx(sn,{value:"lpmm",className:"space-y-4",children:G&&i.jsx(Mje,{config:G,onChange:L})}),i.jsxs(sn,{value:"other",className:"space-y-4",children:[ae&&i.jsx(Pje,{config:ae,onChange:ge}),ee&&i.jsx(Rje,{config:ee,onChange:Se}),re&&i.jsx(Dje,{config:re,onChange:we}),je&&i.jsx($je,{config:je,onChange:fe})]})]}),m&&i.jsx(kE,{onRestartComplete:Sn,onRestartFailed:le})]})})}function _je({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},s=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"platform",children:"平台"}),i.jsx(Ne,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ne,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"其他平台账号"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"别名"}),i.jsxs(oe,{onClick:s,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function Nje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=s=>{t({...e,states:e.states.filter((l,u)=>u!==s)})},a=(s,l)=>{const u=[...e.states];u[s]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"personality",children:"人格特质"}),i.jsx(Xt,{id:"personality",value:e.personality,onChange:s=>t({...e,personality:s.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Xt,{id:"reply_style",value:e.reply_style,onChange:s=>t({...e,reply_style:s.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"interest",children:"兴趣"}),i.jsx(Xt,{id:"interest",value:e.interest,onChange:s=>t({...e,interest:s.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Xt,{id:"plan_style",value:e.plan_style,onChange:s=>t({...e,plan_style:s.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Xt,{id:"visual_style",value:e.visual_style,onChange:s=>t({...e,visual_style:s.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Xt,{id:"private_plan_style",value:e.private_plan_style,onChange:s=>t({...e,private_plan_style:s.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"状态列表(人格多样性)"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((s,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Xt,{value:s,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsx(hn,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ne,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:s=>t({...e,state_probability:parseFloat(s.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function Cje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},s=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[w,b]=y.useState("59");y.useEffect(()=>{const E=u.split("-");if(E.length===2){const[O,A]=E,[C,k]=O.split(":"),[T,M]=A.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),T&&j(T.padStart(2,"0")),M&&b(M.padStart(2,"0"))}},[u]);const N=(E,O,A,C)=>{const k=`${E}:${O}-${A}:${C}`;d(k)};return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(ll,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(ds,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"小时"}),i.jsxs(Dt,{value:f,onValueChange:E=>{m(E),N(E,p,x,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"分钟"}),i.jsxs(Dt,{value:p,onValueChange:E=>{g(E),N(f,E,x,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"小时"}),i.jsxs(Dt,{value:x,onValueChange:E=>{j(E),N(f,p,E,w)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs",children:"分钟"}),i.jsxs(Dt,{value:w,onValueChange:E=>{b(E),N(f,p,x,E)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(De,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ne,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ne,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ne,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ne,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(Q,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(Q,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(oe,{onClick:n,size:"sm",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{variant:"ghost",size:"sm",children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Dt,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"global",children:"全局配置"}),i.jsx(De,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Dt,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"qq",children:"QQ"}),i.jsx(De,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Dt,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"group",children:"群组(group)"}),i.jsx(De,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(s,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ne,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(Wy,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function Oje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const w=[...e.learning_list];w[g][x]=j,t({...e,learning_list:w})},s=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:w})=>{const b=w.includes(g)||g==="*",[N,E]=y.useState(!b);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ne,{value:g,onChange:O=>p(x,j,O.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),w.length>0&&i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(Dt,{value:g,onValueChange:O=>p(x,j,O),children:[i.jsx(Ot,{className:"flex-1",children:i.jsx($t,{placeholder:"选择聊天流"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"*",children:"* (全局共享)"}),w.map((O,A)=>i.jsx(De,{value:O,children:O},A))]})]}),i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((w,b)=>b!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const w=[...e.expression_groups];w[g][x]=j,t({...e,expression_groups:w})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((A,C)=>C!==x&&A[0]===""),w=g[0]==="",b=g[0].split(":"),N=b[0]||"qq",E=b[1]||"",O=b[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",w&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(s,{rule:g}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(Dt,{value:w?"global":"specific",onValueChange:A=>{A==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!w,children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"global",children:"全局配置"}),i.jsx(De,{value:"specific",disabled:j&&!w,children:"详细配置"})]})]}),j&&!w&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!w&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"平台"}),i.jsxs(Dt,{value:N,onValueChange:A=>{a(x,0,`${A}:${E}:${O}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"qq",children:"QQ"}),i.jsx(De,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ne,{value:E,onChange:A=>{a(x,0,`${N}:${A.target.value}:${O}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"类型"}),i.jsxs(Dt,{value:O,onValueChange:A=>{a(x,0,`${N}:${E}:${A}`)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"group",children:"群组(group)"}),i.jsx(De,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(lt,{checked:g[1]==="enable",onCheckedChange:A=>a(x,1,A?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(lt,{checked:g[2]==="enable",onCheckedChange:A=>a(x,2,A?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:A=>{const C=parseFloat(A.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(Wy,{value:[parseFloat(g[3])||1],onValueChange:A=>a(x,3,A[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(oe,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(w=>w[0]).filter(w=>w!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(ir,{className:"h-4 w-4"})}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((w,b)=>i.jsx(l,{member:w,groupIndex:x,memberIndex:b,availableChatIds:j},b))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function Eje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:s}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>s({...n,enable_tool:l})}),i.jsx(Q,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ne,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ne,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ne,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ne,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(Q,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(Q,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(Q,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ne,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function Aje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:s,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=A=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==A)})},m=(A,C,k)=>{const T=[...e.regex_rules];C==="regex"&&typeof k=="string"?T[A]={...T[A],regex:[k]}:C==="reaction"&&typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,regex_rules:T})},p=({regex:A,reaction:C,onRegexChange:k,onReactionChange:T})=>{const[M,R]=y.useState(!1),[B,$]=y.useState(""),[H,V]=y.useState(null),[q,G]=y.useState(""),[L,D]=y.useState({}),[U,K]=y.useState(""),J=y.useRef(null),[I,z]=y.useState("build"),Y=ee=>ee.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),te=(ee,Se=0)=>{const re=J.current;if(!re)return;const we=re.selectionStart||0,je=re.selectionEnd||0,fe=A.substring(0,we)+ee+A.substring(je);k(fe),setTimeout(()=>{const Le=we+ee.length+Se;re.setSelectionRange(Le,Le),re.focus()},0)};y.useEffect(()=>{if(!A||!B){V(null),D({}),K(C),G("");return}try{const ee=Y(A),Se=new RegExp(ee,"g"),re=B.match(Se);V(re),G("");const je=new RegExp(ee).exec(B);if(je&&je.groups){D(je.groups);let fe=C;Object.entries(je.groups).forEach(([Le,Oe])=>{fe=fe.replace(new RegExp(`\\[${Le}\\]`,"g"),Oe||"")}),K(fe)}else D({}),K(C)}catch(ee){G(ee.message),V(null),D({}),K(C)}},[A,B,C]);const ae=()=>{if(!B||!H||H.length===0)return i.jsx("span",{className:"text-muted-foreground",children:B||"请输入测试文本"});try{const ee=Y(A),Se=new RegExp(ee,"g");let re=0;const we=[];let je;for(;(je=Se.exec(B))!==null;)je.index>re&&we.push(i.jsx("span",{children:B.substring(re,je.index)},`text-${re}`)),we.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),re=je.index+je[0].length;return re)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(sr,{open:M,onOpenChange:R,children:[i.jsx(i8,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Og,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"正则表达式编辑器"}),i.jsx(vr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Wt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(dl,{value:I,onValueChange:ee=>z(ee),className:"w-full",children:[i.jsxs(eo,{className:"grid w-full grid-cols-2",children:[i.jsx(Rt,{value:"build",children:"🔧 构建器"}),i.jsx(Rt,{value:"test",children:"🧪 测试器"})]}),i.jsxs(sn,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ne,{ref:J,value:A,onChange:ee=>k(ee.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Xt,{value:C,onChange:ee=>T(ee.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[ge.map(ee=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ee.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ee.items.map(Se=>i.jsx(oe,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>te(Se.pattern,Se.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:Se.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:Se.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:Se.desc})]})},Se.label))})]},ee.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(sn,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:A||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Xt,{id:"test-text",value:B,onChange:ee=>$(ee.target.value),placeholder:`在此输入要测试的文本... -例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),q&&i.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[i.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),i.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:q})]}),!q&&B&&i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex items-center gap-2",children:H&&H.length>0?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),i.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",H.length," 处)"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),i.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"匹配高亮"}),i.jsx(Wt,{className:"h-40 rounded-md bg-muted p-3",children:i.jsx("div",{className:"text-sm break-words",children:ae()})})]}),Object.keys(L).length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"命名捕获组"}),i.jsx(Wt,{className:"h-32 rounded-md border p-3",children:i.jsx("div",{className:"space-y-2",children:Object.entries(L).map(([ee,Se])=>i.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ee,"]"]}),i.jsx("span",{className:"text-muted-foreground",children:"="}),i.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:Se})]},ee))})})]}),Object.keys(L).length>0&&C&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{className:"text-sm font-medium",children:"Reaction 替换预览"}),i.jsx(Wt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:i.jsx("div",{className:"text-sm break-words",children:U})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),i.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),i.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),i.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},g=()=>{a({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},x=A=>{a({...e,keyword_rules:e.keyword_rules.filter((C,k)=>k!==A)})},j=(A,C,k)=>{const T=[...e.keyword_rules];typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,keyword_rules:T})},w=A=>{const C=[...e.keyword_rules];C[A]={...C[A],keywords:[...C[A].keywords||[],""]},a({...e,keyword_rules:C})},b=(A,C)=>{const k=[...e.keyword_rules];k[A]={...k[A],keywords:(k[A].keywords||[]).filter((T,M)=>M!==C)},a({...e,keyword_rules:k})},N=(A,C,k)=>{const T=[...e.keyword_rules],M=[...T[A].keywords||[]];M[C]=k,T[A]={...T[A],keywords:M},a({...e,keyword_rules:T})},E=({rule:A})=>{const C=`{ regex = [${(A.regex||[]).map(k=>`"${k}"`).join(", ")}], reaction = "${A.reaction}" }`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Wt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},O=({rule:A})=>{const C=`[[keyword_reaction.keyword_rules]] -keywords = [${(A.keywords||[]).map(k=>`"${k}"`).join(", ")}] -reaction = "${A.reaction}"`;return i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Va,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(ds,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Wt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),i.jsxs(oe,{onClick:d,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(p,{regex:A.regex&&A.regex[0]||"",reaction:A.reaction,onRegexChange:k=>m(C,"regex",k),onReactionChange:k=>m(C,"reaction",k)}),i.jsx(E,{rule:A}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除正则规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>f(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),i.jsx(Ne,{value:A.regex&&A.regex[0]||"",onChange:k=>m(C,"regex",k.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Xt,{value:A.reaction,onChange:k=>m(C,"reaction",k.target.value),placeholder:`触发后麦麦的反应... -可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(oe,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(O,{rule:A}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(oe,{onClick:()=>w(C),size:"sm",variant:"ghost",children:[i.jsx(ir,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(A.keywords||[]).map((k,T)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ne,{value:k,onChange:M=>N(C,T,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(oe,{onClick:()=>b(C,T),size:"sm",variant:"ghost",children:i.jsx(It,{className:"h-4 w-4"})})]},T)),(!A.keywords||A.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Xt,{value:A.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:A=>s({...t,enable_response_post_process:A})}),i.jsx(Q,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(lt,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:A=>l({...n,enable:A})}),i.jsx(Q,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ne,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:A=>l({...n,error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ne,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:A=>l({...n,min_freq:parseInt(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ne,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:A=>l({...n,tone_error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ne,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:A=>l({...n,word_replace_rate:parseFloat(A.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(lt,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:A=>u({...r,enable:A})}),i.jsx(Q,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ne,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:A=>u({...r,max_length:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ne,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:A=>u({...r,max_sentence_num:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:A=>u({...r,enable_kaomoji_protection:A})}),i.jsx(Q,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:A=>u({...r,enable_overflow_return_all:A})}),i.jsx(Q,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function Tje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"情绪更新阈值"}),i.jsx(Ne,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"情感特征"}),i.jsx(Xt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function kje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function Mje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(Q,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"LPMM 模式"}),i.jsxs(Dt,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(Ot,{children:i.jsx($t,{placeholder:"选择 LPMM 模式"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"classic",children:"经典模式"}),i.jsx(De,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"同义词搜索 TopK"}),i.jsx(Ne,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"同义词阈值"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"实体提取线程数"}),i.jsx(Ne,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"嵌入向量维度"}),i.jsx(Ne,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function Pje({config:e,onChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),s("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日期格式"}),i.jsx(Ne,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日志级别样式"}),i.jsxs(Dt,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:p.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"日志文本颜色"}),i.jsxs(Dt,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:g.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"全局日志级别"}),i.jsxs(Dt,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"控制台日志级别"}),i.jsxs(Dt,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"文件日志级别"}),i.jsxs(Dt,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(oe,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(Dt,{value:a,onValueChange:s,children:[i.jsx(Ot,{className:"w-32",children:i.jsx($t,{})}),i.jsx(Et,{children:m.map(x=>i.jsx(De,{value:x,children:x},x))})]}),i.jsx(oe,{onClick:d,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function Rje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(lt,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(lt,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(lt,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(lt,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function Dje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},s=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(lt,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"主机地址"}),i.jsx(Ne,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"端口号"}),i.jsx(Ne,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"连接模式"}),i.jsxs(Dt,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"ws",children:"WebSocket (ws)"}),i.jsx(De,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(Q,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"SSL 证书文件路径"}),i.jsx(Ne,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"SSL 密钥文件路径"}),i.jsx(Ne,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ne,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(oe,{onClick:a,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>s(u),children:i.jsx(It,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function $je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(Q,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(lt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const kl=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:ce("w-full caption-bottom text-sm",e),...t})}));kl.displayName="Table";const Ml=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:ce("[&_tr]:border-b",e),...t}));Ml.displayName="TableHeader";const Pl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:ce("[&_tr:last-child]:border-0",e),...t}));Pl.displayName="TableBody";const Ije=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:ce("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));Ije.displayName="TableFooter";const An=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:ce("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));An.displayName="TableRow";const nt=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:ce("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));nt.displayName="TableHead";const Ge=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:ce("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Ge.displayName="TableCell";const Lje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:ce("mt-4 text-sm text-muted-foreground",e),...t}));Lje.displayName="TableCaption";var ix="Checkbox",[Bje]=gr(ix),[zje,ME]=Bje(ix);function qje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Ea({prop:n,defaultProp:a??!1,onChange:d,caller:ix}),[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useRef(!1),O=j?!!l||!!j.closest("form"):!0,A={checked:g,disabled:s,setChecked:x,control:j,setControl:w,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:E,required:f,defaultChecked:Js(a)?!1:a,isFormControl:O,bubbleInput:b,setBubbleInput:N};return i.jsx(zje,{scope:t,...A,children:Fje(p)?p(A):r})}var lH="CheckboxTrigger",cH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:s,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=ME(lH,e),w=Ue(a,m),b=y.useRef(d);return y.useEffect(()=>{const N=s?.form;if(N){const E=()=>p(b.current);return N.addEventListener("reset",E),()=>N.removeEventListener("reset",E)}},[s,p]),i.jsx($e.button,{type:"button",role:"checkbox","aria-checked":Js(d)?"mixed":d,"aria-required":f,"data-state":mH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:w,onKeyDown:_e(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:_e(n,N=>{p(E=>Js(E)?!0:!E),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});cH.displayName=lH;var PE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(qje,{__scopeCheckbox:n,checked:a,defaultChecked:s,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(cH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(hH,{__scopeCheckbox:n})]})})});PE.displayName=ix;var uH="CheckboxIndicator",dH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,s=ME(uH,n);return i.jsx(Bn,{present:r||Js(s.checked)||s.checked===!0,children:i.jsx($e.span,{"data-state":mH(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});dH.displayName=uH;var fH="CheckboxBubbleInput",hH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:s,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=ME(fH,e),j=Ue(n,x),w=Dy(s),b=$y(r);y.useEffect(()=>{const E=g;if(!E)return;const O=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(O,"checked").set,k=!a.current;if(w!==s&&C){const T=new Event("click",{bubbles:k});E.indeterminate=Js(s),C.call(E,Js(s)?!1:s),E.dispatchEvent(T)}},[g,w,s,a]);const N=y.useRef(Js(s)?!1:s);return i.jsx($e.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});hH.displayName=fH;function Fje(e){return typeof e=="function"}function Js(e){return e==="indeterminate"}function mH(e){return Js(e)?"indeterminate":e?"checked":"unchecked"}const io=y.forwardRef(({className:e,...t},n)=>i.jsx(PE,{ref:n,className:ce("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(dH,{className:ce("grid place-content-center text-current"),children:i.jsx(ol,{className:"h-4 w-4"})})}));io.displayName=PE.displayName;function Uje(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(!1),[B,$]=y.useState(""),[H,V]=y.useState(new Set),[q,G]=y.useState(!1),{toast:L}=yr(),D=y.useRef(null),U=y.useRef(!0);y.useEffect(()=>{K()},[]);const K=async()=>{try{r(!0);const be=await Jc();t(be.api_providers||[]),f(!1),U.current=!1}catch(be){console.error("加载配置失败:",be)}finally{r(!1)}},J=async()=>{try{p(!0),TE().catch(()=>{}),x(!0)}catch(be){console.error("重启失败:",be),x(!1),L({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),p(!1)}},I=async()=>{try{s(!0),D.current&&clearTimeout(D.current);const be=await Jc();be.api_providers=e,await Ig(be),f(!1),L({title:"保存成功",description:"正在重启麦麦..."}),await J()}catch(be){console.error("保存配置失败:",be),L({title:"保存失败",description:be.message,variant:"destructive"}),s(!1)}},z=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Y=()=>{x(!1),p(!1),L({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},te=y.useCallback(async be=>{if(!U.current)try{u(!0),await gC("api_providers",be),f(!1)}catch(Ae){console.error("自动保存失败:",Ae),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!U.current)return f(!0),D.current&&clearTimeout(D.current),D.current=setTimeout(()=>{te(e)},2e3),()=>{D.current&&clearTimeout(D.current)}},[e,te]);const ae=async()=>{try{s(!0),D.current&&clearTimeout(D.current);const be=await Jc();be.api_providers=e,await Ig(be),f(!1),L({title:"保存成功",description:"模型提供商配置已保存"})}catch(be){console.error("保存配置失败:",be),L({title:"保存失败",description:be.message,variant:"destructive"})}finally{s(!1)}},ge=(be,Ae)=>{N(be||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),O(Ae),R(!1),w(!0)},ee=async()=>{if(b?.api_key)try{await navigator.clipboard.writeText(b.api_key),L({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{L({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},Se=()=>{if(b){if(E!==null){const be=[...e];be[E]=b,t(be)}else t([...e,b]);w(!1),N(null),O(null)}},re=be=>{T(be),C(!0)},we=()=>{if(k!==null){const be=e.filter((Ae,ke)=>ke!==k);t(be),L({title:"删除成功",description:"提供商已从列表中移除"})}C(!1),T(null)},je=be=>{const Ae=new Set(H);Ae.has(be)?Ae.delete(be):Ae.add(be),V(Ae)},fe=()=>{if(H.size===We.length)V(new Set);else{const be=We.map((Ae,ke)=>e.findIndex(Qt=>Qt===We[ke]));V(new Set(be))}},Le=()=>{if(H.size===0){L({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}G(!0)},Oe=()=>{const be=e.filter((Ae,ke)=>!H.has(ke));t(be),V(new Set),G(!1),L({title:"批量删除成功",description:`已删除 ${H.size} 个提供商`})},We=e.filter(be=>{if(!B)return!0;const Ae=B.toLowerCase();return be.name.toLowerCase().includes(Ae)||be.base_url.toLowerCase().includes(Ae)||be.client_type.toLowerCase().includes(Ae)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[H.size>0&&i.jsxs(oe,{onClick:Le,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(It,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",H.size,")"]}),i.jsxs(oe,{onClick:()=>ge(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(oe,{onClick:ae,disabled:a||l||!d||m,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(sE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:a||l||m,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(iE,{className:"mr-2 h-4 w-4"}),m?"重启中...":d?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:d?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:d?I:J,children:d?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(rx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(ax,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(Wt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索提供商名称、URL 或类型...",value:B,onChange:be=>$(be.target.value),className:"pl-9"})]}),B&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",We.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:We.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:B?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):We.map((be,Ae)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:be.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:be.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ge(be,Ae),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>re(Ae),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:be.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:be.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:be.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:be.retry_interval})]})]})]},Ae))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-12",children:i.jsx(io,{checked:H.size===We.length&&We.length>0,onCheckedChange:fe})}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"基础URL"}),i.jsx(nt,{children:"客户端类型"}),i.jsx(nt,{className:"text-right",children:"最大重试"}),i.jsx(nt,{className:"text-right",children:"超时(秒)"}),i.jsx(nt,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:We.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:8,className:"text-center text-muted-foreground py-8",children:B?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):We.map((be,Ae)=>{const ke=e.findIndex(Qt=>Qt===be);return i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(io,{checked:H.has(ke),onCheckedChange:()=>je(ke)})}),i.jsx(Ge,{className:"font-medium",children:be.name}),i.jsx(Ge,{className:"max-w-xs truncate",title:be.base_url,children:be.base_url}),i.jsx(Ge,{children:be.client_type}),i.jsx(Ge,{className:"text-right",children:be.max_retry}),i.jsx(Ge,{className:"text-right",children:be.timeout}),i.jsx(Ge,{className:"text-right",children:be.retry_interval}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ge(be,ke),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>re(ke),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Ae)})})]})})]}),i.jsx(sr,{open:j,onOpenChange:w,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:E!==null?"编辑提供商":"添加提供商"}),i.jsx(vr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"name",children:"名称 *"}),i.jsx(Ne,{id:"name",value:b?.name||"",onChange:be=>N(Ae=>Ae?{...Ae,name:be.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ne,{id:"base_url",value:b?.base_url||"",onChange:be=>N(Ae=>Ae?{...Ae,base_url:be.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ne,{id:"api_key",type:M?"text":"password",value:b?.api_key||"",onChange:be=>N(Ae=>Ae?{...Ae,api_key:be.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:()=>R(!M),title:M?"隐藏密钥":"显示密钥",children:M?i.jsx(eC,{className:"h-4 w-4"}):i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:ee,title:"复制密钥",children:i.jsx(QN,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(Dt,{value:b?.client_type||"openai",onValueChange:be=>N(Ae=>Ae?{...Ae,client_type:be}:null),children:[i.jsx(Ot,{id:"client_type",children:i.jsx($t,{placeholder:"选择客户端类型"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"openai",children:"OpenAI"}),i.jsx(De,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ne,{id:"max_retry",type:"number",min:"0",value:b?.max_retry||2,onChange:be=>N(Ae=>Ae?{...Ae,max_retry:parseInt(be.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ne,{id:"timeout",type:"number",min:"1",value:b?.timeout||30,onChange:be=>N(Ae=>Ae?{...Ae,timeout:parseInt(be.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ne,{id:"retry_interval",type:"number",min:"1",value:b?.retry_interval||10,onChange:be=>N(Ae=>Ae?{...Ae,retry_interval:parseInt(be.target.value)}:null)})]})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>w(!1),children:"取消"}),i.jsx(oe,{onClick:Se,children:"保存"})]})]})}),i.jsx(bn,{open:A,onOpenChange:C,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除提供商 "',k!==null?e[k]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:we,children:"删除"})]})]})}),i.jsx(bn,{open:q,onOpenChange:G,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认批量删除"}),i.jsxs(hn,{children:["确定要删除选中的 ",H.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:Oe,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),g&&i.jsx(kE,{onRestartComplete:z,onRestartFailed:Y})]})}var ML=1,Hje=.9,Wje=.8,Vje=.17,u_=.1,d_=.999,Gje=.9999,Yje=.99,Kje=/[\\\/_+.#"@\[\(\{&]/,Xje=/[\\\/_+.#"@\[\(\{&]/g,Zje=/[\s-]/,pH=/[\s-]/g;function yC(e,t,n,r,a,s,l){if(s===t.length)return a===e.length?ML:Yje;var u=`${a},${s}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(s),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=yC(e,t,n,r,f+1,s+1,l),p>m&&(f===a?p*=ML:Kje.test(e.charAt(f-1))?(p*=Wje,x=e.slice(a,f-1).match(Xje),x&&a>0&&(p*=Math.pow(d_,x.length))):Zje.test(e.charAt(f-1))?(p*=Hje,j=e.slice(a,f-1).match(pH),j&&a>0&&(p*=Math.pow(d_,j.length))):(p*=Vje,a>0&&(p*=Math.pow(d_,f-a))),e.charAt(f)!==t.charAt(s)&&(p*=Gje)),(pp&&(p=g*u_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function PL(e){return e.toLowerCase().replace(pH," ")}function Qje(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,yC(e,t,PL(e),PL(t),0,0,{})}var Jje=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],go=Jje.reduce((e,t)=>{const n=Dh(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),ff='[cmdk-group=""]',f_='[cmdk-group-items=""]',e1e='[cmdk-group-heading=""]',vH='[cmdk-item=""]',RL=`${vH}:not([aria-disabled="true"])`,xC="cmdk-item-select",Ic="data-value",t1e=(e,t,n)=>Qje(e,t,n),gH=y.createContext(void 0),tm=()=>y.useContext(gH),yH=y.createContext(void 0),RE=()=>y.useContext(yH),xH=y.createContext(void 0),bH=y.forwardRef((e,t)=>{let n=Lc(()=>{var z,Y;return{search:"",value:(Y=(z=e.value)!=null?z:e.defaultValue)!=null?Y:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=Lc(()=>new Set),a=Lc(()=>new Map),s=Lc(()=>new Map),l=Lc(()=>new Set),u=wH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:w=!1,vimBindings:b=!0,...N}=e,E=Gn(),O=Gn(),A=Gn(),C=y.useRef(null),k=f1e();jl(()=>{if(m!==void 0){let z=m.trim();n.current.value=z,T.emit()}},[m]),jl(()=>{k(6,V)},[]);let T=y.useMemo(()=>({subscribe:z=>(l.current.add(z),()=>l.current.delete(z)),snapshot:()=>n.current,setState:(z,Y,te)=>{var ae,ge,ee,Se;if(!Object.is(n.current[z],Y)){if(n.current[z]=Y,z==="search")H(),B(),k(1,$);else if(z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let re=document.getElementById(A);re?re.focus():(ae=document.getElementById(E))==null||ae.focus()}if(k(7,()=>{var re;n.current.selectedItemId=(re=q())==null?void 0:re.id,T.emit()}),te||k(5,V),((ge=u.current)==null?void 0:ge.value)!==void 0){let re=Y??"";(Se=(ee=u.current).onValueChange)==null||Se.call(ee,re);return}}T.emit()}},emit:()=>{l.current.forEach(z=>z())}}),[]),M=y.useMemo(()=>({value:(z,Y,te)=>{var ae;Y!==((ae=s.current.get(z))==null?void 0:ae.value)&&(s.current.set(z,{value:Y,keywords:te}),n.current.filtered.items.set(z,R(Y,te)),k(2,()=>{B(),T.emit()}))},item:(z,Y)=>(r.current.add(z),Y&&(a.current.has(Y)?a.current.get(Y).add(z):a.current.set(Y,new Set([z]))),k(3,()=>{H(),B(),n.current.value||$(),T.emit()}),()=>{s.current.delete(z),r.current.delete(z),n.current.filtered.items.delete(z);let te=q();k(4,()=>{H(),te?.getAttribute("id")===z&&$(),T.emit()})}),group:z=>(a.current.has(z)||a.current.set(z,new Set),()=>{s.current.delete(z),a.current.delete(z)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:E,inputId:A,labelId:O,listInnerRef:C}),[]);function R(z,Y){var te,ae;let ge=(ae=(te=u.current)==null?void 0:te.filter)!=null?ae:t1e;return z?ge(z,n.current.search,Y):0}function B(){if(!n.current.search||u.current.shouldFilter===!1)return;let z=n.current.filtered.items,Y=[];n.current.filtered.groups.forEach(ae=>{let ge=a.current.get(ae),ee=0;ge.forEach(Se=>{let re=z.get(Se);ee=Math.max(re,ee)}),Y.push([ae,ee])});let te=C.current;G().sort((ae,ge)=>{var ee,Se;let re=ae.getAttribute("id"),we=ge.getAttribute("id");return((ee=z.get(we))!=null?ee:0)-((Se=z.get(re))!=null?Se:0)}).forEach(ae=>{let ge=ae.closest(f_);ge?ge.appendChild(ae.parentElement===ge?ae:ae.closest(`${f_} > *`)):te.appendChild(ae.parentElement===te?ae:ae.closest(`${f_} > *`))}),Y.sort((ae,ge)=>ge[1]-ae[1]).forEach(ae=>{var ge;let ee=(ge=C.current)==null?void 0:ge.querySelector(`${ff}[${Ic}="${encodeURIComponent(ae[0])}"]`);ee?.parentElement.appendChild(ee)})}function $(){let z=G().find(te=>te.getAttribute("aria-disabled")!=="true"),Y=z?.getAttribute(Ic);T.setState("value",Y||void 0)}function H(){var z,Y,te,ae;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let ge=0;for(let ee of r.current){let Se=(Y=(z=s.current.get(ee))==null?void 0:z.value)!=null?Y:"",re=(ae=(te=s.current.get(ee))==null?void 0:te.keywords)!=null?ae:[],we=R(Se,re);n.current.filtered.items.set(ee,we),we>0&&ge++}for(let[ee,Se]of a.current)for(let re of Se)if(n.current.filtered.items.get(re)>0){n.current.filtered.groups.add(ee);break}n.current.filtered.count=ge}function V(){var z,Y,te;let ae=q();ae&&(((z=ae.parentElement)==null?void 0:z.firstChild)===ae&&((te=(Y=ae.closest(ff))==null?void 0:Y.querySelector(e1e))==null||te.scrollIntoView({block:"nearest"})),ae.scrollIntoView({block:"nearest"}))}function q(){var z;return(z=C.current)==null?void 0:z.querySelector(`${vH}[aria-selected="true"]`)}function G(){var z;return Array.from(((z=C.current)==null?void 0:z.querySelectorAll(RL))||[])}function L(z){let Y=G()[z];Y&&T.setState("value",Y.getAttribute(Ic))}function D(z){var Y;let te=q(),ae=G(),ge=ae.findIndex(Se=>Se===te),ee=ae[ge+z];(Y=u.current)!=null&&Y.loop&&(ee=ge+z<0?ae[ae.length-1]:ge+z===ae.length?ae[0]:ae[ge+z]),ee&&T.setState("value",ee.getAttribute(Ic))}function U(z){let Y=q(),te=Y?.closest(ff),ae;for(;te&&!ae;)te=z>0?u1e(te,ff):d1e(te,ff),ae=te?.querySelector(RL);ae?T.setState("value",ae.getAttribute(Ic)):D(z)}let K=()=>L(G().length-1),J=z=>{z.preventDefault(),z.metaKey?K():z.altKey?U(1):D(1)},I=z=>{z.preventDefault(),z.metaKey?L(0):z.altKey?U(-1):D(-1)};return y.createElement(go.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:z=>{var Y;(Y=N.onKeyDown)==null||Y.call(N,z);let te=z.nativeEvent.isComposing||z.keyCode===229;if(!(z.defaultPrevented||te))switch(z.key){case"n":case"j":{b&&z.ctrlKey&&J(z);break}case"ArrowDown":{J(z);break}case"p":case"k":{b&&z.ctrlKey&&I(z);break}case"ArrowUp":{I(z);break}case"Home":{z.preventDefault(),L(0);break}case"End":{z.preventDefault(),K();break}case"Enter":{z.preventDefault();let ae=q();if(ae){let ge=new Event(xC);ae.dispatchEvent(ge)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:m1e},d),sx(e,z=>y.createElement(yH.Provider,{value:T},y.createElement(gH.Provider,{value:M},z))))}),n1e=y.forwardRef((e,t)=>{var n,r;let a=Gn(),s=y.useRef(null),l=y.useContext(xH),u=tm(),d=wH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;jl(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=jH(a,s,[e.value,e.children,s],e.keywords),p=RE(),g=so(k=>k.value&&k.value===m.current),x=so(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=s.current;if(!(!k||e.disabled))return k.addEventListener(xC,j),()=>k.removeEventListener(xC,j)},[x,e.onSelect,e.disabled]);function j(){var k,T;w(),(T=(k=d.current).onSelect)==null||T.call(k,m.current)}function w(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:b,value:N,onSelect:E,forceMount:O,keywords:A,...C}=e;return y.createElement(go.div,{ref:Ir(s,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!g,"data-disabled":!!b,"data-selected":!!g,onPointerMove:b||u.getDisablePointerSelection()?void 0:w,onClick:b?void 0:j},e.children)}),r1e=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,l=Gn(),u=y.useRef(null),d=y.useRef(null),f=Gn(),m=tm(),p=so(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);jl(()=>m.group(l),[]),jH(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(go.div,{ref:Ir(u,t),...s,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),sx(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(xH.Provider,{value:g},x))))}),a1e=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),s=so(l=>!l.search);return!n&&!s?null:y.createElement(go.div,{ref:Ir(a,t),...r,"cmdk-separator":"",role:"separator"})}),i1e=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,s=RE(),l=so(f=>f.search),u=so(f=>f.selectedItemId),d=tm();return y.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),y.createElement(go.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||s.setState("search",f.target.value),n?.(f.target.value)}})}),s1e=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=y.useRef(null),l=y.useRef(null),u=so(f=>f.selectedItemId),d=tm();return y.useEffect(()=>{if(l.current&&s.current){let f=l.current,m=s.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(go.div,{ref:Ir(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},sx(e,f=>y.createElement("div",{ref:Ir(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),o1e=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:l,...u}=e;return y.createElement(mE,{open:n,onOpenChange:r},y.createElement(pE,{container:l},y.createElement(Fy,{"cmdk-overlay":"",className:a}),y.createElement(Uy,{"aria-label":e.label,"cmdk-dialog":"",className:s},y.createElement(bH,{ref:t,...u}))))}),l1e=y.forwardRef((e,t)=>so(n=>n.filtered.count===0)?y.createElement(go.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),c1e=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return y.createElement(go.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},sx(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Fr=Object.assign(bH,{List:s1e,Item:n1e,Input:i1e,Group:r1e,Separator:a1e,Dialog:o1e,Empty:l1e,Loading:c1e});function u1e(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function d1e(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function wH(e){let t=y.useRef(e);return jl(()=>{t.current=e}),t}var jl=typeof window>"u"?y.useEffect:y.useLayoutEffect;function Lc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function so(e){let t=RE(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function jH(e,t,n,r=[]){let a=y.useRef(),s=tm();return jl(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());s.value(e,u,d),(l=t.current)==null||l.setAttribute(Ic,u),a.current=u}),a}var f1e=()=>{let[e,t]=y.useState(),n=Lc(()=>new Map);return jl(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function h1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function sx({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(h1e(t),{ref:t.ref},n(t.props.children)):n(t)}var m1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const SH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr,{ref:n,className:ce("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));SH.displayName=Fr.displayName;const _H=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Lr,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Fr.Input,{ref:n,className:ce("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));_H.displayName=Fr.Input.displayName;const NH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.List,{ref:n,className:ce("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));NH.displayName=Fr.List.displayName;const CH=y.forwardRef((e,t)=>i.jsx(Fr.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));CH.displayName=Fr.Empty.displayName;const OH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Group,{ref:n,className:ce("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));OH.displayName=Fr.Group.displayName;const p1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Separator,{ref:n,className:ce("-mx-1 h-px bg-border",e),...t}));p1e.displayName=Fr.Separator.displayName;const EH=y.forwardRef(({className:e,...t},n)=>i.jsx(Fr.Item,{ref:n,className:ce("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));EH.displayName=Fr.Item.displayName;function v1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:s}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(ro,{open:l,onOpenChange:u,children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",role:"combobox","aria-expanded":l,className:ce("w-full justify-between min-h-10 h-auto",s),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Ft,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Yh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(Dve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(ds,{className:"w-full p-0",align:"start",children:i.jsxs(SH,{children:[i.jsx(_H,{placeholder:"搜索...",className:"h-9"}),i.jsxs(NH,{children:[i.jsx(CH,{children:a}),i.jsx(OH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(EH,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:ce("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(ol,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function g1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,s]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(!1),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(null),[B,$]=y.useState(!1),[H,V]=y.useState(null),[q,G]=y.useState(""),[L,D]=y.useState(new Set),[U,K]=y.useState(!1),{toast:J}=yr(),I=y.useRef(null),z=y.useRef(null),Y=y.useRef(!0);y.useEffect(()=>{te()},[]);const te=async()=>{try{f(!0);const le=await Jc(),ue=le.models||[];t(ue),s(ue.map(Mn=>Mn.name));const Ve=le.api_providers||[];r(Ve.map(Mn=>Mn.name)),u(le.model_task_config||null),w(!1),Y.current=!1}catch(le){console.error("加载配置失败:",le)}finally{f(!1)}},ae=async()=>{try{N(!0),TE().catch(()=>{}),O(!0)}catch(le){console.error("重启失败:",le),O(!1),J({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),N(!1)}},ge=async()=>{try{p(!0),I.current&&clearTimeout(I.current),z.current&&clearTimeout(z.current);const le=await Jc();le.models=e,le.model_task_config=l,await Ig(le),w(!1),J({title:"保存成功",description:"正在重启麦麦..."}),await ae()}catch(le){console.error("保存配置失败:",le),J({title:"保存失败",description:le.message,variant:"destructive"}),p(!1)}},ee=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Se=()=>{O(!1),N(!1),J({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},re=y.useCallback(async le=>{if(!Y.current)try{x(!0),await gC("models",le),w(!1)}catch(ue){console.error("自动保存模型列表失败:",ue),w(!0)}finally{x(!1)}},[]),we=y.useCallback(async le=>{if(!Y.current)try{x(!0),await gC("model_task_config",le),w(!1)}catch(ue){console.error("自动保存任务配置失败:",ue),w(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!Y.current)return w(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{re(e)},2e3),()=>{I.current&&clearTimeout(I.current)}},[e,re]),y.useEffect(()=>{if(!(Y.current||!l))return w(!0),z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{we(l)},2e3),()=>{z.current&&clearTimeout(z.current)}},[l,we]);const je=async()=>{try{p(!0),I.current&&clearTimeout(I.current),z.current&&clearTimeout(z.current);const le=await Jc();le.models=e,le.model_task_config=l,await Ig(le),w(!1),J({title:"保存成功",description:"模型配置已保存"}),await te()}catch(le){console.error("保存配置失败:",le),J({title:"保存失败",description:le.message,variant:"destructive"})}finally{p(!1)}},fe=(le,ue)=>{T(le||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),R(ue),C(!0)},Le=()=>{if(!k)return;let le;M!==null?(le=[...e],le[M]=k):le=[...e,k],t(le),s(le.map(ue=>ue.name)),C(!1),T(null),R(null)},Oe=le=>{V(le),$(!0)},We=()=>{if(H!==null){const le=e.filter((ue,Ve)=>Ve!==H);t(le),s(le.map(ue=>ue.name)),J({title:"删除成功",description:"模型已从列表中移除"})}$(!1),V(null)},be=le=>{const ue=new Set(L);ue.has(le)?ue.delete(le):ue.add(le),D(ue)},Ae=()=>{if(L.size===Tt.length)D(new Set);else{const le=Tt.map((ue,Ve)=>e.findIndex(Mn=>Mn===Tt[Ve]));D(new Set(le))}},ke=()=>{if(L.size===0){J({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}K(!0)},Qt=()=>{const le=e.filter((ue,Ve)=>!L.has(Ve));t(le),s(le.map(ue=>ue.name)),D(new Set),K(!1),J({title:"批量删除成功",description:`已删除 ${L.size} 个模型`})},St=(le,ue,Ve)=>{l&&u({...l,[le]:{...l[le],[ue]:Ve}})},Tt=e.filter(le=>{if(!q)return!0;const ue=q.toLowerCase();return le.name.toLowerCase().includes(ue)||le.model_identifier.toLowerCase().includes(ue)||le.api_provider.toLowerCase().includes(ue)}),Sn=le=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(Ve=>Ve.includes(le)):!1;return d?i.jsx(Wt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:je,disabled:m||g||!j||b,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(sE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]}),i.jsxs(bn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:m||g||b,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(iE,{className:"mr-2 h-4 w-4"}),b?"重启中...":j?"保存并重启":"重启麦麦"]})}),i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认重启麦麦?"}),i.jsx(hn,{children:j?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:j?ge:ae,children:j?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(rx,{children:[i.jsx(Mu,{className:"h-4 w-4"}),i.jsxs(ax,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(dl,{defaultValue:"models",className:"w-full",children:[i.jsxs(eo,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Rt,{value:"models",children:"模型配置"}),i.jsx(Rt,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(sn,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[L.size>0&&i.jsxs(oe,{onClick:ke,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(It,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",L.size,")"]}),i.jsxs(oe,{onClick:()=>fe(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索模型名称、标识符或提供商...",value:q,onChange:le=>G(le.target.value),className:"pl-9"})]}),q&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Tt.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Tt.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:q?"未找到匹配的模型":"暂无模型配置"}):Tt.map((le,ue)=>{const Ve=Sn(le.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:le.name}),i.jsx(Ft,{variant:Ve?"default":"secondary",className:Ve?"bg-green-600 hover:bg-green-700":"",children:Ve?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:le.model_identifier,children:le.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>fe(le,ue),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Oe(ue),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:le.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:le.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",le.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",le.price_out,"/M"]})]})]})]},ue)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-12",children:i.jsx(io,{checked:L.size===Tt.length&&Tt.length>0,onCheckedChange:Ae})}),i.jsx(nt,{className:"w-24",children:"使用状态"}),i.jsx(nt,{children:"模型名称"}),i.jsx(nt,{children:"模型标识符"}),i.jsx(nt,{children:"提供商"}),i.jsx(nt,{className:"text-right",children:"输入价格"}),i.jsx(nt,{className:"text-right",children:"输出价格"}),i.jsx(nt,{className:"text-center",children:"强制流式"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:Tt.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:9,className:"text-center text-muted-foreground py-8",children:q?"未找到匹配的模型":"暂无模型配置"})}):Tt.map((le,ue)=>{const Ve=e.findIndex($l=>$l===le),Mn=Sn(le.name);return i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(io,{checked:L.has(Ve),onCheckedChange:()=>be(Ve)})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:Mn?"default":"secondary",className:Mn?"bg-green-600 hover:bg-green-700":"",children:Mn?"已使用":"未使用"})}),i.jsx(Ge,{className:"font-medium",children:le.name}),i.jsx(Ge,{className:"max-w-xs truncate",title:le.model_identifier,children:le.model_identifier}),i.jsx(Ge,{children:le.api_provider}),i.jsxs(Ge,{className:"text-right",children:["¥",le.price_in,"/M"]}),i.jsxs(Ge,{className:"text-right",children:["¥",le.price_out,"/M"]}),i.jsx(Ge,{className:"text-center",children:le.force_stream_mode?"是":"否"}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>fe(le,Ve),children:i.jsx(Pu,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Oe(Ve),children:i.jsx(It,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},ue)})})]})})]}),i.jsxs(sn,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx($a,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(le,ue)=>St("utils",le,ue)}),i.jsx($a,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(le,ue)=>St("utils_small",le,ue)}),i.jsx($a,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(le,ue)=>St("tool_use",le,ue)}),i.jsx($a,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(le,ue)=>St("replyer",le,ue)}),i.jsx($a,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(le,ue)=>St("planner",le,ue)}),i.jsx($a,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(le,ue)=>St("vlm",le,ue),hideTemperature:!0}),i.jsx($a,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(le,ue)=>St("voice",le,ue),hideTemperature:!0,hideMaxTokens:!0}),i.jsx($a,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(le,ue)=>St("embedding",le,ue),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx($a,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(le,ue)=>St("lpmm_entity_extract",le,ue)}),i.jsx($a,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(le,ue)=>St("lpmm_rdf_build",le,ue)}),i.jsx($a,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(le,ue)=>St("lpmm_qa",le,ue)})]})]})]})]}),i.jsx(sr,{open:A,onOpenChange:C,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:M!==null?"编辑模型":"添加模型"}),i.jsx(vr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ne,{id:"model_name",value:k?.name||"",onChange:le=>T(ue=>ue?{...ue,name:le.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ne,{id:"model_identifier",value:k?.model_identifier||"",onChange:le=>T(ue=>ue?{...ue,model_identifier:le.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(Dt,{value:k?.api_provider||"",onValueChange:le=>T(ue=>ue?{...ue,api_provider:le}:null),children:[i.jsx(Ot,{id:"api_provider",children:i.jsx($t,{placeholder:"选择提供商"})}),i.jsx(Et,{children:n.map(le=>i.jsx(De,{value:le,children:le},le))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ne,{id:"price_in",type:"number",step:"0.1",min:"0",value:k?.price_in||0,onChange:le=>T(ue=>ue?{...ue,price_in:parseFloat(le.target.value)}:null)})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ne,{id:"price_out",type:"number",step:"0.1",min:"0",value:k?.price_out||0,onChange:le=>T(ue=>ue?{...ue,price_out:parseFloat(le.target.value)}:null)})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"force_stream_mode",checked:k?.force_stream_mode||!1,onCheckedChange:le=>T(ue=>ue?{...ue,force_stream_mode:le}:null)}),i.jsx(Q,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>C(!1),children:"取消"}),i.jsx(oe,{onClick:Le,children:"保存"})]})]})}),i.jsx(bn,{open:B,onOpenChange:$,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除模型 "',H!==null?e[H]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:We,children:"删除"})]})]})}),i.jsx(bn,{open:U,onOpenChange:K,children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认批量删除"}),i.jsxs(hn,{children:["确定要删除选中的 ",L.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:Qt,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),E&&i.jsx(kE,{onRestartComplete:ee,onRestartFailed:Se})]})})}function $a({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:s=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"模型列表"}),i.jsx(v1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!s&&i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(Q,{children:"温度"}),i.jsx(Ne,{type:"number",step:"0.1",min:"0",max:"1",value:n.temperature??.3,onChange:d=>{const f=parseFloat(d.target.value);!isNaN(f)&&f>=0&&f<=1&&a("temperature",f)},className:"w-20 h-8 text-sm"})]}),i.jsx(Wy,{value:[n.temperature??.3],onValueChange:d=>a("temperature",d[0]),min:0,max:1,step:.1,className:"w-full"})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(Q,{children:"最大 Token"}),i.jsx(Ne,{type:"number",step:"1",min:"1",value:n.max_tokens??1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const yo="/api/webui/emoji";async function y1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await rt(`${yo}/list?${t}`,{headers:dt()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function x1e(e){const t=await rt(`${yo}/${e}`,{headers:dt()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function b1e(e,t){const n=await rt(`${yo}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function w1e(e){const t=await rt(`${yo}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function j1e(){const e=await rt(`${yo}/stats/summary`,{headers:dt()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function S1e(e){const t=await rt(`${yo}/${e}/register`,{method:"POST",headers:dt()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function _1e(e){const t=await rt(`${yo}/${e}/ban`,{method:"POST",headers:dt()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function bC(e){const t=localStorage.getItem("access-token");return`${yo}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}function N1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,s]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m]=y.useState(20),[p,g]=y.useState(""),[x,j]=y.useState("all"),[w,b]=y.useState("all"),[N,E]=y.useState("all"),[O,A]=y.useState(null),[C,k]=y.useState(!1),[T,M]=y.useState(!1),[R,B]=y.useState(!1),{toast:$}=yr(),H=y.useCallback(async()=>{try{s(!0);const I=await y1e({page:l,page_size:m,search:p||void 0,is_registered:x==="all"?void 0:x==="registered",is_banned:w==="all"?void 0:w==="banned",format:N==="all"?void 0:N,sort_by:"usage_count",sort_order:"desc"});t(I.data),f(I.total)}catch(I){const z=I instanceof Error?I.message:"加载表情包列表失败";$({title:"错误",description:z,variant:"destructive"})}finally{s(!1)}},[l,m,p,x,w,N,$]),V=async()=>{try{const I=await j1e();r(I.data)}catch(I){console.error("加载统计数据失败:",I)}};y.useEffect(()=>{H()},[H]),y.useEffect(()=>{V()},[]);const q=async I=>{try{const z=await x1e(I.id);A(z.data),k(!0)}catch(z){const Y=z instanceof Error?z.message:"加载详情失败";$({title:"错误",description:Y,variant:"destructive"})}},G=I=>{A(I),M(!0)},L=I=>{A(I),B(!0)},D=async()=>{if(O)try{await w1e(O.id),$({title:"成功",description:"表情包已删除"}),B(!1),A(null),H(),V()}catch(I){const z=I instanceof Error?I.message:"删除失败";$({title:"错误",description:z,variant:"destructive"})}},U=async I=>{try{await S1e(I.id),$({title:"成功",description:"表情包已注册"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"注册失败";$({title:"错误",description:Y,variant:"destructive"})}},K=async I=>{try{await _1e(I.id),$({title:"成功",description:"表情包已封禁"}),H(),V()}catch(z){const Y=z instanceof Error?z.message:"封禁失败";$({title:"错误",description:Y,variant:"destructive"})}},J=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"总数"}),i.jsx(vt,{className:"text-2xl",children:n.total})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"已注册"}),i.jsx(vt,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"已封禁"}),i.jsx(vt,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(Xe,{children:i.jsxs(pt,{className:"pb-2",children:[i.jsx(Wn,{children:"未注册"}),i.jsx(vt,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsxs(vt,{className:"flex items-center gap-2",children:[i.jsx(tC,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(Ct,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"描述或哈希值...",value:p,onChange:I=>{g(I.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"注册状态"}),i.jsxs(Dt,{value:x,onValueChange:I=>{j(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"registered",children:"已注册"}),i.jsx(De,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"封禁状态"}),i.jsxs(Dt,{value:w,onValueChange:I=>{b(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"banned",children:"已封禁"}),i.jsx(De,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"格式"}),i.jsxs(Dt,{value:N,onValueChange:I=>{E(I),u(1)},children:[i.jsx(Ot,{children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),J.map(I=>i.jsxs(De,{value:I,children:[I.toUpperCase()," (",n?.formats[I],")"]},I))]})]})]})]}),i.jsx("div",{className:"flex justify-end",children:i.jsxs(oe,{variant:"outline",size:"sm",onClick:H,disabled:a,children:[i.jsx(is,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"表情包列表"}),i.jsxs(Wn,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{className:"w-16",children:"预览"}),i.jsx(nt,{children:"描述"}),i.jsx(nt,{children:"格式"}),i.jsx(nt,{children:"情绪标签"}),i.jsx(nt,{className:"text-center",children:"状态"}),i.jsx(nt,{className:"text-right",children:"使用次数"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(I=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:bC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const te=Y.parentElement;te&&(te.innerHTML='')}})})}),i.jsx(Ge,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[I.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:"outline",children:I.format.toUpperCase()})}),i.jsx(Ge,{children:i.jsx(DL,{emotions:I.emotion})}),i.jsx(Ge,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[I.is_registered&&i.jsxs(Ft,{variant:"default",className:"bg-green-600",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Ft,{variant:"destructive",children:[i.jsx(ZN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Ge,{className:"text-right font-mono",children:I.usage_count}),i.jsx(Ge,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>q(I),children:[i.jsx(Mu,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>G(I),children:[i.jsx(Ru,{className:"h-4 w-4 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>U(I),className:"text-green-600 hover:text-green-700",children:[i.jsx(Pr,{className:"h-4 w-4 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>K(I),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(ZI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>L(I),className:"text-red-600 hover:text-red-700",children:[i.jsx(It,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},I.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(I=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:bC(I.id),alt:I.description||"表情包",className:"w-full h-full object-cover",onError:z=>{const Y=z.target;Y.style.display="none";const te=Y.parentElement;te&&(te.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:I.description||"无描述",children:I.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[I.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Ft,{variant:"outline",className:"text-xs flex-shrink-0",children:I.format.toUpperCase()}),I.is_registered&&i.jsxs(Ft,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"已注册"]}),I.is_banned&&i.jsxs(Ft,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(ZN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",I.usage_count]})]}),I.emotion&&I.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(DL,{emotions:I.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>q(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Mu,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>G(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),!I.is_registered&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>U(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Pr,{className:"h-3 w-3 mr-1"}),"注册"]}),!I.is_banned&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>K(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(ZI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>L(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},I.id))}),d>m&&i.jsxs("div",{className:"flex items-center justify-between mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(I=>Math.max(1,I-1)),disabled:l===1,children:[i.jsx(nE,{className:"h-4 w-4"}),"上一页"]}),i.jsxs("div",{className:"text-sm",children:["第 ",l," / ",Math.ceil(d/m)," 页"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(I=>I+1),disabled:l>=Math.ceil(d/m),children:["下一页",i.jsx(rE,{className:"h-4 w-4"})]})]})]})]})]}),i.jsx(C1e,{emoji:O,open:C,onOpenChange:k}),i.jsx(O1e,{emoji:O,open:T,onOpenChange:M,onSuccess:()=>{H(),V()}})]})}),i.jsx(sr,{open:R,onOpenChange:B,children:i.jsxs(Kn,{children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"确认删除"}),i.jsx(vr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>B(!1),children:"取消"}),i.jsx(oe,{variant:"destructive",onClick:D,children:"删除"})]})]})})]})}function C1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsx(Xn,{children:i.jsx(Zn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:bC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const s=a.target;s.style.display="none";const l=s.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Ft,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:(()=>{const a=e.emotion?e.emotion.split(/[,,]/).map(s=>s.trim()).filter(Boolean):[];return a.length>0?a.map((s,l)=>i.jsx(Ft,{variant:"secondary",children:s},l)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})()})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Ft,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Ft,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Ft,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(Q,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function O1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=yr();y.useEffect(()=>{e&&(s(e.description||""),u(e.emotion||""),f(e.is_registered),p(e.is_banned))},[e]);const w=async()=>{if(e)try{x(!0);const b=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean).join(",");await b1e(e.id,{description:a||void 0,emotion:b||void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(b){const N=b instanceof Error?b.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表情包"}),i.jsx(vr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(Q,{children:"描述"}),i.jsx(Xt,{value:a,onChange:b=>s(b.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(Q,{children:"情绪标签"}),i.jsx(Ne,{value:l,onChange:b=>u(b.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"is_registered",checked:d,onCheckedChange:b=>f(b===!0)}),i.jsx(Q,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"is_banned",checked:m,onCheckedChange:b=>p(b===!0)}),i.jsx(Q,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:w,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function DL({emotions:e}){const t=e?e.split(/[,,]/).map(s=>s.trim()).filter(Boolean):[];if(t.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const n=(s,l=6)=>s.length<=l?s:s.slice(0,l)+"...",r=t.slice(0,3),a=t.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[r.map((s,l)=>i.jsx(Ft,{variant:"secondary",className:"text-xs flex-shrink-0",title:s,children:n(s)},l)),a>0&&i.jsxs(Ft,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${a} 个标签: ${t.slice(3).join(", ")}`,children:["+",a]})]})}const rd="/api/webui/expression";async function E1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await rt(`${rd}/list?${t}`,{headers:dt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function A1e(e){const t=await rt(`${rd}/${e}`,{headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function T1e(e){const t=await rt(`${rd}/`,{method:"POST",headers:dt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function k1e(e,t){const n=await rt(`${rd}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function M1e(e){const t=await rt(`${rd}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function P1e(){const e=await rt(`${rd}/stats/summary`,{headers:dt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function R1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(null),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(!1),[O,A]=y.useState(null),[C,k]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:T}=yr(),M=async()=>{try{r(!0);const q=await E1e({page:l,page_size:d,search:f||void 0});t(q.data),s(q.total)}catch(q){T({title:"加载失败",description:q instanceof Error?q.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},R=async()=>{try{const q=await P1e();k(q.data)}catch(q){console.error("加载统计数据失败:",q)}};y.useEffect(()=>{M(),R()},[l,d,f]);const B=async q=>{try{const G=await A1e(q.id);g(G.data),j(!0)}catch(G){T({title:"加载详情失败",description:G instanceof Error?G.message:"无法加载表达方式详情",variant:"destructive"})}},$=q=>{g(q),b(!0)},H=async q=>{try{await M1e(q.id),T({title:"删除成功",description:`已删除表达方式: ${q.situation}`}),A(null),M(),R()}catch(G){T({title:"删除失败",description:G instanceof Error?G.message:"无法删除表达方式",variant:"destructive"})}},V=q=>q?new Date(q*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Gh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(oe,{onClick:()=>E(!0),className:"gap-2",children:[i.jsx(ir,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:C.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:C.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:C.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(Q,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索情境、风格或上下文...",value:f,onChange:q=>m(q.target.value),className:"pl-9"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"情境"}),i.jsx(nt,{children:"风格"}),i.jsx(nt,{children:"聊天ID"}),i.jsx(nt,{children:"最后活跃"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n?i.jsx(An,{children:i.jsx(Ge,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:5,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(q=>i.jsxs(An,{children:[i.jsx(Ge,{className:"font-medium max-w-xs truncate",children:q.situation}),i.jsx(Ge,{className:"max-w-xs truncate",children:q.style}),i.jsx(Ge,{className:"font-mono text-sm",children:q.chat_id}),i.jsx(Ge,{className:"text-sm text-muted-foreground",children:V(q.last_active_time)}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>B(q),children:i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>$(q),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>A(q),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},q.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(q=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:q.situation,children:q.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:q.style,children:q.style})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:q.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:V(q.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>B(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Va,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>$(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>A(q),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},q.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(D1e,{expression:p,open:x,onOpenChange:j}),i.jsx($1e,{open:N,onOpenChange:E,onSuccess:()=>{M(),R(),E(!1)}}),i.jsx(I1e,{expression:p,open:w,onOpenChange:b,onSuccess:()=>{M(),R(),b(!1)}}),i.jsx(bn,{open:!!O,onOpenChange:()=>A(null),children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除表达方式 "',O?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>O&&H(O),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function D1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"表达方式详情"}),i.jsx(vr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Mc,{label:"情境",value:e.situation}),i.jsx(Mc,{label:"风格",value:e.style}),i.jsx(Mc,{icon:Eg,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Mc,{icon:Eg,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Mc,{icon:ll,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Mc,{icon:ll,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx(Br,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Mc({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function $1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[s,l]=y.useState(!1),{toast:u}=yr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await T1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"新增表达方式"}),i.jsx(vr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(Q,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ne,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"context",children:"上下文"}),i.jsx(Xt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Xt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(oe,{onClick:d,disabled:s,children:s?"创建中...":"创建"})]})]})})}function I1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=yr();y.useEffect(()=>{e&&s({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await k1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表达方式"}),i.jsx(vr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ne,{id:"edit_situation",value:a.situation||"",onChange:m=>s({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ne,{id:"edit_style",value:a.style||"",onChange:m=>s({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ne,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>s({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Xt,{id:"edit_context",value:a.context||"",onChange:m=>s({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Xt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>s({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}const nm="/api/webui/person";async function L1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await rt(`${nm}/list?${t}`,{headers:dt()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function B1e(e){const t=await rt(`${nm}/${e}`,{headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function z1e(e,t){const n=await rt(`${nm}/${e}`,{method:"PATCH",headers:dt(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function q1e(e){const t=await rt(`${nm}/${e}`,{method:"DELETE",headers:dt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function F1e(){const e=await rt(`${nm}/stats/summary`,{headers:dt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function U1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d]=y.useState(20),[f,m]=y.useState(""),[p,g]=y.useState(void 0),[x,j]=y.useState(void 0),[w,b]=y.useState(null),[N,E]=y.useState(!1),[O,A]=y.useState(!1),[C,k]=y.useState(null),[T,M]=y.useState({total:0,known:0,unknown:0,platforms:{}}),{toast:R}=yr(),B=async()=>{try{r(!0);const D=await L1e({page:l,page_size:d,search:f||void 0,is_known:p,platform:x});t(D.data),s(D.total)}catch(D){R({title:"加载失败",description:D instanceof Error?D.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},$=async()=>{try{const D=await F1e();M(D.data)}catch(D){console.error("加载统计数据失败:",D)}};y.useEffect(()=>{B(),$()},[l,d,f,p,x]);const H=async D=>{try{const U=await B1e(D.person_id);b(U.data),E(!0)}catch(U){R({title:"加载详情失败",description:U instanceof Error?U.message:"无法加载人物详情",variant:"destructive"})}},V=D=>{b(D),A(!0)},q=async D=>{try{await q1e(D.person_id),R({title:"删除成功",description:`已删除人物信息: ${D.person_name||D.nickname||D.user_id}`}),k(null),B(),$()}catch(U){R({title:"删除失败",description:U instanceof Error?U.message:"无法删除人物信息",variant:"destructive"})}},G=y.useMemo(()=>Object.keys(T.platforms),[T.platforms]),L=D=>D?new Date(D*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(tye,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Wt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:T.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:T.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:T.unknown})]})]}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(Q,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Lr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:f,onChange:D=>m(D.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(Dt,{value:p===void 0?"all":p.toString(),onValueChange:D=>{g(D==="all"?void 0:D==="true"),u(1)},children:[i.jsx(Ot,{id:"filter-known",className:"mt-1.5",children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部"}),i.jsx(De,{value:"true",children:"已认识"}),i.jsx(De,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(Dt,{value:x||"all",onValueChange:D=>{j(D==="all"?void 0:D),u(1)},children:[i.jsx(Ot,{id:"filter-platform",className:"mt-1.5",children:i.jsx($t,{})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部平台"}),G.map(D=>i.jsxs(De,{value:D,children:[D," (",T.platforms[D],")"]},D))]})]})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"状态"}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"昵称"}),i.jsx(nt,{children:"平台"}),i.jsx(nt,{children:"用户ID"}),i.jsx(nt,{children:"最后更新"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(An,{children:i.jsx(Ge,{colSpan:7,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(D=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"})}),i.jsx(Ge,{className:"font-medium",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Ge,{children:D.nickname||"-"}),i.jsx(Ge,{children:D.platform}),i.jsx(Ge,{className:"font-mono text-sm",children:D.user_id}),i.jsx(Ge,{className:"text-sm text-muted-foreground",children:L(D.last_know)}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>H(D),children:i.jsx(Va,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>V(D),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>k(D),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},D.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(D=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsx("div",{className:"flex items-start justify-between gap-2",children:i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:ce("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",D.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:D.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:D.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),D.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",D.nickname]})]})}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:D.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:D.user_id,children:D.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:L(D.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>H(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Va,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>V(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ru,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>k(D),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(It,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},D.id))}),a>d&&i.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:"上一页"}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:"下一页"})]})]})]})]})}),i.jsx(H1e,{person:w,open:N,onOpenChange:E}),i.jsx(W1e,{person:w,open:O,onOpenChange:A,onSuccess:()=>{B(),$(),A(!1)}}),i.jsx(bn,{open:!!C,onOpenChange:()=>k(null),children:i.jsxs(cn,{children:[i.jsxs(un,{children:[i.jsx(fn,{children:"确认删除"}),i.jsxs(hn,{children:['确定要删除人物信息 "',C?.person_name||C?.nickname||C?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(dn,{children:[i.jsx(pn,{children:"取消"}),i.jsx(mn,{onClick:()=>C&&q(C),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})})]})}function H1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"人物详情"}),i.jsxs(vr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Gi,{icon:gF,label:"人物名称",value:e.person_name}),i.jsx(Gi,{icon:Gh,label:"昵称",value:e.nickname}),i.jsx(Gi,{icon:Eg,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Gi,{icon:Eg,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Gi,{label:"平台",value:e.platform}),i.jsx(Gi,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(Q,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,s)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},s))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Gi,{icon:ll,label:"认识时间",value:r(e.know_times)}),i.jsx(Gi,{icon:ll,label:"首次记录",value:r(e.know_since)}),i.jsx(Gi,{icon:ll,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx(Br,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Gi({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ce("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function W1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=yr();y.useEffect(()=>{e&&s({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await z1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑人物信息"}),i.jsxs(vr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ne,{id:"person_name",value:a.person_name||"",onChange:m=>s({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ne,{id:"nickname",value:a.nickname||"",onChange:m=>s({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Xt,{id:"name_reason",value:a.name_reason||"",onChange:m=>s({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Xt,{id:"memory_points",value:a.memory_points||"",onChange:m=>s({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(Q,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(lt,{id:"is_known",checked:a.is_known,onCheckedChange:m=>s({...a,is_known:m})})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function V1e(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const G1e={},xf={};function Jo(e,t){try{const r=(G1e[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in xf?xf[r]:$L(r,r.split(":"))}catch{if(e in xf)return xf[e];const n=e?.match(Y1e);return n?$L(e,n.slice(1)):NaN}}const Y1e=/([+-]\d\d):?(\d\d)?/;function $L(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return xf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class hi extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(Jo(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),AH(this),wC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new hi(...n,t):new hi(Date.now(),t)}withTimeZone(t){return new hi(+this,t)}getTimezoneOffset(){const t=-Jo(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),wC(this),+this}[Symbol.for("constructDateFrom")](t){return new hi(+new Date(t),this.timeZone)}}const IL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!IL.test(e))return;const t=e.replace(IL,"$1UTC");hi.prototype[t]&&(e.startsWith("get")?hi.prototype[e]=function(){return this.internal[t]()}:(hi.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),K1e(this),+this},hi.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),wC(this),+this}))});function wC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Jo(e.timeZone,e)*60))}function K1e(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),AH(e)}function AH(e){const t=Jo(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),l=a-s,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(Jo(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=Jo(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),w=-new Date(+e).getTimezoneOffset()-x,b=x!==n,N=w-d;if(b&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const E=Jo(e.timeZone,e),O=E>0?Math.floor(E):Math.ceil(E),A=x-O;A&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+A),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+A))}}class dr extends hi{static tz(t,...n){return n.length?new dr(...n,t):new dr(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${V1e(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new dr(+this,t)}[Symbol.for("constructDateFrom")](t){return new dr(+new Date(t),this.timeZone)}}const TH=6048e5,X1e=864e5,LL=Symbol.for("constructDateFrom");function kn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&LL in e?e[LL](t):e instanceof Date?new e.constructor(t):new Date(t)}function Ut(e,t){return kn(t||e,e)}function kH(e,t,n){const r=Ut(e,n?.in);return isNaN(t)?kn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function MH(e,t,n){const r=Ut(e,n?.in);if(isNaN(t))return kn(e,NaN);if(!t)return r;const a=r.getDate(),s=kn(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const l=s.getDate();return a>=l?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}let Z1e={};function rm(){return Z1e}function oo(e,t){const n=rm(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Ut(e,t?.in),s=a.getDay(),l=(s=s.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function BL(e){const t=Ut(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Rl(e,...t){const n=kn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function _h(e,t){const n=Ut(e,t?.in);return n.setHours(0,0,0,0),n}function RH(e,t,n){const[r,a]=Rl(n?.in,e,t),s=_h(r),l=_h(a),u=+s-BL(s),d=+l-BL(l);return Math.round((u-d)/X1e)}function Q1e(e,t){const n=PH(e,t),r=kn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),Sh(r)}function J1e(e,t,n){return kH(e,t*7,n)}function eSe(e,t,n){return MH(e,t*12,n)}function tSe(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=kn.bind(null,a));const s=Ut(a,r);(!n||n{!r&&typeof a=="object"&&(r=kn.bind(null,a));const s=Ut(a,r);(!n||n>s||isNaN(+s))&&(n=s)}),kn(r,n||NaN)}function rSe(e,t,n){const[r,a]=Rl(n?.in,e,t);return+_h(r)==+_h(a)}function DH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function aSe(e){return!(!DH(e)&&typeof e!="number"||isNaN(+Ut(e)))}function iSe(e,t,n){const[r,a]=Rl(n?.in,e,t),s=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return s*12+l}function sSe(e,t){const n=Ut(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function $H(e,t){const[n,r]=Rl(e,t.start,t.end);return{start:n,end:r}}function oSe(e,t){const{start:n,end:r}=$H(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=s;)d.push(kn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function lSe(e,t){const n=Ut(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function cSe(e,t){const n=Ut(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function IH(e,t){const n=Ut(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function uSe(e,t){const{start:n,end:r}=$H(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=s;)d.push(kn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function LH(e,t){const n=rm(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Ut(e,t?.in),s=a.getDay(),l=(s{let r;const a=fSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function eu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const mSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},pSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},vSe={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},gSe={date:eu({formats:mSe,defaultWidth:"full"}),time:eu({formats:pSe,defaultWidth:"full"}),dateTime:eu({formats:vSe,defaultWidth:"full"})},ySe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},xSe=(e,t,n,r)=>ySe[e];function oi(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const bSe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},wSe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},jSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},SSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},_Se={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},NSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},CSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},OSe={ordinalNumber:CSe,era:oi({values:bSe,defaultWidth:"wide"}),quarter:oi({values:wSe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:oi({values:jSe,defaultWidth:"wide"}),day:oi({values:SSe,defaultWidth:"wide"}),dayPeriod:oi({values:_Se,defaultWidth:"wide",formattingValues:NSe,defaultFormattingWidth:"wide"})};function li(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const l=s[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?ASe(u,p=>p.test(l)):ESe(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function ESe(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function ASe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const TSe=/^(\d+)(th|st|nd|rd)?/i,kSe=/\d+/i,MSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},PSe={any:[/^b/i,/^(a|c)/i]},RSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},DSe={any:[/1/i,/2/i,/3/i,/4/i]},$Se={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},ISe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},LSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},BSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},zSe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},qSe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},FSe={ordinalNumber:BH({matchPattern:TSe,parsePattern:kSe,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:MSe,defaultMatchWidth:"wide",parsePatterns:PSe,defaultParseWidth:"any"}),quarter:li({matchPatterns:RSe,defaultMatchWidth:"wide",parsePatterns:DSe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:$Se,defaultMatchWidth:"wide",parsePatterns:ISe,defaultParseWidth:"any"}),day:li({matchPatterns:LSe,defaultMatchWidth:"wide",parsePatterns:BSe,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:zSe,defaultMatchWidth:"any",parsePatterns:qSe,defaultParseWidth:"any"})},DE={code:"en-US",formatDistance:hSe,formatLong:gSe,formatRelative:xSe,localize:OSe,match:FSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function USe(e,t){const n=Ut(e,t?.in);return RH(n,IH(n))+1}function zH(e,t){const n=Ut(e,t?.in),r=+Sh(n)-+Q1e(n);return Math.round(r/TH)+1}function qH(e,t){const n=Ut(e,t?.in),r=n.getFullYear(),a=rm(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=kn(t?.in||e,0);l.setFullYear(r+1,0,s),l.setHours(0,0,0,0);const u=oo(l,t),d=kn(t?.in||e,0);d.setFullYear(r,0,s),d.setHours(0,0,0,0);const f=oo(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function HSe(e,t){const n=rm(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=qH(e,t),s=kn(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),oo(s,t)}function FH(e,t){const n=Ut(e,t?.in),r=+oo(n,t)-+HSe(n,t);return Math.round(r/TH)+1}function Pt(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Fs={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return Pt(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Pt(n+1,2)},d(e,t){return Pt(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Pt(e.getHours()%12||12,t.length)},H(e,t){return Pt(e.getHours(),t.length)},m(e,t){return Pt(e.getMinutes(),t.length)},s(e,t){return Pt(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return Pt(a,t.length)}},Pc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},zL={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Fs.y(e,t)},Y:function(e,t,n,r){const a=qH(e,r),s=a>0?a:1-a;if(t==="YY"){const l=s%100;return Pt(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):Pt(s,t.length)},R:function(e,t){const n=PH(e);return Pt(n,t.length)},u:function(e,t){const n=e.getFullYear();return Pt(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return Pt(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return Pt(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Fs.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return Pt(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=FH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):Pt(a,t.length)},I:function(e,t,n){const r=zH(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):Pt(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Fs.d(e,t)},D:function(e,t,n){const r=USe(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):Pt(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return Pt(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return Pt(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return Pt(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Pc.noon:r===0?a=Pc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Pc.evening:r>=12?a=Pc.afternoon:r>=4?a=Pc.morning:a=Pc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Fs.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Fs.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):Pt(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):Pt(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Fs.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Fs.s(e,t)},S:function(e,t){return Fs.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return FL(r);case"XXXX":case"XX":return Vo(r);case"XXXXX":case"XXX":default:return Vo(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return FL(r);case"xxxx":case"xx":return Vo(r);case"xxxxx":case"xxx":default:return Vo(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+qL(r,":");case"OOOO":default:return"GMT"+Vo(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+qL(r,":");case"zzzz":default:return"GMT"+Vo(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return Pt(r,t.length)},T:function(e,t,n){return Pt(+e,t.length)}};function qL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+Pt(s,2)}function FL(e,t){return e%60===0?(e>0?"-":"+")+Pt(Math.abs(e)/60,2):Vo(e,t)}function Vo(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Pt(Math.trunc(r/60),2),s=Pt(r%60,2);return n+a+t+s}const UL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},UH=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},WSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return UL(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",UL(r,t)).replace("{{time}}",UH(a,t))},VSe={p:UH,P:WSe},GSe=/^D+$/,YSe=/^Y+$/,KSe=["D","DD","YY","YYYY"];function XSe(e){return GSe.test(e)}function ZSe(e){return YSe.test(e)}function QSe(e,t,n){const r=JSe(e,t,n);if(console.warn(r),KSe.includes(e))throw new RangeError(r)}function JSe(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const e_e=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,t_e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,n_e=/^'([^]*?)'?$/,r_e=/''/g,a_e=/[a-zA-Z]/;function pv(e,t,n){const r=rm(),a=n?.locale??r.locale??DE,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=Ut(e,n?.in);if(!aSe(u))throw new RangeError("Invalid time value");let d=t.match(t_e).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=VSe[p];return g(m,a.formatLong)}return m}).join("").match(e_e).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:i_e(m)};if(zL[p])return{isToken:!0,value:m};if(p.match(a_e))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:s,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&ZSe(p)||!n?.useAdditionalDayOfYearTokens&&XSe(p))&&QSe(p,t,String(e));const g=zL[p[0]];return g(u,p,a.localize,f)}).join("")}function i_e(e){const t=e.match(n_e);return t?t[1].replace(r_e,"'"):e}function s_e(e,t){const n=Ut(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=kn(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function o_e(e,t){return Ut(e,t?.in).getMonth()}function l_e(e,t){return Ut(e,t?.in).getFullYear()}function c_e(e,t){return+Ut(e)>+Ut(t)}function u_e(e,t){return+Ut(e)<+Ut(t)}function d_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return+oo(r,n)==+oo(a,n)}function f_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function h_e(e,t,n){const[r,a]=Rl(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function m_e(e,t,n){const r=Ut(e,n?.in),a=r.getFullYear(),s=r.getDate(),l=kn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=s_e(l);return r.setMonth(t,Math.min(s,u)),r}function p_e(e,t,n){const r=Ut(e,n?.in);return isNaN(+r)?kn(e,NaN):(r.setFullYear(t),r)}const HL=5,v_e=4;function g_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),s=t.addDays(a,HL*7-1);return t.getMonth(e)===t.getMonth(s)?HL:v_e}function HH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function y_e(e,t){const n=HH(e,t),r=g_e(e,t);return t.addDays(n,r*7-1)}class oa{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?dr.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,s)=>this.overrides?.newDate?this.overrides.newDate(r,a,s):this.options.timeZone?new dr(r,a,s,this.options.timeZone):new Date(r,a,s),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):kH(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):MH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):J1e(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):eSe(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):RH(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):iSe(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):oSe(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):uSe(r),s=new Set(a.map(u=>this.getYear(u)));if(s.size===a.length)return a;const l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):y_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):dSe(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):sSe(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):LH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):cSe(r),this.format=(r,a,s)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):pv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):zH(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):o_e(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):l_e(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):FH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):c_e(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):u_e(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):DH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):rSe(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):f_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):h_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):tSe(r),this.min=r=>this.overrides?.min?this.overrides.min(r):nSe(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):m_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):p_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):HH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):_h(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):Sh(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):lSe(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):oo(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):IH(r),this.options={locale:DE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&oa.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,s=n?.code;if(s&&oa.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}oa.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Ci=new oa;class WH{constructor(t,n,r=Ci){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class x_e{constructor(t,n){this.date=t,this.weeks=n}}class b_e{constructor(t,n){this.days=n,this.weekNumber=t}}function w_e(e){return W.createElement("button",{...e})}function j_e(e){return W.createElement("span",{...e})}function S_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function __e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function N_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var Be;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(Be||(Be={}));var on;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(on||(on={}));var Ua;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Ua||(Ua={}));var Jr;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(Jr||(Jr={}));function C_e(e){const{options:t,className:n,components:r,classNames:a,...s}=e,l=[a[Be.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===s.value);return W.createElement("span",{"data-disabled":s.disabled,className:a[Be.DropdownRoot]},W.createElement(r.Select,{className:l,...s},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[Be.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[Be.Chevron]})))}function O_e(e){return W.createElement("div",{...e})}function E_e(e){return W.createElement("div",{...e})}function A_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function T_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function k_e(e){return W.createElement("table",{...e})}function M_e(e){return W.createElement("div",{...e})}const VH=y.createContext(void 0);function am(){const e=y.useContext(VH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function P_e(e){const{components:t}=am();return W.createElement(t.Dropdown,{...e})}function R_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...s}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=am(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...s},W.createElement(l.PreviousMonthButton,{type:"button",className:u[Be.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[Be.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[Be.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[Be.Chevron]})))}function D_e(e){const{components:t}=am();return W.createElement(t.Button,{...e})}function $_e(e){return W.createElement("option",{...e})}function I_e(e){const{components:t}=am();return W.createElement(t.Button,{...e})}function L_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function B_e(e){return W.createElement("select",{...e})}function z_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function q_e(e){return W.createElement("th",{...e})}function F_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function U_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function H_e(e){return W.createElement("th",{...e})}function W_e(e){return W.createElement("tbody",{...e})}function V_e(e){const{components:t}=am();return W.createElement(t.Dropdown,{...e})}const G_e=Object.freeze(Object.defineProperty({__proto__:null,Button:w_e,CaptionLabel:j_e,Chevron:S_e,Day:__e,DayButton:N_e,Dropdown:C_e,DropdownNav:O_e,Footer:E_e,Month:A_e,MonthCaption:T_e,MonthGrid:k_e,Months:M_e,MonthsDropdown:P_e,Nav:R_e,NextMonthButton:D_e,Option:$_e,PreviousMonthButton:I_e,Root:L_e,Select:B_e,Week:z_e,WeekNumber:U_e,WeekNumberHeader:H_e,Weekday:q_e,Weekdays:F_e,Weeks:W_e,YearsDropdown:V_e},Symbol.toStringTag,{value:"Module"}));function Ji(e,t,n=!1,r=Ci){let{from:a,to:s}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&s?(l(s,a)<0&&([a,s]=[s,a]),l(t,a)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?u(s,t):!n&&a?u(a,t):!1}function GH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function $E(e){return!!(e&&typeof e=="object"&&"from"in e)}function YH(e){return!!(e&&typeof e=="object"&&"after"in e)}function KH(e){return!!(e&&typeof e=="object"&&"before"in e)}function XH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function ZH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function es(e,t,n=Ci){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:s,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(ZH(u,n))return u.includes(e);if($E(u))return Ji(u,e,!1,n);if(XH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(GH(u)){const d=s(u.before,e),f=s(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return YH(u)?s(e,u.after)>0:KH(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function Y_e(e,t,n,r,a){const{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:w,isAfter:b}=a,N=n&&x(n),E=r&&w(r),O={[on.focused]:[],[on.outside]:[],[on.disabled]:[],[on.hidden]:[],[on.today]:[]},A={};for(const C of e){const{date:k,displayMonth:T}=C,M=!!(T&&!g(k,T)),R=!!(N&&j(k,N)),B=!!(E&&b(k,E)),$=!!(s&&es(k,s,a)),H=!!(l&&es(k,l,a))||R||B||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&O.outside.push(C),$&&O.disabled.push(C),H&&O.hidden.push(C),V&&O.today.push(C),u&&Object.keys(u).forEach(q=>{const G=u?.[q];G&&es(k,G,a)&&(A[q]?A[q].push(C):A[q]=[C])})}return C=>{const k={[on.focused]:!1,[on.disabled]:!1,[on.hidden]:!1,[on.outside]:!1,[on.today]:!1},T={};for(const M in O){const R=O[M];k[M]=R.some(B=>B===C)}for(const M in A)T[M]=A[M].some(R=>R===C);return{...k,...T}}}function K_e(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[s])=>(n[s]?a.push(n[s]):t[on[s]]?a.push(t[on[s]]):t[Ua[s]]&&a.push(t[Ua[s]]),a),[t[Be.Day]])}function X_e(e){return{...G_e,...e}}function Z_e(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function IE(){const e={};for(const t in Be)e[Be[t]]=`rdp-${Be[t]}`;for(const t in on)e[on[t]]=`rdp-${on[t]}`;for(const t in Ua)e[Ua[t]]=`rdp-${Ua[t]}`;for(const t in Jr)e[Jr[t]]=`rdp-${Jr[t]}`;return e}function QH(e,t,n){return(n??new oa(t)).formatMonthYear(e)}const Q_e=QH;function J_e(e,t,n){return(n??new oa(t)).format(e,"d")}function eNe(e,t=Ci){return t.format(e,"LLLL")}function tNe(e,t,n){return(n??new oa(t)).format(e,"cccccc")}function nNe(e,t=Ci){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function rNe(){return""}function JH(e,t=Ci){return t.format(e,"yyyy")}const aNe=JH,iNe=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:QH,formatDay:J_e,formatMonthCaption:Q_e,formatMonthDropdown:eNe,formatWeekNumber:nNe,formatWeekNumberHeader:rNe,formatWeekdayName:tNe,formatYearCaption:aNe,formatYearDropdown:JH},Symbol.toStringTag,{value:"Module"}));function sNe(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...iNe,...e}}function oNe(e,t,n,r,a){const{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),w=t&&gs(n)||!1;return{value:j,label:x,disabled:w}})}function lNe(e,t={},n={}){let r={...t?.[Be.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function cNe(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),s=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);s.push(u)}return s}function uNe(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=s(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function e9(e,t,n,r){let a=(r??new oa(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const dNe=e9;function t9(e,t,n){return(n??new oa(t)).formatMonthYear(e)}const fNe=t9;function hNe(e,t,n,r){let a=(r??new oa(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function mNe(e){return"Choose the Month"}function pNe(){return""}function vNe(e){return"Go to the Next Month"}function gNe(e){return"Go to the Previous Month"}function yNe(e,t,n){return(n??new oa(t)).format(e,"cccc")}function xNe(e,t){return`Week ${e}`}function bNe(e){return"Week Number"}function wNe(e){return"Choose the Year"}const jNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:fNe,labelDay:dNe,labelDayButton:e9,labelGrid:t9,labelGridcell:hNe,labelMonthDropdown:mNe,labelNav:pNe,labelNext:vNe,labelPrevious:gNe,labelWeekNumber:xNe,labelWeekNumberHeader:bNe,labelWeekday:yNe,labelYearDropdown:wNe},Symbol.toStringTag,{value:"Module"})),im=e=>e instanceof HTMLElement?e:null,h_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],SNe=e=>im(e.querySelector("[data-animated-month]")),m_=e=>im(e.querySelector("[data-animated-caption]")),p_=e=>im(e.querySelector("[data-animated-weeks]")),_Ne=e=>im(e.querySelector("[data-animated-nav]")),NNe=e=>im(e.querySelector("[data-animated-weekdays]"));function CNe(e,t,{classNames:n,months:r,focused:a,dateLib:s}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=s.isSameMonth(r[0].date,f[0].date),p=s.isAfter(r[0].date,f[0].date),g=p?n[Jr.caption_after_enter]:n[Jr.caption_before_enter],x=p?n[Jr.weeks_after_enter]:n[Jr.weeks_before_enter],j=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(h_(w).forEach(O=>{if(!(O instanceof HTMLElement))return;const A=SNe(O);A&&O.contains(A)&&O.removeChild(A);const C=m_(O);C&&C.classList.remove(g);const k=p_(O);k&&k.classList.remove(x)}),l.current=w):l.current=null,d.current||m||a)return;const b=j instanceof HTMLElement?h_(j):[],N=h_(e.current);if(N?.every(E=>E instanceof HTMLElement)&&b&&b.every(E=>E instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const E=_Ne(e.current);E&&(E.style.zIndex="1"),N.forEach((O,A)=>{const C=b[A];if(!C)return;O.style.position="relative",O.style.overflow="hidden";const k=m_(O);k&&k.classList.add(g);const T=p_(O);T&&T.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),E&&(E.style.zIndex=""),k&&k.classList.remove(g),T&&T.classList.remove(x),O.style.position="",O.style.overflow="",O.contains(C)&&O.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const R=NNe(C);R&&(R.style.opacity="0");const B=m_(C);B&&(B.classList.add(p?n[Jr.caption_before_exit]:n[Jr.caption_after_exit]),B.addEventListener("animationend",M));const $=p_(C);$&&$.classList.add(p?n[Jr.weeks_before_exit]:n[Jr.weeks_after_exit]),O.insertBefore(C,O.firstChild)})}})}function ONe(e,t,n,r){const a=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:w,isAfter:b,startOfBroadcastWeek:N,startOfISOWeek:E,startOfWeek:O}=r,A=d?N(a,r):l?E(a):O(a),C=d?g(s):l?x(j(s)):w(j(s)),k=m(C,A),T=p(s,a)+1,M=[];for(let $=0;$<=k;$++){const H=f(A,$);if(t&&b(H,t))break;M.push(H)}const B=(d?35:42)*T;if(u&&M.length{const a=r.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function ANe(e,t,n,r){const{numberOfMonths:a=1}=n,s=[];for(let l=0;lt)break;s.push(u)}return s}function WL(e,t,n,r){const{month:a,defaultMonth:s,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||s||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(b,r):n.ISOWeek?g(b):x(b),E=n.broadcastCalendar?s(b):n.ISOWeek?l(u(b)):d(u(b)),O=t.filter(T=>T>=N&&T<=E),A=n.broadcastCalendar?35:42;if(n.fixedWeeks&&O.length{const R=A-O.length;return M>E&&M<=a(E,R)});O.push(...T)}const C=O.reduce((T,M)=>{const R=n.ISOWeek?f(M):m(M),B=T.find(H=>H.weekNumber===R),$=new WH(M,b,r);return B?B.days.push($):T.push(new b_e(R,[$])),T},[]),k=new x_e(b,C);return w.push(k),w},[]);return n.reverseMonths?j.reverse():j}function kNe(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:w}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&w&&(r=w),!r&&x&&(r=m(x,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&b&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&b&&(r=f(e.today??p())),[n&&s(n),r&&s(r)]}function MNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?s:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function ox(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function DNe(e,t){const[n,r]=kNe(e,t),{startOfMonth:a,endOfMonth:s}=t,l=WL(e,n,r,t),[u,d]=ox(l,e.month?l:void 0);y.useEffect(()=>{const k=WL(e,n,r,t);d(k)},[e.timeZone]);const f=ANe(u,r,e,t),m=ONe(f,e.endMonth?s(e.endMonth):void 0,e,t),p=TNe(f,m,e,t),g=RNe(p),x=ENe(p),j=PNe(u,n,e,t),w=MNe(u,r,e,t),{disableNavigation:b,onMonthChange:N}=e,E=k=>g.some(T=>T.days.some(M=>M.isEqualTo(k))),O=k=>{if(b)return;let T=a(k);n&&Ta(r)&&(T=a(r)),d(T),N?.(T)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:w,goToMonth:O,goToDay:k=>{E(k)||O(k.date)}}}var ai;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ai||(ai={}));function VL(e){return!e[on.disabled]&&!e[on.hidden]&&!e[on.outside]}function $Ne(e,t,n,r){let a,s=-1;for(const l of e){const u=t(l);VL(u)&&(u[on.focused]&&sVL(t(l)))),a}function INe(e,t,n,r,a,s,l){const{ISOWeek:u,broadcastCalendar:d}=s,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:w,max:b,min:N,startOfBroadcastWeek:E,startOfISOWeek:O,startOfWeek:A}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:T=>d?E(T,l):u?O(T):A(T),endOfWeek:T=>d?x(T):u?j(T):w(T)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=b([r,k]):t==="after"&&a&&(k=N([a,k])),k}function n9(e,t,n,r,a,s,l,u=0){if(u>365)return;const d=INe(e,t,n.date,r,a,s,l),f=!!(s.disabled&&es(d,s.disabled,l)),m=!!(s.hidden&&es(d,s.hidden,l)),p=d,g=new WH(d,p,l);return!f&&!m?g:n9(e,t,g,r,a,s,l,u+1)}function LNe(e,t,n,r,a){const{autoFocus:s}=e,[l,u]=y.useState(),d=$Ne(t.days,n,r||(()=>!1),l),[f,m]=y.useState(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(w,b)=>{if(!f)return;const N=n9(w,b,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(O=>O.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function BNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=ox(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,w)=>{let b=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;b=u?.filter(N=>!d(N,x))}else u?.length===p?b=[x]:b=[...b,x];return a||l(b),a?.(b,x,j,w),b},isSelected:f}}function zNe(e,t,n=0,r=0,a=!1,s=Ci){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=s;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=s.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?Ji(e,u,!1,n):ZH(u,n)?u.some(d=>Ji(e,d,!1,n)):$E(u)?u.from&&u.to?GL(e,{from:u.from,to:u.to},n):!1:XH(u)?qNe(e,u.dayOfWeek,n):GH(u)?n.isAfter(u.before,u.after)?GL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):es(e.from,u,n)||es(e.to,u,n):YH(u)||KH(u)?es(e.from,u,n)||es(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function UNe(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:s,onSelect:l}=e,[u,d]=ox(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:w,max:b}=e,N=g?zNe(g,f,w,b,s,t):void 0;return r&&n&&N?.from&&N.to&&FNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&Ji(f,g,!1,t)}}function HNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=ox(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function WNe(e,t){const n=HNe(e,t),r=BNe(e,t),a=UNe(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function VNe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new dr(t.today,t.timeZone)),t.month&&(t.month=new dr(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new dr(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new dr(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new dr(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new dr(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(it=>new dr(it,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new dr(t.selected.from,t.timeZone):void 0,to:t.selected.to?new dr(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:s,locale:l,classNames:u}=y.useMemo(()=>{const it={...DE,...t.locale};return{dateLib:new oa({locale:it,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:X_e(t.components),formatters:sNe(t.formatters),labels:{...jNe,...t.labels},locale:it,classNames:{...IE(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:w,onDayMouseEnter:b,onDayMouseLeave:N,onNextClick:E,onPrevClick:O,showWeekNumber:A,styles:C}=t,{formatCaption:k,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:B,formatWeekdayName:$,formatYearDropdown:H}=r,V=DNe(t,s),{days:q,months:G,navStart:L,navEnd:D,previousMonth:U,nextMonth:K,goToMonth:J}=V,I=Y_e(q,t,L,D,s),{isSelected:z,select:Y,selected:te}=WNe(t,s)??{},{blur:ae,focused:ge,isFocusTarget:ee,moveFocus:Se,setFocused:re}=LNe(t,V,I,z??(()=>!1),s),{labelDayButton:we,labelGridcell:je,labelGrid:fe,labelMonthDropdown:Le,labelNav:Oe,labelPrevious:We,labelNext:be,labelWeekday:Ae,labelWeekNumber:ke,labelWeekNumberHeader:Qt,labelYearDropdown:St}=a,Tt=y.useMemo(()=>cNe(s,t.ISOWeek),[s,t.ISOWeek]),Sn=f!==void 0||x!==void 0,le=y.useCallback(()=>{U&&(J(U),O?.(U))},[U,J,O]),ue=y.useCallback(()=>{K&&(J(K),E?.(K))},[J,K,E]),Ve=y.useCallback((it,Gt)=>Ye=>{Ye.preventDefault(),Ye.stopPropagation(),re(it),Y?.(it.date,Gt,Ye),x?.(it.date,Gt,Ye)},[Y,x,re]),Mn=y.useCallback((it,Gt)=>Ye=>{re(it),j?.(it.date,Gt,Ye)},[j,re]),$l=y.useCallback((it,Gt)=>Ye=>{ae(),g?.(it.date,Gt,Ye)},[ae,g]),Il=y.useCallback((it,Gt)=>Ye=>{const wt={ArrowLeft:[Ye.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[Ye.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[Ye.shiftKey?"year":"week","after"],ArrowUp:[Ye.shiftKey?"year":"week","before"],PageUp:[Ye.shiftKey?"year":"month","before"],PageDown:[Ye.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(wt[Ye.key]){Ye.preventDefault(),Ye.stopPropagation();const[qn,st]=wt[Ye.key];Se(qn,st)}w?.(it.date,Gt,Ye)},[Se,w,t.dir]),fx=y.useCallback((it,Gt)=>Ye=>{b?.(it.date,Gt,Ye)},[b]),fm=y.useCallback((it,Gt)=>Ye=>{N?.(it.date,Gt,Ye)},[N]),hx=y.useCallback(it=>Gt=>{const Ye=Number(Gt.target.value),wt=s.setMonth(s.startOfMonth(it),Ye);J(wt)},[s,J]),mx=y.useCallback(it=>Gt=>{const Ye=Number(Gt.target.value),wt=s.setYear(s.startOfMonth(it),Ye);J(wt)},[s,J]),{className:bo,style:br}=y.useMemo(()=>({className:[u[Be.Root],t.className].filter(Boolean).join(" "),style:{...C?.[Be.Root],...t.style}}),[u,t.className,t.style,C]),Qa=Z_e(t),lr=y.useRef(null);CNe(lr,!!t.animate,{classNames:u,months:G,focused:ge,dateLib:s});const px={dayPickerProps:t,selected:te,select:Y,isSelected:z,months:G,nextMonth:K,previousMonth:U,goToMonth:J,getModifiers:I,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(VH.Provider,{value:px},W.createElement(n.Root,{rootRef:t.animate?lr:void 0,className:bo,style:br,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...Qa},W.createElement(n.Months,{className:u[Be.Months],style:C?.[Be.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Be.Nav],style:C?.[Be.Nav],"aria-label":Oe(),onPreviousClick:le,onNextClick:ue,previousMonth:U,nextMonth:K}),G.map((it,Gt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[Be.Month],style:C?.[Be.Month],key:Gt,displayIndex:Gt,calendarMonth:it},m==="around"&&!t.hideNavigation&&Gt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[Be.PreviousMonthButton],tabIndex:U?void 0:-1,"aria-disabled":U?void 0:!0,"aria-label":We(U),onClick:le,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:U?void 0:!0,className:u[Be.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[Be.MonthCaption],style:C?.[Be.MonthCaption],calendarMonth:it,displayIndex:Gt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[Be.Dropdowns],style:C?.[Be.Dropdowns]},(()=>{const Ye=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[Be.MonthsDropdown],"aria-label":Le(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:hx(it.date),options:oNe(it.date,L,D,r,s),style:C?.[Be.Dropdown],value:s.getMonth(it.date)}):W.createElement("span",{key:"month"},M(it.date,s)),wt=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[Be.YearsDropdown],"aria-label":St(s.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:mx(it.date),options:uNe(L,D,r,s,!!t.reverseYears),style:C?.[Be.Dropdown],value:s.getYear(it.date)}):W.createElement("span",{key:"year"},H(it.date,s));return s.getMonthYearOrder()==="year-first"?[wt,Ye]:[Ye,wt]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(it.date,s.options,s))):W.createElement(n.CaptionLabel,{className:u[Be.CaptionLabel],role:"status","aria-live":"polite"},k(it.date,s.options,s))),m==="around"&&!t.hideNavigation&&Gt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[Be.NextMonthButton],tabIndex:K?void 0:-1,"aria-disabled":K?void 0:!0,"aria-label":be(K),onClick:ue,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:K?void 0:!0,className:u[Be.Chevron],orientation:t.dir==="rtl"?"left":"right"})),Gt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Be.Nav],style:C?.[Be.Nav],"aria-label":Oe(),onPreviousClick:le,onNextClick:ue,previousMonth:U,nextMonth:K}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":fe(it.date,s.options,s)||void 0,className:u[Be.MonthGrid],style:C?.[Be.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[Be.Weekdays],style:C?.[Be.Weekdays]},A&&W.createElement(n.WeekNumberHeader,{"aria-label":Qt(s.options),className:u[Be.WeekNumberHeader],style:C?.[Be.WeekNumberHeader],scope:"col"},B()),Tt.map(Ye=>W.createElement(n.Weekday,{"aria-label":Ae(Ye,s.options,s),className:u[Be.Weekday],key:String(Ye),style:C?.[Be.Weekday],scope:"col"},$(Ye,s.options,s)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[Be.Weeks],style:C?.[Be.Weeks]},it.weeks.map(Ye=>W.createElement(n.Week,{className:u[Be.Week],key:Ye.weekNumber,style:C?.[Be.Week],week:Ye},A&&W.createElement(n.WeekNumber,{week:Ye,style:C?.[Be.WeekNumber],"aria-label":ke(Ye.weekNumber,{locale:l}),className:u[Be.WeekNumber],scope:"row",role:"rowheader"},R(Ye.weekNumber,s)),Ye.days.map(wt=>{const{date:qn}=wt,st=I(wt);if(st[on.focused]=!st.hidden&&!!ge?.isEqualTo(wt),st[Ua.selected]=z?.(qn)||st.selected,$E(te)){const{from:Bl,to:jo}=te;st[Ua.range_start]=!!(Bl&&jo&&s.isSameDay(qn,Bl)),st[Ua.range_end]=!!(Bl&&jo&&s.isSameDay(qn,jo)),st[Ua.range_middle]=Ji(te,qn,!0,s)}const Ll=lNe(st,C,t.modifiersStyles),wo=K_e(st,u,t.modifiersClassNames),vx=!Sn&&!st.hidden?je(qn,st,s.options,s):void 0;return W.createElement(n.Day,{key:`${s.format(qn,"yyyy-MM-dd")}_${s.format(wt.displayMonth,"yyyy-MM")}`,day:wt,modifiers:st,className:wo.join(" "),style:Ll,role:"gridcell","aria-selected":st.selected||void 0,"aria-label":vx,"data-day":s.format(qn,"yyyy-MM-dd"),"data-month":wt.outside?s.format(qn,"yyyy-MM"):void 0,"data-selected":st.selected||void 0,"data-disabled":st.disabled||void 0,"data-hidden":st.hidden||void 0,"data-outside":wt.outside||void 0,"data-focused":st.focused||void 0,"data-today":st.today||void 0},!st.hidden&&Sn?W.createElement(n.DayButton,{className:u[Be.DayButton],style:C?.[Be.DayButton],type:"button",day:wt,modifiers:st,disabled:st.disabled||void 0,tabIndex:ee(wt)?0:-1,"aria-label":we(qn,st,s.options,s),onClick:Ve(wt,st),onBlur:$l(wt,st),onFocus:Mn(wt,st),onKeyDown:Il(wt,st),onMouseEnter:fx(wt,st),onMouseLeave:fm(wt,st)},T(qn,s.options,s)):!st.hidden&&T(wt.date,s.options,s))})))))))),t.footer&&W.createElement(n.Footer,{className:u[Be.Footer],style:C?.[Be.Footer],role:"status","aria-live":"polite"},t.footer)))}function YL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:s,components:l,...u}){const d=IE();return i.jsx(VNe,{showOutsideDays:n,className:ce("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...s},classNames:{root:ce("w-fit",d.root),months:ce("relative flex flex-col gap-4 md:flex-row",d.months),month:ce("flex w-full flex-col gap-4",d.month),nav:ce("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:ce(xh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:ce(xh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:ce("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:ce("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:ce("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:ce("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:ce("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:ce("flex",d.weekdays),weekday:ce("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:ce("mt-2 flex w-full",d.week),week_number_header:ce("w-[--cell-size] select-none",d.week_number_header),week_number:ce("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:ce("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:ce("bg-accent rounded-l-md",d.range_start),range_middle:ce("rounded-none",d.range_middle),range_end:ce("bg-accent rounded-r-md",d.range_end),today:ce("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:ce("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:ce("text-muted-foreground opacity-50",d.disabled),hidden:ce("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:ce(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(nE,{className:ce("size-4",f),...p}):m==="right"?i.jsx(rE,{className:ce("size-4",f),...p}):i.jsx(vh,{className:ce("size-4",f),...p}),DayButton:GNe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function GNe({className:e,day:t,modifiers:n,...r}){const a=IE(),s=y.useRef(null);return y.useEffect(()=>{n.focused&&s.current?.focus()},[n.focused]),i.jsx(oe,{ref:s,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:ce("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class YNe{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const Bc=new YNe;typeof window<"u"&&Bc.connect();const KNe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},XNe=(e,t,n)=>{let r;const a=KNe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},ZNe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},QNe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},JNe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},eCe={date:eu({formats:ZNe,defaultWidth:"full"}),time:eu({formats:QNe,defaultWidth:"full"}),dateTime:eu({formats:JNe,defaultWidth:"full"})};function KL(e,t,n){const r="eeee p";return d_e(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const tCe={lastWeek:KL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:KL,other:"PP p"},nCe=(e,t,n,r)=>{const a=tCe[e];return typeof a=="function"?a(t,n,r):a},rCe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},aCe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},iCe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},sCe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},oCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},lCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},cCe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},uCe={ordinalNumber:cCe,era:oi({values:rCe,defaultWidth:"wide"}),quarter:oi({values:aCe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:oi({values:iCe,defaultWidth:"wide"}),day:oi({values:sCe,defaultWidth:"wide"}),dayPeriod:oi({values:oCe,defaultWidth:"wide",formattingValues:lCe,defaultFormattingWidth:"wide"})},dCe=/^(第\s*)?\d+(日|时|分|秒)?/i,fCe=/\d+/i,hCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},mCe={any:[/^(前)/i,/^(公元)/i]},pCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},vCe={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},gCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},yCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},xCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},bCe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},wCe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},jCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},SCe={ordinalNumber:BH({matchPattern:dCe,parsePattern:fCe,valueCallback:e=>parseInt(e,10)}),era:li({matchPatterns:hCe,defaultMatchWidth:"wide",parsePatterns:mCe,defaultParseWidth:"any"}),quarter:li({matchPatterns:pCe,defaultMatchWidth:"wide",parsePatterns:vCe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:li({matchPatterns:gCe,defaultMatchWidth:"wide",parsePatterns:yCe,defaultParseWidth:"any"}),day:li({matchPatterns:xCe,defaultMatchWidth:"wide",parsePatterns:bCe,defaultParseWidth:"any"}),dayPeriod:li({matchPatterns:wCe,defaultMatchWidth:"any",parsePatterns:jCe,defaultParseWidth:"any"})},Qp={code:"zh-CN",formatDistance:XNe,formatLong:eCe,formatRelative:nCe,localize:uCe,match:SCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function _Ce(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,s]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,w]=y.useState(!1),b=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const $=Bc.getAllLogs();t($);const H=Bc.onLog(()=>{t(Bc.getAllLogs())}),V=Bc.onConnectionChange(q=>{w(q)});return()=>{H(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const E=y.useMemo(()=>{const $=new Set(e.map(H=>H.module));return Array.from($).sort()},[e]),O=$=>{switch($){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},A=$=>{switch($){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},C=()=>{window.location.reload()},k=()=>{Bc.clearLogs(),t([])},T=()=>{const $=B.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` -`),H=new Blob([$],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(H),q=document.createElement("a");q.href=V,q.download=`logs-${pv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,q.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},R=()=>{f(void 0),p(void 0)},B=y.useMemo(()=>e.filter($=>{const H=n===""||$.message.toLowerCase().includes(n.toLowerCase())||$.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||$.level===a,q=l==="all"||$.module===l;let G=!0;if(d||m){const L=new Date($.timestamp);if(d){const D=new Date(d);D.setHours(0,0,0,0),G=G&&L>=D}if(m){const D=new Date(m);D.setHours(23,59,59,999),G=G&&L<=D}}return H&&V&&q&&G}),[e,n,a,l,d,m]);return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:ce("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(Xe,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索日志...",value:n,onChange:$=>r($.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(Dt,{value:a,onValueChange:s,children:[i.jsxs(Ot,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(tC,{className:"h-4 w-4 mr-2"}),i.jsx($t,{placeholder:"级别"})]}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部级别"}),i.jsx(De,{value:"DEBUG",children:"DEBUG"}),i.jsx(De,{value:"INFO",children:"INFO"}),i.jsx(De,{value:"WARNING",children:"WARNING"}),i.jsx(De,{value:"ERROR",children:"ERROR"}),i.jsx(De,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(Dt,{value:l,onValueChange:u,children:[i.jsxs(Ot,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(tC,{className:"h-4 w-4 mr-2"}),i.jsx($t,{placeholder:"模块"})]}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部模块"}),E.map($=>i.jsx(De,{value:$,children:$},$))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(QI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?pv(d,"PPP",{locale:Qp}):"开始日期"})]})}),i.jsx(ds,{className:"w-auto p-0",align:"start",children:i.jsx(YL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:Qp})})]}),i.jsxs(ro,{children:[i.jsx(ao,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ce("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(QI,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?pv(m,"PPP",{locale:Qp}):"结束日期"})]})}),i.jsx(ds,{className:"w-auto p-0",align:"start",children:i.jsx(YL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:Qp})})]}),(d||m)&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:R,className:"w-full sm:w-auto h-9",children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(oe,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(yge,{className:"h-4 w-4"}):i.jsx(wge,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(is,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(It,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:T,className:"flex-1 sm:flex-none h-9",children:[i.jsx(JN,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[B.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(Xe,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Wt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:b,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[B.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):B.map($=>i.jsxs("div",{className:ce("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",A($.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:$.timestamp}),i.jsxs("span",{className:ce("text-xs font-semibold",O($.level)),children:["[",$.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:$.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:$.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:$.timestamp}),i.jsxs("span",{className:ce("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",O($.level)),children:["[",$.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:$.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:$.message})]})]},$.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const NCe="Mai-with-u",CCe="plugin-repo",OCe="main",ECe="plugin_details.json";async function ACe(){try{const e=await rt("/api/webui/plugins/fetch-raw",{method:"POST",headers:dt(),body:JSON.stringify({owner:NCe,repo:CCe,branch:OCe,file_path:ECe})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function TCe(){try{const e=await rt("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function kCe(){try{const e=await rt("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function MCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,s=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function PCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const s=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(s)},3e4)},a.onmessage=s=>{try{if(s.data==="pong")return;const l=JSON.parse(s.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=s=>{console.error("Plugin progress WebSocket error:",s),t?.(s)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function Jp(){try{const e=await rt("/api/webui/plugins/installed",{headers:dt()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function ev(e,t){return t.some(n=>n.id===e)}function tv(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function RCe(e,t,n="main"){const r=await rt("/api/webui/plugins/install",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function DCe(e){const t=await rt("/api/webui/plugins/uninstall",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function $Ce(e,t,n="main"){const r=await rt("/api/webui/plugins/update",{method:"POST",headers:dt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}const XL={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function ICe(){const e=la(),[t,n]=y.useState(null),[r,a]=y.useState(""),[s,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[,T]=y.useState([]),{toast:M}=yr();y.useEffect(()=>{let D=null,U=!1;return(async()=>{if(D=PCe(J=>{U||(A(J),J.stage==="success"?setTimeout(()=>{U||A(null)},2e3):J.stage==="error"&&(j(!1),b(J.error||"加载失败")))},J=>{console.error("WebSocket error:",J),U||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(J=>{if(!D){J();return}const I=()=>{D&&D.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),J()):D&&D.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),J()):setTimeout(I,100)};I()}),!U){const J=await TCe();E(J),J.installed||M({title:"Git 未安装",description:J.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!U){const J=await kCe();k(J)}if(!U)try{j(!0),b(null);const J=await ACe();if(!U){const I=await Jp();T(I);const z=J.map(Y=>{const te=ev(Y.id,I),ae=tv(Y.id,I);return{...Y,installed:te,installed_version:ae}});for(const Y of I)!z.some(ae=>ae.id===Y.id)&&Y.manifest&&z.push({id:Y.id,manifest:{manifest_version:Y.manifest.manifest_version||1,name:Y.manifest.name,version:Y.manifest.version,description:Y.manifest.description||"",author:Y.manifest.author,license:Y.manifest.license||"Unknown",host_application:Y.manifest.host_application,homepage_url:Y.manifest.homepage_url,repository_url:Y.manifest.repository_url,keywords:Y.manifest.keywords||[],categories:Y.manifest.categories||[],default_locale:Y.manifest.default_locale||"zh-CN",locales_path:Y.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:Y.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(z)}}catch(J){if(!U){const I=J instanceof Error?J.message:"加载插件列表失败";b(I),M({title:"加载失败",description:I,variant:"destructive"})}}finally{U||j(!1)}})(),()=>{U=!0,D&&D.close()}},[M]);const R=D=>{if(!D.installed&&C&&!B(D))return i.jsxs(Ft,{variant:"destructive",className:"gap-1",children:[i.jsx(gl,{className:"h-3 w-3"}),"不兼容"]});if(D.installed){const U=D.installed_version?.trim(),K=D.manifest.version?.trim();if(U!==K){const J=U?.split(".").map(Number)||[0,0,0],I=K?.split(".").map(Number)||[0,0,0];for(let z=0;z<3;z++){if((I[z]||0)>(J[z]||0))return i.jsxs(Ft,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(gl,{className:"h-3 w-3"}),"可更新"]});if((I[z]||0)<(J[z]||0))break}}return i.jsxs(Ft,{variant:"default",className:"gap-1",children:[i.jsx(Pr,{className:"h-3 w-3"}),"已安装"]})}return null},B=D=>!C||!D.manifest?.host_application?!0:MCe(D.manifest.host_application.min_version,D.manifest.host_application.max_version,C),$=D=>{if(!D.installed||!D.installed_version||!D.manifest?.version)return!1;const U=D.installed_version.trim(),K=D.manifest.version.trim();if(U===K)return!1;const J=U.split(".").map(Number),I=K.split(".").map(Number);for(let z=0;z<3;z++){if((I[z]||0)>(J[z]||0))return!0;if((I[z]||0)<(J[z]||0))return!1}return!1},H=p.filter(D=>{if(!D.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",D.id),!1;const U=r===""||D.manifest.name?.toLowerCase().includes(r.toLowerCase())||D.manifest.description?.toLowerCase().includes(r.toLowerCase())||D.manifest.keywords&&D.manifest.keywords.some(z=>z.toLowerCase().includes(r.toLowerCase())),K=s==="all"||D.manifest.categories&&D.manifest.categories.includes(s);let J=!0;u==="installed"?J=D.installed===!0:u==="updates"&&(J=D.installed===!0&&$(D));const I=!f||!C||B(D);return U&&K&&J&&I}),V=()=>{n(null)},q=async D=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!B(D)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await RCe(D.id,D.manifest.repository_url||"","main"),M({title:"安装成功",description:`${D.manifest.name} 已成功安装`});const U=await Jp();T(U),g(K=>K.map(J=>{if(J.id===D.id){const I=ev(J.id,U),z=tv(J.id,U);return{...J,installed:I,installed_version:z}}return J}))}catch(U){M({title:"安装失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},G=async D=>{try{await DCe(D.id),M({title:"卸载成功",description:`${D.manifest.name} 已成功卸载`});const U=await Jp();T(U),g(K=>K.map(J=>{if(J.id===D.id){const I=ev(J.id,U),z=tv(J.id,U);return{...J,installed:I,installed_version:z}}return J}))}catch(U){M({title:"卸载失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}},L=async D=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const U=await $Ce(D.id,D.manifest.repository_url||"","main");M({title:"更新成功",description:`${D.manifest.name} 已从 ${U.old_version} 更新到 ${U.new_version}`});const K=await Jp();T(K),g(J=>J.map(I=>{if(I.id===D.id){const z=ev(I.id,K),Y=tv(I.id,K);return{...I,installed:z,installed_version:Y}}return I}))}catch(U){M({title:"更新失败",description:U instanceof Error?U.message:"未知错误",variant:"destructive"})}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(oe,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(Pge,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(Xe,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(pt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Kc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(vt,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(Wn,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(Ct,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ne,{placeholder:"搜索插件...",value:r,onChange:D=>a(D.target.value),className:"pl-9"})]}),i.jsxs(Dt,{value:s,onValueChange:l,children:[i.jsx(Ot,{className:"w-full sm:w-[200px]",children:i.jsx($t,{placeholder:"选择分类"})}),i.jsxs(Et,{children:[i.jsx(De,{value:"all",children:"全部分类"}),i.jsx(De,{value:"Group Management",children:"群组管理"}),i.jsx(De,{value:"Entertainment & Interaction",children:"娱乐互动"}),i.jsx(De,{value:"Utility Tools",children:"实用工具"}),i.jsx(De,{value:"Content Generation",children:"内容生成"}),i.jsx(De,{value:"Multimedia",children:"多媒体"}),i.jsx(De,{value:"External Integration",children:"外部集成"}),i.jsx(De,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),i.jsx(De,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(io,{id:"compatible-only",checked:f,onCheckedChange:D=>m(D===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(dl,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(eo,{className:"grid w-full grid-cols-3",children:[i.jsxs(Rt,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Rt,{value:"installed",children:["已安装 (",p.filter(D=>D.installed).length,")"]}),i.jsxs(Rt,{value:"updates",children:["可更新 (",p.filter(D=>D.installed&&$(D)).length,")"]})]})}),O&&O.stage==="loading"&&i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(gh,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[O.operation==="fetch"&&"加载插件列表",O.operation==="install"&&`安装插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="uninstall"&&`卸载插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="update"&&`更新插件${O.plugin_id?`: ${O.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[O.progress,"%"]})]}),i.jsx($h,{value:O.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.message}),O.operation==="fetch"&&O.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",O.loaded_plugins," / ",O.total_plugins," 个插件"]})]})}),O&&O.stage==="error"&&O.error&&i.jsx(Xe,{className:"border-destructive bg-destructive/10",children:i.jsx(pt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Kc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(vt,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(Wn,{className:"text-destructive/80",children:O.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(gh,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):w?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Kc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:w}),i.jsx(oe,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):H.length===0?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Lr,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||s!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:H.map(D=>i.jsxs(Xe,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(pt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(vt,{className:"text-xl",children:D.manifest?.name||D.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[D.manifest?.categories&&D.manifest.categories[0]&&i.jsx(Ft,{variant:"secondary",className:"text-xs whitespace-nowrap",children:XL[D.manifest.categories[0]]||D.manifest.categories[0]}),R(D)]})]}),i.jsx(Wn,{className:"line-clamp-2",children:D.manifest?.description||"无描述"})]}),i.jsx(Ct,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(JN,{className:"h-4 w-4"}),i.jsx("span",{children:D.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:D.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[D.manifest?.keywords&&D.manifest.keywords.slice(0,3).map(U=>i.jsx(Ft,{variant:"outline",className:"text-xs",children:U},U)),D.manifest?.keywords&&D.manifest.keywords.length>3&&i.jsxs(Ft,{variant:"outline",className:"text-xs",children:["+",D.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",D.manifest?.version||"unknown"," · ",D.manifest?.author?.name||"Unknown"]}),D.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[D.manifest.host_application.min_version,D.manifest.host_application.max_version?` - ${D.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(eB,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>n(D),children:"查看详情"}),D.installed?$(D)?i.jsxs(oe,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>L(D),children:[i.jsx(is,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(oe,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(D),children:[i.jsx(It,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(oe,{size:"sm",disabled:!N?.installed||O?.operation==="install"||C!==null&&!B(D),title:N?.installed?C!==null&&!B(D)?`不兼容当前版本 (需要 ${D.manifest?.host_application?.min_version||"未知"}${D.manifest?.host_application?.max_version?` - ${D.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>q(D),children:[i.jsx(JN,{className:"h-4 w-4 mr-1"}),O?.operation==="install"&&O?.plugin_id===D.id?"安装中...":"安装"]})]})})]},D.id))}),i.jsx(sr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Xn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Zn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(vr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(Mf,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Ft,{variant:"secondary",children:XL[t.manifest.categories[0]]||t.manifest.categories[0]}),R(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(D=>i.jsx(Ft,{variant:"outline",children:D},D))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs(Br,{children:[t.manifest.homepage_url&&i.jsxs(oe,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(oe,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function LCe(){return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(is,{className:"h-4 w-4 mr-2"}),"刷新"]}),i.jsxs(oe,{size:"sm",children:[i.jsx(Fa,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已安装插件"}),i.jsx(Tg,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已启用"}),i.jsx(Pr,{className:"h-4 w-4 text-green-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"已禁用"}),i.jsx(gl,{className:"h-4 w-4 text-orange-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(vt,{className:"text-sm font-medium",children:"可更新"}),i.jsx(is,{className:"h-4 w-4 text-blue-600"})]}),i.jsxs(Ct,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),i.jsxs(Xe,{children:[i.jsxs(pt,{children:[i.jsx(vt,{children:"已安装的插件"}),i.jsx(Wn,{children:"查看和管理已安装插件的配置"})]}),i.jsx(Ct,{children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[i.jsx(Tg,{className:"h-16 w-16 text-muted-foreground/50"}),i.jsxs("div",{className:"text-center space-y-2",children:[i.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),i.jsx("div",{className:"flex gap-2",children:i.jsx(oe,{variant:"outline",asChild:!0,children:i.jsxs("a",{href:"/plugins",children:[i.jsx(Mf,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsx(vt,{className:"text-base",children:"即将推出的功能"})}),i.jsx(Ct,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Pr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),i.jsxs(Xe,{children:[i.jsx(pt,{children:i.jsx(vt,{className:"text-base",children:"开发者工具"})}),i.jsx(Ct,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"热重载"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Fa,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),i.jsx(Xe,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:i.jsx(Ct,{className:"pt-6",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(gl,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",i.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function BCe(){const e=la(),{toast:t}=yr(),[n,r]=y.useState([]),[a,s]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b=y.useCallback(async()=>{try{s(!0),u(null);const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${T}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const R=await M.json();r(R.mirrors||[])}catch(T){const M=T instanceof Error?T.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{s(!1)}},[t]);y.useEffect(()=>{b()},[b]);const N=async()=>{try{const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const R=await M.json();throw new Error(R.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),w({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b()}catch(T){t({title:"添加失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},E=async()=>{if(d)try{const T=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),b()}catch(T){t({title:"更新失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},O=async T=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),b()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},A=async T=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!T.enabled})})).ok)throw new Error("更新状态失败");b()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=T=>{f(T),w({id:T.id,name:T.name,raw_prefix:T.raw_prefix,clone_prefix:T.clone_prefix,enabled:T.enabled,priority:T.priority}),x(!0)},k=async(T,M)=>{const R=M==="up"?T.priority-1:T.priority+1;if(!(R<1))try{const B=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/json"},body:JSON.stringify({priority:R})})).ok)throw new Error("更新优先级失败");b()}catch(B){t({title:"更新失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}};return i.jsx(Wt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(fF,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(oe,{onClick:()=>p(!0),children:[i.jsx(ir,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(Xe,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(gh,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(Xe,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Kc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(oe,{onClick:b,children:"重新加载"})]})}):i.jsxs(Xe,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(kl,{children:[i.jsx(Ml,{children:i.jsxs(An,{children:[i.jsx(nt,{children:"状态"}),i.jsx(nt,{children:"名称"}),i.jsx(nt,{children:"ID"}),i.jsx(nt,{children:"优先级"}),i.jsx(nt,{className:"text-right",children:"操作"})]})}),i.jsx(Pl,{children:n.map(T=>i.jsxs(An,{children:[i.jsx(Ge,{children:i.jsx(lt,{checked:T.enabled,onCheckedChange:()=>A(T)})}),i.jsx(Ge,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:T.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",T.raw_prefix]})]})}),i.jsx(Ge,{children:i.jsx(Ft,{variant:"outline",children:T.id})}),i.jsx(Ge,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:T.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(XN,{className:"h-3 w-3"})}),i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"down"),children:i.jsx(vh,{className:"h-3 w-3"})})]})]})}),i.jsx(Ge,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>C(T),children:i.jsx(Pu,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>O(T.id),children:i.jsx(It,{className:"h-4 w-4 text-destructive"})})]})})]},T.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(T=>i.jsx(Xe,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:T.name}),T.enabled&&i.jsx(Ft,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Ft,{variant:"outline",className:"mt-1 text-xs",children:T.id})]}),i.jsx(lt,{checked:T.enabled,onCheckedChange:()=>A(T)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:T.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:T.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(oe,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(T),children:[i.jsx(Pu,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(XN,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"down"),children:i.jsx(vh,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"destructive",size:"sm",onClick:()=>O(T.id),children:i.jsx(It,{className:"h-4 w-4"})})]})]})},T.id))})]}),i.jsx(sr,{open:m,onOpenChange:p,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"添加镜像源"}),i.jsx(vr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ne,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:T=>w({...j,id:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ne,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ne,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"add-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(Q,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(oe,{onClick:N,children:"添加"})]})]})}),i.jsx(sr,{open:g,onOpenChange:x,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑镜像源"}),i.jsx(vr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{children:"镜像源 ID"}),i.jsx(Ne,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ne,{id:"edit-name",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ne,{id:"edit-raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ne,{id:"edit-clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Q,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ne,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(lt,{id:"edit-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(Q,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs(Br,{children:[i.jsx(oe,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(oe,{onClick:E,children:"保存"})]})]})})]})})}const zCe=Zu("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),r9=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},s)=>i.jsx("kbd",{className:ce(zCe({size:t,className:e})),ref:s,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));r9.displayName="Kbd";const qCe=[{icon:Ag,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:aE,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:vF,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:hF,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:oE,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:Gh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:mF,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:Eve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:Tg,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:Og,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Fa,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function FCe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState(0),l=la(),u=qCe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),s(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),s(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),s(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Xn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Zn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ne,{value:n,onChange:m=>{r(m.target.value),s(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Wt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>s(p),className:ce("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Lr,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function UCe(e){const t=HCe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(VCe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function HCe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=YCe(a),u=GCe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?Ir(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var WCe=Symbol("radix.slottable");function VCe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===WCe}function GCe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function YCe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var jC=["Enter"," "],KCe=["ArrowDown","PageUp","Home"],a9=["ArrowUp","PageDown","End"],XCe=[...KCe,...a9],ZCe={ltr:[...jC,"ArrowRight"],rtl:[...jC,"ArrowLeft"]},QCe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},sm="Menu",[Nh,JCe,eOe]=Ph(sm),[Dl,i9]=gr(sm,[eOe,ho,Yg]),om=ho(),s9=Yg(),[o9,xo]=Dl(sm),[tOe,lm]=Dl(sm),l9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:s,modal:l=!0}=e,u=om(t),[d,f]=y.useState(null),m=y.useRef(!1),p=ln(s),g=Fu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(Qh,{...u,children:i.jsx(o9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(tOe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};l9.displayName=sm;var nOe="MenuAnchor",LE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=om(n);return i.jsx(Jh,{...a,...r,ref:t})});LE.displayName=nOe;var BE="MenuPortal",[rOe,c9]=Dl(BE,{forceMount:void 0}),u9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,s=xo(BE,t);return i.jsx(rOe,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};u9.displayName=BE;var Oa="MenuContent",[aOe,zE]=Dl(Oa),d9=y.forwardRef((e,t)=>{const n=c9(Oa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=xo(Oa,e.__scopeMenu),l=lm(Oa,e.__scopeMenu);return i.jsx(Nh.Provider,{scope:e.__scopeMenu,children:i.jsx(Bn,{present:r||s.open,children:i.jsx(Nh.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(iOe,{...a,ref:t}):i.jsx(sOe,{...a,ref:t})})})})}),iOe=y.forwardRef((e,t)=>{const n=xo(Oa,e.__scopeMenu),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return zy(s)},[]),i.jsx(qE,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:_e(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),sOe=y.forwardRef((e,t)=>{const n=xo(Oa,e.__scopeMenu);return i.jsx(qE,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),oOe=UCe("MenuContent.ScrollLock"),qE=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...w}=e,b=xo(Oa,n),N=lm(Oa,n),E=om(n),O=s9(n),A=JCe(n),[C,k]=y.useState(null),T=y.useRef(null),M=Ue(t,T,b.onContentChange),R=y.useRef(0),B=y.useRef(""),$=y.useRef(0),H=y.useRef(null),V=y.useRef("right"),q=y.useRef(0),G=j?Xh:y.Fragment,L=j?{as:oOe,allowPinchZoom:!0}:void 0,D=K=>{const J=B.current+K,I=A().filter(ee=>!ee.disabled),z=document.activeElement,Y=I.find(ee=>ee.ref.current===z)?.textValue,te=I.map(ee=>ee.textValue),ae=xOe(te,J,Y),ge=I.find(ee=>ee.textValue===ae)?.ref.current;(function ee(Se){B.current=Se,window.clearTimeout(R.current),Se!==""&&(R.current=window.setTimeout(()=>ee(""),1e3))})(J),ge&&setTimeout(()=>ge.focus())};y.useEffect(()=>()=>window.clearTimeout(R.current),[]),Ly();const U=y.useCallback(K=>V.current===H.current?.side&&wOe(K,H.current?.area),[]);return i.jsx(aOe,{scope:n,searchRef:B,onItemEnter:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),onItemLeave:y.useCallback(K=>{U(K)||(T.current?.focus(),k(null))},[U]),onTriggerLeave:y.useCallback(K=>{U(K)&&K.preventDefault()},[U]),pointerGraceTimerRef:$,onPointerGraceIntentChange:y.useCallback(K=>{H.current=K},[]),children:i.jsx(G,{...L,children:i.jsx(Kh,{asChild:!0,trapped:a,onMountAutoFocus:_e(s,K=>{K.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(sB,{asChild:!0,...O,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:_e(d,K=>{N.isUsingKeyboardRef.current||K.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Xy,{role:"menu","aria-orientation":"vertical","data-state":E9(b.open),"data-radix-menu-content":"",dir:N.dir,...E,...w,ref:M,style:{outline:"none",...w.style},onKeyDown:_e(w.onKeyDown,K=>{const I=K.target.closest("[data-radix-menu-content]")===K.currentTarget,z=K.ctrlKey||K.altKey||K.metaKey,Y=K.key.length===1;I&&(K.key==="Tab"&&K.preventDefault(),!z&&Y&&D(K.key));const te=T.current;if(K.target!==te||!XCe.includes(K.key))return;K.preventDefault();const ge=A().filter(ee=>!ee.disabled).map(ee=>ee.ref.current);a9.includes(K.key)&&ge.reverse(),gOe(ge)}),onBlur:_e(e.onBlur,K=>{K.currentTarget.contains(K.target)||(window.clearTimeout(R.current),B.current="")}),onPointerMove:_e(e.onPointerMove,Ch(K=>{const J=K.target,I=q.current!==K.clientX;if(K.currentTarget.contains(J)&&I){const z=K.clientX>q.current?"right":"left";V.current=z,q.current=K.clientX}}))})})})})})})});d9.displayName=Oa;var lOe="MenuGroup",FE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"group",...r,ref:t})});FE.displayName=lOe;var cOe="MenuLabel",f9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});f9.displayName=cOe;var Lg="MenuItem",ZL="menu.itemSelect",lx=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,s=y.useRef(null),l=lm(Lg,e.__scopeMenu),u=zE(Lg,e.__scopeMenu),d=Ue(t,s),f=y.useRef(!1),m=()=>{const p=s.current;if(!n&&p){const g=new CustomEvent(ZL,{bubbles:!0,cancelable:!0});p.addEventListener(ZL,x=>r?.(x),{once:!0}),HC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(h9,{...a,ref:d,disabled:n,onClick:_e(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:_e(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:_e(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||jC.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});lx.displayName=Lg;var h9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...s}=e,l=zE(Lg,n),u=s9(n),d=y.useRef(null),f=Ue(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[s.children]),i.jsx(Nh.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(oB,{asChild:!0,...u,focusable:!r,children:i.jsx($e.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:f,onPointerMove:_e(e.onPointerMove,Ch(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:_e(e.onPointerLeave,Ch(j=>l.onItemLeave(j))),onFocus:_e(e.onFocus,()=>p(!0)),onBlur:_e(e.onBlur,()=>p(!1))})})})}),uOe="MenuCheckboxItem",m9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(x9,{scope:e.__scopeMenu,checked:n,children:i.jsx(lx,{role:"menuitemcheckbox","aria-checked":Bg(n)?"mixed":n,...a,ref:t,"data-state":WE(n),onSelect:_e(a.onSelect,()=>r?.(Bg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});m9.displayName=uOe;var p9="MenuRadioGroup",[dOe,fOe]=Dl(p9,{value:void 0,onValueChange:()=>{}}),v9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,s=ln(r);return i.jsx(dOe,{scope:e.__scopeMenu,value:n,onValueChange:s,children:i.jsx(FE,{...a,ref:t})})});v9.displayName=p9;var g9="MenuRadioItem",y9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=fOe(g9,e.__scopeMenu),s=n===a.value;return i.jsx(x9,{scope:e.__scopeMenu,checked:s,children:i.jsx(lx,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":WE(s),onSelect:_e(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});y9.displayName=g9;var UE="MenuItemIndicator",[x9,hOe]=Dl(UE,{checked:!1}),b9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,s=hOe(UE,n);return i.jsx(Bn,{present:r||Bg(s.checked)||s.checked===!0,children:i.jsx($e.span,{...a,ref:t,"data-state":WE(s.checked)})})});b9.displayName=UE;var mOe="MenuSeparator",w9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});w9.displayName=mOe;var pOe="MenuArrow",j9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=om(n);return i.jsx(Zy,{...a,...r,ref:t})});j9.displayName=pOe;var HE="MenuSub",[vOe,S9]=Dl(HE),_9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,s=xo(HE,t),l=om(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=ln(a);return y.useEffect(()=>(s.open===!1&&p(!1),()=>p(!1)),[s.open,p]),i.jsx(Qh,{...l,children:i.jsx(o9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(vOe,{scope:t,contentId:Gn(),triggerId:Gn(),trigger:u,onTriggerChange:d,children:n})})})};_9.displayName=HE;var bf="MenuSubTrigger",N9=y.forwardRef((e,t)=>{const n=xo(bf,e.__scopeMenu),r=lm(bf,e.__scopeMenu),a=S9(bf,e.__scopeMenu),s=zE(bf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=s,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(LE,{asChild:!0,...f,children:i.jsx(h9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":E9(n.open),...e,ref:Ir(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:_e(e.onPointerMove,Ch(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(s.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:_e(e.onPointerLeave,Ch(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",w=j?-5:5,b=g[j?"left":"right"],N=g[j?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:b,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:b,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:_e(e.onKeyDown,p=>{const g=s.searchRef.current!=="";e.disabled||g&&p.key===" "||ZCe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});N9.displayName=bf;var C9="MenuSubContent",O9=y.forwardRef((e,t)=>{const n=c9(Oa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=xo(Oa,e.__scopeMenu),l=lm(Oa,e.__scopeMenu),u=S9(C9,e.__scopeMenu),d=y.useRef(null),f=Ue(t,d);return i.jsx(Nh.Provider,{scope:e.__scopeMenu,children:i.jsx(Bn,{present:r||s.open,children:i.jsx(Nh.Slot,{scope:e.__scopeMenu,children:i.jsx(qE,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:_e(e.onFocusOutside,m=>{m.target!==u.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:_e(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:_e(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=QCe[l.dir].includes(m.key);p&&g&&(s.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});O9.displayName=C9;function E9(e){return e?"open":"closed"}function Bg(e){return e==="indeterminate"}function WE(e){return Bg(e)?"indeterminate":e?"checked":"unchecked"}function gOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function yOe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function xOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=yOe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function bOe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function wOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return bOe(n,t)}function Ch(e){return t=>t.pointerType==="mouse"?e(t):void 0}var jOe=l9,SOe=LE,_Oe=u9,NOe=d9,COe=FE,OOe=f9,EOe=lx,AOe=m9,TOe=v9,kOe=y9,MOe=b9,POe=w9,ROe=j9,DOe=_9,$Oe=N9,IOe=O9,VE="ContextMenu",[LOe]=gr(VE,[i9]),xr=i9(),[BOe,A9]=LOe(VE),T9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:s=!0}=e,[l,u]=y.useState(!1),d=xr(t),f=ln(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(BOe,{scope:t,open:l,onOpenChange:m,modal:s,children:i.jsx(jOe,{...d,dir:a,open:l,onOpenChange:m,modal:s,children:n})})};T9.displayName=VE;var k9="ContextMenuTrigger",M9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,s=A9(k9,n),l=xr(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},s.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(SOe,{...l,virtualRef:d}),i.jsx($e.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:_e(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:_e(e.onPointerDown,nv(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:_e(e.onPointerMove,nv(m)),onPointerCancel:r?e.onPointerCancel:_e(e.onPointerCancel,nv(m)),onPointerUp:r?e.onPointerUp:_e(e.onPointerUp,nv(m))})]})});M9.displayName=k9;var zOe="ContextMenuPortal",P9=e=>{const{__scopeContextMenu:t,...n}=e,r=xr(t);return i.jsx(_Oe,{...r,...n})};P9.displayName=zOe;var R9="ContextMenuContent",D9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=A9(R9,n),s=xr(n),l=y.useRef(!1);return i.jsx(NOe,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});D9.displayName=R9;var qOe="ContextMenuGroup",FOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(COe,{...a,...r,ref:t})});FOe.displayName=qOe;var UOe="ContextMenuLabel",$9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(OOe,{...a,...r,ref:t})});$9.displayName=UOe;var HOe="ContextMenuItem",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(EOe,{...a,...r,ref:t})});I9.displayName=HOe;var WOe="ContextMenuCheckboxItem",L9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(AOe,{...a,...r,ref:t})});L9.displayName=WOe;var VOe="ContextMenuRadioGroup",GOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(TOe,{...a,...r,ref:t})});GOe.displayName=VOe;var YOe="ContextMenuRadioItem",B9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(kOe,{...a,...r,ref:t})});B9.displayName=YOe;var KOe="ContextMenuItemIndicator",z9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(MOe,{...a,...r,ref:t})});z9.displayName=KOe;var XOe="ContextMenuSeparator",q9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(POe,{...a,...r,ref:t})});q9.displayName=XOe;var ZOe="ContextMenuArrow",QOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(ROe,{...a,...r,ref:t})});QOe.displayName=ZOe;var F9="ContextMenuSub",U9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:s}=e,l=xr(t),[u,d]=Ea({prop:a,defaultProp:s??!1,onChange:r,caller:F9});return i.jsx(DOe,{...l,open:u,onOpenChange:d,children:n})};U9.displayName=F9;var JOe="ContextMenuSubTrigger",H9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx($Oe,{...a,...r,ref:t})});H9.displayName=JOe;var eEe="ContextMenuSubContent",W9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=xr(n);return i.jsx(IOe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});W9.displayName=eEe;function nv(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var tEe=T9,nEe=M9,rEe=P9,V9=D9,G9=$9,Y9=I9,K9=L9,X9=B9,Z9=z9,Q9=q9,aEe=U9,J9=H9,eW=W9;const iEe=tEe,sEe=nEe,oEe=aEe,tW=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(J9,{ref:a,className:ce("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(rE,{className:"ml-auto h-4 w-4"})]}));tW.displayName=J9.displayName;const nW=y.forwardRef(({className:e,...t},n)=>i.jsx(eW,{ref:n,className:ce("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));nW.displayName=eW.displayName;const rW=y.forwardRef(({className:e,...t},n)=>i.jsx(rEe,{children:i.jsx(V9,{ref:n,className:ce("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));rW.displayName=V9.displayName;const Ia=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(Y9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));Ia.displayName=Y9.displayName;const lEe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(K9,{ref:a,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Z9,{children:i.jsx(ol,{className:"h-4 w-4"})})}),t]}));lEe.displayName=K9.displayName;const cEe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(X9,{ref:r,className:ce("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(Z9,{children:i.jsx(Uve,{className:"h-2 w-2 fill-current"})})}),t]}));cEe.displayName=X9.displayName;const uEe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(G9,{ref:r,className:ce("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));uEe.displayName=G9.displayName;const wf=y.forwardRef(({className:e,...t},n)=>i.jsx(Q9,{ref:n,className:ce("-mx-1 my-1 h-px bg-border",e),...t}));wf.displayName=Q9.displayName;const zc=({className:e,...t})=>i.jsx("span",{className:ce("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});zc.displayName="ContextMenuShortcut";var dEe=Symbol("radix.slottable");function fEe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=dEe,t}var[cx]=gr("Tooltip",[ho]),ux=ho(),aW="TooltipProvider",hEe=700,SC="tooltip.open",[mEe,GE]=cx(aW),iW=e=>{const{__scopeTooltip:t,delayDuration:n=hEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(mEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:s})};iW.displayName=aW;var Oh="Tooltip",[pEe,cm]=cx(Oh),sW=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:s,disableHoverableContent:l,delayDuration:u}=e,d=GE(Oh,e.__scopeTooltip),f=ux(t),[m,p]=y.useState(null),g=Gn(),x=y.useRef(0),j=l??d.disableHoverableContent,w=u??d.delayDuration,b=y.useRef(!1),[N,E]=Ea({prop:r,defaultProp:a??!1,onChange:T=>{T?(d.onOpen(),document.dispatchEvent(new CustomEvent(SC))):d.onClose(),s?.(T)},caller:Oh}),O=y.useMemo(()=>N?b.current?"delayed-open":"instant-open":"closed",[N]),A=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,b.current=!1,E(!0)},[E]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,E(!1)},[E]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{b.current=!0,E(!0),x.current=0},w)},[w,E]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(Qh,{...f,children:i.jsx(pEe,{scope:t,contentId:g,open:N,stateAttribute:O,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():A()},[d.isOpenDelayedRef,k,A]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:A,onClose:C,disableHoverableContent:j,children:n})})};sW.displayName=Oh;var _C="TooltipTrigger",oW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=cm(_C,n),s=GE(_C,n),l=ux(n),u=y.useRef(null),d=Ue(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(Jh,{asChild:!0,...l,children:i.jsx($e.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:_e(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:_e(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:_e(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:_e(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:_e(e.onBlur,a.onClose),onClick:_e(e.onClick,a.onClose)})})});oW.displayName=_C;var YE="TooltipPortal",[vEe,gEe]=cx(YE,{forceMount:void 0}),lW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,s=cm(YE,t);return i.jsx(vEe,{scope:t,forceMount:n,children:i.jsx(Bn,{present:n||s.open,children:i.jsx(Tl,{asChild:!0,container:a,children:r})})})};lW.displayName=YE;var Iu="TooltipContent",cW=y.forwardRef((e,t)=>{const n=gEe(Iu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,l=cm(Iu,e.__scopeTooltip);return i.jsx(Bn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(uW,{side:a,...s,ref:t}):i.jsx(yEe,{side:a,...s,ref:t})})}),yEe=y.forwardRef((e,t)=>{const n=cm(Iu,e.__scopeTooltip),r=GE(Iu,e.__scopeTooltip),a=y.useRef(null),s=Ue(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,w)=>{const b=j.currentTarget,N={x:j.clientX,y:j.clientY},E=SEe(N,b.getBoundingClientRect()),O=_Ee(N,E),A=NEe(w.getBoundingClientRect()),C=OEe([...O,...A]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=b=>x(b,m),w=b=>x(b,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",w)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=w=>{const b=w.target,N={x:w.clientX,y:w.clientY},E=d?.contains(b)||m?.contains(b),O=!CEe(N,l);E?g():O&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(uW,{...e,ref:s})}),[xEe,bEe]=cx(Oh,{isInside:!1}),wEe=fEe("TooltipContent"),uW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:l,...u}=e,d=cm(Iu,n),f=ux(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(SC,m),()=>document.removeEventListener(SC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(Al,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Xy,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(wEe,{children:r}),i.jsx(xEe,{scope:n,isInside:!0,children:i.jsx(jwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});cW.displayName=Iu;var dW="TooltipArrow",jEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=ux(n);return bEe(dW,n).isInside?null:i.jsx(Zy,{...a,...r,ref:t})});jEe.displayName=dW;function SEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function _Ee(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function NEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function CEe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function OEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),EEe(t)}function EEe(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const s=t[t.length-1],l=t[t.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],l=n[n.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var AEe=iW,TEe=sW,kEe=oW,MEe=lW,fW=cW;const PEe=AEe,REe=TEe,DEe=kEe,hW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(MEe,{children:i.jsx(fW,{ref:r,sideOffset:t,className:ce("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));hW.displayName=fW.displayName;function $Ee({children:e}){fbe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[s,l]=y.useState(!1),{theme:u,setTheme:d}=lE(),f=VY(),m=la();y.useEffect(()=>{const w=b=>{(b.metaKey||b.ctrlKey)&&b.key==="k"&&(b.preventDefault(),l(!0))};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);const p=[{title:"概览",items:[{icon:Ag,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:aE,label:"麦麦主程序配置",path:"/config/bot"},{icon:vF,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:hF,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:oE,label:"表情包管理",path:"/resource/emoji"},{icon:Gh,label:"表达方式管理",path:"/resource/expression"},{icon:mF,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:Tg,label:"插件市场",path:"/plugins"},{icon:zge,label:"插件配置",path:"/plugin-config"},{icon:Og,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Fa,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(PEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:ce("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:ce("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:ce("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:_ye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:ce("space-y-6",!t&&"lg:space-y-3"),children:p.map((w,b)=>i.jsxs("li",{children:[i.jsx("div",{className:ce("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:w.title})}),!t&&b>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:w.items.map(N=>{const E=f({to:N.path}),O=N.icon,A=i.jsxs(i.Fragment,{children:[E&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:ce("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(O,{className:ce("h-5 w-5 flex-shrink-0",E&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:ce("text-sm font-medium whitespace-nowrap transition-all duration-300",E&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(REe,{children:[i.jsx(DEe,{asChild:!0,children:i.jsx(IC,{to:N.path,className:ce("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",E?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:A})}),!t&&i.jsx(hW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},w.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(fge,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(nE,{className:ce("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Lr,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(r9,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(FCe,{open:s,onOpenChange:l}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(jve,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:w=>{sye(x==="dark"?"light":"dark",d,w)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(rC,{className:"h-5 w-5"}):i.jsx(nC,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(eL,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(iEe,{children:[i.jsx(sEe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(rW,{className:"w-64",children:[i.jsxs(Ia,{onClick:()=>m({to:"/"}),children:[i.jsx(Ag,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(Ia,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Fa,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(Ia,{onClick:()=>m({to:"/logs"}),children:[i.jsx(Og,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(wf,{}),i.jsxs(oEe,{children:[i.jsxs(tW,{children:[i.jsx(pF,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(nW,{className:"w-48",children:[i.jsxs(Ia,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(rC,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(zc,{children:"✓"})]}),i.jsxs(Ia,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(nC,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(zc,{children:"✓"})]}),i.jsxs(Ia,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Fa,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(zc,{children:"✓"})]})]})]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:()=>window.location.reload(),children:[i.jsx(Ege,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(zc,{children:"⌘R"})]}),i.jsxs(Ia,{onClick:()=>l(!0),children:[i.jsx(Lr,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(zc,{children:"⌘K"})]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(Mf,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(wf,{}),i.jsxs(Ia,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(eL,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const um=IY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(LC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!O8())throw r5({to:"/auth"})}}),IEe=or({getParentRoute:()=>um,path:"/auth",component:hbe}),LEe=or({getParentRoute:()=>um,path:"/setup",component:Mbe}),ca=or({getParentRoute:()=>um,id:"protected",component:()=>i.jsx($Ee,{children:i.jsx(LC,{})})}),BEe=or({getParentRoute:()=>ca,path:"/",component:aye}),zEe=or({getParentRoute:()=>ca,path:"/config/bot",component:Sje}),qEe=or({getParentRoute:()=>ca,path:"/config/modelProvider",component:Uje}),FEe=or({getParentRoute:()=>ca,path:"/config/model",component:g1e}),UEe=or({getParentRoute:()=>ca,path:"/resource/emoji",component:N1e}),HEe=or({getParentRoute:()=>ca,path:"/resource/expression",component:R1e}),WEe=or({getParentRoute:()=>ca,path:"/resource/person",component:U1e}),VEe=or({getParentRoute:()=>ca,path:"/logs",component:_Ce}),GEe=or({getParentRoute:()=>ca,path:"/plugins",component:ICe}),YEe=or({getParentRoute:()=>ca,path:"/plugin-config",component:LCe}),KEe=or({getParentRoute:()=>ca,path:"/plugin-mirrors",component:BCe}),XEe=or({getParentRoute:()=>ca,path:"/settings",component:ibe}),ZEe=or({getParentRoute:()=>um,path:"*",component:T8}),QEe=um.addChildren([IEe,LEe,ca.addChildren([BEe,zEe,qEe,FEe,UEe,HEe,WEe,GEe,YEe,KEe,VEe,XEe]),ZEe]),JEe=GY({routeTree:QEe,defaultNotFoundComponent:T8});function eAe({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,s]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%"},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%"},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%"},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%"},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%"}}[u];m&&d.style.setProperty("--primary",m.hsl)}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),s(u)}};return i.jsx(yF.Provider,{...r,value:l,children:e})}function tAe({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[s,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;s?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(s))},[s,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:s,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(xF.Provider,{value:f,children:e})}var KE="ToastProvider",[XE,nAe,rAe]=Ph("Toast"),[mW]=gr("Toast",[rAe]),[aAe,dx]=mW(KE),pW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${KE}\`. Expected non-empty \`string\`.`),i.jsx(XE.Provider,{scope:t,children:i.jsx(aAe,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};pW.displayName=KE;var vW="ToastViewport",iAe=["F8"],NC="toast.viewportPause",CC="toast.viewportResume",gW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=iAe,label:a="Notifications ({hotkey})",...s}=e,l=dx(vW,n),u=nAe(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=Ue(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const b=N=>{r.length!==0&&r.every(O=>N[O]||N.code===O)&&p.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),y.useEffect(()=>{const b=d.current,N=p.current;if(j&&b&&N){const E=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(NC);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},O=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(CC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},A=k=>{!b.contains(k.relatedTarget)&&O()},C=()=>{b.contains(document.activeElement)||O()};return b.addEventListener("focusin",E),b.addEventListener("focusout",A),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",C),window.addEventListener("blur",E),window.addEventListener("focus",O),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",A),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",C),window.removeEventListener("blur",E),window.removeEventListener("focus",O)}}},[j,l.isClosePausedRef]);const w=y.useCallback(({tabbingDirection:b})=>{const E=u().map(O=>{const A=O.ref.current,C=[A,...yAe(A)];return b==="forwards"?C:C.reverse()});return(b==="forwards"?E.reverse():E).flat()},[u]);return y.useEffect(()=>{const b=p.current;if(b){const N=E=>{const O=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!O){const C=document.activeElement,k=E.shiftKey;if(E.target===b&&k){f.current?.focus();return}const R=w({tabbingDirection:k?"backwards":"forwards"}),B=R.findIndex($=>$===C);v_(R.slice(B+1))?E.preventDefault():k?f.current?.focus():m.current?.focus()}};return b.addEventListener("keydown",N),()=>b.removeEventListener("keydown",N)}},[u,w]),i.jsxs(Pye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(OC,{ref:f,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"forwards"});v_(b)}}),i.jsx(XE.Slot,{scope:n,children:i.jsx($e.ol,{tabIndex:-1,...s,ref:g})}),j&&i.jsx(OC,{ref:m,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"backwards"});v_(b)}})]})});gW.displayName=vW;var yW="ToastFocusProxy",OC=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=dx(yW,n);return i.jsx(Qy,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!s.viewport?.contains(u)&&r()}})});OC.displayName=yW;var dm="Toast",sAe="toast.swipeStart",oAe="toast.swipeMove",lAe="toast.swipeCancel",cAe="toast.swipeEnd",xW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...l}=e,[u,d]=Ea({prop:r,defaultProp:a??!0,onChange:s,caller:dm});return i.jsx(Bn,{present:n||u,children:i.jsx(fAe,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:ln(e.onPause),onResume:ln(e.onResume),onSwipeStart:_e(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:_e(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:_e(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:_e(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});xW.displayName=dm;var[uAe,dAe]=mW(dm,{onClose(){}}),fAe=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,w=dx(dm,n),[b,N]=y.useState(null),E=Ue(t,q=>N(q)),O=y.useRef(null),A=y.useRef(null),C=a||w.duration,k=y.useRef(0),T=y.useRef(C),M=y.useRef(0),{onToastAdd:R,onToastRemove:B}=w,$=ln(()=>{b?.contains(document.activeElement)&&w.viewport?.focus(),l()}),H=y.useCallback(q=>{!q||q===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout($,q))},[$]);y.useEffect(()=>{const q=w.viewport;if(q){const G=()=>{H(T.current),f?.()},L=()=>{const D=new Date().getTime()-k.current;T.current=T.current-D,window.clearTimeout(M.current),d?.()};return q.addEventListener(NC,L),q.addEventListener(CC,G),()=>{q.removeEventListener(NC,L),q.removeEventListener(CC,G)}}},[w.viewport,C,d,f,H]),y.useEffect(()=>{s&&!w.isClosePausedRef.current&&H(C)},[s,C,w.isClosePausedRef,H]),y.useEffect(()=>(R(),()=>B()),[R,B]);const V=y.useMemo(()=>b?CW(b):null,[b]);return w.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(hAe,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(uAe,{scope:n,onClose:$,children:Sl.createPortal(i.jsx(XE.ItemSlot,{scope:n,children:i.jsx(Mye,{asChild:!0,onEscapeKeyDown:_e(u,()=>{w.isFocusedToastEscapeKeyDownRef.current||$(),w.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx($e.li,{tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":w.swipeDirection,...j,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:_e(e.onKeyDown,q=>{q.key==="Escape"&&(u?.(q.nativeEvent),q.nativeEvent.defaultPrevented||(w.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:_e(e.onPointerDown,q=>{q.button===0&&(O.current={x:q.clientX,y:q.clientY})}),onPointerMove:_e(e.onPointerMove,q=>{if(!O.current)return;const G=q.clientX-O.current.x,L=q.clientY-O.current.y,D=!!A.current,U=["left","right"].includes(w.swipeDirection),K=["left","up"].includes(w.swipeDirection)?Math.min:Math.max,J=U?K(0,G):0,I=U?0:K(0,L),z=q.pointerType==="touch"?10:2,Y={x:J,y:I},te={originalEvent:q,delta:Y};D?(A.current=Y,rv(oAe,p,te,{discrete:!1})):QL(Y,w.swipeDirection,z)?(A.current=Y,rv(sAe,m,te,{discrete:!1}),q.target.setPointerCapture(q.pointerId)):(Math.abs(G)>z||Math.abs(L)>z)&&(O.current=null)}),onPointerUp:_e(e.onPointerUp,q=>{const G=A.current,L=q.target;if(L.hasPointerCapture(q.pointerId)&&L.releasePointerCapture(q.pointerId),A.current=null,O.current=null,G){const D=q.currentTarget,U={originalEvent:q,delta:G};QL(G,w.swipeDirection,w.swipeThreshold)?rv(cAe,x,U,{discrete:!0}):rv(lAe,g,U,{discrete:!0}),D.addEventListener("click",K=>K.preventDefault(),{once:!0})}})})})}),w.viewport)})]}):null}),hAe=e=>{const{__scopeToast:t,children:n,...r}=e,a=dx(dm,t),[s,l]=y.useState(!1),[u,d]=y.useState(!1);return vAe(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(Tl,{asChild:!0,children:i.jsx(Qy,{...r,children:s&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},mAe="ToastTitle",bW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});bW.displayName=mAe;var pAe="ToastDescription",wW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});wW.displayName=pAe;var jW="ToastAction",SW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(NW,{altText:n,asChild:!0,children:i.jsx(ZE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${jW}\`. Expected non-empty \`string\`.`),null)});SW.displayName=jW;var _W="ToastClose",ZE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=dAe(_W,n);return i.jsx(NW,{asChild:!0,children:i.jsx($e.button,{type:"button",...r,ref:t,onClick:_e(e.onClick,a.onClose)})})});ZE.displayName=_W;var NW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx($e.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function CW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),gAe(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...CW(r))}}),t}function rv(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?HC(a,s):a.dispatchEvent(s)}var QL=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function vAe(e=()=>{}){const t=ln(e);Yn(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function gAe(e){return e.nodeType===e.ELEMENT_NODE}function yAe(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function v_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var xAe=pW,OW=gW,EW=xW,AW=bW,TW=wW,kW=SW,MW=ZE;const bAe=xAe,PW=y.forwardRef(({className:e,...t},n)=>i.jsx(OW,{ref:n,className:ce("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));PW.displayName=OW.displayName;const wAe=Zu("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),RW=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(EW,{ref:r,className:ce(wAe({variant:t}),e),...n}));RW.displayName=EW.displayName;const jAe=y.forwardRef(({className:e,...t},n)=>i.jsx(kW,{ref:n,className:ce("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));jAe.displayName=kW.displayName;const DW=y.forwardRef(({className:e,...t},n)=>i.jsx(MW,{ref:n,className:ce("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Yh,{className:"h-4 w-4"})}));DW.displayName=MW.displayName;const $W=y.forwardRef(({className:e,...t},n)=>i.jsx(AW,{ref:n,className:ce("text-sm font-semibold [&+div]:text-xs",e),...t}));$W.displayName=AW.displayName;const IW=y.forwardRef(({className:e,...t},n)=>i.jsx(TW,{ref:n,className:ce("text-sm opacity-90",e),...t}));IW.displayName=TW.displayName;function SAe(){const{toasts:e}=yr();return i.jsxs(bAe,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return i.jsxs(RW,{...s,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx($W,{children:n}),r&&i.jsx(IW,{children:r})]}),a,i.jsx(DW,{})]},t)}),i.jsx(PW,{})]})}iG.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(eAe,{defaultTheme:"system",children:i.jsxs(tAe,{children:[i.jsx(XY,{router:JEe}),i.jsx(SAe,{})]})})})); diff --git a/webui/dist/assets/index-7uxip_BT.css b/webui/dist/assets/index-_P1Qkw5e.css similarity index 83% rename from webui/dist/assets/index-7uxip_BT.css rename to webui/dist/assets/index-_P1Qkw5e.css index 98fc3936..94c218e4 100644 --- a/webui/dist/assets/index-7uxip_BT.css +++ b/webui/dist/assets/index-_P1Qkw5e.css @@ -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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-orange-700:hover{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-blue-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 58 138 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} +*,: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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-orange-700:hover{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-blue-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 58 138 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-1{margin-left:.25rem}.sm\:mr-1{margin-right:.25rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} diff --git a/webui/dist/index.html b/webui/dist/index.html index fb375624..24c2fbec 100644 --- a/webui/dist/index.html +++ b/webui/dist/index.html @@ -5,8 +5,8 @@ MaiBot Dashboard - - + +
From bf71fe739dcb9bc21a132c0c3c7473a7a1bde427 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Thu, 20 Nov 2025 01:28:16 +0800 Subject: [PATCH 10/12] =?UTF-8?q?fix=EF=BC=9Aemoji=E4=BD=BF=E7=94=A8utils?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E8=80=8C=E4=B8=8D=E6=98=AFreplyer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/built_in/emoji_plugin/emoji.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/built_in/emoji_plugin/emoji.py b/src/plugins/built_in/emoji_plugin/emoji.py index 7078a817..3783886a 100644 --- a/src/plugins/built_in/emoji_plugin/emoji.py +++ b/src/plugins/built_in/emoji_plugin/emoji.py @@ -102,13 +102,13 @@ class EmojiAction(BaseAction): # 5. 调用LLM models = llm_api.get_available_models() - chat_model_config = models.get("replyer") # 使用字典访问方式 + chat_model_config = models.get("utils") # 使用字典访问方式 if not chat_model_config: - logger.error(f"{self.log_prefix} 未找到'replyer'模型配置,无法调用LLM") - return False, "未找到'replyer'模型配置" + logger.error(f"{self.log_prefix} 未找到'utils'模型配置,无法调用LLM") + return False, "未找到'utils'模型配置" success, chosen_emotion, _, _ = await llm_api.generate_with_model( - prompt, model_config=chat_model_config, request_type="emoji" + prompt, model_config=chat_model_config, request_type="emoji.select" ) if not success: From 4485e570a25e652bc02c953a7e013e4590ccc956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Thu, 20 Nov 2025 11:10:24 +0800 Subject: [PATCH 11/12] upload WebUI 0.11.5 Beta.0a6f11a DashBoard after Build Files commit hash : 0a6f11a6fe16a18ce9dbf59453e82e72b6291ac9 --- webui/dist/assets/charts-DU5SeejN.js | 65 +++++++++ webui/dist/assets/icons-DnP4c9nr.js | 1 + webui/dist/assets/index-3Oy1uh5z.js | 157 --------------------- webui/dist/assets/index-D2uz_15W.css | 1 + webui/dist/assets/index-DgvN-P_n.js | 48 +++++++ webui/dist/assets/index-_P1Qkw5e.css | 1 - webui/dist/assets/react-vendor-Dtc2IqVY.js | 1 + webui/dist/assets/router-BWgTyY51.js | 2 + webui/dist/assets/ui-vendor-nTGLnMlb.js | 45 ++++++ webui/dist/index.html | 9 +- 10 files changed, 170 insertions(+), 160 deletions(-) create mode 100644 webui/dist/assets/charts-DU5SeejN.js create mode 100644 webui/dist/assets/icons-DnP4c9nr.js delete mode 100644 webui/dist/assets/index-3Oy1uh5z.js create mode 100644 webui/dist/assets/index-D2uz_15W.css create mode 100644 webui/dist/assets/index-DgvN-P_n.js delete mode 100644 webui/dist/assets/index-_P1Qkw5e.css create mode 100644 webui/dist/assets/react-vendor-Dtc2IqVY.js create mode 100644 webui/dist/assets/router-BWgTyY51.js create mode 100644 webui/dist/assets/ui-vendor-nTGLnMlb.js diff --git a/webui/dist/assets/charts-DU5SeejN.js b/webui/dist/assets/charts-DU5SeejN.js new file mode 100644 index 00000000..4b6aaf32 --- /dev/null +++ b/webui/dist/assets/charts-DU5SeejN.js @@ -0,0 +1,65 @@ +import{r as N,R as S,i as Qt}from"./router-BWgTyY51.js";import{c as vi,g as oe}from"./react-vendor-Dtc2IqVY.js";function zb(e){var t,r,n="";if(typeof e=="string"||typeof e=="number")n+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t-1}return Ho=t,Ho}var Ko,Op;function PO(){if(Op)return Ko;Op=1;var e=ja();function t(r,n){var i=this.__data__,a=e(i,r);return a<0?(++this.size,i.push([r,n])):i[a][1]=n,this}return Ko=t,Ko}var Go,_p;function Ma(){if(_p)return Go;_p=1;var e=OO(),t=_O(),r=AO(),n=SO(),i=PO();function a(o){var u=-1,c=o==null?0:o.length;for(this.clear();++u0?1:-1},Gt=function(t){return er(t)&&t.indexOf("%")===t.length-1},q=function(t){return XO(t)&&!oi(t)},YO=function(t){return Y(t)},Ae=function(t){return q(t)||er(t)},ZO=0,Zr=function(t){var r=++ZO;return"".concat(t||"").concat(r)},Ie=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!q(t)&&!er(t))return n;var a;if(Gt(t)){var o=t.indexOf("%");a=r*parseFloat(t.slice(0,o))/100}else a=+t;return oi(a)&&(a=n),i&&a>r&&(a=r),a},Mt=function(t){if(!t)return null;var r=Object.keys(t);return r&&r.length?t[r[0]]:null},JO=function(t){if(!Array.isArray(t))return!1;for(var r=t.length,n={},i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function a_(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ml(e){"@babel/helpers - typeof";return ml=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ml(e)}var Zp={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},bt=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},Jp=null,bu=null,Kf=function e(t){if(t===Jp&&Array.isArray(bu))return bu;var r=[];return N.Children.forEach(t,function(n){Y(n)||(HO.isFragment(n)?r=r.concat(e(n.props.children)):r.push(n))}),bu=r,Jp=t,r};function Ke(e,t){var r=[],n=[];return Array.isArray(t)?n=t.map(function(i){return bt(i)}):n=[bt(t)],Kf(e).forEach(function(i){var a=He(i,"type.displayName")||He(i,"type.name");n.indexOf(a)!==-1&&r.push(i)}),r}function We(e,t){var r=Ke(e,t);return r&&r[0]}var Qp=function(t){if(!t||!t.props)return!1;var r=t.props,n=r.width,i=r.height;return!(!q(n)||n<=0||!q(i)||i<=0)},o_=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],u_=function(t){return t&&t.type&&er(t.type)&&o_.indexOf(t.type)>=0},c_=function(t){return t&&ml(t)==="object"&&"clipDot"in t},s_=function(t,r,n,i){var a,o=(a=gu?.[i])!==null&&a!==void 0?a:[];return r.startsWith("data-")||!X(t)&&(i&&o.includes(r)||t_.includes(r))||n&&Hf.includes(r)},H=function(t,r,n){if(!t||typeof t=="function"||typeof t=="boolean")return null;var i=t;if(N.isValidElement(t)&&(i=t.props),!Yr(i))return null;var a={};return Object.keys(i).forEach(function(o){var u;s_((u=i)===null||u===void 0?void 0:u[o],o,r,n)&&(a[o]=i[o])}),a},gl=function e(t,r){if(t===r)return!0;var n=N.Children.count(t);if(n!==N.Children.count(r))return!1;if(n===0)return!0;if(n===1)return ed(Array.isArray(t)?t[0]:t,Array.isArray(r)?r[0]:r);for(var i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function d_(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function xl(e){var t=e.children,r=e.width,n=e.height,i=e.viewBox,a=e.className,o=e.style,u=e.title,c=e.desc,s=p_(e,h_),f=i||{width:r,height:n,x:0,y:0},l=J("recharts-surface",a);return S.createElement("svg",bl({},H(s,!0,"svg"),{className:l,width:r,height:n,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height)}),S.createElement("title",null,u),S.createElement("desc",null,c),t)}var v_=["children","className"];function wl(){return wl=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function m_(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var te=S.forwardRef(function(e,t){var r=e.children,n=e.className,i=y_(e,v_),a=J("recharts-layer",n);return S.createElement("g",wl({className:a},H(i,!0),{ref:t}),r)}),it=function(t,r){for(var n=arguments.length,i=new Array(n>2?n-2:0),a=2;aa?0:a+r),n=n>a?a:n,n<0&&(n+=a),a=r>n?0:n-r>>>0,r>>>=0;for(var o=Array(a);++i=a?r:e(r,n,i)}return wu=t,wu}var Ou,id;function Zb(){if(id)return Ou;id=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",i=t+r+n,a="\\ufe0e\\ufe0f",o="\\u200d",u=RegExp("["+o+e+i+a+"]");function c(s){return u.test(s)}return Ou=c,Ou}var _u,ad;function x_(){if(ad)return _u;ad=1;function e(t){return t.split("")}return _u=e,_u}var Au,od;function w_(){if(od)return Au;od=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",n="\\u20d0-\\u20ff",i=t+r+n,a="\\ufe0e\\ufe0f",o="["+e+"]",u="["+i+"]",c="\\ud83c[\\udffb-\\udfff]",s="(?:"+u+"|"+c+")",f="[^"+e+"]",l="(?:\\ud83c[\\udde6-\\uddff]){2}",h="[\\ud800-\\udbff][\\udc00-\\udfff]",d="\\u200d",y=s+"?",v="["+a+"]?",p="(?:"+d+"(?:"+[f,l,h].join("|")+")"+v+y+")*",g=v+y+p,x="(?:"+[f+u+"?",u,l,h,o].join("|")+")",w=RegExp(c+"(?="+c+")|"+x+g,"g");function O(m){return m.match(w)||[]}return Au=O,Au}var Su,ud;function O_(){if(ud)return Su;ud=1;var e=x_(),t=Zb(),r=w_();function n(i){return t(i)?r(i):e(i)}return Su=n,Su}var Pu,cd;function __(){if(cd)return Pu;cd=1;var e=b_(),t=Zb(),r=O_(),n=Gb();function i(a){return function(o){o=n(o);var u=t(o)?r(o):void 0,c=u?u[0]:o.charAt(0),s=u?e(u,1).join(""):o.slice(1);return c[a]()+s}}return Pu=i,Pu}var Tu,sd;function A_(){if(sd)return Tu;sd=1;var e=__(),t=e("toUpperCase");return Tu=t,Tu}var S_=A_();const Ia=oe(S_);function se(e){return function(){return e}}const Jb=Math.cos,Ci=Math.sin,at=Math.sqrt,Ii=Math.PI,ka=2*Ii,Ol=Math.PI,_l=2*Ol,Ut=1e-6,P_=_l-Ut;function Qb(e){this._+=e[0];for(let t=1,r=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Qb;const r=10**t;return function(n){this._+=n[0];for(let i=1,a=n.length;iUt)if(!(Math.abs(l*c-s*f)>Ut)||!a)this._append`L${this._x1=t},${this._y1=r}`;else{let d=n-o,y=i-u,v=c*c+s*s,p=d*d+y*y,g=Math.sqrt(v),x=Math.sqrt(h),w=a*Math.tan((Ol-Math.acos((v+h-p)/(2*g*x)))/2),O=w/x,m=w/g;Math.abs(O-1)>Ut&&this._append`L${t+O*f},${r+O*l}`,this._append`A${a},${a},0,0,${+(l*d>f*y)},${this._x1=t+m*c},${this._y1=r+m*s}`}}arc(t,r,n,i,a,o){if(t=+t,r=+r,n=+n,o=!!o,n<0)throw new Error(`negative radius: ${n}`);let u=n*Math.cos(i),c=n*Math.sin(i),s=t+u,f=r+c,l=1^o,h=o?i-a:a-i;this._x1===null?this._append`M${s},${f}`:(Math.abs(this._x1-s)>Ut||Math.abs(this._y1-f)>Ut)&&this._append`L${s},${f}`,n&&(h<0&&(h=h%_l+_l),h>P_?this._append`A${n},${n},0,1,${l},${t-u},${r-c}A${n},${n},0,1,${l},${this._x1=s},${this._y1=f}`:h>Ut&&this._append`A${n},${n},0,${+(h>=Ol)},${l},${this._x1=t+n*Math.cos(a)},${this._y1=r+n*Math.sin(a)}`)}rect(t,r,n,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+r}h${n=+n}v${+i}h${-n}Z`}toString(){return this._}}function Gf(e){let t=3;return e.digits=function(r){if(!arguments.length)return t;if(r==null)t=null;else{const n=Math.floor(r);if(!(n>=0))throw new RangeError(`invalid digits: ${r}`);t=n}return e},()=>new E_(t)}function Vf(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function e0(e){this._context=e}e0.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function Ra(e){return new e0(e)}function t0(e){return e[0]}function r0(e){return e[1]}function n0(e,t){var r=se(!0),n=null,i=Ra,a=null,o=Gf(u);e=typeof e=="function"?e:e===void 0?t0:se(e),t=typeof t=="function"?t:t===void 0?r0:se(t);function u(c){var s,f=(c=Vf(c)).length,l,h=!1,d;for(n==null&&(a=i(d=o())),s=0;s<=f;++s)!(s=d;--y)u.point(w[y],O[y]);u.lineEnd(),u.areaEnd()}g&&(w[h]=+e(p,h,l),O[h]=+t(p,h,l),u.point(n?+n(p,h,l):w[h],r?+r(p,h,l):O[h]))}if(x)return u=null,x+""||null}function f(){return n0().defined(i).curve(o).context(a)}return s.x=function(l){return arguments.length?(e=typeof l=="function"?l:se(+l),n=null,s):e},s.x0=function(l){return arguments.length?(e=typeof l=="function"?l:se(+l),s):e},s.x1=function(l){return arguments.length?(n=l==null?null:typeof l=="function"?l:se(+l),s):n},s.y=function(l){return arguments.length?(t=typeof l=="function"?l:se(+l),r=null,s):t},s.y0=function(l){return arguments.length?(t=typeof l=="function"?l:se(+l),s):t},s.y1=function(l){return arguments.length?(r=l==null?null:typeof l=="function"?l:se(+l),s):r},s.lineX0=s.lineY0=function(){return f().x(e).y(t)},s.lineY1=function(){return f().x(e).y(r)},s.lineX1=function(){return f().x(n).y(t)},s.defined=function(l){return arguments.length?(i=typeof l=="function"?l:se(!!l),s):i},s.curve=function(l){return arguments.length?(o=l,a!=null&&(u=o(a)),s):o},s.context=function(l){return arguments.length?(l==null?a=u=null:u=o(a=l),s):a},s}class i0{constructor(t,r){this._context=t,this._x=r}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,r){switch(t=+t,r=+r,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,r):this._context.moveTo(t,r);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,r,t,r):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+r)/2,t,this._y0,t,r);break}}this._x0=t,this._y0=r}}function j_(e){return new i0(e,!0)}function M_(e){return new i0(e,!1)}const Xf={draw(e,t){const r=at(t/Ii);e.moveTo(r,0),e.arc(0,0,r,0,ka)}},$_={draw(e,t){const r=at(t/5)/2;e.moveTo(-3*r,-r),e.lineTo(-r,-r),e.lineTo(-r,-3*r),e.lineTo(r,-3*r),e.lineTo(r,-r),e.lineTo(3*r,-r),e.lineTo(3*r,r),e.lineTo(r,r),e.lineTo(r,3*r),e.lineTo(-r,3*r),e.lineTo(-r,r),e.lineTo(-3*r,r),e.closePath()}},a0=at(1/3),C_=a0*2,I_={draw(e,t){const r=at(t/C_),n=r*a0;e.moveTo(0,-r),e.lineTo(n,0),e.lineTo(0,r),e.lineTo(-n,0),e.closePath()}},k_={draw(e,t){const r=at(t),n=-r/2;e.rect(n,n,r,r)}},R_=.8908130915292852,o0=Ci(Ii/10)/Ci(7*Ii/10),D_=Ci(ka/10)*o0,N_=-Jb(ka/10)*o0,q_={draw(e,t){const r=at(t*R_),n=D_*r,i=N_*r;e.moveTo(0,-r),e.lineTo(n,i);for(let a=1;a<5;++a){const o=ka*a/5,u=Jb(o),c=Ci(o);e.lineTo(c*r,-u*r),e.lineTo(u*n-c*i,c*n+u*i)}e.closePath()}},Eu=at(3),L_={draw(e,t){const r=-at(t/(Eu*3));e.moveTo(0,r*2),e.lineTo(-Eu*r,-r),e.lineTo(Eu*r,-r),e.closePath()}},Ge=-.5,Ve=at(3)/2,Al=1/at(12),B_=(Al/2+1)*3,F_={draw(e,t){const r=at(t/B_),n=r/2,i=r*Al,a=n,o=r*Al+r,u=-a,c=o;e.moveTo(n,i),e.lineTo(a,o),e.lineTo(u,c),e.lineTo(Ge*n-Ve*i,Ve*n+Ge*i),e.lineTo(Ge*a-Ve*o,Ve*a+Ge*o),e.lineTo(Ge*u-Ve*c,Ve*u+Ge*c),e.lineTo(Ge*n+Ve*i,Ge*i-Ve*n),e.lineTo(Ge*a+Ve*o,Ge*o-Ve*a),e.lineTo(Ge*u+Ve*c,Ge*c-Ve*u),e.closePath()}};function W_(e,t){let r=null,n=Gf(i);e=typeof e=="function"?e:se(e||Xf),t=typeof t=="function"?t:se(t===void 0?64:+t);function i(){let a;if(r||(r=a=n()),e.apply(this,arguments).draw(r,+t.apply(this,arguments)),a)return r=null,a+""||null}return i.type=function(a){return arguments.length?(e=typeof a=="function"?a:se(a),i):e},i.size=function(a){return arguments.length?(t=typeof a=="function"?a:se(+a),i):t},i.context=function(a){return arguments.length?(r=a??null,i):r},i}function ki(){}function Ri(e,t,r){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+r)/6)}function u0(e){this._context=e}u0.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Ri(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Ri(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function z_(e){return new u0(e)}function c0(e){this._context=e}c0.prototype={areaStart:ki,areaEnd:ki,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:Ri(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function U_(e){return new c0(e)}function s0(e){this._context=e}s0.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var r=(this._x0+4*this._x1+e)/6,n=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(r,n):this._context.moveTo(r,n);break;case 3:this._point=4;default:Ri(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function H_(e){return new s0(e)}function l0(e){this._context=e}l0.prototype={areaStart:ki,areaEnd:ki,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function K_(e){return new l0(e)}function ld(e){return e<0?-1:1}function fd(e,t,r){var n=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(n||i<0&&-0),o=(r-e._y1)/(i||n<0&&-0),u=(a*i+o*n)/(n+i);return(ld(a)+ld(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(u))||0}function hd(e,t){var r=e._x1-e._x0;return r?(3*(e._y1-e._y0)/r-t)/2:t}function ju(e,t,r){var n=e._x0,i=e._y0,a=e._x1,o=e._y1,u=(a-n)/3;e._context.bezierCurveTo(n+u,i+u*t,a-u,o-u*r,a,o)}function Di(e){this._context=e}Di.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ju(this,this._t0,hd(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var r=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,ju(this,hd(this,r=fd(this,e,t)),r);break;default:ju(this,this._t0,r=fd(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=r}}};function f0(e){this._context=new h0(e)}(f0.prototype=Object.create(Di.prototype)).point=function(e,t){Di.prototype.point.call(this,t,e)};function h0(e){this._context=e}h0.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,r,n,i,a){this._context.bezierCurveTo(t,e,n,r,a,i)}};function G_(e){return new Di(e)}function V_(e){return new f0(e)}function p0(e){this._context=e}p0.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,r=e.length;if(r)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),r===2)this._context.lineTo(e[1],t[1]);else for(var n=pd(e),i=pd(t),a=0,o=1;o=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[r-1]=(e[r]+i[r-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var r=this._x*(1-this._t)+e*this._t;this._context.lineTo(r,this._y),this._context.lineTo(r,t)}break}}this._x=e,this._y=t}};function Y_(e){return new Da(e,.5)}function Z_(e){return new Da(e,0)}function J_(e){return new Da(e,1)}function Ar(e,t){if((o=e.length)>1)for(var r=1,n,i,a=e[t[0]],o,u=a.length;r=0;)r[t]=t;return r}function Q_(e,t){return e[t]}function e1(e){const t=[];return t.key=e,t}function t1(){var e=se([]),t=Sl,r=Ar,n=Q_;function i(a){var o=Array.from(e.apply(this,arguments),e1),u,c=o.length,s=-1,f;for(const l of a)for(u=0,++s;u0){for(var r,n,i=0,a=e[0].length,o;i0){for(var r=0,n=e[t[0]],i,a=n.length;r0)||!((a=(i=e[t[0]]).length)>0))){for(var r=0,n=1,i,a,o;n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function l1(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var d0={symbolCircle:Xf,symbolCross:$_,symbolDiamond:I_,symbolSquare:k_,symbolStar:q_,symbolTriangle:L_,symbolWye:F_},f1=Math.PI/180,h1=function(t){var r="symbol".concat(Ia(t));return d0[r]||Xf},p1=function(t,r,n){if(r==="area")return t;switch(n){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*f1;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.pow(Math.tan(i),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},d1=function(t,r){d0["symbol".concat(Ia(t))]=r},Yf=function(t){var r=t.type,n=r===void 0?"circle":r,i=t.size,a=i===void 0?64:i,o=t.sizeType,u=o===void 0?"area":o,c=s1(t,a1),s=vd(vd({},c),{},{type:n,size:a,sizeType:u}),f=function(){var p=h1(n),g=W_().type(p).size(p1(a,u,n));return g()},l=s.className,h=s.cx,d=s.cy,y=H(s,!0);return h===+h&&d===+d&&a===+a?S.createElement("path",Pl({},y,{className:J("recharts-symbols",l),transform:"translate(".concat(h,", ").concat(d,")"),d:f()})):null};Yf.registerSymbol=d1;function Sr(e){"@babel/helpers - typeof";return Sr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Sr(e)}function Tl(){return Tl=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var x=d.inactive?s:d.color;return S.createElement("li",Tl({className:p,style:l,key:"legend-item-".concat(y)},tr(n.props,d,y)),S.createElement(xl,{width:o,height:o,viewBox:f,style:h},n.renderIcon(d)),S.createElement("span",{className:"recharts-legend-item-text",style:{color:x}},v?v(g,d,y):g))})}},{key:"render",value:function(){var n=this.props,i=n.payload,a=n.layout,o=n.align;if(!i||!i.length)return null;var u={padding:0,margin:0,textAlign:a==="horizontal"?o:"left"};return S.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(N.PureComponent);Sn(Zf,"displayName","Legend");Sn(Zf,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var Mu,md;function A1(){if(md)return Mu;md=1;var e=Ma();function t(){this.__data__=new e,this.size=0}return Mu=t,Mu}var $u,gd;function S1(){if(gd)return $u;gd=1;function e(t){var r=this.__data__,n=r.delete(t);return this.size=r.size,n}return $u=e,$u}var Cu,bd;function P1(){if(bd)return Cu;bd=1;function e(t){return this.__data__.get(t)}return Cu=e,Cu}var Iu,xd;function T1(){if(xd)return Iu;xd=1;function e(t){return this.__data__.has(t)}return Iu=e,Iu}var ku,wd;function E1(){if(wd)return ku;wd=1;var e=Ma(),t=Ff(),r=Wf(),n=200;function i(a,o){var u=this.__data__;if(u instanceof e){var c=u.__data__;if(!t||c.lengthd))return!1;var v=l.get(o),p=l.get(u);if(v&&p)return v==u&&p==o;var g=-1,x=!0,w=c&i?new e:void 0;for(l.set(o,u),l.set(u,o);++g-1&&n%1==0&&n-1&&r%1==0&&r<=e}return rc=t,rc}var nc,Hd;function F1(){if(Hd)return nc;Hd=1;var e=St(),t=th(),r=Pt(),n="[object Arguments]",i="[object Array]",a="[object Boolean]",o="[object Date]",u="[object Error]",c="[object Function]",s="[object Map]",f="[object Number]",l="[object Object]",h="[object RegExp]",d="[object Set]",y="[object String]",v="[object WeakMap]",p="[object ArrayBuffer]",g="[object DataView]",x="[object Float32Array]",w="[object Float64Array]",O="[object Int8Array]",m="[object Int16Array]",b="[object Int32Array]",_="[object Uint8Array]",A="[object Uint8ClampedArray]",T="[object Uint16Array]",M="[object Uint32Array]",P={};P[x]=P[w]=P[O]=P[m]=P[b]=P[_]=P[A]=P[T]=P[M]=!0,P[n]=P[i]=P[p]=P[a]=P[g]=P[o]=P[u]=P[c]=P[s]=P[f]=P[l]=P[h]=P[d]=P[y]=P[v]=!1;function E(j){return r(j)&&t(j.length)&&!!P[e(j)]}return nc=E,nc}var ic,Kd;function A0(){if(Kd)return ic;Kd=1;function e(t){return function(r){return t(r)}}return ic=e,ic}var vn={exports:{}};vn.exports;var Gd;function W1(){return Gd||(Gd=1,(function(e,t){var r=Ub(),n=t&&!t.nodeType&&t,i=n&&!0&&e&&!e.nodeType&&e,a=i&&i.exports===n,o=a&&r.process,u=(function(){try{var c=i&&i.require&&i.require("util").types;return c||o&&o.binding&&o.binding("util")}catch{}})();e.exports=u})(vn,vn.exports)),vn.exports}var ac,Vd;function S0(){if(Vd)return ac;Vd=1;var e=F1(),t=A0(),r=W1(),n=r&&r.isTypedArray,i=n?t(n):e;return ac=i,ac}var oc,Xd;function z1(){if(Xd)return oc;Xd=1;var e=q1(),t=Qf(),r=qe(),n=_0(),i=eh(),a=S0(),o=Object.prototype,u=o.hasOwnProperty;function c(s,f){var l=r(s),h=!l&&t(s),d=!l&&!h&&n(s),y=!l&&!h&&!d&&a(s),v=l||h||d||y,p=v?e(s.length,String):[],g=p.length;for(var x in s)(f||u.call(s,x))&&!(v&&(x=="length"||d&&(x=="offset"||x=="parent")||y&&(x=="buffer"||x=="byteLength"||x=="byteOffset")||i(x,g)))&&p.push(x);return p}return oc=c,oc}var uc,Yd;function U1(){if(Yd)return uc;Yd=1;var e=Object.prototype;function t(r){var n=r&&r.constructor,i=typeof n=="function"&&n.prototype||e;return r===i}return uc=t,uc}var cc,Zd;function P0(){if(Zd)return cc;Zd=1;function e(t,r){return function(n){return t(r(n))}}return cc=e,cc}var sc,Jd;function H1(){if(Jd)return sc;Jd=1;var e=P0(),t=e(Object.keys,Object);return sc=t,sc}var lc,Qd;function K1(){if(Qd)return lc;Qd=1;var e=U1(),t=H1(),r=Object.prototype,n=r.hasOwnProperty;function i(a){if(!e(a))return t(a);var o=[];for(var u in Object(a))n.call(a,u)&&u!="constructor"&&o.push(u);return o}return lc=i,lc}var fc,ev;function ui(){if(ev)return fc;ev=1;var e=Lf(),t=th();function r(n){return n!=null&&t(n.length)&&!e(n)}return fc=r,fc}var hc,tv;function Na(){if(tv)return hc;tv=1;var e=z1(),t=K1(),r=ui();function n(i){return r(i)?e(i):t(i)}return hc=n,hc}var pc,rv;function G1(){if(rv)return pc;rv=1;var e=k1(),t=N1(),r=Na();function n(i){return e(i,r,t)}return pc=n,pc}var dc,nv;function V1(){if(nv)return dc;nv=1;var e=G1(),t=1,r=Object.prototype,n=r.hasOwnProperty;function i(a,o,u,c,s,f){var l=u&t,h=e(a),d=h.length,y=e(o),v=y.length;if(d!=v&&!l)return!1;for(var p=d;p--;){var g=h[p];if(!(l?g in o:n.call(o,g)))return!1}var x=f.get(a),w=f.get(o);if(x&&w)return x==o&&w==a;var O=!0;f.set(a,o),f.set(o,a);for(var m=l;++p-1}return Bc=t,Bc}var Fc,Mv;function dA(){if(Mv)return Fc;Mv=1;function e(t,r,n){for(var i=-1,a=t==null?0:t.length;++i=o){var g=s?null:i(c);if(g)return a(g);y=!1,h=n,p=new e}else p=s?[]:v;e:for(;++l=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function jA(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function MA(e){return e.value}function $A(e,t){if(S.isValidElement(e))return S.cloneElement(e,t);if(typeof e=="function")return S.createElement(e,t);t.ref;var r=EA(t,xA);return S.createElement(Zf,r)}var qv=1,wr=(function(e){function t(){var r;wA(this,t);for(var n=arguments.length,i=new Array(n),a=0;aqv||Math.abs(i.height-this.lastBoundingBox.height)>qv)&&(this.lastBoundingBox.width=i.width,this.lastBoundingBox.height=i.height,n&&n(i)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,n&&n(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?pt({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(n){var i=this.props,a=i.layout,o=i.align,u=i.verticalAlign,c=i.margin,s=i.chartWidth,f=i.chartHeight,l,h;if(!n||(n.left===void 0||n.left===null)&&(n.right===void 0||n.right===null))if(o==="center"&&a==="vertical"){var d=this.getBBoxSnapshot();l={left:((s||0)-d.width)/2}}else l=o==="right"?{right:c&&c.right||0}:{left:c&&c.left||0};if(!n||(n.top===void 0||n.top===null)&&(n.bottom===void 0||n.bottom===null))if(u==="middle"){var y=this.getBBoxSnapshot();h={top:((f||0)-y.height)/2}}else h=u==="bottom"?{bottom:c&&c.bottom||0}:{top:c&&c.top||0};return pt(pt({},l),h)}},{key:"render",value:function(){var n=this,i=this.props,a=i.content,o=i.width,u=i.height,c=i.wrapperStyle,s=i.payloadUniqBy,f=i.payload,l=pt(pt({position:"absolute",width:o||"auto",height:u||"auto"},this.getDefaultPosition(c)),c);return S.createElement("div",{className:"recharts-legend-wrapper",style:l,ref:function(d){n.wrapperNode=d}},$A(a,pt(pt({},this.props),{},{payload:$0(f,s,MA)})))}}],[{key:"getWithHeight",value:function(n,i){var a=pt(pt({},this.defaultProps),n.props),o=a.layout;return o==="vertical"&&q(n.props.height)?{height:n.props.height}:o==="horizontal"?{width:n.props.width||i}:null}}])})(N.PureComponent);qa(wr,"displayName","Legend");qa(wr,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var Kc,Lv;function CA(){if(Lv)return Kc;Lv=1;var e=ai(),t=Qf(),r=qe(),n=e?e.isConcatSpreadable:void 0;function i(a){return r(a)||t(a)||!!(n&&a&&a[n])}return Kc=i,Kc}var Gc,Bv;function k0(){if(Bv)return Gc;Bv=1;var e=O0(),t=CA();function r(n,i,a,o,u){var c=-1,s=n.length;for(a||(a=t),u||(u=[]);++c0&&a(f)?i>1?r(f,i-1,a,o,u):e(u,f):o||(u[u.length]=f)}return u}return Gc=r,Gc}var Vc,Fv;function IA(){if(Fv)return Vc;Fv=1;function e(t){return function(r,n,i){for(var a=-1,o=Object(r),u=i(r),c=u.length;c--;){var s=u[t?c:++a];if(n(o[s],s,o)===!1)break}return r}}return Vc=e,Vc}var Xc,Wv;function kA(){if(Wv)return Xc;Wv=1;var e=IA(),t=e();return Xc=t,Xc}var Yc,zv;function R0(){if(zv)return Yc;zv=1;var e=kA(),t=Na();function r(n,i){return n&&e(n,i,t)}return Yc=r,Yc}var Zc,Uv;function RA(){if(Uv)return Zc;Uv=1;var e=ui();function t(r,n){return function(i,a){if(i==null)return i;if(!e(i))return r(i,a);for(var o=i.length,u=n?o:-1,c=Object(i);(n?u--:++un||u&&c&&f&&!s&&!l||a&&c&&f||!i&&f||!o)return 1;if(!a&&!u&&!l&&r=s)return f;var l=i[a];return f*(l=="desc"?-1:1)}}return r.index-n.index}return rs=t,rs}var ns,Yv;function LA(){if(Yv)return ns;Yv=1;var e=zf(),t=Uf(),r=ht(),n=D0(),i=DA(),a=A0(),o=qA(),u=Jr(),c=qe();function s(f,l,h){l.length?l=e(l,function(v){return c(v)?function(p){return t(p,v.length===1?v[0]:v)}:v}):l=[u];var d=-1;l=e(l,a(r));var y=n(f,function(v,p,g){var x=e(l,function(w){return w(v)});return{criteria:x,index:++d,value:v}});return i(y,function(v,p){return o(v,p,h)})}return ns=s,ns}var is,Zv;function BA(){if(Zv)return is;Zv=1;function e(t,r,n){switch(n.length){case 0:return t.call(r);case 1:return t.call(r,n[0]);case 2:return t.call(r,n[0],n[1]);case 3:return t.call(r,n[0],n[1],n[2])}return t.apply(r,n)}return is=e,is}var as,Jv;function FA(){if(Jv)return as;Jv=1;var e=BA(),t=Math.max;function r(n,i,a){return i=t(i===void 0?n.length-1:i,0),function(){for(var o=arguments,u=-1,c=t(o.length-i,0),s=Array(c);++u0){if(++a>=e)return arguments[0]}else a=0;return i.apply(void 0,arguments)}}return ss=n,ss}var ls,ny;function HA(){if(ny)return ls;ny=1;var e=zA(),t=UA(),r=t(e);return ls=r,ls}var fs,iy;function KA(){if(iy)return fs;iy=1;var e=Jr(),t=FA(),r=HA();function n(i,a){return r(t(i,a,e),i+"")}return fs=n,fs}var hs,ay;function La(){if(ay)return hs;ay=1;var e=Bf(),t=ui(),r=eh(),n=It();function i(a,o,u){if(!n(u))return!1;var c=typeof o;return(c=="number"?t(u)&&r(o,u.length):c=="string"&&o in u)?e(u[o],a):!1}return hs=i,hs}var ps,oy;function GA(){if(oy)return ps;oy=1;var e=k0(),t=LA(),r=KA(),n=La(),i=r(function(a,o){if(a==null)return[];var u=o.length;return u>1&&n(a,o[0],o[1])?o=[]:u>2&&n(o[0],o[1],o[2])&&(o=[o[0]]),t(a,e(o,1),[])});return ps=i,ps}var VA=GA();const ih=oe(VA);function Pn(e){"@babel/helpers - typeof";return Pn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Pn(e)}function Ml(){return Ml=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t.x),"".concat(an,"-left"),q(r)&&t&&q(t.x)&&r=t.y),"".concat(an,"-top"),q(n)&&t&&q(t.y)&&nv?Math.max(f,c[n]):Math.max(l,c[n])}function sS(e){var t=e.translateX,r=e.translateY,n=e.useTranslate3d;return{transform:n?"translate3d(".concat(t,"px, ").concat(r,"px, 0)"):"translate(".concat(t,"px, ").concat(r,"px)")}}function lS(e){var t=e.allowEscapeViewBox,r=e.coordinate,n=e.offsetTopLeft,i=e.position,a=e.reverseDirection,o=e.tooltipBox,u=e.useTranslate3d,c=e.viewBox,s,f,l;return o.height>0&&o.width>0&&r?(f=sy({allowEscapeViewBox:t,coordinate:r,key:"x",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.width,viewBox:c,viewBoxDimension:c.width}),l=sy({allowEscapeViewBox:t,coordinate:r,key:"y",offsetTopLeft:n,position:i,reverseDirection:a,tooltipDimension:o.height,viewBox:c,viewBoxDimension:c.height}),s=sS({translateX:f,translateY:l,useTranslate3d:u})):s=uS,{cssProperties:s,cssClasses:cS({translateX:f,translateY:l,coordinate:r})}}function Tr(e){"@babel/helpers - typeof";return Tr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Tr(e)}function ly(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function fy(e){for(var t=1;thy||Math.abs(n.height-this.state.lastBoundingBox.height)>hy)&&this.setState({lastBoundingBox:{width:n.width,height:n.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var n,i;this.props.active&&this.updateBBox(),this.state.dismissed&&(((n=this.props.coordinate)===null||n===void 0?void 0:n.x)!==this.state.dismissedAtCoordinate.x||((i=this.props.coordinate)===null||i===void 0?void 0:i.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var n=this,i=this.props,a=i.active,o=i.allowEscapeViewBox,u=i.animationDuration,c=i.animationEasing,s=i.children,f=i.coordinate,l=i.hasPayload,h=i.isAnimationActive,d=i.offset,y=i.position,v=i.reverseDirection,p=i.useTranslate3d,g=i.viewBox,x=i.wrapperStyle,w=lS({allowEscapeViewBox:o,coordinate:f,offsetTopLeft:d,position:y,reverseDirection:v,tooltipBox:this.state.lastBoundingBox,useTranslate3d:p,viewBox:g}),O=w.cssClasses,m=w.cssProperties,b=fy(fy({transition:h&&a?"transform ".concat(u,"ms ").concat(c):void 0},m),{},{pointerEvents:"none",visibility:!this.state.dismissed&&a&&l?"visible":"hidden",position:"absolute",top:0,left:0},x);return S.createElement("div",{tabIndex:-1,className:O,style:b,ref:function(A){n.wrapperNode=A}},s)}}])})(N.PureComponent),xS=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},or={isSsr:xS()};function Er(e){"@babel/helpers - typeof";return Er=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Er(e)}function py(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function dy(e){for(var t=1;t0;return S.createElement(bS,{allowEscapeViewBox:o,animationDuration:u,animationEasing:c,isAnimationActive:h,active:a,coordinate:f,hasPayload:b,offset:d,position:p,reverseDirection:g,useTranslate3d:x,viewBox:w,wrapperStyle:O},MS(s,dy(dy({},this.props),{},{payload:m})))}}])})(N.PureComponent);ah(dt,"displayName","Tooltip");ah(dt,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!or.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var vs,vy;function $S(){if(vy)return vs;vy=1;var e=ft(),t=function(){return e.Date.now()};return vs=t,vs}var ys,yy;function CS(){if(yy)return ys;yy=1;var e=/\s/;function t(r){for(var n=r.length;n--&&e.test(r.charAt(n)););return n}return ys=t,ys}var ms,my;function IS(){if(my)return ms;my=1;var e=CS(),t=/^\s+/;function r(n){return n&&n.slice(0,e(n)+1).replace(t,"")}return ms=r,ms}var gs,gy;function W0(){if(gy)return gs;gy=1;var e=IS(),t=It(),r=Xr(),n=NaN,i=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,u=parseInt;function c(s){if(typeof s=="number")return s;if(r(s))return n;if(t(s)){var f=typeof s.valueOf=="function"?s.valueOf():s;s=t(f)?f+"":f}if(typeof s!="string")return s===0?s:+s;s=e(s);var l=a.test(s);return l||o.test(s)?u(s.slice(2),l?2:8):i.test(s)?n:+s}return gs=c,gs}var bs,by;function kS(){if(by)return bs;by=1;var e=It(),t=$S(),r=W0(),n="Expected a function",i=Math.max,a=Math.min;function o(u,c,s){var f,l,h,d,y,v,p=0,g=!1,x=!1,w=!0;if(typeof u!="function")throw new TypeError(n);c=r(c)||0,e(s)&&(g=!!s.leading,x="maxWait"in s,h=x?i(r(s.maxWait)||0,c):h,w="trailing"in s?!!s.trailing:w);function O(j){var C=f,$=l;return f=l=void 0,p=j,d=u.apply($,C),d}function m(j){return p=j,y=setTimeout(A,c),g?O(j):d}function b(j){var C=j-v,$=j-p,k=c-C;return x?a(k,h-$):k}function _(j){var C=j-v,$=j-p;return v===void 0||C>=c||C<0||x&&$>=h}function A(){var j=t();if(_(j))return T(j);y=setTimeout(A,b(j))}function T(j){return y=void 0,w&&f?O(j):(f=l=void 0,d)}function M(){y!==void 0&&clearTimeout(y),p=0,f=v=l=y=void 0}function P(){return y===void 0?d:T(t())}function E(){var j=t(),C=_(j);if(f=arguments,l=this,v=j,C){if(y===void 0)return m(v);if(x)return clearTimeout(y),y=setTimeout(A,c),O(v)}return y===void 0&&(y=setTimeout(A,c)),d}return E.cancel=M,E.flush=P,E}return bs=o,bs}var xs,xy;function RS(){if(xy)return xs;xy=1;var e=kS(),t=It(),r="Expected a function";function n(i,a,o){var u=!0,c=!0;if(typeof i!="function")throw new TypeError(r);return t(o)&&(u="leading"in o?!!o.leading:u,c="trailing"in o?!!o.trailing:c),e(i,a,{leading:u,maxWait:a,trailing:c})}return xs=n,xs}var DS=RS();const z0=oe(DS);function En(e){"@babel/helpers - typeof";return En=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},En(e)}function wy(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function gi(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&(j=z0(j,v,{trailing:!0,leading:!1}));var C=new ResizeObserver(j),$=m.current.getBoundingClientRect(),k=$.width,R=$.height;return P(k,R),C.observe(m.current),function(){C.disconnect()}},[P,v]);var E=N.useMemo(function(){var j=T.containerWidth,C=T.containerHeight;if(j<0||C<0)return null;it(Gt(o)||Gt(c),`The width(%s) and height(%s) are both fixed numbers, + maybe you don't need to use a ResponsiveContainer.`,o,c),it(!r||r>0,"The aspect(%s) must be greater than zero.",r);var $=Gt(o)?j:o,k=Gt(c)?C:c;r&&r>0&&($?k=$/r:k&&($=k*r),h&&k>h&&(k=h)),it($>0||k>0,`The width(%s) and height(%s) of chart should be greater than 0, + please check the style of container, or the props width(%s) and height(%s), + or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the + height and width.`,$,k,o,c,f,l,r);var R=!Array.isArray(d)&&bt(d.type).endsWith("Chart");return S.Children.map(d,function(L){return S.isValidElement(L)?N.cloneElement(L,gi({width:$,height:k},R?{style:gi({height:"100%",width:"100%",maxHeight:k,maxWidth:$},L.props.style)}:{})):L})},[r,d,c,h,l,f,T,o]);return S.createElement("div",{id:p?"".concat(p):void 0,className:J("recharts-responsive-container",g),style:gi(gi({},O),{},{width:o,height:c,minWidth:f,minHeight:l,maxHeight:h}),ref:m},E)}),oh=function(t){return null};oh.displayName="Cell";function jn(e){"@babel/helpers - typeof";return jn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jn(e)}function _y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function kl(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||or.isSsr)return{width:0,height:0};var n=YS(r),i=JSON.stringify({text:t,copyStyle:n});if(fr.widthCache[i])return fr.widthCache[i];try{var a=document.getElementById(Ay);a||(a=document.createElement("span"),a.setAttribute("id",Ay),a.setAttribute("aria-hidden","true"),document.body.appendChild(a));var o=kl(kl({},XS),n);Object.assign(a.style,o),a.textContent="".concat(t);var u=a.getBoundingClientRect(),c={width:u.width,height:u.height};return fr.widthCache[i]=c,++fr.cacheCount>VS&&(fr.cacheCount=0,fr.widthCache={}),c}catch{return{width:0,height:0}}},ZS=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function Mn(e){"@babel/helpers - typeof";return Mn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Mn(e)}function Fi(e,t){return tP(e)||eP(e,t)||QS(e,t)||JS()}function JS(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function QS(e,t){if(e){if(typeof e=="string")return Sy(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Sy(e,t)}}function Sy(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function vP(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function $y(e,t){return bP(e)||gP(e,t)||mP(e,t)||yP()}function yP(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mP(e,t){if(e){if(typeof e=="string")return Cy(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Cy(e,t)}}function Cy(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[];return $.reduce(function(k,R){var L=R.word,B=R.width,U=k[k.length-1];if(U&&(i==null||a||U.width+B+nR.width?k:R})};if(!f)return d;for(var v="…",p=function($){var k=l.slice(0,$),R=G0({breakAll:s,style:c,children:k+v}).wordsWithComputedWidth,L=h(R),B=L.length>o||y(L).width>Number(i);return[B,L]},g=0,x=l.length-1,w=0,O;g<=x&&w<=l.length-1;){var m=Math.floor((g+x)/2),b=m-1,_=p(b),A=$y(_,2),T=A[0],M=A[1],P=p(m),E=$y(P,1),j=E[0];if(!T&&!j&&(g=m+1),T&&j&&(x=m-1),!T&&j){O=M;break}w++}return O||d},Iy=function(t){var r=Y(t)?[]:t.toString().split(K0);return[{words:r}]},wP=function(t){var r=t.width,n=t.scaleToFit,i=t.children,a=t.style,o=t.breakAll,u=t.maxLines;if((r||n)&&!or.isSsr){var c,s,f=G0({breakAll:o,children:i,style:a});if(f){var l=f.wordsWithComputedWidth,h=f.spaceWidth;c=l,s=h}else return Iy(i);return xP({breakAll:o,children:i,maxLines:u,style:a},c,s,r,n)}return Iy(i)},ky="#808080",rr=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.lineHeight,u=o===void 0?"1em":o,c=t.capHeight,s=c===void 0?"0.71em":c,f=t.scaleToFit,l=f===void 0?!1:f,h=t.textAnchor,d=h===void 0?"start":h,y=t.verticalAnchor,v=y===void 0?"end":y,p=t.fill,g=p===void 0?ky:p,x=My(t,pP),w=N.useMemo(function(){return wP({breakAll:x.breakAll,children:x.children,maxLines:x.maxLines,scaleToFit:l,style:x.style,width:x.width})},[x.breakAll,x.children,x.maxLines,l,x.style,x.width]),O=x.dx,m=x.dy,b=x.angle,_=x.className,A=x.breakAll,T=My(x,dP);if(!Ae(n)||!Ae(a))return null;var M=n+(q(O)?O:0),P=a+(q(m)?m:0),E;switch(v){case"start":E=ws("calc(".concat(s,")"));break;case"middle":E=ws("calc(".concat((w.length-1)/2," * -").concat(u," + (").concat(s," / 2))"));break;default:E=ws("calc(".concat(w.length-1," * -").concat(u,")"));break}var j=[];if(l){var C=w[0].width,$=x.width;j.push("scale(".concat((q($)?$/C:1)/C,")"))}return b&&j.push("rotate(".concat(b,", ").concat(M,", ").concat(P,")")),j.length&&(T.transform=j.join(" ")),S.createElement("text",Rl({},H(T,!0),{x:M,y:P,className:J("recharts-text",_),textAnchor:d,fill:g.includes("url")?ky:g}),w.map(function(k,R){var L=k.words.join(A?"":" ");return S.createElement("tspan",{x:M,dy:R===0?E:u,key:"".concat(L,"-").concat(R)},L)}))};function Ct(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function OP(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function uh(e){let t,r,n;e.length!==2?(t=Ct,r=(u,c)=>Ct(e(u),c),n=(u,c)=>e(u)-c):(t=e===Ct||e===OP?e:_P,r=e,n=e);function i(u,c,s=0,f=u.length){if(s>>1;r(u[l],c)<0?s=l+1:f=l}while(s>>1;r(u[l],c)<=0?s=l+1:f=l}while(ss&&n(u[l-1],c)>-n(u[l],c)?l-1:l}return{left:i,center:o,right:a}}function _P(){return 0}function V0(e){return e===null?NaN:+e}function*AP(e,t){for(let r of e)r!=null&&(r=+r)>=r&&(yield r)}const SP=uh(Ct),ci=SP.right;uh(V0).center;class Ry extends Map{constructor(t,r=EP){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:r}}),t!=null)for(const[n,i]of t)this.set(n,i)}get(t){return super.get(Dy(this,t))}has(t){return super.has(Dy(this,t))}set(t,r){return super.set(PP(this,t),r)}delete(t){return super.delete(TP(this,t))}}function Dy({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):r}function PP({_intern:e,_key:t},r){const n=t(r);return e.has(n)?e.get(n):(e.set(n,r),r)}function TP({_intern:e,_key:t},r){const n=t(r);return e.has(n)&&(r=e.get(n),e.delete(n)),r}function EP(e){return e!==null&&typeof e=="object"?e.valueOf():e}function jP(e=Ct){if(e===Ct)return X0;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,r)=>{const n=e(t,r);return n||n===0?n:(e(r,r)===0)-(e(t,t)===0)}}function X0(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const MP=Math.sqrt(50),$P=Math.sqrt(10),CP=Math.sqrt(2);function Wi(e,t,r){const n=(t-e)/Math.max(0,r),i=Math.floor(Math.log10(n)),a=n/Math.pow(10,i),o=a>=MP?10:a>=$P?5:a>=CP?2:1;let u,c,s;return i<0?(s=Math.pow(10,-i)/o,u=Math.round(e*s),c=Math.round(t*s),u/st&&--c,s=-s):(s=Math.pow(10,i)*o,u=Math.round(e/s),c=Math.round(t/s),u*st&&--c),c0))return[];if(e===t)return[e];const n=t=i))return[];const u=a-i+1,c=new Array(u);if(n)if(o<0)for(let s=0;s=n)&&(r=n);return r}function qy(e,t){let r;for(const n of e)n!=null&&(r>n||r===void 0&&n>=n)&&(r=n);return r}function Y0(e,t,r=0,n=1/0,i){if(t=Math.floor(t),r=Math.floor(Math.max(0,r)),n=Math.floor(Math.min(e.length-1,n)),!(r<=t&&t<=n))return e;for(i=i===void 0?X0:jP(i);n>r;){if(n-r>600){const c=n-r+1,s=t-r+1,f=Math.log(c),l=.5*Math.exp(2*f/3),h=.5*Math.sqrt(f*l*(c-l)/c)*(s-c/2<0?-1:1),d=Math.max(r,Math.floor(t-s*l/c+h)),y=Math.min(n,Math.floor(t+(c-s)*l/c+h));Y0(e,t,d,y,i)}const a=e[t];let o=r,u=n;for(on(e,r,t),i(e[n],a)>0&&on(e,r,n);o0;)--u}i(e[r],a)===0?on(e,r,u):(++u,on(e,u,n)),u<=t&&(r=u+1),t<=u&&(n=u-1)}return e}function on(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function IP(e,t,r){if(e=Float64Array.from(AP(e)),!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return qy(e);if(t>=1)return Ny(e);var n,i=(n-1)*t,a=Math.floor(i),o=Ny(Y0(e,a).subarray(0,a+1)),u=qy(e.subarray(a+1));return o+(u-o)*(i-a)}}function kP(e,t,r=V0){if(!(!(n=e.length)||isNaN(t=+t))){if(t<=0||n<2)return+r(e[0],0,e);if(t>=1)return+r(e[n-1],n-1,e);var n,i=(n-1)*t,a=Math.floor(i),o=+r(e[a],a,e),u=+r(e[a+1],a+1,e);return o+(u-o)*(i-a)}}function RP(e,t,r){e=+e,t=+t,r=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+r;for(var n=-1,i=Math.max(0,Math.ceil((t-e)/r))|0,a=new Array(i);++n>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?xi(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?xi(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=NP.exec(e))?new Ne(t[1],t[2],t[3],1):(t=qP.exec(e))?new Ne(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=LP.exec(e))?xi(t[1],t[2],t[3],t[4]):(t=BP.exec(e))?xi(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=FP.exec(e))?Hy(t[1],t[2]/100,t[3]/100,1):(t=WP.exec(e))?Hy(t[1],t[2]/100,t[3]/100,t[4]):Ly.hasOwnProperty(e)?Wy(Ly[e]):e==="transparent"?new Ne(NaN,NaN,NaN,0):null}function Wy(e){return new Ne(e>>16&255,e>>8&255,e&255,1)}function xi(e,t,r,n){return n<=0&&(e=t=r=NaN),new Ne(e,t,r,n)}function HP(e){return e instanceof si||(e=kn(e)),e?(e=e.rgb(),new Ne(e.r,e.g,e.b,e.opacity)):new Ne}function Bl(e,t,r,n){return arguments.length===1?HP(e):new Ne(e,t,r,n??1)}function Ne(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}sh(Ne,Bl,J0(si,{brighter(e){return e=e==null?zi:Math.pow(zi,e),new Ne(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Cn:Math.pow(Cn,e),new Ne(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ne(Zt(this.r),Zt(this.g),Zt(this.b),Ui(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:zy,formatHex:zy,formatHex8:KP,formatRgb:Uy,toString:Uy}));function zy(){return`#${Vt(this.r)}${Vt(this.g)}${Vt(this.b)}`}function KP(){return`#${Vt(this.r)}${Vt(this.g)}${Vt(this.b)}${Vt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Uy(){const e=Ui(this.opacity);return`${e===1?"rgb(":"rgba("}${Zt(this.r)}, ${Zt(this.g)}, ${Zt(this.b)}${e===1?")":`, ${e})`}`}function Ui(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Zt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Vt(e){return e=Zt(e),(e<16?"0":"")+e.toString(16)}function Hy(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new nt(e,t,r,n)}function Q0(e){if(e instanceof nt)return new nt(e.h,e.s,e.l,e.opacity);if(e instanceof si||(e=kn(e)),!e)return new nt;if(e instanceof nt)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=NaN,u=a-i,c=(a+i)/2;return u?(t===a?o=(r-n)/u+(r0&&c<1?0:o,new nt(o,u,c,e.opacity)}function GP(e,t,r,n){return arguments.length===1?Q0(e):new nt(e,t,r,n??1)}function nt(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}sh(nt,GP,J0(si,{brighter(e){return e=e==null?zi:Math.pow(zi,e),new nt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Cn:Math.pow(Cn,e),new nt(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new Ne(Os(e>=240?e-240:e+120,i,n),Os(e,i,n),Os(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new nt(Ky(this.h),wi(this.s),wi(this.l),Ui(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Ui(this.opacity);return`${e===1?"hsl(":"hsla("}${Ky(this.h)}, ${wi(this.s)*100}%, ${wi(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ky(e){return e=(e||0)%360,e<0?e+360:e}function wi(e){return Math.max(0,Math.min(1,e||0))}function Os(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}const lh=e=>()=>e;function VP(e,t){return function(r){return e+r*t}}function XP(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function YP(e){return(e=+e)==1?ex:function(t,r){return r-t?XP(t,r,e):lh(isNaN(t)?r:t)}}function ex(e,t){var r=t-e;return r?VP(e,r):lh(isNaN(e)?t:e)}const Gy=(function e(t){var r=YP(t);function n(i,a){var o=r((i=Bl(i)).r,(a=Bl(a)).r),u=r(i.g,a.g),c=r(i.b,a.b),s=ex(i.opacity,a.opacity);return function(f){return i.r=o(f),i.g=u(f),i.b=c(f),i.opacity=s(f),i+""}}return n.gamma=e,n})(1);function ZP(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;ir&&(a=t.slice(r,a),u[o]?u[o]+=a:u[++o]=a),(n=n[0])===(i=i[0])?u[o]?u[o]+=i:u[++o]=i:(u[++o]=null,c.push({i:o,x:Hi(n,i)})),r=_s.lastIndex;return rt&&(r=e,e=t,t=r),function(n){return Math.max(e,Math.min(t,n))}}function cT(e,t,r){var n=e[0],i=e[1],a=t[0],o=t[1];return i2?sT:cT,c=s=null,l}function l(h){return h==null||isNaN(h=+h)?a:(c||(c=u(e.map(n),t,r)))(n(o(h)))}return l.invert=function(h){return o(i((s||(s=u(t,e.map(n),Hi)))(h)))},l.domain=function(h){return arguments.length?(e=Array.from(h,Ki),f()):e.slice()},l.range=function(h){return arguments.length?(t=Array.from(h),f()):t.slice()},l.rangeRound=function(h){return t=Array.from(h),r=fh,f()},l.clamp=function(h){return arguments.length?(o=h?!0:ke,f()):o!==ke},l.interpolate=function(h){return arguments.length?(r=h,f()):r},l.unknown=function(h){return arguments.length?(a=h,l):a},function(h,d){return n=h,i=d,f()}}function hh(){return Ba()(ke,ke)}function lT(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Gi(e,t){if((r=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var r,n=e.slice(0,r);return[n.length>1?n[0]+n.slice(2):n,+e.slice(r+1)]}function jr(e){return e=Gi(Math.abs(e)),e?e[1]:NaN}function fT(e,t){return function(r,n){for(var i=r.length,a=[],o=0,u=e[0],c=0;i>0&&u>0&&(c+u+1>n&&(u=Math.max(1,n-c)),a.push(r.substring(i-=u,i+u)),!((c+=u+1)>n));)u=e[o=(o+1)%e.length];return a.reverse().join(t)}}function hT(e){return function(t){return t.replace(/[0-9]/g,function(r){return e[+r]})}}var pT=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Rn(e){if(!(t=pT.exec(e)))throw new Error("invalid format: "+e);var t;return new ph({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Rn.prototype=ph.prototype;function ph(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}ph.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function dT(e){e:for(var t=e.length,r=1,n=-1,i;r0&&(n=0);break}return n>0?e.slice(0,n)+e.slice(i+1):e}var tx;function vT(e,t){var r=Gi(e,t);if(!r)return e+"";var n=r[0],i=r[1],a=i-(tx=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=n.length;return a===o?n:a>o?n+new Array(a-o+1).join("0"):a>0?n.slice(0,a)+"."+n.slice(a):"0."+new Array(1-a).join("0")+Gi(e,Math.max(0,t+a-1))[0]}function Xy(e,t){var r=Gi(e,t);if(!r)return e+"";var n=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+n:n.length>i+1?n.slice(0,i+1)+"."+n.slice(i+1):n+new Array(i-n.length+2).join("0")}const Yy={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:lT,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>Xy(e*100,t),r:Xy,s:vT,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function Zy(e){return e}var Jy=Array.prototype.map,Qy=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function yT(e){var t=e.grouping===void 0||e.thousands===void 0?Zy:fT(Jy.call(e.grouping,Number),e.thousands+""),r=e.currency===void 0?"":e.currency[0]+"",n=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",a=e.numerals===void 0?Zy:hT(Jy.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function s(l){l=Rn(l);var h=l.fill,d=l.align,y=l.sign,v=l.symbol,p=l.zero,g=l.width,x=l.comma,w=l.precision,O=l.trim,m=l.type;m==="n"?(x=!0,m="g"):Yy[m]||(w===void 0&&(w=12),O=!0,m="g"),(p||h==="0"&&d==="=")&&(p=!0,h="0",d="=");var b=v==="$"?r:v==="#"&&/[boxX]/.test(m)?"0"+m.toLowerCase():"",_=v==="$"?n:/[%p]/.test(m)?o:"",A=Yy[m],T=/[defgprs%]/.test(m);w=w===void 0?6:/[gprs]/.test(m)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function M(P){var E=b,j=_,C,$,k;if(m==="c")j=A(P)+j,P="";else{P=+P;var R=P<0||1/P<0;if(P=isNaN(P)?c:A(Math.abs(P),w),O&&(P=dT(P)),R&&+P==0&&y!=="+"&&(R=!1),E=(R?y==="("?y:u:y==="-"||y==="("?"":y)+E,j=(m==="s"?Qy[8+tx/3]:"")+j+(R&&y==="("?")":""),T){for(C=-1,$=P.length;++C<$;)if(k=P.charCodeAt(C),48>k||k>57){j=(k===46?i+P.slice(C+1):P.slice(C))+j,P=P.slice(0,C);break}}}x&&!p&&(P=t(P,1/0));var L=E.length+P.length+j.length,B=L>1)+E+P+j+B.slice(L);break;default:P=B+E+P+j;break}return a(P)}return M.toString=function(){return l+""},M}function f(l,h){var d=s((l=Rn(l),l.type="f",l)),y=Math.max(-8,Math.min(8,Math.floor(jr(h)/3)))*3,v=Math.pow(10,-y),p=Qy[8+y/3];return function(g){return d(v*g)+p}}return{format:s,formatPrefix:f}}var Oi,dh,rx;mT({thousands:",",grouping:[3],currency:["$",""]});function mT(e){return Oi=yT(e),dh=Oi.format,rx=Oi.formatPrefix,Oi}function gT(e){return Math.max(0,-jr(Math.abs(e)))}function bT(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(jr(t)/3)))*3-jr(Math.abs(e)))}function xT(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,jr(t)-jr(e))+1}function nx(e,t,r,n){var i=ql(e,t,r),a;switch(n=Rn(n??",f"),n.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return n.precision==null&&!isNaN(a=bT(i,o))&&(n.precision=a),rx(n,o)}case"":case"e":case"g":case"p":case"r":{n.precision==null&&!isNaN(a=xT(i,Math.max(Math.abs(e),Math.abs(t))))&&(n.precision=a-(n.type==="e"));break}case"f":case"%":{n.precision==null&&!isNaN(a=gT(i))&&(n.precision=a-(n.type==="%")*2);break}}return dh(n)}function kt(e){var t=e.domain;return e.ticks=function(r){var n=t();return Dl(n[0],n[n.length-1],r??10)},e.tickFormat=function(r,n){var i=t();return nx(i[0],i[i.length-1],r??10,n)},e.nice=function(r){r==null&&(r=10);var n=t(),i=0,a=n.length-1,o=n[i],u=n[a],c,s,f=10;for(u0;){if(s=Nl(o,u,r),s===c)return n[i]=o,n[a]=u,t(n);if(s>0)o=Math.floor(o/s)*s,u=Math.ceil(u/s)*s;else if(s<0)o=Math.ceil(o*s)/s,u=Math.floor(u*s)/s;else break;c=s}return e},e}function Vi(){var e=hh();return e.copy=function(){return li(e,Vi())},Qe.apply(e,arguments),kt(e)}function ix(e){var t;function r(n){return n==null||isNaN(n=+n)?t:n}return r.invert=r,r.domain=r.range=function(n){return arguments.length?(e=Array.from(n,Ki),r):e.slice()},r.unknown=function(n){return arguments.length?(t=n,r):t},r.copy=function(){return ix(e).unknown(t)},e=arguments.length?Array.from(e,Ki):[0,1],kt(r)}function ax(e,t){e=e.slice();var r=0,n=e.length-1,i=e[r],a=e[n],o;return aMath.pow(e,t)}function ST(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function rm(e){return(t,r)=>-e(-t,r)}function vh(e){const t=e(em,tm),r=t.domain;let n=10,i,a;function o(){return i=ST(n),a=AT(n),r()[0]<0?(i=rm(i),a=rm(a),e(wT,OT)):e(em,tm),t}return t.base=function(u){return arguments.length?(n=+u,o()):n},t.domain=function(u){return arguments.length?(r(u),o()):r()},t.ticks=u=>{const c=r();let s=c[0],f=c[c.length-1];const l=f0){for(;h<=d;++h)for(y=1;yf)break;g.push(v)}}else for(;h<=d;++h)for(y=n-1;y>=1;--y)if(v=h>0?y/a(-h):y*a(h),!(vf)break;g.push(v)}g.length*2{if(u==null&&(u=10),c==null&&(c=n===10?"s":","),typeof c!="function"&&(!(n%1)&&(c=Rn(c)).precision==null&&(c.trim=!0),c=dh(c)),u===1/0)return c;const s=Math.max(1,n*u/t.ticks().length);return f=>{let l=f/a(Math.round(i(f)));return l*nr(ax(r(),{floor:u=>a(Math.floor(i(u))),ceil:u=>a(Math.ceil(i(u)))})),t}function ox(){const e=vh(Ba()).domain([1,10]);return e.copy=()=>li(e,ox()).base(e.base()),Qe.apply(e,arguments),e}function nm(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function im(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function yh(e){var t=1,r=e(nm(t),im(t));return r.constant=function(n){return arguments.length?e(nm(t=+n),im(t)):t},kt(r)}function ux(){var e=yh(Ba());return e.copy=function(){return li(e,ux()).constant(e.constant())},Qe.apply(e,arguments)}function am(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function PT(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function TT(e){return e<0?-e*e:e*e}function mh(e){var t=e(ke,ke),r=1;function n(){return r===1?e(ke,ke):r===.5?e(PT,TT):e(am(r),am(1/r))}return t.exponent=function(i){return arguments.length?(r=+i,n()):r},kt(t)}function gh(){var e=mh(Ba());return e.copy=function(){return li(e,gh()).exponent(e.exponent())},Qe.apply(e,arguments),e}function ET(){return gh.apply(null,arguments).exponent(.5)}function om(e){return Math.sign(e)*e*e}function jT(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function cx(){var e=hh(),t=[0,1],r=!1,n;function i(a){var o=jT(e(a));return isNaN(o)?n:r?Math.round(o):o}return i.invert=function(a){return e.invert(om(a))},i.domain=function(a){return arguments.length?(e.domain(a),i):e.domain()},i.range=function(a){return arguments.length?(e.range((t=Array.from(a,Ki)).map(om)),i):t.slice()},i.rangeRound=function(a){return i.range(a).round(!0)},i.round=function(a){return arguments.length?(r=!!a,i):r},i.clamp=function(a){return arguments.length?(e.clamp(a),i):e.clamp()},i.unknown=function(a){return arguments.length?(n=a,i):n},i.copy=function(){return cx(e.domain(),t).round(r).clamp(e.clamp()).unknown(n)},Qe.apply(i,arguments),kt(i)}function sx(){var e=[],t=[],r=[],n;function i(){var o=0,u=Math.max(1,t.length);for(r=new Array(u-1);++o0?r[u-1]:e[0],u=r?[n[r-1],t]:[n[s-1],n[s]]},o.unknown=function(c){return arguments.length&&(a=c),o},o.thresholds=function(){return n.slice()},o.copy=function(){return lx().domain([e,t]).range(i).unknown(a)},Qe.apply(kt(o),arguments)}function fx(){var e=[.5],t=[0,1],r,n=1;function i(a){return a!=null&&a<=a?t[ci(e,a,0,n)]:r}return i.domain=function(a){return arguments.length?(e=Array.from(a),n=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(a){return arguments.length?(t=Array.from(a),n=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(a){var o=t.indexOf(a);return[e[o-1],e[o]]},i.unknown=function(a){return arguments.length?(r=a,i):r},i.copy=function(){return fx().domain(e).range(t).unknown(r)},Qe.apply(i,arguments)}const As=new Date,Ss=new Date;function Se(e,t,r,n){function i(a){return e(a=arguments.length===0?new Date:new Date(+a)),a}return i.floor=a=>(e(a=new Date(+a)),a),i.ceil=a=>(e(a=new Date(a-1)),t(a,1),e(a),a),i.round=a=>{const o=i(a),u=i.ceil(a);return a-o(t(a=new Date(+a),o==null?1:Math.floor(o)),a),i.range=(a,o,u)=>{const c=[];if(a=i.ceil(a),u=u==null?1:Math.floor(u),!(a0))return c;let s;do c.push(s=new Date(+a)),t(a,u),e(a);while(sSe(o=>{if(o>=o)for(;e(o),!a(o);)o.setTime(o-1)},(o,u)=>{if(o>=o)if(u<0)for(;++u<=0;)for(;t(o,-1),!a(o););else for(;--u>=0;)for(;t(o,1),!a(o););}),r&&(i.count=(a,o)=>(As.setTime(+a),Ss.setTime(+o),e(As),e(Ss),Math.floor(r(As,Ss))),i.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?i.filter(n?o=>n(o)%a===0:o=>i.count(0,o)%a===0):i)),i}const Xi=Se(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Xi.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Se(t=>{t.setTime(Math.floor(t/e)*e)},(t,r)=>{t.setTime(+t+r*e)},(t,r)=>(r-t)/e):Xi);Xi.range;const yt=1e3,Ze=yt*60,mt=Ze*60,Ot=mt*24,bh=Ot*7,um=Ot*30,Ps=Ot*365,Xt=Se(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*yt)},(e,t)=>(t-e)/yt,e=>e.getUTCSeconds());Xt.range;const xh=Se(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*yt)},(e,t)=>{e.setTime(+e+t*Ze)},(e,t)=>(t-e)/Ze,e=>e.getMinutes());xh.range;const wh=Se(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ze)},(e,t)=>(t-e)/Ze,e=>e.getUTCMinutes());wh.range;const Oh=Se(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*yt-e.getMinutes()*Ze)},(e,t)=>{e.setTime(+e+t*mt)},(e,t)=>(t-e)/mt,e=>e.getHours());Oh.range;const _h=Se(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*mt)},(e,t)=>(t-e)/mt,e=>e.getUTCHours());_h.range;const fi=Se(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ze)/Ot,e=>e.getDate()-1);fi.range;const Fa=Se(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ot,e=>e.getUTCDate()-1);Fa.range;const hx=Se(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/Ot,e=>Math.floor(e/Ot));hx.range;function ur(e){return Se(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,r)=>{t.setDate(t.getDate()+r*7)},(t,r)=>(r-t-(r.getTimezoneOffset()-t.getTimezoneOffset())*Ze)/bh)}const Wa=ur(0),Yi=ur(1),MT=ur(2),$T=ur(3),Mr=ur(4),CT=ur(5),IT=ur(6);Wa.range;Yi.range;MT.range;$T.range;Mr.range;CT.range;IT.range;function cr(e){return Se(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCDate(t.getUTCDate()+r*7)},(t,r)=>(r-t)/bh)}const za=cr(0),Zi=cr(1),kT=cr(2),RT=cr(3),$r=cr(4),DT=cr(5),NT=cr(6);za.range;Zi.range;kT.range;RT.range;$r.range;DT.range;NT.range;const Ah=Se(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());Ah.range;const Sh=Se(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());Sh.range;const _t=Se(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());_t.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Se(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,r)=>{t.setFullYear(t.getFullYear()+r*e)});_t.range;const At=Se(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());At.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Se(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,r)=>{t.setUTCFullYear(t.getUTCFullYear()+r*e)});At.range;function px(e,t,r,n,i,a){const o=[[Xt,1,yt],[Xt,5,5*yt],[Xt,15,15*yt],[Xt,30,30*yt],[a,1,Ze],[a,5,5*Ze],[a,15,15*Ze],[a,30,30*Ze],[i,1,mt],[i,3,3*mt],[i,6,6*mt],[i,12,12*mt],[n,1,Ot],[n,2,2*Ot],[r,1,bh],[t,1,um],[t,3,3*um],[e,1,Ps]];function u(s,f,l){const h=fp).right(o,h);if(d===o.length)return e.every(ql(s/Ps,f/Ps,l));if(d===0)return Xi.every(Math.max(ql(s,f,l),1));const[y,v]=o[h/o[d-1][2]53)return null;"w"in D||(D.w=1),"Z"in D?(ee=Es(un(D.y,0,1)),be=ee.getUTCDay(),ee=be>4||be===0?Zi.ceil(ee):Zi(ee),ee=Fa.offset(ee,(D.V-1)*7),D.y=ee.getUTCFullYear(),D.m=ee.getUTCMonth(),D.d=ee.getUTCDate()+(D.w+6)%7):(ee=Ts(un(D.y,0,1)),be=ee.getDay(),ee=be>4||be===0?Yi.ceil(ee):Yi(ee),ee=fi.offset(ee,(D.V-1)*7),D.y=ee.getFullYear(),D.m=ee.getMonth(),D.d=ee.getDate()+(D.w+6)%7)}else("W"in D||"U"in D)&&("w"in D||(D.w="u"in D?D.u%7:"W"in D?1:0),be="Z"in D?Es(un(D.y,0,1)).getUTCDay():Ts(un(D.y,0,1)).getDay(),D.m=0,D.d="W"in D?(D.w+6)%7+D.W*7-(be+5)%7:D.w+D.U*7-(be+6)%7);return"Z"in D?(D.H+=D.Z/100|0,D.M+=D.Z%100,Es(D)):Ts(D)}}function A(F,Z,Q,D){for(var de=0,ee=Z.length,be=Q.length,xe,De;de=be)return-1;if(xe=Z.charCodeAt(de++),xe===37){if(xe=Z.charAt(de++),De=m[xe in cm?Z.charAt(de++):xe],!De||(D=De(F,Q,D))<0)return-1}else if(xe!=Q.charCodeAt(D++))return-1}return D}function T(F,Z,Q){var D=s.exec(Z.slice(Q));return D?(F.p=f.get(D[0].toLowerCase()),Q+D[0].length):-1}function M(F,Z,Q){var D=d.exec(Z.slice(Q));return D?(F.w=y.get(D[0].toLowerCase()),Q+D[0].length):-1}function P(F,Z,Q){var D=l.exec(Z.slice(Q));return D?(F.w=h.get(D[0].toLowerCase()),Q+D[0].length):-1}function E(F,Z,Q){var D=g.exec(Z.slice(Q));return D?(F.m=x.get(D[0].toLowerCase()),Q+D[0].length):-1}function j(F,Z,Q){var D=v.exec(Z.slice(Q));return D?(F.m=p.get(D[0].toLowerCase()),Q+D[0].length):-1}function C(F,Z,Q){return A(F,t,Z,Q)}function $(F,Z,Q){return A(F,r,Z,Q)}function k(F,Z,Q){return A(F,n,Z,Q)}function R(F){return o[F.getDay()]}function L(F){return a[F.getDay()]}function B(F){return c[F.getMonth()]}function U(F){return u[F.getMonth()]}function G(F){return i[+(F.getHours()>=12)]}function W(F){return 1+~~(F.getMonth()/3)}function V(F){return o[F.getUTCDay()]}function fe(F){return a[F.getUTCDay()]}function ye(F){return c[F.getUTCMonth()]}function Le(F){return u[F.getUTCMonth()]}function qt(F){return i[+(F.getUTCHours()>=12)]}function Re(F){return 1+~~(F.getUTCMonth()/3)}return{format:function(F){var Z=b(F+="",w);return Z.toString=function(){return F},Z},parse:function(F){var Z=_(F+="",!1);return Z.toString=function(){return F},Z},utcFormat:function(F){var Z=b(F+="",O);return Z.toString=function(){return F},Z},utcParse:function(F){var Z=_(F+="",!0);return Z.toString=function(){return F},Z}}}var cm={"-":"",_:" ",0:"0"},Ee=/^\s*\d+/,zT=/^%/,UT=/[\\^$*+?|[\]().{}]/g;function re(e,t,r){var n=e<0?"-":"",i=(n?-e:e)+"",a=i.length;return n+(a[t.toLowerCase(),r]))}function KT(e,t,r){var n=Ee.exec(t.slice(r,r+1));return n?(e.w=+n[0],r+n[0].length):-1}function GT(e,t,r){var n=Ee.exec(t.slice(r,r+1));return n?(e.u=+n[0],r+n[0].length):-1}function VT(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.U=+n[0],r+n[0].length):-1}function XT(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.V=+n[0],r+n[0].length):-1}function YT(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.W=+n[0],r+n[0].length):-1}function sm(e,t,r){var n=Ee.exec(t.slice(r,r+4));return n?(e.y=+n[0],r+n[0].length):-1}function lm(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.y=+n[0]+(+n[0]>68?1900:2e3),r+n[0].length):-1}function ZT(e,t,r){var n=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(r,r+6));return n?(e.Z=n[1]?0:-(n[2]+(n[3]||"00")),r+n[0].length):-1}function JT(e,t,r){var n=Ee.exec(t.slice(r,r+1));return n?(e.q=n[0]*3-3,r+n[0].length):-1}function QT(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.m=n[0]-1,r+n[0].length):-1}function fm(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.d=+n[0],r+n[0].length):-1}function eE(e,t,r){var n=Ee.exec(t.slice(r,r+3));return n?(e.m=0,e.d=+n[0],r+n[0].length):-1}function hm(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.H=+n[0],r+n[0].length):-1}function tE(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.M=+n[0],r+n[0].length):-1}function rE(e,t,r){var n=Ee.exec(t.slice(r,r+2));return n?(e.S=+n[0],r+n[0].length):-1}function nE(e,t,r){var n=Ee.exec(t.slice(r,r+3));return n?(e.L=+n[0],r+n[0].length):-1}function iE(e,t,r){var n=Ee.exec(t.slice(r,r+6));return n?(e.L=Math.floor(n[0]/1e3),r+n[0].length):-1}function aE(e,t,r){var n=zT.exec(t.slice(r,r+1));return n?r+n[0].length:-1}function oE(e,t,r){var n=Ee.exec(t.slice(r));return n?(e.Q=+n[0],r+n[0].length):-1}function uE(e,t,r){var n=Ee.exec(t.slice(r));return n?(e.s=+n[0],r+n[0].length):-1}function pm(e,t){return re(e.getDate(),t,2)}function cE(e,t){return re(e.getHours(),t,2)}function sE(e,t){return re(e.getHours()%12||12,t,2)}function lE(e,t){return re(1+fi.count(_t(e),e),t,3)}function dx(e,t){return re(e.getMilliseconds(),t,3)}function fE(e,t){return dx(e,t)+"000"}function hE(e,t){return re(e.getMonth()+1,t,2)}function pE(e,t){return re(e.getMinutes(),t,2)}function dE(e,t){return re(e.getSeconds(),t,2)}function vE(e){var t=e.getDay();return t===0?7:t}function yE(e,t){return re(Wa.count(_t(e)-1,e),t,2)}function vx(e){var t=e.getDay();return t>=4||t===0?Mr(e):Mr.ceil(e)}function mE(e,t){return e=vx(e),re(Mr.count(_t(e),e)+(_t(e).getDay()===4),t,2)}function gE(e){return e.getDay()}function bE(e,t){return re(Yi.count(_t(e)-1,e),t,2)}function xE(e,t){return re(e.getFullYear()%100,t,2)}function wE(e,t){return e=vx(e),re(e.getFullYear()%100,t,2)}function OE(e,t){return re(e.getFullYear()%1e4,t,4)}function _E(e,t){var r=e.getDay();return e=r>=4||r===0?Mr(e):Mr.ceil(e),re(e.getFullYear()%1e4,t,4)}function AE(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+re(t/60|0,"0",2)+re(t%60,"0",2)}function dm(e,t){return re(e.getUTCDate(),t,2)}function SE(e,t){return re(e.getUTCHours(),t,2)}function PE(e,t){return re(e.getUTCHours()%12||12,t,2)}function TE(e,t){return re(1+Fa.count(At(e),e),t,3)}function yx(e,t){return re(e.getUTCMilliseconds(),t,3)}function EE(e,t){return yx(e,t)+"000"}function jE(e,t){return re(e.getUTCMonth()+1,t,2)}function ME(e,t){return re(e.getUTCMinutes(),t,2)}function $E(e,t){return re(e.getUTCSeconds(),t,2)}function CE(e){var t=e.getUTCDay();return t===0?7:t}function IE(e,t){return re(za.count(At(e)-1,e),t,2)}function mx(e){var t=e.getUTCDay();return t>=4||t===0?$r(e):$r.ceil(e)}function kE(e,t){return e=mx(e),re($r.count(At(e),e)+(At(e).getUTCDay()===4),t,2)}function RE(e){return e.getUTCDay()}function DE(e,t){return re(Zi.count(At(e)-1,e),t,2)}function NE(e,t){return re(e.getUTCFullYear()%100,t,2)}function qE(e,t){return e=mx(e),re(e.getUTCFullYear()%100,t,2)}function LE(e,t){return re(e.getUTCFullYear()%1e4,t,4)}function BE(e,t){var r=e.getUTCDay();return e=r>=4||r===0?$r(e):$r.ceil(e),re(e.getUTCFullYear()%1e4,t,4)}function FE(){return"+0000"}function vm(){return"%"}function ym(e){return+e}function mm(e){return Math.floor(+e/1e3)}var hr,gx,bx;WE({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function WE(e){return hr=WT(e),gx=hr.format,hr.parse,bx=hr.utcFormat,hr.utcParse,hr}function zE(e){return new Date(e)}function UE(e){return e instanceof Date?+e:+new Date(+e)}function Ph(e,t,r,n,i,a,o,u,c,s){var f=hh(),l=f.invert,h=f.domain,d=s(".%L"),y=s(":%S"),v=s("%I:%M"),p=s("%I %p"),g=s("%a %d"),x=s("%b %d"),w=s("%B"),O=s("%Y");function m(b){return(c(b)t(i/(e.length-1)))},r.quantiles=function(n){return Array.from({length:n+1},(i,a)=>IP(e,a/n))},r.copy=function(){return _x(t).domain(e)},Tt.apply(r,arguments)}function Ha(){var e=0,t=.5,r=1,n=1,i,a,o,u,c,s=ke,f,l=!1,h;function d(v){return isNaN(v=+v)?h:(v=.5+((v=+f(v))-a)*(n*vr}return Ms=e,Ms}var $s,wm;function XE(){if(wm)return $s;wm=1;var e=Ka(),t=Tx(),r=Jr();function n(i){return i&&i.length?e(i,r,t):void 0}return $s=n,$s}var YE=XE();const Ga=oe(YE);var Cs,Om;function Ex(){if(Om)return Cs;Om=1;function e(t,r){return te.e^a.s<0?1:-1;for(n=a.d.length,i=e.d.length,t=0,r=ne.d[t]^a.s<0?1:-1;return n===i?0:n>i^a.s<0?1:-1};z.decimalPlaces=z.dp=function(){var e=this,t=e.d.length-1,r=(t-e.e)*he;if(t=e.d[t],t)for(;t%10==0;t/=10)r--;return r<0?0:r};z.dividedBy=z.div=function(e){return xt(this,new this.constructor(e))};z.dividedToIntegerBy=z.idiv=function(e){var t=this,r=t.constructor;return ue(xt(t,new r(e),0,1),r.precision)};z.equals=z.eq=function(e){return!this.cmp(e)};z.exponent=function(){return ge(this)};z.greaterThan=z.gt=function(e){return this.cmp(e)>0};z.greaterThanOrEqualTo=z.gte=function(e){return this.cmp(e)>=0};z.isInteger=z.isint=function(){return this.e>this.d.length-2};z.isNegative=z.isneg=function(){return this.s<0};z.isPositive=z.ispos=function(){return this.s>0};z.isZero=function(){return this.s===0};z.lessThan=z.lt=function(e){return this.cmp(e)<0};z.lessThanOrEqualTo=z.lte=function(e){return this.cmp(e)<1};z.logarithm=z.log=function(e){var t,r=this,n=r.constructor,i=n.precision,a=i+5;if(e===void 0)e=new n(10);else if(e=new n(e),e.s<1||e.eq(Ue))throw Error(Je+"NaN");if(r.s<1)throw Error(Je+(r.s?"NaN":"-Infinity"));return r.eq(Ue)?new n(0):(pe=!1,t=xt(Dn(r,a),Dn(e,a),a),pe=!0,ue(t,i))};z.minus=z.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Cx(t,e):Mx(t,(e.s=-e.s,e))};z.modulo=z.mod=function(e){var t,r=this,n=r.constructor,i=n.precision;if(e=new n(e),!e.s)throw Error(Je+"NaN");return r.s?(pe=!1,t=xt(r,e,0,1).times(e),pe=!0,r.minus(t)):ue(new n(r),i)};z.naturalExponential=z.exp=function(){return $x(this)};z.naturalLogarithm=z.ln=function(){return Dn(this)};z.negated=z.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};z.plus=z.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?Mx(t,e):Cx(t,(e.s=-e.s,e))};z.precision=z.sd=function(e){var t,r,n,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Jt+e);if(t=ge(i)+1,n=i.d.length-1,r=n*he+1,n=i.d[n],n){for(;n%10==0;n/=10)r--;for(n=i.d[0];n>=10;n/=10)r++}return e&&t>r?t:r};z.squareRoot=z.sqrt=function(){var e,t,r,n,i,a,o,u=this,c=u.constructor;if(u.s<1){if(!u.s)return new c(0);throw Error(Je+"NaN")}for(e=ge(u),pe=!1,i=Math.sqrt(+u),i==0||i==1/0?(t=ot(u.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=tn((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),n=new c(t)):n=new c(i.toString()),r=c.precision,i=o=r+3;;)if(a=n,n=a.plus(xt(u,a,o+2)).times(.5),ot(a.d).slice(0,o)===(t=ot(n.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if(ue(a,r+1,0),a.times(a).eq(u)){n=a;break}}else if(t!="9999")break;o+=4}return pe=!0,ue(n,r)};z.times=z.mul=function(e){var t,r,n,i,a,o,u,c,s,f=this,l=f.constructor,h=f.d,d=(e=new l(e)).d;if(!f.s||!e.s)return new l(0);for(e.s*=f.s,r=f.e+e.e,c=h.length,s=d.length,c=0;){for(t=0,i=c+n;i>n;)u=a[i]+d[n]*h[i-n-1]+t,a[i--]=u%Pe|0,t=u/Pe|0;a[i]=(a[i]+t)%Pe|0}for(;!a[--o];)a.pop();return t?++r:a.shift(),e.d=a,e.e=r,pe?ue(e,l.precision):e};z.toDecimalPlaces=z.todp=function(e,t){var r=this,n=r.constructor;return r=new n(r),e===void 0?r:(st(e,0,en),t===void 0?t=n.rounding:st(t,0,8),ue(r,e+ge(r)+1,t))};z.toExponential=function(e,t){var r,n=this,i=n.constructor;return e===void 0?r=nr(n,!0):(st(e,0,en),t===void 0?t=i.rounding:st(t,0,8),n=ue(new i(n),e+1,t),r=nr(n,!0,e+1)),r};z.toFixed=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?nr(i):(st(e,0,en),t===void 0?t=a.rounding:st(t,0,8),n=ue(new a(i),e+ge(i)+1,t),r=nr(n.abs(),!1,e+ge(n)+1),i.isneg()&&!i.isZero()?"-"+r:r)};z.toInteger=z.toint=function(){var e=this,t=e.constructor;return ue(new t(e),ge(e)+1,t.rounding)};z.toNumber=function(){return+this};z.toPower=z.pow=function(e){var t,r,n,i,a,o,u=this,c=u.constructor,s=12,f=+(e=new c(e));if(!e.s)return new c(Ue);if(u=new c(u),!u.s){if(e.s<1)throw Error(Je+"Infinity");return u}if(u.eq(Ue))return u;if(n=c.precision,e.eq(Ue))return ue(u,n);if(t=e.e,r=e.d.length-1,o=t>=r,a=u.s,o){if((r=f<0?-f:f)<=jx){for(i=new c(Ue),t=Math.ceil(n/he+4),pe=!1;r%2&&(i=i.times(u),Em(i.d,t)),r=tn(r/2),r!==0;)u=u.times(u),Em(u.d,t);return pe=!0,e.s<0?new c(Ue).div(i):ue(i,n)}}else if(a<0)throw Error(Je+"NaN");return a=a<0&&e.d[Math.max(t,r)]&1?-1:1,u.s=1,pe=!1,i=e.times(Dn(u,n+s)),pe=!0,i=$x(i),i.s=a,i};z.toPrecision=function(e,t){var r,n,i=this,a=i.constructor;return e===void 0?(r=ge(i),n=nr(i,r<=a.toExpNeg||r>=a.toExpPos)):(st(e,1,en),t===void 0?t=a.rounding:st(t,0,8),i=ue(new a(i),e,t),r=ge(i),n=nr(i,e<=r||r<=a.toExpNeg,e)),n};z.toSignificantDigits=z.tosd=function(e,t){var r=this,n=r.constructor;return e===void 0?(e=n.precision,t=n.rounding):(st(e,1,en),t===void 0?t=n.rounding:st(t,0,8)),ue(new n(r),e,t)};z.toString=z.valueOf=z.val=z.toJSON=z[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=ge(e),r=e.constructor;return nr(e,t<=r.toExpNeg||t>=r.toExpPos)};function Mx(e,t){var r,n,i,a,o,u,c,s,f=e.constructor,l=f.precision;if(!e.s||!t.s)return t.s||(t=new f(e)),pe?ue(t,l):t;if(c=e.d,s=t.d,o=e.e,i=t.e,c=c.slice(),a=o-i,a){for(a<0?(n=c,a=-a,u=s.length):(n=s,i=o,u=c.length),o=Math.ceil(l/he),u=o>u?o+1:u+1,a>u&&(a=u,n.length=1),n.reverse();a--;)n.push(0);n.reverse()}for(u=c.length,a=s.length,u-a<0&&(a=u,n=s,s=c,c=n),r=0;a;)r=(c[--a]=c[a]+s[a]+r)/Pe|0,c[a]%=Pe;for(r&&(c.unshift(r),++i),u=c.length;c[--u]==0;)c.pop();return t.d=c,t.e=i,pe?ue(t,l):t}function st(e,t,r){if(e!==~~e||er)throw Error(Jt+e)}function ot(e){var t,r,n,i=e.length-1,a="",o=e[0];if(i>0){for(a+=o,t=1;to?1:-1;else for(u=c=0;ui[u]?1:-1;break}return c}function r(n,i,a){for(var o=0;a--;)n[a]-=o,o=n[a]1;)n.shift()}return function(n,i,a,o){var u,c,s,f,l,h,d,y,v,p,g,x,w,O,m,b,_,A,T=n.constructor,M=n.s==i.s?1:-1,P=n.d,E=i.d;if(!n.s)return new T(n);if(!i.s)throw Error(Je+"Division by zero");for(c=n.e-i.e,_=E.length,m=P.length,d=new T(M),y=d.d=[],s=0;E[s]==(P[s]||0);)++s;if(E[s]>(P[s]||0)&&--c,a==null?x=a=T.precision:o?x=a+(ge(n)-ge(i))+1:x=a,x<0)return new T(0);if(x=x/he+2|0,s=0,_==1)for(f=0,E=E[0],x++;(s1&&(E=e(E,f),P=e(P,f),_=E.length,m=P.length),O=_,v=P.slice(0,_),p=v.length;p<_;)v[p++]=0;A=E.slice(),A.unshift(0),b=E[0],E[1]>=Pe/2&&++b;do f=0,u=t(E,v,_,p),u<0?(g=v[0],_!=p&&(g=g*Pe+(v[1]||0)),f=g/b|0,f>1?(f>=Pe&&(f=Pe-1),l=e(E,f),h=l.length,p=v.length,u=t(l,v,h,p),u==1&&(f--,r(l,_16)throw Error(jh+ge(e));if(!e.s)return new f(Ue);for(pe=!1,u=l,o=new f(.03125);e.abs().gte(.1);)e=e.times(o),s+=5;for(n=Math.log(Ht(2,s))/Math.LN10*2+5|0,u+=n,r=i=a=new f(Ue),f.precision=u;;){if(i=ue(i.times(e),u),r=r.times(++c),o=a.plus(xt(i,r,u)),ot(o.d).slice(0,u)===ot(a.d).slice(0,u)){for(;s--;)a=ue(a.times(a),u);return f.precision=l,t==null?(pe=!0,ue(a,l)):a}a=o}}function ge(e){for(var t=e.e*he,r=e.d[0];r>=10;r/=10)t++;return t}function Ns(e,t,r){if(t>e.LN10.sd())throw pe=!0,r&&(e.precision=r),Error(Je+"LN10 precision limit exceeded");return ue(new e(e.LN10),t)}function jt(e){for(var t="";e--;)t+="0";return t}function Dn(e,t){var r,n,i,a,o,u,c,s,f,l=1,h=10,d=e,y=d.d,v=d.constructor,p=v.precision;if(d.s<1)throw Error(Je+(d.s?"NaN":"-Infinity"));if(d.eq(Ue))return new v(0);if(t==null?(pe=!1,s=p):s=t,d.eq(10))return t==null&&(pe=!0),Ns(v,s);if(s+=h,v.precision=s,r=ot(y),n=r.charAt(0),a=ge(d),Math.abs(a)<15e14){for(;n<7&&n!=1||n==1&&r.charAt(1)>3;)d=d.times(e),r=ot(d.d),n=r.charAt(0),l++;a=ge(d),n>1?(d=new v("0."+r),a++):d=new v(n+"."+r.slice(1))}else return c=Ns(v,s+2,p).times(a+""),d=Dn(new v(n+"."+r.slice(1)),s-h).plus(c),v.precision=p,t==null?(pe=!0,ue(d,p)):d;for(u=o=d=xt(d.minus(Ue),d.plus(Ue),s),f=ue(d.times(d),s),i=3;;){if(o=ue(o.times(f),s),c=u.plus(xt(o,new v(i),s)),ot(c.d).slice(0,s)===ot(u.d).slice(0,s))return u=u.times(2),a!==0&&(u=u.plus(Ns(v,s+2,p).times(a+""))),u=xt(u,new v(l),s),v.precision=p,t==null?(pe=!0,ue(u,p)):u;u=c,i+=2}}function Tm(e,t){var r,n,i;for((r=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(r<0&&(r=n),r+=+t.slice(n+1),t=t.substring(0,n)):r<0&&(r=t.length),n=0;t.charCodeAt(n)===48;)++n;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(n,i),t){if(i-=n,r=r-n-1,e.e=tn(r/he),e.d=[],n=(r+1)%he,r<0&&(n+=he),nJi||e.e<-Ji))throw Error(jh+r)}else e.s=0,e.e=0,e.d=[0];return e}function ue(e,t,r){var n,i,a,o,u,c,s,f,l=e.d;for(o=1,a=l[0];a>=10;a/=10)o++;if(n=t-o,n<0)n+=he,i=t,s=l[f=0];else{if(f=Math.ceil((n+1)/he),a=l.length,f>=a)return e;for(s=a=l[f],o=1;a>=10;a/=10)o++;n%=he,i=n-he+o}if(r!==void 0&&(a=Ht(10,o-i-1),u=s/a%10|0,c=t<0||l[f+1]!==void 0||s%a,c=r<4?(u||c)&&(r==0||r==(e.s<0?3:2)):u>5||u==5&&(r==4||c||r==6&&(n>0?i>0?s/Ht(10,o-i):0:l[f-1])%10&1||r==(e.s<0?8:7))),t<1||!l[0])return c?(a=ge(e),l.length=1,t=t-a-1,l[0]=Ht(10,(he-t%he)%he),e.e=tn(-t/he)||0):(l.length=1,l[0]=e.e=e.s=0),e;if(n==0?(l.length=f,a=1,f--):(l.length=f+1,a=Ht(10,he-n),l[f]=i>0?(s/Ht(10,o-i)%Ht(10,i)|0)*a:0),c)for(;;)if(f==0){(l[0]+=a)==Pe&&(l[0]=1,++e.e);break}else{if(l[f]+=a,l[f]!=Pe)break;l[f--]=0,a=1}for(n=l.length;l[--n]===0;)l.pop();if(pe&&(e.e>Ji||e.e<-Ji))throw Error(jh+ge(e));return e}function Cx(e,t){var r,n,i,a,o,u,c,s,f,l,h=e.constructor,d=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),pe?ue(t,d):t;if(c=e.d,l=t.d,n=t.e,s=e.e,c=c.slice(),o=s-n,o){for(f=o<0,f?(r=c,o=-o,u=l.length):(r=l,n=s,u=c.length),i=Math.max(Math.ceil(d/he),u)+2,o>i&&(o=i,r.length=1),r.reverse(),i=o;i--;)r.push(0);r.reverse()}else{for(i=c.length,u=l.length,f=i0;--i)c[u++]=0;for(i=l.length;i>o;){if(c[--i]0?a=a.charAt(0)+"."+a.slice(1)+jt(n):o>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(i<0?"e":"e+")+i):i<0?(a="0."+jt(-i-1)+a,r&&(n=r-o)>0&&(a+=jt(n))):i>=o?(a+=jt(i+1-o),r&&(n=r-i-1)>0&&(a=a+"."+jt(n))):((n=i+1)0&&(i+1===o&&(a+="."),a+=jt(n))),e.s<0?"-"+a:a}function Em(e,t){if(e.length>t)return e.length=t,!0}function Ix(e){var t,r,n;function i(a){var o=this;if(!(o instanceof i))return new i(a);if(o.constructor=i,a instanceof i){o.s=a.s,o.e=a.e,o.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(Jt+a);if(a>0)o.s=1;else if(a<0)a=-a,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(a===~~a&&a<1e7){o.e=0,o.d=[a];return}return Tm(o,a.toString())}else if(typeof a!="string")throw Error(Jt+a);if(a.charCodeAt(0)===45?(a=a.slice(1),o.s=-1):o.s=1,oj.test(a))Tm(o,a);else throw Error(Jt+a)}if(i.prototype=z,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=Ix,i.config=i.set=uj,e===void 0&&(e={}),e)for(n=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=i[t+1]&&n<=i[t+2])this[r]=n;else throw Error(Jt+r+": "+n);if((n=e[r="LN10"])!==void 0)if(n==Math.LN10)this[r]=new this(n);else throw Error(Jt+r+": "+n);return this}var Mh=Ix(aj);Ue=new Mh(1);const ae=Mh;function cj(e){return hj(e)||fj(e)||lj(e)||sj()}function sj(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lj(e,t){if(e){if(typeof e=="string")return zl(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return zl(e,t)}}function fj(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function hj(e){if(Array.isArray(e))return zl(e)}function zl(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=t?r.apply(void 0,i):e(t-o,jm(function(){for(var u=arguments.length,c=new Array(u),s=0;se.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!(Symbol.iterator in Object(e)))){var r=[],n=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),u;!(n=(u=o.next()).done)&&(r.push(u.value),!(t&&r.length===t));n=!0);}catch(c){i=!0,a=c}finally{try{!n&&o.return!=null&&o.return()}finally{if(i)throw a}}return r}}function Tj(e){if(Array.isArray(e))return e}function qx(e){var t=Nn(e,2),r=t[0],n=t[1],i=r,a=n;return r>n&&(i=n,a=r),[i,a]}function Lx(e,t,r){if(e.lte(0))return new ae(0);var n=Ya.getDigitCount(e.toNumber()),i=new ae(10).pow(n),a=e.div(i),o=n!==1?.05:.1,u=new ae(Math.ceil(a.div(o).toNumber())).add(r).mul(o),c=u.mul(i);return t?c:new ae(Math.ceil(c))}function Ej(e,t,r){var n=1,i=new ae(e);if(!i.isint()&&r){var a=Math.abs(e);a<1?(n=new ae(10).pow(Ya.getDigitCount(e)-1),i=new ae(Math.floor(i.div(n).toNumber())).mul(n)):a>1&&(i=new ae(Math.floor(e)))}else e===0?i=new ae(Math.floor((t-1)/2)):r||(i=new ae(Math.floor(e)));var o=Math.floor((t-1)/2),u=yj(vj(function(c){return i.add(new ae(c-o).mul(n)).toNumber()}),Ul);return u(0,t)}function Bx(e,t,r,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(r-1)))return{step:new ae(0),tickMin:new ae(0),tickMax:new ae(0)};var a=Lx(new ae(t).sub(e).div(r-1),n,i),o;e<=0&&t>=0?o=new ae(0):(o=new ae(e).add(t).div(2),o=o.sub(new ae(o).mod(a)));var u=Math.ceil(o.sub(e).div(a).toNumber()),c=Math.ceil(new ae(t).sub(o).div(a).toNumber()),s=u+c+1;return s>r?Bx(e,t,r,n,i+1):(s0?c+(r-s):c,u=t>0?u:u+(r-s)),{step:a,tickMin:o.sub(new ae(u).mul(a)),tickMax:o.add(new ae(c).mul(a))})}function jj(e){var t=Nn(e,2),r=t[0],n=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=Math.max(i,2),u=qx([r,n]),c=Nn(u,2),s=c[0],f=c[1];if(s===-1/0||f===1/0){var l=f===1/0?[s].concat(Kl(Ul(0,i-1).map(function(){return 1/0}))):[].concat(Kl(Ul(0,i-1).map(function(){return-1/0})),[f]);return r>n?Hl(l):l}if(s===f)return Ej(s,i,a);var h=Bx(s,f,o,a),d=h.step,y=h.tickMin,v=h.tickMax,p=Ya.rangeStep(y,v.add(new ae(.1).mul(d)),d);return r>n?Hl(p):p}function Mj(e,t){var r=Nn(e,2),n=r[0],i=r[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=qx([n,i]),u=Nn(o,2),c=u[0],s=u[1];if(c===-1/0||s===1/0)return[n,i];if(c===s)return[c];var f=Math.max(t,2),l=Lx(new ae(s).sub(c).div(f-1),a,0),h=[].concat(Kl(Ya.rangeStep(new ae(c),new ae(s).sub(new ae(.99).mul(l)),l)),[s]);return n>i?Hl(h):h}var $j=Dx(jj),Cj=Dx(Mj),Ij=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function Cr(e){"@babel/helpers - typeof";return Cr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Cr(e)}function Qi(){return Qi=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Bj(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Fj(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wj(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0,a=arguments.length>3?arguments[3]:void 0,o=-1,u=(r=n?.length)!==null&&r!==void 0?r:0;if(u<=1)return 0;if(a&&a.axisType==="angleAxis"&&Math.abs(Math.abs(a.range[1]-a.range[0])-360)<=1e-6)for(var c=a.range,s=0;s0?i[s-1].coordinate:i[u-1].coordinate,l=i[s].coordinate,h=s>=u-1?i[0].coordinate:i[s+1].coordinate,d=void 0;if(Ce(l-f)!==Ce(h-l)){var y=[];if(Ce(h-l)===Ce(c[1]-c[0])){d=h;var v=l+c[1]-c[0];y[0]=Math.min(v,(v+f)/2),y[1]=Math.max(v,(v+f)/2)}else{d=f;var p=h+c[1]-c[0];y[0]=Math.min(l,(p+l)/2),y[1]=Math.max(l,(p+l)/2)}var g=[Math.min(l,(d+l)/2),Math.max(l,(d+l)/2)];if(t>g[0]&&t<=g[1]||t>=y[0]&&t<=y[1]){o=i[s].index;break}}else{var x=Math.min(f,h),w=Math.max(f,h);if(t>(x+l)/2&&t<=(w+l)/2){o=i[s].index;break}}}else for(var O=0;O0&&O(n[O].coordinate+n[O-1].coordinate)/2&&t<=(n[O].coordinate+n[O+1].coordinate)/2||O===u-1&&t>(n[O].coordinate+n[O-1].coordinate)/2){o=n[O].index;break}return o},$h=function(t){var r,n=t,i=n.type.displayName,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?ve(ve({},t.type.defaultProps),t.props):t.props,o=a.stroke,u=a.fill,c;switch(i){case"Line":c=o;break;case"Area":case"Radar":c=o&&o!=="none"?o:u;break;default:c=u;break}return c},aM=function(t){var r=t.barSize,n=t.totalSize,i=t.stackGroups,a=i===void 0?{}:i;if(!a)return{};for(var o={},u=Object.keys(a),c=0,s=u.length;c=0});if(g&&g.length){var x=g[0].type.defaultProps,w=x!==void 0?ve(ve({},x),g[0].props):g[0].props,O=w.barSize,m=w[p];o[m]||(o[m]=[]);var b=Y(O)?r:O;o[m].push({item:g[0],stackList:g.slice(1),barSize:Y(b)?void 0:Ie(b,n,0)})}}return o},oM=function(t){var r=t.barGap,n=t.barCategoryGap,i=t.bandSize,a=t.sizeList,o=a===void 0?[]:a,u=t.maxBarSize,c=o.length;if(c<1)return null;var s=Ie(r,i,0,!0),f,l=[];if(o[0].barSize===+o[0].barSize){var h=!1,d=i/c,y=o.reduce(function(O,m){return O+m.barSize||0},0);y+=(c-1)*s,y>=i&&(y-=(c-1)*s,s=0),y>=i&&d>0&&(h=!0,d*=.9,y=c*d);var v=(i-y)/2>>0,p={offset:v-s,size:0};f=o.reduce(function(O,m){var b={item:m.item,position:{offset:p.offset+p.size+s,size:h?d:m.barSize}},_=[].concat(Cm(O),[b]);return p=_[_.length-1].position,m.stackList&&m.stackList.length&&m.stackList.forEach(function(A){_.push({item:A,position:p})}),_},l)}else{var g=Ie(n,i,0,!0);i-2*g-(c-1)*s<=0&&(s=0);var x=(i-2*g-(c-1)*s)/c;x>1&&(x>>=0);var w=u===+u?Math.min(x,u):x;f=o.reduce(function(O,m,b){var _=[].concat(Cm(O),[{item:m.item,position:{offset:g+(x+s)*b+(x-w)/2,size:w}}]);return m.stackList&&m.stackList.length&&m.stackList.forEach(function(A){_.push({item:A,position:_[_.length-1].position})}),_},l)}return f},uM=function(t,r,n,i){var a=n.children,o=n.width,u=n.margin,c=o-(u.left||0)-(u.right||0),s=Ux({children:a,legendWidth:c});if(s){var f=i||{},l=f.width,h=f.height,d=s.align,y=s.verticalAlign,v=s.layout;if((v==="vertical"||v==="horizontal"&&y==="middle")&&d!=="center"&&q(t[d]))return ve(ve({},t),{},_r({},d,t[d]+(l||0)));if((v==="horizontal"||v==="vertical"&&d==="center")&&y!=="middle"&&q(t[y]))return ve(ve({},t),{},_r({},y,t[y]+(h||0)))}return t},cM=function(t,r,n){return Y(r)?!0:t==="horizontal"?r==="yAxis":t==="vertical"||n==="x"?r==="xAxis":n==="y"?r==="yAxis":!0},Hx=function(t,r,n,i,a){var o=r.props.children,u=Ke(o,pi).filter(function(s){return cM(i,a,s.props.direction)});if(u&&u.length){var c=u.map(function(s){return s.props.dataKey});return t.reduce(function(s,f){var l=_e(f,n);if(Y(l))return s;var h=Array.isArray(l)?[Va(l),Ga(l)]:[l,l],d=c.reduce(function(y,v){var p=_e(f,v,0),g=h[0]-Math.abs(Array.isArray(p)?p[0]:p),x=h[1]+Math.abs(Array.isArray(p)?p[1]:p);return[Math.min(g,y[0]),Math.max(x,y[1])]},[1/0,-1/0]);return[Math.min(d[0],s[0]),Math.max(d[1],s[1])]},[1/0,-1/0])}return null},sM=function(t,r,n,i,a){var o=r.map(function(u){return Hx(t,u,n,a,i)}).filter(function(u){return!Y(u)});return o&&o.length?o.reduce(function(u,c){return[Math.min(u[0],c[0]),Math.max(u[1],c[1])]},[1/0,-1/0]):null},Kx=function(t,r,n,i,a){var o=r.map(function(c){var s=c.props.dataKey;return n==="number"&&s&&Hx(t,c,s,i)||bn(t,s,n,a)});if(n==="number")return o.reduce(function(c,s){return[Math.min(c[0],s[0]),Math.max(c[1],s[1])]},[1/0,-1/0]);var u={};return o.reduce(function(c,s){for(var f=0,l=s.length;f=2?Ce(u[0]-u[1])*2*s:s,r&&(t.ticks||t.niceTicks)){var f=(t.ticks||t.niceTicks).map(function(l){var h=a?a.indexOf(l):l;return{coordinate:i(h)+s,value:l,offset:s}});return f.filter(function(l){return!oi(l.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(l,h){return{coordinate:i(l)+s,value:l,index:h,offset:s}}):i.ticks&&!n?i.ticks(t.tickCount).map(function(l){return{coordinate:i(l)+s,value:l,offset:s}}):i.domain().map(function(l,h){return{coordinate:i(l)+s,value:a?a[l]:l,index:h,offset:s}})},qs=new WeakMap,_i=function(t,r){if(typeof r!="function")return t;qs.has(t)||qs.set(t,new WeakMap);var n=qs.get(t);if(n.has(r))return n.get(r);var i=function(){t.apply(void 0,arguments),r.apply(void 0,arguments)};return n.set(r,i),i},Xx=function(t,r,n){var i=t.scale,a=t.type,o=t.layout,u=t.axisType;if(i==="auto")return o==="radial"&&u==="radiusAxis"?{scale:$n(),realScaleType:"band"}:o==="radial"&&u==="angleAxis"?{scale:Vi(),realScaleType:"linear"}:a==="category"&&r&&(r.indexOf("LineChart")>=0||r.indexOf("AreaChart")>=0||r.indexOf("ComposedChart")>=0&&!n)?{scale:gn(),realScaleType:"point"}:a==="category"?{scale:$n(),realScaleType:"band"}:{scale:Vi(),realScaleType:"linear"};if(er(i)){var c="scale".concat(Ia(i));return{scale:(gm[c]||gn)(),realScaleType:gm[c]?c:"point"}}return X(i)?{scale:i}:{scale:gn(),realScaleType:"point"}},km=1e-4,Yx=function(t){var r=t.domain();if(!(!r||r.length<=2)){var n=r.length,i=t.range(),a=Math.min(i[0],i[1])-km,o=Math.max(i[0],i[1])+km,u=t(r[0]),c=t(r[n-1]);(uo||co)&&t.domain([r[0],r[n-1]])}},lM=function(t,r){if(!t)return null;for(var n=0,i=t.length;ni)&&(a[1]=i),a[0]>i&&(a[0]=i),a[1]=0?(t[u][n][0]=a,t[u][n][1]=a+c,a=t[u][n][1]):(t[u][n][0]=o,t[u][n][1]=o+c,o=t[u][n][1])}},pM=function(t){var r=t.length;if(!(r<=0))for(var n=0,i=t[0].length;n=0?(t[o][n][0]=a,t[o][n][1]=a+u,a=t[o][n][1]):(t[o][n][0]=0,t[o][n][1]=0)}},dM={sign:hM,expand:r1,none:Ar,silhouette:n1,wiggle:i1,positive:pM},vM=function(t,r,n){var i=r.map(function(u){return u.props.dataKey}),a=dM[n],o=t1().keys(i).value(function(u,c){return+_e(u,c,0)}).order(Sl).offset(a);return o(t)},yM=function(t,r,n,i,a,o){if(!t)return null;var u=o?r.reverse():r,c={},s=u.reduce(function(l,h){var d,y=(d=h.type)!==null&&d!==void 0&&d.defaultProps?ve(ve({},h.type.defaultProps),h.props):h.props,v=y.stackId,p=y.hide;if(p)return l;var g=y[n],x=l[g]||{hasStack:!1,stackGroups:{}};if(Ae(v)){var w=x.stackGroups[v]||{numericAxisId:n,cateAxisId:i,items:[]};w.items.push(h),x.hasStack=!0,x.stackGroups[v]=w}else x.stackGroups[Zr("_stackId_")]={numericAxisId:n,cateAxisId:i,items:[h]};return ve(ve({},l),{},_r({},g,x))},c),f={};return Object.keys(s).reduce(function(l,h){var d=s[h];if(d.hasStack){var y={};d.stackGroups=Object.keys(d.stackGroups).reduce(function(v,p){var g=d.stackGroups[p];return ve(ve({},v),{},_r({},p,{numericAxisId:n,cateAxisId:i,items:g.items,stackedData:vM(t,g.items,a)}))},y)}return ve(ve({},l),{},_r({},h,d))},f)},Zx=function(t,r){var n=r.realScaleType,i=r.type,a=r.tickCount,o=r.originalDomain,u=r.allowDecimals,c=n||r.scale;if(c!=="auto"&&c!=="linear")return null;if(a&&i==="number"&&o&&(o[0]==="auto"||o[1]==="auto")){var s=t.domain();if(!s.length)return null;var f=$j(s,a,u);return t.domain([Va(f),Ga(f)]),{niceTicks:f}}if(a&&i==="number"){var l=t.domain(),h=Cj(l,a,u);return{niceTicks:h}}return null};function Rm(e){var t=e.axis,r=e.ticks,n=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Y(i[t.dataKey])){var u=Mi(r,"value",i[t.dataKey]);if(u)return u.coordinate+n/2}return r[a]?r[a].coordinate+n/2:null}var c=_e(i,Y(o)?t.dataKey:o);return Y(c)?null:t.scale(c)}var Dm=function(t){var r=t.axis,n=t.ticks,i=t.offset,a=t.bandSize,o=t.entry,u=t.index;if(r.type==="category")return n[u]?n[u].coordinate+i:null;var c=_e(o,r.dataKey,r.domain[u]);return Y(c)?null:r.scale(c)-a/2+i},mM=function(t){var r=t.numericAxis,n=r.scale.domain();if(r.type==="number"){var i=Math.min(n[0],n[1]),a=Math.max(n[0],n[1]);return i<=0&&a>=0?0:a<0?a:i}return n[0]},gM=function(t,r){var n,i=(n=t.type)!==null&&n!==void 0&&n.defaultProps?ve(ve({},t.type.defaultProps),t.props):t.props,a=i.stackId;if(Ae(a)){var o=r[a];if(o){var u=o.items.indexOf(t);return u>=0?o.stackedData[u]:null}}return null},bM=function(t){return t.reduce(function(r,n){return[Va(n.concat([r[0]]).filter(q)),Ga(n.concat([r[1]]).filter(q))]},[1/0,-1/0])},Jx=function(t,r,n){return Object.keys(t).reduce(function(i,a){var o=t[a],u=o.stackedData,c=u.reduce(function(s,f){var l=bM(f.slice(r,n+1));return[Math.min(s[0],l[0]),Math.max(s[1],l[1])]},[1/0,-1/0]);return[Math.min(c[0],i[0]),Math.max(c[1],i[1])]},[1/0,-1/0]).map(function(i){return i===1/0||i===-1/0?0:i})},Nm=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,qm=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Yl=function(t,r,n){if(X(t))return t(r,n);if(!Array.isArray(t))return r;var i=[];if(q(t[0]))i[0]=n?t[0]:Math.min(t[0],r[0]);else if(Nm.test(t[0])){var a=+Nm.exec(t[0])[1];i[0]=r[0]-a}else X(t[0])?i[0]=t[0](r[0]):i[0]=r[0];if(q(t[1]))i[1]=n?t[1]:Math.max(t[1],r[1]);else if(qm.test(t[1])){var o=+qm.exec(t[1])[1];i[1]=r[1]+o}else X(t[1])?i[1]=t[1](r[1]):i[1]=r[1];return i},ta=function(t,r,n){if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!n||i>0)return i}if(t&&r&&r.length>=2){for(var a=ih(r,function(l){return l.coordinate}),o=1/0,u=1,c=a.length;ue.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(n.left||0)-(n.right||0)),Math.abs(r-(n.top||0)-(n.bottom||0)))/2},EM=function(t,r,n,i,a){var o=t.width,u=t.height,c=t.startAngle,s=t.endAngle,f=Ie(t.cx,o,o/2),l=Ie(t.cy,u,u/2),h=tw(o,u,n),d=Ie(t.innerRadius,h,0),y=Ie(t.outerRadius,h,h*.8),v=Object.keys(r);return v.reduce(function(p,g){var x=r[g],w=x.domain,O=x.reversed,m;if(Y(x.range))i==="angleAxis"?m=[c,s]:i==="radiusAxis"&&(m=[d,y]),O&&(m=[m[1],m[0]]);else{m=x.range;var b=m,_=OM(b,2);c=_[0],s=_[1]}var A=Xx(x,a),T=A.realScaleType,M=A.scale;M.domain(w).range(m),Yx(M);var P=Zx(M,vt(vt({},x),{},{realScaleType:T})),E=vt(vt(vt({},x),P),{},{range:m,radius:y,realScaleType:T,scale:M,cx:f,cy:l,innerRadius:d,outerRadius:y,startAngle:c,endAngle:s});return vt(vt({},p),{},ew({},g,E))},{})},jM=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return Math.sqrt(Math.pow(n-a,2)+Math.pow(i-o,2))},MM=function(t,r){var n=t.x,i=t.y,a=r.cx,o=r.cy,u=jM({x:n,y:i},{x:a,y:o});if(u<=0)return{radius:u};var c=(n-a)/u,s=Math.acos(c);return i>o&&(s=2*Math.PI-s),{radius:u,angle:TM(s),angleInRadian:s}},$M=function(t){var r=t.startAngle,n=t.endAngle,i=Math.floor(r/360),a=Math.floor(n/360),o=Math.min(i,a);return{startAngle:r-o*360,endAngle:n-o*360}},CM=function(t,r){var n=r.startAngle,i=r.endAngle,a=Math.floor(n/360),o=Math.floor(i/360),u=Math.min(a,o);return t+u*360},Wm=function(t,r){var n=t.x,i=t.y,a=MM({x:n,y:i},r),o=a.radius,u=a.angle,c=r.innerRadius,s=r.outerRadius;if(os)return!1;if(o===0)return!0;var f=$M(r),l=f.startAngle,h=f.endAngle,d=u,y;if(l<=h){for(;d>h;)d-=360;for(;d=l&&d<=h}else{for(;d>l;)d-=360;for(;d=h&&d<=l}return y?vt(vt({},r),{},{radius:o,angle:CM(d,r)}):null},rw=function(t){return!N.isValidElement(t)&&!X(t)&&typeof t!="boolean"?t.className:""};function Fn(e){"@babel/helpers - typeof";return Fn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Fn(e)}var IM=["offset"];function kM(e){return qM(e)||NM(e)||DM(e)||RM()}function RM(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function DM(e,t){if(e){if(typeof e=="string")return Zl(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Zl(e,t)}}function NM(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function qM(e){if(Array.isArray(e))return Zl(e)}function Zl(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function BM(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function zm(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Oe(e){for(var t=1;t=0?1:-1,w,O;i==="insideStart"?(w=d+x*o,O=v):i==="insideEnd"?(w=y-x*o,O=!v):i==="end"&&(w=y+x*o,O=v),O=g<=0?O:!O;var m=le(s,f,p,w),b=le(s,f,p,w+(O?1:-1)*359),_="M".concat(m.x,",").concat(m.y,` + A`).concat(p,",").concat(p,",0,1,").concat(O?0:1,`, + `).concat(b.x,",").concat(b.y),A=Y(t.id)?Zr("recharts-radial-line-"):t.id;return S.createElement("text",Wn({},n,{dominantBaseline:"central",className:J("recharts-radial-bar-label",u)}),S.createElement("defs",null,S.createElement("path",{id:A,d:_})),S.createElement("textPath",{xlinkHref:"#".concat(A)},r))},GM=function(t){var r=t.viewBox,n=t.offset,i=t.position,a=r,o=a.cx,u=a.cy,c=a.innerRadius,s=a.outerRadius,f=a.startAngle,l=a.endAngle,h=(f+l)/2;if(i==="outside"){var d=le(o,u,s+n,h),y=d.x,v=d.y;return{x:y,y:v,textAnchor:y>=o?"start":"end",verticalAnchor:"middle"}}if(i==="center")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(i==="centerTop")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"start"};if(i==="centerBottom")return{x:o,y:u,textAnchor:"middle",verticalAnchor:"end"};var p=(c+s)/2,g=le(o,u,p,h),x=g.x,w=g.y;return{x,y:w,textAnchor:"middle",verticalAnchor:"middle"}},VM=function(t){var r=t.viewBox,n=t.parentViewBox,i=t.offset,a=t.position,o=r,u=o.x,c=o.y,s=o.width,f=o.height,l=f>=0?1:-1,h=l*i,d=l>0?"end":"start",y=l>0?"start":"end",v=s>=0?1:-1,p=v*i,g=v>0?"end":"start",x=v>0?"start":"end";if(a==="top"){var w={x:u+s/2,y:c-l*i,textAnchor:"middle",verticalAnchor:d};return Oe(Oe({},w),n?{height:Math.max(c-n.y,0),width:s}:{})}if(a==="bottom"){var O={x:u+s/2,y:c+f+h,textAnchor:"middle",verticalAnchor:y};return Oe(Oe({},O),n?{height:Math.max(n.y+n.height-(c+f),0),width:s}:{})}if(a==="left"){var m={x:u-p,y:c+f/2,textAnchor:g,verticalAnchor:"middle"};return Oe(Oe({},m),n?{width:Math.max(m.x-n.x,0),height:f}:{})}if(a==="right"){var b={x:u+s+p,y:c+f/2,textAnchor:x,verticalAnchor:"middle"};return Oe(Oe({},b),n?{width:Math.max(n.x+n.width-b.x,0),height:f}:{})}var _=n?{width:s,height:f}:{};return a==="insideLeft"?Oe({x:u+p,y:c+f/2,textAnchor:x,verticalAnchor:"middle"},_):a==="insideRight"?Oe({x:u+s-p,y:c+f/2,textAnchor:g,verticalAnchor:"middle"},_):a==="insideTop"?Oe({x:u+s/2,y:c+h,textAnchor:"middle",verticalAnchor:y},_):a==="insideBottom"?Oe({x:u+s/2,y:c+f-h,textAnchor:"middle",verticalAnchor:d},_):a==="insideTopLeft"?Oe({x:u+p,y:c+h,textAnchor:x,verticalAnchor:y},_):a==="insideTopRight"?Oe({x:u+s-p,y:c+h,textAnchor:g,verticalAnchor:y},_):a==="insideBottomLeft"?Oe({x:u+p,y:c+f-h,textAnchor:x,verticalAnchor:d},_):a==="insideBottomRight"?Oe({x:u+s-p,y:c+f-h,textAnchor:g,verticalAnchor:d},_):Yr(a)&&(q(a.x)||Gt(a.x))&&(q(a.y)||Gt(a.y))?Oe({x:u+Ie(a.x,s),y:c+Ie(a.y,f),textAnchor:"end",verticalAnchor:"end"},_):Oe({x:u+s/2,y:c+f/2,textAnchor:"middle",verticalAnchor:"middle"},_)},XM=function(t){return"cx"in t&&q(t.cx)};function Te(e){var t=e.offset,r=t===void 0?5:t,n=LM(e,IM),i=Oe({offset:r},n),a=i.viewBox,o=i.position,u=i.value,c=i.children,s=i.content,f=i.className,l=f===void 0?"":f,h=i.textBreakAll;if(!a||Y(u)&&Y(c)&&!N.isValidElement(s)&&!X(s))return null;if(N.isValidElement(s))return N.cloneElement(s,i);var d;if(X(s)){if(d=N.createElement(s,i),N.isValidElement(d))return d}else d=UM(i);var y=XM(a),v=H(i,!0);if(y&&(o==="insideStart"||o==="insideEnd"||o==="end"))return KM(i,d,v);var p=y?GM(i):VM(i);return S.createElement(rr,Wn({className:J("recharts-label",l)},v,p,{breakAll:h}),d)}Te.displayName="Label";var nw=function(t){var r=t.cx,n=t.cy,i=t.angle,a=t.startAngle,o=t.endAngle,u=t.r,c=t.radius,s=t.innerRadius,f=t.outerRadius,l=t.x,h=t.y,d=t.top,y=t.left,v=t.width,p=t.height,g=t.clockWise,x=t.labelViewBox;if(x)return x;if(q(v)&&q(p)){if(q(l)&&q(h))return{x:l,y:h,width:v,height:p};if(q(d)&&q(y))return{x:d,y,width:v,height:p}}return q(l)&&q(h)?{x:l,y:h,width:0,height:0}:q(r)&&q(n)?{cx:r,cy:n,startAngle:a||i||0,endAngle:o||i||0,innerRadius:s||0,outerRadius:f||c||u||0,clockWise:g}:t.viewBox?t.viewBox:{}},YM=function(t,r){return t?t===!0?S.createElement(Te,{key:"label-implicit",viewBox:r}):Ae(t)?S.createElement(Te,{key:"label-implicit",viewBox:r,value:t}):N.isValidElement(t)?t.type===Te?N.cloneElement(t,{key:"label-implicit",viewBox:r}):S.createElement(Te,{key:"label-implicit",content:t,viewBox:r}):X(t)?S.createElement(Te,{key:"label-implicit",content:t,viewBox:r}):Yr(t)?S.createElement(Te,Wn({viewBox:r},t,{key:"label-implicit"})):null:null},ZM=function(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&n&&!t.label)return null;var i=t.children,a=nw(t),o=Ke(i,Te).map(function(c,s){return N.cloneElement(c,{viewBox:r||a,key:"label-".concat(s)})});if(!n)return o;var u=YM(t.label,r||a);return[u].concat(kM(o))};Te.parseViewBox=nw;Te.renderCallByParent=ZM;var Ls,Um;function JM(){if(Um)return Ls;Um=1;function e(t){var r=t==null?0:t.length;return r?t[r-1]:void 0}return Ls=e,Ls}var QM=JM();const e$=oe(QM);function zn(e){"@babel/helpers - typeof";return zn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zn(e)}var t$=["valueAccessor"],r$=["data","dataKey","clockWise","id","textBreakAll"];function n$(e){return u$(e)||o$(e)||a$(e)||i$()}function i$(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function a$(e,t){if(e){if(typeof e=="string")return Jl(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Jl(e,t)}}function o$(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function u$(e){if(Array.isArray(e))return Jl(e)}function Jl(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function f$(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var h$=function(t){return Array.isArray(t.value)?e$(t.value):t.value};function wt(e){var t=e.valueAccessor,r=t===void 0?h$:t,n=Gm(e,t$),i=n.data,a=n.dataKey,o=n.clockWise,u=n.id,c=n.textBreakAll,s=Gm(n,r$);return!i||!i.length?null:S.createElement(te,{className:"recharts-label-list"},i.map(function(f,l){var h=Y(a)?r(f,l):_e(f&&f.payload,a),d=Y(u)?{}:{id:"".concat(u,"-").concat(l)};return S.createElement(Te,na({},H(f,!0),s,d,{parentViewBox:f.parentViewBox,value:h,textBreakAll:c,viewBox:Te.parseViewBox(Y(o)?f:Km(Km({},f),{},{clockWise:o})),key:"label-".concat(l),index:l}))}))}wt.displayName="LabelList";function p$(e,t){return e?e===!0?S.createElement(wt,{key:"labelList-implicit",data:t}):S.isValidElement(e)||X(e)?S.createElement(wt,{key:"labelList-implicit",data:t,content:e}):Yr(e)?S.createElement(wt,na({data:t},e,{key:"labelList-implicit"})):null:null}function d$(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&r&&!e.label)return null;var n=e.children,i=Ke(n,wt).map(function(o,u){return N.cloneElement(o,{data:t,key:"labelList-".concat(u)})});if(!r)return i;var a=p$(e.label,t);return[a].concat(n$(i))}wt.renderCallByParent=d$;function Un(e){"@babel/helpers - typeof";return Un=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Un(e)}function Ql(){return Ql=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(o>s),`, + `).concat(l.x,",").concat(l.y,` + `);if(i>0){var d=le(r,n,i,o),y=le(r,n,i,s);h+="L ".concat(y.x,",").concat(y.y,` + A `).concat(i,",").concat(i,`,0, + `).concat(+(Math.abs(c)>180),",").concat(+(o<=s),`, + `).concat(d.x,",").concat(d.y," Z")}else h+="L ".concat(r,",").concat(n," Z");return h},b$=function(t){var r=t.cx,n=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,u=t.forceCornerRadius,c=t.cornerIsExternal,s=t.startAngle,f=t.endAngle,l=Ce(f-s),h=Ai({cx:r,cy:n,radius:a,angle:s,sign:l,cornerRadius:o,cornerIsExternal:c}),d=h.circleTangency,y=h.lineTangency,v=h.theta,p=Ai({cx:r,cy:n,radius:a,angle:f,sign:-l,cornerRadius:o,cornerIsExternal:c}),g=p.circleTangency,x=p.lineTangency,w=p.theta,O=c?Math.abs(s-f):Math.abs(s-f)-v-w;if(O<0)return u?"M ".concat(y.x,",").concat(y.y,` + a`).concat(o,",").concat(o,",0,0,1,").concat(o*2,`,0 + a`).concat(o,",").concat(o,",0,0,1,").concat(-o*2,`,0 + `):iw({cx:r,cy:n,innerRadius:i,outerRadius:a,startAngle:s,endAngle:f});var m="M ".concat(y.x,",").concat(y.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(d.x,",").concat(d.y,` + A`).concat(a,",").concat(a,",0,").concat(+(O>180),",").concat(+(l<0),",").concat(g.x,",").concat(g.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(x.x,",").concat(x.y,` + `);if(i>0){var b=Ai({cx:r,cy:n,radius:i,angle:s,sign:l,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),_=b.circleTangency,A=b.lineTangency,T=b.theta,M=Ai({cx:r,cy:n,radius:i,angle:f,sign:-l,isExternal:!0,cornerRadius:o,cornerIsExternal:c}),P=M.circleTangency,E=M.lineTangency,j=M.theta,C=c?Math.abs(s-f):Math.abs(s-f)-T-j;if(C<0&&o===0)return"".concat(m,"L").concat(r,",").concat(n,"Z");m+="L".concat(E.x,",").concat(E.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(P.x,",").concat(P.y,` + A`).concat(i,",").concat(i,",0,").concat(+(C>180),",").concat(+(l>0),",").concat(_.x,",").concat(_.y,` + A`).concat(o,",").concat(o,",0,0,").concat(+(l<0),",").concat(A.x,",").concat(A.y,"Z")}else m+="L".concat(r,",").concat(n,"Z");return m},x$={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},aw=function(t){var r=Xm(Xm({},x$),t),n=r.cx,i=r.cy,a=r.innerRadius,o=r.outerRadius,u=r.cornerRadius,c=r.forceCornerRadius,s=r.cornerIsExternal,f=r.startAngle,l=r.endAngle,h=r.className;if(o0&&Math.abs(f-l)<360?p=b$({cx:n,cy:i,innerRadius:a,outerRadius:o,cornerRadius:Math.min(v,y/2),forceCornerRadius:c,cornerIsExternal:s,startAngle:f,endAngle:l}):p=iw({cx:n,cy:i,innerRadius:a,outerRadius:o,startAngle:f,endAngle:l}),S.createElement("path",Ql({},H(r,!0),{className:d,d:p,role:"img"}))};function Hn(e){"@babel/helpers - typeof";return Hn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Hn(e)}function ef(){return ef=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!r.equals(e[n],t[n],n,n,e,t,r))return!1;return!0}function L$(e,t){return sr(e.getTime(),t.getTime())}function B$(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function F$(e,t){return e===t}function og(e,t,r){var n=e.size;if(n!==t.size)return!1;if(!n)return!0;for(var i=new Array(n),a=e.entries(),o,u,c=0;(o=a.next())&&!o.done;){for(var s=t.entries(),f=!1,l=0;(u=s.next())&&!u.done;){if(i[l]){l++;continue}var h=o.value,d=u.value;if(r.equals(h[0],d[0],c,l,e,t,r)&&r.equals(h[1],d[1],h[0],d[0],e,t,r)){f=i[l]=!0;break}l++}if(!f)return!1;c++}return!0}var W$=sr;function z$(e,t,r){var n=ag(e),i=n.length;if(ag(t).length!==i)return!1;for(;i-- >0;)if(!ow(e,t,r,n[i]))return!1;return!0}function hn(e,t,r){var n=ng(e),i=n.length;if(ng(t).length!==i)return!1;for(var a,o,u;i-- >0;)if(a=n[i],!ow(e,t,r,a)||(o=ig(e,a),u=ig(t,a),(o||u)&&(!o||!u||o.configurable!==u.configurable||o.enumerable!==u.enumerable||o.writable!==u.writable)))return!1;return!0}function U$(e,t){return sr(e.valueOf(),t.valueOf())}function H$(e,t){return e.source===t.source&&e.flags===t.flags}function ug(e,t,r){var n=e.size;if(n!==t.size)return!1;if(!n)return!0;for(var i=new Array(n),a=e.values(),o,u;(o=a.next())&&!o.done;){for(var c=t.values(),s=!1,f=0;(u=c.next())&&!u.done;){if(!i[f]&&r.equals(o.value,u.value,o.value,u.value,e,t,r)){s=i[f]=!0;break}f++}if(!s)return!1}return!0}function K$(e,t){var r=e.length;if(t.length!==r)return!1;for(;r-- >0;)if(e[r]!==t[r])return!1;return!0}function G$(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function ow(e,t,r,n){return(n===N$||n===D$||n===R$)&&(e.$$typeof||t.$$typeof)?!0:k$(t,n)&&r.equals(e[n],t[n],n,n,e,t,r)}var V$="[object Arguments]",X$="[object Boolean]",Y$="[object Date]",Z$="[object Error]",J$="[object Map]",Q$="[object Number]",eC="[object Object]",tC="[object RegExp]",rC="[object Set]",nC="[object String]",iC="[object URL]",aC=Array.isArray,cg=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,sg=Object.assign,oC=Object.prototype.toString.call.bind(Object.prototype.toString);function uC(e){var t=e.areArraysEqual,r=e.areDatesEqual,n=e.areErrorsEqual,i=e.areFunctionsEqual,a=e.areMapsEqual,o=e.areNumbersEqual,u=e.areObjectsEqual,c=e.arePrimitiveWrappersEqual,s=e.areRegExpsEqual,f=e.areSetsEqual,l=e.areTypedArraysEqual,h=e.areUrlsEqual,d=e.unknownTagComparators;return function(v,p,g){if(v===p)return!0;if(v==null||p==null)return!1;var x=typeof v;if(x!==typeof p)return!1;if(x!=="object")return x==="number"?o(v,p,g):x==="function"?i(v,p,g):!1;var w=v.constructor;if(w!==p.constructor)return!1;if(w===Object)return u(v,p,g);if(aC(v))return t(v,p,g);if(cg!=null&&cg(v))return l(v,p,g);if(w===Date)return r(v,p,g);if(w===RegExp)return s(v,p,g);if(w===Map)return a(v,p,g);if(w===Set)return f(v,p,g);var O=oC(v);if(O===Y$)return r(v,p,g);if(O===tC)return s(v,p,g);if(O===J$)return a(v,p,g);if(O===rC)return f(v,p,g);if(O===eC)return typeof v.then!="function"&&typeof p.then!="function"&&u(v,p,g);if(O===iC)return h(v,p,g);if(O===Z$)return n(v,p,g);if(O===V$)return u(v,p,g);if(O===X$||O===Q$||O===nC)return c(v,p,g);if(d){var m=d[O];if(!m){var b=I$(v);b&&(m=d[b])}if(m)return m(v,p,g)}return!1}}function cC(e){var t=e.circular,r=e.createCustomConfig,n=e.strict,i={areArraysEqual:n?hn:q$,areDatesEqual:L$,areErrorsEqual:B$,areFunctionsEqual:F$,areMapsEqual:n?rg(og,hn):og,areNumbersEqual:W$,areObjectsEqual:n?hn:z$,arePrimitiveWrappersEqual:U$,areRegExpsEqual:H$,areSetsEqual:n?rg(ug,hn):ug,areTypedArraysEqual:n?hn:K$,areUrlsEqual:G$,unknownTagComparators:void 0};if(r&&(i=sg({},i,r(i))),t){var a=Pi(i.areArraysEqual),o=Pi(i.areMapsEqual),u=Pi(i.areObjectsEqual),c=Pi(i.areSetsEqual);i=sg({},i,{areArraysEqual:a,areMapsEqual:o,areObjectsEqual:u,areSetsEqual:c})}return i}function sC(e){return function(t,r,n,i,a,o,u){return e(t,r,u)}}function lC(e){var t=e.circular,r=e.comparator,n=e.createState,i=e.equals,a=e.strict;if(n)return function(c,s){var f=n(),l=f.cache,h=l===void 0?t?new WeakMap:void 0:l,d=f.meta;return r(c,s,{cache:h,equals:i,meta:d,strict:a})};if(t)return function(c,s){return r(c,s,{cache:new WeakMap,equals:i,meta:void 0,strict:a})};var o={cache:void 0,equals:i,meta:void 0,strict:a};return function(c,s){return r(c,s,o)}}var fC=Dt();Dt({strict:!0});Dt({circular:!0});Dt({circular:!0,strict:!0});Dt({createInternalComparator:function(){return sr}});Dt({strict:!0,createInternalComparator:function(){return sr}});Dt({circular:!0,createInternalComparator:function(){return sr}});Dt({circular:!0,createInternalComparator:function(){return sr},strict:!0});function Dt(e){e===void 0&&(e={});var t=e.circular,r=t===void 0?!1:t,n=e.createInternalComparator,i=e.createState,a=e.strict,o=a===void 0?!1:a,u=cC(e),c=uC(u),s=n?n(c):sC(c);return lC({circular:r,comparator:c,createState:i,equals:s,strict:o})}function hC(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function lg(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,r=-1,n=function i(a){r<0&&(r=a),a-r>t?(e(a),r=-1):hC(i)};requestAnimationFrame(n)}function tf(e){"@babel/helpers - typeof";return tf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},tf(e)}function pC(e){return mC(e)||yC(e)||vC(e)||dC()}function dC(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vC(e,t){if(e){if(typeof e=="string")return fg(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return fg(e,t)}}function fg(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r1?1:g<0?0:g},v=function(g){for(var x=g>1?1:g,w=x,O=0;O<8;++O){var m=l(w)-x,b=d(w);if(Math.abs(m-x)0&&arguments[0]!==void 0?arguments[0]:{},r=t.stiff,n=r===void 0?100:r,i=t.damping,a=i===void 0?8:i,o=t.dt,u=o===void 0?17:o,c=function(f,l,h){var d=-(f-l)*n,y=h*a,v=h+(d-y)*u/1e3,p=h*u/1e3+f;return Math.abs(p-l)e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function VC(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a=0)&&(r[i]=e[i]);return r}function zs(e){return JC(e)||ZC(e)||YC(e)||XC()}function XC(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function YC(e,t){if(e){if(typeof e=="string")return uf(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return uf(e,t)}}function ZC(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function JC(e){if(Array.isArray(e))return uf(e)}function uf(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ua(e){return ua=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},ua(e)}var lt=(function(e){nI(r,e);var t=iI(r);function r(n,i){var a;QC(this,r),a=t.call(this,n,i);var o=a.props,u=o.isActive,c=o.attributeName,s=o.from,f=o.to,l=o.steps,h=o.children,d=o.duration;if(a.handleStyleChange=a.handleStyleChange.bind(lf(a)),a.changeStyle=a.changeStyle.bind(lf(a)),!u||d<=0)return a.state={style:{}},typeof h=="function"&&(a.state={style:f}),sf(a);if(l&&l.length)a.state={style:l[0].style};else if(s){if(typeof h=="function")return a.state={style:s},sf(a);a.state={style:c?yn({},c,s):s}}else a.state={style:{}};return a}return tI(r,[{key:"componentDidMount",value:function(){var i=this.props,a=i.isActive,o=i.canBegin;this.mounted=!0,!(!a||!o)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(i){var a=this.props,o=a.isActive,u=a.canBegin,c=a.attributeName,s=a.shouldReAnimate,f=a.to,l=a.from,h=this.state.style;if(u){if(!o){var d={style:c?yn({},c,f):f};this.state&&h&&(c&&h[c]!==f||!c&&h!==f)&&this.setState(d);return}if(!(fC(i.to,f)&&i.canBegin&&i.isActive)){var y=!i.canBegin||!i.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var v=y||s?l:i.to;if(this.state&&h){var p={style:c?yn({},c,v):v};(c&&h[c]!==v||!c&&h!==v)&&this.setState(p)}this.runAnimation(et(et({},this.props),{},{from:v,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var i=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),i&&i()}},{key:"handleStyleChange",value:function(i){this.changeStyle(i)}},{key:"changeStyle",value:function(i){this.mounted&&this.setState({style:i})}},{key:"runJSAnimation",value:function(i){var a=this,o=i.from,u=i.to,c=i.duration,s=i.easing,f=i.begin,l=i.onAnimationEnd,h=i.onAnimationStart,d=HC(o,u,kC(s),c,this.changeStyle),y=function(){a.stopJSAnimation=d()};this.manager.start([h,f,y,c,l])}},{key:"runStepAnimation",value:function(i){var a=this,o=i.steps,u=i.begin,c=i.onAnimationStart,s=o[0],f=s.style,l=s.duration,h=l===void 0?0:l,d=function(v,p,g){if(g===0)return v;var x=p.duration,w=p.easing,O=w===void 0?"ease":w,m=p.style,b=p.properties,_=p.onAnimationEnd,A=g>0?o[g-1]:p,T=b||Object.keys(m);if(typeof O=="function"||O==="spring")return[].concat(zs(v),[a.runJSAnimation.bind(a,{from:A.style,to:m,duration:x,easing:O}),x]);var M=dg(T,x,O),P=et(et(et({},A.style),m),{},{transition:M});return[].concat(zs(v),[P,x,_]).filter(OC)};return this.manager.start([c].concat(zs(o.reduce(d,[f,Math.max(h,u)])),[i.onAnimationEnd]))}},{key:"runAnimation",value:function(i){this.manager||(this.manager=gC());var a=i.begin,o=i.duration,u=i.attributeName,c=i.to,s=i.easing,f=i.onAnimationStart,l=i.onAnimationEnd,h=i.steps,d=i.children,y=this.manager;if(this.unSubscribe=y.subscribe(this.handleStyleChange),typeof s=="function"||typeof d=="function"||s==="spring"){this.runJSAnimation(i);return}if(h.length>1){this.runStepAnimation(i);return}var v=u?yn({},u,c):c,p=dg(Object.keys(v),o,s);y.start([f,a,et(et({},v),{},{transition:p}),o,l])}},{key:"render",value:function(){var i=this.props,a=i.children;i.begin;var o=i.duration;i.attributeName,i.easing;var u=i.isActive;i.steps,i.from,i.to,i.canBegin,i.onAnimationEnd,i.shouldReAnimate,i.onAnimationReStart;var c=GC(i,KC),s=N.Children.count(a),f=this.state.style;if(typeof a=="function")return a(f);if(!u||s===0||o<=0)return a;var l=function(d){var y=d.props,v=y.style,p=v===void 0?{}:v,g=y.className,x=N.cloneElement(d,et(et({},c),{},{style:et(et({},p),f),className:g}));return x};return s===1?l(N.Children.only(a)):S.createElement("div",null,N.Children.map(a,function(h){return l(h)}))}}]),r})(N.PureComponent);lt.displayName="Animate";lt.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};lt.propTypes={from:ie.oneOfType([ie.object,ie.string]),to:ie.oneOfType([ie.object,ie.string]),attributeName:ie.string,duration:ie.number,begin:ie.number,easing:ie.oneOfType([ie.string,ie.func]),steps:ie.arrayOf(ie.shape({duration:ie.number.isRequired,style:ie.object.isRequired,easing:ie.oneOfType([ie.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),ie.func]),properties:ie.arrayOf("string"),onAnimationEnd:ie.func})),children:ie.oneOfType([ie.node,ie.func]),isActive:ie.bool,canBegin:ie.bool,onAnimationEnd:ie.func,shouldReAnimate:ie.bool,onAnimationStart:ie.func,onAnimationReStart:ie.func};function Vn(e){"@babel/helpers - typeof";return Vn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Vn(e)}function ca(){return ca=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0?1:-1,c=n>=0?1:-1,s=i>=0&&n>=0||i<0&&n<0?1:0,f;if(o>0&&a instanceof Array){for(var l=[0,0,0,0],h=0,d=4;ho?o:a[h];f="M".concat(t,",").concat(r+u*l[0]),l[0]>0&&(f+="A ".concat(l[0],",").concat(l[0],",0,0,").concat(s,",").concat(t+c*l[0],",").concat(r)),f+="L ".concat(t+n-c*l[1],",").concat(r),l[1]>0&&(f+="A ".concat(l[1],",").concat(l[1],",0,0,").concat(s,`, + `).concat(t+n,",").concat(r+u*l[1])),f+="L ".concat(t+n,",").concat(r+i-u*l[2]),l[2]>0&&(f+="A ".concat(l[2],",").concat(l[2],",0,0,").concat(s,`, + `).concat(t+n-c*l[2],",").concat(r+i)),f+="L ".concat(t+c*l[3],",").concat(r+i),l[3]>0&&(f+="A ".concat(l[3],",").concat(l[3],",0,0,").concat(s,`, + `).concat(t,",").concat(r+i-u*l[3])),f+="Z"}else if(o>0&&a===+a&&a>0){var y=Math.min(o,a);f="M ".concat(t,",").concat(r+u*y,` + A `).concat(y,",").concat(y,",0,0,").concat(s,",").concat(t+c*y,",").concat(r,` + L `).concat(t+n-c*y,",").concat(r,` + A `).concat(y,",").concat(y,",0,0,").concat(s,",").concat(t+n,",").concat(r+u*y,` + L `).concat(t+n,",").concat(r+i-u*y,` + A `).concat(y,",").concat(y,",0,0,").concat(s,",").concat(t+n-c*y,",").concat(r+i,` + L `).concat(t+c*y,",").concat(r+i,` + A `).concat(y,",").concat(y,",0,0,").concat(s,",").concat(t,",").concat(r+i-u*y," Z")}else f="M ".concat(t,",").concat(r," h ").concat(n," v ").concat(i," h ").concat(-n," Z");return f},dI=function(t,r){if(!t||!r)return!1;var n=t.x,i=t.y,a=r.x,o=r.y,u=r.width,c=r.height;if(Math.abs(u)>0&&Math.abs(c)>0){var s=Math.min(a,a+u),f=Math.max(a,a+u),l=Math.min(o,o+c),h=Math.max(o,o+c);return n>=s&&n<=f&&i>=l&&i<=h}return!1},vI={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Ch=function(t){var r=Og(Og({},vI),t),n=N.useRef(),i=N.useState(-1),a=oI(i,2),o=a[0],u=a[1];N.useEffect(function(){if(n.current&&n.current.getTotalLength)try{var O=n.current.getTotalLength();O&&u(O)}catch{}},[]);var c=r.x,s=r.y,f=r.width,l=r.height,h=r.radius,d=r.className,y=r.animationEasing,v=r.animationDuration,p=r.animationBegin,g=r.isAnimationActive,x=r.isUpdateAnimationActive;if(c!==+c||s!==+s||f!==+f||l!==+l||f===0||l===0)return null;var w=J("recharts-rectangle",d);return x?S.createElement(lt,{canBegin:o>0,from:{width:f,height:l,x:c,y:s},to:{width:f,height:l,x:c,y:s},duration:v,animationEasing:y,isActive:x},function(O){var m=O.width,b=O.height,_=O.x,A=O.y;return S.createElement(lt,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:p,duration:v,isActive:g,easing:y},S.createElement("path",ca({},H(r,!0),{className:w,d:_g(_,A,m,b,h),ref:n})))}):S.createElement("path",ca({},H(r,!0),{className:w,d:_g(c,s,f,l,h)}))},yI=["points","className","baseLinePoints","connectNulls"];function yr(){return yr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function gI(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Ag(e){return OI(e)||wI(e)||xI(e)||bI()}function bI(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xI(e,t){if(e){if(typeof e=="string")return ff(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ff(e,t)}}function wI(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function OI(e){if(Array.isArray(e))return ff(e)}function ff(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&arguments[0]!==void 0?arguments[0]:[],r=[[]];return t.forEach(function(n){Sg(n)?r[r.length-1].push(n):r[r.length-1].length>0&&r.push([])}),Sg(t[0])&&r[r.length-1].push(t[0]),r[r.length-1].length<=0&&(r=r.slice(0,-1)),r},wn=function(t,r){var n=_I(t);r&&(n=[n.reduce(function(a,o){return[].concat(Ag(a),Ag(o))},[])]);var i=n.map(function(a){return a.reduce(function(o,u,c){return"".concat(o).concat(c===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return n.length===1?"".concat(i,"Z"):i},AI=function(t,r,n){var i=wn(t,n);return"".concat(i.slice(-1)==="Z"?i.slice(0,-1):i,"L").concat(wn(r.reverse(),n).slice(1))},SI=function(t){var r=t.points,n=t.className,i=t.baseLinePoints,a=t.connectNulls,o=mI(t,yI);if(!r||!r.length)return null;var u=J("recharts-polygon",n);if(i&&i.length){var c=o.stroke&&o.stroke!=="none",s=AI(r,i,a);return S.createElement("g",{className:u},S.createElement("path",yr({},H(o,!0),{fill:s.slice(-1)==="Z"?o.fill:"none",stroke:"none",d:s})),c?S.createElement("path",yr({},H(o,!0),{fill:"none",d:wn(r,a)})):null,c?S.createElement("path",yr({},H(o,!0),{fill:"none",d:wn(i,a)})):null)}var f=wn(r,a);return S.createElement("path",yr({},H(o,!0),{fill:f.slice(-1)==="Z"?o.fill:"none",className:u,d:f}))};function hf(){return hf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function CI(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var II=function(t,r,n,i,a,o){return"M".concat(t,",").concat(a,"v").concat(i,"M").concat(o,",").concat(r,"h").concat(n)},kI=function(t){var r=t.x,n=r===void 0?0:r,i=t.y,a=i===void 0?0:i,o=t.top,u=o===void 0?0:o,c=t.left,s=c===void 0?0:c,f=t.width,l=f===void 0?0:f,h=t.height,d=h===void 0?0:h,y=t.className,v=$I(t,PI),p=TI({x:n,y:a,top:u,left:s,width:l,height:d},v);return!q(n)||!q(a)||!q(l)||!q(d)||!q(u)||!q(s)?null:S.createElement("path",pf({},H(p,!0),{className:J("recharts-cross",y),d:II(n,a,l,d,u,s)}))},Us,Tg;function RI(){if(Tg)return Us;Tg=1;var e=Ka(),t=Tx(),r=ht();function n(i,a){return i&&i.length?e(i,r(a,2),t):void 0}return Us=n,Us}var DI=RI();const NI=oe(DI);var Hs,Eg;function qI(){if(Eg)return Hs;Eg=1;var e=Ka(),t=ht(),r=Ex();function n(i,a){return i&&i.length?e(i,t(a,2),r):void 0}return Hs=n,Hs}var LI=qI();const BI=oe(LI);var FI=["cx","cy","angle","ticks","axisLine"],WI=["ticks","tick","angle","tickFormatter","stroke"];function kr(e){"@babel/helpers - typeof";return kr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},kr(e)}function On(){return On=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function zI(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function UI(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $g(e,t){for(var r=0;rkg?o=i==="outer"?"start":"end":a<-kg?o=i==="outer"?"end":"start":o="middle",o}},{key:"renderAxisLine",value:function(){var n=this.props,i=n.cx,a=n.cy,o=n.radius,u=n.axisLine,c=n.axisLineType,s=zt(zt({},H(this.props,!1)),{},{fill:"none"},H(u,!1));if(c==="circle")return S.createElement(Za,Kt({className:"recharts-polar-angle-axis-line"},s,{cx:i,cy:a,r:o}));var f=this.props.ticks,l=f.map(function(h){return le(i,a,o,h.coordinate)});return S.createElement(SI,Kt({className:"recharts-polar-angle-axis-line"},s,{points:l}))}},{key:"renderTicks",value:function(){var n=this,i=this.props,a=i.ticks,o=i.tick,u=i.tickLine,c=i.tickFormatter,s=i.stroke,f=H(this.props,!1),l=H(o,!1),h=zt(zt({},f),{},{fill:"none"},H(u,!1)),d=a.map(function(y,v){var p=n.getTickLineCoord(y),g=n.getTickTextAnchor(y),x=zt(zt(zt({textAnchor:g},f),{},{stroke:"none",fill:s},l),{},{index:v,payload:y,x:p.x2,y:p.y2});return S.createElement(te,Kt({className:J("recharts-polar-angle-axis-tick",rw(o)),key:"tick-".concat(y.coordinate)},tr(n.props,y,v)),u&&S.createElement("line",Kt({className:"recharts-polar-angle-axis-tick-line"},h,p)),o&&t.renderTickItem(o,x,c?c(y.value,v):y.value))});return S.createElement(te,{className:"recharts-polar-angle-axis-ticks"},d)}},{key:"render",value:function(){var n=this.props,i=n.ticks,a=n.radius,o=n.axisLine;return a<=0||!i||!i.length?null:S.createElement(te,{className:J("recharts-polar-angle-axis",this.props.className)},o&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(n,i,a){var o;return S.isValidElement(n)?o=S.cloneElement(n,i):X(n)?o=n(i):o=S.createElement(rr,Kt({},i,{className:"recharts-polar-angle-axis-tick-value"}),a),o}}])})(N.PureComponent);eo(to,"displayName","PolarAngleAxis");eo(to,"axisType","angleAxis");eo(to,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var Ks,Rg;function ak(){if(Rg)return Ks;Rg=1;var e=P0(),t=e(Object.getPrototypeOf,Object);return Ks=t,Ks}var Gs,Dg;function ok(){if(Dg)return Gs;Dg=1;var e=St(),t=ak(),r=Pt(),n="[object Object]",i=Function.prototype,a=Object.prototype,o=i.toString,u=a.hasOwnProperty,c=o.call(Object);function s(f){if(!r(f)||e(f)!=n)return!1;var l=t(f);if(l===null)return!0;var h=u.call(l,"constructor")&&l.constructor;return typeof h=="function"&&h instanceof h&&o.call(h)==c}return Gs=s,Gs}var uk=ok();const ck=oe(uk);var Vs,Ng;function sk(){if(Ng)return Vs;Ng=1;var e=St(),t=Pt(),r="[object Boolean]";function n(i){return i===!0||i===!1||t(i)&&e(i)==r}return Vs=n,Vs}var lk=sk();const fk=oe(lk);function Yn(e){"@babel/helpers - typeof";return Yn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Yn(e)}function fa(){return fa=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0,from:{upperWidth:0,lowerWidth:0,height:h,x:c,y:s},to:{upperWidth:f,lowerWidth:l,height:h,x:c,y:s},duration:v,animationEasing:y,isActive:g},function(w){var O=w.upperWidth,m=w.lowerWidth,b=w.height,_=w.x,A=w.y;return S.createElement(lt,{canBegin:o>0,from:"0px ".concat(o===-1?1:o,"px"),to:"".concat(o,"px 0px"),attributeName:"strokeDasharray",begin:p,duration:v,easing:y},S.createElement("path",fa({},H(r,!0),{className:x,d:Fg(_,A,O,m,b),ref:n})))}):S.createElement("g",null,S.createElement("path",fa({},H(r,!0),{className:x,d:Fg(c,s,f,l,h)})))},Ok=["option","shapeType","propTransformer","activeClassName","isActive"];function Zn(e){"@babel/helpers - typeof";return Zn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Zn(e)}function _k(e,t){if(e==null)return{};var r=Ak(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function Ak(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function Wg(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ha(e){for(var t=1;t0?He(w,"paddingAngle",0):0;if(m){var _=ze(m.endAngle-m.startAngle,w.endAngle-w.startAngle),A=ce(ce({},w),{},{startAngle:x+b,endAngle:x+_(v)+b});p.push(A),x=A.endAngle}else{var T=w.endAngle,M=w.startAngle,P=ze(0,T-M),E=P(v),j=ce(ce({},w),{},{startAngle:x+b,endAngle:x+E+b});p.push(j),x=j.endAngle}}),S.createElement(te,null,n.renderSectorsStatically(p))})}},{key:"attachKeyboardHandlers",value:function(n){var i=this;n.onkeydown=function(a){if(!a.altKey)switch(a.key){case"ArrowLeft":{var o=++i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[o].focus(),i.setState({sectorToFocus:o});break}case"ArrowRight":{var u=--i.state.sectorToFocus<0?i.sectorRefs.length-1:i.state.sectorToFocus%i.sectorRefs.length;i.sectorRefs[u].focus(),i.setState({sectorToFocus:u});break}case"Escape":{i.sectorRefs[i.state.sectorToFocus].blur(),i.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var n=this.props,i=n.sectors,a=n.isAnimationActive,o=this.state.prevSectors;return a&&i&&i.length&&(!o||!hi(o,i))?this.renderSectorsWithAnimation():this.renderSectorsStatically(i)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var n=this,i=this.props,a=i.hide,o=i.sectors,u=i.className,c=i.label,s=i.cx,f=i.cy,l=i.innerRadius,h=i.outerRadius,d=i.isAnimationActive,y=this.state.isAnimationFinished;if(a||!o||!o.length||!q(s)||!q(f)||!q(l)||!q(h))return null;var v=J("recharts-pie",u);return S.createElement(te,{tabIndex:this.props.rootTabIndex,className:v,ref:function(g){n.pieRef=g}},this.renderSectors(),c&&this.renderLabels(o),Te.renderCallByParent(this.props,null,!1),(!d||y)&&wt.renderCallByParent(this.props,o,!1))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return i.prevIsAnimationActive!==n.isAnimationActive?{prevIsAnimationActive:n.isAnimationActive,prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:[],isAnimationFinished:!0}:n.isAnimationActive&&n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curSectors:n.sectors,prevSectors:i.curSectors,isAnimationFinished:!0}:n.sectors!==i.curSectors?{curSectors:n.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(n,i){return n>i?"start":n=360?x:x-1)*c,O=p-x*d-w,m=i.reduce(function(A,T){var M=_e(T,g,0);return A+(q(M)?M:0)},0),b;if(m>0){var _;b=i.map(function(A,T){var M=_e(A,g,0),P=_e(A,f,T),E=(q(M)?M:0)/m,j;T?j=_.endAngle+Ce(v)*c*(M!==0?1:0):j=o;var C=j+Ce(v)*((M!==0?d:0)+E*O),$=(j+C)/2,k=(y.innerRadius+y.outerRadius)/2,R=[{name:P,value:M,payload:A,dataKey:g,type:h}],L=le(y.cx,y.cy,k,$);return _=ce(ce(ce({percent:E,cornerRadius:a,name:P,tooltipPayload:R,midAngle:$,middleRadius:k,tooltipPosition:L},A),y),{},{value:_e(A,g),startAngle:j,endAngle:C,payload:A,paddingAngle:Ce(v)*c}),_})}return ce(ce({},y),{},{sectors:b,data:i})});var Xs,Kg;function Hk(){if(Kg)return Xs;Kg=1;var e=Math.ceil,t=Math.max;function r(n,i,a,o){for(var u=-1,c=t(e((i-n)/(a||1)),0),s=Array(c);c--;)s[o?c:++u]=n,n+=a;return s}return Xs=r,Xs}var Ys,Gg;function xw(){if(Gg)return Ys;Gg=1;var e=W0(),t=1/0,r=17976931348623157e292;function n(i){if(!i)return i===0?i:0;if(i=e(i),i===t||i===-t){var a=i<0?-1:1;return a*r}return i===i?i:0}return Ys=n,Ys}var Zs,Vg;function Kk(){if(Vg)return Zs;Vg=1;var e=Hk(),t=La(),r=xw();function n(i){return function(a,o,u){return u&&typeof u!="number"&&t(a,o,u)&&(o=u=void 0),a=r(a),o===void 0?(o=a,a=0):o=r(o),u=u===void 0?a0&&n.handleDrag(i.changedTouches[0])}),Fe(n,"handleDragEnd",function(){n.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var i=n.props,a=i.endIndex,o=i.onDragEnd,u=i.startIndex;o?.({endIndex:a,startIndex:u})}),n.detachDragEndListener()}),Fe(n,"handleLeaveWrapper",function(){(n.state.isTravellerMoving||n.state.isSlideMoving)&&(n.leaveTimer=window.setTimeout(n.handleDragEnd,n.props.leaveTimeOut))}),Fe(n,"handleEnterSlideOrTraveller",function(){n.setState({isTextActive:!0})}),Fe(n,"handleLeaveSlideOrTraveller",function(){n.setState({isTextActive:!1})}),Fe(n,"handleSlideDragStart",function(i){var a=eb(i)?i.changedTouches[0]:i;n.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:a.pageX}),n.attachDragEndListener()}),n.travellerDragStartHandlers={startX:n.handleTravellerDragStart.bind(n,"startX"),endX:n.handleTravellerDragStart.bind(n,"endX")},n.state={},n}return iR(t,e),eR(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(n){var i=n.startX,a=n.endX,o=this.state.scaleValues,u=this.props,c=u.gap,s=u.data,f=s.length-1,l=Math.min(i,a),h=Math.max(i,a),d=t.getIndexInRange(o,l),y=t.getIndexInRange(o,h);return{startIndex:d-d%c,endIndex:y===f?f:y-y%c}}},{key:"getTextOfTick",value:function(n){var i=this.props,a=i.data,o=i.tickFormatter,u=i.dataKey,c=_e(a[n],u,n);return X(o)?o(c,n):c}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(n){var i=this.state,a=i.slideMoveStartX,o=i.startX,u=i.endX,c=this.props,s=c.x,f=c.width,l=c.travellerWidth,h=c.startIndex,d=c.endIndex,y=c.onChange,v=n.pageX-a;v>0?v=Math.min(v,s+f-l-u,s+f-l-o):v<0&&(v=Math.max(v,s-o,s-u));var p=this.getIndex({startX:o+v,endX:u+v});(p.startIndex!==h||p.endIndex!==d)&&y&&y(p),this.setState({startX:o+v,endX:u+v,slideMoveStartX:n.pageX})}},{key:"handleTravellerDragStart",value:function(n,i){var a=eb(i)?i.changedTouches[0]:i;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:n,brushMoveStartX:a.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(n){var i=this.state,a=i.brushMoveStartX,o=i.movingTravellerId,u=i.endX,c=i.startX,s=this.state[o],f=this.props,l=f.x,h=f.width,d=f.travellerWidth,y=f.onChange,v=f.gap,p=f.data,g={startX:this.state.startX,endX:this.state.endX},x=n.pageX-a;x>0?x=Math.min(x,l+h-d-s):x<0&&(x=Math.max(x,l-s)),g[o]=s+x;var w=this.getIndex(g),O=w.startIndex,m=w.endIndex,b=function(){var A=p.length-1;return o==="startX"&&(u>c?O%v===0:m%v===0)||uc?m%v===0:O%v===0)||u>c&&m===A};this.setState(Fe(Fe({},o,s+x),"brushMoveStartX",n.pageX),function(){y&&b()&&y(w)})}},{key:"handleTravellerMoveKeyboard",value:function(n,i){var a=this,o=this.state,u=o.scaleValues,c=o.startX,s=o.endX,f=this.state[i],l=u.indexOf(f);if(l!==-1){var h=l+n;if(!(h===-1||h>=u.length)){var d=u[h];i==="startX"&&d>=s||i==="endX"&&d<=c||this.setState(Fe({},i,d),function(){a.props.onChange(a.getIndex({startX:a.state.startX,endX:a.state.endX}))})}}}},{key:"renderBackground",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,u=n.height,c=n.fill,s=n.stroke;return S.createElement("rect",{stroke:s,fill:c,x:i,y:a,width:o,height:u})}},{key:"renderPanorama",value:function(){var n=this.props,i=n.x,a=n.y,o=n.width,u=n.height,c=n.data,s=n.children,f=n.padding,l=N.Children.only(s);return l?S.cloneElement(l,{x:i,y:a,width:o,height:u,margin:f,compact:!0,data:c}):null}},{key:"renderTravellerLayer",value:function(n,i){var a,o,u=this,c=this.props,s=c.y,f=c.travellerWidth,l=c.height,h=c.traveller,d=c.ariaLabel,y=c.data,v=c.startIndex,p=c.endIndex,g=Math.max(n,this.props.x),x=Qs(Qs({},H(this.props,!1)),{},{x:g,y:s,width:f,height:l}),w=d||"Min value: ".concat((a=y[v])===null||a===void 0?void 0:a.name,", Max value: ").concat((o=y[p])===null||o===void 0?void 0:o.name);return S.createElement(te,{tabIndex:0,role:"slider","aria-label":w,"aria-valuenow":n,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[i],onTouchStart:this.travellerDragStartHandlers[i],onKeyDown:function(m){["ArrowLeft","ArrowRight"].includes(m.key)&&(m.preventDefault(),m.stopPropagation(),u.handleTravellerMoveKeyboard(m.key==="ArrowRight"?1:-1,i))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(h,x))}},{key:"renderSlide",value:function(n,i){var a=this.props,o=a.y,u=a.height,c=a.stroke,s=a.travellerWidth,f=Math.min(n,i)+s,l=Math.max(Math.abs(i-n)-s,0);return S.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:c,fillOpacity:.2,x:f,y:o,width:l,height:u})}},{key:"renderText",value:function(){var n=this.props,i=n.startIndex,a=n.endIndex,o=n.y,u=n.height,c=n.travellerWidth,s=n.stroke,f=this.state,l=f.startX,h=f.endX,d=5,y={pointerEvents:"none",fill:s};return S.createElement(te,{className:"recharts-brush-texts"},S.createElement(rr,va({textAnchor:"end",verticalAnchor:"middle",x:Math.min(l,h)-d,y:o+u/2},y),this.getTextOfTick(i)),S.createElement(rr,va({textAnchor:"start",verticalAnchor:"middle",x:Math.max(l,h)+c+d,y:o+u/2},y),this.getTextOfTick(a)))}},{key:"render",value:function(){var n=this.props,i=n.data,a=n.className,o=n.children,u=n.x,c=n.y,s=n.width,f=n.height,l=n.alwaysShowText,h=this.state,d=h.startX,y=h.endX,v=h.isTextActive,p=h.isSlideMoving,g=h.isTravellerMoving,x=h.isTravellerFocused;if(!i||!i.length||!q(u)||!q(c)||!q(s)||!q(f)||s<=0||f<=0)return null;var w=J("recharts-brush",a),O=S.Children.count(o)===1,m=Jk("userSelect","none");return S.createElement(te,{className:w,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:m},this.renderBackground(),O&&this.renderPanorama(),this.renderSlide(d,y),this.renderTravellerLayer(d,"startX"),this.renderTravellerLayer(y,"endX"),(v||p||g||x||l)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(n){var i=n.x,a=n.y,o=n.width,u=n.height,c=n.stroke,s=Math.floor(a+u/2)-1;return S.createElement(S.Fragment,null,S.createElement("rect",{x:i,y:a,width:o,height:u,fill:c,stroke:"none"}),S.createElement("line",{x1:i+1,y1:s,x2:i+o-1,y2:s,fill:"none",stroke:"#fff"}),S.createElement("line",{x1:i+1,y1:s+2,x2:i+o-1,y2:s+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(n,i){var a;return S.isValidElement(n)?a=S.cloneElement(n,i):X(n)?a=n(i):a=t.renderDefaultTraveller(i),a}},{key:"getDerivedStateFromProps",value:function(n,i){var a=n.data,o=n.width,u=n.x,c=n.travellerWidth,s=n.updateId,f=n.startIndex,l=n.endIndex;if(a!==i.prevData||s!==i.prevUpdateId)return Qs({prevData:a,prevTravellerWidth:c,prevUpdateId:s,prevX:u,prevWidth:o},a&&a.length?oR({data:a,width:o,x:u,travellerWidth:c,startIndex:f,endIndex:l}):{scale:null,scaleValues:null});if(i.scale&&(o!==i.prevWidth||u!==i.prevX||c!==i.prevTravellerWidth)){i.scale.range([u,u+o-c]);var h=i.scale.domain().map(function(d){return i.scale(d)});return{prevData:a,prevTravellerWidth:c,prevUpdateId:s,prevX:u,prevWidth:o,startX:i.scale(n.startIndex),endX:i.scale(n.endIndex),scaleValues:h}}return null}},{key:"getIndexInRange",value:function(n,i){for(var a=n.length,o=0,u=a-1;u-o>1;){var c=Math.floor((o+u)/2);n[c]>i?u=c:o=c}return i>=n[u]?u:o}}])})(N.PureComponent);Fe(qr,"displayName","Brush");Fe(qr,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var el,tb;function uR(){if(tb)return el;tb=1;var e=nh();function t(r,n){var i;return e(r,function(a,o,u){return i=n(a,o,u),!i}),!!i}return el=t,el}var tl,rb;function cR(){if(rb)return tl;rb=1;var e=b0(),t=ht(),r=uR(),n=qe(),i=La();function a(o,u,c){var s=n(o)?e:r;return c&&i(o,u,c)&&(u=void 0),s(o,t(u,3))}return tl=a,tl}var sR=cR();const lR=oe(sR);var ct=function(t,r){var n=t.alwaysShow,i=t.ifOverflow;return n&&(i="extendDomain"),i===r},rl,nb;function fR(){if(nb)return rl;nb=1;var e=N0();function t(r,n,i){n=="__proto__"&&e?e(r,n,{configurable:!0,enumerable:!0,value:i,writable:!0}):r[n]=i}return rl=t,rl}var nl,ib;function hR(){if(ib)return nl;ib=1;var e=fR(),t=R0(),r=ht();function n(i,a){var o={};return a=r(a,3),t(i,function(u,c,s){e(o,c,a(u,c,s))}),o}return nl=n,nl}var pR=hR();const dR=oe(pR);var il,ab;function vR(){if(ab)return il;ab=1;function e(t,r){for(var n=-1,i=t==null?0:t.length;++n=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function AR(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function SR(e,t){var r=e.x,n=e.y,i=_R(e,bR),a="".concat(r),o=parseInt(a,10),u="".concat(n),c=parseInt(u,10),s="".concat(t.height||i.height),f=parseInt(s,10),l="".concat(t.width||i.width),h=parseInt(l,10);return pn(pn(pn(pn(pn({},t),i),o?{x:o}:{}),c?{y:c}:{}),{},{height:f,width:h,name:t.name,radius:t.radius})}function sb(e){return S.createElement(mw,gf({shapeType:"rectangle",propTransformer:SR,activeClassName:"recharts-active-bar"},e))}var PR=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(n,i){if(typeof t=="number")return t;var a=q(n)||YO(n);return a?t(n,i):(a||Qt(!1),r)}},TR=["value","background"],Sw;function Lr(e){"@babel/helpers - typeof";return Lr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Lr(e)}function ER(e,t){if(e==null)return{};var r=jR(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function jR(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function ma(){return ma=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs($)0&&Math.abs(C)0&&(j=Math.min((fe||0)-(C[ye-1]||0),j))}),Number.isFinite(j)){var $=j/E,k=v.layout==="vertical"?n.height:n.width;if(v.padding==="gap"&&(_=$*k/2),v.padding==="no-gap"){var R=Ie(t.barCategoryGap,$*k),L=$*k/2;_=L-R-(L-R)/k*R}}}i==="xAxis"?A=[n.left+(w.left||0)+(_||0),n.left+n.width-(w.right||0)-(_||0)]:i==="yAxis"?A=c==="horizontal"?[n.top+n.height-(w.bottom||0),n.top+(w.top||0)]:[n.top+(w.top||0)+(_||0),n.top+n.height-(w.bottom||0)-(_||0)]:A=v.range,m&&(A=[A[1],A[0]]);var B=Xx(v,a,h),U=B.scale,G=B.realScaleType;U.domain(g).range(A),Yx(U);var W=Zx(U,tt(tt({},v),{},{realScaleType:G}));i==="xAxis"?(P=p==="top"&&!O||p==="bottom"&&O,T=n.left,M=l[b]-P*v.height):i==="yAxis"&&(P=p==="left"&&!O||p==="right"&&O,T=l[b]-P*v.width,M=n.top);var V=tt(tt(tt({},v),W),{},{realScaleType:G,x:T,y:M,scale:U,width:i==="xAxis"?n.width:v.width,height:i==="yAxis"?n.height:v.height});return V.bandSize=ta(V,W),!v.hide&&i==="xAxis"?l[b]+=(P?-1:1)*V.height:v.hide||(l[b]+=(P?-1:1)*V.width),tt(tt({},d),{},io({},y,V))},{})},Mw=function(t,r){var n=t.x,i=t.y,a=r.x,o=r.y;return{x:Math.min(n,a),y:Math.min(i,o),width:Math.abs(a-n),height:Math.abs(o-i)}},BR=function(t){var r=t.x1,n=t.y1,i=t.x2,a=t.y2;return Mw({x:r,y:n},{x:i,y:a})},$w=(function(){function e(t){NR(this,e),this.scale=t}return qR(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.bandAware,a=n.position;if(r!==void 0){if(a)switch(a){case"start":return this.scale(r);case"middle":{var o=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+o}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(r)+u}default:return this.scale(r)}if(i){var c=this.bandwidth?this.bandwidth()/2:0;return this.scale(r)+c}return this.scale(r)}}},{key:"isInRange",value:function(r){var n=this.range(),i=n[0],a=n[n.length-1];return i<=a?r>=i&&r<=a:r>=a&&r<=i}}],[{key:"create",value:function(r){return new e(r)}}])})();io($w,"EPS",1e-4);var Ih=function(t){var r=Object.keys(t).reduce(function(n,i){return tt(tt({},n),{},io({},i,$w.create(t[i])))},{});return tt(tt({},r),{},{apply:function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=a.bandAware,u=a.position;return dR(i,function(c,s){return r[s].apply(c,{bandAware:o,position:u})})},isInRange:function(i){return Aw(i,function(a,o){return r[o].isInRange(a)})}})};function FR(e){return(e%180+180)%180}var WR=function(t){var r=t.width,n=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=FR(i),o=a*Math.PI/180,u=Math.atan(n/r),c=o>u&&o-1?c[s?a[f]:f]:void 0}}return ul=n,ul}var cl,vb;function UR(){if(vb)return cl;vb=1;var e=xw();function t(r){var n=e(r),i=n%1;return n===n?i?n-i:n:0}return cl=t,cl}var sl,yb;function HR(){if(yb)return sl;yb=1;var e=M0(),t=ht(),r=UR(),n=Math.max;function i(a,o,u){var c=a==null?0:a.length;if(!c)return-1;var s=u==null?0:r(u);return s<0&&(s=n(c+s,0)),e(a,t(o,3),s)}return sl=i,sl}var ll,mb;function KR(){if(mb)return ll;mb=1;var e=zR(),t=HR(),r=e(t);return ll=r,ll}var GR=KR();const VR=oe(GR);var XR=Kb();const YR=oe(XR);var ZR=YR(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),kh=N.createContext(void 0),Rh=N.createContext(void 0),Cw=N.createContext(void 0),Iw=N.createContext({}),kw=N.createContext(void 0),Rw=N.createContext(0),Dw=N.createContext(0),gb=function(t){var r=t.state,n=r.xAxisMap,i=r.yAxisMap,a=r.offset,o=t.clipPathId,u=t.children,c=t.width,s=t.height,f=ZR(a);return S.createElement(kh.Provider,{value:n},S.createElement(Rh.Provider,{value:i},S.createElement(Iw.Provider,{value:a},S.createElement(Cw.Provider,{value:f},S.createElement(kw.Provider,{value:o},S.createElement(Rw.Provider,{value:s},S.createElement(Dw.Provider,{value:c},u)))))))},JR=function(){return N.useContext(kw)},Nw=function(t){var r=N.useContext(kh);r==null&&Qt(!1);var n=r[t];return n==null&&Qt(!1),n},QR=function(){var t=N.useContext(kh);return Mt(t)},eD=function(){var t=N.useContext(Rh),r=VR(t,function(n){return Aw(n.domain,Number.isFinite)});return r||Mt(t)},qw=function(t){var r=N.useContext(Rh);r==null&&Qt(!1);var n=r[t];return n==null&&Qt(!1),n},tD=function(){var t=N.useContext(Cw);return t},rD=function(){return N.useContext(Iw)},Dh=function(){return N.useContext(Dw)},Nh=function(){return N.useContext(Rw)};function Br(e){"@babel/helpers - typeof";return Br=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Br(e)}function nD(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function iD(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);re*i)return!1;var a=r();return e*(t-e*a/2-n)>=0&&e*(t+e*a/2-i)<=0}function LD(e,t){return Hw(e,t+1)}function BD(e,t,r,n,i){for(var a=(n||[]).slice(),o=t.start,u=t.end,c=0,s=1,f=o,l=function(){var y=n?.[c];if(y===void 0)return{v:Hw(n,s)};var v=c,p,g=function(){return p===void 0&&(p=r(y,v)),p},x=y.coordinate,w=c===0||Oa(e,x,g,f,u);w||(c=0,f=o,s+=1),w&&(f=x+e*(g()/2+i),c+=s)},h;s<=a.length;)if(h=l(),h)return h.v;return[]}function ri(e){"@babel/helpers - typeof";return ri=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ri(e)}function Pb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Me(e){for(var t=1;t0?d.coordinate-p*e:d.coordinate})}else a[h]=d=Me(Me({},d),{},{tickCoord:d.coordinate});var g=Oa(e,d.tickCoord,v,u,c);g&&(c=d.tickCoord-e*(v()/2+i),a[h]=Me(Me({},d),{},{isShow:!0}))},f=o-1;f>=0;f--)s(f);return a}function HD(e,t,r,n,i,a){var o=(n||[]).slice(),u=o.length,c=t.start,s=t.end;if(a){var f=n[u-1],l=r(f,u-1),h=e*(f.coordinate+e*l/2-s);o[u-1]=f=Me(Me({},f),{},{tickCoord:h>0?f.coordinate-h*e:f.coordinate});var d=Oa(e,f.tickCoord,function(){return l},c,s);d&&(s=f.tickCoord-e*(l/2+i),o[u-1]=Me(Me({},f),{},{isShow:!0}))}for(var y=a?u-1:u,v=function(x){var w=o[x],O,m=function(){return O===void 0&&(O=r(w,x)),O};if(x===0){var b=e*(w.coordinate-e*m()/2-c);o[x]=w=Me(Me({},w),{},{tickCoord:b<0?w.coordinate-b*e:w.coordinate})}else o[x]=w=Me(Me({},w),{},{tickCoord:w.coordinate});var _=Oa(e,w.tickCoord,m,c,s);_&&(c=w.tickCoord+e*(m()/2+i),o[x]=Me(Me({},w),{},{isShow:!0}))},p=0;p=2?Ce(i[1].coordinate-i[0].coordinate):1,g=qD(a,p,d);return c==="equidistantPreserveStart"?BD(p,g,v,i,o):(c==="preserveStart"||c==="preserveStartEnd"?h=HD(p,g,v,i,o,c==="preserveStartEnd"):h=UD(p,g,v,i,o),h.filter(function(x){return x.isShow}))}var KD=["viewBox"],GD=["viewBox"],VD=["ticks"];function zr(e){"@babel/helpers - typeof";return zr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},zr(e)}function gr(){return gr=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function XD(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function YD(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Eb(e,t){for(var r=0;r0?c(this.props):c(d)),o<=0||u<=0||!y||!y.length?null:S.createElement(te,{className:J("recharts-cartesian-axis",s),ref:function(p){n.layerReference=p}},a&&this.renderAxisLine(),this.renderTicks(y,this.state.fontSize,this.state.letterSpacing),Te.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(n,i,a){var o,u=J(i.className,"recharts-cartesian-axis-tick-value");return S.isValidElement(n)?o=S.cloneElement(n,we(we({},i),{},{className:u})):X(n)?o=n(we(we({},i),{},{className:u})):o=S.createElement(rr,gr({},i,{className:"recharts-cartesian-axis-tick-value"}),a),o}}])})(N.Component);Fh(nn,"displayName","CartesianAxis");Fh(nn,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var nN=["x1","y1","x2","y2","key"],iN=["offset"];function ir(e){"@babel/helpers - typeof";return ir=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ir(e)}function jb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function $e(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function cN(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}var sN=function(t){var r=t.fill;if(!r||r==="none")return null;var n=t.fillOpacity,i=t.x,a=t.y,o=t.width,u=t.height,c=t.ry;return S.createElement("rect",{x:i,y:a,ry:c,width:o,height:u,stroke:"none",fill:r,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function Vw(e,t){var r;if(S.isValidElement(e))r=S.cloneElement(e,t);else if(X(e))r=e(t);else{var n=t.x1,i=t.y1,a=t.x2,o=t.y2,u=t.key,c=Mb(t,nN),s=H(c,!1);s.offset;var f=Mb(s,iN);r=S.createElement("line",Yt({},f,{x1:n,y1:i,x2:a,y2:o,fill:"none",key:u}))}return r}function lN(e){var t=e.x,r=e.width,n=e.horizontal,i=n===void 0?!0:n,a=e.horizontalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(u,c){var s=$e($e({},e),{},{x1:t,y1:u,x2:t+r,y2:u,key:"line-".concat(c),index:c});return Vw(i,s)});return S.createElement("g",{className:"recharts-cartesian-grid-horizontal"},o)}function fN(e){var t=e.y,r=e.height,n=e.vertical,i=n===void 0?!0:n,a=e.verticalPoints;if(!i||!a||!a.length)return null;var o=a.map(function(u,c){var s=$e($e({},e),{},{x1:u,y1:t,x2:u,y2:t+r,key:"line-".concat(c),index:c});return Vw(i,s)});return S.createElement("g",{className:"recharts-cartesian-grid-vertical"},o)}function hN(e){var t=e.horizontalFill,r=e.fillOpacity,n=e.x,i=e.y,a=e.width,o=e.height,u=e.horizontalPoints,c=e.horizontal,s=c===void 0?!0:c;if(!s||!t||!t.length)return null;var f=u.map(function(h){return Math.round(h+i-i)}).sort(function(h,d){return h-d});i!==f[0]&&f.unshift(0);var l=f.map(function(h,d){var y=!f[d+1],v=y?i+o-h:f[d+1]-h;if(v<=0)return null;var p=d%t.length;return S.createElement("rect",{key:"react-".concat(d),y:h,x:n,height:v,width:a,stroke:"none",fill:t[p],fillOpacity:r,className:"recharts-cartesian-grid-bg"})});return S.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},l)}function pN(e){var t=e.vertical,r=t===void 0?!0:t,n=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,u=e.width,c=e.height,s=e.verticalPoints;if(!r||!n||!n.length)return null;var f=s.map(function(h){return Math.round(h+a-a)}).sort(function(h,d){return h-d});a!==f[0]&&f.unshift(0);var l=f.map(function(h,d){var y=!f[d+1],v=y?a+u-h:f[d+1]-h;if(v<=0)return null;var p=d%n.length;return S.createElement("rect",{key:"react-".concat(d),x:h,y:o,width:v,height:c,stroke:"none",fill:n[p],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return S.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},l)}var dN=function(t,r){var n=t.xAxis,i=t.width,a=t.height,o=t.offset;return Vx(Bh($e($e($e({},nn.defaultProps),n),{},{ticks:gt(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.left,o.left+o.width,r)},vN=function(t,r){var n=t.yAxis,i=t.width,a=t.height,o=t.offset;return Vx(Bh($e($e($e({},nn.defaultProps),n),{},{ticks:gt(n,!0),viewBox:{x:0,y:0,width:i,height:a}})),o.top,o.top+o.height,r)},pr={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function yN(e){var t,r,n,i,a,o,u=Dh(),c=Nh(),s=rD(),f=$e($e({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:pr.stroke,fill:(r=e.fill)!==null&&r!==void 0?r:pr.fill,horizontal:(n=e.horizontal)!==null&&n!==void 0?n:pr.horizontal,horizontalFill:(i=e.horizontalFill)!==null&&i!==void 0?i:pr.horizontalFill,vertical:(a=e.vertical)!==null&&a!==void 0?a:pr.vertical,verticalFill:(o=e.verticalFill)!==null&&o!==void 0?o:pr.verticalFill,x:q(e.x)?e.x:s.left,y:q(e.y)?e.y:s.top,width:q(e.width)?e.width:s.width,height:q(e.height)?e.height:s.height}),l=f.x,h=f.y,d=f.width,y=f.height,v=f.syncWithTicks,p=f.horizontalValues,g=f.verticalValues,x=QR(),w=eD();if(!q(d)||d<=0||!q(y)||y<=0||!q(l)||l!==+l||!q(h)||h!==+h)return null;var O=f.verticalCoordinatesGenerator||dN,m=f.horizontalCoordinatesGenerator||vN,b=f.horizontalPoints,_=f.verticalPoints;if((!b||!b.length)&&X(m)){var A=p&&p.length,T=m({yAxis:w?$e($e({},w),{},{ticks:A?p:w.ticks}):void 0,width:u,height:c,offset:s},A?!0:v);it(Array.isArray(T),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(ir(T),"]")),Array.isArray(T)&&(b=T)}if((!_||!_.length)&&X(O)){var M=g&&g.length,P=O({xAxis:x?$e($e({},x),{},{ticks:M?g:x.ticks}):void 0,width:u,height:c,offset:s},M?!0:v);it(Array.isArray(P),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(ir(P),"]")),Array.isArray(P)&&(_=P)}return S.createElement("g",{className:"recharts-cartesian-grid"},S.createElement(sN,{fill:f.fill,fillOpacity:f.fillOpacity,x:f.x,y:f.y,width:f.width,height:f.height,ry:f.ry}),S.createElement(lN,Yt({},f,{offset:s,horizontalPoints:b,xAxis:x,yAxis:w})),S.createElement(fN,Yt({},f,{offset:s,verticalPoints:_,xAxis:x,yAxis:w})),S.createElement(hN,Yt({},f,{horizontalPoints:b})),S.createElement(pN,Yt({},f,{verticalPoints:_})))}yN.displayName="CartesianGrid";var mN=["type","layout","connectNulls","ref"],gN=["key"];function Ur(e){"@babel/helpers - typeof";return Ur=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ur(e)}function $b(e,t){if(e==null)return{};var r=bN(e,t),n,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function bN(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function _n(){return _n=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);rl){d=[].concat(dr(c.slice(0,y)),[l-v]);break}var p=d.length%2===0?[0,h]:[h];return[].concat(dr(t.repeat(c,f)),dr(d),p).map(function(g){return"".concat(g,"px")}).join(", ")}),rt(r,"id",Zr("recharts-line-")),rt(r,"pathRef",function(o){r.mainCurve=o}),rt(r,"handleAnimationEnd",function(){r.setState({isAnimationFinished:!0}),r.props.onAnimationEnd&&r.props.onAnimationEnd()}),rt(r,"handleAnimationStart",function(){r.setState({isAnimationFinished:!1}),r.props.onAnimationStart&&r.props.onAnimationStart()}),r}return jN(t,e),SN(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();this.setState({totalLength:n})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var n=this.getTotalLength();n!==this.state.totalLength&&this.setState({totalLength:n})}}},{key:"getTotalLength",value:function(){var n=this.mainCurve;try{return n&&n.getTotalLength&&n.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(n,i){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var a=this.props,o=a.points,u=a.xAxis,c=a.yAxis,s=a.layout,f=a.children,l=Ke(f,pi);if(!l)return null;var h=function(v,p){return{x:v.x,y:v.y,value:v.value,errorVal:_e(v.payload,p)}},d={clipPath:n?"url(#clipPath-".concat(i,")"):null};return S.createElement(te,d,l.map(function(y){return S.cloneElement(y,{key:"bar-".concat(y.props.dataKey),data:o,xAxis:u,yAxis:c,layout:s,dataPointFormatter:h})}))}},{key:"renderDots",value:function(n,i,a){var o=this.props.isAnimationActive;if(o&&!this.state.isAnimationFinished)return null;var u=this.props,c=u.dot,s=u.points,f=u.dataKey,l=H(this.props,!1),h=H(c,!0),d=s.map(function(v,p){var g=Be(Be(Be({key:"dot-".concat(p),r:3},l),h),{},{index:p,cx:v.x,cy:v.y,value:v.value,dataKey:f,payload:v.payload,points:s});return t.renderDotItem(c,g)}),y={clipPath:n?"url(#clipPath-".concat(i?"":"dots-").concat(a,")"):null};return S.createElement(te,_n({className:"recharts-line-dots",key:"dots"},y),d)}},{key:"renderCurveStatically",value:function(n,i,a,o){var u=this.props,c=u.type,s=u.layout,f=u.connectNulls;u.ref;var l=$b(u,mN),h=Be(Be(Be({},H(l,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:i?"url(#clipPath-".concat(a,")"):null,points:n},o),{},{type:c,layout:s,connectNulls:f});return S.createElement(ia,_n({},h,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(n,i){var a=this,o=this.props,u=o.points,c=o.strokeDasharray,s=o.isAnimationActive,f=o.animationBegin,l=o.animationDuration,h=o.animationEasing,d=o.animationId,y=o.animateNewValues,v=o.width,p=o.height,g=this.state,x=g.prevPoints,w=g.totalLength;return S.createElement(lt,{begin:f,duration:l,isActive:s,easing:h,from:{t:0},to:{t:1},key:"line-".concat(d),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(O){var m=O.t;if(x){var b=x.length/u.length,_=u.map(function(E,j){var C=Math.floor(j*b);if(x[C]){var $=x[C],k=ze($.x,E.x),R=ze($.y,E.y);return Be(Be({},E),{},{x:k(m),y:R(m)})}if(y){var L=ze(v*2,E.x),B=ze(p/2,E.y);return Be(Be({},E),{},{x:L(m),y:B(m)})}return Be(Be({},E),{},{x:E.x,y:E.y})});return a.renderCurveStatically(_,n,i)}var A=ze(0,w),T=A(m),M;if(c){var P="".concat(c).split(/[,\s]+/gim).map(function(E){return parseFloat(E)});M=a.getStrokeDasharray(T,w,P)}else M=a.generateSimpleStrokeDasharray(w,T);return a.renderCurveStatically(u,n,i,{strokeDasharray:M})})}},{key:"renderCurve",value:function(n,i){var a=this.props,o=a.points,u=a.isAnimationActive,c=this.state,s=c.prevPoints,f=c.totalLength;return u&&o&&o.length&&(!s&&f>0||!hi(s,o))?this.renderCurveWithAnimation(n,i):this.renderCurveStatically(o,n,i)}},{key:"render",value:function(){var n,i=this.props,a=i.hide,o=i.dot,u=i.points,c=i.className,s=i.xAxis,f=i.yAxis,l=i.top,h=i.left,d=i.width,y=i.height,v=i.isAnimationActive,p=i.id;if(a||!u||!u.length)return null;var g=this.state.isAnimationFinished,x=u.length===1,w=J("recharts-line",c),O=s&&s.allowDataOverflow,m=f&&f.allowDataOverflow,b=O||m,_=Y(p)?this.id:p,A=(n=H(o,!1))!==null&&n!==void 0?n:{r:3,strokeWidth:2},T=A.r,M=T===void 0?3:T,P=A.strokeWidth,E=P===void 0?2:P,j=c_(o)?o:{},C=j.clipDot,$=C===void 0?!0:C,k=M*2+E;return S.createElement(te,{className:w},O||m?S.createElement("defs",null,S.createElement("clipPath",{id:"clipPath-".concat(_)},S.createElement("rect",{x:O?h:h-d/2,y:m?l:l-y/2,width:O?d:d*2,height:m?y:y*2})),!$&&S.createElement("clipPath",{id:"clipPath-dots-".concat(_)},S.createElement("rect",{x:h-k/2,y:l-k/2,width:d+k,height:y+k}))):null,!x&&this.renderCurve(b,_),this.renderErrorBar(b,_),(x||o)&&this.renderDots(b,$,_),(!v||g)&&wt.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(n,i){return n.animationId!==i.prevAnimationId?{prevAnimationId:n.animationId,curPoints:n.points,prevPoints:i.curPoints}:n.points!==i.curPoints?{curPoints:n.points}:null}},{key:"repeat",value:function(n,i){for(var a=n.length%2!==0?[].concat(dr(n),[0]):n,o=[],u=0;ue.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}function b2(e,t){if(e==null)return{};var r={};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){if(t.indexOf(n)>=0)continue;r[n]=e[n]}return r}function x2(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function w2(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r0?o:t&&t.length&&q(i)&&q(a)?t.slice(i,a+1):[]};function sO(e){return e==="number"?[0,"auto"]:void 0}var Nf=function(t,r,n,i){var a=t.graphicalItems,o=t.tooltipAxis,u=ho(r,t);return n<0||!a||!a.length||n>=u.length?null:a.reduce(function(c,s){var f,l=(f=s.props.data)!==null&&f!==void 0?f:r;l&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=n&&(l=l.slice(t.dataStartIndex,t.dataEndIndex+1));var h;if(o.dataKey&&!o.allowDuplicatedCategory){var d=l===void 0?u:l;h=Mi(d,o.dataKey,i)}else h=l&&l[n]||u[n];return h?[].concat(Vr(c),[Qx(s,h)]):c},[])},Bb=function(t,r,n,i){var a=i||{x:t.chartX,y:t.chartY},o=I2(a,n),u=t.orderedTooltipTicks,c=t.tooltipAxis,s=t.tooltipTicks,f=iM(o,u,s,c);if(f>=0&&s){var l=s[f]&&s[f].value,h=Nf(t,r,f,l),d=k2(n,u,f,a);return{activeTooltipIndex:f,activeLabel:l,activePayload:h,activeCoordinate:d}}return null},R2=function(t,r){var n=r.axes,i=r.graphicalItems,a=r.axisType,o=r.axisIdKey,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.layout,l=t.children,h=t.stackOffset,d=Gx(f,a);return n.reduce(function(y,v){var p,g=v.type.defaultProps!==void 0?I(I({},v.type.defaultProps),v.props):v.props,x=g.type,w=g.dataKey,O=g.allowDataOverflow,m=g.allowDuplicatedCategory,b=g.scale,_=g.ticks,A=g.includeHidden,T=g[o];if(y[T])return y;var M=ho(t.data,{graphicalItems:i.filter(function(W){var V,fe=o in W.props?W.props[o]:(V=W.type.defaultProps)===null||V===void 0?void 0:V[o];return fe===T}),dataStartIndex:c,dataEndIndex:s}),P=M.length,E,j,C;u2(g.domain,O,x)&&(E=Yl(g.domain,null,O),d&&(x==="number"||b!=="auto")&&(C=bn(M,w,"category")));var $=sO(x);if(!E||E.length===0){var k,R=(k=g.domain)!==null&&k!==void 0?k:$;if(w){if(E=bn(M,w,x),x==="category"&&d){var L=JO(E);m&&L?(j=E,E=da(0,P)):m||(E=Lm(R,E,v).reduce(function(W,V){return W.indexOf(V)>=0?W:[].concat(Vr(W),[V])},[]))}else if(x==="category")m?E=E.filter(function(W){return W!==""&&!Y(W)}):E=Lm(R,E,v).reduce(function(W,V){return W.indexOf(V)>=0||V===""||Y(V)?W:[].concat(Vr(W),[V])},[]);else if(x==="number"){var B=sM(M,i.filter(function(W){var V,fe,ye=o in W.props?W.props[o]:(V=W.type.defaultProps)===null||V===void 0?void 0:V[o],Le="hide"in W.props?W.props.hide:(fe=W.type.defaultProps)===null||fe===void 0?void 0:fe.hide;return ye===T&&(A||!Le)}),w,a,f);B&&(E=B)}d&&(x==="number"||b!=="auto")&&(C=bn(M,w,"category"))}else d?E=da(0,P):u&&u[T]&&u[T].hasStack&&x==="number"?E=h==="expand"?[0,1]:Jx(u[T].stackGroups,c,s):E=Kx(M,i.filter(function(W){var V=o in W.props?W.props[o]:W.type.defaultProps[o],fe="hide"in W.props?W.props.hide:W.type.defaultProps.hide;return V===T&&(A||!fe)}),x,f,!0);if(x==="number")E=kf(l,E,T,a,_),R&&(E=Yl(R,E,O));else if(x==="category"&&R){var U=R,G=E.every(function(W){return U.indexOf(W)>=0});G&&(E=U)}}return I(I({},y),{},K({},T,I(I({},g),{},{axisType:a,domain:E,categoricalDomain:C,duplicateDomain:j,originalDomain:(p=g.domain)!==null&&p!==void 0?p:$,isCategorical:d,layout:f})))},{})},D2=function(t,r){var n=r.graphicalItems,i=r.Axis,a=r.axisType,o=r.axisIdKey,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.layout,l=t.children,h=ho(t.data,{graphicalItems:n,dataStartIndex:c,dataEndIndex:s}),d=h.length,y=Gx(f,a),v=-1;return n.reduce(function(p,g){var x=g.type.defaultProps!==void 0?I(I({},g.type.defaultProps),g.props):g.props,w=x[o],O=sO("number");if(!p[w]){v++;var m;return y?m=da(0,d):u&&u[w]&&u[w].hasStack?(m=Jx(u[w].stackGroups,c,s),m=kf(l,m,w,a)):(m=Yl(O,Kx(h,n.filter(function(b){var _,A,T=o in b.props?b.props[o]:(_=b.type.defaultProps)===null||_===void 0?void 0:_[o],M="hide"in b.props?b.props.hide:(A=b.type.defaultProps)===null||A===void 0?void 0:A.hide;return T===w&&!M}),"number",f),i.defaultProps.allowDataOverflow),m=kf(l,m,w,a)),I(I({},p),{},K({},w,I(I({axisType:a},i.defaultProps),{},{hide:!0,orientation:He($2,"".concat(a,".").concat(v%2),null),domain:m,originalDomain:O,isCategorical:y,layout:f})))}return p},{})},N2=function(t,r){var n=r.axisType,i=n===void 0?"xAxis":n,a=r.AxisComp,o=r.graphicalItems,u=r.stackGroups,c=r.dataStartIndex,s=r.dataEndIndex,f=t.children,l="".concat(i,"Id"),h=Ke(f,a),d={};return h&&h.length?d=R2(t,{axes:h,graphicalItems:o,axisType:i,axisIdKey:l,stackGroups:u,dataStartIndex:c,dataEndIndex:s}):o&&o.length&&(d=D2(t,{Axis:a,graphicalItems:o,axisType:i,axisIdKey:l,stackGroups:u,dataStartIndex:c,dataEndIndex:s})),d},q2=function(t){var r=Mt(t),n=gt(r,!1,!0);return{tooltipTicks:n,orderedTooltipTicks:ih(n,function(i){return i.coordinate}),tooltipAxis:r,tooltipAxisBandSize:ta(r,n)}},Fb=function(t){var r=t.children,n=t.defaultShowTooltip,i=We(r,qr),a=0,o=0;return t.data&&t.data.length!==0&&(o=t.data.length-1),i&&i.props&&(i.props.startIndex>=0&&(a=i.props.startIndex),i.props.endIndex>=0&&(o=i.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:a,dataEndIndex:o,activeTooltipIndex:-1,isTooltipActive:!!n}},L2=function(t){return!t||!t.length?!1:t.some(function(r){var n=bt(r&&r.type);return n&&n.indexOf("Bar")>=0})},Wb=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},B2=function(t,r){var n=t.props,i=t.graphicalItems,a=t.xAxisMap,o=a===void 0?{}:a,u=t.yAxisMap,c=u===void 0?{}:u,s=n.width,f=n.height,l=n.children,h=n.margin||{},d=We(l,qr),y=We(l,wr),v=Object.keys(c).reduce(function(m,b){var _=c[b],A=_.orientation;return!_.mirror&&!_.hide?I(I({},m),{},K({},A,m[A]+_.width)):m},{left:h.left||0,right:h.right||0}),p=Object.keys(o).reduce(function(m,b){var _=o[b],A=_.orientation;return!_.mirror&&!_.hide?I(I({},m),{},K({},A,He(m,"".concat(A))+_.height)):m},{top:h.top||0,bottom:h.bottom||0}),g=I(I({},p),v),x=g.bottom;d&&(g.bottom+=d.props.height||qr.defaultProps.height),y&&r&&(g=uM(g,i,n,r));var w=s-g.left-g.right,O=f-g.top-g.bottom;return I(I({brushBottom:x},g),{},{width:Math.max(w,0),height:Math.max(O,0)})},F2=function(t,r){if(r==="xAxis")return t[r].width;if(r==="yAxis")return t[r].height},Wh=function(t){var r=t.chartName,n=t.GraphicalChild,i=t.defaultTooltipEventType,a=i===void 0?"axis":i,o=t.validateTooltipEventTypes,u=o===void 0?["axis"]:o,c=t.axisComponents,s=t.legendContent,f=t.formatAxisMap,l=t.defaultProps,h=function(g,x){var w=x.graphicalItems,O=x.stackGroups,m=x.offset,b=x.updateId,_=x.dataStartIndex,A=x.dataEndIndex,T=g.barSize,M=g.layout,P=g.barGap,E=g.barCategoryGap,j=g.maxBarSize,C=Wb(M),$=C.numericAxisName,k=C.cateAxisName,R=L2(w),L=[];return w.forEach(function(B,U){var G=ho(g.data,{graphicalItems:[B],dataStartIndex:_,dataEndIndex:A}),W=B.type.defaultProps!==void 0?I(I({},B.type.defaultProps),B.props):B.props,V=W.dataKey,fe=W.maxBarSize,ye=W["".concat($,"Id")],Le=W["".concat(k,"Id")],qt={},Re=c.reduce(function(Lt,Bt){var po=x["".concat(Bt.axisType,"Map")],zh=W["".concat(Bt.axisType,"Id")];po&&po[zh]||Bt.axisType==="zAxis"||Qt(!1);var Uh=po[zh];return I(I({},Lt),{},K(K({},Bt.axisType,Uh),"".concat(Bt.axisType,"Ticks"),gt(Uh)))},qt),F=Re[k],Z=Re["".concat(k,"Ticks")],Q=O&&O[ye]&&O[ye].hasStack&&gM(B,O[ye].stackGroups),D=bt(B.type).indexOf("Bar")>=0,de=ta(F,Z),ee=[],be=R&&aM({barSize:T,stackGroups:O,totalSize:F2(Re,k)});if(D){var xe,De,Et=Y(fe)?j:fe,lr=(xe=(De=ta(F,Z,!0))!==null&&De!==void 0?De:Et)!==null&&xe!==void 0?xe:0;ee=oM({barGap:P,barCategoryGap:E,bandSize:lr!==de?lr:de,sizeList:be[Le],maxBarSize:Et}),lr!==de&&(ee=ee.map(function(Lt){return I(I({},Lt),{},{position:I(I({},Lt.position),{},{offset:Lt.position.offset-lr/2})})}))}var di=B&&B.type&&B.type.getComposedData;di&&L.push({props:I(I({},di(I(I({},Re),{},{displayedData:G,props:g,dataKey:V,item:B,bandSize:de,barPosition:ee,offset:m,stackedData:Q,layout:M,dataStartIndex:_,dataEndIndex:A}))),{},K(K(K({key:B.key||"item-".concat(U)},$,Re[$]),k,Re[k]),"animationId",b)),childIndex:f_(B,g.children),item:B})}),L},d=function(g,x){var w=g.props,O=g.dataStartIndex,m=g.dataEndIndex,b=g.updateId;if(!Qp({props:w}))return null;var _=w.children,A=w.layout,T=w.stackOffset,M=w.data,P=w.reverseStackOrder,E=Wb(A),j=E.numericAxisName,C=E.cateAxisName,$=Ke(_,n),k=yM(M,$,"".concat(j,"Id"),"".concat(C,"Id"),T,P),R=c.reduce(function(W,V){var fe="".concat(V.axisType,"Map");return I(I({},W),{},K({},fe,N2(w,I(I({},V),{},{graphicalItems:$,stackGroups:V.axisType===j&&k,dataStartIndex:O,dataEndIndex:m}))))},{}),L=B2(I(I({},R),{},{props:w,graphicalItems:$}),x?.legendBBox);Object.keys(R).forEach(function(W){R[W]=f(w,R[W],L,W.replace("Map",""),r)});var B=R["".concat(C,"Map")],U=q2(B),G=h(w,I(I({},R),{},{dataStartIndex:O,dataEndIndex:m,updateId:b,graphicalItems:$,stackGroups:k,offset:L}));return I(I({formattedGraphicalItems:G,graphicalItems:$,offset:L,stackGroups:k},U),R)},y=(function(p){function g(x){var w,O,m;return x2(this,g),m=_2(this,g,[x]),K(m,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),K(m,"accessibilityManager",new o2),K(m,"handleLegendBBoxUpdate",function(b){if(b){var _=m.state,A=_.dataStartIndex,T=_.dataEndIndex,M=_.updateId;m.setState(I({legendBBox:b},d({props:m.props,dataStartIndex:A,dataEndIndex:T,updateId:M},I(I({},m.state),{},{legendBBox:b}))))}}),K(m,"handleReceiveSyncEvent",function(b,_,A){if(m.props.syncId===b){if(A===m.eventEmitterSymbol&&typeof m.props.syncMethod!="function")return;m.applySyncEvent(_)}}),K(m,"handleBrushChange",function(b){var _=b.startIndex,A=b.endIndex;if(_!==m.state.dataStartIndex||A!==m.state.dataEndIndex){var T=m.state.updateId;m.setState(function(){return I({dataStartIndex:_,dataEndIndex:A},d({props:m.props,dataStartIndex:_,dataEndIndex:A,updateId:T},m.state))}),m.triggerSyncEvent({dataStartIndex:_,dataEndIndex:A})}}),K(m,"handleMouseEnter",function(b){var _=m.getMouseInfo(b);if(_){var A=I(I({},_),{},{isTooltipActive:!0});m.setState(A),m.triggerSyncEvent(A);var T=m.props.onMouseEnter;X(T)&&T(A,b)}}),K(m,"triggeredAfterMouseMove",function(b){var _=m.getMouseInfo(b),A=_?I(I({},_),{},{isTooltipActive:!0}):{isTooltipActive:!1};m.setState(A),m.triggerSyncEvent(A);var T=m.props.onMouseMove;X(T)&&T(A,b)}),K(m,"handleItemMouseEnter",function(b){m.setState(function(){return{isTooltipActive:!0,activeItem:b,activePayload:b.tooltipPayload,activeCoordinate:b.tooltipPosition||{x:b.cx,y:b.cy}}})}),K(m,"handleItemMouseLeave",function(){m.setState(function(){return{isTooltipActive:!1}})}),K(m,"handleMouseMove",function(b){b.persist(),m.throttleTriggeredAfterMouseMove(b)}),K(m,"handleMouseLeave",function(b){m.throttleTriggeredAfterMouseMove.cancel();var _={isTooltipActive:!1};m.setState(_),m.triggerSyncEvent(_);var A=m.props.onMouseLeave;X(A)&&A(_,b)}),K(m,"handleOuterEvent",function(b){var _=l_(b),A=He(m.props,"".concat(_));if(_&&X(A)){var T,M;/.*touch.*/i.test(_)?M=m.getMouseInfo(b.changedTouches[0]):M=m.getMouseInfo(b),A((T=M)!==null&&T!==void 0?T:{},b)}}),K(m,"handleClick",function(b){var _=m.getMouseInfo(b);if(_){var A=I(I({},_),{},{isTooltipActive:!0});m.setState(A),m.triggerSyncEvent(A);var T=m.props.onClick;X(T)&&T(A,b)}}),K(m,"handleMouseDown",function(b){var _=m.props.onMouseDown;if(X(_)){var A=m.getMouseInfo(b);_(A,b)}}),K(m,"handleMouseUp",function(b){var _=m.props.onMouseUp;if(X(_)){var A=m.getMouseInfo(b);_(A,b)}}),K(m,"handleTouchMove",function(b){b.changedTouches!=null&&b.changedTouches.length>0&&m.throttleTriggeredAfterMouseMove(b.changedTouches[0])}),K(m,"handleTouchStart",function(b){b.changedTouches!=null&&b.changedTouches.length>0&&m.handleMouseDown(b.changedTouches[0])}),K(m,"handleTouchEnd",function(b){b.changedTouches!=null&&b.changedTouches.length>0&&m.handleMouseUp(b.changedTouches[0])}),K(m,"handleDoubleClick",function(b){var _=m.props.onDoubleClick;if(X(_)){var A=m.getMouseInfo(b);_(A,b)}}),K(m,"handleContextMenu",function(b){var _=m.props.onContextMenu;if(X(_)){var A=m.getMouseInfo(b);_(A,b)}}),K(m,"triggerSyncEvent",function(b){m.props.syncId!==void 0&&pl.emit(dl,m.props.syncId,b,m.eventEmitterSymbol)}),K(m,"applySyncEvent",function(b){var _=m.props,A=_.layout,T=_.syncMethod,M=m.state.updateId,P=b.dataStartIndex,E=b.dataEndIndex;if(b.dataStartIndex!==void 0||b.dataEndIndex!==void 0)m.setState(I({dataStartIndex:P,dataEndIndex:E},d({props:m.props,dataStartIndex:P,dataEndIndex:E,updateId:M},m.state)));else if(b.activeTooltipIndex!==void 0){var j=b.chartX,C=b.chartY,$=b.activeTooltipIndex,k=m.state,R=k.offset,L=k.tooltipTicks;if(!R)return;if(typeof T=="function")$=T(L,b);else if(T==="value"){$=-1;for(var B=0;B=0){var Q,D;if(j.dataKey&&!j.allowDuplicatedCategory){var de=typeof j.dataKey=="function"?Z:"payload.".concat(j.dataKey.toString());Q=Mi(B,de,$),D=U&&G&&Mi(G,de,$)}else Q=B?.[C],D=U&&G&&G[C];if(Le||ye){var ee=b.props.activeIndex!==void 0?b.props.activeIndex:C;return[N.cloneElement(b,I(I(I({},T.props),Re),{},{activeIndex:ee})),null,null]}if(!Y(Q))return[F].concat(Vr(m.renderActivePoints({item:T,activePoint:Q,basePoint:D,childIndex:C,isRange:U})))}else{var be,xe=(be=m.getItemByXY(m.state.activeCoordinate))!==null&&be!==void 0?be:{graphicalItem:F},De=xe.graphicalItem,Et=De.item,lr=Et===void 0?b:Et,di=De.childIndex,Lt=I(I(I({},T.props),Re),{},{activeIndex:di});return[N.cloneElement(lr,Lt),null,null]}return U?[F,null,null]:[F,null]}),K(m,"renderCustomized",function(b,_,A){return N.cloneElement(b,I(I({key:"recharts-customized-".concat(A)},m.props),m.state))}),K(m,"renderMap",{CartesianGrid:{handler:Ei,once:!0},ReferenceArea:{handler:m.renderReferenceElement},ReferenceLine:{handler:Ei},ReferenceDot:{handler:m.renderReferenceElement},XAxis:{handler:Ei},YAxis:{handler:Ei},Brush:{handler:m.renderBrush,once:!0},Bar:{handler:m.renderGraphicChild},Line:{handler:m.renderGraphicChild},Area:{handler:m.renderGraphicChild},Radar:{handler:m.renderGraphicChild},RadialBar:{handler:m.renderGraphicChild},Scatter:{handler:m.renderGraphicChild},Pie:{handler:m.renderGraphicChild},Funnel:{handler:m.renderGraphicChild},Tooltip:{handler:m.renderCursor,once:!0},PolarGrid:{handler:m.renderPolarGrid,once:!0},PolarAngleAxis:{handler:m.renderPolarAxis},PolarRadiusAxis:{handler:m.renderPolarAxis},Customized:{handler:m.renderCustomized}}),m.clipPathId="".concat((w=x.id)!==null&&w!==void 0?w:Zr("recharts"),"-clip"),m.throttleTriggeredAfterMouseMove=z0(m.triggeredAfterMouseMove,(O=x.throttleDelay)!==null&&O!==void 0?O:1e3/60),m.state={},m}return P2(g,p),O2(g,[{key:"componentDidMount",value:function(){var w,O;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(w=this.props.margin.left)!==null&&w!==void 0?w:0,top:(O=this.props.margin.top)!==null&&O!==void 0?O:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var w=this.props,O=w.children,m=w.data,b=w.height,_=w.layout,A=We(O,dt);if(A){var T=A.props.defaultIndex;if(!(typeof T!="number"||T<0||T>this.state.tooltipTicks.length-1)){var M=this.state.tooltipTicks[T]&&this.state.tooltipTicks[T].value,P=Nf(this.state,m,T,M),E=this.state.tooltipTicks[T].coordinate,j=(this.state.offset.top+b)/2,C=_==="horizontal",$=C?{x:E,y:j}:{y:E,x:j},k=this.state.formattedGraphicalItems.find(function(L){var B=L.item;return B.type.name==="Scatter"});k&&($=I(I({},$),k.props.points[T].tooltipPosition),P=k.props.points[T].tooltipPayload);var R={activeTooltipIndex:T,isTooltipActive:!0,activeLabel:M,activePayload:P,activeCoordinate:$};this.setState(R),this.renderCursor(A),this.accessibilityManager.setIndex(T)}}}},{key:"getSnapshotBeforeUpdate",value:function(w,O){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==O.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==w.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==w.margin){var m,b;this.accessibilityManager.setDetails({offset:{left:(m=this.props.margin.left)!==null&&m!==void 0?m:0,top:(b=this.props.margin.top)!==null&&b!==void 0?b:0}})}return null}},{key:"componentDidUpdate",value:function(w){gl([We(w.children,dt)],[We(this.props.children,dt)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var w=We(this.props.children,dt);if(w&&typeof w.props.shared=="boolean"){var O=w.props.shared?"axis":"item";return u.indexOf(O)>=0?O:a}return a}},{key:"getMouseInfo",value:function(w){if(!this.container)return null;var O=this.container,m=O.getBoundingClientRect(),b=ZS(m),_={chartX:Math.round(w.pageX-b.left),chartY:Math.round(w.pageY-b.top)},A=m.width/O.offsetWidth||1,T=this.inRange(_.chartX,_.chartY,A);if(!T)return null;var M=this.state,P=M.xAxisMap,E=M.yAxisMap,j=this.getTooltipEventType(),C=Bb(this.state,this.props.data,this.props.layout,T);if(j!=="axis"&&P&&E){var $=Mt(P).scale,k=Mt(E).scale,R=$&&$.invert?$.invert(_.chartX):null,L=k&&k.invert?k.invert(_.chartY):null;return I(I({},_),{},{xValue:R,yValue:L},C)}return C?I(I({},_),C):null}},{key:"inRange",value:function(w,O){var m=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,b=this.props.layout,_=w/m,A=O/m;if(b==="horizontal"||b==="vertical"){var T=this.state.offset,M=_>=T.left&&_<=T.left+T.width&&A>=T.top&&A<=T.top+T.height;return M?{x:_,y:A}:null}var P=this.state,E=P.angleAxisMap,j=P.radiusAxisMap;if(E&&j){var C=Mt(E);return Wm({x:_,y:A},C)}return null}},{key:"parseEventsOfWrapper",value:function(){var w=this.props.children,O=this.getTooltipEventType(),m=We(w,dt),b={};m&&O==="axis"&&(m.props.trigger==="click"?b={onClick:this.handleClick}:b={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var _=$i(this.props,this.handleOuterEvent);return I(I({},_),b)}},{key:"addListener",value:function(){pl.on(dl,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){pl.removeListener(dl,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(w,O,m){for(var b=this.state.formattedGraphicalItems,_=0,A=b.length;_t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),M=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,c,o)=>o?o.toUpperCase():c.toLowerCase()),d=t=>{const a=M(t);return a.charAt(0).toUpperCase()+a.slice(1)},r=(...t)=>t.filter((a,c,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===c).join(" ").trim(),m=t=>{for(const a in t)if(a.startsWith("aria-")||a==="role"||a==="title")return!0};var v={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const x=n.forwardRef(({color:t="currentColor",size:a=24,strokeWidth:c=2,absoluteStrokeWidth:o,className:y="",children:s,iconNode:k,...h},i)=>n.createElement("svg",{ref:i,...v,width:a,height:a,stroke:t,strokeWidth:o?Number(c)*24/Number(a):c,className:r("lucide",y),...!s&&!m(h)&&{"aria-hidden":"true"},...h},[...k.map(([l,p])=>n.createElement(l,p)),...Array.isArray(s)?s:[s]]));const e=(t,a)=>{const c=n.forwardRef(({className:o,...y},s)=>n.createElement(x,{ref:s,iconNode:a,className:r(`lucide-${_(d(t))}`,`lucide-${t}`,o),...y}));return c.displayName=d(t),c};const u=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],D1=e("activity",u);const g=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],T1=e("arrow-left",g);const $=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],F1=e("arrow-right",$);const N=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],O1=e("ban",N);const f=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],I1=e("book-open",f);const w=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],K1=e("bot",w);const z=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],W1=e("boxes",z);const C=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],Q1=e("calendar",C);const q=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],X1=e("chart-column",q);const b=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],G1=e("check",b);const A=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],J1=e("chevron-down",A);const j=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Y1=e("chevron-left",j);const V=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],e2=e("chevron-right",V);const H=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],a2=e("chevron-up",H);const L=[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]],t2=e("chevrons-left",L);const S=[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]],c2=e("chevrons-right",S);const P=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],o2=e("chevrons-up-down",P);const R=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],s2=e("circle-alert",R);const U=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],n2=e("circle-check",U);const E=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],y2=e("circle-question-mark",E);const B=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],h2=e("circle-user",B);const Z=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],d2=e("circle-x",Z);const D=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],r2=e("circle",D);const T=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],k2=e("clock",T);const F=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],i2=e("copy",F);const O=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],l2=e("database",O);const I=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],p2=e("dollar-sign",I);const K=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],_2=e("download",K);const W=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],M2=e("external-link",W);const Q=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],m2=e("eye-off",Q);const X=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],v2=e("eye",X);const G=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],x2=e("file-search",G);const J=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],u2=e("file-text",J);const Y=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],g2=e("funnel",Y);const e1=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],$2=e("hash",e1);const a1=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],N2=e("house",a1);const t1=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],f2=e("info",t1);const c1=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],w2=e("key",c1);const o1=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],z2=e("loader-circle",o1);const s1=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],C2=e("lock",s1);const n1=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],q2=e("log-out",n1);const y1=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],b2=e("menu",y1);const h1=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],A2=e("message-square",h1);const d1=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],j2=e("moon",d1);const r1=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],V2=e("package",r1);const k1=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],H2=e("palette",k1);const i1=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],L2=e("pause",i1);const l1=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],S2=e("pencil",l1);const p1=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],P2=e("play",p1);const _1=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],R2=e("plus",_1);const M1=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],U2=e("power",M1);const m1=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],E2=e("refresh-cw",m1);const v1=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],B2=e("rotate-ccw",v1);const x1=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Z2=e("rotate-cw",x1);const u1=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],D2=e("save",u1);const g1=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],T2=e("search",g1);const $1=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],F2=e("server",$1);const N1=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],O2=e("settings-2",N1);const f1=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],I2=e("settings",f1);const w1=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],K2=e("shield",w1);const z1=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],W2=e("skip-forward",z1);const C1=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],Q2=e("sliders-vertical",C1);const q1=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],X2=e("smile",q1);const b1=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],G2=e("sparkles",b1);const A1=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],J2=e("square-pen",A1);const j1=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Y2=e("star",j1);const V1=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],e0=e("sun",V1);const H1=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],a0=e("terminal",H1);const L1=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],t0=e("trash-2",L1);const S1=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],c0=e("trending-up",S1);const P1=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],o0=e("triangle-alert",P1);const R1=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],s0=e("user",R1);const U1=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],n0=e("users",U1);const E1=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],y0=e("x",E1);const B1=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],h0=e("zap",B1);export{J2 as $,D1 as A,K1 as B,k2 as C,p2 as D,m2 as E,u2 as F,t0 as G,N2 as H,f2 as I,x2 as J,w2 as K,C2 as L,A2 as M,S2 as N,t2 as O,H2 as P,Y1 as Q,E2 as R,K2 as S,c0 as T,s0 as U,e2 as V,c2 as W,y0 as X,o2 as Y,h0 as Z,g2 as _,l2 as a,O1 as a0,$2 as a1,n0 as a2,Q1 as a3,L2 as a4,P2 as a5,_2 as a6,O2 as a7,Y2 as a8,M2 as a9,V2 as aa,F2 as ab,W1 as ac,h2 as ad,X1 as ae,r2 as af,Q2 as ag,b2 as ah,I1 as ai,q2 as aj,Z2 as ak,I2 as b,o0 as c,G1 as d,i2 as e,v2 as f,n2 as g,d2 as h,B2 as i,e0 as j,j2 as k,s2 as l,y2 as m,a0 as n,G2 as o,X2 as p,W2 as q,F1 as r,T2 as s,T1 as t,J1 as u,a2 as v,z2 as w,D2 as x,U2 as y,R2 as z}; diff --git a/webui/dist/assets/index-3Oy1uh5z.js b/webui/dist/assets/index-3Oy1uh5z.js deleted file mode 100644 index 79feb3a2..00000000 --- a/webui/dist/assets/index-3Oy1uh5z.js +++ /dev/null @@ -1,157 +0,0 @@ -function QV(e,t){for(var n=0;nr[a]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const l of s.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();var Op=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Rt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var T0={exports:{}},Kd={};var Kk;function JV(){if(Kk)return Kd;Kk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,a,s){var l=null;if(s!==void 0&&(l=""+s),a.key!==void 0&&(l=""+a.key),"key"in a){s={};for(var u in a)u!=="key"&&(s[u]=a[u])}else s=a;return a=s.ref,{$$typeof:e,type:r,key:l,ref:a!==void 0?a:null,props:s}}return Kd.Fragment=t,Kd.jsx=n,Kd.jsxs=n,Kd}var Xk;function eG(){return Xk||(Xk=1,T0.exports=JV()),T0.exports}var i=eG(),k0={exports:{}},Qe={};var Zk;function tG(){if(Zk)return Qe;Zk=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),a=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),l=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.for("react.activity"),g=Symbol.iterator;function x(F){return F===null||typeof F!="object"?null:(F=g&&F[g]||F["@@iterator"],typeof F=="function"?F:null)}var j={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},w=Object.assign,b={};function N(F,z,K){this.props=F,this.context=z,this.refs=b,this.updater=K||j}N.prototype.isReactComponent={},N.prototype.setState=function(F,z){if(typeof F!="object"&&typeof F!="function"&&F!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,F,z,"setState")},N.prototype.forceUpdate=function(F){this.updater.enqueueForceUpdate(this,F,"forceUpdate")};function E(){}E.prototype=N.prototype;function O(F,z,K){this.props=F,this.context=z,this.refs=b,this.updater=K||j}var A=O.prototype=new E;A.constructor=O,w(A,N.prototype),A.isPureReactComponent=!0;var C=Array.isArray;function k(){}var T={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function R(F,z,K){var ie=K.ref;return{$$typeof:e,type:F,key:z,ref:ie!==void 0?ie:null,props:K}}function L(F,z){return R(F.type,z,F.props)}function D(F){return typeof F=="object"&&F!==null&&F.$$typeof===e}function U(F){var z={"=":"=0",":":"=2"};return"$"+F.replace(/[=:]/g,function(K){return z[K]})}var V=/\/+/g;function H(F,z){return typeof F=="object"&&F!==null&&F.key!=null?U(""+F.key):z.toString(36)}function G(F){switch(F.status){case"fulfilled":return F.value;case"rejected":throw F.reason;default:switch(typeof F.status=="string"?F.then(k,k):(F.status="pending",F.then(function(z){F.status==="pending"&&(F.status="fulfilled",F.value=z)},function(z){F.status==="pending"&&(F.status="rejected",F.reason=z)})),F.status){case"fulfilled":return F.value;case"rejected":throw F.reason}}throw F}function $(F,z,K,ie,Q){var he=typeof F;(he==="undefined"||he==="boolean")&&(F=null);var ae=!1;if(F===null)ae=!0;else switch(he){case"bigint":case"string":case"number":ae=!0;break;case"object":switch(F.$$typeof){case e:case t:ae=!0;break;case m:return ae=F._init,$(ae(F._payload),z,K,ie,Q)}}if(ae)return Q=Q(F),ae=ie===""?"."+H(F,0):ie,C(Q)?(K="",ae!=null&&(K=ae.replace(V,"$&/")+"/"),$(Q,z,K,"",function(pe){return pe})):Q!=null&&(D(Q)&&(Q=L(Q,K+(Q.key==null||F&&F.key===Q.key?"":(""+Q.key).replace(V,"$&/")+"/")+ae)),z.push(Q)),1;ae=0;var we=ie===""?".":ie+":";if(C(F))for(var Y=0;Y>>1,ee=$[Z];if(0>>1;Za(K,q))iea(Q,K)?($[Z]=Q,$[ie]=q,Z=ie):($[Z]=K,$[z]=q,Z=z);else if(iea(Q,q))$[Z]=Q,$[ie]=q,Z=ie;else break e}}return I}function a($,I){var q=$.sortIndex-I.sortIndex;return q!==0?q:$.id-I.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var l=Date,u=l.now();e.unstable_now=function(){return l.now()-u}}var d=[],f=[],m=1,p=null,g=3,x=!1,j=!1,w=!1,b=!1,N=typeof setTimeout=="function"?setTimeout:null,E=typeof clearTimeout=="function"?clearTimeout:null,O=typeof setImmediate<"u"?setImmediate:null;function A($){for(var I=n(f);I!==null;){if(I.callback===null)r(f);else if(I.startTime<=$)r(f),I.sortIndex=I.expirationTime,t(d,I);else break;I=n(f)}}function C($){if(w=!1,A($),!j)if(n(d)!==null)j=!0,k||(k=!0,U());else{var I=n(f);I!==null&&G(C,I.startTime-$)}}var k=!1,T=-1,M=5,R=-1;function L(){return b?!0:!(e.unstable_now()-R$&&L());){var Z=p.callback;if(typeof Z=="function"){p.callback=null,g=p.priorityLevel;var ee=Z(p.expirationTime<=$);if($=e.unstable_now(),typeof ee=="function"){p.callback=ee,A($),I=!0;break t}p===n(d)&&r(d),A($)}else r(d);p=n(d)}if(p!==null)I=!0;else{var F=n(f);F!==null&&G(C,F.startTime-$),I=!1}}break e}finally{p=null,g=q,x=!1}I=void 0}}finally{I?U():k=!1}}}var U;if(typeof O=="function")U=function(){O(D)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,H=V.port2;V.port1.onmessage=D,U=function(){H.postMessage(null)}}else U=function(){N(D,0)};function G($,I){T=N(function(){$(e.unstable_now())},I)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):M=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_next=function($){switch(g){case 1:case 2:case 3:var I=3;break;default:I=g}var q=g;g=I;try{return $()}finally{g=q}},e.unstable_requestPaint=function(){b=!0},e.unstable_runWithPriority=function($,I){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var q=g;g=$;try{return I()}finally{g=q}},e.unstable_scheduleCallback=function($,I,q){var Z=e.unstable_now();switch(typeof q=="object"&&q!==null?(q=q.delay,q=typeof q=="number"&&0Z?($.sortIndex=q,t(f,$),n(d)===null&&$===n(f)&&(w?(E(T),T=-1):w=!0,G(C,q-Z))):($.sortIndex=ee,t(d,$),j||x||(j=!0,k||(k=!0,U()))),$},e.unstable_shouldYield=L,e.unstable_wrapCallback=function($){var I=g;return function(){var q=g;g=I;try{return $.apply(this,arguments)}finally{g=q}}}})(R0)),R0}var eM;function rG(){return eM||(eM=1,P0.exports=nG()),P0.exports}var D0={exports:{}},cr={};var tM;function aG(){if(tM)return cr;tM=1;var e=Ah();function t(d){var f="https://react.dev/errors/"+d;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),D0.exports=aG(),D0.exports}var rM;function iG(){if(rM)return Xd;rM=1;var e=rG(),t=Ah(),n=t5();function r(o){var c="https://react.dev/errors/"+o;if(1ee||(o.current=Z[ee],Z[ee]=null,ee--)}function K(o,c){ee++,Z[ee]=o.current,o.current=c}var ie=F(null),Q=F(null),he=F(null),ae=F(null);function we(o,c){switch(K(he,c),K(Q,o),K(ie,null),c.nodeType){case 9:case 11:o=(o=c.documentElement)&&(o=o.namespaceURI)?yk(o):0;break;default:if(o=c.tagName,c=c.namespaceURI)c=yk(c),o=xk(c,o);else switch(o){case"svg":o=1;break;case"math":o=2;break;default:o=0}}z(ie),K(ie,o)}function Y(){z(ie),z(Q),z(he)}function pe(o){o.memoizedState!==null&&K(ae,o);var c=ie.current,h=xk(c,o.type);c!==h&&(K(Q,o),K(ie,h))}function je(o){Q.current===o&&(z(ie),z(Q)),ae.current===o&&(z(ae),Wd._currentValue=q)}var X,Ae;function Oe(o){if(X===void 0)try{throw Error()}catch(h){var c=h.stack.trim().match(/\n( *(at )?)/);X=c&&c[1]||"",Ae=-1)":-1S||J[v]!==ce[S]){var ve=` -`+J[v].replace(" at new "," at ");return o.displayName&&ve.includes("")&&(ve=ve.replace("",o.displayName)),ve}while(1<=v&&0<=S);break}}}finally{We=!1,Error.prepareStackTrace=h}return(h=o?o.displayName||o.name:"")?Oe(h):""}function be(o,c){switch(o.tag){case 26:case 27:case 5:return Oe(o.type);case 16:return Oe("Lazy");case 13:return o.child!==c&&c!==null?Oe("Suspense Fallback"):Oe("Suspense");case 19:return Oe("SuspenseList");case 0:case 15:return Ve(o.type,!1);case 11:return Ve(o.type.render,!1);case 1:return Ve(o.type,!0);case 31:return Oe("Activity");default:return""}}function _e(o){try{var c="",h=null;do c+=be(o,h),h=o,o=o.return;while(o);return c}catch(v){return` -Error generating stack: `+v.message+` -`+v.stack}}var rt=Object.prototype.hasOwnProperty,fn=e.unstable_scheduleCallback,Tt=e.unstable_cancelCallback,zt=e.unstable_shouldYield,at=e.unstable_requestPaint,re=e.unstable_now,Se=e.unstable_getCurrentPriorityLevel,ut=e.unstable_ImmediatePriority,Or=e.unstable_UserBlockingPriority,bs=e.unstable_NormalPriority,mx=e.unstable_LowPriority,mm=e.unstable_IdlePriority,px=e.log,vx=e.unstable_setDisableYieldValue,jo=null,wr=null;function ei(o){if(typeof px=="function"&&vx(o),wr&&typeof wr.setStrictMode=="function")try{wr.setStrictMode(jo,o)}catch{}}var lr=Math.clz32?Math.clz32:Kt,gx=Math.log,ot=Math.LN2;function Kt(o){return o>>>=0,o===0?32:31-(gx(o)/ot|0)|0}var Ge=256,Et=262144,qn=4194304;function lt(o){var c=o&42;if(c!==0)return c;switch(o&-o){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return o&261888;case 262144:case 524288:case 1048576:case 2097152:return o&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return o&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return o}}function zl(o,c,h){var v=o.pendingLanes;if(v===0)return 0;var S=0,_=o.suspendedLanes,P=o.pingedLanes;o=o.warmLanes;var B=v&134217727;return B!==0?(v=B&~_,v!==0?S=lt(v):(P&=B,P!==0?S=lt(P):h||(h=B&~o,h!==0&&(S=lt(h))))):(B=v&~_,B!==0?S=lt(B):P!==0?S=lt(P):h||(h=v&~o,h!==0&&(S=lt(h)))),S===0?0:c!==0&&c!==S&&(c&_)===0&&(_=S&-S,h=c&-c,_>=h||_===32&&(h&4194048)!==0)?c:S}function So(o,c){return(o.pendingLanes&~(o.suspendedLanes&~o.pingedLanes)&c)===0}function yx(o,c){switch(o){case 1:case 2:case 4:case 8:case 64:return c+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return c+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Bl(){var o=qn;return qn<<=1,(qn&62914560)===0&&(qn=4194304),o}function _o(o){for(var c=[],h=0;31>h;h++)c.push(o);return c}function id(o,c){o.pendingLanes|=c,c!==268435456&&(o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0)}function BW(o,c,h,v,S,_){var P=o.pendingLanes;o.pendingLanes=h,o.suspendedLanes=0,o.pingedLanes=0,o.warmLanes=0,o.expiredLanes&=h,o.entangledLanes&=h,o.errorRecoveryDisabledLanes&=h,o.shellSuspendCounter=0;var B=o.entanglements,J=o.expirationTimes,ce=o.hiddenUpdates;for(h=P&~h;0"u")return null;try{return o.activeElement||o.body}catch{return o.body}}var VW=/[\n"\\]/g;function ha(o){return o.replace(VW,function(c){return"\\"+c.charCodeAt(0).toString(16)+" "})}function _x(o,c,h,v,S,_,P,B){o.name="",P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"?o.type=P:o.removeAttribute("type"),c!=null?P==="number"?(c===0&&o.value===""||o.value!=c)&&(o.value=""+fa(c)):o.value!==""+fa(c)&&(o.value=""+fa(c)):P!=="submit"&&P!=="reset"||o.removeAttribute("value"),c!=null?Nx(o,P,fa(c)):h!=null?Nx(o,P,fa(h)):v!=null&&o.removeAttribute("value"),S==null&&_!=null&&(o.defaultChecked=!!_),S!=null&&(o.checked=S&&typeof S!="function"&&typeof S!="symbol"),B!=null&&typeof B!="function"&&typeof B!="symbol"&&typeof B!="boolean"?o.name=""+fa(B):o.removeAttribute("name")}function f2(o,c,h,v,S,_,P,B){if(_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"&&(o.type=_),c!=null||h!=null){if(!(_!=="submit"&&_!=="reset"||c!=null)){Sx(o);return}h=h!=null?""+fa(h):"",c=c!=null?""+fa(c):h,B||c===o.value||(o.value=c),o.defaultValue=c}v=v??S,v=typeof v!="function"&&typeof v!="symbol"&&!!v,o.checked=B?o.checked:!!v,o.defaultChecked=!!v,P!=null&&typeof P!="function"&&typeof P!="symbol"&&typeof P!="boolean"&&(o.name=P),Sx(o)}function Nx(o,c,h){c==="number"&&gm(o.ownerDocument)===o||o.defaultValue===""+h||(o.defaultValue=""+h)}function Vl(o,c,h,v){if(o=o.options,c){c={};for(var S=0;S"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Tx=!1;if(ki)try{var cd={};Object.defineProperty(cd,"passive",{get:function(){Tx=!0}}),window.addEventListener("test",cd,cd),window.removeEventListener("test",cd,cd)}catch{Tx=!1}var js=null,kx=null,xm=null;function x2(){if(xm)return xm;var o,c=kx,h=c.length,v,S="value"in js?js.value:js.textContent,_=S.length;for(o=0;o=fd),N2=" ",C2=!1;function O2(o,c){switch(o){case"keyup":return b7.indexOf(c.keyCode)!==-1;case"keydown":return c.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function E2(o){return o=o.detail,typeof o=="object"&&"data"in o?o.data:null}var Xl=!1;function j7(o,c){switch(o){case"compositionend":return E2(c);case"keypress":return c.which!==32?null:(C2=!0,N2);case"textInput":return o=c.data,o===N2&&C2?null:o;default:return null}}function S7(o,c){if(Xl)return o==="compositionend"||!$x&&O2(o,c)?(o=x2(),xm=kx=js=null,Xl=!1,o):null;switch(o){case"paste":return null;case"keypress":if(!(c.ctrlKey||c.altKey||c.metaKey)||c.ctrlKey&&c.altKey){if(c.char&&1=c)return{node:h,offset:c-o};o=v}e:{for(;h;){if(h.nextSibling){h=h.nextSibling;break e}h=h.parentNode}h=void 0}h=$2(h)}}function L2(o,c){return o&&c?o===c?!0:o&&o.nodeType===3?!1:c&&c.nodeType===3?L2(o,c.parentNode):"contains"in o?o.contains(c):o.compareDocumentPosition?!!(o.compareDocumentPosition(c)&16):!1:!1}function z2(o){o=o!=null&&o.ownerDocument!=null&&o.ownerDocument.defaultView!=null?o.ownerDocument.defaultView:window;for(var c=gm(o.document);c instanceof o.HTMLIFrameElement;){try{var h=typeof c.contentWindow.location.href=="string"}catch{h=!1}if(h)o=c.contentWindow;else break;c=gm(o.document)}return c}function zx(o){var c=o&&o.nodeName&&o.nodeName.toLowerCase();return c&&(c==="input"&&(o.type==="text"||o.type==="search"||o.type==="tel"||o.type==="url"||o.type==="password")||c==="textarea"||o.contentEditable==="true")}var k7=ki&&"documentMode"in document&&11>=document.documentMode,Zl=null,Bx=null,vd=null,qx=!1;function B2(o,c,h){var v=h.window===h?h.document:h.nodeType===9?h:h.ownerDocument;qx||Zl==null||Zl!==gm(v)||(v=Zl,"selectionStart"in v&&zx(v)?v={start:v.selectionStart,end:v.selectionEnd}:(v=(v.ownerDocument&&v.ownerDocument.defaultView||window).getSelection(),v={anchorNode:v.anchorNode,anchorOffset:v.anchorOffset,focusNode:v.focusNode,focusOffset:v.focusOffset}),vd&&pd(vd,v)||(vd=v,v=fp(Bx,"onSelect"),0>=P,S-=P,ti=1<<32-lr(c)+S|h<it?(pt=Ie,Ie=null):pt=Ie.sibling;var jt=de(se,Ie,le[it],ye);if(jt===null){Ie===null&&(Ie=pt);break}o&&Ie&&jt.alternate===null&&c(se,Ie),te=_(jt,te,it),wt===null?ze=jt:wt.sibling=jt,wt=jt,Ie=pt}if(it===le.length)return h(se,Ie),vt&&Pi(se,it),ze;if(Ie===null){for(;itit?(pt=Ie,Ie=null):pt=Ie.sibling;var Hs=de(se,Ie,jt.value,ye);if(Hs===null){Ie===null&&(Ie=pt);break}o&&Ie&&Hs.alternate===null&&c(se,Ie),te=_(Hs,te,it),wt===null?ze=Hs:wt.sibling=Hs,wt=Hs,Ie=pt}if(jt.done)return h(se,Ie),vt&&Pi(se,it),ze;if(Ie===null){for(;!jt.done;it++,jt=le.next())jt=xe(se,jt.value,ye),jt!==null&&(te=_(jt,te,it),wt===null?ze=jt:wt.sibling=jt,wt=jt);return vt&&Pi(se,it),ze}for(Ie=v(Ie);!jt.done;it++,jt=le.next())jt=me(Ie,se,it,jt.value,ye),jt!==null&&(o&&jt.alternate!==null&&Ie.delete(jt.key===null?it:jt.key),te=_(jt,te,it),wt===null?ze=jt:wt.sibling=jt,wt=jt);return o&&Ie.forEach(function(ZV){return c(se,ZV)}),vt&&Pi(se,it),ze}function Ft(se,te,le,ye){if(typeof le=="object"&&le!==null&&le.type===w&&le.key===null&&(le=le.props.children),typeof le=="object"&&le!==null){switch(le.$$typeof){case x:e:{for(var ze=le.key;te!==null;){if(te.key===ze){if(ze=le.type,ze===w){if(te.tag===7){h(se,te.sibling),ye=S(te,le.props.children),ye.return=se,se=ye;break e}}else if(te.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===M&&Do(ze)===te.type){h(se,te.sibling),ye=S(te,le.props),jd(ye,le),ye.return=se,se=ye;break e}h(se,te);break}else c(se,te);te=te.sibling}le.type===w?(ye=To(le.props.children,se.mode,ye,le.key),ye.return=se,se=ye):(ye=Am(le.type,le.key,le.props,null,se.mode,ye),jd(ye,le),ye.return=se,se=ye)}return P(se);case j:e:{for(ze=le.key;te!==null;){if(te.key===ze)if(te.tag===4&&te.stateNode.containerInfo===le.containerInfo&&te.stateNode.implementation===le.implementation){h(se,te.sibling),ye=S(te,le.children||[]),ye.return=se,se=ye;break e}else{h(se,te);break}else c(se,te);te=te.sibling}ye=Yx(le,se.mode,ye),ye.return=se,se=ye}return P(se);case M:return le=Do(le),Ft(se,te,le,ye)}if(G(le))return Pe(se,te,le,ye);if(U(le)){if(ze=U(le),typeof ze!="function")throw Error(r(150));return le=ze.call(le),Fe(se,te,le,ye)}if(typeof le.then=="function")return Ft(se,te,$m(le),ye);if(le.$$typeof===O)return Ft(se,te,Mm(se,le),ye);Im(se,le)}return typeof le=="string"&&le!==""||typeof le=="number"||typeof le=="bigint"?(le=""+le,te!==null&&te.tag===6?(h(se,te.sibling),ye=S(te,le),ye.return=se,se=ye):(h(se,te),ye=Gx(le,se.mode,ye),ye.return=se,se=ye),P(se)):h(se,te)}return function(se,te,le,ye){try{wd=0;var ze=Ft(se,te,le,ye);return lc=null,ze}catch(Ie){if(Ie===oc||Ie===Rm)throw Ie;var wt=Vr(29,Ie,null,se.mode);return wt.lanes=ye,wt.return=se,wt}finally{}}}var Io=cA(!0),uA=cA(!1),Os=!1;function sb(o){o.updateQueue={baseState:o.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function ob(o,c){o=o.updateQueue,c.updateQueue===o&&(c.updateQueue={baseState:o.baseState,firstBaseUpdate:o.firstBaseUpdate,lastBaseUpdate:o.lastBaseUpdate,shared:o.shared,callbacks:null})}function Es(o){return{lane:o,tag:0,payload:null,callback:null,next:null}}function As(o,c,h){var v=o.updateQueue;if(v===null)return null;if(v=v.shared,(At&2)!==0){var S=v.pending;return S===null?c.next=c:(c.next=S.next,S.next=c),v.pending=c,c=Em(o),G2(o,null,h),c}return Om(o,v,c,h),Em(o)}function Sd(o,c,h){if(c=c.updateQueue,c!==null&&(c=c.shared,(h&4194048)!==0)){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,t2(o,h)}}function lb(o,c){var h=o.updateQueue,v=o.alternate;if(v!==null&&(v=v.updateQueue,h===v)){var S=null,_=null;if(h=h.firstBaseUpdate,h!==null){do{var P={lane:h.lane,tag:h.tag,payload:h.payload,callback:null,next:null};_===null?S=_=P:_=_.next=P,h=h.next}while(h!==null);_===null?S=_=c:_=_.next=c}else S=_=c;h={baseState:v.baseState,firstBaseUpdate:S,lastBaseUpdate:_,shared:v.shared,callbacks:v.callbacks},o.updateQueue=h;return}o=h.lastBaseUpdate,o===null?h.firstBaseUpdate=c:o.next=c,h.lastBaseUpdate=c}var cb=!1;function _d(){if(cb){var o=sc;if(o!==null)throw o}}function Nd(o,c,h,v){cb=!1;var S=o.updateQueue;Os=!1;var _=S.firstBaseUpdate,P=S.lastBaseUpdate,B=S.shared.pending;if(B!==null){S.shared.pending=null;var J=B,ce=J.next;J.next=null,P===null?_=ce:P.next=ce,P=J;var ve=o.alternate;ve!==null&&(ve=ve.updateQueue,B=ve.lastBaseUpdate,B!==P&&(B===null?ve.firstBaseUpdate=ce:B.next=ce,ve.lastBaseUpdate=J))}if(_!==null){var xe=S.baseState;P=0,ve=ce=J=null,B=_;do{var de=B.lane&-536870913,me=de!==B.lane;if(me?(mt&de)===de:(v&de)===de){de!==0&&de===ic&&(cb=!0),ve!==null&&(ve=ve.next={lane:0,tag:B.tag,payload:B.payload,callback:null,next:null});e:{var Pe=o,Fe=B;de=c;var Ft=h;switch(Fe.tag){case 1:if(Pe=Fe.payload,typeof Pe=="function"){xe=Pe.call(Ft,xe,de);break e}xe=Pe;break e;case 3:Pe.flags=Pe.flags&-65537|128;case 0:if(Pe=Fe.payload,de=typeof Pe=="function"?Pe.call(Ft,xe,de):Pe,de==null)break e;xe=p({},xe,de);break e;case 2:Os=!0}}de=B.callback,de!==null&&(o.flags|=64,me&&(o.flags|=8192),me=S.callbacks,me===null?S.callbacks=[de]:me.push(de))}else me={lane:de,tag:B.tag,payload:B.payload,callback:B.callback,next:null},ve===null?(ce=ve=me,J=xe):ve=ve.next=me,P|=de;if(B=B.next,B===null){if(B=S.shared.pending,B===null)break;me=B,B=me.next,me.next=null,S.lastBaseUpdate=me,S.shared.pending=null}}while(!0);ve===null&&(J=xe),S.baseState=J,S.firstBaseUpdate=ce,S.lastBaseUpdate=ve,_===null&&(S.shared.lanes=0),Rs|=P,o.lanes=P,o.memoizedState=xe}}function dA(o,c){if(typeof o!="function")throw Error(r(191,o));o.call(c)}function fA(o,c){var h=o.callbacks;if(h!==null)for(o.callbacks=null,o=0;o_?_:8;var P=$.T,B={};$.T=B,Eb(o,!1,c,h);try{var J=S(),ce=$.S;if(ce!==null&&ce(B,J),J!==null&&typeof J=="object"&&typeof J.then=="function"){var ve=B7(J,v);Ed(o,c,ve,Zr(o))}else Ed(o,c,v,Zr(o))}catch(xe){Ed(o,c,{then:function(){},status:"rejected",reason:xe},Zr())}finally{I.p=_,P!==null&&B.types!==null&&(P.types=B.types),$.T=P}}function V7(){}function Cb(o,c,h,v){if(o.tag!==5)throw Error(r(476));var S=HA(o).queue;UA(o,S,c,q,h===null?V7:function(){return WA(o),h(v)})}function HA(o){var c=o.memoizedState;if(c!==null)return c;c={memoizedState:q,baseState:q,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ii,lastRenderedState:q},next:null};var h={};return c.next={memoizedState:h,baseState:h,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ii,lastRenderedState:h},next:null},o.memoizedState=c,o=o.alternate,o!==null&&(o.memoizedState=c),c}function WA(o){var c=HA(o);c.next===null&&(c=o.alternate.memoizedState),Ed(o,c.next.queue,{},Zr())}function Ob(){return tr(Wd)}function VA(){return _n().memoizedState}function GA(){return _n().memoizedState}function G7(o){for(var c=o.return;c!==null;){switch(c.tag){case 24:case 3:var h=Zr();o=Es(h);var v=As(c,o,h);v!==null&&(Rr(v,c,h),Sd(v,c,h)),c={cache:nb()},o.payload=c;return}c=c.return}}function Y7(o,c,h){var v=Zr();h={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Gm(o)?KA(c,h):(h=Wx(o,c,h,v),h!==null&&(Rr(h,o,v),XA(h,c,v)))}function YA(o,c,h){var v=Zr();Ed(o,c,h,v)}function Ed(o,c,h,v){var S={lane:v,revertLane:0,gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null};if(Gm(o))KA(c,S);else{var _=o.alternate;if(o.lanes===0&&(_===null||_.lanes===0)&&(_=c.lastRenderedReducer,_!==null))try{var P=c.lastRenderedState,B=_(P,h);if(S.hasEagerState=!0,S.eagerState=B,Wr(B,P))return Om(o,c,S,0),Vt===null&&Cm(),!1}catch{}finally{}if(h=Wx(o,c,S,v),h!==null)return Rr(h,o,v),XA(h,c,v),!0}return!1}function Eb(o,c,h,v){if(v={lane:2,revertLane:s0(),gesture:null,action:v,hasEagerState:!1,eagerState:null,next:null},Gm(o)){if(c)throw Error(r(479))}else c=Wx(o,h,v,2),c!==null&&Rr(c,o,2)}function Gm(o){var c=o.alternate;return o===tt||c!==null&&c===tt}function KA(o,c){uc=Bm=!0;var h=o.pending;h===null?c.next=c:(c.next=h.next,h.next=c),o.pending=c}function XA(o,c,h){if((h&4194048)!==0){var v=c.lanes;v&=o.pendingLanes,h|=v,c.lanes=h,t2(o,h)}}var Ad={readContext:tr,use:Um,useCallback:bn,useContext:bn,useEffect:bn,useImperativeHandle:bn,useLayoutEffect:bn,useInsertionEffect:bn,useMemo:bn,useReducer:bn,useRef:bn,useState:bn,useDebugValue:bn,useDeferredValue:bn,useTransition:bn,useSyncExternalStore:bn,useId:bn,useHostTransitionStatus:bn,useFormState:bn,useActionState:bn,useOptimistic:bn,useMemoCache:bn,useCacheRefresh:bn};Ad.useEffectEvent=bn;var ZA={readContext:tr,use:Um,useCallback:function(o,c){return jr().memoizedState=[o,c===void 0?null:c],o},useContext:tr,useEffect:RA,useImperativeHandle:function(o,c,h){h=h!=null?h.concat([o]):null,Wm(4194308,4,LA.bind(null,c,o),h)},useLayoutEffect:function(o,c){return Wm(4194308,4,o,c)},useInsertionEffect:function(o,c){Wm(4,2,o,c)},useMemo:function(o,c){var h=jr();c=c===void 0?null:c;var v=o();if(Lo){ei(!0);try{o()}finally{ei(!1)}}return h.memoizedState=[v,c],v},useReducer:function(o,c,h){var v=jr();if(h!==void 0){var S=h(c);if(Lo){ei(!0);try{h(c)}finally{ei(!1)}}}else S=c;return v.memoizedState=v.baseState=S,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:o,lastRenderedState:S},v.queue=o,o=o.dispatch=Y7.bind(null,tt,o),[v.memoizedState,o]},useRef:function(o){var c=jr();return o={current:o},c.memoizedState=o},useState:function(o){o=wb(o);var c=o.queue,h=YA.bind(null,tt,c);return c.dispatch=h,[o.memoizedState,h]},useDebugValue:_b,useDeferredValue:function(o,c){var h=jr();return Nb(h,o,c)},useTransition:function(){var o=wb(!1);return o=UA.bind(null,tt,o.queue,!0,!1),jr().memoizedState=o,[!1,o]},useSyncExternalStore:function(o,c,h){var v=tt,S=jr();if(vt){if(h===void 0)throw Error(r(407));h=h()}else{if(h=c(),Vt===null)throw Error(r(349));(mt&127)!==0||yA(v,c,h)}S.memoizedState=h;var _={value:h,getSnapshot:c};return S.queue=_,RA(bA.bind(null,v,_,o),[o]),v.flags|=2048,fc(9,{destroy:void 0},xA.bind(null,v,_,h,c),null),h},useId:function(){var o=jr(),c=Vt.identifierPrefix;if(vt){var h=ni,v=ti;h=(v&~(1<<32-lr(v)-1)).toString(32)+h,c="_"+c+"R_"+h,h=qm++,0<\/script>",_=_.removeChild(_.firstChild);break;case"select":_=typeof v.is=="string"?P.createElement("select",{is:v.is}):P.createElement("select"),v.multiple?_.multiple=!0:v.size&&(_.size=v.size);break;default:_=typeof v.is=="string"?P.createElement(S,{is:v.is}):P.createElement(S)}}_[Jn]=c,_[Er]=v;e:for(P=c.child;P!==null;){if(P.tag===5||P.tag===6)_.appendChild(P.stateNode);else if(P.tag!==4&&P.tag!==27&&P.child!==null){P.child.return=P,P=P.child;continue}if(P===c)break e;for(;P.sibling===null;){if(P.return===null||P.return===c)break e;P=P.return}P.sibling.return=P.return,P=P.sibling}c.stateNode=_;e:switch(rr(_,S,v),S){case"button":case"input":case"select":case"textarea":v=!!v.autoFocus;break e;case"img":v=!0;break e;default:v=!1}v&&zi(c)}}return cn(c),Fb(c,c.type,o===null?null:o.memoizedProps,c.pendingProps,h),null;case 6:if(o&&c.stateNode!=null)o.memoizedProps!==v&&zi(c);else{if(typeof v!="string"&&c.stateNode===null)throw Error(r(166));if(o=he.current,rc(c)){if(o=c.stateNode,h=c.memoizedProps,v=null,S=er,S!==null)switch(S.tag){case 27:case 5:v=S.memoizedProps}o[Jn]=c,o=!!(o.nodeValue===h||v!==null&&v.suppressHydrationWarning===!0||vk(o.nodeValue,h)),o||Ns(c,!0)}else o=hp(o).createTextNode(v),o[Jn]=c,c.stateNode=o}return cn(c),null;case 31:if(h=c.memoizedState,o===null||o.memoizedState!==null){if(v=rc(c),h!==null){if(o===null){if(!v)throw Error(r(318));if(o=c.memoizedState,o=o!==null?o.dehydrated:null,!o)throw Error(r(557));o[Jn]=c}else ko(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;cn(c),o=!1}else h=Qx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=h),o=!0;if(!o)return c.flags&256?(Yr(c),c):(Yr(c),null);if((c.flags&128)!==0)throw Error(r(558))}return cn(c),null;case 13:if(v=c.memoizedState,o===null||o.memoizedState!==null&&o.memoizedState.dehydrated!==null){if(S=rc(c),v!==null&&v.dehydrated!==null){if(o===null){if(!S)throw Error(r(318));if(S=c.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(r(317));S[Jn]=c}else ko(),(c.flags&128)===0&&(c.memoizedState=null),c.flags|=4;cn(c),S=!1}else S=Qx(),o!==null&&o.memoizedState!==null&&(o.memoizedState.hydrationErrors=S),S=!0;if(!S)return c.flags&256?(Yr(c),c):(Yr(c),null)}return Yr(c),(c.flags&128)!==0?(c.lanes=h,c):(h=v!==null,o=o!==null&&o.memoizedState!==null,h&&(v=c.child,S=null,v.alternate!==null&&v.alternate.memoizedState!==null&&v.alternate.memoizedState.cachePool!==null&&(S=v.alternate.memoizedState.cachePool.pool),_=null,v.memoizedState!==null&&v.memoizedState.cachePool!==null&&(_=v.memoizedState.cachePool.pool),_!==S&&(v.flags|=2048)),h!==o&&h&&(c.child.flags|=8192),Qm(c,c.updateQueue),cn(c),null);case 4:return Y(),o===null&&u0(c.stateNode.containerInfo),cn(c),null;case 10:return Di(c.type),cn(c),null;case 19:if(z(Sn),v=c.memoizedState,v===null)return cn(c),null;if(S=(c.flags&128)!==0,_=v.rendering,_===null)if(S)kd(v,!1);else{if(wn!==0||o!==null&&(o.flags&128)!==0)for(o=c.child;o!==null;){if(_=zm(o),_!==null){for(c.flags|=128,kd(v,!1),o=_.updateQueue,c.updateQueue=o,Qm(c,o),c.subtreeFlags=0,o=h,h=c.child;h!==null;)Y2(h,o),h=h.sibling;return K(Sn,Sn.current&1|2),vt&&Pi(c,v.treeForkCount),c.child}o=o.sibling}v.tail!==null&&re()>rp&&(c.flags|=128,S=!0,kd(v,!1),c.lanes=4194304)}else{if(!S)if(o=zm(_),o!==null){if(c.flags|=128,S=!0,o=o.updateQueue,c.updateQueue=o,Qm(c,o),kd(v,!0),v.tail===null&&v.tailMode==="hidden"&&!_.alternate&&!vt)return cn(c),null}else 2*re()-v.renderingStartTime>rp&&h!==536870912&&(c.flags|=128,S=!0,kd(v,!1),c.lanes=4194304);v.isBackwards?(_.sibling=c.child,c.child=_):(o=v.last,o!==null?o.sibling=_:c.child=_,v.last=_)}return v.tail!==null?(o=v.tail,v.rendering=o,v.tail=o.sibling,v.renderingStartTime=re(),o.sibling=null,h=Sn.current,K(Sn,S?h&1|2:h&1),vt&&Pi(c,v.treeForkCount),o):(cn(c),null);case 22:case 23:return Yr(c),db(),v=c.memoizedState!==null,o!==null?o.memoizedState!==null!==v&&(c.flags|=8192):v&&(c.flags|=8192),v?(h&536870912)!==0&&(c.flags&128)===0&&(cn(c),c.subtreeFlags&6&&(c.flags|=8192)):cn(c),h=c.updateQueue,h!==null&&Qm(c,h.retryQueue),h=null,o!==null&&o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(h=o.memoizedState.cachePool.pool),v=null,c.memoizedState!==null&&c.memoizedState.cachePool!==null&&(v=c.memoizedState.cachePool.pool),v!==h&&(c.flags|=2048),o!==null&&z(Ro),null;case 24:return h=null,o!==null&&(h=o.memoizedState.cache),c.memoizedState.cache!==h&&(c.flags|=2048),Di(Nn),cn(c),null;case 25:return null;case 30:return null}throw Error(r(156,c.tag))}function J7(o,c){switch(Xx(c),c.tag){case 1:return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 3:return Di(Nn),Y(),o=c.flags,(o&65536)!==0&&(o&128)===0?(c.flags=o&-65537|128,c):null;case 26:case 27:case 5:return je(c),null;case 31:if(c.memoizedState!==null){if(Yr(c),c.alternate===null)throw Error(r(340));ko()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 13:if(Yr(c),o=c.memoizedState,o!==null&&o.dehydrated!==null){if(c.alternate===null)throw Error(r(340));ko()}return o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 19:return z(Sn),null;case 4:return Y(),null;case 10:return Di(c.type),null;case 22:case 23:return Yr(c),db(),o!==null&&z(Ro),o=c.flags,o&65536?(c.flags=o&-65537|128,c):null;case 24:return Di(Nn),null;case 25:return null;default:return null}}function wT(o,c){switch(Xx(c),c.tag){case 3:Di(Nn),Y();break;case 26:case 27:case 5:je(c);break;case 4:Y();break;case 31:c.memoizedState!==null&&Yr(c);break;case 13:Yr(c);break;case 19:z(Sn);break;case 10:Di(c.type);break;case 22:case 23:Yr(c),db(),o!==null&&z(Ro);break;case 24:Di(Nn)}}function Md(o,c){try{var h=c.updateQueue,v=h!==null?h.lastEffect:null;if(v!==null){var S=v.next;h=S;do{if((h.tag&o)===o){v=void 0;var _=h.create,P=h.inst;v=_(),P.destroy=v}h=h.next}while(h!==S)}}catch(B){$t(c,c.return,B)}}function Ms(o,c,h){try{var v=c.updateQueue,S=v!==null?v.lastEffect:null;if(S!==null){var _=S.next;v=_;do{if((v.tag&o)===o){var P=v.inst,B=P.destroy;if(B!==void 0){P.destroy=void 0,S=c;var J=h,ce=B;try{ce()}catch(ve){$t(S,J,ve)}}}v=v.next}while(v!==_)}}catch(ve){$t(c,c.return,ve)}}function jT(o){var c=o.updateQueue;if(c!==null){var h=o.stateNode;try{fA(c,h)}catch(v){$t(o,o.return,v)}}}function ST(o,c,h){h.props=zo(o.type,o.memoizedProps),h.state=o.memoizedState;try{h.componentWillUnmount()}catch(v){$t(o,c,v)}}function Pd(o,c){try{var h=o.ref;if(h!==null){switch(o.tag){case 26:case 27:case 5:var v=o.stateNode;break;case 30:v=o.stateNode;break;default:v=o.stateNode}typeof h=="function"?o.refCleanup=h(v):h.current=v}}catch(S){$t(o,c,S)}}function ri(o,c){var h=o.ref,v=o.refCleanup;if(h!==null)if(typeof v=="function")try{v()}catch(S){$t(o,c,S)}finally{o.refCleanup=null,o=o.alternate,o!=null&&(o.refCleanup=null)}else if(typeof h=="function")try{h(null)}catch(S){$t(o,c,S)}else h.current=null}function _T(o){var c=o.type,h=o.memoizedProps,v=o.stateNode;try{e:switch(c){case"button":case"input":case"select":case"textarea":h.autoFocus&&v.focus();break e;case"img":h.src?v.src=h.src:h.srcSet&&(v.srcset=h.srcSet)}}catch(S){$t(o,o.return,S)}}function Ub(o,c,h){try{var v=o.stateNode;wV(v,o.type,h,c),v[Er]=c}catch(S){$t(o,o.return,S)}}function NT(o){return o.tag===5||o.tag===3||o.tag===26||o.tag===27&&zs(o.type)||o.tag===4}function Hb(o){e:for(;;){for(;o.sibling===null;){if(o.return===null||NT(o.return))return null;o=o.return}for(o.sibling.return=o.return,o=o.sibling;o.tag!==5&&o.tag!==6&&o.tag!==18;){if(o.tag===27&&zs(o.type)||o.flags&2||o.child===null||o.tag===4)continue e;o.child.return=o,o=o.child}if(!(o.flags&2))return o.stateNode}}function Wb(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?(h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h).insertBefore(o,c):(c=h.nodeType===9?h.body:h.nodeName==="HTML"?h.ownerDocument.body:h,c.appendChild(o),h=h._reactRootContainer,h!=null||c.onclick!==null||(c.onclick=Ti));else if(v!==4&&(v===27&&zs(o.type)&&(h=o.stateNode,c=null),o=o.child,o!==null))for(Wb(o,c,h),o=o.sibling;o!==null;)Wb(o,c,h),o=o.sibling}function Jm(o,c,h){var v=o.tag;if(v===5||v===6)o=o.stateNode,c?h.insertBefore(o,c):h.appendChild(o);else if(v!==4&&(v===27&&zs(o.type)&&(h=o.stateNode),o=o.child,o!==null))for(Jm(o,c,h),o=o.sibling;o!==null;)Jm(o,c,h),o=o.sibling}function CT(o){var c=o.stateNode,h=o.memoizedProps;try{for(var v=o.type,S=c.attributes;S.length;)c.removeAttributeNode(S[0]);rr(c,v,h),c[Jn]=o,c[Er]=h}catch(_){$t(o,o.return,_)}}var Bi=!1,En=!1,Vb=!1,OT=typeof WeakSet=="function"?WeakSet:Set,Un=null;function eV(o,c){if(o=o.containerInfo,h0=bp,o=z2(o),zx(o)){if("selectionStart"in o)var h={start:o.selectionStart,end:o.selectionEnd};else e:{h=(h=o.ownerDocument)&&h.defaultView||window;var v=h.getSelection&&h.getSelection();if(v&&v.rangeCount!==0){h=v.anchorNode;var S=v.anchorOffset,_=v.focusNode;v=v.focusOffset;try{h.nodeType,_.nodeType}catch{h=null;break e}var P=0,B=-1,J=-1,ce=0,ve=0,xe=o,de=null;t:for(;;){for(var me;xe!==h||S!==0&&xe.nodeType!==3||(B=P+S),xe!==_||v!==0&&xe.nodeType!==3||(J=P+v),xe.nodeType===3&&(P+=xe.nodeValue.length),(me=xe.firstChild)!==null;)de=xe,xe=me;for(;;){if(xe===o)break t;if(de===h&&++ce===S&&(B=P),de===_&&++ve===v&&(J=P),(me=xe.nextSibling)!==null)break;xe=de,de=xe.parentNode}xe=me}h=B===-1||J===-1?null:{start:B,end:J}}else h=null}h=h||{start:0,end:0}}else h=null;for(m0={focusedElem:o,selectionRange:h},bp=!1,Un=c;Un!==null;)if(c=Un,o=c.child,(c.subtreeFlags&1028)!==0&&o!==null)o.return=c,Un=o;else for(;Un!==null;){switch(c=Un,_=c.alternate,o=c.flags,c.tag){case 0:if((o&4)!==0&&(o=c.updateQueue,o=o!==null?o.events:null,o!==null))for(h=0;h title"))),rr(_,v,h),_[Jn]=o,Fn(_),v=_;break e;case"link":var P=Pk("link","href",S).get(v+(h.href||""));if(P){for(var B=0;BFt&&(P=Ft,Ft=Fe,Fe=P);var se=I2(B,Fe),te=I2(B,Ft);if(se&&te&&(me.rangeCount!==1||me.anchorNode!==se.node||me.anchorOffset!==se.offset||me.focusNode!==te.node||me.focusOffset!==te.offset)){var le=xe.createRange();le.setStart(se.node,se.offset),me.removeAllRanges(),Fe>Ft?(me.addRange(le),me.extend(te.node,te.offset)):(le.setEnd(te.node,te.offset),me.addRange(le))}}}}for(xe=[],me=B;me=me.parentNode;)me.nodeType===1&&xe.push({element:me,left:me.scrollLeft,top:me.scrollTop});for(typeof B.focus=="function"&&B.focus(),B=0;Bh?32:h,$.T=null,h=Jb,Jb=null;var _=$s,P=Wi;if(Pn=0,gc=$s=null,Wi=0,(At&6)!==0)throw Error(r(331));var B=At;if(At|=4,LT(_.current),DT(_,_.current,P,h),At=B,zd(0,!1),wr&&typeof wr.onPostCommitFiberRoot=="function")try{wr.onPostCommitFiberRoot(jo,_)}catch{}return!0}finally{I.p=S,$.T=v,nk(o,c)}}function ak(o,c,h){c=pa(h,c),c=Mb(o.stateNode,c,2),o=As(o,c,2),o!==null&&(id(o,2),ai(o))}function $t(o,c,h){if(o.tag===3)ak(o,o,h);else for(;c!==null;){if(c.tag===3){ak(c,o,h);break}else if(c.tag===1){var v=c.stateNode;if(typeof c.type.getDerivedStateFromError=="function"||typeof v.componentDidCatch=="function"&&(Ds===null||!Ds.has(v))){o=pa(h,o),h=iT(2),v=As(c,h,2),v!==null&&(sT(h,v,c,o),id(v,2),ai(v));break}}c=c.return}}function r0(o,c,h){var v=o.pingCache;if(v===null){v=o.pingCache=new rV;var S=new Set;v.set(c,S)}else S=v.get(c),S===void 0&&(S=new Set,v.set(c,S));S.has(h)||(Kb=!0,S.add(h),o=lV.bind(null,o,c,h),c.then(o,o))}function lV(o,c,h){var v=o.pingCache;v!==null&&v.delete(c),o.pingedLanes|=o.suspendedLanes&h,o.warmLanes&=~h,Vt===o&&(mt&h)===h&&(wn===4||wn===3&&(mt&62914560)===mt&&300>re()-np?(At&2)===0&&yc(o,0):Xb|=h,vc===mt&&(vc=0)),ai(o)}function ik(o,c){c===0&&(c=Bl()),o=Ao(o,c),o!==null&&(id(o,c),ai(o))}function cV(o){var c=o.memoizedState,h=0;c!==null&&(h=c.retryLane),ik(o,h)}function uV(o,c){var h=0;switch(o.tag){case 31:case 13:var v=o.stateNode,S=o.memoizedState;S!==null&&(h=S.retryLane);break;case 19:v=o.stateNode;break;case 22:v=o.stateNode._retryCache;break;default:throw Error(r(314))}v!==null&&v.delete(c),ik(o,h)}function dV(o,c){return fn(o,c)}var cp=null,bc=null,a0=!1,up=!1,i0=!1,Ls=0;function ai(o){o!==bc&&o.next===null&&(bc===null?cp=bc=o:bc=bc.next=o),up=!0,a0||(a0=!0,hV())}function zd(o,c){if(!i0&&up){i0=!0;do for(var h=!1,v=cp;v!==null;){if(o!==0){var S=v.pendingLanes;if(S===0)var _=0;else{var P=v.suspendedLanes,B=v.pingedLanes;_=(1<<31-lr(42|o)+1)-1,_&=S&~(P&~B),_=_&201326741?_&201326741|1:_?_|2:0}_!==0&&(h=!0,ck(v,_))}else _=mt,_=zl(v,v===Vt?_:0,v.cancelPendingCommit!==null||v.timeoutHandle!==-1),(_&3)===0||So(v,_)||(h=!0,ck(v,_));v=v.next}while(h);i0=!1}}function fV(){sk()}function sk(){up=a0=!1;var o=0;Ls!==0&&SV()&&(o=Ls);for(var c=re(),h=null,v=cp;v!==null;){var S=v.next,_=ok(v,c);_===0?(v.next=null,h===null?cp=S:h.next=S,S===null&&(bc=h)):(h=v,(o!==0||(_&3)!==0)&&(up=!0)),v=S}Pn!==0&&Pn!==5||zd(o),Ls!==0&&(Ls=0)}function ok(o,c){for(var h=o.suspendedLanes,v=o.pingedLanes,S=o.expirationTimes,_=o.pendingLanes&-62914561;0<_;){var P=31-lr(_),B=1<B)break;var ve=J.transferSize,xe=J.initiatorType;ve&&gk(xe)&&(J=J.responseEnd,P+=ve*(J"u"?null:document;function Ak(o,c,h){var v=wc;if(v&&typeof c=="string"&&c){var S=ha(c);S='link[rel="'+o+'"][href="'+S+'"]',typeof h=="string"&&(S+='[crossorigin="'+h+'"]'),Ek.has(S)||(Ek.add(S),o={rel:o,crossOrigin:h,href:c},v.querySelector(S)===null&&(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function MV(o){Vi.D(o),Ak("dns-prefetch",o,null)}function PV(o,c){Vi.C(o,c),Ak("preconnect",o,c)}function RV(o,c,h){Vi.L(o,c,h);var v=wc;if(v&&o&&c){var S='link[rel="preload"][as="'+ha(c)+'"]';c==="image"&&h&&h.imageSrcSet?(S+='[imagesrcset="'+ha(h.imageSrcSet)+'"]',typeof h.imageSizes=="string"&&(S+='[imagesizes="'+ha(h.imageSizes)+'"]')):S+='[href="'+ha(o)+'"]';var _=S;switch(c){case"style":_=jc(o);break;case"script":_=Sc(o)}wa.has(_)||(o=p({rel:"preload",href:c==="image"&&h&&h.imageSrcSet?void 0:o,as:c},h),wa.set(_,o),v.querySelector(S)!==null||c==="style"&&v.querySelector(Ud(_))||c==="script"&&v.querySelector(Hd(_))||(c=v.createElement("link"),rr(c,"link",o),Fn(c),v.head.appendChild(c)))}}function DV(o,c){Vi.m(o,c);var h=wc;if(h&&o){var v=c&&typeof c.as=="string"?c.as:"script",S='link[rel="modulepreload"][as="'+ha(v)+'"][href="'+ha(o)+'"]',_=S;switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":_=Sc(o)}if(!wa.has(_)&&(o=p({rel:"modulepreload",href:o},c),wa.set(_,o),h.querySelector(S)===null)){switch(v){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(h.querySelector(Hd(_)))return}v=h.createElement("link"),rr(v,"link",o),Fn(v),h.head.appendChild(v)}}}function $V(o,c,h){Vi.S(o,c,h);var v=wc;if(v&&o){var S=Hl(v).hoistableStyles,_=jc(o);c=c||"default";var P=S.get(_);if(!P){var B={loading:0,preload:null};if(P=v.querySelector(Ud(_)))B.loading=5;else{o=p({rel:"stylesheet",href:o,"data-precedence":c},h),(h=wa.get(_))&&w0(o,h);var J=P=v.createElement("link");Fn(J),rr(J,"link",o),J._p=new Promise(function(ce,ve){J.onload=ce,J.onerror=ve}),J.addEventListener("load",function(){B.loading|=1}),J.addEventListener("error",function(){B.loading|=2}),B.loading|=4,pp(P,c,v)}P={type:"stylesheet",instance:P,count:1,state:B},S.set(_,P)}}}function IV(o,c){Vi.X(o,c);var h=wc;if(h&&o){var v=Hl(h).hoistableScripts,S=Sc(o),_=v.get(S);_||(_=h.querySelector(Hd(S)),_||(o=p({src:o,async:!0},c),(c=wa.get(S))&&j0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function LV(o,c){Vi.M(o,c);var h=wc;if(h&&o){var v=Hl(h).hoistableScripts,S=Sc(o),_=v.get(S);_||(_=h.querySelector(Hd(S)),_||(o=p({src:o,async:!0,type:"module"},c),(c=wa.get(S))&&j0(o,c),_=h.createElement("script"),Fn(_),rr(_,"link",o),h.head.appendChild(_)),_={type:"script",instance:_,count:1,state:null},v.set(S,_))}}function Tk(o,c,h,v){var S=(S=he.current)?mp(S):null;if(!S)throw Error(r(446));switch(o){case"meta":case"title":return null;case"style":return typeof h.precedence=="string"&&typeof h.href=="string"?(c=jc(h.href),h=Hl(S).hoistableStyles,v=h.get(c),v||(v={type:"style",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};case"link":if(h.rel==="stylesheet"&&typeof h.href=="string"&&typeof h.precedence=="string"){o=jc(h.href);var _=Hl(S).hoistableStyles,P=_.get(o);if(P||(S=S.ownerDocument||S,P={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},_.set(o,P),(_=S.querySelector(Ud(o)))&&!_._p&&(P.instance=_,P.state.loading=5),wa.has(o)||(h={rel:"preload",as:"style",href:h.href,crossOrigin:h.crossOrigin,integrity:h.integrity,media:h.media,hrefLang:h.hrefLang,referrerPolicy:h.referrerPolicy},wa.set(o,h),_||zV(S,o,h,P.state))),c&&v===null)throw Error(r(528,""));return P}if(c&&v!==null)throw Error(r(529,""));return null;case"script":return c=h.async,h=h.src,typeof h=="string"&&c&&typeof c!="function"&&typeof c!="symbol"?(c=Sc(h),h=Hl(S).hoistableScripts,v=h.get(c),v||(v={type:"script",instance:null,count:0,state:null},h.set(c,v)),v):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,o))}}function jc(o){return'href="'+ha(o)+'"'}function Ud(o){return'link[rel="stylesheet"]['+o+"]"}function kk(o){return p({},o,{"data-precedence":o.precedence,precedence:null})}function zV(o,c,h,v){o.querySelector('link[rel="preload"][as="style"]['+c+"]")?v.loading=1:(c=o.createElement("link"),v.preload=c,c.addEventListener("load",function(){return v.loading|=1}),c.addEventListener("error",function(){return v.loading|=2}),rr(c,"link",h),Fn(c),o.head.appendChild(c))}function Sc(o){return'[src="'+ha(o)+'"]'}function Hd(o){return"script[async]"+o}function Mk(o,c,h){if(c.count++,c.instance===null)switch(c.type){case"style":var v=o.querySelector('style[data-href~="'+ha(h.href)+'"]');if(v)return c.instance=v,Fn(v),v;var S=p({},h,{"data-href":h.href,"data-precedence":h.precedence,href:null,precedence:null});return v=(o.ownerDocument||o).createElement("style"),Fn(v),rr(v,"style",S),pp(v,h.precedence,o),c.instance=v;case"stylesheet":S=jc(h.href);var _=o.querySelector(Ud(S));if(_)return c.state.loading|=4,c.instance=_,Fn(_),_;v=kk(h),(S=wa.get(S))&&w0(v,S),_=(o.ownerDocument||o).createElement("link"),Fn(_);var P=_;return P._p=new Promise(function(B,J){P.onload=B,P.onerror=J}),rr(_,"link",v),c.state.loading|=4,pp(_,h.precedence,o),c.instance=_;case"script":return _=Sc(h.src),(S=o.querySelector(Hd(_)))?(c.instance=S,Fn(S),S):(v=h,(S=wa.get(_))&&(v=p({},h),j0(v,S)),o=o.ownerDocument||o,S=o.createElement("script"),Fn(S),rr(S,"link",v),o.head.appendChild(S),c.instance=S);case"void":return null;default:throw Error(r(443,c.type))}else c.type==="stylesheet"&&(c.state.loading&4)===0&&(v=c.instance,c.state.loading|=4,pp(v,h.precedence,o));return c.instance}function pp(o,c,h){for(var v=h.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),S=v.length?v[v.length-1]:null,_=S,P=0;P title"):null)}function BV(o,c,h){if(h===1||c.itemProp!=null)return!1;switch(o){case"meta":case"title":return!0;case"style":if(typeof c.precedence!="string"||typeof c.href!="string"||c.href==="")break;return!0;case"link":if(typeof c.rel!="string"||typeof c.href!="string"||c.href===""||c.onLoad||c.onError)break;switch(c.rel){case"stylesheet":return o=c.disabled,typeof c.precedence=="string"&&o==null;default:return!0}case"script":if(c.async&&typeof c.async!="function"&&typeof c.async!="symbol"&&!c.onLoad&&!c.onError&&c.src&&typeof c.src=="string")return!0}return!1}function Dk(o){return!(o.type==="stylesheet"&&(o.state.loading&3)===0)}function qV(o,c,h,v){if(h.type==="stylesheet"&&(typeof v.media!="string"||matchMedia(v.media).matches!==!1)&&(h.state.loading&4)===0){if(h.instance===null){var S=jc(v.href),_=c.querySelector(Ud(S));if(_){c=_._p,c!==null&&typeof c=="object"&&typeof c.then=="function"&&(o.count++,o=gp.bind(o),c.then(o,o)),h.state.loading|=4,h.instance=_,Fn(_);return}_=c.ownerDocument||c,v=kk(v),(S=wa.get(S))&&w0(v,S),_=_.createElement("link"),Fn(_);var P=_;P._p=new Promise(function(B,J){P.onload=B,P.onerror=J}),rr(_,"link",v),h.instance=_}o.stylesheets===null&&(o.stylesheets=new Map),o.stylesheets.set(h,c),(c=h.state.preload)&&(h.state.loading&3)===0&&(o.count++,h=gp.bind(o),c.addEventListener("load",h),c.addEventListener("error",h))}}var S0=0;function FV(o,c){return o.stylesheets&&o.count===0&&xp(o,o.stylesheets),0S0?50:800)+c);return o.unsuspend=h,function(){o.unsuspend=null,clearTimeout(v),clearTimeout(S)}}:null}function gp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)xp(this,this.stylesheets);else if(this.unsuspend){var o=this.unsuspend;this.unsuspend=null,o()}}}var yp=null;function xp(o,c){o.stylesheets=null,o.unsuspend!==null&&(o.count++,yp=new Map,c.forEach(UV,o),yp=null,gp.call(o))}function UV(o,c){if(!(c.state.loading&4)){var h=yp.get(o);if(h)var v=h.get(null);else{h=new Map,yp.set(o,h);for(var S=o.querySelectorAll("link[data-precedence],style[data-precedence]"),_=0;_"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),M0.exports=iG(),M0.exports}var oG=sG();const x_=new WeakMap,lG=new WeakMap,yv={current:[]};let $0=!1,Sf=0;const mf=new Set,Ep=new Map;function n5(e){for(const t of e){if(yv.current.includes(t))continue;yv.current.push(t),t.recompute();const n=lG.get(t);if(n)for(const r of n){const a=x_.get(r);a?.length&&n5(a)}}}function cG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function uG(e){const t={prevVal:e.prevState,currentVal:e.state};for(const n of e.listeners)n(t)}function r5(e){if(Sf>0&&!Ep.has(e)&&Ep.set(e,e.prevState),mf.add(e),!(Sf>0)&&!$0)try{for($0=!0;mf.size>0;){const t=Array.from(mf);mf.clear();for(const n of t){const r=Ep.get(n)??n.prevState;n.prevState=r,cG(n)}for(const n of t){const r=x_.get(n);r&&(yv.current.push(n),n5(r))}for(const n of t){const r=x_.get(n);if(r)for(const a of r)uG(a)}}}finally{$0=!1,yv.current=[],Ep.clear()}}function _f(e){Sf++;try{e()}finally{if(Sf--,Sf===0){const t=mf.values().next().value;t&&r5(t)}}}function dG(e){return typeof e=="function"}class fG{constructor(t,n){this.listeners=new Set,this.subscribe=r=>{var a,s;this.listeners.add(r);const l=(s=(a=this.options)==null?void 0:a.onSubscribe)==null?void 0:s.call(a,r,this);return()=>{this.listeners.delete(r),l?.()}},this.prevState=t,this.state=t,this.options=n}setState(t){var n,r,a;this.prevState=this.state,(n=this.options)!=null&&n.updateFn?this.state=this.options.updateFn(this.prevState)(t):dG(t)?this.state=t(this.prevState):this.state=t,(a=(r=this.options)==null?void 0:r.onUpdate)==null||a.call(r),r5(this)}}const Js="__TSR_index",iM="popstate",sM="beforeunload";function hG(e){let t=e.getLocation();const n=new Set,r=l=>{t=e.getLocation(),n.forEach(u=>u({location:t,action:l}))},a=l=>{e.notifyOnIndexChange??!0?r(l):t=e.getLocation()},s=async({task:l,navigateOpts:u,...d})=>{if(u?.ignoreBlocker??!1){l();return}const m=e.getBlockers?.()??[],p=d.type==="PUSH"||d.type==="REPLACE";if(typeof document<"u"&&m.length&&p)for(const g of m){const x=xv(d.path,d.state);if(await g.blockerFn({currentLocation:t,nextLocation:x,action:d.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,u,d)=>{const f=t.state[Js];u=oM(f+1,u),s({task:()=>{e.pushState(l,u),r({type:"PUSH"})},navigateOpts:d,type:"PUSH",path:l,state:u})},replace:(l,u,d)=>{const f=t.state[Js];u=oM(f,u),s({task:()=>{e.replaceState(l,u),r({type:"REPLACE"})},navigateOpts:d,type:"REPLACE",path:l,state:u})},go:(l,u)=>{s({task:()=>{e.go(l),a({type:"GO",index:l})},navigateOpts:u,type:"GO"})},back:l=>{s({task:()=>{e.back(l?.ignoreBlocker??!1),a({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{s({task:()=>{e.forward(l?.ignoreBlocker??!1),a({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[Js]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const u=e.getBlockers?.()??[];return e.setBlockers([...u,l]),()=>{const d=e.getBlockers?.()??[];e.setBlockers?.(d.filter(f=>f!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:r}}function oM(e,t){t||(t={});const n=kC();return{...t,key:n,__TSR_key:n,[Js]:e}}function mG(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,r=t.history.replaceState;let a=[];const s=()=>a,l=M=>a=M,u=(M=>M),d=(()=>xv(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const M=kC();t.history.replaceState({[Js]:0,key:M,__TSR_key:M},"")}let f=d(),m,p=!1,g=!1,x=!1,j=!1;const w=()=>f;let b,N;const E=()=>{b&&(T._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),T._ignoreSubscribers=!1,b=void 0,N=void 0,m=void 0)},O=(M,R,L)=>{const D=u(R);N||(m=f),f=xv(R,L),b={href:D,state:L,isPush:b?.isPush||M==="push"},N||(N=Promise.resolve().then(()=>E()))},A=M=>{f=d(),T.notify({type:M})},C=async()=>{if(g){g=!1;return}const M=d(),R=M.state[Js]-f.state[Js],L=R===1,D=R===-1,U=!L&&!D||p;p=!1;const V=U?"GO":D?"BACK":"FORWARD",H=U?{type:"GO",index:R}:{type:D?"BACK":"FORWARD"};if(x)x=!1;else{const G=s();if(typeof document<"u"&&G.length){for(const $ of G)if(await $.blockerFn({currentLocation:f,nextLocation:M,action:V})){g=!0,t.history.go(1),T.notify(H);return}}}f=d(),T.notify(H)},k=M=>{if(j){j=!1;return}let R=!1;const L=s();if(typeof document<"u"&&L.length)for(const D of L){const U=D.enableBeforeUnload??!0;if(U===!0){R=!0;break}if(typeof U=="function"&&U()===!0){R=!0;break}}if(R)return M.preventDefault(),M.returnValue=""},T=hG({getLocation:w,getLength:()=>t.history.length,pushState:(M,R)=>O("push",M,R),replaceState:(M,R)=>O("replace",M,R),back:M=>(M&&(x=!0),j=!0,t.history.back()),forward:M=>{M&&(x=!0),j=!0,t.history.forward()},go:M=>{p=!0,t.history.go(M)},createHref:M=>u(M),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=r,t.removeEventListener(sM,k,{capture:!0}),t.removeEventListener(iM,C)},onBlocked:()=>{m&&f!==m&&(f=m)},getBlockers:s,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(sM,k,{capture:!0}),t.addEventListener(iM,C),t.history.pushState=function(...M){const R=n.apply(t.history,M);return T._ignoreSubscribers||A("PUSH"),R},t.history.replaceState=function(...M){const R=r.apply(t.history,M);return T._ignoreSubscribers||A("REPLACE"),R},T}function xv(e,t){const n=e.indexOf("#"),r=e.indexOf("?"),a=kC();return{href:e,pathname:e.substring(0,n>0?r>0?Math.min(n,r):n:r>0?r:e.length),hash:n>-1?e.substring(n):"",search:r>-1?e.slice(r,n===-1?void 0:n):"",state:t||{[Js]:0,key:a,__TSR_key:a}}}function kC(){return(Math.random()+1).toString(36).substring(7)}function b_(e){return e[e.length-1]}function pG(e){return typeof e=="function"}function nl(e,t){return pG(e)?e(t):e}const vG=Object.prototype.hasOwnProperty;function Ca(e,t){if(e===t)return e;const n=t,r=uM(e)&&uM(n);if(!r&&!(bv(e)&&bv(n)))return n;const a=r?e:lM(e);if(!a)return n;const s=r?n:lM(n);if(!s)return n;const l=a.length,u=s.length,d=r?new Array(u):{};let f=0;for(let m=0;m"u")return!0;const n=t.prototype;return!(!cM(n)||!n.hasOwnProperty("isPrototypeOf"))}function cM(e){return Object.prototype.toString.call(e)==="[object Object]"}function uM(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function rl(e,t,n){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let r=0,a=e.length;ra||!rl(e[l],t[l],n)))return!1;return a===s}return!1}function nu(e){let t,n;const r=new Promise((a,s)=>{t=a,n=s});return r.status="pending",r.resolve=a=>{r.status="resolved",r.value=a,t(a),e?.(a)},r.reject=a=>{r.status="rejected",n(a)},r}function eo(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const gG=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function dM(e,t=gG){function n(a,s,l=0){for(let u=l;u{try{return decodeURI(u)}catch{return u}})}}if(e===""||!/%[0-9A-Fa-f]{2}/g.test(e))return e;const r=e.replaceAll(/%[0-9a-f]{2}/g,a=>a.toUpperCase());return n(r,t)}var yG="Invariant failed";function vr(e,t){if(!e)throw new Error(yG)}const vi=0,dl=1,ru=2,au=3;function rs(e){return MC(e.filter(t=>t!==void 0).join("/"))}function MC(e){return e.replace(/\/{2,}/g,"/")}function PC(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function to(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function sv(e){return to(PC(e))}function wv(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function xG(e,t,n){return wv(e,n)===wv(t,n)}function bG(e){const{type:t,value:n}=e;if(t===vi)return n;const{prefixSegment:r,suffixSegment:a}=e;if(t===dl){const s=n.substring(1);if(r&&a)return`${r}{$${s}}${a}`;if(r)return`${r}{$${s}}`;if(a)return`{$${s}}${a}`}if(t===au){const s=n.substring(1);return r&&a?`${r}{-$${s}}${a}`:r?`${r}{-$${s}}`:a?`{-$${s}}${a}`:`{-$${s}}`}if(t===ru){if(r&&a)return`${r}{$}${a}`;if(r)return`${r}{$}`;if(a)return`{$}${a}`}return n}function wG({base:e,to:t,trailingSlash:n="never",parseCache:r}){let a=iu(e,r).slice();const s=iu(t,r);a.length>1&&b_(a)?.value==="/"&&a.pop();for(let d=0,f=s.length;d1&&(b_(a).value==="/"?n==="never"&&a.pop():n==="always"&&a.push({type:vi,value:"/"}));const l=a.map(bG);return rs(l)}const iu=(e,t)=>{if(!e)return[];const n=t?.get(e);if(n)return n;const r=OG(e);return t?.set(e,r),r},jG=/^\$.{1,}$/,SG=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,_G=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,NG=/^\$$/,CG=/^(.*?)\{\$\}(.*)$/;function OG(e){e=MC(e);const t=[];if(e.slice(0,1)==="/"&&(e=e.substring(1),t.push({type:vi,value:"/"})),!e)return t;const n=e.split("/").filter(Boolean);return t.push(...n.map(r=>{const a=r.match(CG);if(a){const u=a[1],d=a[2];return{type:ru,value:"$",prefixSegment:u||void 0,suffixSegment:d||void 0}}const s=r.match(_G);if(s){const u=s[1],d=s[2],f=s[3];return{type:au,value:d,prefixSegment:u||void 0,suffixSegment:f||void 0}}const l=r.match(SG);if(l){const u=l[1],d=l[2],f=l[3];return{type:dl,value:""+d,prefixSegment:u||void 0,suffixSegment:f||void 0}}if(jG.test(r)){const u=r.substring(1);return{type:dl,value:"$"+u,prefixSegment:void 0,suffixSegment:void 0}}return NG.test(r)?{type:ru,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:vi,value:r}})),e.slice(-1)==="/"&&(e=e.substring(1),t.push({type:vi,value:"/"})),t}function I0({path:e,params:t,decodeCharMap:n,parseCache:r}){const a=iu(e,r);function s(f){const m=t[f],p=typeof m=="string";return f==="*"||f==="_splat"?p?encodeURI(m):m:p?EG(m,n):m}let l=!1;const u={},d=rs(a.map(f=>{if(f.type===vi)return f.value;if(f.type===ru){u._splat=t._splat,u["*"]=t._splat;const m=f.prefixSegment||"",p=f.suffixSegment||"";if(!t._splat)return l=!0,m||p?`${m}${p}`:void 0;const g=s("_splat");return`${m}${g}${p}`}if(f.type===dl){const m=f.value.substring(1);!l&&!(m in t)&&(l=!0),u[m]=t[m];const p=f.prefixSegment||"",g=f.suffixSegment||"";return`${p}${s(m)??"undefined"}${g}`}if(f.type===au){const m=f.value.substring(1),p=f.prefixSegment||"",g=f.suffixSegment||"";return!(m in t)||t[m]==null?p||g?`${p}${g}`:void 0:(u[m]=t[m],`${p}${s(m)??""}${g}`)}return f.value}));return{usedParams:u,interpolatedPath:d,isMissingParams:l}}function EG(e,t){let n=encodeURIComponent(e);if(t)for(const[r,a]of t)n=n.replaceAll(r,a);return n}function w_(e,t,n){const r=AG(e,t,n);if(!(t.to&&!r))return r??{}}function AG(e,{to:t,fuzzy:n,caseSensitive:r},a){const s=t,l=iu(e.startsWith("/")?e:`/${e}`,a),u=iu(s.startsWith("/")?s:`/${s}`,a),d={};return TG(l,u,d,n,r)?d:void 0}function TG(e,t,n,r,a){let s=0,l=0;for(;sw.value)));p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),m=j}else m=decodeURI(rs(f.map(p=>p.value)));return n["*"]=m,n._splat=m,!0}if(d.type===vi){if(d.value==="/"&&!u?.value){l++;continue}if(u){if(a){if(d.value!==u.value)return!1}else if(d.value.toLowerCase()!==u.value.toLowerCase())return!1;s++,l++;continue}else return!1}if(d.type===dl){if(!u||u.value==="/")return!1;let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if(p&&!x.startsWith(p)||g&&!x.endsWith(g))return!1;let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}else f=decodeURIComponent(u.value),m=!0;m&&(n[d.value.substring(1)]=f,s++),l++;continue}if(d.type===au){if(!u){l++;continue}if(u.value==="/"){l++;continue}let f="",m=!1;if(d.prefixSegment||d.suffixSegment){const p=d.prefixSegment||"",g=d.suffixSegment||"",x=u.value;if((!p||x.startsWith(p))&&(!g||x.endsWith(g))){let j=x;p&&j.startsWith(p)&&(j=j.slice(p.length)),g&&j.endsWith(g)&&(j=j.slice(0,j.length-g.length)),f=decodeURIComponent(j),m=!0}}else{let p=!0;for(let g=l+1;g=t.length)return n["**"]=rs(e.slice(s).map(f=>f.value)),!!r&&t[t.length-1]?.value!=="/";if(l=e.length){for(let f=l;f{if(r.isRoot||!r.path)return;const s=PC(r.fullPath);let l=iu(s),u=0;for(;l.length>u+1&&l[u]?.value==="/";)u++;u>0&&(l=l.slice(u));let d=0,f=!1;const m=l.map((p,g)=>{if(p.value==="/")return kG;if(p.type===vi)return MG;let x;p.type===dl?x=PG:p.type===au?(x=RG,d++):x=DG;for(let j=g+1;j{const s=Math.min(r.scores.length,a.scores.length);for(let l=0;la.parsed[l].value?1:-1;return r.index-a.index}).map((r,a)=>(r.child.rank=a,r.child))}function qG({routeTree:e,initRoute:t}){const n={},r={},a=l=>{l.forEach((u,d)=>{t?.(u,d);const f=n[u.id];if(vr(!f,`Duplicate routes found with id: ${String(u.id)}`),n[u.id]=u,!u.isRoot&&u.path){const p=to(u.fullPath);(!r[p]||u.fullPath.endsWith("/"))&&(r[p]=u)}const m=u.children;m?.length&&a(m)})};a([e]);const s=BG(Object.values(n));return{routesById:n,routesByPath:r,flatRoutes:s}}function Ga(e){return!!e?.isNotFound}function FG(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const jv="tsr-scroll-restoration-v1_3",UG=(e,t)=>{let n;return(...r)=>{n||(n=setTimeout(()=>{e(...r),n=null},t))}};function HG(){const e=FG();if(!e)return null;const t=e.getItem(jv);let n=t?JSON.parse(t):{};return{state:n,set:r=>(n=nl(r,n)||n,e.setItem(jv,JSON.stringify(n)))}}const Ap=HG(),j_=e=>e.state.__TSR_key||e.href;function WG(e){const t=[];let n;for(;n=e.parentNode;)t.push(`${e.tagName}:nth-child(${Array.prototype.indexOf.call(n.children,e)+1})`),e=n;return`${t.reverse().join(" > ")}`.toLowerCase()}let Sv=!1;function a5({storageKey:e,key:t,behavior:n,shouldScrollRestoration:r,scrollToTopSelectors:a,location:s}){let l;try{l=JSON.parse(sessionStorage.getItem(e)||"{}")}catch(f){console.error(f);return}const u=t||window.history.state?.__TSR_key,d=l[u];Sv=!0;e:{if(r&&d&&Object.keys(d).length>0){for(const p in d){const g=d[p];if(p==="window")window.scrollTo({top:g.scrollY,left:g.scrollX,behavior:n});else if(p){const x=document.querySelector(p);x&&(x.scrollLeft=g.scrollX,x.scrollTop=g.scrollY)}}break e}const f=(s??window.location).hash.split("#",2)[1];if(f){const p=window.history.state?.__hashScrollIntoViewOptions??!0;if(p){const g=document.getElementById(f);g&&g.scrollIntoView(p)}break e}const m={top:0,left:0,behavior:n};if(window.scrollTo(m),a)for(const p of a){if(p==="window")continue;const g=typeof p=="function"?p():document.querySelector(p);g&&g.scrollTo(m)}}Sv=!1}function VG(e,t){if(!Ap&&!e.isServer||((e.options.scrollRestoration??!1)&&(e.isScrollRestoring=!0),e.isServer||e.isScrollRestorationSetup||!Ap))return;e.isScrollRestorationSetup=!0,Sv=!1;const r=e.options.getScrollRestorationKey||j_;window.history.scrollRestoration="manual";const a=s=>{if(Sv||!e.isScrollRestoring)return;let l="";if(s.target===document||s.target===window)l="window";else{const d=s.target.getAttribute("data-scroll-restoration-id");d?l=`[data-scroll-restoration-id="${d}"]`:l=WG(s.target)}const u=r(e.state.location);Ap.set(d=>{const f=d[u]||={},m=f[l]||={};if(l==="window")m.scrollX=window.scrollX||0,m.scrollY=window.scrollY||0;else if(l){const p=document.querySelector(l);p&&(m.scrollX=p.scrollLeft||0,m.scrollY=p.scrollTop||0)}return d})};typeof document<"u"&&document.addEventListener("scroll",UG(a,100),!0),e.subscribe("onRendered",s=>{const l=r(s.toLocation);if(!e.resetNextScroll){e.resetNextScroll=!0;return}typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation})||(a5({storageKey:jv,key:l,behavior:e.options.scrollRestorationBehavior,shouldScrollRestoration:e.isScrollRestoring,scrollToTopSelectors:e.options.scrollToTopSelectors,location:e.history.location}),e.isScrollRestoring&&Ap.set(u=>(u[l]||={},u)))})}function GG(e){if(typeof document<"u"&&document.querySelector){const t=e.state.location.state.__hashScrollIntoViewOptions??!0;if(t&&e.state.location.hash!==""){const n=document.getElementById(e.state.location.hash);n&&n.scrollIntoView(t)}}}function YG(e,t=String){const n=new URLSearchParams;for(const r in e){const a=e[r];a!==void 0&&n.set(r,t(a))}return n.toString()}function L0(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function KG(e){const t=new URLSearchParams(e),n={};for(const[r,a]of t.entries()){const s=n[r];s==null?n[r]=L0(a):Array.isArray(s)?s.push(L0(a)):n[r]=[s,L0(a)]}return n}const XG=QG(JSON.parse),ZG=JG(JSON.stringify,JSON.parse);function QG(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=KG(t);for(const r in n){const a=n[r];if(typeof a=="string")try{n[r]=e(a)}catch{}}return n}}function JG(e,t){const n=typeof t=="function";function r(a){if(typeof a=="object"&&a!==null)try{return e(a)}catch{}else if(n&&typeof a=="string")try{return t(a),e(a)}catch{}return a}return a=>{const s=YG(a,r);return s?`?${s}`:""}}const na="__root__";function i5(e){if(e.statusCode=e.statusCode||e.code||307,!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function di(e){return e instanceof Response&&!!e.options}function eY(e){const t=new Map;let n,r;const a=s=>{s.next&&(s.prev?(s.prev.next=s.next,s.next.prev=s.prev,s.next=void 0,r&&(r.next=s,s.prev=r)):(s.next.prev=void 0,n=s.next,s.next=void 0,r&&(s.prev=r,r.next=s)),r=s)};return{get(s){const l=t.get(s);if(l)return a(l),l.value},set(s,l){if(t.size>=e&&n){const d=n;t.delete(d.key),d.next&&(n=d.next,d.next.prev=void 0),d===r&&(r=void 0)}const u=t.get(s);if(u)u.value=l,a(u);else{const d={key:s,value:l,prev:r};r&&(r.next=d),r=d,n||(n=d),t.set(s,d)}}}}const ov=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},Fg=(e,t)=>!!(e.preload&&!e.router.state.matches.some(n=>n.id===t)),s5=(e,t)=>{const n=e.router.routesById[t.routeId??""]??e.router.routeTree;!n.options.notFoundComponent&&e.router.options?.defaultNotFoundComponent&&(n.options.notFoundComponent=e.router.options.defaultNotFoundComponent),vr(n.options.notFoundComponent);const r=e.matches.find(a=>a.routeId===n.id);vr(r,"Could not find match for route: "+n.id),e.updateMatch(r.id,a=>({...a,status:"notFound",error:t,isFetching:!1})),t.routerCode==="BEFORE_LOAD"&&n.parentRoute&&(t.routeId=n.parentRoute.id,s5(e,t))},Xs=(e,t,n)=>{if(!(!di(n)&&!Ga(n))){if(di(n)&&n.redirectHandled&&!n.options.reloadDocument)throw n;if(t){t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0;const r=di(n)?"redirected":"notFound";t._nonReactive.error=n,e.updateMatch(t.id,a=>({...a,status:r,isFetching:!1,error:n})),Ga(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()}throw di(n)?(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n),n):(s5(e,n),n)}},o5=(e,t)=>{const n=e.router.getMatch(t);return!!(!e.router.isServer&&n._nonReactive.dehydrated||e.router.isServer&&n.ssr===!1)},Zd=(e,t,n,r)=>{const{id:a,routeId:s}=e.matches[t],l=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;n.routerCode=r,e.firstBadMatchIndex??=t,Xs(e,e.router.getMatch(a),n);try{l.options.onError?.(n)}catch(u){n=u,Xs(e,e.router.getMatch(a),n)}e.updateMatch(a,u=>(u._nonReactive.beforeLoadPromise?.resolve(),u._nonReactive.beforeLoadPromise=void 0,u._nonReactive.loadPromise?.resolve(),{...u,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},tY=(e,t,n,r)=>{const a=e.router.getMatch(t),s=e.matches[n-1]?.id,l=s?e.router.getMatch(s):void 0;if(e.router.isShell()){a.ssr=r.id===na;return}if(l?.ssr===!1){a.ssr=!1;return}const u=x=>x===!0&&l?.ssr==="data-only"?"data-only":x,d=e.router.options.defaultSsr??!0;if(r.options.ssr===void 0){a.ssr=u(d);return}if(typeof r.options.ssr!="function"){a.ssr=u(r.options.ssr);return}const{search:f,params:m}=a,p={search:Tp(f,a.searchError),params:Tp(m,a.paramsError),location:e.location,matches:e.matches.map(x=>({index:x.index,pathname:x.pathname,fullPath:x.fullPath,staticData:x.staticData,id:x.id,routeId:x.routeId,search:Tp(x.search,x.searchError),params:Tp(x.params,x.paramsError),ssr:x.ssr}))},g=r.options.ssr(p);if(eo(g))return g.then(x=>{a.ssr=u(x??d)});a.ssr=u(g??d)},l5=(e,t,n,r)=>{if(r._nonReactive.pendingTimeout!==void 0)return;const a=n.options.pendingMs??e.router.options.defaultPendingMs;if(!!(e.onReady&&!e.router.isServer&&!Fg(e,t)&&(n.options.loader||n.options.beforeLoad||d5(n))&&typeof a=="number"&&a!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent))){const l=setTimeout(()=>{ov(e)},a);r._nonReactive.pendingTimeout=l}},nY=(e,t,n)=>{const r=e.router.getMatch(t);if(!r._nonReactive.beforeLoadPromise&&!r._nonReactive.loaderPromise)return;l5(e,t,n,r);const a=()=>{const s=e.router.getMatch(t);s.preload&&(s.status==="redirected"||s.status==="notFound")&&Xs(e,s,s.error)};return r._nonReactive.beforeLoadPromise?r._nonReactive.beforeLoadPromise.then(a):a()},rY=(e,t,n,r)=>{const a=e.router.getMatch(t),s=a._nonReactive.loadPromise;a._nonReactive.loadPromise=nu(()=>{s?.resolve()});const{paramsError:l,searchError:u}=a;l&&Zd(e,n,l,"PARSE_PARAMS"),u&&Zd(e,n,u,"VALIDATE_SEARCH"),l5(e,t,r,a);const d=new AbortController,f=e.matches[n-1]?.id,g={...(f?e.router.getMatch(f):void 0)?.context??e.router.options.context??void 0,...a.__routeContext};let x=!1;const j=()=>{x||(x=!0,e.updateMatch(t,T=>({...T,isFetching:"beforeLoad",fetchCount:T.fetchCount+1,abortController:d,context:g})))},w=()=>{a._nonReactive.beforeLoadPromise?.resolve(),a._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,T=>({...T,isFetching:!1}))};if(!r.options.beforeLoad){_f(()=>{j(),w()});return}a._nonReactive.beforeLoadPromise=nu();const{search:b,params:N,cause:E}=a,O=Fg(e,t),A={search:b,abortController:d,params:N,preload:O,context:g,location:e.location,navigate:T=>e.router.navigate({...T,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:O?"preload":E,matches:e.matches,...e.router.options.additionalContext},C=T=>{if(T===void 0){_f(()=>{j(),w()});return}(di(T)||Ga(T))&&(j(),Zd(e,n,T,"BEFORE_LOAD")),_f(()=>{j(),e.updateMatch(t,M=>({...M,__beforeLoadContext:T,context:{...M.context,...T}})),w()})};let k;try{if(k=r.options.beforeLoad(A),eo(k))return j(),k.catch(T=>{Zd(e,n,T,"BEFORE_LOAD")}).then(C)}catch(T){j(),Zd(e,n,T,"BEFORE_LOAD")}C(k)},aY=(e,t)=>{const{id:n,routeId:r}=e.matches[t],a=e.router.looseRoutesById[r],s=()=>{if(e.router.isServer){const d=tY(e,n,t,a);if(eo(d))return d.then(u)}return u()},l=()=>rY(e,n,t,a),u=()=>{if(o5(e,n))return;const d=nY(e,n,a);return eo(d)?d.then(l):l()};return s()},Nf=(e,t,n)=>{const r=e.router.getMatch(t);if(!r||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const a={matches:e.matches,match:r,params:r.params,loaderData:r.loaderData};return Promise.all([n.options.head?.(a),n.options.scripts?.(a),n.options.headers?.(a)]).then(([s,l,u])=>{const d=s?.meta,f=s?.links,m=s?.scripts,p=s?.styles;return{meta:d,links:f,headScripts:m,headers:u,scripts:l,styles:p}})},c5=(e,t,n,r)=>{const a=e.matchPromises[n-1],{params:s,loaderDeps:l,abortController:u,cause:d}=e.router.getMatch(t);let f=e.router.options.context??{};for(let p=0;p<=n;p++){const g=e.matches[p];if(!g)continue;const x=e.router.getMatch(g.id);x&&(f={...f,...x.__routeContext??{},...x.__beforeLoadContext??{}})}const m=Fg(e,t);return{params:s,deps:l,preload:!!m,parentMatchPromise:a,abortController:u,context:f,location:e.location,navigate:p=>e.router.navigate({...p,_fromLocation:e.location}),cause:m?"preload":d,route:r,...e.router.options.additionalContext}},pM=async(e,t,n,r)=>{try{const a=e.router.getMatch(t);try{(!e.router.isServer||a.ssr===!0)&&u5(r);const s=r.options.loader?.(c5(e,t,n,r)),l=r.options.loader&&eo(s);if(!!(l||r._lazyPromise||r._componentsPromise||r.options.head||r.options.scripts||r.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(t,p=>({...p,isFetching:"loader"})),r.options.loader){const p=l?await s:s;Xs(e,e.router.getMatch(t),p),p!==void 0&&e.updateMatch(t,g=>({...g,loaderData:p}))}r._lazyPromise&&await r._lazyPromise;const d=Nf(e,t,r),f=d?await d:void 0,m=a._nonReactive.minPendingPromise;m&&await m,r._componentsPromise&&await r._componentsPromise,e.updateMatch(t,p=>({...p,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...f}))}catch(s){let l=s;const u=a._nonReactive.minPendingPromise;u&&await u,Ga(s)&&await r.options.notFoundComponent?.preload?.(),Xs(e,e.router.getMatch(t),s);try{r.options.onError?.(s)}catch(m){l=m,Xs(e,e.router.getMatch(t),m)}const d=Nf(e,t,r),f=d?await d:void 0;e.updateMatch(t,m=>({...m,error:l,status:"error",isFetching:!1,...f}))}}catch(a){const s=e.router.getMatch(t);if(s){const l=Nf(e,t,r);if(l){const u=await l;e.updateMatch(t,d=>({...d,...u}))}s._nonReactive.loaderPromise=void 0}Xs(e,s,a)}},iY=async(e,t)=>{const{id:n,routeId:r}=e.matches[t];let a=!1,s=!1;const l=e.router.looseRoutesById[r];if(o5(e,n)){if(e.router.isServer){const f=Nf(e,n,l);if(f){const m=await f;e.updateMatch(n,p=>({...p,...m}))}return e.router.getMatch(n)}}else{const f=e.router.getMatch(n);if(f._nonReactive.loaderPromise){if(f.status==="success"&&!e.sync&&!f.preload)return f;await f._nonReactive.loaderPromise;const m=e.router.getMatch(n),p=m._nonReactive.error||m.error;p&&Xs(e,m,p)}else{const m=Date.now()-f.updatedAt,p=Fg(e,n),g=p?l.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:l.options.staleTime??e.router.options.defaultStaleTime??0,x=l.options.shouldReload,j=typeof x=="function"?x(c5(e,n,t,l)):x,w=!!p&&!e.router.state.matches.some(O=>O.id===n),b=e.router.getMatch(n);b._nonReactive.loaderPromise=nu(),w!==b.preload&&e.updateMatch(n,O=>({...O,preload:w}));const{status:N,invalid:E}=b;if(a=N==="success"&&(E||(j??m>g)),!(p&&l.options.preload===!1))if(a&&!e.sync)s=!0,(async()=>{try{await pM(e,n,t,l);const O=e.router.getMatch(n);O._nonReactive.loaderPromise?.resolve(),O._nonReactive.loadPromise?.resolve(),O._nonReactive.loaderPromise=void 0}catch(O){di(O)&&await e.router.navigate(O.options)}})();else if(N!=="success"||a&&e.sync)await pM(e,n,t,l);else{const O=Nf(e,n,l);if(O){const A=await O;e.updateMatch(n,C=>({...C,...A}))}}}}const u=e.router.getMatch(n);s||(u._nonReactive.loaderPromise?.resolve(),u._nonReactive.loadPromise?.resolve()),clearTimeout(u._nonReactive.pendingTimeout),u._nonReactive.pendingTimeout=void 0,s||(u._nonReactive.loaderPromise=void 0),u._nonReactive.dehydrated=void 0;const d=s?u.isFetching:!1;return d!==u.isFetching||u.invalid!==!1?(e.updateMatch(n,f=>({...f,isFetching:d,invalid:!1})),e.router.getMatch(n)):u};async function vM(e){const t=Object.assign(e,{matchPromises:[]});!t.router.isServer&&t.router.state.matches.some(n=>n._forcePending)&&ov(t);try{for(let a=0;a{const{id:n,...r}=t.options;Object.assign(e.options,r),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0),!e._componentsLoaded&&e._componentsPromise===void 0){const t=()=>{const n=[];for(const r of f5){const a=e.options[r]?.preload;a&&n.push(a())}if(n.length)return Promise.all(n).then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0});e._componentsLoaded=!0,e._componentsPromise=void 0};e._componentsPromise=e._lazyPromise?e._lazyPromise.then(t):t()}return e._componentsPromise}function Tp(e,t){return t?{status:"error",error:t}:{status:"success",value:e}}function d5(e){for(const t of f5)if(e.options[t]?.preload)return!0;return!1}const f5=["component","errorComponent","pendingComponent","notFoundComponent"];function sY(e){return{input:({url:t})=>{for(const n of e)t=h5(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=m5(e[n],t);return t}}}function oY(e){const t=sv(e.basepath),n=`/${t}`,r=`${n}/`,a=e.caseSensitive?n:n.toLowerCase(),s=e.caseSensitive?r:r.toLowerCase();return{input:({url:l})=>{const u=e.caseSensitive?l.pathname:l.pathname.toLowerCase();return u===a?l.pathname="/":u.startsWith(s)&&(l.pathname=l.pathname.slice(n.length)),l},output:({url:l})=>(l.pathname=rs(["/",t,l.pathname]),l)}}function h5(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function m5(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function al(e){const t=e.resolvedLocation,n=e.location,r=t?.pathname!==n.pathname,a=t?.href!==n.href,s=t?.hash!==n.hash;return{fromLocation:t,toLocation:n,pathChanged:r,hrefChanged:a,hashChanged:s}}class lY{constructor(t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=n=>n(),this.update=n=>{n.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const r=this.options,a=this.basepath??r?.basepath??"/",s=this.basepath===void 0,l=r?.rewrite;this.options={...r,...n},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(g=>[encodeURIComponent(g),g])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=mG())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new fG(uY(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(g=>!["redirected"].includes(g.status))}}}),VG(this));let u=!1;const d=this.options.basepath??"/",f=this.options.rewrite;if(s||a!==d||l!==f){this.basepath=d;const g=[];sv(d)!==""&&g.push(oY({basepath:d})),f&&g.push(f),this.rewrite=g.length===0?void 0:g.length===1?g[0]:sY(g),this.history&&this.updateLatestLocation(),u=!0}u&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:n,routesByPath:r,flatRoutes:a}=qG({routeTree:this.routeTree,initRoute:(l,u)=>{l.init({originalIndex:u})}});this.routesById=n,this.routesByPath=r,this.flatRoutes=a;const s=this.options.notFoundRoute;s&&(s.init({originalIndex:99999999999}),this.routesById[s.id]=s)},this.subscribe=(n,r)=>{const a={eventType:n,fn:r};return this.subscribers.add(a),()=>{this.subscribers.delete(a)}},this.emit=n=>{this.subscribers.forEach(r=>{r.eventType===n.type&&r.fn(n)})},this.parseLocation=(n,r)=>{const a=({href:d,state:f})=>{const m=new URL(d,this.origin),p=h5(this.rewrite,m),g=this.options.parseSearch(p.search),x=this.options.stringifySearch(g);p.search=x;const j=p.href.replace(p.origin,""),{pathname:w,hash:b}=p;return{href:j,publicHref:d,url:p.href,pathname:dM(w),searchStr:x,search:Ca(r?.search,g),hash:b.split("#").reverse()[0]??"",state:Ca(r?.state,f)}},s=a(n),{__tempLocation:l,__tempKey:u}=s.state;if(l&&(!u||u===this.tempLocationKey)){const d=a(l);return d.state.key=s.state.key,d.state.__TSR_key=s.state.__TSR_key,delete d.state.__tempLocation,{...d,maskedLocation:s}}return s},this.resolvePathWithBase=(n,r)=>wG({base:n,to:MC(r),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(n,r,a)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:r},a):this.matchRoutesInternal(n,r),this.parsePathnameCache=eY(1e3),this.getMatchedRoutes=(n,r)=>dY({pathname:n,routePathname:r,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=n=>{const r=this.getMatch(n);r&&(r.abortController.abort(),clearTimeout(r._nonReactive.pendingTimeout),r._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const n=this.state.matches.filter(s=>s.status==="pending"),r=this.state.matches.filter(s=>s.isFetching==="loader");new Set([...this.state.pendingMatches??[],...n,...r]).forEach(s=>{this.cancelMatch(s.id)})},this.buildLocation=n=>{const r=(s={})=>{const l=s._fromLocation||this.pendingBuiltLocation||this.latestLocation,u=this.matchRoutes(l,{_buildLocation:!0}),d=b_(u);s.from;const f=s.unsafeRelative==="path"?l.pathname:s.from??d.fullPath,m=this.resolvePathWithBase(f,"."),p=d.search,g={...d.params},x=s.to?this.resolvePathWithBase(m,`${s.to}`):this.resolvePathWithBase(m,"."),j=s.params===!1||s.params===null?{}:(s.params??!0)===!0?g:Object.assign(g,nl(s.params,g)),w=I0({path:x,params:j,parseCache:this.parsePathnameCache}).interpolatedPath,b=this.matchRoutes(w,void 0,{_buildLocation:!0}).map(L=>this.looseRoutesById[L.routeId]);if(Object.keys(j).length>0)for(const L of b){const D=L.options.params?.stringify??L.options.stringifyParams;D&&Object.assign(j,D(j))}const N=n.leaveParams?x:dM(I0({path:x,params:j,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let E=p;if(n._includeValidateSearch&&this.options.search?.strict){const L={};b.forEach(D=>{if(D.options.validateSearch)try{Object.assign(L,S_(D.options.validateSearch,{...L,...E}))}catch{}}),E=L}E=fY({search:E,dest:s,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=Ca(p,E);const O=this.options.stringifySearch(E),A=s.hash===!0?l.hash:s.hash?nl(s.hash,l.hash):void 0,C=A?`#${A}`:"";let k=s.state===!0?l.state:s.state?nl(s.state,l.state):{};k=Ca(l.state,k);const T=`${N}${O}${C}`,M=new URL(T,this.origin),R=m5(this.rewrite,M);return{publicHref:R.pathname+R.search+R.hash,href:T,url:R.href,pathname:N,search:E,searchStr:O,state:k,hash:A??"",unmaskOnReload:s.unmaskOnReload}},a=(s={},l)=>{const u=r(s);let d=l?r(l):void 0;if(!d){let f={};const m=this.options.routeMasks?.find(p=>{const g=w_(u.pathname,{to:p.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return g?(f=g,!0):!1});if(m){const{from:p,...g}=m;l={from:n.from,...g,params:f},d=r(l)}}return d&&(u.maskedLocation=d),u};return n.mask?a(n,{from:n.from,...n.mask}):a(n)},this.commitLocation=({viewTransition:n,ignoreBlocker:r,...a})=>{const s=()=>{const d=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];d.forEach(m=>{a.state[m]=this.latestLocation.state[m]});const f=rl(a.state,this.latestLocation.state);return d.forEach(m=>{delete a.state[m]}),f},l=to(this.latestLocation.href)===to(a.href),u=this.commitLocationPromise;if(this.commitLocationPromise=nu(()=>{u?.resolve()}),l&&s())this.load();else{let{maskedLocation:d,hashScrollIntoView:f,...m}=a;d&&(m={...d,state:{...d.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,this.history[a.replace?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:r})}return this.resetNextScroll=a.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:r,hashScrollIntoView:a,viewTransition:s,ignoreBlocker:l,href:u,...d}={})=>{if(u){const p=this.history.location.state.__TSR_index,g=xv(u,{__TSR_index:n?p:p+1});d.to=g.pathname,d.search=this.options.parseSearch(g.search),d.hash=g.hash.slice(1)}const f=this.buildLocation({...d,_includeValidateSearch:!0});this.pendingBuiltLocation=f;const m=this.commitLocation({...f,viewTransition:s,replace:n,resetScroll:r,hashScrollIntoView:a,ignoreBlocker:l});return Promise.resolve().then(()=>{this.pendingBuiltLocation===f&&(this.pendingBuiltLocation=void 0)}),m},this.navigate=({to:n,reloadDocument:r,href:a,...s})=>{if(!r&&a)try{new URL(`${a}`),r=!0}catch{}return r?(a||(a=this.buildLocation({to:n,...s}).url),s.replace?window.location.replace(a):window.location.href=a,Promise.resolve()):this.buildAndCommitLocation({...s,href:a,to:n,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const r=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),a=s=>{try{return encodeURI(decodeURI(s))}catch{return s}};if(sv(a(this.latestLocation.href))!==sv(a(r.href))){let s=r.url;throw this.origin&&s.startsWith(this.origin)&&(s=s.replace(this.origin,"")||"/"),i5({href:s})}}const n=this.matchRoutes(this.latestLocation);this.__store.setState(r=>({...r,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:n,cachedMatches:r.cachedMatches.filter(a=>!n.some(s=>s.id===a.id))}))},this.load=async n=>{let r,a,s;for(s=new Promise(u=>{this.startTransition(async()=>{try{this.beforeLoad();const d=this.latestLocation,f=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...al({resolvedLocation:f,location:d})}),this.emit({type:"onBeforeLoad",...al({resolvedLocation:f,location:d})}),await vM({router:this,sync:n?.sync,matches:this.state.pendingMatches,location:d,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let m=[],p=[],g=[];_f(()=>{this.__store.setState(x=>{const j=x.matches,w=x.pendingMatches||x.matches;return m=j.filter(b=>!w.some(N=>N.id===b.id)),p=w.filter(b=>!j.some(N=>N.id===b.id)),g=w.filter(b=>j.some(N=>N.id===b.id)),{...x,isLoading:!1,loadedAt:Date.now(),matches:w,pendingMatches:void 0,cachedMatches:[...x.cachedMatches,...m.filter(b=>b.status!=="error")]}}),this.clearExpiredCache()}),[[m,"onLeave"],[p,"onEnter"],[g,"onStay"]].forEach(([x,j])=>{x.forEach(w=>{this.looseRoutesById[w.routeId].options[j]?.(w)})})})})}})}catch(d){di(d)?(r=d,this.isServer||this.navigate({...r.options,replace:!0,ignoreBlocker:!0})):Ga(d)&&(a=d),this.__store.setState(f=>({...f,statusCode:r?r.status:a?404:f.matches.some(m=>m.status==="error")?500:200,redirect:r}))}this.latestLoadPromise===s&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),u()})}),this.latestLoadPromise=s,await s;this.latestLoadPromise&&s!==this.latestLoadPromise;)await this.latestLoadPromise;let l;this.hasNotFoundMatch()?l=404:this.__store.state.matches.some(u=>u.status==="error")&&(l=500),l!==void 0&&this.__store.setState(u=>({...u,statusCode:l}))},this.startViewTransition=n=>{const r=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,r&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let a;if(typeof r=="object"&&this.isViewTransitionTypesSupported){const s=this.latestLocation,l=this.state.resolvedLocation,u=typeof r.types=="function"?r.types(al({resolvedLocation:l,location:s})):r.types;if(u===!1){n();return}a={update:n,types:u}}else a=n;document.startViewTransition(a)}else n()},this.updateMatch=(n,r)=>{this.startTransition(()=>{const a=this.state.pendingMatches?.some(s=>s.id===n)?"pendingMatches":this.state.matches.some(s=>s.id===n)?"matches":this.state.cachedMatches.some(s=>s.id===n)?"cachedMatches":"";a&&this.__store.setState(s=>({...s,[a]:s[a]?.map(l=>l.id===n?r(l):l)}))})},this.getMatch=n=>{const r=a=>a.id===n;return this.state.cachedMatches.find(r)??this.state.pendingMatches?.find(r)??this.state.matches.find(r)},this.invalidate=n=>{const r=a=>n?.filter?.(a)??!0?{...a,invalid:!0,...n?.forcePending||a.status==="error"?{status:"pending",error:void 0}:void 0}:a;return this.__store.setState(a=>({...a,matches:a.matches.map(r),cachedMatches:a.cachedMatches.map(r),pendingMatches:a.pendingMatches?.map(r)})),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.resolveRedirect=n=>{if(!n.options.href){const r=this.buildLocation(n.options);let a=r.url;this.origin&&a.startsWith(this.origin)&&(a=a.replace(this.origin,"")||"/"),n.options.href=r.href,n.headers.set("Location",a)}return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const r=n?.filter;r!==void 0?this.__store.setState(a=>({...a,cachedMatches:a.cachedMatches.filter(s=>!r(s))})):this.__store.setState(a=>({...a,cachedMatches:[]}))},this.clearExpiredCache=()=>{const n=r=>{const a=this.looseRoutesById[r.routeId];if(!a.options.loader)return!0;const s=(r.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return r.status==="error"?!0:Date.now()-r.updatedAt>=s};this.clearCache({filter:n})},this.loadRouteChunk=u5,this.preloadRoute=async n=>{const r=this.buildLocation(n);let a=this.matchRoutes(r,{throwOnError:!0,preload:!0,dest:n});const s=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(u=>u.id)),l=new Set([...s,...this.state.cachedMatches.map(u=>u.id)]);_f(()=>{a.forEach(u=>{l.has(u.id)||this.__store.setState(d=>({...d,cachedMatches:[...d.cachedMatches,u]}))})});try{return a=await vM({router:this,matches:a,location:r,preload:!0,updateMatch:(u,d)=>{s.has(u)?a=a.map(f=>f.id===u?d(f):f):this.updateMatch(u,d)}}),a}catch(u){if(di(u))return u.options.reloadDocument?void 0:await this.preloadRoute({...u.options,_fromLocation:r});Ga(u)||console.error(u);return}},this.matchRoute=(n,r)=>{const a={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},s=this.buildLocation(a);if(r?.pending&&this.state.status!=="pending")return!1;const u=(r?.pending===void 0?!this.state.isLoading:r.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,d=w_(u.pathname,{...r,to:s.pathname},this.parsePathnameCache);return!d||n.params&&!rl(d,n.params,{partial:!0})?!1:d&&(r?.includeSearch??!0)?rl(u.search,s.search,{partial:!0})?d:!1:d},this.hasNotFoundMatch=()=>this.__store.state.matches.some(n=>n.status==="notFound"||n.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...t,caseSensitive:t.caseSensitive??!1,notFoundMode:t.notFoundMode??"fuzzy",stringifySearch:t.stringifySearch??ZG,parseSearch:t.parseSearch??XG}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(t,n){const{foundRoute:r,matchedRoutes:a,routeParams:s}=this.getMatchedRoutes(t.pathname,n?.dest?.to);let l=!1;(r?r.path!=="/"&&s["**"]:to(t.pathname))&&(this.options.notFoundRoute?a.push(this.options.notFoundRoute):l=!0);const u=(()=>{if(l){if(this.options.notFoundMode!=="root")for(let m=a.length-1;m>=0;m--){const p=a[m];if(p.children)return p.id}return na}})(),d=[],f=m=>m?.id?m.context??this.options.context??void 0:this.options.context??void 0;return a.forEach((m,p)=>{const g=d[p-1],[x,j,w]=(()=>{const U=g?.search??t.search,V=g?._strictSearch??void 0;try{const H=S_(m.options.validateSearch,{...U})??void 0;return[{...U,...H},{...V,...H},void 0]}catch(H){let G=H;if(H instanceof _v||(G=new _v(H.message,{cause:H})),n?.throwOnError)throw G;return[U,{},G]}})(),b=m.options.loaderDeps?.({search:x})??"",N=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:O}=I0({path:m.fullPath,params:s,decodeCharMap:this.pathParamsDecodeCharMap}),A=m.id+E+N,C=this.getMatch(A),k=this.state.matches.find(U=>U.routeId===m.id),T=C?._strictParams??O;let M;if(!C){const U=m.options.params?.parse??m.options.parseParams;if(U)try{Object.assign(T,U(T))}catch(V){if(M=new cY(V.message,{cause:V}),n?.throwOnError)throw M}}Object.assign(s,T);const R=k?"stay":"enter";let L;if(C)L={...C,cause:R,params:k?Ca(k.params,s):s,_strictParams:T,search:Ca(k?k.search:C.search,x),_strictSearch:j};else{const U=m.options.loader||m.options.beforeLoad||m.lazyFn||d5(m)?"pending":"success";L={id:A,index:p,routeId:m.id,params:k?Ca(k.params,s):s,_strictParams:T,pathname:E,updatedAt:Date.now(),search:k?Ca(k.search,x):x,_strictSearch:j,searchError:void 0,status:U,isFetching:!1,error:void 0,paramsError:M,__routeContext:void 0,_nonReactive:{loadPromise:nu()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:R,loaderDeps:k?Ca(k.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}n?.preload||(L.globalNotFound=u===m.id),L.searchError=w;const D=f(g);L.context={...D,...L.__routeContext,...L.__beforeLoadContext},d.push(L)}),d.forEach((m,p)=>{const g=this.looseRoutesById[m.routeId];if(!this.getMatch(m.id)&&n?._buildLocation!==!0){const j=d[p-1],w=f(j);if(g.options.context){const b={deps:m.loaderDeps,params:m.params,context:w??{},location:t,navigate:N=>this.navigate({...N,_fromLocation:t}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:d};m.__routeContext=g.options.context(b)??void 0}m.context={...w,...m.__routeContext,...m.__beforeLoadContext}}}),d}}class _v extends Error{}class cY extends Error{}function uY(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function S_(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new _v("Async validation not supported");if(n.issues)throw new _v(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function dY({pathname:e,routePathname:t,caseSensitive:n,routesByPath:r,routesById:a,flatRoutes:s,parseCache:l}){let u={};const d=to(e),f=x=>w_(d,{to:x.fullPath,caseSensitive:x.options?.caseSensitive??n,fuzzy:!0},l);let m=t!==void 0?r[t]:void 0;if(m)u=f(m);else{let x;for(const j of s){const w=f(j);if(w)if(j.path!=="/"&&w["**"])x||(x={foundRoute:j,routeParams:w});else{m=j,u=w;break}}!m&&x&&(m=x.foundRoute,u=x.routeParams)}let p=m||a[na];const g=[p];for(;p.parentRoute;)p=p.parentRoute,g.push(p);return g.reverse(),{matchedRoutes:g,routeParams:u,foundRoute:m}}function fY({search:e,dest:t,destRoutes:n,_includeValidateSearch:r}){const a=n.reduce((u,d)=>{const f=[];if("search"in d.options)d.options.search?.middlewares&&f.push(...d.options.search.middlewares);else if(d.options.preSearchFilters||d.options.postSearchFilters){const m=({search:p,next:g})=>{let x=p;"preSearchFilters"in d.options&&d.options.preSearchFilters&&(x=d.options.preSearchFilters.reduce((w,b)=>b(w),p));const j=g(x);return"postSearchFilters"in d.options&&d.options.postSearchFilters?d.options.postSearchFilters.reduce((w,b)=>b(w),j):j};f.push(m)}if(r&&d.options.validateSearch){const m=({search:p,next:g})=>{const x=g(p);try{return{...x,...S_(d.options.validateSearch,x)??void 0}}catch{return x}};f.push(m)}return u.concat(f)},[])??[],s=({search:u})=>t.search?t.search===!0?u:nl(t.search,u):{};a.push(s);const l=(u,d)=>{if(u>=a.length)return d;const f=a[u];return f({search:d,next:p=>l(u+1,p)})};return l(0,e)}const hY="Error preloading route! ☝️";class p5{constructor(t){if(this.init=n=>{this.originalIndex=n.originalIndex;const r=this.options,a=!r?.path&&!r?.id;this.parentRoute=this.options.getParentRoute?.(),a?this._path=na:this.parentRoute||vr(!1);let s=a?na:r?.path;s&&s!=="/"&&(s=PC(s));const l=r?.id||s;let u=a?na:rs([this.parentRoute.id===na?"":this.parentRoute.id,l]);s===na&&(s="/"),u!==na&&(u=rs(["/",u]));const d=u===na?"/":rs([this.parentRoute.fullPath,s]);this._path=s,this._id=u,this._fullPath=d,this._to=d},this.addChildren=n=>this._addFileChildren(n),this._addFileChildren=n=>(Array.isArray(n)&&(this.children=n),typeof n=="object"&&n!==null&&(this.children=Object.values(n)),this),this._addFileTypes=()=>this,this.updateLoader=n=>(Object.assign(this.options,n),this),this.update=n=>(Object.assign(this.options,n),this),this.lazy=n=>(this.lazyFn=n,this),this.options=t||{},this.isRoot=!t?.getParentRoute,t?.id&&t?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class mY extends p5{constructor(t){super(t)}}function RC(e){const t=e.errorComponent??Ug;return i.jsx(pY,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:r})=>n?y.createElement(t,{error:n,reset:r}):e.children})}class pY extends y.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(t){return{resetKey:t.getResetKey()}}static getDerivedStateFromError(t){return{error:t}}reset(){this.setState({error:null})}componentDidUpdate(t,n){n.error&&n.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(t,n){this.props.onCatch&&this.props.onCatch(t,n)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Ug({error:e}){const[t,n]=y.useState(!1);return i.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[i.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),i.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(r=>!r),children:t?"Hide Error":"Show Error"})]}),i.jsx("div",{style:{height:".25rem"}}),t?i.jsx("div",{children:i.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?i.jsx("code",{children:e.message}):null})}):null]})}function vY({children:e,fallback:t=null}){return gY()?i.jsx(W.Fragment,{children:e}):i.jsx(W.Fragment,{children:t})}function gY(){return W.useSyncExternalStore(yY,()=>!0,()=>!1)}function yY(){return()=>{}}var z0={exports:{}},B0={},q0={exports:{}},F0={};var gM;function xY(){if(gM)return F0;gM=1;var e=Ah();function t(p,g){return p===g&&(p!==0||1/p===1/g)||p!==p&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,a=e.useEffect,s=e.useLayoutEffect,l=e.useDebugValue;function u(p,g){var x=g(),j=r({inst:{value:x,getSnapshot:g}}),w=j[0].inst,b=j[1];return s(function(){w.value=x,w.getSnapshot=g,d(w)&&b({inst:w})},[p,x,g]),a(function(){return d(w)&&b({inst:w}),p(function(){d(w)&&b({inst:w})})},[p]),l(x),x}function d(p){var g=p.getSnapshot;p=p.value;try{var x=g();return!n(p,x)}catch{return!0}}function f(p,g){return g()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:u;return F0.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,F0}var yM;function bY(){return yM||(yM=1,q0.exports=xY()),q0.exports}var xM;function wY(){if(xM)return B0;xM=1;var e=Ah(),t=bY();function n(f,m){return f===m&&(f!==0||1/f===1/m)||f!==f&&m!==m}var r=typeof Object.is=="function"?Object.is:n,a=t.useSyncExternalStore,s=e.useRef,l=e.useEffect,u=e.useMemo,d=e.useDebugValue;return B0.useSyncExternalStoreWithSelector=function(f,m,p,g,x){var j=s(null);if(j.current===null){var w={hasValue:!1,value:null};j.current=w}else w=j.current;j=u(function(){function N(k){if(!E){if(E=!0,O=k,k=g(k),x!==void 0&&w.hasValue){var T=w.value;if(x(T,k))return A=T}return A=k}if(T=A,r(O,k))return T;var M=g(k);return x!==void 0&&x(T,M)?(O=k,T):(O=k,A=M)}var E=!1,O,A,C=p===void 0?null:p;return[function(){return N(m())},C===null?void 0:function(){return N(C())}]},[m,p,g,x]);var b=a(f,j[0],j[1]);return l(function(){w.hasValue=!0,w.value=b},[b]),d(b),b},B0}var bM;function jY(){return bM||(bM=1,z0.exports=wY()),z0.exports}var SY=jY();function _Y(e,t=r=>r,n={}){const r=n.equal??NY;return SY.useSyncExternalStoreWithSelector(e.subscribe,()=>e.state,()=>e.state,t,r)}function NY(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,a]of e)if(!t.has(r)||!Object.is(a,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();const n=wM(e);if(n.length!==wM(t).length)return!1;for(let r=0;r"u"?U0:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=U0,U0)}function Fr(e){const t=y.useContext(v5());return e?.warn,t}function Cr(e){const t=Fr({warn:e?.router===void 0}),n=e?.router||t,r=y.useRef(void 0);return _Y(n.__store,a=>{if(e?.select){if(e.structuralSharing??n.options.defaultStructuralSharing){const s=Ca(r.current,e.select(a));return r.current=s,s}return e.select(a)}return a})}const Hg=y.createContext(void 0),CY=y.createContext(void 0);function bi(e){const t=y.useContext(e.from?CY:Hg);return Cr({select:r=>{const a=r.matches.find(s=>e.from?e.from===s.routeId:s.id===t);if(vr(!((e.shouldThrow??!0)&&!a),`Could not find ${e.from?`an active match from "${e.from}"`:"a nearest match!"}`),a!==void 0)return e.select?e.select(a):a},structuralSharing:e.structuralSharing})}function DC(e){return bi({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function $C(e){const{select:t,...n}=e;return bi({...n,select:r=>t?t(r.loaderDeps):r.loaderDeps})}function IC(e){return bi({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function LC(e){return bi({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function ua(e){const t=Fr();return y.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var Nl=t5();const OY=Rt(Nl),kp=typeof window<"u"?y.useLayoutEffect:y.useEffect;function H0(e){const t=y.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function EY(e,t,n={},r={}){y.useEffect(()=>{if(!e.current||r.disabled||typeof IntersectionObserver!="function")return;const a=new IntersectionObserver(([s])=>{t(s)},n);return a.observe(e.current),()=>{a.disconnect()}},[t,n,r.disabled,e])}function AY(e){const t=y.useRef(null);return y.useImperativeHandle(e,()=>t.current,[]),t}function TY(e,t){const n=Fr(),[r,a]=y.useState(!1),s=y.useRef(!1),l=AY(t),{activeProps:u,inactiveProps:d,activeOptions:f,to:m,preload:p,preloadDelay:g,hashScrollIntoView:x,replace:j,startTransition:w,resetScroll:b,viewTransition:N,children:E,target:O,disabled:A,style:C,className:k,onClick:T,onFocus:M,onMouseEnter:R,onMouseLeave:L,onTouchStart:D,ignoreBlocker:U,params:V,search:H,hash:G,state:$,mask:I,reloadDocument:q,unsafeRelative:Z,from:ee,_fromLocation:F,...z}=e,K=Cr({select:at=>at.location.search,structuralSharing:!0}),ie=e.from,Q=y.useMemo(()=>({...e,from:ie}),[n,K,ie,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),he=y.useMemo(()=>n.buildLocation({...Q}),[n,Q]),ae=y.useMemo(()=>{if(A)return;let at=he.maskedLocation?he.maskedLocation.url:he.url,re=!1;return n.origin&&(at.startsWith(n.origin)?at=n.history.createHref(at.replace(n.origin,""))||"/":re=!0),{href:at,external:re}},[A,he.maskedLocation,he.url,n.origin,n.history]),we=y.useMemo(()=>{if(ae?.external)return ae.href;try{return new URL(m),m}catch{}},[m,ae]),Y=e.reloadDocument||we?!1:p??n.options.defaultPreload,pe=g??n.options.defaultPreloadDelay??0,je=Cr({select:at=>{if(we)return!1;if(f?.exact){if(!xG(at.location.pathname,he.pathname,n.basepath))return!1}else{const re=wv(at.location.pathname,n.basepath),Se=wv(he.pathname,n.basepath);if(!(re.startsWith(Se)&&(re.length===Se.length||re[Se.length]==="/")))return!1}return(f?.includeSearch??!0)&&!rl(at.location.search,he.search,{partial:!f?.exact,ignoreUndefined:!f?.explicitUndefined})?!1:f?.includeHash?at.location.hash===he.hash:!0}}),X=y.useCallback(()=>{n.preloadRoute({...Q}).catch(at=>{console.warn(at),console.warn(hY)})},[n,Q]),Ae=y.useCallback(at=>{at?.isIntersecting&&X()},[X]);EY(l,Ae,DY,{disabled:!!A||Y!=="viewport"}),y.useEffect(()=>{s.current||!A&&Y==="render"&&(X(),s.current=!0)},[A,X,Y]);const Oe=at=>{const re=at.currentTarget.getAttribute("target"),Se=O!==void 0?O:re;if(!A&&!$Y(at)&&!at.defaultPrevented&&(!Se||Se==="_self")&&at.button===0){at.preventDefault(),Nl.flushSync(()=>{a(!0)});const ut=n.subscribe("onResolved",()=>{ut(),a(!1)});n.navigate({...Q,replace:j,resetScroll:b,hashScrollIntoView:x,startTransition:w,viewTransition:N,ignoreBlocker:U})}};if(we)return{...z,ref:l,href:we,...E&&{children:E},...O&&{target:O},...A&&{disabled:A},...C&&{style:C},...k&&{className:k},...T&&{onClick:T},...M&&{onFocus:M},...R&&{onMouseEnter:R},...L&&{onMouseLeave:L},...D&&{onTouchStart:D}};const We=at=>{A||Y&&X()},Ve=We,be=at=>{if(!(A||!Y))if(!pe)X();else{const re=at.target;if(Qd.has(re))return;const Se=setTimeout(()=>{Qd.delete(re),X()},pe);Qd.set(re,Se)}},_e=at=>{if(A||!Y||!pe)return;const re=at.target,Se=Qd.get(re);Se&&(clearTimeout(Se),Qd.delete(re))},rt=je?nl(u,{})??kY:W0,fn=je?W0:nl(d,{})??W0,Tt=[k,rt.className,fn.className].filter(Boolean).join(" "),zt=(C||rt.style||fn.style)&&{...C,...rt.style,...fn.style};return{...z,...rt,...fn,href:ae?.href,ref:l,onClick:Jd([T,Oe]),onFocus:Jd([M,We]),onMouseEnter:Jd([R,be]),onMouseLeave:Jd([L,_e]),onTouchStart:Jd([D,Ve]),disabled:!!A,target:O,...zt&&{style:zt},...Tt&&{className:Tt},...A&&MY,...je&&PY,...r&&RY}}const W0={},kY={className:"active"},MY={role:"link","aria-disabled":!0},PY={"data-status":"active","aria-current":"page"},RY={"data-transitioning":"transitioning"},Qd=new WeakMap,DY={rootMargin:"100px"},Jd=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}},zC=y.forwardRef((e,t)=>{const{_asChild:n,...r}=e,{type:a,ref:s,...l}=TY(r,t),u=typeof r.children=="function"?r.children({isActive:l["data-status"]==="active"}):r.children;return n===void 0&&delete l.disabled,y.createElement(n||"a",{...l,ref:s},u)});function $Y(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}class IY extends p5{constructor(t){super(t),this.useMatch=n=>bi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>bi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>LC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>IC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>$C({...n,from:this.id}),this.useLoaderData=n=>DC({...n,from:this.id}),this.useNavigate=()=>ua({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(zC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function or(e){return new IY(e)}class LY extends mY{constructor(t){super(t),this.useMatch=n=>bi({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>bi({...n,from:this.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>LC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>IC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>$C({...n,from:this.id}),this.useLoaderData=n=>DC({...n,from:this.id}),this.useNavigate=()=>ua({from:this.fullPath}),this.Link=W.forwardRef((n,r)=>i.jsx(zC,{ref:r,from:this.fullPath,...n})),this.$$typeof=Symbol.for("react.memo")}}function zY(e){return new LY(e)}function jM(e){return typeof e=="object"?new SM(e,{silent:!0}).createRoute(e):new SM(e,{silent:!0}).createRoute}class SM{constructor(t,n){this.path=t,this.createRoute=r=>{this.silent;const a=or(r);return a.isRoot=!1,a},this.silent=n?.silent}}class _M{constructor(t){this.useMatch=n=>bi({select:n?.select,from:this.options.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>bi({from:this.options.id,select:r=>n?.select?n.select(r.context):r.context}),this.useSearch=n=>LC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useParams=n=>IC({select:n?.select,structuralSharing:n?.structuralSharing,from:this.options.id}),this.useLoaderDeps=n=>$C({...n,from:this.options.id}),this.useLoaderData=n=>DC({...n,from:this.options.id}),this.useNavigate=()=>{const n=Fr();return ua({from:n.routesById[this.options.id].fullPath})},this.options=t,this.$$typeof=Symbol.for("react.memo")}}function NM(e){return typeof e=="object"?new _M(e):t=>new _M({id:e,...t})}function BY(){const e=Fr(),t=y.useRef({router:e,mounted:!1}),[n,r]=y.useState(!1),{hasPendingMatches:a,isLoading:s}=Cr({select:p=>({isLoading:p.isLoading,hasPendingMatches:p.matches.some(g=>g.status==="pending")}),structuralSharing:!0}),l=H0(s),u=s||n||a,d=H0(u),f=s||a,m=H0(f);return e.startTransition=p=>{r(!0),y.startTransition(()=>{p(),r(!1)})},y.useEffect(()=>{const p=e.history.subscribe(e.load),g=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return to(e.latestLocation.href)!==to(g.href)&&e.commitLocation({...g,replace:!0}),()=>{p()}},[e,e.history]),kp(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(g){console.error(g)}})()},[e]),kp(()=>{l&&!s&&e.emit({type:"onLoad",...al(e.state)})},[l,e,s]),kp(()=>{m&&!f&&e.emit({type:"onBeforeRouteMount",...al(e.state)})},[f,m,e]),kp(()=>{d&&!u&&(e.emit({type:"onResolved",...al(e.state)}),e.__store.setState(p=>({...p,status:"idle",resolvedLocation:p.location})),GG(e))},[u,d,e]),null}function qY(e){const t=Cr({select:n=>`not-found-${n.location.pathname}-${n.status}`});return i.jsx(RC,{getResetKey:()=>t,onCatch:(n,r)=>{if(Ga(n))e.onCatch?.(n,r);else throw n},errorComponent:({error:n})=>{if(Ga(n))return e.fallback?.(n);throw n},children:e.children})}function FY(){return i.jsx("p",{children:"Not Found"})}function Dc(e){return i.jsx(i.Fragment,{children:e.children})}function g5(e,t,n){return t.options.notFoundComponent?i.jsx(t.options.notFoundComponent,{data:n}):e.options.defaultNotFoundComponent?i.jsx(e.options.defaultNotFoundComponent,{data:n}):i.jsx(FY,{})}function UY({children:e}){const t=Fr();return t.isServer?i.jsx("script",{nonce:t.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[e].filter(Boolean).join(` -`)+";$_TSR.c()"}}):null}function HY(){const e=Fr();if(!e.isScrollRestoring||!e.isServer||typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return null;const n=(e.options.getScrollRestorationKey||j_)(e.latestLocation),r=n!==j_(e.latestLocation)?n:void 0,a={storageKey:jv,shouldScrollRestoration:!0};return r&&(a.key=r),i.jsx(UY,{children:`(${a5.toString()})(${JSON.stringify(a)})`})}const y5=y.memo(function({matchId:t}){const n=Fr(),r=Cr({select:N=>{const E=N.matches.find(O=>O.id===t);return vr(E),{routeId:E.routeId,ssr:E.ssr,_displayPending:E._displayPending}},structuralSharing:!0}),a=n.routesById[r.routeId],s=a.options.pendingComponent??n.options.defaultPendingComponent,l=s?i.jsx(s,{}):null,u=a.options.errorComponent??n.options.defaultErrorComponent,d=a.options.onCatch??n.options.defaultOnCatch,f=a.isRoot?a.options.notFoundComponent??n.options.notFoundRoute?.options.component:a.options.notFoundComponent,m=r.ssr===!1||r.ssr==="data-only",p=(!a.isRoot||a.options.wrapInSuspense||m)&&(a.options.wrapInSuspense??s??(a.options.errorComponent?.preload||m))?y.Suspense:Dc,g=u?RC:Dc,x=f?qY:Dc,j=Cr({select:N=>N.loadedAt}),w=Cr({select:N=>{const E=N.matches.findIndex(O=>O.id===t);return N.matches[E-1]?.routeId}}),b=a.isRoot?a.options.shellComponent??Dc:Dc;return i.jsxs(b,{children:[i.jsx(Hg.Provider,{value:t,children:i.jsx(p,{fallback:l,children:i.jsx(g,{getResetKey:()=>j,errorComponent:u||Ug,onCatch:(N,E)=>{if(Ga(N))throw N;d?.(N,E)},children:i.jsx(x,{fallback:N=>{if(!f||N.routeId&&N.routeId!==r.routeId||!N.routeId&&!a.isRoot)throw N;return y.createElement(f,N)},children:m||r._displayPending?i.jsx(vY,{fallback:l,children:i.jsx(CM,{matchId:t})}):i.jsx(CM,{matchId:t})})})})}),w===na&&n.options.scrollRestoration?i.jsxs(i.Fragment,{children:[i.jsx(WY,{}),i.jsx(HY,{})]}):null]})});function WY(){const e=Fr(),t=y.useRef(void 0);return i.jsx("script",{suppressHydrationWarning:!0,ref:n=>{n&&(t.current===void 0||t.current.href!==e.latestLocation.href)&&(e.emit({type:"onRendered",...al(e.state)}),t.current=e.latestLocation)}},e.latestLocation.state.__TSR_key)}const CM=y.memo(function({matchId:t}){const n=Fr(),{match:r,key:a,routeId:s}=Cr({select:d=>{const f=d.matches.find(j=>j.id===t),m=f.routeId,g=(n.routesById[m].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:m,loaderDeps:f.loaderDeps,params:f._strictParams,search:f._strictSearch});return{key:g?JSON.stringify(g):void 0,routeId:m,match:{id:f.id,status:f.status,error:f.error,_forcePending:f._forcePending,_displayPending:f._displayPending}}},structuralSharing:!0}),l=n.routesById[s],u=y.useMemo(()=>{const d=l.options.component??n.options.defaultComponent;return d?i.jsx(d,{},a):i.jsx(BC,{})},[a,l.options.component,n.options.defaultComponent]);if(r._displayPending)throw n.getMatch(r.id)?._nonReactive.displayPendingPromise;if(r._forcePending)throw n.getMatch(r.id)?._nonReactive.minPendingPromise;if(r.status==="pending"){const d=l.options.pendingMinMs??n.options.defaultPendingMinMs;if(d){const f=n.getMatch(r.id);if(f&&!f._nonReactive.minPendingPromise&&!n.isServer){const m=nu();f._nonReactive.minPendingPromise=m,setTimeout(()=>{m.resolve(),f._nonReactive.minPendingPromise=void 0},d)}}throw n.getMatch(r.id)?._nonReactive.loadPromise}if(r.status==="notFound")return vr(Ga(r.error)),g5(n,l,r.error);if(r.status==="redirected")throw vr(di(r.error)),n.getMatch(r.id)?._nonReactive.loadPromise;if(r.status==="error"){if(n.isServer){const d=(l.options.errorComponent??n.options.defaultErrorComponent)||Ug;return i.jsx(d,{error:r.error,reset:void 0,info:{componentStack:""}})}throw r.error}return u}),BC=y.memo(function(){const t=Fr(),n=y.useContext(Hg),r=Cr({select:f=>f.matches.find(m=>m.id===n)?.routeId}),a=t.routesById[r],s=Cr({select:f=>{const p=f.matches.find(g=>g.id===n);return vr(p),p.globalNotFound}}),l=Cr({select:f=>{const m=f.matches,p=m.findIndex(g=>g.id===n);return m[p+1]?.id}}),u=t.options.defaultPendingComponent?i.jsx(t.options.defaultPendingComponent,{}):null;if(s)return g5(t,a,void 0);if(!l)return null;const d=i.jsx(y5,{matchId:l});return r===na?i.jsx(y.Suspense,{fallback:u,children:d}):d});function VY(){const e=Fr(),n=e.routesById[na].options.pendingComponent??e.options.defaultPendingComponent,r=n?i.jsx(n,{}):null,a=e.isServer||typeof document<"u"&&e.ssr?Dc:y.Suspense,s=i.jsxs(a,{fallback:r,children:[!e.isServer&&i.jsx(BY,{}),i.jsx(GY,{})]});return e.options.InnerWrap?i.jsx(e.options.InnerWrap,{children:s}):s}function GY(){const e=Fr(),t=Cr({select:a=>a.matches[0]?.id}),n=Cr({select:a=>a.loadedAt}),r=t?i.jsx(y5,{matchId:t}):null;return i.jsx(Hg.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:i.jsx(RC,{getResetKey:()=>n,errorComponent:Ug,onCatch:a=>{a.message||a.toString()},children:r})})}function YY(){const e=Fr();return Cr({select:t=>[t.location.href,t.resolvedLocation?.href,t.status],structuralSharing:!0}),y.useCallback(t=>{const{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s,...l}=t;return e.matchRoute(l,{pending:n,caseSensitive:r,fuzzy:a,includeSearch:s})},[e])}const KY=e=>new XY(e);class XY extends lY{constructor(t){super(t)}}typeof globalThis<"u"?(globalThis.createFileRoute=jM,globalThis.createLazyFileRoute=NM):typeof window<"u"&&(window.createFileRoute=jM,window.createLazyFileRoute=NM);function ZY({router:e,children:t,...n}){Object.keys(n).length>0&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const r=v5(),a=i.jsx(r.Provider,{value:e,children:t});return e.options.Wrap?i.jsx(e.options.Wrap,{children:a}):a}function QY({router:e,...t}){return i.jsx(ZY,{router:e,...t,children:i.jsx(VY,{})})}function x5(e,t){return function(){return e.apply(t,arguments)}}const{toString:JY}=Object.prototype,{getPrototypeOf:qC}=Object,{iterator:Wg,toStringTag:b5}=Symbol,Vg=(e=>t=>{const n=JY.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Za=e=>(e=e.toLowerCase(),t=>Vg(t)===e),Gg=e=>t=>typeof t===e,{isArray:zu}=Array,su=Gg("undefined");function Th(e){return e!==null&&!su(e)&&e.constructor!==null&&!su(e.constructor)&&Ir(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const w5=Za("ArrayBuffer");function eK(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&w5(e.buffer),t}const tK=Gg("string"),Ir=Gg("function"),j5=Gg("number"),kh=e=>e!==null&&typeof e=="object",nK=e=>e===!0||e===!1,lv=e=>{if(Vg(e)!=="object")return!1;const t=qC(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(b5 in e)&&!(Wg in e)},rK=e=>{if(!kh(e)||Th(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},aK=Za("Date"),iK=Za("File"),sK=Za("Blob"),oK=Za("FileList"),lK=e=>kh(e)&&Ir(e.pipe),cK=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||Ir(e.append)&&((t=Vg(e))==="formdata"||t==="object"&&Ir(e.toString)&&e.toString()==="[object FormData]"))},uK=Za("URLSearchParams"),[dK,fK,hK,mK]=["ReadableStream","Request","Response","Headers"].map(Za),pK=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Mh(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let r,a;if(typeof e!="object"&&(e=[e]),zu(e))for(r=0,a=e.length;r0;)if(a=n[r],t===a.toLowerCase())return a;return null}const Xo=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,_5=e=>!su(e)&&e!==Xo;function __(){const{caseless:e,skipUndefined:t}=_5(this)&&this||{},n={},r=(a,s)=>{const l=e&&S5(n,s)||s;lv(n[l])&&lv(a)?n[l]=__(n[l],a):lv(a)?n[l]=__({},a):zu(a)?n[l]=a.slice():(!t||!su(a))&&(n[l]=a)};for(let a=0,s=arguments.length;a(Mh(t,(a,s)=>{n&&Ir(a)?e[s]=x5(a,n):e[s]=a},{allOwnKeys:r}),e),gK=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),yK=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},xK=(e,t,n,r)=>{let a,s,l;const u={};if(t=t||{},e==null)return t;do{for(a=Object.getOwnPropertyNames(e),s=a.length;s-- >0;)l=a[s],(!r||r(l,e,t))&&!u[l]&&(t[l]=e[l],u[l]=!0);e=n!==!1&&qC(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},bK=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const r=e.indexOf(t,n);return r!==-1&&r===n},wK=e=>{if(!e)return null;if(zu(e))return e;let t=e.length;if(!j5(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},jK=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&qC(Uint8Array)),SK=(e,t)=>{const r=(e&&e[Wg]).call(e);let a;for(;(a=r.next())&&!a.done;){const s=a.value;t.call(e,s[0],s[1])}},_K=(e,t)=>{let n;const r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},NK=Za("HTMLFormElement"),CK=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,r,a){return r.toUpperCase()+a}),OM=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),OK=Za("RegExp"),N5=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};Mh(n,(a,s)=>{let l;(l=t(a,s,e))!==!1&&(r[s]=l||a)}),Object.defineProperties(e,r)},EK=e=>{N5(e,(t,n)=>{if(Ir(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const r=e[n];if(Ir(r)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},AK=(e,t)=>{const n={},r=a=>{a.forEach(s=>{n[s]=!0})};return zu(e)?r(e):r(String(e).split(t)),n},TK=()=>{},kK=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function MK(e){return!!(e&&Ir(e.append)&&e[b5]==="FormData"&&e[Wg])}const PK=e=>{const t=new Array(10),n=(r,a)=>{if(kh(r)){if(t.indexOf(r)>=0)return;if(Th(r))return r;if(!("toJSON"in r)){t[a]=r;const s=zu(r)?[]:{};return Mh(r,(l,u)=>{const d=n(l,a+1);!su(d)&&(s[u]=d)}),t[a]=void 0,s}}return r};return n(e,0)},RK=Za("AsyncFunction"),DK=e=>e&&(kh(e)||Ir(e))&&Ir(e.then)&&Ir(e.catch),C5=((e,t)=>e?setImmediate:t?((n,r)=>(Xo.addEventListener("message",({source:a,data:s})=>{a===Xo&&s===n&&r.length&&r.shift()()},!1),a=>{r.push(a),Xo.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",Ir(Xo.postMessage)),$K=typeof queueMicrotask<"u"?queueMicrotask.bind(Xo):typeof process<"u"&&process.nextTick||C5,IK=e=>e!=null&&Ir(e[Wg]),fe={isArray:zu,isArrayBuffer:w5,isBuffer:Th,isFormData:cK,isArrayBufferView:eK,isString:tK,isNumber:j5,isBoolean:nK,isObject:kh,isPlainObject:lv,isEmptyObject:rK,isReadableStream:dK,isRequest:fK,isResponse:hK,isHeaders:mK,isUndefined:su,isDate:aK,isFile:iK,isBlob:sK,isRegExp:OK,isFunction:Ir,isStream:lK,isURLSearchParams:uK,isTypedArray:jK,isFileList:oK,forEach:Mh,merge:__,extend:vK,trim:pK,stripBOM:gK,inherits:yK,toFlatObject:xK,kindOf:Vg,kindOfTest:Za,endsWith:bK,toArray:wK,forEachEntry:SK,matchAll:_K,isHTMLForm:NK,hasOwnProperty:OM,hasOwnProp:OM,reduceDescriptors:N5,freezeMethods:EK,toObjectSet:AK,toCamelCase:CK,noop:TK,toFiniteNumber:kK,findKey:S5,global:Xo,isContextDefined:_5,isSpecCompliantForm:MK,toJSONObject:PK,isAsyncFn:RK,isThenable:DK,setImmediate:C5,asap:$K,isIterable:IK};function nt(e,t,n,r,a){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),a&&(this.response=a,this.status=a.status?a.status:null)}fe.inherits(nt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:fe.toJSONObject(this.config),code:this.code,status:this.status}}});const O5=nt.prototype,E5={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{E5[e]={value:e}});Object.defineProperties(nt,E5);Object.defineProperty(O5,"isAxiosError",{value:!0});nt.from=(e,t,n,r,a,s)=>{const l=Object.create(O5);fe.toFlatObject(e,l,function(m){return m!==Error.prototype},f=>f!=="isAxiosError");const u=e&&e.message?e.message:"Error",d=t==null&&e?e.code:t;return nt.call(l,u,d,n,r,a),e&&l.cause==null&&Object.defineProperty(l,"cause",{value:e,configurable:!0}),l.name=e&&e.name||"Error",s&&Object.assign(l,s),l};const LK=null;function N_(e){return fe.isPlainObject(e)||fe.isArray(e)}function A5(e){return fe.endsWith(e,"[]")?e.slice(0,-2):e}function EM(e,t,n){return e?e.concat(t).map(function(a,s){return a=A5(a),!n&&s?"["+a+"]":a}).join(n?".":""):t}function zK(e){return fe.isArray(e)&&!e.some(N_)}const BK=fe.toFlatObject(fe,{},null,function(t){return/^is[A-Z]/.test(t)});function Yg(e,t,n){if(!fe.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=fe.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(w,b){return!fe.isUndefined(b[w])});const r=n.metaTokens,a=n.visitor||m,s=n.dots,l=n.indexes,d=(n.Blob||typeof Blob<"u"&&Blob)&&fe.isSpecCompliantForm(t);if(!fe.isFunction(a))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(fe.isDate(j))return j.toISOString();if(fe.isBoolean(j))return j.toString();if(!d&&fe.isBlob(j))throw new nt("Blob is not supported. Use a Buffer instead.");return fe.isArrayBuffer(j)||fe.isTypedArray(j)?d&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function m(j,w,b){let N=j;if(j&&!b&&typeof j=="object"){if(fe.endsWith(w,"{}"))w=r?w:w.slice(0,-2),j=JSON.stringify(j);else if(fe.isArray(j)&&zK(j)||(fe.isFileList(j)||fe.endsWith(w,"[]"))&&(N=fe.toArray(j)))return w=A5(w),N.forEach(function(O,A){!(fe.isUndefined(O)||O===null)&&t.append(l===!0?EM([w],A,s):l===null?w:w+"[]",f(O))}),!1}return N_(j)?!0:(t.append(EM(b,w,s),f(j)),!1)}const p=[],g=Object.assign(BK,{defaultVisitor:m,convertValue:f,isVisitable:N_});function x(j,w){if(!fe.isUndefined(j)){if(p.indexOf(j)!==-1)throw Error("Circular reference detected in "+w.join("."));p.push(j),fe.forEach(j,function(N,E){(!(fe.isUndefined(N)||N===null)&&a.call(t,N,fe.isString(E)?E.trim():E,w,g))===!0&&x(N,w?w.concat(E):[E])}),p.pop()}}if(!fe.isObject(e))throw new TypeError("data must be an object");return x(e),t}function AM(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(r){return t[r]})}function FC(e,t){this._pairs=[],e&&Yg(e,this,t)}const T5=FC.prototype;T5.append=function(t,n){this._pairs.push([t,n])};T5.toString=function(t){const n=t?function(r){return t.call(this,r,AM)}:AM;return this._pairs.map(function(a){return n(a[0])+"="+n(a[1])},"").join("&")};function qK(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function k5(e,t,n){if(!t)return e;const r=n&&n.encode||qK;fe.isFunction(n)&&(n={serialize:n});const a=n&&n.serialize;let s;if(a?s=a(t,n):s=fe.isURLSearchParams(t)?t.toString():new FC(t,n).toString(r),s){const l=e.indexOf("#");l!==-1&&(e=e.slice(0,l)),e+=(e.indexOf("?")===-1?"?":"&")+s}return e}class TM{constructor(){this.handlers=[]}use(t,n,r){return this.handlers.push({fulfilled:t,rejected:n,synchronous:r?r.synchronous:!1,runWhen:r?r.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){fe.forEach(this.handlers,function(r){r!==null&&t(r)})}}const M5={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},FK=typeof URLSearchParams<"u"?URLSearchParams:FC,UK=typeof FormData<"u"?FormData:null,HK=typeof Blob<"u"?Blob:null,WK={isBrowser:!0,classes:{URLSearchParams:FK,FormData:UK,Blob:HK},protocols:["http","https","file","blob","url","data"]},UC=typeof window<"u"&&typeof document<"u",C_=typeof navigator=="object"&&navigator||void 0,VK=UC&&(!C_||["ReactNative","NativeScript","NS"].indexOf(C_.product)<0),GK=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",YK=UC&&window.location.href||"http://localhost",KK=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:UC,hasStandardBrowserEnv:VK,hasStandardBrowserWebWorkerEnv:GK,navigator:C_,origin:YK},Symbol.toStringTag,{value:"Module"})),hr={...KK,...WK};function XK(e,t){return Yg(e,new hr.classes.URLSearchParams,{visitor:function(n,r,a,s){return hr.isNode&&fe.isBuffer(n)?(this.append(r,n.toString("base64")),!1):s.defaultVisitor.apply(this,arguments)},...t})}function ZK(e){return fe.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function QK(e){const t={},n=Object.keys(e);let r;const a=n.length;let s;for(r=0;r=n.length;return l=!l&&fe.isArray(a)?a.length:l,d?(fe.hasOwnProp(a,l)?a[l]=[a[l],r]:a[l]=r,!u):((!a[l]||!fe.isObject(a[l]))&&(a[l]=[]),t(n,r,a[l],s)&&fe.isArray(a[l])&&(a[l]=QK(a[l])),!u)}if(fe.isFormData(e)&&fe.isFunction(e.entries)){const n={};return fe.forEachEntry(e,(r,a)=>{t(ZK(r),a,n,0)}),n}return null}function JK(e,t,n){if(fe.isString(e))try{return(t||JSON.parse)(e),fe.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}const Ph={transitional:M5,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const r=n.getContentType()||"",a=r.indexOf("application/json")>-1,s=fe.isObject(t);if(s&&fe.isHTMLForm(t)&&(t=new FormData(t)),fe.isFormData(t))return a?JSON.stringify(P5(t)):t;if(fe.isArrayBuffer(t)||fe.isBuffer(t)||fe.isStream(t)||fe.isFile(t)||fe.isBlob(t)||fe.isReadableStream(t))return t;if(fe.isArrayBufferView(t))return t.buffer;if(fe.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let u;if(s){if(r.indexOf("application/x-www-form-urlencoded")>-1)return XK(t,this.formSerializer).toString();if((u=fe.isFileList(t))||r.indexOf("multipart/form-data")>-1){const d=this.env&&this.env.FormData;return Yg(u?{"files[]":t}:t,d&&new d,this.formSerializer)}}return s||a?(n.setContentType("application/json",!1),JK(t)):t}],transformResponse:[function(t){const n=this.transitional||Ph.transitional,r=n&&n.forcedJSONParsing,a=this.responseType==="json";if(fe.isResponse(t)||fe.isReadableStream(t))return t;if(t&&fe.isString(t)&&(r&&!this.responseType||a)){const l=!(n&&n.silentJSONParsing)&&a;try{return JSON.parse(t,this.parseReviver)}catch(u){if(l)throw u.name==="SyntaxError"?nt.from(u,nt.ERR_BAD_RESPONSE,this,null,this.response):u}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:hr.classes.FormData,Blob:hr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};fe.forEach(["delete","get","head","post","put","patch"],e=>{Ph.headers[e]={}});const eX=fe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),tX=e=>{const t={};let n,r,a;return e&&e.split(` -`).forEach(function(l){a=l.indexOf(":"),n=l.substring(0,a).trim().toLowerCase(),r=l.substring(a+1).trim(),!(!n||t[n]&&eX[n])&&(n==="set-cookie"?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)}),t},kM=Symbol("internals");function ef(e){return e&&String(e).trim().toLowerCase()}function cv(e){return e===!1||e==null?e:fe.isArray(e)?e.map(cv):String(e)}function nX(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}const rX=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function V0(e,t,n,r,a){if(fe.isFunction(r))return r.call(this,t,n);if(a&&(t=n),!!fe.isString(t)){if(fe.isString(r))return t.indexOf(r)!==-1;if(fe.isRegExp(r))return r.test(t)}}function aX(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,r)=>n.toUpperCase()+r)}function iX(e,t){const n=fe.toCamelCase(" "+t);["get","set","has"].forEach(r=>{Object.defineProperty(e,r+n,{value:function(a,s,l){return this[r].call(this,t,a,s,l)},configurable:!0})})}let Lr=class{constructor(t){t&&this.set(t)}set(t,n,r){const a=this;function s(u,d,f){const m=ef(d);if(!m)throw new Error("header name must be a non-empty string");const p=fe.findKey(a,m);(!p||a[p]===void 0||f===!0||f===void 0&&a[p]!==!1)&&(a[p||d]=cv(u))}const l=(u,d)=>fe.forEach(u,(f,m)=>s(f,m,d));if(fe.isPlainObject(t)||t instanceof this.constructor)l(t,n);else if(fe.isString(t)&&(t=t.trim())&&!rX(t))l(tX(t),n);else if(fe.isObject(t)&&fe.isIterable(t)){let u={},d,f;for(const m of t){if(!fe.isArray(m))throw TypeError("Object iterator must return a key-value pair");u[f=m[0]]=(d=u[f])?fe.isArray(d)?[...d,m[1]]:[d,m[1]]:m[1]}l(u,n)}else t!=null&&s(n,t,r);return this}get(t,n){if(t=ef(t),t){const r=fe.findKey(this,t);if(r){const a=this[r];if(!n)return a;if(n===!0)return nX(a);if(fe.isFunction(n))return n.call(this,a,r);if(fe.isRegExp(n))return n.exec(a);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=ef(t),t){const r=fe.findKey(this,t);return!!(r&&this[r]!==void 0&&(!n||V0(this,this[r],r,n)))}return!1}delete(t,n){const r=this;let a=!1;function s(l){if(l=ef(l),l){const u=fe.findKey(r,l);u&&(!n||V0(r,r[u],u,n))&&(delete r[u],a=!0)}}return fe.isArray(t)?t.forEach(s):s(t),a}clear(t){const n=Object.keys(this);let r=n.length,a=!1;for(;r--;){const s=n[r];(!t||V0(this,this[s],s,t,!0))&&(delete this[s],a=!0)}return a}normalize(t){const n=this,r={};return fe.forEach(this,(a,s)=>{const l=fe.findKey(r,s);if(l){n[l]=cv(a),delete n[s];return}const u=t?aX(s):String(s).trim();u!==s&&delete n[s],n[u]=cv(a),r[u]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return fe.forEach(this,(r,a)=>{r!=null&&r!==!1&&(n[a]=t&&fe.isArray(r)?r.join(", "):r)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(a=>r.set(a)),r}static accessor(t){const r=(this[kM]=this[kM]={accessors:{}}).accessors,a=this.prototype;function s(l){const u=ef(l);r[u]||(iX(a,l),r[u]=!0)}return fe.isArray(t)?t.forEach(s):s(t),this}};Lr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);fe.reduceDescriptors(Lr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});fe.freezeMethods(Lr);function G0(e,t){const n=this||Ph,r=t||n,a=Lr.from(r.headers);let s=r.data;return fe.forEach(e,function(u){s=u.call(n,s,a.normalize(),t?t.status:void 0)}),a.normalize(),s}function R5(e){return!!(e&&e.__CANCEL__)}function Bu(e,t,n){nt.call(this,e??"canceled",nt.ERR_CANCELED,t,n),this.name="CanceledError"}fe.inherits(Bu,nt,{__CANCEL__:!0});function D5(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new nt("Request failed with status code "+n.status,[nt.ERR_BAD_REQUEST,nt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function sX(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function oX(e,t){e=e||10;const n=new Array(e),r=new Array(e);let a=0,s=0,l;return t=t!==void 0?t:1e3,function(d){const f=Date.now(),m=r[s];l||(l=f),n[a]=d,r[a]=f;let p=s,g=0;for(;p!==a;)g+=n[p++],p=p%e;if(a=(a+1)%e,a===s&&(s=(s+1)%e),f-l{n=m,a=null,s&&(clearTimeout(s),s=null),e(...f)};return[(...f)=>{const m=Date.now(),p=m-n;p>=r?l(f,m):(a=f,s||(s=setTimeout(()=>{s=null,l(a)},r-p)))},()=>a&&l(a)]}const Nv=(e,t,n=3)=>{let r=0;const a=oX(50,250);return lX(s=>{const l=s.loaded,u=s.lengthComputable?s.total:void 0,d=l-r,f=a(d),m=l<=u;r=l;const p={loaded:l,total:u,progress:u?l/u:void 0,bytes:d,rate:f||void 0,estimated:f&&u&&m?(u-l)/f:void 0,event:s,lengthComputable:u!=null,[t?"download":"upload"]:!0};e(p)},n)},MM=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},PM=e=>(...t)=>fe.asap(()=>e(...t)),cX=hr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,hr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(hr.origin),hr.navigator&&/(msie|trident)/i.test(hr.navigator.userAgent)):()=>!0,uX=hr.hasStandardBrowserEnv?{write(e,t,n,r,a,s,l){if(typeof document>"u")return;const u=[`${e}=${encodeURIComponent(t)}`];fe.isNumber(n)&&u.push(`expires=${new Date(n).toUTCString()}`),fe.isString(r)&&u.push(`path=${r}`),fe.isString(a)&&u.push(`domain=${a}`),s===!0&&u.push("secure"),fe.isString(l)&&u.push(`SameSite=${l}`),document.cookie=u.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function dX(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function fX(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function $5(e,t,n){let r=!dX(t);return e&&(r||n==!1)?fX(e,t):t}const RM=e=>e instanceof Lr?{...e}:e;function fl(e,t){t=t||{};const n={};function r(f,m,p,g){return fe.isPlainObject(f)&&fe.isPlainObject(m)?fe.merge.call({caseless:g},f,m):fe.isPlainObject(m)?fe.merge({},m):fe.isArray(m)?m.slice():m}function a(f,m,p,g){if(fe.isUndefined(m)){if(!fe.isUndefined(f))return r(void 0,f,p,g)}else return r(f,m,p,g)}function s(f,m){if(!fe.isUndefined(m))return r(void 0,m)}function l(f,m){if(fe.isUndefined(m)){if(!fe.isUndefined(f))return r(void 0,f)}else return r(void 0,m)}function u(f,m,p){if(p in t)return r(f,m);if(p in e)return r(void 0,f)}const d={url:s,method:s,data:s,baseURL:l,transformRequest:l,transformResponse:l,paramsSerializer:l,timeout:l,timeoutMessage:l,withCredentials:l,withXSRFToken:l,adapter:l,responseType:l,xsrfCookieName:l,xsrfHeaderName:l,onUploadProgress:l,onDownloadProgress:l,decompress:l,maxContentLength:l,maxBodyLength:l,beforeRedirect:l,transport:l,httpAgent:l,httpsAgent:l,cancelToken:l,socketPath:l,responseEncoding:l,validateStatus:u,headers:(f,m,p)=>a(RM(f),RM(m),p,!0)};return fe.forEach(Object.keys({...e,...t}),function(m){const p=d[m]||a,g=p(e[m],t[m],m);fe.isUndefined(g)&&p!==u||(n[m]=g)}),n}const I5=e=>{const t=fl({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:a,xsrfCookieName:s,headers:l,auth:u}=t;if(t.headers=l=Lr.from(l),t.url=k5($5(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),u&&l.set("Authorization","Basic "+btoa((u.username||"")+":"+(u.password?unescape(encodeURIComponent(u.password)):""))),fe.isFormData(n)){if(hr.hasStandardBrowserEnv||hr.hasStandardBrowserWebWorkerEnv)l.setContentType(void 0);else if(fe.isFunction(n.getHeaders)){const d=n.getHeaders(),f=["content-type","content-length"];Object.entries(d).forEach(([m,p])=>{f.includes(m.toLowerCase())&&l.set(m,p)})}}if(hr.hasStandardBrowserEnv&&(r&&fe.isFunction(r)&&(r=r(t)),r||r!==!1&&cX(t.url))){const d=a&&s&&uX.read(s);d&&l.set(a,d)}return t},hX=typeof XMLHttpRequest<"u",mX=hX&&function(e){return new Promise(function(n,r){const a=I5(e);let s=a.data;const l=Lr.from(a.headers).normalize();let{responseType:u,onUploadProgress:d,onDownloadProgress:f}=a,m,p,g,x,j;function w(){x&&x(),j&&j(),a.cancelToken&&a.cancelToken.unsubscribe(m),a.signal&&a.signal.removeEventListener("abort",m)}let b=new XMLHttpRequest;b.open(a.method.toUpperCase(),a.url,!0),b.timeout=a.timeout;function N(){if(!b)return;const O=Lr.from("getAllResponseHeaders"in b&&b.getAllResponseHeaders()),C={data:!u||u==="text"||u==="json"?b.responseText:b.response,status:b.status,statusText:b.statusText,headers:O,config:e,request:b};D5(function(T){n(T),w()},function(T){r(T),w()},C),b=null}"onloadend"in b?b.onloadend=N:b.onreadystatechange=function(){!b||b.readyState!==4||b.status===0&&!(b.responseURL&&b.responseURL.indexOf("file:")===0)||setTimeout(N)},b.onabort=function(){b&&(r(new nt("Request aborted",nt.ECONNABORTED,e,b)),b=null)},b.onerror=function(A){const C=A&&A.message?A.message:"Network Error",k=new nt(C,nt.ERR_NETWORK,e,b);k.event=A||null,r(k),b=null},b.ontimeout=function(){let A=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const C=a.transitional||M5;a.timeoutErrorMessage&&(A=a.timeoutErrorMessage),r(new nt(A,C.clarifyTimeoutError?nt.ETIMEDOUT:nt.ECONNABORTED,e,b)),b=null},s===void 0&&l.setContentType(null),"setRequestHeader"in b&&fe.forEach(l.toJSON(),function(A,C){b.setRequestHeader(C,A)}),fe.isUndefined(a.withCredentials)||(b.withCredentials=!!a.withCredentials),u&&u!=="json"&&(b.responseType=a.responseType),f&&([g,j]=Nv(f,!0),b.addEventListener("progress",g)),d&&b.upload&&([p,x]=Nv(d),b.upload.addEventListener("progress",p),b.upload.addEventListener("loadend",x)),(a.cancelToken||a.signal)&&(m=O=>{b&&(r(!O||O.type?new Bu(null,e,b):O),b.abort(),b=null)},a.cancelToken&&a.cancelToken.subscribe(m),a.signal&&(a.signal.aborted?m():a.signal.addEventListener("abort",m)));const E=sX(a.url);if(E&&hr.protocols.indexOf(E)===-1){r(new nt("Unsupported protocol "+E+":",nt.ERR_BAD_REQUEST,e));return}b.send(s||null)})},pX=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,a;const s=function(f){if(!a){a=!0,u();const m=f instanceof Error?f:this.reason;r.abort(m instanceof nt?m:new Bu(m instanceof Error?m.message:m))}};let l=t&&setTimeout(()=>{l=null,s(new nt(`timeout ${t} of ms exceeded`,nt.ETIMEDOUT))},t);const u=()=>{e&&(l&&clearTimeout(l),l=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(s):f.removeEventListener("abort",s)}),e=null)};e.forEach(f=>f.addEventListener("abort",s));const{signal:d}=r;return d.unsubscribe=()=>fe.asap(u),d}},vX=function*(e,t){let n=e.byteLength;if(n{const a=gX(e,t);let s=0,l,u=d=>{l||(l=!0,r&&r(d))};return new ReadableStream({async pull(d){try{const{done:f,value:m}=await a.next();if(f){u(),d.close();return}let p=m.byteLength;if(n){let g=s+=p;n(g)}d.enqueue(new Uint8Array(m))}catch(f){throw u(f),f}},cancel(d){return u(d),a.return()}},{highWaterMark:2})},$M=64*1024,{isFunction:Mp}=fe,xX=(({Request:e,Response:t})=>({Request:e,Response:t}))(fe.global),{ReadableStream:IM,TextEncoder:LM}=fe.global,zM=(e,...t)=>{try{return!!e(...t)}catch{return!1}},bX=e=>{e=fe.merge.call({skipUndefined:!0},xX,e);const{fetch:t,Request:n,Response:r}=e,a=t?Mp(t):typeof fetch=="function",s=Mp(n),l=Mp(r);if(!a)return!1;const u=a&&Mp(IM),d=a&&(typeof LM=="function"?(j=>w=>j.encode(w))(new LM):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=s&&u&&zM(()=>{let j=!1;const w=new n(hr.origin,{body:new IM,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!w}),m=l&&u&&zM(()=>fe.isReadableStream(new r("").body)),p={stream:m&&(j=>j.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!p[j]&&(p[j]=(w,b)=>{let N=w&&w[j];if(N)return N.call(w);throw new nt(`Response type '${j}' is not supported`,nt.ERR_NOT_SUPPORT,b)})});const g=async j=>{if(j==null)return 0;if(fe.isBlob(j))return j.size;if(fe.isSpecCompliantForm(j))return(await new n(hr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(fe.isArrayBufferView(j)||fe.isArrayBuffer(j))return j.byteLength;if(fe.isURLSearchParams(j)&&(j=j+""),fe.isString(j))return(await d(j)).byteLength},x=async(j,w)=>{const b=fe.toFiniteNumber(j.getContentLength());return b??g(w)};return async j=>{let{url:w,method:b,data:N,signal:E,cancelToken:O,timeout:A,onDownloadProgress:C,onUploadProgress:k,responseType:T,headers:M,withCredentials:R="same-origin",fetchOptions:L}=I5(j),D=t||fetch;T=T?(T+"").toLowerCase():"text";let U=pX([E,O&&O.toAbortSignal()],A),V=null;const H=U&&U.unsubscribe&&(()=>{U.unsubscribe()});let G;try{if(k&&f&&b!=="get"&&b!=="head"&&(G=await x(M,N))!==0){let F=new n(w,{method:"POST",body:N,duplex:"half"}),z;if(fe.isFormData(N)&&(z=F.headers.get("content-type"))&&M.setContentType(z),F.body){const[K,ie]=MM(G,Nv(PM(k)));N=DM(F.body,$M,K,ie)}}fe.isString(R)||(R=R?"include":"omit");const $=s&&"credentials"in n.prototype,I={...L,signal:U,method:b.toUpperCase(),headers:M.normalize().toJSON(),body:N,duplex:"half",credentials:$?R:void 0};V=s&&new n(w,I);let q=await(s?D(V,L):D(w,I));const Z=m&&(T==="stream"||T==="response");if(m&&(C||Z&&H)){const F={};["status","statusText","headers"].forEach(Q=>{F[Q]=q[Q]});const z=fe.toFiniteNumber(q.headers.get("content-length")),[K,ie]=C&&MM(z,Nv(PM(C),!0))||[];q=new r(DM(q.body,$M,K,()=>{ie&&ie(),H&&H()}),F)}T=T||"text";let ee=await p[fe.findKey(p,T)||"text"](q,j);return!Z&&H&&H(),await new Promise((F,z)=>{D5(F,z,{data:ee,headers:Lr.from(q.headers),status:q.status,statusText:q.statusText,config:j,request:V})})}catch($){throw H&&H(),$&&$.name==="TypeError"&&/Load failed|fetch/i.test($.message)?Object.assign(new nt("Network Error",nt.ERR_NETWORK,j,V),{cause:$.cause||$}):nt.from($,$&&$.code,j,V)}}},wX=new Map,L5=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:a}=t,s=[r,a,n];let l=s.length,u=l,d,f,m=wX;for(;u--;)d=s[u],f=m.get(d),f===void 0&&m.set(d,f=u?new Map:bX(t)),m=f;return f};L5();const HC={http:LK,xhr:mX,fetch:{get:L5}};fe.forEach(HC,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const BM=e=>`- ${e}`,jX=e=>fe.isFunction(e)||e===null||e===!1;function SX(e,t){e=fe.isArray(e)?e:[e];const{length:n}=e;let r,a;const s={};for(let l=0;l`adapter ${d} `+(f===!1?"is not supported by the environment":"is not available in the build"));let u=n?l.length>1?`since : -`+l.map(BM).join(` -`):" "+BM(l[0]):"as no adapter specified";throw new nt("There is no suitable adapter to dispatch the request "+u,"ERR_NOT_SUPPORT")}return a}const z5={getAdapter:SX,adapters:HC};function Y0(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Bu(null,e)}function qM(e){return Y0(e),e.headers=Lr.from(e.headers),e.data=G0.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),z5.getAdapter(e.adapter||Ph.adapter,e)(e).then(function(r){return Y0(e),r.data=G0.call(e,e.transformResponse,r),r.headers=Lr.from(r.headers),r},function(r){return R5(r)||(Y0(e),r&&r.response&&(r.response.data=G0.call(e,e.transformResponse,r.response),r.response.headers=Lr.from(r.response.headers))),Promise.reject(r)})}const B5="1.13.2",Kg={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Kg[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const FM={};Kg.transitional=function(t,n,r){function a(s,l){return"[Axios v"+B5+"] Transitional option '"+s+"'"+l+(r?". "+r:"")}return(s,l,u)=>{if(t===!1)throw new nt(a(l," has been removed"+(n?" in "+n:"")),nt.ERR_DEPRECATED);return n&&!FM[l]&&(FM[l]=!0,console.warn(a(l," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,l,u):!0}};Kg.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function _X(e,t,n){if(typeof e!="object")throw new nt("options must be an object",nt.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let a=r.length;for(;a-- >0;){const s=r[a],l=t[s];if(l){const u=e[s],d=u===void 0||l(u,s,e);if(d!==!0)throw new nt("option "+s+" must be "+d,nt.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new nt("Unknown option "+s,nt.ERR_BAD_OPTION)}}const uv={assertOptions:_X,validators:Kg},ii=uv.validators;let il=class{constructor(t){this.defaults=t||{},this.interceptors={request:new TM,response:new TM}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const s=a.stack?a.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=fl(this.defaults,n);const{transitional:r,paramsSerializer:a,headers:s}=n;r!==void 0&&uv.assertOptions(r,{silentJSONParsing:ii.transitional(ii.boolean),forcedJSONParsing:ii.transitional(ii.boolean),clarifyTimeoutError:ii.transitional(ii.boolean)},!1),a!=null&&(fe.isFunction(a)?n.paramsSerializer={serialize:a}:uv.assertOptions(a,{encode:ii.function,serialize:ii.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),uv.assertOptions(n,{baseUrl:ii.spelling("baseURL"),withXsrfToken:ii.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=s&&fe.merge(s.common,s[n.method]);s&&fe.forEach(["delete","get","head","post","put","patch","common"],j=>{delete s[j]}),n.headers=Lr.concat(l,s);const u=[];let d=!0;this.interceptors.request.forEach(function(w){typeof w.runWhen=="function"&&w.runWhen(n)===!1||(d=d&&w.synchronous,u.unshift(w.fulfilled,w.rejected))});const f=[];this.interceptors.response.forEach(function(w){f.push(w.fulfilled,w.rejected)});let m,p=0,g;if(!d){const j=[qM.bind(this),void 0];for(j.unshift(...u),j.push(...f),g=j.length,m=Promise.resolve(n);p{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](a);r._listeners=null}),this.promise.then=a=>{let s;const l=new Promise(u=>{r.subscribe(u),s=u}).then(a);return l.cancel=function(){r.unsubscribe(s)},l},t(function(s,l,u){r.reason||(r.reason=new Bu(s,l,u),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new q5(function(a){t=a}),cancel:t}}};function CX(e){return function(n){return e.apply(null,n)}}function OX(e){return fe.isObject(e)&&e.isAxiosError===!0}const O_={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(O_).forEach(([e,t])=>{O_[t]=e});function F5(e){const t=new il(e),n=x5(il.prototype.request,t);return fe.extend(n,il.prototype,t,{allOwnKeys:!0}),fe.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return F5(fl(e,a))},n}const xn=F5(Ph);xn.Axios=il;xn.CanceledError=Bu;xn.CancelToken=NX;xn.isCancel=R5;xn.VERSION=B5;xn.toFormData=Yg;xn.AxiosError=nt;xn.Cancel=xn.CanceledError;xn.all=function(t){return Promise.all(t)};xn.spread=CX;xn.isAxiosError=OX;xn.mergeConfig=fl;xn.AxiosHeaders=Lr;xn.formToJSON=e=>P5(fe.isHTMLForm(e)?new FormData(e):e);xn.getAdapter=z5.getAdapter;xn.HttpStatusCode=O_;xn.default=xn;const{Axios:R2e,AxiosError:D2e,CanceledError:$2e,isCancel:I2e,CancelToken:L2e,VERSION:z2e,all:B2e,Cancel:q2e,isAxiosError:F2e,spread:U2e,toFormData:H2e,AxiosHeaders:W2e,HttpStatusCode:V2e,formToJSON:G2e,getAdapter:Y2e,mergeConfig:K2e}=xn;function U5(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var a=e.length;for(t=0;t{const n=new Array(e.length+t.length);for(let r=0;r({classGroupId:e,validator:t}),H5=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Cv="-",UM=[],TX="arbitrary..",kX=e=>{const t=PX(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return MX(l);const u=l.split(Cv),d=u[0]===""&&u.length>1?1:0;return W5(u,d,t)},getConflictingClassGroupIds:(l,u)=>{if(u){const d=r[l],f=n[l];return d?f?EX(f,d):d:f||UM}return n[l]||UM}}},W5=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const a=e[t],s=n.nextPart.get(a);if(s){const f=W5(e,t+1,s);if(f)return f}const l=n.validators;if(l===null)return;const u=t===0?e.join(Cv):e.slice(t).join(Cv),d=l.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?TX+r:void 0})(),PX=e=>{const{theme:t,classGroups:n}=e;return RX(n,t)},RX=(e,t)=>{const n=H5();for(const r in e){const a=e[r];WC(a,n,r,t)}return n},WC=(e,t,n,r)=>{const a=e.length;for(let s=0;s{if(typeof e=="string"){$X(e,t,n);return}if(typeof e=="function"){IX(e,t,n,r);return}LX(e,t,n,r)},$X=(e,t,n)=>{const r=e===""?t:V5(t,e);r.classGroupId=n},IX=(e,t,n,r)=>{if(zX(e)){WC(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(AX(n,e))},LX=(e,t,n,r)=>{const a=Object.entries(e),s=a.length;for(let l=0;l{let n=e;const r=t.split(Cv),a=r.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,BX=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const a=(s,l)=>{n[s]=l,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let l=n[s];if(l!==void 0)return l;if((l=r[s])!==void 0)return a(s,l),l},set(s,l){s in n?n[s]=l:a(s,l)}}},E_="!",HM=":",qX=[],WM=(e,t,n,r,a)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:a}),FX=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=a=>{const s=[];let l=0,u=0,d=0,f;const m=a.length;for(let w=0;wd?f-d:void 0;return WM(s,x,g,j)};if(t){const a=t+HM,s=r;r=l=>l.startsWith(a)?s(l.slice(a.length)):WM(qX,!1,l,void 0,!0)}if(n){const a=r;r=s=>n({className:s,parseClassName:a})}return r},UX=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let a=[];for(let s=0;s0&&(a.sort(),r.push(...a),a=[]),r.push(l)):a.push(l)}return a.length>0&&(a.sort(),r.push(...a)),r}},HX=e=>({cache:BX(e.cacheSize),parseClassName:FX(e),sortModifiers:UX(e),...kX(e)}),WX=/\s+/,VX=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:a,sortModifiers:s}=t,l=[],u=e.trim().split(WX);let d="";for(let f=u.length-1;f>=0;f-=1){const m=u[f],{isExternal:p,modifiers:g,hasImportantModifier:x,baseClassName:j,maybePostfixModifierPosition:w}=n(m);if(p){d=m+(d.length>0?" "+d:d);continue}let b=!!w,N=r(b?j.substring(0,w):j);if(!N){if(!b){d=m+(d.length>0?" "+d:d);continue}if(N=r(j),!N){d=m+(d.length>0?" "+d:d);continue}b=!1}const E=g.length===0?"":g.length===1?g[0]:s(g).join(":"),O=x?E+E_:E,A=O+N;if(l.indexOf(A)>-1)continue;l.push(A);const C=a(N,b);for(let k=0;k0?" "+d:d)}return d},GX=(...e)=>{let t=0,n,r,a="";for(;t{if(typeof e=="string")return e;let t,n="";for(let r=0;r{let n,r,a,s;const l=d=>{const f=t.reduce((m,p)=>p(m),e());return n=HX(f),r=n.cache.get,a=n.cache.set,s=u,u(d)},u=d=>{const f=r(d);if(f)return f;const m=VX(d,n);return a(d,m),m};return s=l,(...d)=>s(GX(...d))},KX=[],Rn=e=>{const t=n=>n[e]||KX;return t.isThemeGetter=!0,t},Y5=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,K5=/^\((?:(\w[\w-]*):)?(.+)\)$/i,XX=/^\d+\/\d+$/,ZX=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,QX=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,JX=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,eZ=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,tZ=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Nc=e=>XX.test(e),ct=e=>!!e&&!Number.isNaN(Number(e)),Ws=e=>!!e&&Number.isInteger(Number(e)),K0=e=>e.endsWith("%")&&ct(e.slice(0,-1)),Gi=e=>ZX.test(e),nZ=()=>!0,rZ=e=>QX.test(e)&&!JX.test(e),X5=()=>!1,aZ=e=>eZ.test(e),iZ=e=>tZ.test(e),sZ=e=>!Re(e)&&!De(e),oZ=e=>qu(e,J5,X5),Re=e=>Y5.test(e),Fo=e=>qu(e,ez,rZ),X0=e=>qu(e,fZ,ct),VM=e=>qu(e,Z5,X5),lZ=e=>qu(e,Q5,iZ),Pp=e=>qu(e,tz,aZ),De=e=>K5.test(e),tf=e=>Fu(e,ez),cZ=e=>Fu(e,hZ),GM=e=>Fu(e,Z5),uZ=e=>Fu(e,J5),dZ=e=>Fu(e,Q5),Rp=e=>Fu(e,tz,!0),qu=(e,t,n)=>{const r=Y5.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Fu=(e,t,n=!1)=>{const r=K5.exec(e);return r?r[1]?t(r[1]):n:!1},Z5=e=>e==="position"||e==="percentage",Q5=e=>e==="image"||e==="url",J5=e=>e==="length"||e==="size"||e==="bg-size",ez=e=>e==="length",fZ=e=>e==="number",hZ=e=>e==="family-name",tz=e=>e==="shadow",mZ=()=>{const e=Rn("color"),t=Rn("font"),n=Rn("text"),r=Rn("font-weight"),a=Rn("tracking"),s=Rn("leading"),l=Rn("breakpoint"),u=Rn("container"),d=Rn("spacing"),f=Rn("radius"),m=Rn("shadow"),p=Rn("inset-shadow"),g=Rn("text-shadow"),x=Rn("drop-shadow"),j=Rn("blur"),w=Rn("perspective"),b=Rn("aspect"),N=Rn("ease"),E=Rn("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],A=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],C=()=>[...A(),De,Re],k=()=>["auto","hidden","clip","visible","scroll"],T=()=>["auto","contain","none"],M=()=>[De,Re,d],R=()=>[Nc,"full","auto",...M()],L=()=>[Ws,"none","subgrid",De,Re],D=()=>["auto",{span:["full",Ws,De,Re]},Ws,De,Re],U=()=>[Ws,"auto",De,Re],V=()=>["auto","min","max","fr",De,Re],H=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],G=()=>["start","end","center","stretch","center-safe","end-safe"],$=()=>["auto",...M()],I=()=>[Nc,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...M()],q=()=>[e,De,Re],Z=()=>[...A(),GM,VM,{position:[De,Re]}],ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],F=()=>["auto","cover","contain",uZ,oZ,{size:[De,Re]}],z=()=>[K0,tf,Fo],K=()=>["","none","full",f,De,Re],ie=()=>["",ct,tf,Fo],Q=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ae=()=>[ct,K0,GM,VM],we=()=>["","none",j,De,Re],Y=()=>["none",ct,De,Re],pe=()=>["none",ct,De,Re],je=()=>[ct,De,Re],X=()=>[Nc,"full",...M()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Gi],breakpoint:[Gi],color:[nZ],container:[Gi],"drop-shadow":[Gi],ease:["in","out","in-out"],font:[sZ],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Gi],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Gi],shadow:[Gi],spacing:["px",ct],text:[Gi],"text-shadow":[Gi],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Nc,Re,De,b]}],container:["container"],columns:[{columns:[ct,Re,De,u]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:C()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:R()}],"inset-x":[{"inset-x":R()}],"inset-y":[{"inset-y":R()}],start:[{start:R()}],end:[{end:R()}],top:[{top:R()}],right:[{right:R()}],bottom:[{bottom:R()}],left:[{left:R()}],visibility:["visible","invisible","collapse"],z:[{z:[Ws,"auto",De,Re]}],basis:[{basis:[Nc,"full","auto",u,...M()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ct,Nc,"auto","initial","none",Re]}],grow:[{grow:["",ct,De,Re]}],shrink:[{shrink:["",ct,De,Re]}],order:[{order:[Ws,"first","last","none",De,Re]}],"grid-cols":[{"grid-cols":L()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":U()}],"col-end":[{"col-end":U()}],"grid-rows":[{"grid-rows":L()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":U()}],"row-end":[{"row-end":U()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":V()}],"auto-rows":[{"auto-rows":V()}],gap:[{gap:M()}],"gap-x":[{"gap-x":M()}],"gap-y":[{"gap-y":M()}],"justify-content":[{justify:[...H(),"normal"]}],"justify-items":[{"justify-items":[...G(),"normal"]}],"justify-self":[{"justify-self":["auto",...G()]}],"align-content":[{content:["normal",...H()]}],"align-items":[{items:[...G(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...G(),{baseline:["","last"]}]}],"place-content":[{"place-content":H()}],"place-items":[{"place-items":[...G(),"baseline"]}],"place-self":[{"place-self":["auto",...G()]}],p:[{p:M()}],px:[{px:M()}],py:[{py:M()}],ps:[{ps:M()}],pe:[{pe:M()}],pt:[{pt:M()}],pr:[{pr:M()}],pb:[{pb:M()}],pl:[{pl:M()}],m:[{m:$()}],mx:[{mx:$()}],my:[{my:$()}],ms:[{ms:$()}],me:[{me:$()}],mt:[{mt:$()}],mr:[{mr:$()}],mb:[{mb:$()}],ml:[{ml:$()}],"space-x":[{"space-x":M()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":M()}],"space-y-reverse":["space-y-reverse"],size:[{size:I()}],w:[{w:[u,"screen",...I()]}],"min-w":[{"min-w":[u,"screen","none",...I()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...I()]}],h:[{h:["screen","lh",...I()]}],"min-h":[{"min-h":["screen","lh","none",...I()]}],"max-h":[{"max-h":["screen","lh",...I()]}],"font-size":[{text:["base",n,tf,Fo]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,De,X0]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",K0,Re]}],"font-family":[{font:[cZ,Re,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[a,De,Re]}],"line-clamp":[{"line-clamp":[ct,"none",De,X0]}],leading:[{leading:[s,...M()]}],"list-image":[{"list-image":["none",De,Re]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",De,Re]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:q()}],"text-color":[{text:q()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Q(),"wavy"]}],"text-decoration-thickness":[{decoration:[ct,"from-font","auto",De,Fo]}],"text-decoration-color":[{decoration:q()}],"underline-offset":[{"underline-offset":[ct,"auto",De,Re]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",De,Re]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",De,Re]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Z()}],"bg-repeat":[{bg:ee()}],"bg-size":[{bg:F()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ws,De,Re],radial:["",De,Re],conic:[Ws,De,Re]},dZ,lZ]}],"bg-color":[{bg:q()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:q()}],"gradient-via":[{via:q()}],"gradient-to":[{to:q()}],rounded:[{rounded:K()}],"rounded-s":[{"rounded-s":K()}],"rounded-e":[{"rounded-e":K()}],"rounded-t":[{"rounded-t":K()}],"rounded-r":[{"rounded-r":K()}],"rounded-b":[{"rounded-b":K()}],"rounded-l":[{"rounded-l":K()}],"rounded-ss":[{"rounded-ss":K()}],"rounded-se":[{"rounded-se":K()}],"rounded-ee":[{"rounded-ee":K()}],"rounded-es":[{"rounded-es":K()}],"rounded-tl":[{"rounded-tl":K()}],"rounded-tr":[{"rounded-tr":K()}],"rounded-br":[{"rounded-br":K()}],"rounded-bl":[{"rounded-bl":K()}],"border-w":[{border:ie()}],"border-w-x":[{"border-x":ie()}],"border-w-y":[{"border-y":ie()}],"border-w-s":[{"border-s":ie()}],"border-w-e":[{"border-e":ie()}],"border-w-t":[{"border-t":ie()}],"border-w-r":[{"border-r":ie()}],"border-w-b":[{"border-b":ie()}],"border-w-l":[{"border-l":ie()}],"divide-x":[{"divide-x":ie()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ie()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Q(),"hidden","none"]}],"divide-style":[{divide:[...Q(),"hidden","none"]}],"border-color":[{border:q()}],"border-color-x":[{"border-x":q()}],"border-color-y":[{"border-y":q()}],"border-color-s":[{"border-s":q()}],"border-color-e":[{"border-e":q()}],"border-color-t":[{"border-t":q()}],"border-color-r":[{"border-r":q()}],"border-color-b":[{"border-b":q()}],"border-color-l":[{"border-l":q()}],"divide-color":[{divide:q()}],"outline-style":[{outline:[...Q(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ct,De,Re]}],"outline-w":[{outline:["",ct,tf,Fo]}],"outline-color":[{outline:q()}],shadow:[{shadow:["","none",m,Rp,Pp]}],"shadow-color":[{shadow:q()}],"inset-shadow":[{"inset-shadow":["none",p,Rp,Pp]}],"inset-shadow-color":[{"inset-shadow":q()}],"ring-w":[{ring:ie()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:q()}],"ring-offset-w":[{"ring-offset":[ct,Fo]}],"ring-offset-color":[{"ring-offset":q()}],"inset-ring-w":[{"inset-ring":ie()}],"inset-ring-color":[{"inset-ring":q()}],"text-shadow":[{"text-shadow":["none",g,Rp,Pp]}],"text-shadow-color":[{"text-shadow":q()}],opacity:[{opacity:[ct,De,Re]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ct]}],"mask-image-linear-from-pos":[{"mask-linear-from":ae()}],"mask-image-linear-to-pos":[{"mask-linear-to":ae()}],"mask-image-linear-from-color":[{"mask-linear-from":q()}],"mask-image-linear-to-color":[{"mask-linear-to":q()}],"mask-image-t-from-pos":[{"mask-t-from":ae()}],"mask-image-t-to-pos":[{"mask-t-to":ae()}],"mask-image-t-from-color":[{"mask-t-from":q()}],"mask-image-t-to-color":[{"mask-t-to":q()}],"mask-image-r-from-pos":[{"mask-r-from":ae()}],"mask-image-r-to-pos":[{"mask-r-to":ae()}],"mask-image-r-from-color":[{"mask-r-from":q()}],"mask-image-r-to-color":[{"mask-r-to":q()}],"mask-image-b-from-pos":[{"mask-b-from":ae()}],"mask-image-b-to-pos":[{"mask-b-to":ae()}],"mask-image-b-from-color":[{"mask-b-from":q()}],"mask-image-b-to-color":[{"mask-b-to":q()}],"mask-image-l-from-pos":[{"mask-l-from":ae()}],"mask-image-l-to-pos":[{"mask-l-to":ae()}],"mask-image-l-from-color":[{"mask-l-from":q()}],"mask-image-l-to-color":[{"mask-l-to":q()}],"mask-image-x-from-pos":[{"mask-x-from":ae()}],"mask-image-x-to-pos":[{"mask-x-to":ae()}],"mask-image-x-from-color":[{"mask-x-from":q()}],"mask-image-x-to-color":[{"mask-x-to":q()}],"mask-image-y-from-pos":[{"mask-y-from":ae()}],"mask-image-y-to-pos":[{"mask-y-to":ae()}],"mask-image-y-from-color":[{"mask-y-from":q()}],"mask-image-y-to-color":[{"mask-y-to":q()}],"mask-image-radial":[{"mask-radial":[De,Re]}],"mask-image-radial-from-pos":[{"mask-radial-from":ae()}],"mask-image-radial-to-pos":[{"mask-radial-to":ae()}],"mask-image-radial-from-color":[{"mask-radial-from":q()}],"mask-image-radial-to-color":[{"mask-radial-to":q()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":A()}],"mask-image-conic-pos":[{"mask-conic":[ct]}],"mask-image-conic-from-pos":[{"mask-conic-from":ae()}],"mask-image-conic-to-pos":[{"mask-conic-to":ae()}],"mask-image-conic-from-color":[{"mask-conic-from":q()}],"mask-image-conic-to-color":[{"mask-conic-to":q()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Z()}],"mask-repeat":[{mask:ee()}],"mask-size":[{mask:F()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",De,Re]}],filter:[{filter:["","none",De,Re]}],blur:[{blur:we()}],brightness:[{brightness:[ct,De,Re]}],contrast:[{contrast:[ct,De,Re]}],"drop-shadow":[{"drop-shadow":["","none",x,Rp,Pp]}],"drop-shadow-color":[{"drop-shadow":q()}],grayscale:[{grayscale:["",ct,De,Re]}],"hue-rotate":[{"hue-rotate":[ct,De,Re]}],invert:[{invert:["",ct,De,Re]}],saturate:[{saturate:[ct,De,Re]}],sepia:[{sepia:["",ct,De,Re]}],"backdrop-filter":[{"backdrop-filter":["","none",De,Re]}],"backdrop-blur":[{"backdrop-blur":we()}],"backdrop-brightness":[{"backdrop-brightness":[ct,De,Re]}],"backdrop-contrast":[{"backdrop-contrast":[ct,De,Re]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ct,De,Re]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ct,De,Re]}],"backdrop-invert":[{"backdrop-invert":["",ct,De,Re]}],"backdrop-opacity":[{"backdrop-opacity":[ct,De,Re]}],"backdrop-saturate":[{"backdrop-saturate":[ct,De,Re]}],"backdrop-sepia":[{"backdrop-sepia":["",ct,De,Re]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":M()}],"border-spacing-x":[{"border-spacing-x":M()}],"border-spacing-y":[{"border-spacing-y":M()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",De,Re]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ct,"initial",De,Re]}],ease:[{ease:["linear","initial",N,De,Re]}],delay:[{delay:[ct,De,Re]}],animate:[{animate:["none",E,De,Re]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,De,Re]}],"perspective-origin":[{"perspective-origin":C()}],rotate:[{rotate:Y()}],"rotate-x":[{"rotate-x":Y()}],"rotate-y":[{"rotate-y":Y()}],"rotate-z":[{"rotate-z":Y()}],scale:[{scale:pe()}],"scale-x":[{"scale-x":pe()}],"scale-y":[{"scale-y":pe()}],"scale-z":[{"scale-z":pe()}],"scale-3d":["scale-3d"],skew:[{skew:je()}],"skew-x":[{"skew-x":je()}],"skew-y":[{"skew-y":je()}],transform:[{transform:[De,Re,"","none","gpu","cpu"]}],"transform-origin":[{origin:C()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:X()}],"translate-x":[{"translate-x":X()}],"translate-y":[{"translate-y":X()}],"translate-z":[{"translate-z":X()}],"translate-none":["translate-none"],accent:[{accent:q()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:q()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",De,Re]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",De,Re]}],fill:[{fill:["none",...q()]}],"stroke-w":[{stroke:[ct,tf,Fo,X0]}],stroke:[{stroke:["none",...q()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},pZ=YX(mZ);function ue(...e){return pZ(et(e))}const Ke=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("rounded-xl border bg-card text-card-foreground shadow",e),...t}));Ke.displayName="Card";const gt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("flex flex-col space-y-1.5 p-6",e),...t}));gt.displayName="CardHeader";const yt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("font-semibold leading-none tracking-tight",e),...t}));yt.displayName="CardTitle";const Wn=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("text-sm text-muted-foreground",e),...t}));Wn.displayName="CardDescription";const Pt=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("p-6 pt-0",e),...t}));Pt.displayName="CardContent";const nz=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("flex items-center p-6 pt-0",e),...t}));nz.displayName="CardFooter";function Ne(e,t,{checkForDefaultPrevented:n=!0}={}){return function(a){if(e?.(a),n===!1||!a.defaultPrevented)return t?.(a)}}function vZ(e,t){const n=y.createContext(t),r=s=>{const{children:l,...u}=s,d=y.useMemo(()=>u,Object.values(u));return i.jsx(n.Provider,{value:d,children:l})};r.displayName=e+"Provider";function a(s){const l=y.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[r,a]}function yr(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l),d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,gZ(a,...t)]}function gZ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function YM(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zr(...e){return t=>{let n=!1;const r=e.map(a=>{const s=YM(a,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let a=0;a{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(bZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function yZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=jZ(a),u=wZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var xZ=Symbol("radix.slottable");function bZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===xZ}function wZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function jZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Rh(e){const t=e+"CollectionProvider",[n,r]=yr(t),[a,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=w=>{const{scope:b,children:N}=w,E=W.useRef(null),O=W.useRef(new Map).current;return i.jsx(a,{scope:b,itemMap:O,collectionRef:E,children:N})};l.displayName=t;const u=e+"CollectionSlot",d=KM(u),f=W.forwardRef((w,b)=>{const{scope:N,children:E}=w,O=s(u,N),A=Ue(b,O.collectionRef);return i.jsx(d,{ref:A,children:E})});f.displayName=u;const m=e+"CollectionItemSlot",p="data-radix-collection-item",g=KM(m),x=W.forwardRef((w,b)=>{const{scope:N,children:E,...O}=w,A=W.useRef(null),C=Ue(b,A),k=s(m,N);return W.useEffect(()=>(k.itemMap.set(A,{ref:A,...O}),()=>void k.itemMap.delete(A))),i.jsx(g,{[p]:"",ref:C,children:E})});x.displayName=m;function j(w){const b=s(e+"CollectionConsumer",w);return W.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const O=Array.from(E.querySelectorAll(`[${p}]`));return Array.from(b.itemMap.values()).sort((k,T)=>O.indexOf(k.ref.current)-O.indexOf(T.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:f,ItemSlot:x},j,r]}var Yn=globalThis?.document?y.useLayoutEffect:()=>{},SZ=TC[" useId ".trim().toString()]||(()=>{}),_Z=0;function Gn(e){const[t,n]=y.useState(SZ());return Yn(()=>{n(r=>r??String(_Z++))},[e]),t?`radix-${t}`:""}function NZ(e){const t=CZ(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(EZ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function CZ(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=TZ(a),u=AZ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var OZ=Symbol("radix.slottable");function EZ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===OZ}function AZ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function TZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var kZ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],$e=kZ.reduce((e,t)=>{const n=NZ(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function VC(e,t){e&&Nl.flushSync(()=>e.dispatchEvent(t))}function yn(e){const t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...n)=>t.current?.(...n),[])}var MZ=TC[" useInsertionEffect ".trim().toString()]||Yn;function Ta({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[a,s,l]=PZ({defaultProp:t,onChange:n}),u=e!==void 0,d=u?e:a;{const m=y.useRef(e!==void 0);y.useEffect(()=>{const p=m.current;p!==u&&console.warn(`${r} is changing from ${p?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),m.current=u},[u,r])}const f=y.useCallback(m=>{if(u){const p=RZ(m)?m(e):m;p!==e&&l.current?.(p)}else s(m)},[u,e,s,l]);return[d,f]}function PZ({defaultProp:e,onChange:t}){const[n,r]=y.useState(e),a=y.useRef(n),s=y.useRef(t);return MZ(()=>{s.current=t},[t]),y.useEffect(()=>{a.current!==n&&(s.current?.(n),a.current=n)},[n,a]),[n,r,s]}function RZ(e){return typeof e=="function"}var DZ=y.createContext(void 0);function Uu(e){const t=y.useContext(DZ);return e||t||"ltr"}var Z0="rovingFocusGroup.onEntryFocus",$Z={bubbles:!1,cancelable:!0},Dh="RovingFocusGroup",[A_,rz,IZ]=Rh(Dh),[LZ,Xg]=yr(Dh,[IZ]),[zZ,BZ]=LZ(Dh),az=y.forwardRef((e,t)=>i.jsx(A_.Provider,{scope:e.__scopeRovingFocusGroup,children:i.jsx(A_.Slot,{scope:e.__scopeRovingFocusGroup,children:i.jsx(qZ,{...e,ref:t})})}));az.displayName=Dh;var qZ=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:a=!1,dir:s,currentTabStopId:l,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:d,onEntryFocus:f,preventScrollOnEntryFocus:m=!1,...p}=e,g=y.useRef(null),x=Ue(t,g),j=Uu(s),[w,b]=Ta({prop:l,defaultProp:u??null,onChange:d,caller:Dh}),[N,E]=y.useState(!1),O=yn(f),A=rz(n),C=y.useRef(!1),[k,T]=y.useState(0);return y.useEffect(()=>{const M=g.current;if(M)return M.addEventListener(Z0,O),()=>M.removeEventListener(Z0,O)},[O]),i.jsx(zZ,{scope:n,orientation:r,dir:j,loop:a,currentTabStopId:w,onItemFocus:y.useCallback(M=>b(M),[b]),onItemShiftTab:y.useCallback(()=>E(!0),[]),onFocusableItemAdd:y.useCallback(()=>T(M=>M+1),[]),onFocusableItemRemove:y.useCallback(()=>T(M=>M-1),[]),children:i.jsx($e.div,{tabIndex:N||k===0?-1:0,"data-orientation":r,...p,ref:x,style:{outline:"none",...e.style},onMouseDown:Ne(e.onMouseDown,()=>{C.current=!0}),onFocus:Ne(e.onFocus,M=>{const R=!C.current;if(M.target===M.currentTarget&&R&&!N){const L=new CustomEvent(Z0,$Z);if(M.currentTarget.dispatchEvent(L),!L.defaultPrevented){const D=A().filter($=>$.focusable),U=D.find($=>$.active),V=D.find($=>$.id===w),G=[U,V,...D].filter(Boolean).map($=>$.ref.current);oz(G,m)}}C.current=!1}),onBlur:Ne(e.onBlur,()=>E(!1))})})}),iz="RovingFocusGroupItem",sz=y.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:a=!1,tabStopId:s,children:l,...u}=e,d=Gn(),f=s||d,m=BZ(iz,n),p=m.currentTabStopId===f,g=rz(n),{onFocusableItemAdd:x,onFocusableItemRemove:j,currentTabStopId:w}=m;return y.useEffect(()=>{if(r)return x(),()=>j()},[r,x,j]),i.jsx(A_.ItemSlot,{scope:n,id:f,focusable:r,active:a,children:i.jsx($e.span,{tabIndex:p?0:-1,"data-orientation":m.orientation,...u,ref:t,onMouseDown:Ne(e.onMouseDown,b=>{r?m.onItemFocus(f):b.preventDefault()}),onFocus:Ne(e.onFocus,()=>m.onItemFocus(f)),onKeyDown:Ne(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){m.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const N=HZ(b,m.orientation,m.dir);if(N!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let O=g().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")O.reverse();else if(N==="prev"||N==="next"){N==="prev"&&O.reverse();const A=O.indexOf(b.currentTarget);O=m.loop?WZ(O,A+1):O.slice(A+1)}setTimeout(()=>oz(O))}}),children:typeof l=="function"?l({isCurrentTabStop:p,hasTabStop:w!=null}):l})})});sz.displayName=iz;var FZ={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function UZ(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function HZ(e,t,n){const r=UZ(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return FZ[r]}function oz(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function WZ(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var lz=az,cz=sz;function VZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var zn=e=>{const{present:t,children:n}=e,r=GZ(t),a=typeof n=="function"?n({present:r.isPresent}):y.Children.only(n),s=Ue(r.ref,YZ(a));return typeof n=="function"||r.isPresent?y.cloneElement(a,{ref:s}):null};zn.displayName="Presence";function GZ(e){const[t,n]=y.useState(),r=y.useRef(null),a=y.useRef(e),s=y.useRef("none"),l=e?"mounted":"unmounted",[u,d]=VZ(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return y.useEffect(()=>{const f=Dp(r.current);s.current=u==="mounted"?f:"none"},[u]),Yn(()=>{const f=r.current,m=a.current;if(m!==e){const g=s.current,x=Dp(f);e?d("MOUNT"):x==="none"||f?.display==="none"?d("UNMOUNT"):d(m&&g!==x?"ANIMATION_OUT":"UNMOUNT"),a.current=e}},[e,d]),Yn(()=>{if(t){let f;const m=t.ownerDocument.defaultView??window,p=x=>{const w=Dp(r.current).includes(CSS.escape(x.animationName));if(x.target===t&&w&&(d("ANIMATION_END"),!a.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=x=>{x.target===t&&(s.current=Dp(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else d("ANIMATION_END")},[t,d]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:y.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function Dp(e){return e?.animationName||"none"}function YZ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Zg="Tabs",[KZ]=yr(Zg,[Xg]),uz=Xg(),[XZ,GC]=KZ(Zg),dz=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:a,defaultValue:s,orientation:l="horizontal",dir:u,activationMode:d="automatic",...f}=e,m=Uu(u),[p,g]=Ta({prop:r,onChange:a,defaultProp:s??"",caller:Zg});return i.jsx(XZ,{scope:n,baseId:Gn(),value:p,onValueChange:g,orientation:l,dir:m,activationMode:d,children:i.jsx($e.div,{dir:m,"data-orientation":l,...f,ref:t})})});dz.displayName=Zg;var fz="TabsList",hz=y.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...a}=e,s=GC(fz,n),l=uz(n);return i.jsx(lz,{asChild:!0,...l,orientation:s.orientation,dir:s.dir,loop:r,children:i.jsx($e.div,{role:"tablist","aria-orientation":s.orientation,...a,ref:t})})});hz.displayName=fz;var mz="TabsTrigger",pz=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:a=!1,...s}=e,l=GC(mz,n),u=uz(n),d=yz(l.baseId,r),f=xz(l.baseId,r),m=r===l.value;return i.jsx(cz,{asChild:!0,...u,focusable:!a,active:m,children:i.jsx($e.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":f,"data-state":m?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:d,...s,ref:t,onMouseDown:Ne(e.onMouseDown,p=>{!a&&p.button===0&&p.ctrlKey===!1?l.onValueChange(r):p.preventDefault()}),onKeyDown:Ne(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&l.onValueChange(r)}),onFocus:Ne(e.onFocus,()=>{const p=l.activationMode!=="manual";!m&&!a&&p&&l.onValueChange(r)})})})});pz.displayName=mz;var vz="TabsContent",gz=y.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:a,children:s,...l}=e,u=GC(vz,n),d=yz(u.baseId,r),f=xz(u.baseId,r),m=r===u.value,p=y.useRef(m);return y.useEffect(()=>{const g=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(g)},[]),i.jsx(zn,{present:a||m,children:({present:g})=>i.jsx($e.div,{"data-state":m?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":d,hidden:!g,id:f,tabIndex:0,...l,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:g&&s})})});gz.displayName=vz;function yz(e,t){return`${e}-trigger-${t}`}function xz(e,t){return`${e}-content-${t}`}var ZZ=dz,bz=hz,wz=pz,jz=gz;const hl=ZZ,ao=y.forwardRef(({className:e,...t},n)=>i.jsx(bz,{ref:n,className:ue("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));ao.displayName=bz.displayName;const Lt=y.forwardRef(({className:e,...t},n)=>i.jsx(wz,{ref:n,className:ue("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Lt.displayName=wz.displayName;const vn=y.forwardRef(({className:e,...t},n)=>i.jsx(jz,{ref:n,className:ue("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));vn.displayName=jz.displayName;function Df(e,[t,n]){return Math.min(n,Math.max(t,e))}function QZ(e,t){return y.useReducer((n,r)=>t[n][r]??n,e)}var YC="ScrollArea",[Sz]=yr(YC),[JZ,Ma]=Sz(YC),_z=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:r="hover",dir:a,scrollHideDelay:s=600,...l}=e,[u,d]=y.useState(null),[f,m]=y.useState(null),[p,g]=y.useState(null),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(0),[O,A]=y.useState(0),[C,k]=y.useState(!1),[T,M]=y.useState(!1),R=Ue(t,D=>d(D)),L=Uu(a);return i.jsx(JZ,{scope:n,type:r,dir:L,scrollHideDelay:s,scrollArea:u,viewport:f,onViewportChange:m,content:p,onContentChange:g,scrollbarX:x,onScrollbarXChange:j,scrollbarXEnabled:C,onScrollbarXEnabledChange:k,scrollbarY:w,onScrollbarYChange:b,scrollbarYEnabled:T,onScrollbarYEnabledChange:M,onCornerWidthChange:E,onCornerHeightChange:A,children:i.jsx($e.div,{dir:L,...l,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":N+"px","--radix-scroll-area-corner-height":O+"px",...e.style}})})});_z.displayName=YC;var Nz="ScrollAreaViewport",Cz=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:r,nonce:a,...s}=e,l=Ma(Nz,n),u=y.useRef(null),d=Ue(t,u,l.onViewportChange);return i.jsxs(i.Fragment,{children:[i.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),i.jsx($e.div,{"data-radix-scroll-area-viewport":"",...s,ref:d,style:{overflowX:l.scrollbarXEnabled?"scroll":"hidden",overflowY:l.scrollbarYEnabled?"scroll":"hidden",...e.style},children:i.jsx("div",{ref:l.onContentChange,style:{minWidth:"100%",display:"table"},children:r})})]})});Cz.displayName=Nz;var _i="ScrollAreaScrollbar",KC=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ma(_i,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:l}=a,u=e.orientation==="horizontal";return y.useEffect(()=>(u?s(!0):l(!0),()=>{u?s(!1):l(!1)}),[u,s,l]),a.type==="hover"?i.jsx(eQ,{...r,ref:t,forceMount:n}):a.type==="scroll"?i.jsx(tQ,{...r,ref:t,forceMount:n}):a.type==="auto"?i.jsx(Oz,{...r,ref:t,forceMount:n}):a.type==="always"?i.jsx(XC,{...r,ref:t}):null});KC.displayName=_i;var eQ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ma(_i,e.__scopeScrollArea),[s,l]=y.useState(!1);return y.useEffect(()=>{const u=a.scrollArea;let d=0;if(u){const f=()=>{window.clearTimeout(d),l(!0)},m=()=>{d=window.setTimeout(()=>l(!1),a.scrollHideDelay)};return u.addEventListener("pointerenter",f),u.addEventListener("pointerleave",m),()=>{window.clearTimeout(d),u.removeEventListener("pointerenter",f),u.removeEventListener("pointerleave",m)}}},[a.scrollArea,a.scrollHideDelay]),i.jsx(zn,{present:n||s,children:i.jsx(Oz,{"data-state":s?"visible":"hidden",...r,ref:t})})}),tQ=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ma(_i,e.__scopeScrollArea),s=e.orientation==="horizontal",l=Jg(()=>d("SCROLL_END"),100),[u,d]=QZ("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return y.useEffect(()=>{if(u==="idle"){const f=window.setTimeout(()=>d("HIDE"),a.scrollHideDelay);return()=>window.clearTimeout(f)}},[u,a.scrollHideDelay,d]),y.useEffect(()=>{const f=a.viewport,m=s?"scrollLeft":"scrollTop";if(f){let p=f[m];const g=()=>{const x=f[m];p!==x&&(d("SCROLL"),l()),p=x};return f.addEventListener("scroll",g),()=>f.removeEventListener("scroll",g)}},[a.viewport,s,d,l]),i.jsx(zn,{present:n||u!=="hidden",children:i.jsx(XC,{"data-state":u==="hidden"?"hidden":"visible",...r,ref:t,onPointerEnter:Ne(e.onPointerEnter,()=>d("POINTER_ENTER")),onPointerLeave:Ne(e.onPointerLeave,()=>d("POINTER_LEAVE"))})})}),Oz=y.forwardRef((e,t)=>{const n=Ma(_i,e.__scopeScrollArea),{forceMount:r,...a}=e,[s,l]=y.useState(!1),u=e.orientation==="horizontal",d=Jg(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...r}=e,a=Ma(_i,e.__scopeScrollArea),s=y.useRef(null),l=y.useRef(0),[u,d]=y.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=Mz(u.viewport,u.content),m={...r,sizes:u,onSizesChange:d,hasThumb:f>0&&f<1,onThumbChange:g=>s.current=g,onThumbPointerUp:()=>l.current=0,onThumbPointerDown:g=>l.current=g};function p(g,x){return oQ(g,l.current,u,x)}return n==="horizontal"?i.jsx(nQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollLeft,x=XM(g,u,a.dir);s.current.style.transform=`translate3d(${x}px, 0, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollLeft=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollLeft=p(g,a.dir))}}):n==="vertical"?i.jsx(rQ,{...m,ref:t,onThumbPositionChange:()=>{if(a.viewport&&s.current){const g=a.viewport.scrollTop,x=XM(g,u);s.current.style.transform=`translate3d(0, ${x}px, 0)`}},onWheelScroll:g=>{a.viewport&&(a.viewport.scrollTop=g)},onDragScroll:g=>{a.viewport&&(a.viewport.scrollTop=p(g))}}):null}),nQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ma(_i,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarXChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(Az,{"data-orientation":"horizontal",...a,ref:f,sizes:n,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Qg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.x),onDragScroll:m=>e.onDragScroll(m.x),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollLeft+m.deltaX;e.onWheelScroll(g),Rz(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:d.current.clientWidth,paddingStart:Ev(l.paddingLeft),paddingEnd:Ev(l.paddingRight)}})}})}),rQ=y.forwardRef((e,t)=>{const{sizes:n,onSizesChange:r,...a}=e,s=Ma(_i,e.__scopeScrollArea),[l,u]=y.useState(),d=y.useRef(null),f=Ue(t,d,s.onScrollbarYChange);return y.useEffect(()=>{d.current&&u(getComputedStyle(d.current))},[d]),i.jsx(Az,{"data-orientation":"vertical",...a,ref:f,sizes:n,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Qg(n)+"px",...e.style},onThumbPointerDown:m=>e.onThumbPointerDown(m.y),onDragScroll:m=>e.onDragScroll(m.y),onWheelScroll:(m,p)=>{if(s.viewport){const g=s.viewport.scrollTop+m.deltaY;e.onWheelScroll(g),Rz(g,p)&&m.preventDefault()}},onResize:()=>{d.current&&s.viewport&&l&&r({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:d.current.clientHeight,paddingStart:Ev(l.paddingTop),paddingEnd:Ev(l.paddingBottom)}})}})}),[aQ,Ez]=Sz(_i),Az=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:r,hasThumb:a,onThumbChange:s,onThumbPointerUp:l,onThumbPointerDown:u,onThumbPositionChange:d,onDragScroll:f,onWheelScroll:m,onResize:p,...g}=e,x=Ma(_i,n),[j,w]=y.useState(null),b=Ue(t,R=>w(R)),N=y.useRef(null),E=y.useRef(""),O=x.viewport,A=r.content-r.viewport,C=yn(m),k=yn(d),T=Jg(p,10);function M(R){if(N.current){const L=R.clientX-N.current.left,D=R.clientY-N.current.top;f({x:L,y:D})}}return y.useEffect(()=>{const R=L=>{const D=L.target;j?.contains(D)&&C(L,A)};return document.addEventListener("wheel",R,{passive:!1}),()=>document.removeEventListener("wheel",R,{passive:!1})},[O,j,A,C]),y.useEffect(k,[r,k]),ou(j,T),ou(x.content,T),i.jsx(aQ,{scope:n,scrollbar:j,hasThumb:a,onThumbChange:yn(s),onThumbPointerUp:yn(l),onThumbPositionChange:k,onThumbPointerDown:yn(u),children:i.jsx($e.div,{...g,ref:b,style:{position:"absolute",...g.style},onPointerDown:Ne(e.onPointerDown,R=>{R.button===0&&(R.target.setPointerCapture(R.pointerId),N.current=j.getBoundingClientRect(),E.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",x.viewport&&(x.viewport.style.scrollBehavior="auto"),M(R))}),onPointerMove:Ne(e.onPointerMove,M),onPointerUp:Ne(e.onPointerUp,R=>{const L=R.target;L.hasPointerCapture(R.pointerId)&&L.releasePointerCapture(R.pointerId),document.body.style.webkitUserSelect=E.current,x.viewport&&(x.viewport.style.scrollBehavior=""),N.current=null})})})}),Ov="ScrollAreaThumb",Tz=y.forwardRef((e,t)=>{const{forceMount:n,...r}=e,a=Ez(Ov,e.__scopeScrollArea);return i.jsx(zn,{present:n||a.hasThumb,children:i.jsx(iQ,{ref:t,...r})})}),iQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:r,...a}=e,s=Ma(Ov,n),l=Ez(Ov,n),{onThumbPositionChange:u}=l,d=Ue(t,p=>l.onThumbChange(p)),f=y.useRef(void 0),m=Jg(()=>{f.current&&(f.current(),f.current=void 0)},100);return y.useEffect(()=>{const p=s.viewport;if(p){const g=()=>{if(m(),!f.current){const x=lQ(p,u);f.current=x,u()}};return u(),p.addEventListener("scroll",g),()=>p.removeEventListener("scroll",g)}},[s.viewport,m,u]),i.jsx($e.div,{"data-state":l.hasThumb?"visible":"hidden",...a,ref:d,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...r},onPointerDownCapture:Ne(e.onPointerDownCapture,p=>{const x=p.target.getBoundingClientRect(),j=p.clientX-x.left,w=p.clientY-x.top;l.onThumbPointerDown({x:j,y:w})}),onPointerUp:Ne(e.onPointerUp,l.onThumbPointerUp)})});Tz.displayName=Ov;var ZC="ScrollAreaCorner",kz=y.forwardRef((e,t)=>{const n=Ma(ZC,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&r?i.jsx(sQ,{...e,ref:t}):null});kz.displayName=ZC;var sQ=y.forwardRef((e,t)=>{const{__scopeScrollArea:n,...r}=e,a=Ma(ZC,n),[s,l]=y.useState(0),[u,d]=y.useState(0),f=!!(s&&u);return ou(a.scrollbarX,()=>{const m=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(m),d(m)}),ou(a.scrollbarY,()=>{const m=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(m),l(m)}),f?i.jsx($e.div,{...r,ref:t,style:{width:s,height:u,position:"absolute",right:a.dir==="ltr"?0:void 0,left:a.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function Ev(e){return e?parseInt(e,10):0}function Mz(e,t){const n=e/t;return isNaN(n)?0:n}function Qg(e){const t=Mz(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function oQ(e,t,n,r="ltr"){const a=Qg(n),s=a/2,l=t||s,u=a-l,d=n.scrollbar.paddingStart+l,f=n.scrollbar.size-n.scrollbar.paddingEnd-u,m=n.content-n.viewport,p=r==="ltr"?[0,m]:[m*-1,0];return Pz([d,f],p)(e)}function XM(e,t,n="ltr"){const r=Qg(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-a,l=t.content-t.viewport,u=s-r,d=n==="ltr"?[0,l]:[l*-1,0],f=Df(e,d);return Pz([0,l],[0,u])(f)}function Pz(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Rz(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function a(){const s={left:e.scrollLeft,top:e.scrollTop},l=n.left!==s.left,u=n.top!==s.top;(l||u)&&t(),n=s,r=window.requestAnimationFrame(a)})(),()=>window.cancelAnimationFrame(r)};function Jg(e,t){const n=yn(e),r=y.useRef(0);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),y.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function ou(e,t){const n=yn(t);Yn(()=>{let r=0;if(e){const a=new ResizeObserver(()=>{cancelAnimationFrame(r),r=window.requestAnimationFrame(n)});return a.observe(e),()=>{window.cancelAnimationFrame(r),a.unobserve(e)}}},[e,n])}var Dz=_z,cQ=Cz,uQ=kz;const Gt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Dz,{ref:r,className:ue("relative overflow-hidden",e),...n,children:[i.jsx(cQ,{className:"h-full w-full rounded-[inherit]",children:t}),i.jsx($z,{}),i.jsx(uQ,{})]}));Gt.displayName=Dz.displayName;const $z=y.forwardRef(({className:e,orientation:t="vertical",...n},r)=>i.jsx(KC,{ref:r,orientation:t,className:ue("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:i.jsx(Tz,{className:"relative flex-1 rounded-full bg-border"})}));$z.displayName=KC.displayName;function ZM({className:e,...t}){return i.jsx("div",{className:ue("animate-pulse rounded-md bg-primary/10",e),...t})}function dQ(e,t=[]){let n=[];function r(s,l){const u=y.createContext(l);u.displayName=s+"Context";const d=n.length;n=[...n,l];const f=p=>{const{scope:g,children:x,...j}=p,w=g?.[e]?.[d]||u,b=y.useMemo(()=>j,Object.values(j));return i.jsx(w.Provider,{value:b,children:x})};f.displayName=s+"Provider";function m(p,g){const x=g?.[e]?.[d]||u,j=y.useContext(x);if(j)return j;if(l!==void 0)return l;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[f,m]}const a=()=>{const s=n.map(l=>y.createContext(l));return function(u){const d=u?.[e]||s;return y.useMemo(()=>({[`__scope${e}`]:{...u,[e]:d}}),[u,d])}};return a.scopeName=e,[r,fQ(a,...t)]}function fQ(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(a=>({useScope:a(),scopeName:a.scopeName}));return function(s){const l=r.reduce((u,{useScope:d,scopeName:f})=>{const p=d(s)[`__scope${f}`];return{...u,...p}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}var hQ=Symbol.for("react.lazy"),Av=TC[" use ".trim().toString()];function mQ(e){return typeof e=="object"&&e!==null&&"then"in e}function Iz(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===hQ&&"_payload"in e&&mQ(e._payload)}function $h(e){const t=vQ(e),n=y.forwardRef((r,a)=>{let{children:s,...l}=r;Iz(s)&&typeof Av=="function"&&(s=Av(s._payload));const u=y.Children.toArray(s),d=u.find(yQ);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}var pQ=$h("Slot");function vQ(e){const t=y.forwardRef((n,r)=>{let{children:a,...s}=n;if(Iz(a)&&typeof Av=="function"&&(a=Av(a._payload)),y.isValidElement(a)){const l=bQ(a),u=xQ(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gQ=Symbol("radix.slottable");function yQ(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gQ}function xQ(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function bQ(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var wQ=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Lz=wQ.reduce((e,t)=>{const n=$h(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),QC="Progress",JC=100,[jQ]=dQ(QC),[SQ,_Q]=jQ(QC),zz=y.forwardRef((e,t)=>{const{__scopeProgress:n,value:r=null,max:a,getValueLabel:s=NQ,...l}=e;(a||a===0)&&!QM(a)&&console.error(CQ(`${a}`,"Progress"));const u=QM(a)?a:JC;r!==null&&!JM(r,u)&&console.error(OQ(`${r}`,"Progress"));const d=JM(r,u)?r:null,f=Tv(d)?s(d,u):void 0;return i.jsx(SQ,{scope:n,value:d,max:u,children:i.jsx(Lz.div,{"aria-valuemax":u,"aria-valuemin":0,"aria-valuenow":Tv(d)?d:void 0,"aria-valuetext":f,role:"progressbar","data-state":Fz(d,u),"data-value":d??void 0,"data-max":u,...l,ref:t})})});zz.displayName=QC;var Bz="ProgressIndicator",qz=y.forwardRef((e,t)=>{const{__scopeProgress:n,...r}=e,a=_Q(Bz,n);return i.jsx(Lz.div,{"data-state":Fz(a.value,a.max),"data-value":a.value??void 0,"data-max":a.max,...r,ref:t})});qz.displayName=Bz;function NQ(e,t){return`${Math.round(e/t*100)}%`}function Fz(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function Tv(e){return typeof e=="number"}function QM(e){return Tv(e)&&!isNaN(e)&&e>0}function JM(e,t){return Tv(e)&&!isNaN(e)&&e<=t&&e>=0}function CQ(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${JC}\`.`}function OQ(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${JC} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var Uz=zz,EQ=qz;const Ih=y.forwardRef(({className:e,value:t,...n},r)=>i.jsx(Uz,{ref:r,className:ue("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:i.jsx(EQ,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));Ih.displayName=Uz.displayName;var Q0,eP;function Ur(){if(eP)return Q0;eP=1;var e=Array.isArray;return Q0=e,Q0}var J0,tP;function Hz(){if(tP)return J0;tP=1;var e=typeof Op=="object"&&Op&&Op.Object===Object&&Op;return J0=e,J0}var ew,nP;function Ni(){if(nP)return ew;nP=1;var e=Hz(),t=typeof self=="object"&&self&&self.Object===Object&&self,n=e||t||Function("return this")();return ew=n,ew}var tw,rP;function Lh(){if(rP)return tw;rP=1;var e=Ni(),t=e.Symbol;return tw=t,tw}var nw,aP;function AQ(){if(aP)return nw;aP=1;var e=Lh(),t=Object.prototype,n=t.hasOwnProperty,r=t.toString,a=e?e.toStringTag:void 0;function s(l){var u=n.call(l,a),d=l[a];try{l[a]=void 0;var f=!0}catch{}var m=r.call(l);return f&&(u?l[a]=d:delete l[a]),m}return nw=s,nw}var rw,iP;function TQ(){if(iP)return rw;iP=1;var e=Object.prototype,t=e.toString;function n(r){return t.call(r)}return rw=n,rw}var aw,sP;function ms(){if(sP)return aw;sP=1;var e=Lh(),t=AQ(),n=TQ(),r="[object Null]",a="[object Undefined]",s=e?e.toStringTag:void 0;function l(u){return u==null?u===void 0?a:r:s&&s in Object(u)?t(u):n(u)}return aw=l,aw}var iw,oP;function ps(){if(oP)return iw;oP=1;function e(t){return t!=null&&typeof t=="object"}return iw=e,iw}var sw,lP;function Hu(){if(lP)return sw;lP=1;var e=ms(),t=ps(),n="[object Symbol]";function r(a){return typeof a=="symbol"||t(a)&&e(a)==n}return sw=r,sw}var ow,cP;function eO(){if(cP)return ow;cP=1;var e=Ur(),t=Hu(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function a(s,l){if(e(s))return!1;var u=typeof s;return u=="number"||u=="symbol"||u=="boolean"||s==null||t(s)?!0:r.test(s)||!n.test(s)||l!=null&&s in Object(l)}return ow=a,ow}var lw,uP;function fo(){if(uP)return lw;uP=1;function e(t){var n=typeof t;return t!=null&&(n=="object"||n=="function")}return lw=e,lw}var cw,dP;function tO(){if(dP)return cw;dP=1;var e=ms(),t=fo(),n="[object AsyncFunction]",r="[object Function]",a="[object GeneratorFunction]",s="[object Proxy]";function l(u){if(!t(u))return!1;var d=e(u);return d==r||d==a||d==n||d==s}return cw=l,cw}var uw,fP;function kQ(){if(fP)return uw;fP=1;var e=Ni(),t=e["__core-js_shared__"];return uw=t,uw}var dw,hP;function MQ(){if(hP)return dw;hP=1;var e=kQ(),t=(function(){var r=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""})();function n(r){return!!t&&t in r}return dw=n,dw}var fw,mP;function Wz(){if(mP)return fw;mP=1;var e=Function.prototype,t=e.toString;function n(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return fw=n,fw}var hw,pP;function PQ(){if(pP)return hw;pP=1;var e=tO(),t=MQ(),n=fo(),r=Wz(),a=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,l=Function.prototype,u=Object.prototype,d=l.toString,f=u.hasOwnProperty,m=RegExp("^"+d.call(f).replace(a,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(g){if(!n(g)||t(g))return!1;var x=e(g)?m:s;return x.test(r(g))}return hw=p,hw}var mw,vP;function RQ(){if(vP)return mw;vP=1;function e(t,n){return t?.[n]}return mw=e,mw}var pw,gP;function Cl(){if(gP)return pw;gP=1;var e=PQ(),t=RQ();function n(r,a){var s=t(r,a);return e(s)?s:void 0}return pw=n,pw}var vw,yP;function ey(){if(yP)return vw;yP=1;var e=Cl(),t=e(Object,"create");return vw=t,vw}var gw,xP;function DQ(){if(xP)return gw;xP=1;var e=ey();function t(){this.__data__=e?e(null):{},this.size=0}return gw=t,gw}var yw,bP;function $Q(){if(bP)return yw;bP=1;function e(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}return yw=e,yw}var xw,wP;function IQ(){if(wP)return xw;wP=1;var e=ey(),t="__lodash_hash_undefined__",n=Object.prototype,r=n.hasOwnProperty;function a(s){var l=this.__data__;if(e){var u=l[s];return u===t?void 0:u}return r.call(l,s)?l[s]:void 0}return xw=a,xw}var bw,jP;function LQ(){if(jP)return bw;jP=1;var e=ey(),t=Object.prototype,n=t.hasOwnProperty;function r(a){var s=this.__data__;return e?s[a]!==void 0:n.call(s,a)}return bw=r,bw}var ww,SP;function zQ(){if(SP)return ww;SP=1;var e=ey(),t="__lodash_hash_undefined__";function n(r,a){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=e&&a===void 0?t:a,this}return ww=n,ww}var jw,_P;function BQ(){if(_P)return jw;_P=1;var e=DQ(),t=$Q(),n=IQ(),r=LQ(),a=zQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u-1}return Ew=t,Ew}var Aw,kP;function WQ(){if(kP)return Aw;kP=1;var e=ty();function t(n,r){var a=this.__data__,s=e(a,n);return s<0?(++this.size,a.push([n,r])):a[s][1]=r,this}return Aw=t,Aw}var Tw,MP;function ny(){if(MP)return Tw;MP=1;var e=qQ(),t=FQ(),n=UQ(),r=HQ(),a=WQ();function s(l){var u=-1,d=l==null?0:l.length;for(this.clear();++u0?1:-1},Zo=function(t){return ml(t)&&t.indexOf("%")===t.length-1},Ee=function(t){return mJ(t)&&!zh(t)},pJ=function(t){return Je(t)},Ln=function(t){return Ee(t)||ml(t)},vJ=0,Vu=function(t){var n=++vJ;return"".concat(t||"").concat(n)},_r=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ee(t)&&!ml(t))return r;var s;if(Zo(t)){var l=t.indexOf("%");s=n*parseFloat(t.slice(0,l))/100}else s=+t;return zh(s)&&(s=r),a&&s>n&&(s=n),s},Ks=function(t){if(!t)return null;var n=Object.keys(t);return n&&n.length?t[n[0]]:null},gJ=function(t){if(!Array.isArray(t))return!1;for(var n=t.length,r={},a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function _J(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function k_(e){"@babel/helpers - typeof";return k_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},k_(e)}var sR={click:"onClick",mousedown:"onMouseDown",mouseup:"onMouseUp",mouseover:"onMouseOver",mousemove:"onMouseMove",mouseout:"onMouseOut",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",touchcancel:"onTouchCancel",touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart",contextmenu:"onContextMenu",dblclick:"onDoubleClick"},as=function(t){return typeof t=="string"?t:t?t.displayName||t.name||"Component":""},oR=null,nj=null,lO=function e(t){if(t===oR&&Array.isArray(nj))return nj;var n=[];return y.Children.forEach(t,function(r){Je(r)||(uJ.isFragment(r)?n=n.concat(e(r.props.children)):n.push(r))}),nj=n,oR=t,n};function oa(e,t){var n=[],r=[];return Array.isArray(t)?r=t.map(function(a){return as(a)}):r=[as(t)],lO(e).forEach(function(a){var s=sa(a,"type.displayName")||sa(a,"type.name");r.indexOf(s)!==-1&&n.push(a)}),n}function ea(e,t){var n=oa(e,t);return n&&n[0]}var lR=function(t){if(!t||!t.props)return!1;var n=t.props,r=n.width,a=n.height;return!(!Ee(r)||r<=0||!Ee(a)||a<=0)},NJ=["a","altGlyph","altGlyphDef","altGlyphItem","animate","animateColor","animateMotion","animateTransform","circle","clipPath","color-profile","cursor","defs","desc","ellipse","feBlend","feColormatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","font","font-face","font-face-format","font-face-name","font-face-url","foreignObject","g","glyph","glyphRef","hkern","image","line","lineGradient","marker","mask","metadata","missing-glyph","mpath","path","pattern","polygon","polyline","radialGradient","rect","script","set","stop","style","svg","switch","symbol","text","textPath","title","tref","tspan","use","view","vkern"],CJ=function(t){return t&&t.type&&ml(t.type)&&NJ.indexOf(t.type)>=0},OJ=function(t){return t&&k_(t)==="object"&&"clipDot"in t},EJ=function(t,n,r,a){var s,l=(s=tj?.[a])!==null&&s!==void 0?s:[];return n.startsWith("data-")||!Ye(t)&&(a&&l.includes(n)||bJ.includes(n))||r&&oO.includes(n)},qe=function(t,n,r){if(!t||typeof t=="function"||typeof t=="boolean")return null;var a=t;if(y.isValidElement(t)&&(a=t.props),!Wu(a))return null;var s={};return Object.keys(a).forEach(function(l){var u;EJ((u=a)===null||u===void 0?void 0:u[l],l,n,r)&&(s[l]=a[l])}),s},M_=function e(t,n){if(t===n)return!0;var r=y.Children.count(t);if(r!==y.Children.count(n))return!1;if(r===0)return!0;if(r===1)return cR(Array.isArray(t)?t[0]:t,Array.isArray(n)?n[0]:n);for(var a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function PJ(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function R_(e){var t=e.children,n=e.width,r=e.height,a=e.viewBox,s=e.className,l=e.style,u=e.title,d=e.desc,f=MJ(e,kJ),m=a||{width:n,height:r,x:0,y:0},p=et("recharts-surface",s);return W.createElement("svg",P_({},qe(f,!0,"svg"),{className:p,width:n,height:r,style:l,viewBox:"".concat(m.x," ").concat(m.y," ").concat(m.width," ").concat(m.height)}),W.createElement("title",null,u),W.createElement("desc",null,d),t)}var RJ=["children","className"];function D_(){return D_=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function $J(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Nt=W.forwardRef(function(e,t){var n=e.children,r=e.className,a=DJ(e,RJ),s=et("recharts-layer",r);return W.createElement("g",D_({className:s},qe(a,!0),{ref:t}),n)}),Va=function(t,n){for(var r=arguments.length,a=new Array(r>2?r-2:0),s=2;ss?0:s+n),r=r>s?s:r,r<0&&(r+=s),s=n>r?0:r-n>>>0,n>>>=0;for(var l=Array(s);++a=s?n:e(n,r,a)}return aj=t,aj}var ij,hR;function Zz(){if(hR)return ij;hR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="\\u200d",u=RegExp("["+l+e+a+s+"]");function d(f){return u.test(f)}return ij=d,ij}var sj,mR;function zJ(){if(mR)return sj;mR=1;function e(t){return t.split("")}return sj=e,sj}var oj,pR;function BJ(){if(pR)return oj;pR=1;var e="\\ud800-\\udfff",t="\\u0300-\\u036f",n="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",a=t+n+r,s="\\ufe0e\\ufe0f",l="["+e+"]",u="["+a+"]",d="\\ud83c[\\udffb-\\udfff]",f="(?:"+u+"|"+d+")",m="[^"+e+"]",p="(?:\\ud83c[\\udde6-\\uddff]){2}",g="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",j=f+"?",w="["+s+"]?",b="(?:"+x+"(?:"+[m,p,g].join("|")+")"+w+j+")*",N=w+j+b,E="(?:"+[m+u+"?",u,p,g,l].join("|")+")",O=RegExp(d+"(?="+d+")|"+E+N,"g");function A(C){return C.match(O)||[]}return oj=A,oj}var lj,vR;function qJ(){if(vR)return lj;vR=1;var e=zJ(),t=Zz(),n=BJ();function r(a){return t(a)?n(a):e(a)}return lj=r,lj}var cj,gR;function FJ(){if(gR)return cj;gR=1;var e=LJ(),t=Zz(),n=qJ(),r=Gz();function a(s){return function(l){l=r(l);var u=t(l)?n(l):void 0,d=u?u[0]:l.charAt(0),f=u?e(u,1).join(""):l.slice(1);return d[s]()+f}}return cj=a,cj}var uj,yR;function UJ(){if(yR)return uj;yR=1;var e=FJ(),t=e("toUpperCase");return uj=t,uj}var HJ=UJ();const iy=Rt(HJ);function Zt(e){return function(){return e}}const Qz=Math.cos,Pv=Math.sin,Qa=Math.sqrt,Rv=Math.PI,sy=2*Rv,$_=Math.PI,I_=2*$_,Vo=1e-6,WJ=I_-Vo;function Jz(e){this._+=e[0];for(let t=1,n=e.length;t=0))throw new Error(`invalid digits: ${e}`);if(t>15)return Jz;const n=10**t;return function(r){this._+=r[0];for(let a=1,s=r.length;aVo)if(!(Math.abs(p*d-f*m)>Vo)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let x=r-l,j=a-u,w=d*d+f*f,b=x*x+j*j,N=Math.sqrt(w),E=Math.sqrt(g),O=s*Math.tan(($_-Math.acos((w+g-b)/(2*N*E)))/2),A=O/E,C=O/N;Math.abs(A-1)>Vo&&this._append`L${t+A*m},${n+A*p}`,this._append`A${s},${s},0,0,${+(p*x>m*j)},${this._x1=t+C*d},${this._y1=n+C*f}`}}arc(t,n,r,a,s,l){if(t=+t,n=+n,r=+r,l=!!l,r<0)throw new Error(`negative radius: ${r}`);let u=r*Math.cos(a),d=r*Math.sin(a),f=t+u,m=n+d,p=1^l,g=l?a-s:s-a;this._x1===null?this._append`M${f},${m}`:(Math.abs(this._x1-f)>Vo||Math.abs(this._y1-m)>Vo)&&this._append`L${f},${m}`,r&&(g<0&&(g=g%I_+I_),g>WJ?this._append`A${r},${r},0,1,${p},${t-u},${n-d}A${r},${r},0,1,${p},${this._x1=f},${this._y1=m}`:g>Vo&&this._append`A${r},${r},0,${+(g>=$_)},${p},${this._x1=t+r*Math.cos(s)},${this._y1=n+r*Math.sin(s)}`)}rect(t,n,r,a){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${r=+r}v${+a}h${-r}Z`}toString(){return this._}}function cO(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const r=Math.floor(n);if(!(r>=0))throw new RangeError(`invalid digits: ${n}`);t=r}return e},()=>new GJ(t)}function uO(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function eB(e){this._context=e}eB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function oy(e){return new eB(e)}function tB(e){return e[0]}function nB(e){return e[1]}function rB(e,t){var n=Zt(!0),r=null,a=oy,s=null,l=cO(u);e=typeof e=="function"?e:e===void 0?tB:Zt(e),t=typeof t=="function"?t:t===void 0?nB:Zt(t);function u(d){var f,m=(d=uO(d)).length,p,g=!1,x;for(r==null&&(s=a(x=l())),f=0;f<=m;++f)!(f=x;--j)u.point(O[j],A[j]);u.lineEnd(),u.areaEnd()}N&&(O[g]=+e(b,g,p),A[g]=+t(b,g,p),u.point(r?+r(b,g,p):O[g],n?+n(b,g,p):A[g]))}if(E)return u=null,E+""||null}function m(){return rB().defined(a).curve(l).context(s)}return f.x=function(p){return arguments.length?(e=typeof p=="function"?p:Zt(+p),r=null,f):e},f.x0=function(p){return arguments.length?(e=typeof p=="function"?p:Zt(+p),f):e},f.x1=function(p){return arguments.length?(r=p==null?null:typeof p=="function"?p:Zt(+p),f):r},f.y=function(p){return arguments.length?(t=typeof p=="function"?p:Zt(+p),n=null,f):t},f.y0=function(p){return arguments.length?(t=typeof p=="function"?p:Zt(+p),f):t},f.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:Zt(+p),f):n},f.lineX0=f.lineY0=function(){return m().x(e).y(t)},f.lineY1=function(){return m().x(e).y(n)},f.lineX1=function(){return m().x(r).y(t)},f.defined=function(p){return arguments.length?(a=typeof p=="function"?p:Zt(!!p),f):a},f.curve=function(p){return arguments.length?(l=p,s!=null&&(u=l(s)),f):l},f.context=function(p){return arguments.length?(p==null?s=u=null:u=l(s=p),f):s},f}class aB{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function YJ(e){return new aB(e,!0)}function KJ(e){return new aB(e,!1)}const dO={draw(e,t){const n=Qa(t/Rv);e.moveTo(n,0),e.arc(0,0,n,0,sy)}},XJ={draw(e,t){const n=Qa(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},iB=Qa(1/3),ZJ=iB*2,QJ={draw(e,t){const n=Qa(t/ZJ),r=n*iB;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},JJ={draw(e,t){const n=Qa(t),r=-n/2;e.rect(r,r,n,n)}},eee=.8908130915292852,sB=Pv(Rv/10)/Pv(7*Rv/10),tee=Pv(sy/10)*sB,nee=-Qz(sy/10)*sB,ree={draw(e,t){const n=Qa(t*eee),r=tee*n,a=nee*n;e.moveTo(0,-n),e.lineTo(r,a);for(let s=1;s<5;++s){const l=sy*s/5,u=Qz(l),d=Pv(l);e.lineTo(d*n,-u*n),e.lineTo(u*r-d*a,d*r+u*a)}e.closePath()}},dj=Qa(3),aee={draw(e,t){const n=-Qa(t/(dj*3));e.moveTo(0,n*2),e.lineTo(-dj*n,-n),e.lineTo(dj*n,-n),e.closePath()}},ja=-.5,Sa=Qa(3)/2,L_=1/Qa(12),iee=(L_/2+1)*3,see={draw(e,t){const n=Qa(t/iee),r=n/2,a=n*L_,s=r,l=n*L_+n,u=-s,d=l;e.moveTo(r,a),e.lineTo(s,l),e.lineTo(u,d),e.lineTo(ja*r-Sa*a,Sa*r+ja*a),e.lineTo(ja*s-Sa*l,Sa*s+ja*l),e.lineTo(ja*u-Sa*d,Sa*u+ja*d),e.lineTo(ja*r+Sa*a,ja*a-Sa*r),e.lineTo(ja*s+Sa*l,ja*l-Sa*s),e.lineTo(ja*u+Sa*d,ja*d-Sa*u),e.closePath()}};function oee(e,t){let n=null,r=cO(a);e=typeof e=="function"?e:Zt(e||dO),t=typeof t=="function"?t:Zt(t===void 0?64:+t);function a(){let s;if(n||(n=s=r()),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),s)return n=null,s+""||null}return a.type=function(s){return arguments.length?(e=typeof s=="function"?s:Zt(s),a):e},a.size=function(s){return arguments.length?(t=typeof s=="function"?s:Zt(+s),a):t},a.context=function(s){return arguments.length?(n=s??null,a):n},a}function Dv(){}function $v(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function oB(e){this._context=e}oB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:$v(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:$v(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function lee(e){return new oB(e)}function lB(e){this._context=e}lB.prototype={areaStart:Dv,areaEnd:Dv,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:$v(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function cee(e){return new lB(e)}function cB(e){this._context=e}cB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:$v(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function uee(e){return new cB(e)}function uB(e){this._context=e}uB.prototype={areaStart:Dv,areaEnd:Dv,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function dee(e){return new uB(e)}function xR(e){return e<0?-1:1}function bR(e,t,n){var r=e._x1-e._x0,a=t-e._x1,s=(e._y1-e._y0)/(r||a<0&&-0),l=(n-e._y1)/(a||r<0&&-0),u=(s*a+l*r)/(r+a);return(xR(s)+xR(l))*Math.min(Math.abs(s),Math.abs(l),.5*Math.abs(u))||0}function wR(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function fj(e,t,n){var r=e._x0,a=e._y0,s=e._x1,l=e._y1,u=(s-r)/3;e._context.bezierCurveTo(r+u,a+u*t,s-u,l-u*n,s,l)}function Iv(e){this._context=e}Iv.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:fj(this,this._t0,wR(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,fj(this,wR(this,n=bR(this,e,t)),n);break;default:fj(this,this._t0,n=bR(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function dB(e){this._context=new fB(e)}(dB.prototype=Object.create(Iv.prototype)).point=function(e,t){Iv.prototype.point.call(this,t,e)};function fB(e){this._context=e}fB.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,r,a,s){this._context.bezierCurveTo(t,e,r,n,s,a)}};function fee(e){return new Iv(e)}function hee(e){return new dB(e)}function hB(e){this._context=e}hB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var r=jR(e),a=jR(t),s=0,l=1;l=0;--t)a[t]=(l[t]-a[t+1])/s[t];for(s[n-1]=(e[n]+a[n-1])/2,t=0;t=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function pee(e){return new ly(e,.5)}function vee(e){return new ly(e,0)}function gee(e){return new ly(e,1)}function lu(e,t){if((l=e.length)>1)for(var n=1,r,a,s=e[t[0]],l,u=s.length;n=0;)n[t]=t;return n}function yee(e,t){return e[t]}function xee(e){const t=[];return t.key=e,t}function bee(){var e=Zt([]),t=z_,n=lu,r=yee;function a(s){var l=Array.from(e.apply(this,arguments),xee),u,d=l.length,f=-1,m;for(const p of s)for(u=0,++f;u0){for(var n,r,a=0,s=e[0].length,l;a0){for(var n=0,r=e[t[0]],a,s=r.length;n0)||!((s=(a=e[t[0]]).length)>0))){for(var n=0,r=1,a,s,l;r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Aee(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var mB={symbolCircle:dO,symbolCross:XJ,symbolDiamond:QJ,symbolSquare:JJ,symbolStar:ree,symbolTriangle:aee,symbolWye:see},Tee=Math.PI/180,kee=function(t){var n="symbol".concat(iy(t));return mB[n]||dO},Mee=function(t,n,r){if(n==="area")return t;switch(r){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var a=18*Tee;return 1.25*t*t*(Math.tan(a)-Math.tan(a*2)*Math.pow(Math.tan(a),2))}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},Pee=function(t,n){mB["symbol".concat(iy(t))]=n},fO=function(t){var n=t.type,r=n===void 0?"circle":n,a=t.size,s=a===void 0?64:a,l=t.sizeType,u=l===void 0?"area":l,d=Eee(t,_ee),f=_R(_R({},d),{},{type:r,size:s,sizeType:u}),m=function(){var b=kee(r),N=oee().type(b).size(Mee(s,u,r));return N()},p=f.className,g=f.cx,x=f.cy,j=qe(f,!0);return g===+g&&x===+x&&s===+s?W.createElement("path",B_({},j,{className:et("recharts-symbols",p),transform:"translate(".concat(g,", ").concat(x,")"),d:m()})):null};fO.registerSymbol=Pee;function cu(e){"@babel/helpers - typeof";return cu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cu(e)}function q_(){return q_=Object.assign?Object.assign.bind():function(e){for(var t=1;t`);var E=x.inactive?f:x.color;return W.createElement("li",q_({className:b,style:p,key:"legend-item-".concat(j)},pl(r.props,x,j)),W.createElement(R_,{width:l,height:l,viewBox:m,style:g},r.renderIcon(x)),W.createElement("span",{className:"recharts-legend-item-text",style:{color:E}},w?w(N,x,j):N))})}},{key:"render",value:function(){var r=this.props,a=r.payload,s=r.layout,l=r.align;if(!a||!a.length)return null;var u={padding:0,margin:0,textAlign:s==="horizontal"?l:"left"};return W.createElement("ul",{className:"recharts-default-legend",style:u},this.renderItems())}}])})(y.PureComponent);If(hO,"displayName","Legend");If(hO,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"middle",inactiveColor:"#ccc"});var hj,CR;function Uee(){if(CR)return hj;CR=1;var e=ny();function t(){this.__data__=new e,this.size=0}return hj=t,hj}var mj,OR;function Hee(){if(OR)return mj;OR=1;function e(t){var n=this.__data__,r=n.delete(t);return this.size=n.size,r}return mj=e,mj}var pj,ER;function Wee(){if(ER)return pj;ER=1;function e(t){return this.__data__.get(t)}return pj=e,pj}var vj,AR;function Vee(){if(AR)return vj;AR=1;function e(t){return this.__data__.has(t)}return vj=e,vj}var gj,TR;function Gee(){if(TR)return gj;TR=1;var e=ny(),t=rO(),n=aO(),r=200;function a(s,l){var u=this.__data__;if(u instanceof e){var d=u.__data__;if(!t||d.lengthx))return!1;var w=p.get(l),b=p.get(u);if(w&&b)return w==u&&b==l;var N=-1,E=!0,O=d&a?new e:void 0;for(p.set(l,u),p.set(u,l);++N-1&&r%1==0&&r-1&&n%1==0&&n<=e}return zj=t,zj}var Bj,eD;function ste(){if(eD)return Bj;eD=1;var e=ms(),t=gO(),n=ps(),r="[object Arguments]",a="[object Array]",s="[object Boolean]",l="[object Date]",u="[object Error]",d="[object Function]",f="[object Map]",m="[object Number]",p="[object Object]",g="[object RegExp]",x="[object Set]",j="[object String]",w="[object WeakMap]",b="[object ArrayBuffer]",N="[object DataView]",E="[object Float32Array]",O="[object Float64Array]",A="[object Int8Array]",C="[object Int16Array]",k="[object Int32Array]",T="[object Uint8Array]",M="[object Uint8ClampedArray]",R="[object Uint16Array]",L="[object Uint32Array]",D={};D[E]=D[O]=D[A]=D[C]=D[k]=D[T]=D[M]=D[R]=D[L]=!0,D[r]=D[a]=D[b]=D[s]=D[N]=D[l]=D[u]=D[d]=D[f]=D[m]=D[p]=D[g]=D[x]=D[j]=D[w]=!1;function U(V){return n(V)&&t(V.length)&&!!D[e(V)]}return Bj=U,Bj}var qj,tD;function _B(){if(tD)return qj;tD=1;function e(t){return function(n){return t(n)}}return qj=e,qj}var vf={exports:{}};vf.exports;var nD;function ote(){return nD||(nD=1,(function(e,t){var n=Hz(),r=t&&!t.nodeType&&t,a=r&&!0&&e&&!e.nodeType&&e,s=a&&a.exports===r,l=s&&n.process,u=(function(){try{var d=a&&a.require&&a.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}})();e.exports=u})(vf,vf.exports)),vf.exports}var Fj,rD;function NB(){if(rD)return Fj;rD=1;var e=ste(),t=_B(),n=ote(),r=n&&n.isTypedArray,a=r?t(r):e;return Fj=a,Fj}var Uj,aD;function lte(){if(aD)return Uj;aD=1;var e=rte(),t=pO(),n=Ur(),r=SB(),a=vO(),s=NB(),l=Object.prototype,u=l.hasOwnProperty;function d(f,m){var p=n(f),g=!p&&t(f),x=!p&&!g&&r(f),j=!p&&!g&&!x&&s(f),w=p||g||x||j,b=w?e(f.length,String):[],N=b.length;for(var E in f)(m||u.call(f,E))&&!(w&&(E=="length"||x&&(E=="offset"||E=="parent")||j&&(E=="buffer"||E=="byteLength"||E=="byteOffset")||a(E,N)))&&b.push(E);return b}return Uj=d,Uj}var Hj,iD;function cte(){if(iD)return Hj;iD=1;var e=Object.prototype;function t(n){var r=n&&n.constructor,a=typeof r=="function"&&r.prototype||e;return n===a}return Hj=t,Hj}var Wj,sD;function CB(){if(sD)return Wj;sD=1;function e(t,n){return function(r){return t(n(r))}}return Wj=e,Wj}var Vj,oD;function ute(){if(oD)return Vj;oD=1;var e=CB(),t=e(Object.keys,Object);return Vj=t,Vj}var Gj,lD;function dte(){if(lD)return Gj;lD=1;var e=cte(),t=ute(),n=Object.prototype,r=n.hasOwnProperty;function a(s){if(!e(s))return t(s);var l=[];for(var u in Object(s))r.call(s,u)&&u!="constructor"&&l.push(u);return l}return Gj=a,Gj}var Yj,cD;function Bh(){if(cD)return Yj;cD=1;var e=tO(),t=gO();function n(r){return r!=null&&t(r.length)&&!e(r)}return Yj=n,Yj}var Kj,uD;function cy(){if(uD)return Kj;uD=1;var e=lte(),t=dte(),n=Bh();function r(a){return n(a)?e(a):t(a)}return Kj=r,Kj}var Xj,dD;function fte(){if(dD)return Xj;dD=1;var e=Jee(),t=nte(),n=cy();function r(a){return e(a,n,t)}return Xj=r,Xj}var Zj,fD;function hte(){if(fD)return Zj;fD=1;var e=fte(),t=1,n=Object.prototype,r=n.hasOwnProperty;function a(s,l,u,d,f,m){var p=u&t,g=e(s),x=g.length,j=e(l),w=j.length;if(x!=w&&!p)return!1;for(var b=x;b--;){var N=g[b];if(!(p?N in l:r.call(l,N)))return!1}var E=m.get(s),O=m.get(l);if(E&&O)return E==l&&O==s;var A=!0;m.set(s,l),m.set(l,s);for(var C=p;++b-1}return S1=t,S1}var _1,zD;function Pte(){if(zD)return _1;zD=1;function e(t,n,r){for(var a=-1,s=t==null?0:t.length;++a=l){var N=f?null:a(d);if(N)return s(N);j=!1,g=r,b=new e}else b=f?[]:w;e:for(;++p=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Yte(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Kte(e){return e.value}function Xte(e,t){if(W.isValidElement(e))return W.cloneElement(e,t);if(typeof e=="function")return W.createElement(e,t);t.ref;var n=Gte(t,zte);return W.createElement(hO,n)}var GD=1,sl=(function(e){function t(){var n;Bte(this,t);for(var r=arguments.length,a=new Array(r),s=0;sGD||Math.abs(a.height-this.lastBoundingBox.height)>GD)&&(this.lastBoundingBox.width=a.width,this.lastBoundingBox.height=a.height,r&&r(a)):(this.lastBoundingBox.width!==-1||this.lastBoundingBox.height!==-1)&&(this.lastBoundingBox.width=-1,this.lastBoundingBox.height=-1,r&&r(null))}},{key:"getBBoxSnapshot",value:function(){return this.lastBoundingBox.width>=0&&this.lastBoundingBox.height>=0?Yi({},this.lastBoundingBox):{width:0,height:0}}},{key:"getDefaultPosition",value:function(r){var a=this.props,s=a.layout,l=a.align,u=a.verticalAlign,d=a.margin,f=a.chartWidth,m=a.chartHeight,p,g;if(!r||(r.left===void 0||r.left===null)&&(r.right===void 0||r.right===null))if(l==="center"&&s==="vertical"){var x=this.getBBoxSnapshot();p={left:((f||0)-x.width)/2}}else p=l==="right"?{right:d&&d.right||0}:{left:d&&d.left||0};if(!r||(r.top===void 0||r.top===null)&&(r.bottom===void 0||r.bottom===null))if(u==="middle"){var j=this.getBBoxSnapshot();g={top:((m||0)-j.height)/2}}else g=u==="bottom"?{bottom:d&&d.bottom||0}:{top:d&&d.top||0};return Yi(Yi({},p),g)}},{key:"render",value:function(){var r=this,a=this.props,s=a.content,l=a.width,u=a.height,d=a.wrapperStyle,f=a.payloadUniqBy,m=a.payload,p=Yi(Yi({position:"absolute",width:l||"auto",height:u||"auto"},this.getDefaultPosition(d)),d);return W.createElement("div",{className:"recharts-legend-wrapper",style:p,ref:function(x){r.wrapperNode=x}},Xte(s,Yi(Yi({},this.props),{},{payload:kB(m,f,Kte)})))}}],[{key:"getWithHeight",value:function(r,a){var s=Yi(Yi({},this.defaultProps),r.props),l=s.layout;return l==="vertical"&&Ee(r.props.height)?{height:r.props.height}:l==="horizontal"?{width:r.props.width||a}:null}}])})(y.PureComponent);uy(sl,"displayName","Legend");uy(sl,"defaultProps",{iconSize:14,layout:"horizontal",align:"center",verticalAlign:"bottom"});var A1,YD;function Zte(){if(YD)return A1;YD=1;var e=Lh(),t=pO(),n=Ur(),r=e?e.isConcatSpreadable:void 0;function a(s){return n(s)||t(s)||!!(r&&s&&s[r])}return A1=a,A1}var T1,KD;function RB(){if(KD)return T1;KD=1;var e=jB(),t=Zte();function n(r,a,s,l,u){var d=-1,f=r.length;for(s||(s=t),u||(u=[]);++d0&&s(m)?a>1?n(m,a-1,s,l,u):e(u,m):l||(u[u.length]=m)}return u}return T1=n,T1}var k1,XD;function Qte(){if(XD)return k1;XD=1;function e(t){return function(n,r,a){for(var s=-1,l=Object(n),u=a(n),d=u.length;d--;){var f=u[t?d:++s];if(r(l[f],f,l)===!1)break}return n}}return k1=e,k1}var M1,ZD;function Jte(){if(ZD)return M1;ZD=1;var e=Qte(),t=e();return M1=t,M1}var P1,QD;function DB(){if(QD)return P1;QD=1;var e=Jte(),t=cy();function n(r,a){return r&&e(r,a,t)}return P1=n,P1}var R1,JD;function ene(){if(JD)return R1;JD=1;var e=Bh();function t(n,r){return function(a,s){if(a==null)return a;if(!e(a))return n(a,s);for(var l=a.length,u=r?l:-1,d=Object(a);(r?u--:++ur||u&&d&&m&&!f&&!p||s&&d&&m||!a&&m||!l)return 1;if(!s&&!u&&!p&&n=f)return m;var p=a[s];return m*(p=="desc"?-1:1)}}return n.index-r.index}return z1=t,z1}var B1,i4;function ane(){if(i4)return B1;i4=1;var e=iO(),t=sO(),n=Ci(),r=$B(),a=tne(),s=_B(),l=rne(),u=Gu(),d=Ur();function f(m,p,g){p.length?p=e(p,function(w){return d(w)?function(b){return t(b,w.length===1?w[0]:w)}:w}):p=[u];var x=-1;p=e(p,s(n));var j=r(m,function(w,b,N){var E=e(p,function(O){return O(w)});return{criteria:E,index:++x,value:w}});return a(j,function(w,b){return l(w,b,g)})}return B1=f,B1}var q1,s4;function ine(){if(s4)return q1;s4=1;function e(t,n,r){switch(r.length){case 0:return t.call(n);case 1:return t.call(n,r[0]);case 2:return t.call(n,r[0],r[1]);case 3:return t.call(n,r[0],r[1],r[2])}return t.apply(n,r)}return q1=e,q1}var F1,o4;function sne(){if(o4)return F1;o4=1;var e=ine(),t=Math.max;function n(r,a,s){return a=t(a===void 0?r.length-1:a,0),function(){for(var l=arguments,u=-1,d=t(l.length-a,0),f=Array(d);++u0){if(++s>=e)return arguments[0]}else s=0;return a.apply(void 0,arguments)}}return V1=r,V1}var G1,f4;function une(){if(f4)return G1;f4=1;var e=lne(),t=cne(),n=t(e);return G1=n,G1}var Y1,h4;function dne(){if(h4)return Y1;h4=1;var e=Gu(),t=sne(),n=une();function r(a,s){return n(t(a,s,e),a+"")}return Y1=r,Y1}var K1,m4;function dy(){if(m4)return K1;m4=1;var e=nO(),t=Bh(),n=vO(),r=fo();function a(s,l,u){if(!r(u))return!1;var d=typeof l;return(d=="number"?t(u)&&n(l,u.length):d=="string"&&l in u)?e(u[l],s):!1}return K1=a,K1}var X1,p4;function fne(){if(p4)return X1;p4=1;var e=RB(),t=ane(),n=dne(),r=dy(),a=n(function(s,l){if(s==null)return[];var u=l.length;return u>1&&r(s,l[0],l[1])?l=[]:u>2&&r(l[0],l[1],l[2])&&(l=[l[0]]),t(s,e(l,1),[])});return X1=a,X1}var hne=fne();const bO=Rt(hne);function Lf(e){"@babel/helpers - typeof";return Lf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Lf(e)}function H_(){return H_=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.x),"".concat(nf,"-left"),Ee(n)&&t&&Ee(t.x)&&n=t.y),"".concat(nf,"-top"),Ee(r)&&t&&Ee(t.y)&&rw?Math.max(m,d[r]):Math.max(p,d[r])}function Ene(e){var t=e.translateX,n=e.translateY,r=e.useTranslate3d;return{transform:r?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function Ane(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTopLeft,a=e.position,s=e.reverseDirection,l=e.tooltipBox,u=e.useTranslate3d,d=e.viewBox,f,m,p;return l.height>0&&l.width>0&&n?(m=y4({allowEscapeViewBox:t,coordinate:n,key:"x",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.width,viewBox:d,viewBoxDimension:d.width}),p=y4({allowEscapeViewBox:t,coordinate:n,key:"y",offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:l.height,viewBox:d,viewBoxDimension:d.height}),f=Ene({translateX:m,translateY:p,useTranslate3d:u})):f=Cne,{cssProperties:f,cssClasses:One({translateX:m,translateY:p,coordinate:n})}}function du(e){"@babel/helpers - typeof";return du=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},du(e)}function x4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function b4(e){for(var t=1;tw4||Math.abs(r.height-this.state.lastBoundingBox.height)>w4)&&this.setState({lastBoundingBox:{width:r.width,height:r.height}})}else(this.state.lastBoundingBox.width!==-1||this.state.lastBoundingBox.height!==-1)&&this.setState({lastBoundingBox:{width:-1,height:-1}})}},{key:"componentDidMount",value:function(){document.addEventListener("keydown",this.handleKeyDown),this.updateBBox()}},{key:"componentWillUnmount",value:function(){document.removeEventListener("keydown",this.handleKeyDown)}},{key:"componentDidUpdate",value:function(){var r,a;this.props.active&&this.updateBBox(),this.state.dismissed&&(((r=this.props.coordinate)===null||r===void 0?void 0:r.x)!==this.state.dismissedAtCoordinate.x||((a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}},{key:"render",value:function(){var r=this,a=this.props,s=a.active,l=a.allowEscapeViewBox,u=a.animationDuration,d=a.animationEasing,f=a.children,m=a.coordinate,p=a.hasPayload,g=a.isAnimationActive,x=a.offset,j=a.position,w=a.reverseDirection,b=a.useTranslate3d,N=a.viewBox,E=a.wrapperStyle,O=Ane({allowEscapeViewBox:l,coordinate:m,offsetTopLeft:x,position:j,reverseDirection:w,tooltipBox:this.state.lastBoundingBox,useTranslate3d:b,viewBox:N}),A=O.cssClasses,C=O.cssProperties,k=b4(b4({transition:g&&s?"transform ".concat(u,"ms ").concat(d):void 0},C),{},{pointerEvents:"none",visibility:!this.state.dismissed&&s&&p?"visible":"hidden",position:"absolute",top:0,left:0},E);return W.createElement("div",{tabIndex:-1,className:A,style:k,ref:function(M){r.wrapperNode=M}},f)}}])})(y.PureComponent),zne=function(){return!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout)},Ol={isSsr:zne()};function fu(e){"@babel/helpers - typeof";return fu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},fu(e)}function j4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function S4(e){for(var t=1;t0;return W.createElement(Lne,{allowEscapeViewBox:l,animationDuration:u,animationEasing:d,isAnimationActive:g,active:s,coordinate:m,hasPayload:k,offset:x,position:b,reverseDirection:N,useTranslate3d:E,viewBox:O,wrapperStyle:A},Kne(f,S4(S4({},this.props),{},{payload:C})))}}])})(y.PureComponent);wO(oi,"displayName","Tooltip");wO(oi,"defaultProps",{accessibilityLayer:!1,allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",contentStyle:{},coordinate:{x:0,y:0},cursor:!0,cursorStyle:{},filterNull:!0,isAnimationActive:!Ol.isSsr,itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,viewBox:{x:0,y:0,height:0,width:0},wrapperStyle:{}});var Q1,_4;function Xne(){if(_4)return Q1;_4=1;var e=Ni(),t=function(){return e.Date.now()};return Q1=t,Q1}var J1,N4;function Zne(){if(N4)return J1;N4=1;var e=/\s/;function t(n){for(var r=n.length;r--&&e.test(n.charAt(r)););return r}return J1=t,J1}var eS,C4;function Qne(){if(C4)return eS;C4=1;var e=Zne(),t=/^\s+/;function n(r){return r&&r.slice(0,e(r)+1).replace(t,"")}return eS=n,eS}var tS,O4;function FB(){if(O4)return tS;O4=1;var e=Qne(),t=fo(),n=Hu(),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;function d(f){if(typeof f=="number")return f;if(n(f))return r;if(t(f)){var m=typeof f.valueOf=="function"?f.valueOf():f;f=t(m)?m+"":m}if(typeof f!="string")return f===0?f:+f;f=e(f);var p=s.test(f);return p||l.test(f)?u(f.slice(2),p?2:8):a.test(f)?r:+f}return tS=d,tS}var nS,E4;function Jne(){if(E4)return nS;E4=1;var e=fo(),t=Xne(),n=FB(),r="Expected a function",a=Math.max,s=Math.min;function l(u,d,f){var m,p,g,x,j,w,b=0,N=!1,E=!1,O=!0;if(typeof u!="function")throw new TypeError(r);d=n(d)||0,e(f)&&(N=!!f.leading,E="maxWait"in f,g=E?a(n(f.maxWait)||0,d):g,O="trailing"in f?!!f.trailing:O);function A(V){var H=m,G=p;return m=p=void 0,b=V,x=u.apply(G,H),x}function C(V){return b=V,j=setTimeout(M,d),N?A(V):x}function k(V){var H=V-w,G=V-b,$=d-H;return E?s($,g-G):$}function T(V){var H=V-w,G=V-b;return w===void 0||H>=d||H<0||E&&G>=g}function M(){var V=t();if(T(V))return R(V);j=setTimeout(M,k(V))}function R(V){return j=void 0,O&&m?A(V):(m=p=void 0,x)}function L(){j!==void 0&&clearTimeout(j),b=0,m=w=p=j=void 0}function D(){return j===void 0?x:R(t())}function U(){var V=t(),H=T(V);if(m=arguments,p=this,w=V,H){if(j===void 0)return C(w);if(E)return clearTimeout(j),j=setTimeout(M,d),A(w)}return j===void 0&&(j=setTimeout(M,d)),x}return U.cancel=L,U.flush=D,U}return nS=l,nS}var rS,A4;function ere(){if(A4)return rS;A4=1;var e=Jne(),t=fo(),n="Expected a function";function r(a,s,l){var u=!0,d=!0;if(typeof a!="function")throw new TypeError(n);return t(l)&&(u="leading"in l?!!l.leading:u,d="trailing"in l?!!l.trailing:d),e(a,s,{leading:u,maxWait:s,trailing:d})}return rS=r,rS}var tre=ere();const UB=Rt(tre);function Bf(e){"@babel/helpers - typeof";return Bf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Bf(e)}function T4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Lp(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(V=UB(V,w,{trailing:!0,leading:!1}));var H=new ResizeObserver(V),G=C.current.getBoundingClientRect(),$=G.width,I=G.height;return D($,I),H.observe(C.current),function(){H.disconnect()}},[D,w]);var U=y.useMemo(function(){var V=R.containerWidth,H=R.containerHeight;if(V<0||H<0)return null;Va(Zo(l)||Zo(d),`The width(%s) and height(%s) are both fixed numbers, - maybe you don't need to use a ResponsiveContainer.`,l,d),Va(!n||n>0,"The aspect(%s) must be greater than zero.",n);var G=Zo(l)?V:l,$=Zo(d)?H:d;n&&n>0&&(G?$=G/n:$&&(G=$*n),g&&$>g&&($=g)),Va(G>0||$>0,`The width(%s) and height(%s) of chart should be greater than 0, - please check the style of container, or the props width(%s) and height(%s), - or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the - height and width.`,G,$,l,d,m,p,n);var I=!Array.isArray(x)&&as(x.type).endsWith("Chart");return W.Children.map(x,function(q){return W.isValidElement(q)?y.cloneElement(q,Lp({width:G,height:$},I?{style:Lp({height:"100%",width:"100%",maxHeight:$,maxWidth:G},q.props.style)}:{})):q})},[n,x,d,g,p,m,R,l]);return W.createElement("div",{id:b?"".concat(b):void 0,className:et("recharts-responsive-container",N),style:Lp(Lp({},A),{},{width:l,height:d,minWidth:m,minHeight:p,maxHeight:g}),ref:C},U)}),fy=function(t){return null};fy.displayName="Cell";function qf(e){"@babel/helpers - typeof";return qf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},qf(e)}function M4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Y_(e){for(var t=1;t1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Ol.isSsr)return{width:0,height:0};var r=vre(n),a=JSON.stringify({text:t,copyStyle:r});if(Cc.widthCache[a])return Cc.widthCache[a];try{var s=document.getElementById(P4);s||(s=document.createElement("span"),s.setAttribute("id",P4),s.setAttribute("aria-hidden","true"),document.body.appendChild(s));var l=Y_(Y_({},pre),r);Object.assign(s.style,l),s.textContent="".concat(t);var u=s.getBoundingClientRect(),d={width:u.width,height:u.height};return Cc.widthCache[a]=d,++Cc.cacheCount>mre&&(Cc.cacheCount=0,Cc.widthCache={}),d}catch{return{width:0,height:0}}},gre=function(t){return{top:t.top+window.scrollY-document.documentElement.clientTop,left:t.left+window.scrollX-document.documentElement.clientLeft}};function Ff(e){"@babel/helpers - typeof";return Ff=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ff(e)}function Fv(e,t){return wre(e)||bre(e,t)||xre(e,t)||yre()}function yre(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xre(e,t){if(e){if(typeof e=="string")return R4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return R4(e,t)}}function R4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Dre(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function B4(e,t){return zre(e)||Lre(e,t)||Ire(e,t)||$re()}function $re(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ire(e,t){if(e){if(typeof e=="string")return q4(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return q4(e,t)}}function q4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[];return G.reduce(function($,I){var q=I.word,Z=I.width,ee=$[$.length-1];if(ee&&(a==null||s||ee.width+Z+rI.width?$:I})};if(!m)return x;for(var w="…",b=function(G){var $=p.slice(0,G),I=GB({breakAll:f,style:d,children:$+w}).wordsWithComputedWidth,q=g(I),Z=q.length>l||j(q).width>Number(a);return[Z,q]},N=0,E=p.length-1,O=0,A;N<=E&&O<=p.length-1;){var C=Math.floor((N+E)/2),k=C-1,T=b(k),M=B4(T,2),R=M[0],L=M[1],D=b(C),U=B4(D,1),V=U[0];if(!R&&!V&&(N=C+1),R&&V&&(E=C-1),!R&&V){A=L;break}O++}return A||x},F4=function(t){var n=Je(t)?[]:t.toString().split(VB);return[{words:n}]},qre=function(t){var n=t.width,r=t.scaleToFit,a=t.children,s=t.style,l=t.breakAll,u=t.maxLines;if((n||r)&&!Ol.isSsr){var d,f,m=GB({breakAll:l,children:a,style:s});if(m){var p=m.wordsWithComputedWidth,g=m.spaceWidth;d=p,f=g}else return F4(a);return Bre({breakAll:l,children:a,maxLines:u,style:s},d,f,n,r)}return F4(a)},U4="#808080",vl=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.lineHeight,u=l===void 0?"1em":l,d=t.capHeight,f=d===void 0?"0.71em":d,m=t.scaleToFit,p=m===void 0?!1:m,g=t.textAnchor,x=g===void 0?"start":g,j=t.verticalAnchor,w=j===void 0?"end":j,b=t.fill,N=b===void 0?U4:b,E=z4(t,Pre),O=y.useMemo(function(){return qre({breakAll:E.breakAll,children:E.children,maxLines:E.maxLines,scaleToFit:p,style:E.style,width:E.width})},[E.breakAll,E.children,E.maxLines,p,E.style,E.width]),A=E.dx,C=E.dy,k=E.angle,T=E.className,M=E.breakAll,R=z4(E,Rre);if(!Ln(r)||!Ln(s))return null;var L=r+(Ee(A)?A:0),D=s+(Ee(C)?C:0),U;switch(w){case"start":U=aS("calc(".concat(f,")"));break;case"middle":U=aS("calc(".concat((O.length-1)/2," * -").concat(u," + (").concat(f," / 2))"));break;default:U=aS("calc(".concat(O.length-1," * -").concat(u,")"));break}var V=[];if(p){var H=O[0].width,G=E.width;V.push("scale(".concat((Ee(G)?G/H:1)/H,")"))}return k&&V.push("rotate(".concat(k,", ").concat(L,", ").concat(D,")")),V.length&&(R.transform=V.join(" ")),W.createElement("text",K_({},qe(R,!0),{x:L,y:D,className:et("recharts-text",T),textAnchor:x,fill:N.includes("url")?U4:N}),O.map(function($,I){var q=$.words.join(M?"":" ");return W.createElement("tspan",{x:L,dy:I===0?U:u,key:"".concat(q,"-").concat(I)},q)}))};function no(e,t){return e==null||t==null?NaN:et?1:e>=t?0:NaN}function Fre(e,t){return e==null||t==null?NaN:te?1:t>=e?0:NaN}function jO(e){let t,n,r;e.length!==2?(t=no,n=(u,d)=>no(e(u),d),r=(u,d)=>e(u)-d):(t=e===no||e===Fre?e:Ure,n=e,r=e);function a(u,d,f=0,m=u.length){if(f>>1;n(u[p],d)<0?f=p+1:m=p}while(f>>1;n(u[p],d)<=0?f=p+1:m=p}while(ff&&r(u[p-1],d)>-r(u[p],d)?p-1:p}return{left:a,center:l,right:s}}function Ure(){return 0}function YB(e){return e===null?NaN:+e}function*Hre(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Wre=jO(no),qh=Wre.right;jO(YB).center;class H4 extends Map{constructor(t,n=Yre){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[r,a]of t)this.set(r,a)}get(t){return super.get(W4(this,t))}has(t){return super.has(W4(this,t))}set(t,n){return super.set(Vre(this,t),n)}delete(t){return super.delete(Gre(this,t))}}function W4({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):n}function Vre({_intern:e,_key:t},n){const r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function Gre({_intern:e,_key:t},n){const r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function Yre(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Kre(e=no){if(e===no)return KB;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function KB(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(et?1:0)}const Xre=Math.sqrt(50),Zre=Math.sqrt(10),Qre=Math.sqrt(2);function Uv(e,t,n){const r=(t-e)/Math.max(0,n),a=Math.floor(Math.log10(r)),s=r/Math.pow(10,a),l=s>=Xre?10:s>=Zre?5:s>=Qre?2:1;let u,d,f;return a<0?(f=Math.pow(10,-a)/l,u=Math.round(e*f),d=Math.round(t*f),u/ft&&--d,f=-f):(f=Math.pow(10,a)*l,u=Math.round(e/f),d=Math.round(t/f),u*ft&&--d),d0))return[];if(e===t)return[e];const r=t=a))return[];const u=s-a+1,d=new Array(u);if(r)if(l<0)for(let f=0;f=r)&&(n=r);return n}function G4(e,t){let n;for(const r of e)r!=null&&(n>r||n===void 0&&r>=r)&&(n=r);return n}function XB(e,t,n=0,r=1/0,a){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(a=a===void 0?KB:Kre(a);r>n;){if(r-n>600){const d=r-n+1,f=t-n+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(f-d/2<0?-1:1),x=Math.max(n,Math.floor(t-f*p/d+g)),j=Math.min(r,Math.floor(t+(d-f)*p/d+g));XB(e,t,x,j,a)}const s=e[t];let l=n,u=r;for(rf(e,n,t),a(e[r],s)>0&&rf(e,n,r);l0;)--u}a(e[n],s)===0?rf(e,n,u):(++u,rf(e,u,r)),u<=t&&(n=u+1),t<=u&&(r=u-1)}return e}function rf(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function Jre(e,t,n){if(e=Float64Array.from(Hre(e)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return G4(e);if(t>=1)return V4(e);var r,a=(r-1)*t,s=Math.floor(a),l=V4(XB(e,s).subarray(0,s+1)),u=G4(e.subarray(s+1));return l+(u-l)*(a-s)}}function eae(e,t,n=YB){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,a=(r-1)*t,s=Math.floor(a),l=+n(e[s],s,e),u=+n(e[s+1],s+1,e);return l+(u-l)*(a-s)}}function tae(e,t,n){e=+e,t=+t,n=(a=arguments.length)<2?(t=e,e=0,1):a<3?1:+n;for(var r=-1,a=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(a);++r>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Bp(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Bp(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=rae.exec(e))?new $r(t[1],t[2],t[3],1):(t=aae.exec(e))?new $r(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=iae.exec(e))?Bp(t[1],t[2],t[3],t[4]):(t=sae.exec(e))?Bp(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=oae.exec(e))?e3(t[1],t[2]/100,t[3]/100,1):(t=lae.exec(e))?e3(t[1],t[2]/100,t[3]/100,t[4]):Y4.hasOwnProperty(e)?Z4(Y4[e]):e==="transparent"?new $r(NaN,NaN,NaN,0):null}function Z4(e){return new $r(e>>16&255,e>>8&255,e&255,1)}function Bp(e,t,n,r){return r<=0&&(e=t=n=NaN),new $r(e,t,n,r)}function dae(e){return e instanceof Fh||(e=Vf(e)),e?(e=e.rgb(),new $r(e.r,e.g,e.b,e.opacity)):new $r}function eN(e,t,n,r){return arguments.length===1?dae(e):new $r(e,t,n,r??1)}function $r(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}_O($r,eN,QB(Fh,{brighter(e){return e=e==null?Hv:Math.pow(Hv,e),new $r(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Hf:Math.pow(Hf,e),new $r(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new $r(ol(this.r),ol(this.g),ol(this.b),Wv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Q4,formatHex:Q4,formatHex8:fae,formatRgb:J4,toString:J4}));function Q4(){return`#${Qo(this.r)}${Qo(this.g)}${Qo(this.b)}`}function fae(){return`#${Qo(this.r)}${Qo(this.g)}${Qo(this.b)}${Qo((isNaN(this.opacity)?1:this.opacity)*255)}`}function J4(){const e=Wv(this.opacity);return`${e===1?"rgb(":"rgba("}${ol(this.r)}, ${ol(this.g)}, ${ol(this.b)}${e===1?")":`, ${e})`}`}function Wv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ol(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Qo(e){return e=ol(e),(e<16?"0":"")+e.toString(16)}function e3(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ua(e,t,n,r)}function JB(e){if(e instanceof Ua)return new Ua(e.h,e.s,e.l,e.opacity);if(e instanceof Fh||(e=Vf(e)),!e)return new Ua;if(e instanceof Ua)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,a=Math.min(t,n,r),s=Math.max(t,n,r),l=NaN,u=s-a,d=(s+a)/2;return u?(t===s?l=(n-r)/u+(n0&&d<1?0:l,new Ua(l,u,d,e.opacity)}function hae(e,t,n,r){return arguments.length===1?JB(e):new Ua(e,t,n,r??1)}function Ua(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}_O(Ua,hae,QB(Fh,{brighter(e){return e=e==null?Hv:Math.pow(Hv,e),new Ua(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Hf:Math.pow(Hf,e),new Ua(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,a=2*n-r;return new $r(iS(e>=240?e-240:e+120,a,r),iS(e,a,r),iS(e<120?e+240:e-120,a,r),this.opacity)},clamp(){return new Ua(t3(this.h),qp(this.s),qp(this.l),Wv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Wv(this.opacity);return`${e===1?"hsl(":"hsla("}${t3(this.h)}, ${qp(this.s)*100}%, ${qp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function t3(e){return e=(e||0)%360,e<0?e+360:e}function qp(e){return Math.max(0,Math.min(1,e||0))}function iS(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const NO=e=>()=>e;function mae(e,t){return function(n){return e+n*t}}function pae(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function vae(e){return(e=+e)==1?e6:function(t,n){return n-t?pae(t,n,e):NO(isNaN(t)?n:t)}}function e6(e,t){var n=t-e;return n?mae(e,n):NO(isNaN(e)?t:e)}const n3=(function e(t){var n=vae(t);function r(a,s){var l=n((a=eN(a)).r,(s=eN(s)).r),u=n(a.g,s.g),d=n(a.b,s.b),f=e6(a.opacity,s.opacity);return function(m){return a.r=l(m),a.g=u(m),a.b=d(m),a.opacity=f(m),a+""}}return r.gamma=e,r})(1);function gae(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),a;return function(s){for(a=0;an&&(s=t.slice(n,s),u[l]?u[l]+=s:u[++l]=s),(r=r[0])===(a=a[0])?u[l]?u[l]+=a:u[++l]=a:(u[++l]=null,d.push({i:l,x:Vv(r,a)})),n=sS.lastIndex;return nt&&(n=e,e=t,t=n),function(r){return Math.max(e,Math.min(t,r))}}function Eae(e,t,n){var r=e[0],a=e[1],s=t[0],l=t[1];return a2?Aae:Eae,d=f=null,p}function p(g){return g==null||isNaN(g=+g)?s:(d||(d=u(e.map(r),t,n)))(r(l(g)))}return p.invert=function(g){return l(a((f||(f=u(t,e.map(r),Vv)))(g)))},p.domain=function(g){return arguments.length?(e=Array.from(g,Gv),m()):e.slice()},p.range=function(g){return arguments.length?(t=Array.from(g),m()):t.slice()},p.rangeRound=function(g){return t=Array.from(g),n=CO,m()},p.clamp=function(g){return arguments.length?(l=g?!0:Nr,m()):l!==Nr},p.interpolate=function(g){return arguments.length?(n=g,m()):n},p.unknown=function(g){return arguments.length?(s=g,p):s},function(g,x){return r=g,a=x,m()}}function OO(){return hy()(Nr,Nr)}function Tae(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function Yv(e,t){if((n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"))<0)return null;var n,r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function hu(e){return e=Yv(Math.abs(e)),e?e[1]:NaN}function kae(e,t){return function(n,r){for(var a=n.length,s=[],l=0,u=e[0],d=0;a>0&&u>0&&(d+u+1>r&&(u=Math.max(1,r-d)),s.push(n.substring(a-=u,a+u)),!((d+=u+1)>r));)u=e[l=(l+1)%e.length];return s.reverse().join(t)}}function Mae(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Pae=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Gf(e){if(!(t=Pae.exec(e)))throw new Error("invalid format: "+e);var t;return new EO({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Gf.prototype=EO.prototype;function EO(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}EO.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Rae(e){e:for(var t=e.length,n=1,r=-1,a;n0&&(r=0);break}return r>0?e.slice(0,r)+e.slice(a+1):e}var t6;function Dae(e,t){var n=Yv(e,t);if(!n)return e+"";var r=n[0],a=n[1],s=a-(t6=Math.max(-8,Math.min(8,Math.floor(a/3)))*3)+1,l=r.length;return s===l?r:s>l?r+new Array(s-l+1).join("0"):s>0?r.slice(0,s)+"."+r.slice(s):"0."+new Array(1-s).join("0")+Yv(e,Math.max(0,t+s-1))[0]}function a3(e,t){var n=Yv(e,t);if(!n)return e+"";var r=n[0],a=n[1];return a<0?"0."+new Array(-a).join("0")+r:r.length>a+1?r.slice(0,a+1)+"."+r.slice(a+1):r+new Array(a-r.length+2).join("0")}const i3={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:Tae,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>a3(e*100,t),r:a3,s:Dae,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function s3(e){return e}var o3=Array.prototype.map,l3=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function $ae(e){var t=e.grouping===void 0||e.thousands===void 0?s3:kae(o3.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",r=e.currency===void 0?"":e.currency[1]+"",a=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?s3:Mae(o3.call(e.numerals,String)),l=e.percent===void 0?"%":e.percent+"",u=e.minus===void 0?"−":e.minus+"",d=e.nan===void 0?"NaN":e.nan+"";function f(p){p=Gf(p);var g=p.fill,x=p.align,j=p.sign,w=p.symbol,b=p.zero,N=p.width,E=p.comma,O=p.precision,A=p.trim,C=p.type;C==="n"?(E=!0,C="g"):i3[C]||(O===void 0&&(O=12),A=!0,C="g"),(b||g==="0"&&x==="=")&&(b=!0,g="0",x="=");var k=w==="$"?n:w==="#"&&/[boxX]/.test(C)?"0"+C.toLowerCase():"",T=w==="$"?r:/[%p]/.test(C)?l:"",M=i3[C],R=/[defgprs%]/.test(C);O=O===void 0?6:/[gprs]/.test(C)?Math.max(1,Math.min(21,O)):Math.max(0,Math.min(20,O));function L(D){var U=k,V=T,H,G,$;if(C==="c")V=M(D)+V,D="";else{D=+D;var I=D<0||1/D<0;if(D=isNaN(D)?d:M(Math.abs(D),O),A&&(D=Rae(D)),I&&+D==0&&j!=="+"&&(I=!1),U=(I?j==="("?j:u:j==="-"||j==="("?"":j)+U,V=(C==="s"?l3[8+t6/3]:"")+V+(I&&j==="("?")":""),R){for(H=-1,G=D.length;++H$||$>57){V=($===46?a+D.slice(H+1):D.slice(H))+V,D=D.slice(0,H);break}}}E&&!b&&(D=t(D,1/0));var q=U.length+D.length+V.length,Z=q>1)+U+D+V+Z.slice(q);break;default:D=Z+U+D+V;break}return s(D)}return L.toString=function(){return p+""},L}function m(p,g){var x=f((p=Gf(p),p.type="f",p)),j=Math.max(-8,Math.min(8,Math.floor(hu(g)/3)))*3,w=Math.pow(10,-j),b=l3[8+j/3];return function(N){return x(w*N)+b}}return{format:f,formatPrefix:m}}var Fp,AO,n6;Iae({thousands:",",grouping:[3],currency:["$",""]});function Iae(e){return Fp=$ae(e),AO=Fp.format,n6=Fp.formatPrefix,Fp}function Lae(e){return Math.max(0,-hu(Math.abs(e)))}function zae(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(hu(t)/3)))*3-hu(Math.abs(e)))}function Bae(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,hu(t)-hu(e))+1}function r6(e,t,n,r){var a=Q_(e,t,n),s;switch(r=Gf(r??",f"),r.type){case"s":{var l=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(s=zae(a,l))&&(r.precision=s),n6(r,l)}case"":case"e":case"g":case"p":case"r":{r.precision==null&&!isNaN(s=Bae(a,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=s-(r.type==="e"));break}case"f":case"%":{r.precision==null&&!isNaN(s=Lae(a))&&(r.precision=s-(r.type==="%")*2);break}}return AO(r)}function ho(e){var t=e.domain;return e.ticks=function(n){var r=t();return X_(r[0],r[r.length-1],n??10)},e.tickFormat=function(n,r){var a=t();return r6(a[0],a[a.length-1],n??10,r)},e.nice=function(n){n==null&&(n=10);var r=t(),a=0,s=r.length-1,l=r[a],u=r[s],d,f,m=10;for(u0;){if(f=Z_(l,u,n),f===d)return r[a]=l,r[s]=u,t(r);if(f>0)l=Math.floor(l/f)*f,u=Math.ceil(u/f)*f;else if(f<0)l=Math.ceil(l*f)/f,u=Math.floor(u*f)/f;else break;d=f}return e},e}function Kv(){var e=OO();return e.copy=function(){return Uh(e,Kv())},Pa.apply(e,arguments),ho(e)}function a6(e){var t;function n(r){return r==null||isNaN(r=+r)?t:r}return n.invert=n,n.domain=n.range=function(r){return arguments.length?(e=Array.from(r,Gv),n):e.slice()},n.unknown=function(r){return arguments.length?(t=r,n):t},n.copy=function(){return a6(e).unknown(t)},e=arguments.length?Array.from(e,Gv):[0,1],ho(n)}function i6(e,t){e=e.slice();var n=0,r=e.length-1,a=e[n],s=e[r],l;return sMath.pow(e,t)}function Wae(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function d3(e){return(t,n)=>-e(-t,n)}function TO(e){const t=e(c3,u3),n=t.domain;let r=10,a,s;function l(){return a=Wae(r),s=Hae(r),n()[0]<0?(a=d3(a),s=d3(s),e(qae,Fae)):e(c3,u3),t}return t.base=function(u){return arguments.length?(r=+u,l()):r},t.domain=function(u){return arguments.length?(n(u),l()):n()},t.ticks=u=>{const d=n();let f=d[0],m=d[d.length-1];const p=m0){for(;g<=x;++g)for(j=1;jm)break;N.push(w)}}else for(;g<=x;++g)for(j=r-1;j>=1;--j)if(w=g>0?j/s(-g):j*s(g),!(wm)break;N.push(w)}N.length*2{if(u==null&&(u=10),d==null&&(d=r===10?"s":","),typeof d!="function"&&(!(r%1)&&(d=Gf(d)).precision==null&&(d.trim=!0),d=AO(d)),u===1/0)return d;const f=Math.max(1,r*u/t.ticks().length);return m=>{let p=m/s(Math.round(a(m)));return p*rn(i6(n(),{floor:u=>s(Math.floor(a(u))),ceil:u=>s(Math.ceil(a(u)))})),t}function s6(){const e=TO(hy()).domain([1,10]);return e.copy=()=>Uh(e,s6()).base(e.base()),Pa.apply(e,arguments),e}function f3(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function h3(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function kO(e){var t=1,n=e(f3(t),h3(t));return n.constant=function(r){return arguments.length?e(f3(t=+r),h3(t)):t},ho(n)}function o6(){var e=kO(hy());return e.copy=function(){return Uh(e,o6()).constant(e.constant())},Pa.apply(e,arguments)}function m3(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function Vae(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Gae(e){return e<0?-e*e:e*e}function MO(e){var t=e(Nr,Nr),n=1;function r(){return n===1?e(Nr,Nr):n===.5?e(Vae,Gae):e(m3(n),m3(1/n))}return t.exponent=function(a){return arguments.length?(n=+a,r()):n},ho(t)}function PO(){var e=MO(hy());return e.copy=function(){return Uh(e,PO()).exponent(e.exponent())},Pa.apply(e,arguments),e}function Yae(){return PO.apply(null,arguments).exponent(.5)}function p3(e){return Math.sign(e)*e*e}function Kae(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function l6(){var e=OO(),t=[0,1],n=!1,r;function a(s){var l=Kae(e(s));return isNaN(l)?r:n?Math.round(l):l}return a.invert=function(s){return e.invert(p3(s))},a.domain=function(s){return arguments.length?(e.domain(s),a):e.domain()},a.range=function(s){return arguments.length?(e.range((t=Array.from(s,Gv)).map(p3)),a):t.slice()},a.rangeRound=function(s){return a.range(s).round(!0)},a.round=function(s){return arguments.length?(n=!!s,a):n},a.clamp=function(s){return arguments.length?(e.clamp(s),a):e.clamp()},a.unknown=function(s){return arguments.length?(r=s,a):r},a.copy=function(){return l6(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},Pa.apply(a,arguments),ho(a)}function c6(){var e=[],t=[],n=[],r;function a(){var l=0,u=Math.max(1,t.length);for(n=new Array(u-1);++l0?n[u-1]:e[0],u=n?[r[n-1],t]:[r[f-1],r[f]]},l.unknown=function(d){return arguments.length&&(s=d),l},l.thresholds=function(){return r.slice()},l.copy=function(){return u6().domain([e,t]).range(a).unknown(s)},Pa.apply(ho(l),arguments)}function d6(){var e=[.5],t=[0,1],n,r=1;function a(s){return s!=null&&s<=s?t[qh(e,s,0,r)]:n}return a.domain=function(s){return arguments.length?(e=Array.from(s),r=Math.min(e.length,t.length-1),a):e.slice()},a.range=function(s){return arguments.length?(t=Array.from(s),r=Math.min(e.length,t.length-1),a):t.slice()},a.invertExtent=function(s){var l=t.indexOf(s);return[e[l-1],e[l]]},a.unknown=function(s){return arguments.length?(n=s,a):n},a.copy=function(){return d6().domain(e).range(t).unknown(n)},Pa.apply(a,arguments)}const oS=new Date,lS=new Date;function Bn(e,t,n,r){function a(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return a.floor=s=>(e(s=new Date(+s)),s),a.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),a.round=s=>{const l=a(s),u=a.ceil(s);return s-l(t(s=new Date(+s),l==null?1:Math.floor(l)),s),a.range=(s,l,u)=>{const d=[];if(s=a.ceil(s),u=u==null?1:Math.floor(u),!(s0))return d;let f;do d.push(f=new Date(+s)),t(s,u),e(s);while(fBn(l=>{if(l>=l)for(;e(l),!s(l);)l.setTime(l-1)},(l,u)=>{if(l>=l)if(u<0)for(;++u<=0;)for(;t(l,-1),!s(l););else for(;--u>=0;)for(;t(l,1),!s(l););}),n&&(a.count=(s,l)=>(oS.setTime(+s),lS.setTime(+l),e(oS),e(lS),Math.floor(n(oS,lS))),a.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?a.filter(r?l=>r(l)%s===0:l=>a.count(0,l)%s===0):a)),a}const Xv=Bn(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);Xv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?Bn(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):Xv);Xv.range;const Qi=1e3,Ea=Qi*60,Ji=Ea*60,ls=Ji*24,RO=ls*7,v3=ls*30,cS=ls*365,Jo=Bn(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Qi)},(e,t)=>(t-e)/Qi,e=>e.getUTCSeconds());Jo.range;const DO=Bn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Qi)},(e,t)=>{e.setTime(+e+t*Ea)},(e,t)=>(t-e)/Ea,e=>e.getMinutes());DO.range;const $O=Bn(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ea)},(e,t)=>(t-e)/Ea,e=>e.getUTCMinutes());$O.range;const IO=Bn(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Qi-e.getMinutes()*Ea)},(e,t)=>{e.setTime(+e+t*Ji)},(e,t)=>(t-e)/Ji,e=>e.getHours());IO.range;const LO=Bn(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Ji)},(e,t)=>(t-e)/Ji,e=>e.getUTCHours());LO.range;const Hh=Bn(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ea)/ls,e=>e.getDate()-1);Hh.range;const my=Bn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ls,e=>e.getUTCDate()-1);my.range;const f6=Bn(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/ls,e=>Math.floor(e/ls));f6.range;function El(e){return Bn(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Ea)/RO)}const py=El(0),Zv=El(1),Xae=El(2),Zae=El(3),mu=El(4),Qae=El(5),Jae=El(6);py.range;Zv.range;Xae.range;Zae.range;mu.range;Qae.range;Jae.range;function Al(e){return Bn(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/RO)}const vy=Al(0),Qv=Al(1),eie=Al(2),tie=Al(3),pu=Al(4),nie=Al(5),rie=Al(6);vy.range;Qv.range;eie.range;tie.range;pu.range;nie.range;rie.range;const zO=Bn(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());zO.range;const BO=Bn(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());BO.range;const cs=Bn(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());cs.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Bn(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});cs.range;const us=Bn(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());us.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:Bn(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});us.range;function h6(e,t,n,r,a,s){const l=[[Jo,1,Qi],[Jo,5,5*Qi],[Jo,15,15*Qi],[Jo,30,30*Qi],[s,1,Ea],[s,5,5*Ea],[s,15,15*Ea],[s,30,30*Ea],[a,1,Ji],[a,3,3*Ji],[a,6,6*Ji],[a,12,12*Ji],[r,1,ls],[r,2,2*ls],[n,1,RO],[t,1,v3],[t,3,3*v3],[e,1,cS]];function u(f,m,p){const g=mb).right(l,g);if(x===l.length)return e.every(Q_(f/cS,m/cS,p));if(x===0)return Xv.every(Math.max(Q_(f,m,p),1));const[j,w]=l[g/l[x-1][2]53)return null;"w"in X||(X.w=1),"Z"in X?(Oe=dS(af(X.y,0,1)),We=Oe.getUTCDay(),Oe=We>4||We===0?Qv.ceil(Oe):Qv(Oe),Oe=my.offset(Oe,(X.V-1)*7),X.y=Oe.getUTCFullYear(),X.m=Oe.getUTCMonth(),X.d=Oe.getUTCDate()+(X.w+6)%7):(Oe=uS(af(X.y,0,1)),We=Oe.getDay(),Oe=We>4||We===0?Zv.ceil(Oe):Zv(Oe),Oe=Hh.offset(Oe,(X.V-1)*7),X.y=Oe.getFullYear(),X.m=Oe.getMonth(),X.d=Oe.getDate()+(X.w+6)%7)}else("W"in X||"U"in X)&&("w"in X||(X.w="u"in X?X.u%7:"W"in X?1:0),We="Z"in X?dS(af(X.y,0,1)).getUTCDay():uS(af(X.y,0,1)).getDay(),X.m=0,X.d="W"in X?(X.w+6)%7+X.W*7-(We+5)%7:X.w+X.U*7-(We+6)%7);return"Z"in X?(X.H+=X.Z/100|0,X.M+=X.Z%100,dS(X)):uS(X)}}function M(Y,pe,je,X){for(var Ae=0,Oe=pe.length,We=je.length,Ve,be;Ae=We)return-1;if(Ve=pe.charCodeAt(Ae++),Ve===37){if(Ve=pe.charAt(Ae++),be=C[Ve in g3?pe.charAt(Ae++):Ve],!be||(X=be(Y,je,X))<0)return-1}else if(Ve!=je.charCodeAt(X++))return-1}return X}function R(Y,pe,je){var X=f.exec(pe.slice(je));return X?(Y.p=m.get(X[0].toLowerCase()),je+X[0].length):-1}function L(Y,pe,je){var X=x.exec(pe.slice(je));return X?(Y.w=j.get(X[0].toLowerCase()),je+X[0].length):-1}function D(Y,pe,je){var X=p.exec(pe.slice(je));return X?(Y.w=g.get(X[0].toLowerCase()),je+X[0].length):-1}function U(Y,pe,je){var X=N.exec(pe.slice(je));return X?(Y.m=E.get(X[0].toLowerCase()),je+X[0].length):-1}function V(Y,pe,je){var X=w.exec(pe.slice(je));return X?(Y.m=b.get(X[0].toLowerCase()),je+X[0].length):-1}function H(Y,pe,je){return M(Y,t,pe,je)}function G(Y,pe,je){return M(Y,n,pe,je)}function $(Y,pe,je){return M(Y,r,pe,je)}function I(Y){return l[Y.getDay()]}function q(Y){return s[Y.getDay()]}function Z(Y){return d[Y.getMonth()]}function ee(Y){return u[Y.getMonth()]}function F(Y){return a[+(Y.getHours()>=12)]}function z(Y){return 1+~~(Y.getMonth()/3)}function K(Y){return l[Y.getUTCDay()]}function ie(Y){return s[Y.getUTCDay()]}function Q(Y){return d[Y.getUTCMonth()]}function he(Y){return u[Y.getUTCMonth()]}function ae(Y){return a[+(Y.getUTCHours()>=12)]}function we(Y){return 1+~~(Y.getUTCMonth()/3)}return{format:function(Y){var pe=k(Y+="",O);return pe.toString=function(){return Y},pe},parse:function(Y){var pe=T(Y+="",!1);return pe.toString=function(){return Y},pe},utcFormat:function(Y){var pe=k(Y+="",A);return pe.toString=function(){return Y},pe},utcParse:function(Y){var pe=T(Y+="",!0);return pe.toString=function(){return Y},pe}}}var g3={"-":"",_:" ",0:"0"},Qn=/^\s*\d+/,cie=/^%/,uie=/[\\^$*+?|[\]().{}]/g;function Ot(e,t,n){var r=e<0?"-":"",a=(r?-e:e)+"",s=a.length;return r+(s[t.toLowerCase(),n]))}function fie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function hie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function mie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function pie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function vie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function y3(e,t,n){var r=Qn.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function x3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function gie(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||"00")),n+r[0].length):-1}function yie(e,t,n){var r=Qn.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function xie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function b3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function bie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function w3(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function wie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function jie(e,t,n){var r=Qn.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Sie(e,t,n){var r=Qn.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function _ie(e,t,n){var r=Qn.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Nie(e,t,n){var r=cie.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Cie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Oie(e,t,n){var r=Qn.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function j3(e,t){return Ot(e.getDate(),t,2)}function Eie(e,t){return Ot(e.getHours(),t,2)}function Aie(e,t){return Ot(e.getHours()%12||12,t,2)}function Tie(e,t){return Ot(1+Hh.count(cs(e),e),t,3)}function m6(e,t){return Ot(e.getMilliseconds(),t,3)}function kie(e,t){return m6(e,t)+"000"}function Mie(e,t){return Ot(e.getMonth()+1,t,2)}function Pie(e,t){return Ot(e.getMinutes(),t,2)}function Rie(e,t){return Ot(e.getSeconds(),t,2)}function Die(e){var t=e.getDay();return t===0?7:t}function $ie(e,t){return Ot(py.count(cs(e)-1,e),t,2)}function p6(e){var t=e.getDay();return t>=4||t===0?mu(e):mu.ceil(e)}function Iie(e,t){return e=p6(e),Ot(mu.count(cs(e),e)+(cs(e).getDay()===4),t,2)}function Lie(e){return e.getDay()}function zie(e,t){return Ot(Zv.count(cs(e)-1,e),t,2)}function Bie(e,t){return Ot(e.getFullYear()%100,t,2)}function qie(e,t){return e=p6(e),Ot(e.getFullYear()%100,t,2)}function Fie(e,t){return Ot(e.getFullYear()%1e4,t,4)}function Uie(e,t){var n=e.getDay();return e=n>=4||n===0?mu(e):mu.ceil(e),Ot(e.getFullYear()%1e4,t,4)}function Hie(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+Ot(t/60|0,"0",2)+Ot(t%60,"0",2)}function S3(e,t){return Ot(e.getUTCDate(),t,2)}function Wie(e,t){return Ot(e.getUTCHours(),t,2)}function Vie(e,t){return Ot(e.getUTCHours()%12||12,t,2)}function Gie(e,t){return Ot(1+my.count(us(e),e),t,3)}function v6(e,t){return Ot(e.getUTCMilliseconds(),t,3)}function Yie(e,t){return v6(e,t)+"000"}function Kie(e,t){return Ot(e.getUTCMonth()+1,t,2)}function Xie(e,t){return Ot(e.getUTCMinutes(),t,2)}function Zie(e,t){return Ot(e.getUTCSeconds(),t,2)}function Qie(e){var t=e.getUTCDay();return t===0?7:t}function Jie(e,t){return Ot(vy.count(us(e)-1,e),t,2)}function g6(e){var t=e.getUTCDay();return t>=4||t===0?pu(e):pu.ceil(e)}function ese(e,t){return e=g6(e),Ot(pu.count(us(e),e)+(us(e).getUTCDay()===4),t,2)}function tse(e){return e.getUTCDay()}function nse(e,t){return Ot(Qv.count(us(e)-1,e),t,2)}function rse(e,t){return Ot(e.getUTCFullYear()%100,t,2)}function ase(e,t){return e=g6(e),Ot(e.getUTCFullYear()%100,t,2)}function ise(e,t){return Ot(e.getUTCFullYear()%1e4,t,4)}function sse(e,t){var n=e.getUTCDay();return e=n>=4||n===0?pu(e):pu.ceil(e),Ot(e.getUTCFullYear()%1e4,t,4)}function ose(){return"+0000"}function _3(){return"%"}function N3(e){return+e}function C3(e){return Math.floor(+e/1e3)}var Oc,y6,x6;lse({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function lse(e){return Oc=lie(e),y6=Oc.format,Oc.parse,x6=Oc.utcFormat,Oc.utcParse,Oc}function cse(e){return new Date(e)}function use(e){return e instanceof Date?+e:+new Date(+e)}function qO(e,t,n,r,a,s,l,u,d,f){var m=OO(),p=m.invert,g=m.domain,x=f(".%L"),j=f(":%S"),w=f("%I:%M"),b=f("%I %p"),N=f("%a %d"),E=f("%b %d"),O=f("%B"),A=f("%Y");function C(k){return(d(k)t(a/(e.length-1)))},n.quantiles=function(r){return Array.from({length:r+1},(a,s)=>Jre(e,s/r))},n.copy=function(){return S6(t).domain(e)},vs.apply(n,arguments)}function yy(){var e=0,t=.5,n=1,r=1,a,s,l,u,d,f=Nr,m,p=!1,g;function x(w){return isNaN(w=+w)?g:(w=.5+((w=+m(w))-s)*(r*wn}return hS=e,hS}var mS,T3;function pse(){if(T3)return mS;T3=1;var e=xy(),t=O6(),n=Gu();function r(a){return a&&a.length?e(a,n,t):void 0}return mS=r,mS}var vse=pse();const by=Rt(vse);var pS,k3;function E6(){if(k3)return pS;k3=1;function e(t,n){return te.e^s.s<0?1:-1;for(r=s.d.length,a=e.d.length,t=0,n=re.d[t]^s.s<0?1:-1;return r===a?0:r>a^s.s<0?1:-1};Me.decimalPlaces=Me.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*un;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Me.dividedBy=Me.div=function(e){return is(this,new this.constructor(e))};Me.dividedToIntegerBy=Me.idiv=function(e){var t=this,n=t.constructor;return Yt(is(t,new n(e),0,1),n.precision)};Me.equals=Me.eq=function(e){return!this.cmp(e)};Me.exponent=function(){return kn(this)};Me.greaterThan=Me.gt=function(e){return this.cmp(e)>0};Me.greaterThanOrEqualTo=Me.gte=function(e){return this.cmp(e)>=0};Me.isInteger=Me.isint=function(){return this.e>this.d.length-2};Me.isNegative=Me.isneg=function(){return this.s<0};Me.isPositive=Me.ispos=function(){return this.s>0};Me.isZero=function(){return this.s===0};Me.lessThan=Me.lt=function(e){return this.cmp(e)<0};Me.lessThanOrEqualTo=Me.lte=function(e){return this.cmp(e)<1};Me.logarithm=Me.log=function(e){var t,n=this,r=n.constructor,a=r.precision,s=a+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(ia))throw Error(ka+"NaN");if(n.s<1)throw Error(ka+(n.s?"NaN":"-Infinity"));return n.eq(ia)?new r(0):(mn=!1,t=is(Yf(n,s),Yf(e,s),s),mn=!0,Yt(t,a))};Me.minus=Me.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?M6(t,e):T6(t,(e.s=-e.s,e))};Me.modulo=Me.mod=function(e){var t,n=this,r=n.constructor,a=r.precision;if(e=new r(e),!e.s)throw Error(ka+"NaN");return n.s?(mn=!1,t=is(n,e,0,1).times(e),mn=!0,n.minus(t)):Yt(new r(n),a)};Me.naturalExponential=Me.exp=function(){return k6(this)};Me.naturalLogarithm=Me.ln=function(){return Yf(this)};Me.negated=Me.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Me.plus=Me.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?T6(t,e):M6(t,(e.s=-e.s,e))};Me.precision=Me.sd=function(e){var t,n,r,a=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(ll+e);if(t=kn(a)+1,r=a.d.length-1,n=r*un+1,r=a.d[r],r){for(;r%10==0;r/=10)n--;for(r=a.d[0];r>=10;r/=10)n++}return e&&t>n?t:n};Me.squareRoot=Me.sqrt=function(){var e,t,n,r,a,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(ka+"NaN")}for(e=kn(u),mn=!1,a=Math.sqrt(+u),a==0||a==1/0?(t=fi(u.d),(t.length+e)%2==0&&(t+="0"),a=Math.sqrt(t),e=Xu((e+1)/2)-(e<0||e%2),a==1/0?t="5e"+e:(t=a.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),r=new d(t)):r=new d(a.toString()),n=d.precision,a=l=n+3;;)if(s=r,r=s.plus(is(u,s,l+2)).times(.5),fi(s.d).slice(0,l)===(t=fi(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),a==l&&t=="4999"){if(Yt(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!="9999")break;l+=4}return mn=!0,Yt(r,n)};Me.times=Me.mul=function(e){var t,n,r,a,s,l,u,d,f,m=this,p=m.constructor,g=m.d,x=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,d=g.length,f=x.length,d=0;){for(t=0,a=d+r;a>r;)u=s[a]+x[r]*g[a-r-1]+t,s[a--]=u%Hn|0,t=u/Hn|0;s[a]=(s[a]+t)%Hn|0}for(;!s[--l];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,mn?Yt(e,p.precision):e};Me.toDecimalPlaces=Me.todp=function(e,t){var n=this,r=n.constructor;return n=new r(n),e===void 0?n:(wi(e,0,Ku),t===void 0?t=r.rounding:wi(t,0,8),Yt(n,e+kn(n)+1,t))};Me.toExponential=function(e,t){var n,r=this,a=r.constructor;return e===void 0?n=gl(r,!0):(wi(e,0,Ku),t===void 0?t=a.rounding:wi(t,0,8),r=Yt(new a(r),e+1,t),n=gl(r,!0,e+1)),n};Me.toFixed=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?gl(a):(wi(e,0,Ku),t===void 0?t=s.rounding:wi(t,0,8),r=Yt(new s(a),e+kn(a)+1,t),n=gl(r.abs(),!1,e+kn(r)+1),a.isneg()&&!a.isZero()?"-"+n:n)};Me.toInteger=Me.toint=function(){var e=this,t=e.constructor;return Yt(new t(e),kn(e)+1,t.rounding)};Me.toNumber=function(){return+this};Me.toPower=Me.pow=function(e){var t,n,r,a,s,l,u=this,d=u.constructor,f=12,m=+(e=new d(e));if(!e.s)return new d(ia);if(u=new d(u),!u.s){if(e.s<1)throw Error(ka+"Infinity");return u}if(u.eq(ia))return u;if(r=d.precision,e.eq(ia))return Yt(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,l){if((n=m<0?-m:m)<=A6){for(a=new d(ia),t=Math.ceil(r/un+4),mn=!1;n%2&&(a=a.times(u),I3(a.d,t)),n=Xu(n/2),n!==0;)u=u.times(u),I3(u.d,t);return mn=!0,e.s<0?new d(ia).div(a):Yt(a,r)}}else if(s<0)throw Error(ka+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,mn=!1,a=e.times(Yf(u,r+f)),mn=!0,a=k6(a),a.s=s,a};Me.toPrecision=function(e,t){var n,r,a=this,s=a.constructor;return e===void 0?(n=kn(a),r=gl(a,n<=s.toExpNeg||n>=s.toExpPos)):(wi(e,1,Ku),t===void 0?t=s.rounding:wi(t,0,8),a=Yt(new s(a),e,t),n=kn(a),r=gl(a,e<=n||n<=s.toExpNeg,e)),r};Me.toSignificantDigits=Me.tosd=function(e,t){var n=this,r=n.constructor;return e===void 0?(e=r.precision,t=r.rounding):(wi(e,1,Ku),t===void 0?t=r.rounding:wi(t,0,8)),Yt(new r(n),e,t)};Me.toString=Me.valueOf=Me.val=Me.toJSON=Me[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=kn(e),n=e.constructor;return gl(e,t<=n.toExpNeg||t>=n.toExpPos)};function T6(e,t){var n,r,a,s,l,u,d,f,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),mn?Yt(t,p):t;if(d=e.d,f=t.d,l=e.e,a=t.e,d=d.slice(),s=l-a,s){for(s<0?(r=d,s=-s,u=f.length):(r=f,a=l,u=d.length),l=Math.ceil(p/un),u=l>u?l+1:u+1,s>u&&(s=u,r.length=1),r.reverse();s--;)r.push(0);r.reverse()}for(u=d.length,s=f.length,u-s<0&&(s=u,r=f,f=d,d=r),n=0;s;)n=(d[--s]=d[s]+f[s]+n)/Hn|0,d[s]%=Hn;for(n&&(d.unshift(n),++a),u=d.length;d[--u]==0;)d.pop();return t.d=d,t.e=a,mn?Yt(t,p):t}function wi(e,t,n){if(e!==~~e||en)throw Error(ll+e)}function fi(e){var t,n,r,a=e.length-1,s="",l=e[0];if(a>0){for(s+=l,t=1;tl?1:-1;else for(u=d=0;ua[u]?1:-1;break}return d}function n(r,a,s){for(var l=0;s--;)r[s]-=l,l=r[s]1;)r.shift()}return function(r,a,s,l){var u,d,f,m,p,g,x,j,w,b,N,E,O,A,C,k,T,M,R=r.constructor,L=r.s==a.s?1:-1,D=r.d,U=a.d;if(!r.s)return new R(r);if(!a.s)throw Error(ka+"Division by zero");for(d=r.e-a.e,T=U.length,C=D.length,x=new R(L),j=x.d=[],f=0;U[f]==(D[f]||0);)++f;if(U[f]>(D[f]||0)&&--d,s==null?E=s=R.precision:l?E=s+(kn(r)-kn(a))+1:E=s,E<0)return new R(0);if(E=E/un+2|0,f=0,T==1)for(m=0,U=U[0],E++;(f1&&(U=e(U,m),D=e(D,m),T=U.length,C=D.length),A=T,w=D.slice(0,T),b=w.length;b=Hn/2&&++k;do m=0,u=t(U,w,T,b),u<0?(N=w[0],T!=b&&(N=N*Hn+(w[1]||0)),m=N/k|0,m>1?(m>=Hn&&(m=Hn-1),p=e(U,m),g=p.length,b=w.length,u=t(p,w,g,b),u==1&&(m--,n(p,T16)throw Error(HO+kn(e));if(!e.s)return new m(ia);for(mn=!1,u=p,l=new m(.03125);e.abs().gte(.1);)e=e.times(l),f+=5;for(r=Math.log(Go(2,f))/Math.LN10*2+5|0,u+=r,n=a=s=new m(ia),m.precision=u;;){if(a=Yt(a.times(e),u),n=n.times(++d),l=s.plus(is(a,n,u)),fi(l.d).slice(0,u)===fi(s.d).slice(0,u)){for(;f--;)s=Yt(s.times(s),u);return m.precision=p,t==null?(mn=!0,Yt(s,p)):s}s=l}}function kn(e){for(var t=e.e*un,n=e.d[0];n>=10;n/=10)t++;return t}function bS(e,t,n){if(t>e.LN10.sd())throw mn=!0,n&&(e.precision=n),Error(ka+"LN10 precision limit exceeded");return Yt(new e(e.LN10),t)}function Ys(e){for(var t="";e--;)t+="0";return t}function Yf(e,t){var n,r,a,s,l,u,d,f,m,p=1,g=10,x=e,j=x.d,w=x.constructor,b=w.precision;if(x.s<1)throw Error(ka+(x.s?"NaN":"-Infinity"));if(x.eq(ia))return new w(0);if(t==null?(mn=!1,f=b):f=t,x.eq(10))return t==null&&(mn=!0),bS(w,f);if(f+=g,w.precision=f,n=fi(j),r=n.charAt(0),s=kn(x),Math.abs(s)<15e14){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)x=x.times(e),n=fi(x.d),r=n.charAt(0),p++;s=kn(x),r>1?(x=new w("0."+n),s++):x=new w(r+"."+n.slice(1))}else return d=bS(w,f+2,b).times(s+""),x=Yf(new w(r+"."+n.slice(1)),f-g).plus(d),w.precision=b,t==null?(mn=!0,Yt(x,b)):x;for(u=l=x=is(x.minus(ia),x.plus(ia),f),m=Yt(x.times(x),f),a=3;;){if(l=Yt(l.times(m),f),d=u.plus(is(l,new w(a),f)),fi(d.d).slice(0,f)===fi(u.d).slice(0,f))return u=u.times(2),s!==0&&(u=u.plus(bS(w,f+2,b).times(s+""))),u=is(u,new w(p),f),w.precision=b,t==null?(mn=!0,Yt(u,b)):u;u=d,a+=2}}function $3(e,t){var n,r,a;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=Xu(n/un),e.d=[],r=(n+1)%un,n<0&&(r+=un),rJv||e.e<-Jv))throw Error(HO+n)}else e.s=0,e.e=0,e.d=[0];return e}function Yt(e,t,n){var r,a,s,l,u,d,f,m,p=e.d;for(l=1,s=p[0];s>=10;s/=10)l++;if(r=t-l,r<0)r+=un,a=t,f=p[m=0];else{if(m=Math.ceil((r+1)/un),s=p.length,m>=s)return e;for(f=s=p[m],l=1;s>=10;s/=10)l++;r%=un,a=r-un+l}if(n!==void 0&&(s=Go(10,l-a-1),u=f/s%10|0,d=t<0||p[m+1]!==void 0||f%s,d=n<4?(u||d)&&(n==0||n==(e.s<0?3:2)):u>5||u==5&&(n==4||d||n==6&&(r>0?a>0?f/Go(10,l-a):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return d?(s=kn(e),p.length=1,t=t-s-1,p[0]=Go(10,(un-t%un)%un),e.e=Xu(-t/un)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(r==0?(p.length=m,s=1,m--):(p.length=m+1,s=Go(10,un-r),p[m]=a>0?(f/Go(10,l-a)%Go(10,a)|0)*s:0),d)for(;;)if(m==0){(p[0]+=s)==Hn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=Hn)break;p[m--]=0,s=1}for(r=p.length;p[--r]===0;)p.pop();if(mn&&(e.e>Jv||e.e<-Jv))throw Error(HO+kn(e));return e}function M6(e,t){var n,r,a,s,l,u,d,f,m,p,g=e.constructor,x=g.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new g(e),mn?Yt(t,x):t;if(d=e.d,p=t.d,r=t.e,f=e.e,d=d.slice(),l=f-r,l){for(m=l<0,m?(n=d,l=-l,u=p.length):(n=p,r=f,u=d.length),a=Math.max(Math.ceil(x/un),u)+2,l>a&&(l=a,n.length=1),n.reverse(),a=l;a--;)n.push(0);n.reverse()}else{for(a=d.length,u=p.length,m=a0;--a)d[u++]=0;for(a=p.length;a>l;){if(d[--a]0?s=s.charAt(0)+"."+s.slice(1)+Ys(r):l>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(a<0?"e":"e+")+a):a<0?(s="0."+Ys(-a-1)+s,n&&(r=n-l)>0&&(s+=Ys(r))):a>=l?(s+=Ys(a+1-l),n&&(r=n-a-1)>0&&(s=s+"."+Ys(r))):((r=a+1)0&&(a+1===l&&(s+="."),s+=Ys(r))),e.s<0?"-"+s:s}function I3(e,t){if(e.length>t)return e.length=t,!0}function P6(e){var t,n,r;function a(s){var l=this;if(!(l instanceof a))return new a(s);if(l.constructor=a,s instanceof a){l.s=s.s,l.e=s.e,l.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(ll+s);if(s>0)l.s=1;else if(s<0)s=-s,l.s=-1;else{l.s=0,l.e=0,l.d=[0];return}if(s===~~s&&s<1e7){l.e=0,l.d=[s];return}return $3(l,s.toString())}else if(typeof s!="string")throw Error(ll+s);if(s.charCodeAt(0)===45?(s=s.slice(1),l.s=-1):l.s=1,Cse.test(s))$3(l,s);else throw Error(ll+s)}if(a.prototype=Me,a.ROUND_UP=0,a.ROUND_DOWN=1,a.ROUND_CEIL=2,a.ROUND_FLOOR=3,a.ROUND_HALF_UP=4,a.ROUND_HALF_DOWN=5,a.ROUND_HALF_EVEN=6,a.ROUND_HALF_CEIL=7,a.ROUND_HALF_FLOOR=8,a.clone=P6,a.config=a.set=Ose,e===void 0&&(e={}),e)for(r=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t=a[t+1]&&r<=a[t+2])this[n]=r;else throw Error(ll+n+": "+r);if((r=e[n="LN10"])!==void 0)if(r==Math.LN10)this[n]=new this(r);else throw Error(ll+n+": "+r);return this}var WO=P6(Nse);ia=new WO(1);const Ut=WO;function Ese(e){return Mse(e)||kse(e)||Tse(e)||Ase()}function Ase(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Tse(e,t){if(e){if(typeof e=="string")return rN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return rN(e,t)}}function kse(e){if(typeof Symbol<"u"&&Symbol.iterator in Object(e))return Array.from(e)}function Mse(e){if(Array.isArray(e))return rN(e)}function rN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t?n.apply(void 0,a):e(t-l,L3(function(){for(var u=arguments.length,d=new Array(u),f=0;fe.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,a=!1,s=void 0;try{for(var l=e[Symbol.iterator](),u;!(r=(u=l.next()).done)&&(n.push(u.value),!(t&&n.length===t));r=!0);}catch(d){a=!0,s=d}finally{try{!r&&l.return!=null&&l.return()}finally{if(a)throw s}}return n}}function Gse(e){if(Array.isArray(e))return e}function L6(e){var t=Kf(e,2),n=t[0],r=t[1],a=n,s=r;return n>r&&(a=r,s=n),[a,s]}function z6(e,t,n){if(e.lte(0))return new Ut(0);var r=Sy.getDigitCount(e.toNumber()),a=new Ut(10).pow(r),s=e.div(a),l=r!==1?.05:.1,u=new Ut(Math.ceil(s.div(l).toNumber())).add(n).mul(l),d=u.mul(a);return t?d:new Ut(Math.ceil(d))}function Yse(e,t,n){var r=1,a=new Ut(e);if(!a.isint()&&n){var s=Math.abs(e);s<1?(r=new Ut(10).pow(Sy.getDigitCount(e)-1),a=new Ut(Math.floor(a.div(r).toNumber())).mul(r)):s>1&&(a=new Ut(Math.floor(e)))}else e===0?a=new Ut(Math.floor((t-1)/2)):n||(a=new Ut(Math.floor(e)));var l=Math.floor((t-1)/2),u=$se(Dse(function(d){return a.add(new Ut(d-l).mul(r)).toNumber()}),aN);return u(0,t)}function B6(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((t-e)/(n-1)))return{step:new Ut(0),tickMin:new Ut(0),tickMax:new Ut(0)};var s=z6(new Ut(t).sub(e).div(n-1),r,a),l;e<=0&&t>=0?l=new Ut(0):(l=new Ut(e).add(t).div(2),l=l.sub(new Ut(l).mod(s)));var u=Math.ceil(l.sub(e).div(s).toNumber()),d=Math.ceil(new Ut(t).sub(l).div(s).toNumber()),f=u+d+1;return f>n?B6(e,t,n,r,a+1):(f0?d+(n-f):d,u=t>0?u:u+(n-f)),{step:s,tickMin:l.sub(new Ut(u).mul(s)),tickMax:l.add(new Ut(d).mul(s))})}function Kse(e){var t=Kf(e,2),n=t[0],r=t[1],a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=Math.max(a,2),u=L6([n,r]),d=Kf(u,2),f=d[0],m=d[1];if(f===-1/0||m===1/0){var p=m===1/0?[f].concat(sN(aN(0,a-1).map(function(){return 1/0}))):[].concat(sN(aN(0,a-1).map(function(){return-1/0})),[m]);return n>r?iN(p):p}if(f===m)return Yse(f,a,s);var g=B6(f,m,l,s),x=g.step,j=g.tickMin,w=g.tickMax,b=Sy.rangeStep(j,w.add(new Ut(.1).mul(x)),x);return n>r?iN(b):b}function Xse(e,t){var n=Kf(e,2),r=n[0],a=n[1],s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=L6([r,a]),u=Kf(l,2),d=u[0],f=u[1];if(d===-1/0||f===1/0)return[r,a];if(d===f)return[d];var m=Math.max(t,2),p=z6(new Ut(f).sub(d).div(m-1),s,0),g=[].concat(sN(Sy.rangeStep(new Ut(d),new Ut(f).sub(new Ut(.99).mul(p)),p)),[f]);return r>a?iN(g):g}var Zse=$6(Kse),Qse=$6(Xse),Jse=["offset","layout","width","dataKey","data","dataPointFormatter","xAxis","yAxis"];function vu(e){"@babel/helpers - typeof";return vu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},vu(e)}function eg(){return eg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function soe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ooe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function loe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,s=arguments.length>3?arguments[3]:void 0,l=-1,u=(n=r?.length)!==null&&n!==void 0?n:0;if(u<=1)return 0;if(s&&s.axisType==="angleAxis"&&Math.abs(Math.abs(s.range[1]-s.range[0])-360)<=1e-6)for(var d=s.range,f=0;f0?a[f-1].coordinate:a[u-1].coordinate,p=a[f].coordinate,g=f>=u-1?a[0].coordinate:a[f+1].coordinate,x=void 0;if(Sr(p-m)!==Sr(g-p)){var j=[];if(Sr(g-p)===Sr(d[1]-d[0])){x=g;var w=p+d[1]-d[0];j[0]=Math.min(w,(w+m)/2),j[1]=Math.max(w,(w+m)/2)}else{x=m;var b=g+d[1]-d[0];j[0]=Math.min(p,(b+p)/2),j[1]=Math.max(p,(b+p)/2)}var N=[Math.min(p,(x+p)/2),Math.max(p,(x+p)/2)];if(t>N[0]&&t<=N[1]||t>=j[0]&&t<=j[1]){l=a[f].index;break}}else{var E=Math.min(m,g),O=Math.max(m,g);if(t>(E+p)/2&&t<=(O+p)/2){l=a[f].index;break}}}else for(var A=0;A0&&A(r[A].coordinate+r[A-1].coordinate)/2&&t<=(r[A].coordinate+r[A+1].coordinate)/2||A===u-1&&t>(r[A].coordinate+r[A-1].coordinate)/2){l=r[A].index;break}return l},VO=function(t){var n,r=t,a=r.type.displayName,s=(n=t.type)!==null&&n!==void 0&&n.defaultProps?jn(jn({},t.type.defaultProps),t.props):t.props,l=s.stroke,u=s.fill,d;switch(a){case"Line":d=l;break;case"Area":case"Radar":d=l&&l!=="none"?l:u;break;default:d=u;break}return d},Noe=function(t){var n=t.barSize,r=t.totalSize,a=t.stackGroups,s=a===void 0?{}:a;if(!s)return{};for(var l={},u=Object.keys(s),d=0,f=u.length;d=0});if(N&&N.length){var E=N[0].type.defaultProps,O=E!==void 0?jn(jn({},E),N[0].props):N[0].props,A=O.barSize,C=O[b];l[C]||(l[C]=[]);var k=Je(A)?n:A;l[C].push({item:N[0],stackList:N.slice(1),barSize:Je(k)?void 0:_r(k,r,0)})}}return l},Coe=function(t){var n=t.barGap,r=t.barCategoryGap,a=t.bandSize,s=t.sizeList,l=s===void 0?[]:s,u=t.maxBarSize,d=l.length;if(d<1)return null;var f=_r(n,a,0,!0),m,p=[];if(l[0].barSize===+l[0].barSize){var g=!1,x=a/d,j=l.reduce(function(A,C){return A+C.barSize||0},0);j+=(d-1)*f,j>=a&&(j-=(d-1)*f,f=0),j>=a&&x>0&&(g=!0,x*=.9,j=d*x);var w=(a-j)/2>>0,b={offset:w-f,size:0};m=l.reduce(function(A,C){var k={item:C.item,position:{offset:b.offset+b.size+f,size:g?x:C.barSize}},T=[].concat(q3(A),[k]);return b=T[T.length-1].position,C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:b})}),T},p)}else{var N=_r(r,a,0,!0);a-2*N-(d-1)*f<=0&&(f=0);var E=(a-2*N-(d-1)*f)/d;E>1&&(E>>=0);var O=u===+u?Math.min(E,u):E;m=l.reduce(function(A,C,k){var T=[].concat(q3(A),[{item:C.item,position:{offset:N+(E+f)*k+(E-O)/2,size:O}}]);return C.stackList&&C.stackList.length&&C.stackList.forEach(function(M){T.push({item:M,position:T[T.length-1].position})}),T},p)}return m},Ooe=function(t,n,r,a){var s=r.children,l=r.width,u=r.margin,d=l-(u.left||0)-(u.right||0),f=H6({children:s,legendWidth:d});if(f){var m=a||{},p=m.width,g=m.height,x=f.align,j=f.verticalAlign,w=f.layout;if((w==="vertical"||w==="horizontal"&&j==="middle")&&x!=="center"&&Ee(t[x]))return jn(jn({},t),{},Kc({},x,t[x]+(p||0)));if((w==="horizontal"||w==="vertical"&&x==="center")&&j!=="middle"&&Ee(t[j]))return jn(jn({},t),{},Kc({},j,t[j]+(g||0)))}return t},Eoe=function(t,n,r){return Je(n)?!0:t==="horizontal"?n==="yAxis":t==="vertical"||r==="x"?n==="xAxis":r==="y"?n==="yAxis":!0},W6=function(t,n,r,a,s){var l=n.props.children,u=oa(l,Vh).filter(function(f){return Eoe(a,s,f.props.direction)});if(u&&u.length){var d=u.map(function(f){return f.props.dataKey});return t.reduce(function(f,m){var p=In(m,r);if(Je(p))return f;var g=Array.isArray(p)?[wy(p),by(p)]:[p,p],x=d.reduce(function(j,w){var b=In(m,w,0),N=g[0]-Math.abs(Array.isArray(b)?b[0]:b),E=g[1]+Math.abs(Array.isArray(b)?b[1]:b);return[Math.min(N,j[0]),Math.max(E,j[1])]},[1/0,-1/0]);return[Math.min(x[0],f[0]),Math.max(x[1],f[1])]},[1/0,-1/0])}return null},Aoe=function(t,n,r,a,s){var l=n.map(function(u){return W6(t,u,r,s,a)}).filter(function(u){return!Je(u)});return l&&l.length?l.reduce(function(u,d){return[Math.min(u[0],d[0]),Math.max(u[1],d[1])]},[1/0,-1/0]):null},V6=function(t,n,r,a,s){var l=n.map(function(d){var f=d.props.dataKey;return r==="number"&&f&&W6(t,d,f,a)||Ef(t,f,r,s)});if(r==="number")return l.reduce(function(d,f){return[Math.min(d[0],f[0]),Math.max(d[1],f[1])]},[1/0,-1/0]);var u={};return l.reduce(function(d,f){for(var m=0,p=f.length;m=2?Sr(u[0]-u[1])*2*f:f,n&&(t.ticks||t.niceTicks)){var m=(t.ticks||t.niceTicks).map(function(p){var g=s?s.indexOf(p):p;return{coordinate:a(g)+f,value:p,offset:f}});return m.filter(function(p){return!zh(p.coordinate)})}return t.isCategorical&&t.categoricalDomain?t.categoricalDomain.map(function(p,g){return{coordinate:a(p)+f,value:p,index:g,offset:f}}):a.ticks&&!r?a.ticks(t.tickCount).map(function(p){return{coordinate:a(p)+f,value:p,offset:f}}):a.domain().map(function(p,g){return{coordinate:a(p)+f,value:s?s[p]:p,index:g,offset:f}})},wS=new WeakMap,Up=function(t,n){if(typeof n!="function")return t;wS.has(t)||wS.set(t,new WeakMap);var r=wS.get(t);if(r.has(n))return r.get(n);var a=function(){t.apply(void 0,arguments),n.apply(void 0,arguments)};return r.set(n,a),a},K6=function(t,n,r){var a=t.scale,s=t.type,l=t.layout,u=t.axisType;if(a==="auto")return l==="radial"&&u==="radiusAxis"?{scale:Uf(),realScaleType:"band"}:l==="radial"&&u==="angleAxis"?{scale:Kv(),realScaleType:"linear"}:s==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!r)?{scale:Of(),realScaleType:"point"}:s==="category"?{scale:Uf(),realScaleType:"band"}:{scale:Kv(),realScaleType:"linear"};if(ml(a)){var d="scale".concat(iy(a));return{scale:(O3[d]||Of)(),realScaleType:O3[d]?d:"point"}}return Ye(a)?{scale:a}:{scale:Of(),realScaleType:"point"}},U3=1e-4,X6=function(t){var n=t.domain();if(!(!n||n.length<=2)){var r=n.length,a=t.range(),s=Math.min(a[0],a[1])-U3,l=Math.max(a[0],a[1])+U3,u=t(n[0]),d=t(n[r-1]);(ul||dl)&&t.domain([n[0],n[r-1]])}},Toe=function(t,n){if(!t)return null;for(var r=0,a=t.length;ra)&&(s[1]=a),s[0]>a&&(s[0]=a),s[1]=0?(t[u][r][0]=s,t[u][r][1]=s+d,s=t[u][r][1]):(t[u][r][0]=l,t[u][r][1]=l+d,l=t[u][r][1])}},Poe=function(t){var n=t.length;if(!(n<=0))for(var r=0,a=t[0].length;r=0?(t[l][r][0]=s,t[l][r][1]=s+u,s=t[l][r][1]):(t[l][r][0]=0,t[l][r][1]=0)}},Roe={sign:Moe,expand:wee,none:lu,silhouette:jee,wiggle:See,positive:Poe},Doe=function(t,n,r){var a=n.map(function(u){return u.props.dataKey}),s=Roe[r],l=bee().keys(a).value(function(u,d){return+In(u,d,0)}).order(z_).offset(s);return l(t)},$oe=function(t,n,r,a,s,l){if(!t)return null;var u=l?n.reverse():n,d={},f=u.reduce(function(p,g){var x,j=(x=g.type)!==null&&x!==void 0&&x.defaultProps?jn(jn({},g.type.defaultProps),g.props):g.props,w=j.stackId,b=j.hide;if(b)return p;var N=j[r],E=p[N]||{hasStack:!1,stackGroups:{}};if(Ln(w)){var O=E.stackGroups[w]||{numericAxisId:r,cateAxisId:a,items:[]};O.items.push(g),E.hasStack=!0,E.stackGroups[w]=O}else E.stackGroups[Vu("_stackId_")]={numericAxisId:r,cateAxisId:a,items:[g]};return jn(jn({},p),{},Kc({},N,E))},d),m={};return Object.keys(f).reduce(function(p,g){var x=f[g];if(x.hasStack){var j={};x.stackGroups=Object.keys(x.stackGroups).reduce(function(w,b){var N=x.stackGroups[b];return jn(jn({},w),{},Kc({},b,{numericAxisId:r,cateAxisId:a,items:N.items,stackedData:Doe(t,N.items,s)}))},j)}return jn(jn({},p),{},Kc({},g,x))},m)},Z6=function(t,n){var r=n.realScaleType,a=n.type,s=n.tickCount,l=n.originalDomain,u=n.allowDecimals,d=r||n.scale;if(d!=="auto"&&d!=="linear")return null;if(s&&a==="number"&&l&&(l[0]==="auto"||l[1]==="auto")){var f=t.domain();if(!f.length)return null;var m=Zse(f,s,u);return t.domain([wy(m),by(m)]),{niceTicks:m}}if(s&&a==="number"){var p=t.domain(),g=Qse(p,s,u);return{niceTicks:g}}return null};function H3(e){var t=e.axis,n=e.ticks,r=e.bandSize,a=e.entry,s=e.index,l=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!Je(a[t.dataKey])){var u=kv(n,"value",a[t.dataKey]);if(u)return u.coordinate+r/2}return n[s]?n[s].coordinate+r/2:null}var d=In(a,Je(l)?t.dataKey:l);return Je(d)?null:t.scale(d)}var W3=function(t){var n=t.axis,r=t.ticks,a=t.offset,s=t.bandSize,l=t.entry,u=t.index;if(n.type==="category")return r[u]?r[u].coordinate+a:null;var d=In(l,n.dataKey,n.domain[u]);return Je(d)?null:n.scale(d)-s/2+a},Ioe=function(t){var n=t.numericAxis,r=n.scale.domain();if(n.type==="number"){var a=Math.min(r[0],r[1]),s=Math.max(r[0],r[1]);return a<=0&&s>=0?0:s<0?s:a}return r[0]},Loe=function(t,n){var r,a=(r=t.type)!==null&&r!==void 0&&r.defaultProps?jn(jn({},t.type.defaultProps),t.props):t.props,s=a.stackId;if(Ln(s)){var l=n[s];if(l){var u=l.items.indexOf(t);return u>=0?l.stackedData[u]:null}}return null},zoe=function(t){return t.reduce(function(n,r){return[wy(r.concat([n[0]]).filter(Ee)),by(r.concat([n[1]]).filter(Ee))]},[1/0,-1/0])},Q6=function(t,n,r){return Object.keys(t).reduce(function(a,s){var l=t[s],u=l.stackedData,d=u.reduce(function(f,m){var p=zoe(m.slice(n,r+1));return[Math.min(f[0],p[0]),Math.max(f[1],p[1])]},[1/0,-1/0]);return[Math.min(d[0],a[0]),Math.max(d[1],a[1])]},[1/0,-1/0]).map(function(a){return a===1/0||a===-1/0?0:a})},V3=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,G3=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,uN=function(t,n,r){if(Ye(t))return t(n,r);if(!Array.isArray(t))return n;var a=[];if(Ee(t[0]))a[0]=r?t[0]:Math.min(t[0],n[0]);else if(V3.test(t[0])){var s=+V3.exec(t[0])[1];a[0]=n[0]-s}else Ye(t[0])?a[0]=t[0](n[0]):a[0]=n[0];if(Ee(t[1]))a[1]=r?t[1]:Math.max(t[1],n[1]);else if(G3.test(t[1])){var l=+G3.exec(t[1])[1];a[1]=n[1]+l}else Ye(t[1])?a[1]=t[1](n[1]):a[1]=n[1];return a},ng=function(t,n,r){if(t&&t.scale&&t.scale.bandwidth){var a=t.scale.bandwidth();if(!r||a>0)return a}if(t&&n&&n.length>=2){for(var s=bO(n,function(p){return p.coordinate}),l=1/0,u=1,d=s.length;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(r.left||0)-(r.right||0)),Math.abs(n-(r.top||0)-(r.bottom||0)))/2},Yoe=function(t,n,r,a,s){var l=t.width,u=t.height,d=t.startAngle,f=t.endAngle,m=_r(t.cx,l,l/2),p=_r(t.cy,u,u/2),g=tq(l,u,r),x=_r(t.innerRadius,g,0),j=_r(t.outerRadius,g,g*.8),w=Object.keys(n);return w.reduce(function(b,N){var E=n[N],O=E.domain,A=E.reversed,C;if(Je(E.range))a==="angleAxis"?C=[d,f]:a==="radiusAxis"&&(C=[x,j]),A&&(C=[C[1],C[0]]);else{C=E.range;var k=C,T=Foe(k,2);d=T[0],f=T[1]}var M=K6(E,s),R=M.realScaleType,L=M.scale;L.domain(O).range(C),X6(L);var D=Z6(L,Xi(Xi({},E),{},{realScaleType:R})),U=Xi(Xi(Xi({},E),D),{},{range:C,radius:j,realScaleType:R,scale:L,cx:m,cy:p,innerRadius:x,outerRadius:j,startAngle:d,endAngle:f});return Xi(Xi({},b),{},eq({},N,U))},{})},Koe=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return Math.sqrt(Math.pow(r-s,2)+Math.pow(a-l,2))},Xoe=function(t,n){var r=t.x,a=t.y,s=n.cx,l=n.cy,u=Koe({x:r,y:a},{x:s,y:l});if(u<=0)return{radius:u};var d=(r-s)/u,f=Math.acos(d);return a>l&&(f=2*Math.PI-f),{radius:u,angle:Goe(f),angleInRadian:f}},Zoe=function(t){var n=t.startAngle,r=t.endAngle,a=Math.floor(n/360),s=Math.floor(r/360),l=Math.min(a,s);return{startAngle:n-l*360,endAngle:r-l*360}},Qoe=function(t,n){var r=n.startAngle,a=n.endAngle,s=Math.floor(r/360),l=Math.floor(a/360),u=Math.min(s,l);return t+u*360},Z3=function(t,n){var r=t.x,a=t.y,s=Xoe({x:r,y:a},n),l=s.radius,u=s.angle,d=n.innerRadius,f=n.outerRadius;if(lf)return!1;if(l===0)return!0;var m=Zoe(n),p=m.startAngle,g=m.endAngle,x=u,j;if(p<=g){for(;x>g;)x-=360;for(;x=p&&x<=g}else{for(;x>p;)x-=360;for(;x=g&&x<=p}return j?Xi(Xi({},n),{},{radius:l,angle:Qoe(x,n)}):null},nq=function(t){return!y.isValidElement(t)&&!Ye(t)&&typeof t!="boolean"?t.className:""};function Jf(e){"@babel/helpers - typeof";return Jf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Jf(e)}var Joe=["offset"];function ele(e){return ale(e)||rle(e)||nle(e)||tle()}function tle(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function nle(e,t){if(e){if(typeof e=="string")return dN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return dN(e,t)}}function rle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ale(e){if(Array.isArray(e))return dN(e)}function dN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function sle(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Q3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function $n(e){for(var t=1;t=0?1:-1,O,A;a==="insideStart"?(O=x+E*l,A=w):a==="insideEnd"?(O=j-E*l,A=!w):a==="end"&&(O=j+E*l,A=w),A=N<=0?A:!A;var C=Jt(f,m,b,O),k=Jt(f,m,b,O+(A?1:-1)*359),T="M".concat(C.x,",").concat(C.y,` - A`).concat(b,",").concat(b,",0,1,").concat(A?0:1,`, - `).concat(k.x,",").concat(k.y),M=Je(t.id)?Vu("recharts-radial-line-"):t.id;return W.createElement("text",eh({},r,{dominantBaseline:"central",className:et("recharts-radial-bar-label",u)}),W.createElement("defs",null,W.createElement("path",{id:M,d:T})),W.createElement("textPath",{xlinkHref:"#".concat(M)},n))},hle=function(t){var n=t.viewBox,r=t.offset,a=t.position,s=n,l=s.cx,u=s.cy,d=s.innerRadius,f=s.outerRadius,m=s.startAngle,p=s.endAngle,g=(m+p)/2;if(a==="outside"){var x=Jt(l,u,f+r,g),j=x.x,w=x.y;return{x:j,y:w,textAnchor:j>=l?"start":"end",verticalAnchor:"middle"}}if(a==="center")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"middle"};if(a==="centerTop")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"start"};if(a==="centerBottom")return{x:l,y:u,textAnchor:"middle",verticalAnchor:"end"};var b=(d+f)/2,N=Jt(l,u,b,g),E=N.x,O=N.y;return{x:E,y:O,textAnchor:"middle",verticalAnchor:"middle"}},mle=function(t){var n=t.viewBox,r=t.parentViewBox,a=t.offset,s=t.position,l=n,u=l.x,d=l.y,f=l.width,m=l.height,p=m>=0?1:-1,g=p*a,x=p>0?"end":"start",j=p>0?"start":"end",w=f>=0?1:-1,b=w*a,N=w>0?"end":"start",E=w>0?"start":"end";if(s==="top"){var O={x:u+f/2,y:d-p*a,textAnchor:"middle",verticalAnchor:x};return $n($n({},O),r?{height:Math.max(d-r.y,0),width:f}:{})}if(s==="bottom"){var A={x:u+f/2,y:d+m+g,textAnchor:"middle",verticalAnchor:j};return $n($n({},A),r?{height:Math.max(r.y+r.height-(d+m),0),width:f}:{})}if(s==="left"){var C={x:u-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"};return $n($n({},C),r?{width:Math.max(C.x-r.x,0),height:m}:{})}if(s==="right"){var k={x:u+f+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"};return $n($n({},k),r?{width:Math.max(r.x+r.width-k.x,0),height:m}:{})}var T=r?{width:f,height:m}:{};return s==="insideLeft"?$n({x:u+b,y:d+m/2,textAnchor:E,verticalAnchor:"middle"},T):s==="insideRight"?$n({x:u+f-b,y:d+m/2,textAnchor:N,verticalAnchor:"middle"},T):s==="insideTop"?$n({x:u+f/2,y:d+g,textAnchor:"middle",verticalAnchor:j},T):s==="insideBottom"?$n({x:u+f/2,y:d+m-g,textAnchor:"middle",verticalAnchor:x},T):s==="insideTopLeft"?$n({x:u+b,y:d+g,textAnchor:E,verticalAnchor:j},T):s==="insideTopRight"?$n({x:u+f-b,y:d+g,textAnchor:N,verticalAnchor:j},T):s==="insideBottomLeft"?$n({x:u+b,y:d+m-g,textAnchor:E,verticalAnchor:x},T):s==="insideBottomRight"?$n({x:u+f-b,y:d+m-g,textAnchor:N,verticalAnchor:x},T):Wu(s)&&(Ee(s.x)||Zo(s.x))&&(Ee(s.y)||Zo(s.y))?$n({x:u+_r(s.x,f),y:d+_r(s.y,m),textAnchor:"end",verticalAnchor:"end"},T):$n({x:u+f/2,y:d+m/2,textAnchor:"middle",verticalAnchor:"middle"},T)},ple=function(t){return"cx"in t&&Ee(t.cx)};function Vn(e){var t=e.offset,n=t===void 0?5:t,r=ile(e,Joe),a=$n({offset:n},r),s=a.viewBox,l=a.position,u=a.value,d=a.children,f=a.content,m=a.className,p=m===void 0?"":m,g=a.textBreakAll;if(!s||Je(u)&&Je(d)&&!y.isValidElement(f)&&!Ye(f))return null;if(y.isValidElement(f))return y.cloneElement(f,a);var x;if(Ye(f)){if(x=y.createElement(f,a),y.isValidElement(x))return x}else x=ule(a);var j=ple(s),w=qe(a,!0);if(j&&(l==="insideStart"||l==="insideEnd"||l==="end"))return fle(a,x,w);var b=j?hle(a):mle(a);return W.createElement(vl,eh({className:et("recharts-label",p)},w,b,{breakAll:g}),x)}Vn.displayName="Label";var rq=function(t){var n=t.cx,r=t.cy,a=t.angle,s=t.startAngle,l=t.endAngle,u=t.r,d=t.radius,f=t.innerRadius,m=t.outerRadius,p=t.x,g=t.y,x=t.top,j=t.left,w=t.width,b=t.height,N=t.clockWise,E=t.labelViewBox;if(E)return E;if(Ee(w)&&Ee(b)){if(Ee(p)&&Ee(g))return{x:p,y:g,width:w,height:b};if(Ee(x)&&Ee(j))return{x,y:j,width:w,height:b}}return Ee(p)&&Ee(g)?{x:p,y:g,width:0,height:0}:Ee(n)&&Ee(r)?{cx:n,cy:r,startAngle:s||a||0,endAngle:l||a||0,innerRadius:f||0,outerRadius:m||d||u||0,clockWise:N}:t.viewBox?t.viewBox:{}},vle=function(t,n){return t?t===!0?W.createElement(Vn,{key:"label-implicit",viewBox:n}):Ln(t)?W.createElement(Vn,{key:"label-implicit",viewBox:n,value:t}):y.isValidElement(t)?t.type===Vn?y.cloneElement(t,{key:"label-implicit",viewBox:n}):W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Ye(t)?W.createElement(Vn,{key:"label-implicit",content:t,viewBox:n}):Wu(t)?W.createElement(Vn,eh({viewBox:n},t,{key:"label-implicit"})):null:null},gle=function(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!t||!t.children&&r&&!t.label)return null;var a=t.children,s=rq(t),l=oa(a,Vn).map(function(d,f){return y.cloneElement(d,{viewBox:n||s,key:"label-".concat(f)})});if(!r)return l;var u=vle(t.label,n||s);return[u].concat(ele(l))};Vn.parseViewBox=rq;Vn.renderCallByParent=gle;var jS,J3;function yle(){if(J3)return jS;J3=1;function e(t){var n=t==null?0:t.length;return n?t[n-1]:void 0}return jS=e,jS}var xle=yle();const ble=Rt(xle);function th(e){"@babel/helpers - typeof";return th=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},th(e)}var wle=["valueAccessor"],jle=["data","dataKey","clockWise","id","textBreakAll"];function Sle(e){return Ole(e)||Cle(e)||Nle(e)||_le()}function _le(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Nle(e,t){if(e){if(typeof e=="string")return fN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return fN(e,t)}}function Cle(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Ole(e){if(Array.isArray(e))return fN(e)}function fN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function kle(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Mle=function(t){return Array.isArray(t.value)?ble(t.value):t.value};function ss(e){var t=e.valueAccessor,n=t===void 0?Mle:t,r=n$(e,wle),a=r.data,s=r.dataKey,l=r.clockWise,u=r.id,d=r.textBreakAll,f=n$(r,jle);return!a||!a.length?null:W.createElement(Nt,{className:"recharts-label-list"},a.map(function(m,p){var g=Je(s)?n(m,p):In(m&&m.payload,s),x=Je(u)?{}:{id:"".concat(u,"-").concat(p)};return W.createElement(Vn,ag({},qe(m,!0),f,x,{parentViewBox:m.parentViewBox,value:g,textBreakAll:d,viewBox:Vn.parseViewBox(Je(l)?m:t$(t$({},m),{},{clockWise:l})),key:"label-".concat(p),index:p}))}))}ss.displayName="LabelList";function Ple(e,t){return e?e===!0?W.createElement(ss,{key:"labelList-implicit",data:t}):W.isValidElement(e)||Ye(e)?W.createElement(ss,{key:"labelList-implicit",data:t,content:e}):Wu(e)?W.createElement(ss,ag({data:t},e,{key:"labelList-implicit"})):null:null}function Rle(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!e.children&&n&&!e.label)return null;var r=e.children,a=oa(r,ss).map(function(l,u){return y.cloneElement(l,{data:t,key:"labelList-".concat(u)})});if(!n)return a;var s=Ple(e.label,t);return[s].concat(Sle(a))}ss.renderCallByParent=Rle;function nh(e){"@babel/helpers - typeof";return nh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},nh(e)}function hN(){return hN=Object.assign?Object.assign.bind():function(e){for(var t=1;t180),",").concat(+(l>f),`, - `).concat(p.x,",").concat(p.y,` - `);if(a>0){var x=Jt(n,r,a,l),j=Jt(n,r,a,f);g+="L ".concat(j.x,",").concat(j.y,` - A `).concat(a,",").concat(a,`,0, - `).concat(+(Math.abs(d)>180),",").concat(+(l<=f),`, - `).concat(x.x,",").concat(x.y," Z")}else g+="L ".concat(n,",").concat(r," Z");return g},zle=function(t){var n=t.cx,r=t.cy,a=t.innerRadius,s=t.outerRadius,l=t.cornerRadius,u=t.forceCornerRadius,d=t.cornerIsExternal,f=t.startAngle,m=t.endAngle,p=Sr(m-f),g=Hp({cx:n,cy:r,radius:s,angle:f,sign:p,cornerRadius:l,cornerIsExternal:d}),x=g.circleTangency,j=g.lineTangency,w=g.theta,b=Hp({cx:n,cy:r,radius:s,angle:m,sign:-p,cornerRadius:l,cornerIsExternal:d}),N=b.circleTangency,E=b.lineTangency,O=b.theta,A=d?Math.abs(f-m):Math.abs(f-m)-w-O;if(A<0)return u?"M ".concat(j.x,",").concat(j.y,` - a`).concat(l,",").concat(l,",0,0,1,").concat(l*2,`,0 - a`).concat(l,",").concat(l,",0,0,1,").concat(-l*2,`,0 - `):aq({cx:n,cy:r,innerRadius:a,outerRadius:s,startAngle:f,endAngle:m});var C="M ".concat(j.x,",").concat(j.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(x.x,",").concat(x.y,` - A`).concat(s,",").concat(s,",0,").concat(+(A>180),",").concat(+(p<0),",").concat(N.x,",").concat(N.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(E.x,",").concat(E.y,` - `);if(a>0){var k=Hp({cx:n,cy:r,radius:a,angle:f,sign:p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),T=k.circleTangency,M=k.lineTangency,R=k.theta,L=Hp({cx:n,cy:r,radius:a,angle:m,sign:-p,isExternal:!0,cornerRadius:l,cornerIsExternal:d}),D=L.circleTangency,U=L.lineTangency,V=L.theta,H=d?Math.abs(f-m):Math.abs(f-m)-R-V;if(H<0&&l===0)return"".concat(C,"L").concat(n,",").concat(r,"Z");C+="L".concat(U.x,",").concat(U.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(D.x,",").concat(D.y,` - A`).concat(a,",").concat(a,",0,").concat(+(H>180),",").concat(+(p>0),",").concat(T.x,",").concat(T.y,` - A`).concat(l,",").concat(l,",0,0,").concat(+(p<0),",").concat(M.x,",").concat(M.y,"Z")}else C+="L".concat(n,",").concat(r,"Z");return C},Ble={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},iq=function(t){var n=a$(a$({},Ble),t),r=n.cx,a=n.cy,s=n.innerRadius,l=n.outerRadius,u=n.cornerRadius,d=n.forceCornerRadius,f=n.cornerIsExternal,m=n.startAngle,p=n.endAngle,g=n.className;if(l0&&Math.abs(m-p)<360?b=zle({cx:r,cy:a,innerRadius:s,outerRadius:l,cornerRadius:Math.min(w,j/2),forceCornerRadius:d,cornerIsExternal:f,startAngle:m,endAngle:p}):b=aq({cx:r,cy:a,innerRadius:s,outerRadius:l,startAngle:m,endAngle:p}),W.createElement("path",hN({},qe(n,!0),{className:x,d:b,role:"img"}))};function rh(e){"@babel/helpers - typeof";return rh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},rh(e)}function mN(){return mN=Object.assign?Object.assign.bind():function(e){for(var t=1;t0;)if(!n.equals(e[r],t[r],r,r,e,t,n))return!1;return!0}function ice(e,t){return Tl(e.getTime(),t.getTime())}function sce(e,t){return e.name===t.name&&e.message===t.message&&e.cause===t.cause&&e.stack===t.stack}function oce(e,t){return e===t}function p$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.entries(),l,u,d=0;(l=s.next())&&!l.done;){for(var f=t.entries(),m=!1,p=0;(u=f.next())&&!u.done;){if(a[p]){p++;continue}var g=l.value,x=u.value;if(n.equals(g[0],x[0],d,p,e,t,n)&&n.equals(g[1],x[1],g[0],x[0],e,t,n)){m=a[p]=!0;break}p++}if(!m)return!1;d++}return!0}var lce=Tl;function cce(e,t,n){var r=m$(e),a=r.length;if(m$(t).length!==a)return!1;for(;a-- >0;)if(!sq(e,t,n,r[a]))return!1;return!0}function uf(e,t,n){var r=f$(e),a=r.length;if(f$(t).length!==a)return!1;for(var s,l,u;a-- >0;)if(s=r[a],!sq(e,t,n,s)||(l=h$(e,s),u=h$(t,s),(l||u)&&(!l||!u||l.configurable!==u.configurable||l.enumerable!==u.enumerable||l.writable!==u.writable)))return!1;return!0}function uce(e,t){return Tl(e.valueOf(),t.valueOf())}function dce(e,t){return e.source===t.source&&e.flags===t.flags}function v$(e,t,n){var r=e.size;if(r!==t.size)return!1;if(!r)return!0;for(var a=new Array(r),s=e.values(),l,u;(l=s.next())&&!l.done;){for(var d=t.values(),f=!1,m=0;(u=d.next())&&!u.done;){if(!a[m]&&n.equals(l.value,u.value,l.value,u.value,e,t,n)){f=a[m]=!0;break}m++}if(!f)return!1}return!0}function fce(e,t){var n=e.length;if(t.length!==n)return!1;for(;n-- >0;)if(e[n]!==t[n])return!1;return!0}function hce(e,t){return e.hostname===t.hostname&&e.pathname===t.pathname&&e.protocol===t.protocol&&e.port===t.port&&e.hash===t.hash&&e.username===t.username&&e.password===t.password}function sq(e,t,n,r){return(r===rce||r===nce||r===tce)&&(e.$$typeof||t.$$typeof)?!0:ece(t,r)&&n.equals(e[r],t[r],r,r,e,t,n)}var mce="[object Arguments]",pce="[object Boolean]",vce="[object Date]",gce="[object Error]",yce="[object Map]",xce="[object Number]",bce="[object Object]",wce="[object RegExp]",jce="[object Set]",Sce="[object String]",_ce="[object URL]",Nce=Array.isArray,g$=typeof ArrayBuffer<"u"&&typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView:null,y$=Object.assign,Cce=Object.prototype.toString.call.bind(Object.prototype.toString);function Oce(e){var t=e.areArraysEqual,n=e.areDatesEqual,r=e.areErrorsEqual,a=e.areFunctionsEqual,s=e.areMapsEqual,l=e.areNumbersEqual,u=e.areObjectsEqual,d=e.arePrimitiveWrappersEqual,f=e.areRegExpsEqual,m=e.areSetsEqual,p=e.areTypedArraysEqual,g=e.areUrlsEqual,x=e.unknownTagComparators;return function(w,b,N){if(w===b)return!0;if(w==null||b==null)return!1;var E=typeof w;if(E!==typeof b)return!1;if(E!=="object")return E==="number"?l(w,b,N):E==="function"?a(w,b,N):!1;var O=w.constructor;if(O!==b.constructor)return!1;if(O===Object)return u(w,b,N);if(Nce(w))return t(w,b,N);if(g$!=null&&g$(w))return p(w,b,N);if(O===Date)return n(w,b,N);if(O===RegExp)return f(w,b,N);if(O===Map)return s(w,b,N);if(O===Set)return m(w,b,N);var A=Cce(w);if(A===vce)return n(w,b,N);if(A===wce)return f(w,b,N);if(A===yce)return s(w,b,N);if(A===jce)return m(w,b,N);if(A===bce)return typeof w.then!="function"&&typeof b.then!="function"&&u(w,b,N);if(A===_ce)return g(w,b,N);if(A===gce)return r(w,b,N);if(A===mce)return u(w,b,N);if(A===pce||A===xce||A===Sce)return d(w,b,N);if(x){var C=x[A];if(!C){var k=Jle(w);k&&(C=x[k])}if(C)return C(w,b,N)}return!1}}function Ece(e){var t=e.circular,n=e.createCustomConfig,r=e.strict,a={areArraysEqual:r?uf:ace,areDatesEqual:ice,areErrorsEqual:sce,areFunctionsEqual:oce,areMapsEqual:r?d$(p$,uf):p$,areNumbersEqual:lce,areObjectsEqual:r?uf:cce,arePrimitiveWrappersEqual:uce,areRegExpsEqual:dce,areSetsEqual:r?d$(v$,uf):v$,areTypedArraysEqual:r?uf:fce,areUrlsEqual:hce,unknownTagComparators:void 0};if(n&&(a=y$({},a,n(a))),t){var s=Vp(a.areArraysEqual),l=Vp(a.areMapsEqual),u=Vp(a.areObjectsEqual),d=Vp(a.areSetsEqual);a=y$({},a,{areArraysEqual:s,areMapsEqual:l,areObjectsEqual:u,areSetsEqual:d})}return a}function Ace(e){return function(t,n,r,a,s,l,u){return e(t,n,u)}}function Tce(e){var t=e.circular,n=e.comparator,r=e.createState,a=e.equals,s=e.strict;if(r)return function(d,f){var m=r(),p=m.cache,g=p===void 0?t?new WeakMap:void 0:p,x=m.meta;return n(d,f,{cache:g,equals:a,meta:x,strict:s})};if(t)return function(d,f){return n(d,f,{cache:new WeakMap,equals:a,meta:void 0,strict:s})};var l={cache:void 0,equals:a,meta:void 0,strict:s};return function(d,f){return n(d,f,l)}}var kce=po();po({strict:!0});po({circular:!0});po({circular:!0,strict:!0});po({createInternalComparator:function(){return Tl}});po({strict:!0,createInternalComparator:function(){return Tl}});po({circular:!0,createInternalComparator:function(){return Tl}});po({circular:!0,createInternalComparator:function(){return Tl},strict:!0});function po(e){e===void 0&&(e={});var t=e.circular,n=t===void 0?!1:t,r=e.createInternalComparator,a=e.createState,s=e.strict,l=s===void 0?!1:s,u=Ece(e),d=Oce(u),f=r?r(d):Ace(d);return Tce({circular:n,comparator:d,createState:a,equals:f,strict:l})}function Mce(e){typeof requestAnimationFrame<"u"&&requestAnimationFrame(e)}function x$(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=-1,r=function a(s){n<0&&(n=s),s-n>t?(e(s),n=-1):Mce(a)};requestAnimationFrame(r)}function pN(e){"@babel/helpers - typeof";return pN=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pN(e)}function Pce(e){return Ice(e)||$ce(e)||Dce(e)||Rce()}function Rce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dce(e,t){if(e){if(typeof e=="string")return b$(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b$(e,t)}}function b$(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?1:N<0?0:N},w=function(N){for(var E=N>1?1:N,O=E,A=0;A<8;++A){var C=p(O)-E,k=x(O);if(Math.abs(C-E)0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,r=n===void 0?100:n,a=t.damping,s=a===void 0?8:a,l=t.dt,u=l===void 0?17:l,d=function(m,p,g){var x=-(m-p)*r,j=g*s,w=g+(x-j)*u/1e3,b=g*u/1e3+m;return Math.abs(b-p)e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function mue(e,t){if(e==null)return{};var n={},r=Object.keys(e),a,s;for(s=0;s=0)&&(n[a]=e[a]);return n}function CS(e){return yue(e)||gue(e)||vue(e)||pue()}function pue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vue(e,t){if(e){if(typeof e=="string")return bN(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bN(e,t)}}function gue(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function yue(e){if(Array.isArray(e))return bN(e)}function bN(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function lg(e){return lg=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},lg(e)}var ji=(function(e){Sue(n,e);var t=_ue(n);function n(r,a){var s;xue(this,n),s=t.call(this,r,a);var l=s.props,u=l.isActive,d=l.attributeName,f=l.from,m=l.to,p=l.steps,g=l.children,x=l.duration;if(s.handleStyleChange=s.handleStyleChange.bind(SN(s)),s.changeStyle=s.changeStyle.bind(SN(s)),!u||x<=0)return s.state={style:{}},typeof g=="function"&&(s.state={style:m}),jN(s);if(p&&p.length)s.state={style:p[0].style};else if(f){if(typeof g=="function")return s.state={style:f},jN(s);s.state={style:d?gf({},d,f):f}}else s.state={style:{}};return s}return wue(n,[{key:"componentDidMount",value:function(){var a=this.props,s=a.isActive,l=a.canBegin;this.mounted=!0,!(!s||!l)&&this.runAnimation(this.props)}},{key:"componentDidUpdate",value:function(a){var s=this.props,l=s.isActive,u=s.canBegin,d=s.attributeName,f=s.shouldReAnimate,m=s.to,p=s.from,g=this.state.style;if(u){if(!l){var x={style:d?gf({},d,m):m};this.state&&g&&(d&&g[d]!==m||!d&&g!==m)&&this.setState(x);return}if(!(kce(a.to,m)&&a.canBegin&&a.isActive)){var j=!a.canBegin||!a.isActive;this.manager&&this.manager.stop(),this.stopJSAnimation&&this.stopJSAnimation();var w=j||f?p:a.to;if(this.state&&g){var b={style:d?gf({},d,w):w};(d&&g[d]!==w||!d&&g!==w)&&this.setState(b)}this.runAnimation(Ia(Ia({},this.props),{},{from:w,begin:0}))}}}},{key:"componentWillUnmount",value:function(){this.mounted=!1;var a=this.props.onAnimationEnd;this.unSubscribe&&this.unSubscribe(),this.manager&&(this.manager.stop(),this.manager=null),this.stopJSAnimation&&this.stopJSAnimation(),a&&a()}},{key:"handleStyleChange",value:function(a){this.changeStyle(a)}},{key:"changeStyle",value:function(a){this.mounted&&this.setState({style:a})}},{key:"runJSAnimation",value:function(a){var s=this,l=a.from,u=a.to,d=a.duration,f=a.easing,m=a.begin,p=a.onAnimationEnd,g=a.onAnimationStart,x=due(l,u,eue(f),d,this.changeStyle),j=function(){s.stopJSAnimation=x()};this.manager.start([g,m,j,d,p])}},{key:"runStepAnimation",value:function(a){var s=this,l=a.steps,u=a.begin,d=a.onAnimationStart,f=l[0],m=f.style,p=f.duration,g=p===void 0?0:p,x=function(w,b,N){if(N===0)return w;var E=b.duration,O=b.easing,A=O===void 0?"ease":O,C=b.style,k=b.properties,T=b.onAnimationEnd,M=N>0?l[N-1]:b,R=k||Object.keys(C);if(typeof A=="function"||A==="spring")return[].concat(CS(w),[s.runJSAnimation.bind(s,{from:M.style,to:C,duration:E,easing:A}),E]);var L=S$(R,E,A),D=Ia(Ia(Ia({},M.style),C),{},{transition:L});return[].concat(CS(w),[D,E,T]).filter(Fce)};return this.manager.start([d].concat(CS(l.reduce(x,[m,Math.max(g,u)])),[a.onAnimationEnd]))}},{key:"runAnimation",value:function(a){this.manager||(this.manager=Lce());var s=a.begin,l=a.duration,u=a.attributeName,d=a.to,f=a.easing,m=a.onAnimationStart,p=a.onAnimationEnd,g=a.steps,x=a.children,j=this.manager;if(this.unSubscribe=j.subscribe(this.handleStyleChange),typeof f=="function"||typeof x=="function"||f==="spring"){this.runJSAnimation(a);return}if(g.length>1){this.runStepAnimation(a);return}var w=u?gf({},u,d):d,b=S$(Object.keys(w),l,f);j.start([m,s,Ia(Ia({},w),{},{transition:b}),l,p])}},{key:"render",value:function(){var a=this.props,s=a.children;a.begin;var l=a.duration;a.attributeName,a.easing;var u=a.isActive;a.steps,a.from,a.to,a.canBegin,a.onAnimationEnd,a.shouldReAnimate,a.onAnimationReStart;var d=hue(a,fue),f=y.Children.count(s),m=this.state.style;if(typeof s=="function")return s(m);if(!u||f===0||l<=0)return s;var p=function(x){var j=x.props,w=j.style,b=w===void 0?{}:w,N=j.className,E=y.cloneElement(x,Ia(Ia({},d),{},{style:Ia(Ia({},b),m),className:N}));return E};return f===1?p(y.Children.only(s)):W.createElement("div",null,y.Children.map(s,function(g){return p(g)}))}}]),n})(y.PureComponent);ji.displayName="Animate";ji.defaultProps={begin:0,duration:1e3,from:"",to:"",attributeName:"",easing:"ease",isActive:!0,canBegin:!0,steps:[],onAnimationEnd:function(){},onAnimationStart:function(){}};ji.propTypes={from:Mt.oneOfType([Mt.object,Mt.string]),to:Mt.oneOfType([Mt.object,Mt.string]),attributeName:Mt.string,duration:Mt.number,begin:Mt.number,easing:Mt.oneOfType([Mt.string,Mt.func]),steps:Mt.arrayOf(Mt.shape({duration:Mt.number.isRequired,style:Mt.object.isRequired,easing:Mt.oneOfType([Mt.oneOf(["ease","ease-in","ease-out","ease-in-out","linear"]),Mt.func]),properties:Mt.arrayOf("string"),onAnimationEnd:Mt.func})),children:Mt.oneOfType([Mt.node,Mt.func]),isActive:Mt.bool,canBegin:Mt.bool,onAnimationEnd:Mt.func,shouldReAnimate:Mt.bool,onAnimationStart:Mt.func,onAnimationReStart:Mt.func};function sh(e){"@babel/helpers - typeof";return sh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},sh(e)}function cg(){return cg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0?1:-1,d=r>=0?1:-1,f=a>=0&&r>=0||a<0&&r<0?1:0,m;if(l>0&&s instanceof Array){for(var p=[0,0,0,0],g=0,x=4;gl?l:s[g];m="M".concat(t,",").concat(n+u*p[0]),p[0]>0&&(m+="A ".concat(p[0],",").concat(p[0],",0,0,").concat(f,",").concat(t+d*p[0],",").concat(n)),m+="L ".concat(t+r-d*p[1],",").concat(n),p[1]>0&&(m+="A ".concat(p[1],",").concat(p[1],",0,0,").concat(f,`, - `).concat(t+r,",").concat(n+u*p[1])),m+="L ".concat(t+r,",").concat(n+a-u*p[2]),p[2]>0&&(m+="A ".concat(p[2],",").concat(p[2],",0,0,").concat(f,`, - `).concat(t+r-d*p[2],",").concat(n+a)),m+="L ".concat(t+d*p[3],",").concat(n+a),p[3]>0&&(m+="A ".concat(p[3],",").concat(p[3],",0,0,").concat(f,`, - `).concat(t,",").concat(n+a-u*p[3])),m+="Z"}else if(l>0&&s===+s&&s>0){var j=Math.min(l,s);m="M ".concat(t,",").concat(n+u*j,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+d*j,",").concat(n,` - L `).concat(t+r-d*j,",").concat(n,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r,",").concat(n+u*j,` - L `).concat(t+r,",").concat(n+a-u*j,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t+r-d*j,",").concat(n+a,` - L `).concat(t+d*j,",").concat(n+a,` - A `).concat(j,",").concat(j,",0,0,").concat(f,",").concat(t,",").concat(n+a-u*j," Z")}else m="M ".concat(t,",").concat(n," h ").concat(r," v ").concat(a," h ").concat(-r," Z");return m},Rue=function(t,n){if(!t||!n)return!1;var r=t.x,a=t.y,s=n.x,l=n.y,u=n.width,d=n.height;if(Math.abs(u)>0&&Math.abs(d)>0){var f=Math.min(s,s+u),m=Math.max(s,s+u),p=Math.min(l,l+d),g=Math.max(l,l+d);return r>=f&&r<=m&&a>=p&&a<=g}return!1},Due={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},GO=function(t){var n=k$(k$({},Due),t),r=y.useRef(),a=y.useState(-1),s=Cue(a,2),l=s[0],u=s[1];y.useEffect(function(){if(r.current&&r.current.getTotalLength)try{var A=r.current.getTotalLength();A&&u(A)}catch{}},[]);var d=n.x,f=n.y,m=n.width,p=n.height,g=n.radius,x=n.className,j=n.animationEasing,w=n.animationDuration,b=n.animationBegin,N=n.isAnimationActive,E=n.isUpdateAnimationActive;if(d!==+d||f!==+f||m!==+m||p!==+p||m===0||p===0)return null;var O=et("recharts-rectangle",x);return E?W.createElement(ji,{canBegin:l>0,from:{width:m,height:p,x:d,y:f},to:{width:m,height:p,x:d,y:f},duration:w,animationEasing:j,isActive:E},function(A){var C=A.width,k=A.height,T=A.x,M=A.y;return W.createElement(ji,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,isActive:N,easing:j},W.createElement("path",cg({},qe(n,!0),{className:O,d:M$(T,M,C,k,g),ref:r})))}):W.createElement("path",cg({},qe(n,!0),{className:O,d:M$(d,f,m,p,g)}))},$ue=["points","className","baseLinePoints","connectNulls"];function Uc(){return Uc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lue(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function P$(e){return Fue(e)||que(e)||Bue(e)||zue()}function zue(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bue(e,t){if(e){if(typeof e=="string")return _N(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _N(e,t)}}function que(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function Fue(e){if(Array.isArray(e))return _N(e)}function _N(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&arguments[0]!==void 0?arguments[0]:[],n=[[]];return t.forEach(function(r){R$(r)?n[n.length-1].push(r):n[n.length-1].length>0&&n.push([])}),R$(t[0])&&n[n.length-1].push(t[0]),n[n.length-1].length<=0&&(n=n.slice(0,-1)),n},Tf=function(t,n){var r=Uue(t);n&&(r=[r.reduce(function(s,l){return[].concat(P$(s),P$(l))},[])]);var a=r.map(function(s){return s.reduce(function(l,u,d){return"".concat(l).concat(d===0?"M":"L").concat(u.x,",").concat(u.y)},"")}).join("");return r.length===1?"".concat(a,"Z"):a},Hue=function(t,n,r){var a=Tf(t,r);return"".concat(a.slice(-1)==="Z"?a.slice(0,-1):a,"L").concat(Tf(n.reverse(),r).slice(1))},Wue=function(t){var n=t.points,r=t.className,a=t.baseLinePoints,s=t.connectNulls,l=Iue(t,$ue);if(!n||!n.length)return null;var u=et("recharts-polygon",r);if(a&&a.length){var d=l.stroke&&l.stroke!=="none",f=Hue(n,a,s);return W.createElement("g",{className:u},W.createElement("path",Uc({},qe(l,!0),{fill:f.slice(-1)==="Z"?l.fill:"none",stroke:"none",d:f})),d?W.createElement("path",Uc({},qe(l,!0),{fill:"none",d:Tf(n,s)})):null,d?W.createElement("path",Uc({},qe(l,!0),{fill:"none",d:Tf(a,s)})):null)}var m=Tf(n,s);return W.createElement("path",Uc({},qe(l,!0),{fill:m.slice(-1)==="Z"?l.fill:"none",className:u,d:m}))};function NN(){return NN=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Que(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Jue=function(t,n,r,a,s,l){return"M".concat(t,",").concat(s,"v").concat(a,"M").concat(l,",").concat(n,"h").concat(r)},ede=function(t){var n=t.x,r=n===void 0?0:n,a=t.y,s=a===void 0?0:a,l=t.top,u=l===void 0?0:l,d=t.left,f=d===void 0?0:d,m=t.width,p=m===void 0?0:m,g=t.height,x=g===void 0?0:g,j=t.className,w=Zue(t,Vue),b=Gue({x:r,y:s,top:u,left:f,width:p,height:x},w);return!Ee(r)||!Ee(s)||!Ee(p)||!Ee(x)||!Ee(u)||!Ee(f)?null:W.createElement("path",CN({},qe(b,!0),{className:et("recharts-cross",j),d:Jue(r,s,p,x,u,f)}))},OS,$$;function tde(){if($$)return OS;$$=1;var e=xy(),t=O6(),n=Ci();function r(a,s){return a&&a.length?e(a,n(s,2),t):void 0}return OS=r,OS}var nde=tde();const rde=Rt(nde);var ES,I$;function ade(){if(I$)return ES;I$=1;var e=xy(),t=Ci(),n=E6();function r(a,s){return a&&a.length?e(a,t(s,2),n):void 0}return ES=r,ES}var ide=ade();const sde=Rt(ide);var ode=["cx","cy","angle","ticks","axisLine"],lde=["ticks","tick","angle","tickFormatter","stroke"];function yu(e){"@babel/helpers - typeof";return yu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yu(e)}function kf(){return kf=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function cde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function ude(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function B$(e,t){for(var n=0;nU$?l=a==="outer"?"start":"end":s<-U$?l=a==="outer"?"end":"start":l="middle",l}},{key:"renderAxisLine",value:function(){var r=this.props,a=r.cx,s=r.cy,l=r.radius,u=r.axisLine,d=r.axisLineType,f=Wo(Wo({},qe(this.props,!1)),{},{fill:"none"},qe(u,!1));if(d==="circle")return W.createElement(_y,Ko({className:"recharts-polar-angle-axis-line"},f,{cx:a,cy:s,r:l}));var m=this.props.ticks,p=m.map(function(g){return Jt(a,s,l,g.coordinate)});return W.createElement(Wue,Ko({className:"recharts-polar-angle-axis-line"},f,{points:p}))}},{key:"renderTicks",value:function(){var r=this,a=this.props,s=a.ticks,l=a.tick,u=a.tickLine,d=a.tickFormatter,f=a.stroke,m=qe(this.props,!1),p=qe(l,!1),g=Wo(Wo({},m),{},{fill:"none"},qe(u,!1)),x=s.map(function(j,w){var b=r.getTickLineCoord(j),N=r.getTickTextAnchor(j),E=Wo(Wo(Wo({textAnchor:N},m),{},{stroke:"none",fill:f},p),{},{index:w,payload:j,x:b.x2,y:b.y2});return W.createElement(Nt,Ko({className:et("recharts-polar-angle-axis-tick",nq(l)),key:"tick-".concat(j.coordinate)},pl(r.props,j,w)),u&&W.createElement("line",Ko({className:"recharts-polar-angle-axis-tick-line"},g,b)),l&&t.renderTickItem(l,E,d?d(j.value,w):j.value))});return W.createElement(Nt,{className:"recharts-polar-angle-axis-ticks"},x)}},{key:"render",value:function(){var r=this.props,a=r.ticks,s=r.radius,l=r.axisLine;return s<=0||!a||!a.length?null:W.createElement(Nt,{className:et("recharts-polar-angle-axis",this.props.className)},l&&this.renderAxisLine(),this.renderTicks())}}],[{key:"renderTickItem",value:function(r,a,s){var l;return W.isValidElement(r)?l=W.cloneElement(r,a):Ye(r)?l=r(a):l=W.createElement(vl,Ko({},a,{className:"recharts-polar-angle-axis-tick-value"}),s),l}}])})(y.PureComponent);Oy(Ey,"displayName","PolarAngleAxis");Oy(Ey,"axisType","angleAxis");Oy(Ey,"defaultProps",{type:"category",angleAxisId:0,scale:"auto",cx:0,cy:0,orientation:"outer",axisLine:!0,tickLine:!0,tickSize:8,tick:!0,hide:!1,allowDuplicatedCategory:!0});var AS,H$;function Nde(){if(H$)return AS;H$=1;var e=CB(),t=e(Object.getPrototypeOf,Object);return AS=t,AS}var TS,W$;function Cde(){if(W$)return TS;W$=1;var e=ms(),t=Nde(),n=ps(),r="[object Object]",a=Function.prototype,s=Object.prototype,l=a.toString,u=s.hasOwnProperty,d=l.call(Object);function f(m){if(!n(m)||e(m)!=r)return!1;var p=t(m);if(p===null)return!0;var g=u.call(p,"constructor")&&p.constructor;return typeof g=="function"&&g instanceof g&&l.call(g)==d}return TS=f,TS}var Ode=Cde();const Ede=Rt(Ode);var kS,V$;function Ade(){if(V$)return kS;V$=1;var e=ms(),t=ps(),n="[object Boolean]";function r(a){return a===!0||a===!1||t(a)&&e(a)==n}return kS=r,kS}var Tde=Ade();const kde=Rt(Tde);function lh(e){"@babel/helpers - typeof";return lh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},lh(e)}function fg(){return fg=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0,from:{upperWidth:0,lowerWidth:0,height:g,x:d,y:f},to:{upperWidth:m,lowerWidth:p,height:g,x:d,y:f},duration:w,animationEasing:j,isActive:N},function(O){var A=O.upperWidth,C=O.lowerWidth,k=O.height,T=O.x,M=O.y;return W.createElement(ji,{canBegin:l>0,from:"0px ".concat(l===-1?1:l,"px"),to:"".concat(l,"px 0px"),attributeName:"strokeDasharray",begin:b,duration:w,easing:j},W.createElement("path",fg({},qe(n,!0),{className:E,d:X$(T,M,A,C,k),ref:r})))}):W.createElement("g",null,W.createElement("path",fg({},qe(n,!0),{className:E,d:X$(d,f,m,p,g)})))},Fde=["option","shapeType","propTransformer","activeClassName","isActive"];function ch(e){"@babel/helpers - typeof";return ch=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ch(e)}function Ude(e,t){if(e==null)return{};var n=Hde(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Hde(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Z$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function hg(e){for(var t=1;t0?sa(O,"paddingAngle",0):0;if(C){var T=ra(C.endAngle-C.startAngle,O.endAngle-O.startAngle),M=Xt(Xt({},O),{},{startAngle:E+k,endAngle:E+T(w)+k});b.push(M),E=M.endAngle}else{var R=O.endAngle,L=O.startAngle,D=ra(0,R-L),U=D(w),V=Xt(Xt({},O),{},{startAngle:E+k,endAngle:E+U+k});b.push(V),E=V.endAngle}}),W.createElement(Nt,null,r.renderSectorsStatically(b))})}},{key:"attachKeyboardHandlers",value:function(r){var a=this;r.onkeydown=function(s){if(!s.altKey)switch(s.key){case"ArrowLeft":{var l=++a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[l].focus(),a.setState({sectorToFocus:l});break}case"ArrowRight":{var u=--a.state.sectorToFocus<0?a.sectorRefs.length-1:a.state.sectorToFocus%a.sectorRefs.length;a.sectorRefs[u].focus(),a.setState({sectorToFocus:u});break}case"Escape":{a.sectorRefs[a.state.sectorToFocus].blur(),a.setState({sectorToFocus:0});break}}}}},{key:"renderSectors",value:function(){var r=this.props,a=r.sectors,s=r.isAnimationActive,l=this.state.prevSectors;return s&&a&&a.length&&(!l||!Wh(l,a))?this.renderSectorsWithAnimation():this.renderSectorsStatically(a)}},{key:"componentDidMount",value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:"render",value:function(){var r=this,a=this.props,s=a.hide,l=a.sectors,u=a.className,d=a.label,f=a.cx,m=a.cy,p=a.innerRadius,g=a.outerRadius,x=a.isAnimationActive,j=this.state.isAnimationFinished;if(s||!l||!l.length||!Ee(f)||!Ee(m)||!Ee(p)||!Ee(g))return null;var w=et("recharts-pie",u);return W.createElement(Nt,{tabIndex:this.props.rootTabIndex,className:w,ref:function(N){r.pieRef=N}},this.renderSectors(),d&&this.renderLabels(l),Vn.renderCallByParent(this.props,null,!1),(!x||j)&&ss.renderCallByParent(this.props,l,!1))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return a.prevIsAnimationActive!==r.isAnimationActive?{prevIsAnimationActive:r.isAnimationActive,prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:[],isAnimationFinished:!0}:r.isAnimationActive&&r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curSectors:r.sectors,prevSectors:a.curSectors,isAnimationFinished:!0}:r.sectors!==a.curSectors?{curSectors:r.sectors,isAnimationFinished:!0}:null}},{key:"getTextAnchor",value:function(r,a){return r>a?"start":r=360?E:E-1)*d,A=b-E*x-O,C=a.reduce(function(M,R){var L=In(R,N,0);return M+(Ee(L)?L:0)},0),k;if(C>0){var T;k=a.map(function(M,R){var L=In(M,N,0),D=In(M,m,R),U=(Ee(L)?L:0)/C,V;R?V=T.endAngle+Sr(w)*d*(L!==0?1:0):V=l;var H=V+Sr(w)*((L!==0?x:0)+U*A),G=(V+H)/2,$=(j.innerRadius+j.outerRadius)/2,I=[{name:D,value:L,payload:M,dataKey:N,type:g}],q=Jt(j.cx,j.cy,$,G);return T=Xt(Xt(Xt({percent:U,cornerRadius:s,name:D,tooltipPayload:I,midAngle:G,middleRadius:$,tooltipPosition:q},M),j),{},{value:In(M,N),startAngle:V,endAngle:H,payload:M,paddingAngle:Sr(w)*d}),T})}return Xt(Xt({},j),{},{sectors:k,data:a})});var MS,tI;function dfe(){if(tI)return MS;tI=1;var e=Math.ceil,t=Math.max;function n(r,a,s,l){for(var u=-1,d=t(e((a-r)/(s||1)),0),f=Array(d);d--;)f[l?d:++u]=r,r+=s;return f}return MS=n,MS}var PS,nI;function bq(){if(nI)return PS;nI=1;var e=FB(),t=1/0,n=17976931348623157e292;function r(a){if(!a)return a===0?a:0;if(a=e(a),a===t||a===-t){var s=a<0?-1:1;return s*n}return a===a?a:0}return PS=r,PS}var RS,rI;function ffe(){if(rI)return RS;rI=1;var e=dfe(),t=dy(),n=bq();function r(a){return function(s,l,u){return u&&typeof u!="number"&&t(s,l,u)&&(l=u=void 0),s=n(s),l===void 0?(l=s,s=0):l=n(l),u=u===void 0?s0&&r.handleDrag(a.changedTouches[0])}),Jr(r,"handleDragEnd",function(){r.setState({isTravellerMoving:!1,isSlideMoving:!1},function(){var a=r.props,s=a.endIndex,l=a.onDragEnd,u=a.startIndex;l?.({endIndex:s,startIndex:u})}),r.detachDragEndListener()}),Jr(r,"handleLeaveWrapper",function(){(r.state.isTravellerMoving||r.state.isSlideMoving)&&(r.leaveTimer=window.setTimeout(r.handleDragEnd,r.props.leaveTimeOut))}),Jr(r,"handleEnterSlideOrTraveller",function(){r.setState({isTextActive:!0})}),Jr(r,"handleLeaveSlideOrTraveller",function(){r.setState({isTextActive:!1})}),Jr(r,"handleSlideDragStart",function(a){var s=cI(a)?a.changedTouches[0]:a;r.setState({isTravellerMoving:!1,isSlideMoving:!0,slideMoveStartX:s.pageX}),r.attachDragEndListener()}),r.travellerDragStartHandlers={startX:r.handleTravellerDragStart.bind(r,"startX"),endX:r.handleTravellerDragStart.bind(r,"endX")},r.state={},r}return _fe(t,e),bfe(t,[{key:"componentWillUnmount",value:function(){this.leaveTimer&&(clearTimeout(this.leaveTimer),this.leaveTimer=null),this.detachDragEndListener()}},{key:"getIndex",value:function(r){var a=r.startX,s=r.endX,l=this.state.scaleValues,u=this.props,d=u.gap,f=u.data,m=f.length-1,p=Math.min(a,s),g=Math.max(a,s),x=t.getIndexInRange(l,p),j=t.getIndexInRange(l,g);return{startIndex:x-x%d,endIndex:j===m?m:j-j%d}}},{key:"getTextOfTick",value:function(r){var a=this.props,s=a.data,l=a.tickFormatter,u=a.dataKey,d=In(s[r],u,r);return Ye(l)?l(d,r):d}},{key:"attachDragEndListener",value:function(){window.addEventListener("mouseup",this.handleDragEnd,!0),window.addEventListener("touchend",this.handleDragEnd,!0),window.addEventListener("mousemove",this.handleDrag,!0)}},{key:"detachDragEndListener",value:function(){window.removeEventListener("mouseup",this.handleDragEnd,!0),window.removeEventListener("touchend",this.handleDragEnd,!0),window.removeEventListener("mousemove",this.handleDrag,!0)}},{key:"handleSlideDrag",value:function(r){var a=this.state,s=a.slideMoveStartX,l=a.startX,u=a.endX,d=this.props,f=d.x,m=d.width,p=d.travellerWidth,g=d.startIndex,x=d.endIndex,j=d.onChange,w=r.pageX-s;w>0?w=Math.min(w,f+m-p-u,f+m-p-l):w<0&&(w=Math.max(w,f-l,f-u));var b=this.getIndex({startX:l+w,endX:u+w});(b.startIndex!==g||b.endIndex!==x)&&j&&j(b),this.setState({startX:l+w,endX:u+w,slideMoveStartX:r.pageX})}},{key:"handleTravellerDragStart",value:function(r,a){var s=cI(a)?a.changedTouches[0]:a;this.setState({isSlideMoving:!1,isTravellerMoving:!0,movingTravellerId:r,brushMoveStartX:s.pageX}),this.attachDragEndListener()}},{key:"handleTravellerMove",value:function(r){var a=this.state,s=a.brushMoveStartX,l=a.movingTravellerId,u=a.endX,d=a.startX,f=this.state[l],m=this.props,p=m.x,g=m.width,x=m.travellerWidth,j=m.onChange,w=m.gap,b=m.data,N={startX:this.state.startX,endX:this.state.endX},E=r.pageX-s;E>0?E=Math.min(E,p+g-x-f):E<0&&(E=Math.max(E,p-f)),N[l]=f+E;var O=this.getIndex(N),A=O.startIndex,C=O.endIndex,k=function(){var M=b.length-1;return l==="startX"&&(u>d?A%w===0:C%w===0)||ud?C%w===0:A%w===0)||u>d&&C===M};this.setState(Jr(Jr({},l,f+E),"brushMoveStartX",r.pageX),function(){j&&k()&&j(O)})}},{key:"handleTravellerMoveKeyboard",value:function(r,a){var s=this,l=this.state,u=l.scaleValues,d=l.startX,f=l.endX,m=this.state[a],p=u.indexOf(m);if(p!==-1){var g=p+r;if(!(g===-1||g>=u.length)){var x=u[g];a==="startX"&&x>=f||a==="endX"&&x<=d||this.setState(Jr({},a,x),function(){s.props.onChange(s.getIndex({startX:s.state.startX,endX:s.state.endX}))})}}}},{key:"renderBackground",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.fill,f=r.stroke;return W.createElement("rect",{stroke:f,fill:d,x:a,y:s,width:l,height:u})}},{key:"renderPanorama",value:function(){var r=this.props,a=r.x,s=r.y,l=r.width,u=r.height,d=r.data,f=r.children,m=r.padding,p=y.Children.only(f);return p?W.cloneElement(p,{x:a,y:s,width:l,height:u,margin:m,compact:!0,data:d}):null}},{key:"renderTravellerLayer",value:function(r,a){var s,l,u=this,d=this.props,f=d.y,m=d.travellerWidth,p=d.height,g=d.traveller,x=d.ariaLabel,j=d.data,w=d.startIndex,b=d.endIndex,N=Math.max(r,this.props.x),E=$S($S({},qe(this.props,!1)),{},{x:N,y:f,width:m,height:p}),O=x||"Min value: ".concat((s=j[w])===null||s===void 0?void 0:s.name,", Max value: ").concat((l=j[b])===null||l===void 0?void 0:l.name);return W.createElement(Nt,{tabIndex:0,role:"slider","aria-label":O,"aria-valuenow":r,className:"recharts-brush-traveller",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.travellerDragStartHandlers[a],onTouchStart:this.travellerDragStartHandlers[a],onKeyDown:function(C){["ArrowLeft","ArrowRight"].includes(C.key)&&(C.preventDefault(),C.stopPropagation(),u.handleTravellerMoveKeyboard(C.key==="ArrowRight"?1:-1,a))},onFocus:function(){u.setState({isTravellerFocused:!0})},onBlur:function(){u.setState({isTravellerFocused:!1})},style:{cursor:"col-resize"}},t.renderTraveller(g,E))}},{key:"renderSlide",value:function(r,a){var s=this.props,l=s.y,u=s.height,d=s.stroke,f=s.travellerWidth,m=Math.min(r,a)+f,p=Math.max(Math.abs(a-r)-f,0);return W.createElement("rect",{className:"recharts-brush-slide",onMouseEnter:this.handleEnterSlideOrTraveller,onMouseLeave:this.handleLeaveSlideOrTraveller,onMouseDown:this.handleSlideDragStart,onTouchStart:this.handleSlideDragStart,style:{cursor:"move"},stroke:"none",fill:d,fillOpacity:.2,x:m,y:l,width:p,height:u})}},{key:"renderText",value:function(){var r=this.props,a=r.startIndex,s=r.endIndex,l=r.y,u=r.height,d=r.travellerWidth,f=r.stroke,m=this.state,p=m.startX,g=m.endX,x=5,j={pointerEvents:"none",fill:f};return W.createElement(Nt,{className:"recharts-brush-texts"},W.createElement(vl,vg({textAnchor:"end",verticalAnchor:"middle",x:Math.min(p,g)-x,y:l+u/2},j),this.getTextOfTick(a)),W.createElement(vl,vg({textAnchor:"start",verticalAnchor:"middle",x:Math.max(p,g)+d+x,y:l+u/2},j),this.getTextOfTick(s)))}},{key:"render",value:function(){var r=this.props,a=r.data,s=r.className,l=r.children,u=r.x,d=r.y,f=r.width,m=r.height,p=r.alwaysShowText,g=this.state,x=g.startX,j=g.endX,w=g.isTextActive,b=g.isSlideMoving,N=g.isTravellerMoving,E=g.isTravellerFocused;if(!a||!a.length||!Ee(u)||!Ee(d)||!Ee(f)||!Ee(m)||f<=0||m<=0)return null;var O=et("recharts-brush",s),A=W.Children.count(l)===1,C=yfe("userSelect","none");return W.createElement(Nt,{className:O,onMouseLeave:this.handleLeaveWrapper,onTouchMove:this.handleTouchMove,style:C},this.renderBackground(),A&&this.renderPanorama(),this.renderSlide(x,j),this.renderTravellerLayer(x,"startX"),this.renderTravellerLayer(j,"endX"),(w||b||N||E||p)&&this.renderText())}}],[{key:"renderDefaultTraveller",value:function(r){var a=r.x,s=r.y,l=r.width,u=r.height,d=r.stroke,f=Math.floor(s+u/2)-1;return W.createElement(W.Fragment,null,W.createElement("rect",{x:a,y:s,width:l,height:u,fill:d,stroke:"none"}),W.createElement("line",{x1:a+1,y1:f,x2:a+l-1,y2:f,fill:"none",stroke:"#fff"}),W.createElement("line",{x1:a+1,y1:f+2,x2:a+l-1,y2:f+2,fill:"none",stroke:"#fff"}))}},{key:"renderTraveller",value:function(r,a){var s;return W.isValidElement(r)?s=W.cloneElement(r,a):Ye(r)?s=r(a):s=t.renderDefaultTraveller(a),s}},{key:"getDerivedStateFromProps",value:function(r,a){var s=r.data,l=r.width,u=r.x,d=r.travellerWidth,f=r.updateId,m=r.startIndex,p=r.endIndex;if(s!==a.prevData||f!==a.prevUpdateId)return $S({prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l},s&&s.length?Cfe({data:s,width:l,x:u,travellerWidth:d,startIndex:m,endIndex:p}):{scale:null,scaleValues:null});if(a.scale&&(l!==a.prevWidth||u!==a.prevX||d!==a.prevTravellerWidth)){a.scale.range([u,u+l-d]);var g=a.scale.domain().map(function(x){return a.scale(x)});return{prevData:s,prevTravellerWidth:d,prevUpdateId:f,prevX:u,prevWidth:l,startX:a.scale(r.startIndex),endX:a.scale(r.endIndex),scaleValues:g}}return null}},{key:"getIndexInRange",value:function(r,a){for(var s=r.length,l=0,u=s-1;u-l>1;){var d=Math.floor((l+u)/2);r[d]>a?u=d:l=d}return a>=r[u]?u:l}}])})(y.PureComponent);Jr(ju,"displayName","Brush");Jr(ju,"defaultProps",{height:40,travellerWidth:5,gap:1,fill:"#fff",stroke:"#666",padding:{top:1,right:1,bottom:1,left:1},leaveTimeOut:1e3,alwaysShowText:!1});var IS,uI;function Ofe(){if(uI)return IS;uI=1;var e=xO();function t(n,r){var a;return e(n,function(s,l,u){return a=r(s,l,u),!a}),!!a}return IS=t,IS}var LS,dI;function Efe(){if(dI)return LS;dI=1;var e=xB(),t=Ci(),n=Ofe(),r=Ur(),a=dy();function s(l,u,d){var f=r(l)?e:n;return d&&a(l,u,d)&&(u=void 0),f(l,t(u,3))}return LS=s,LS}var Afe=Efe();const Tfe=Rt(Afe);var yi=function(t,n){var r=t.alwaysShow,a=t.ifOverflow;return r&&(a="extendDomain"),a===n},zS,fI;function kfe(){if(fI)return zS;fI=1;var e=IB();function t(n,r,a){r=="__proto__"&&e?e(n,r,{configurable:!0,enumerable:!0,value:a,writable:!0}):n[r]=a}return zS=t,zS}var BS,hI;function Mfe(){if(hI)return BS;hI=1;var e=kfe(),t=DB(),n=Ci();function r(a,s){var l={};return s=n(s,3),t(a,function(u,d,f){e(l,d,s(u,d,f))}),l}return BS=r,BS}var Pfe=Mfe();const Rfe=Rt(Pfe);var qS,mI;function Dfe(){if(mI)return qS;mI=1;function e(t,n){for(var r=-1,a=t==null?0:t.length;++r=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Hfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Wfe(e,t){var n=e.x,r=e.y,a=Ufe(e,zfe),s="".concat(n),l=parseInt(s,10),u="".concat(r),d=parseInt(u,10),f="".concat(t.height||a.height),m=parseInt(f,10),p="".concat(t.width||a.width),g=parseInt(p,10);return df(df(df(df(df({},t),a),l?{x:l}:{}),d?{y:d}:{}),{},{height:m,width:g,name:t.name,radius:t.radius})}function yI(e){return W.createElement(gq,kN({shapeType:"rectangle",propTransformer:Wfe,activeClassName:"recharts-active-bar"},e))}var Vfe=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return function(r,a){if(typeof t=="number")return t;var s=Ee(r)||pJ(r);return s?t(r,a):(s||vr(!1),n)}},Gfe=["value","background"],Nq;function Su(e){"@babel/helpers - typeof";return Su=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Su(e)}function Yfe(e,t){if(e==null)return{};var n=Kfe(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Kfe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function yg(){return yg=Object.assign?Object.assign.bind():function(e){for(var t=1;t0&&Math.abs(G)0&&Math.abs(H)0&&(V=Math.min((ie||0)-(H[Q-1]||0),V))}),Number.isFinite(V)){var G=V/U,$=w.layout==="vertical"?r.height:r.width;if(w.padding==="gap"&&(T=G*$/2),w.padding==="no-gap"){var I=_r(t.barCategoryGap,G*$),q=G*$/2;T=q-I-(q-I)/$*I}}}a==="xAxis"?M=[r.left+(O.left||0)+(T||0),r.left+r.width-(O.right||0)-(T||0)]:a==="yAxis"?M=d==="horizontal"?[r.top+r.height-(O.bottom||0),r.top+(O.top||0)]:[r.top+(O.top||0)+(T||0),r.top+r.height-(O.bottom||0)-(T||0)]:M=w.range,C&&(M=[M[1],M[0]]);var Z=K6(w,s,g),ee=Z.scale,F=Z.realScaleType;ee.domain(N).range(M),X6(ee);var z=Z6(ee,qa(qa({},w),{},{realScaleType:F}));a==="xAxis"?(D=b==="top"&&!A||b==="bottom"&&A,R=r.left,L=p[k]-D*w.height):a==="yAxis"&&(D=b==="left"&&!A||b==="right"&&A,R=p[k]-D*w.width,L=r.top);var K=qa(qa(qa({},w),z),{},{realScaleType:F,x:R,y:L,scale:ee,width:a==="xAxis"?r.width:w.width,height:a==="yAxis"?r.height:w.height});return K.bandSize=ng(K,z),!w.hide&&a==="xAxis"?p[k]+=(D?-1:1)*K.height:w.hide||(p[k]+=(D?-1:1)*K.width),qa(qa({},x),{},ky({},j,K))},{})},Tq=function(t,n){var r=t.x,a=t.y,s=n.x,l=n.y;return{x:Math.min(r,s),y:Math.min(a,l),width:Math.abs(s-r),height:Math.abs(l-a)}},she=function(t){var n=t.x1,r=t.y1,a=t.x2,s=t.y2;return Tq({x:n,y:r},{x:a,y:s})},kq=(function(){function e(t){rhe(this,e),this.scale=t}return ahe(e,[{key:"domain",get:function(){return this.scale.domain}},{key:"range",get:function(){return this.scale.range}},{key:"rangeMin",get:function(){return this.range()[0]}},{key:"rangeMax",get:function(){return this.range()[1]}},{key:"bandwidth",get:function(){return this.scale.bandwidth}},{key:"apply",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.bandAware,s=r.position;if(n!==void 0){if(s)switch(s){case"start":return this.scale(n);case"middle":{var l=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+l}case"end":{var u=this.bandwidth?this.bandwidth():0;return this.scale(n)+u}default:return this.scale(n)}if(a){var d=this.bandwidth?this.bandwidth()/2:0;return this.scale(n)+d}return this.scale(n)}}},{key:"isInRange",value:function(n){var r=this.range(),a=r[0],s=r[r.length-1];return a<=s?n>=a&&n<=s:n>=s&&n<=a}}],[{key:"create",value:function(n){return new e(n)}}])})();ky(kq,"EPS",1e-4);var YO=function(t){var n=Object.keys(t).reduce(function(r,a){return qa(qa({},r),{},ky({},a,kq.create(t[a])))},{});return qa(qa({},n),{},{apply:function(a){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=s.bandAware,u=s.position;return Rfe(a,function(d,f){return n[f].apply(d,{bandAware:l,position:u})})},isInRange:function(a){return _q(a,function(s,l){return n[l].isInRange(s)})}})};function ohe(e){return(e%180+180)%180}var lhe=function(t){var n=t.width,r=t.height,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=ohe(a),l=s*Math.PI/180,u=Math.atan(r/n),d=l>u&&l-1?d[f?s[m]:m]:void 0}}return HS=r,HS}var WS,_I;function uhe(){if(_I)return WS;_I=1;var e=bq();function t(n){var r=e(n),a=r%1;return r===r?a?r-a:r:0}return WS=t,WS}var VS,NI;function dhe(){if(NI)return VS;NI=1;var e=TB(),t=Ci(),n=uhe(),r=Math.max;function a(s,l,u){var d=s==null?0:s.length;if(!d)return-1;var f=u==null?0:n(u);return f<0&&(f=r(d+f,0)),e(s,t(l,3),f)}return VS=a,VS}var GS,CI;function fhe(){if(CI)return GS;CI=1;var e=che(),t=dhe(),n=e(t);return GS=n,GS}var hhe=fhe();const mhe=Rt(hhe);var phe=Vz();const vhe=Rt(phe);var ghe=vhe(function(e){return{x:e.left,y:e.top,width:e.width,height:e.height}},function(e){return["l",e.left,"t",e.top,"w",e.width,"h",e.height].join("")}),KO=y.createContext(void 0),XO=y.createContext(void 0),Mq=y.createContext(void 0),Pq=y.createContext({}),Rq=y.createContext(void 0),Dq=y.createContext(0),$q=y.createContext(0),OI=function(t){var n=t.state,r=n.xAxisMap,a=n.yAxisMap,s=n.offset,l=t.clipPathId,u=t.children,d=t.width,f=t.height,m=ghe(s);return W.createElement(KO.Provider,{value:r},W.createElement(XO.Provider,{value:a},W.createElement(Pq.Provider,{value:s},W.createElement(Mq.Provider,{value:m},W.createElement(Rq.Provider,{value:l},W.createElement(Dq.Provider,{value:f},W.createElement($q.Provider,{value:d},u)))))))},yhe=function(){return y.useContext(Rq)},Iq=function(t){var n=y.useContext(KO);n==null&&vr(!1);var r=n[t];return r==null&&vr(!1),r},xhe=function(){var t=y.useContext(KO);return Ks(t)},bhe=function(){var t=y.useContext(XO),n=mhe(t,function(r){return _q(r.domain,Number.isFinite)});return n||Ks(t)},Lq=function(t){var n=y.useContext(XO);n==null&&vr(!1);var r=n[t];return r==null&&vr(!1),r},whe=function(){var t=y.useContext(Mq);return t},jhe=function(){return y.useContext(Pq)},ZO=function(){return y.useContext($q)},QO=function(){return y.useContext(Dq)};function _u(e){"@babel/helpers - typeof";return _u=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_u(e)}function She(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _he(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne*a)return!1;var s=n();return e*(t-e*s/2-r)>=0&&e*(t+e*s/2-a)<=0}function ime(e,t){return Wq(e,t+1)}function sme(e,t,n,r,a){for(var s=(r||[]).slice(),l=t.start,u=t.end,d=0,f=1,m=l,p=function(){var j=r?.[d];if(j===void 0)return{v:Wq(r,f)};var w=d,b,N=function(){return b===void 0&&(b=n(j,w)),b},E=j.coordinate,O=d===0||Sg(e,E,N,m,u);O||(d=0,m=l,f+=1),O&&(m=E+e*(N()/2+a),d+=f)},g;f<=s.length;)if(g=p(),g)return g.v;return[]}function mh(e){"@babel/helpers - typeof";return mh=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mh(e)}function DI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function ur(e){for(var t=1;t0?x.coordinate-b*e:x.coordinate})}else s[g]=x=ur(ur({},x),{},{tickCoord:x.coordinate});var N=Sg(e,x.tickCoord,w,u,d);N&&(d=x.tickCoord-e*(w()/2+a),s[g]=ur(ur({},x),{},{isShow:!0}))},m=l-1;m>=0;m--)f(m);return s}function dme(e,t,n,r,a,s){var l=(r||[]).slice(),u=l.length,d=t.start,f=t.end;if(s){var m=r[u-1],p=n(m,u-1),g=e*(m.coordinate+e*p/2-f);l[u-1]=m=ur(ur({},m),{},{tickCoord:g>0?m.coordinate-g*e:m.coordinate});var x=Sg(e,m.tickCoord,function(){return p},d,f);x&&(f=m.tickCoord-e*(p/2+a),l[u-1]=ur(ur({},m),{},{isShow:!0}))}for(var j=s?u-1:u,w=function(E){var O=l[E],A,C=function(){return A===void 0&&(A=n(O,E)),A};if(E===0){var k=e*(O.coordinate-e*C()/2-d);l[E]=O=ur(ur({},O),{},{tickCoord:k<0?O.coordinate-k*e:O.coordinate})}else l[E]=O=ur(ur({},O),{},{tickCoord:O.coordinate});var T=Sg(e,O.tickCoord,C,d,f);T&&(d=O.tickCoord+e*(C()/2+a),l[E]=ur(ur({},O),{},{isShow:!0}))},b=0;b=2?Sr(a[1].coordinate-a[0].coordinate):1,N=ame(s,b,x);return d==="equidistantPreserveStart"?sme(b,N,w,a,l):(d==="preserveStart"||d==="preserveStartEnd"?g=dme(b,N,w,a,l,d==="preserveStartEnd"):g=ume(b,N,w,a,l),g.filter(function(E){return E.isShow}))}var fme=["viewBox"],hme=["viewBox"],mme=["ticks"];function Ou(e){"@babel/helpers - typeof";return Ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ou(e)}function Wc(){return Wc=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function pme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function vme(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function II(e,t){for(var n=0;n0?d(this.props):d(x)),l<=0||u<=0||!j||!j.length?null:W.createElement(Nt,{className:et("recharts-cartesian-axis",f),ref:function(b){r.layerReference=b}},s&&this.renderAxisLine(),this.renderTicks(j,this.state.fontSize,this.state.letterSpacing),Vn.renderCallByParent(this.props))}}],[{key:"renderTickItem",value:function(r,a,s){var l,u=et(a.className,"recharts-cartesian-axis-tick-value");return W.isValidElement(r)?l=W.cloneElement(r,Dn(Dn({},a),{},{className:u})):Ye(r)?l=r(Dn(Dn({},a),{},{className:u})):l=W.createElement(vl,Wc({},a,{className:"recharts-cartesian-axis-tick-value"}),s),l}}])})(y.Component);nE(Zu,"displayName","CartesianAxis");nE(Zu,"defaultProps",{x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd"});var Sme=["x1","y1","x2","y2","key"],_me=["offset"];function yl(e){"@babel/helpers - typeof";return yl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},yl(e)}function LI(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function fr(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Eme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}var Ame=function(t){var n=t.fill;if(!n||n==="none")return null;var r=t.fillOpacity,a=t.x,s=t.y,l=t.width,u=t.height,d=t.ry;return W.createElement("rect",{x:a,y:s,ry:d,width:l,height:u,stroke:"none",fill:n,fillOpacity:r,className:"recharts-cartesian-grid-bg"})};function Yq(e,t){var n;if(W.isValidElement(e))n=W.cloneElement(e,t);else if(Ye(e))n=e(t);else{var r=t.x1,a=t.y1,s=t.x2,l=t.y2,u=t.key,d=zI(t,Sme),f=qe(d,!1);f.offset;var m=zI(f,_me);n=W.createElement("line",el({},m,{x1:r,y1:a,x2:s,y2:l,fill:"none",key:u}))}return n}function Tme(e){var t=e.x,n=e.width,r=e.horizontal,a=r===void 0?!0:r,s=e.horizontalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:t,y1:u,x2:t+n,y2:u,key:"line-".concat(d),index:d});return Yq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function kme(e){var t=e.y,n=e.height,r=e.vertical,a=r===void 0?!0:r,s=e.verticalPoints;if(!a||!s||!s.length)return null;var l=s.map(function(u,d){var f=fr(fr({},e),{},{x1:u,y1:t,x2:u,y2:t+n,key:"line-".concat(d),index:d});return Yq(a,f)});return W.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Mme(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,a=e.y,s=e.width,l=e.height,u=e.horizontalPoints,d=e.horizontal,f=d===void 0?!0:d;if(!f||!t||!t.length)return null;var m=u.map(function(g){return Math.round(g+a-a)}).sort(function(g,x){return g-x});a!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?a+l-g:m[x+1]-g;if(w<=0)return null;var b=x%t.length;return W.createElement("rect",{key:"react-".concat(x),y:g,x:r,height:w,width:s,stroke:"none",fill:t[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function Pme(e){var t=e.vertical,n=t===void 0?!0:t,r=e.verticalFill,a=e.fillOpacity,s=e.x,l=e.y,u=e.width,d=e.height,f=e.verticalPoints;if(!n||!r||!r.length)return null;var m=f.map(function(g){return Math.round(g+s-s)}).sort(function(g,x){return g-x});s!==m[0]&&m.unshift(0);var p=m.map(function(g,x){var j=!m[x+1],w=j?s+u-g:m[x+1]-g;if(w<=0)return null;var b=x%r.length;return W.createElement("rect",{key:"react-".concat(x),x:g,y:l,width:w,height:d,stroke:"none",fill:r[b],fillOpacity:a,className:"recharts-cartesian-grid-bg"})});return W.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Rme=function(t,n){var r=t.xAxis,a=t.width,s=t.height,l=t.offset;return Y6(tE(fr(fr(fr({},Zu.defaultProps),r),{},{ticks:es(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.left,l.left+l.width,n)},Dme=function(t,n){var r=t.yAxis,a=t.width,s=t.height,l=t.offset;return Y6(tE(fr(fr(fr({},Zu.defaultProps),r),{},{ticks:es(r,!0),viewBox:{x:0,y:0,width:a,height:s}})),l.top,l.top+l.height,n)},Ec={horizontal:!0,vertical:!0,stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[]};function yf(e){var t,n,r,a,s,l,u=ZO(),d=QO(),f=jhe(),m=fr(fr({},e),{},{stroke:(t=e.stroke)!==null&&t!==void 0?t:Ec.stroke,fill:(n=e.fill)!==null&&n!==void 0?n:Ec.fill,horizontal:(r=e.horizontal)!==null&&r!==void 0?r:Ec.horizontal,horizontalFill:(a=e.horizontalFill)!==null&&a!==void 0?a:Ec.horizontalFill,vertical:(s=e.vertical)!==null&&s!==void 0?s:Ec.vertical,verticalFill:(l=e.verticalFill)!==null&&l!==void 0?l:Ec.verticalFill,x:Ee(e.x)?e.x:f.left,y:Ee(e.y)?e.y:f.top,width:Ee(e.width)?e.width:f.width,height:Ee(e.height)?e.height:f.height}),p=m.x,g=m.y,x=m.width,j=m.height,w=m.syncWithTicks,b=m.horizontalValues,N=m.verticalValues,E=xhe(),O=bhe();if(!Ee(x)||x<=0||!Ee(j)||j<=0||!Ee(p)||p!==+p||!Ee(g)||g!==+g)return null;var A=m.verticalCoordinatesGenerator||Rme,C=m.horizontalCoordinatesGenerator||Dme,k=m.horizontalPoints,T=m.verticalPoints;if((!k||!k.length)&&Ye(C)){var M=b&&b.length,R=C({yAxis:O?fr(fr({},O),{},{ticks:M?b:O.ticks}):void 0,width:u,height:d,offset:f},M?!0:w);Va(Array.isArray(R),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(yl(R),"]")),Array.isArray(R)&&(k=R)}if((!T||!T.length)&&Ye(A)){var L=N&&N.length,D=A({xAxis:E?fr(fr({},E),{},{ticks:L?N:E.ticks}):void 0,width:u,height:d,offset:f},L?!0:w);Va(Array.isArray(D),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(yl(D),"]")),Array.isArray(D)&&(T=D)}return W.createElement("g",{className:"recharts-cartesian-grid"},W.createElement(Ame,{fill:m.fill,fillOpacity:m.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),W.createElement(Tme,el({},m,{offset:f,horizontalPoints:k,xAxis:E,yAxis:O})),W.createElement(kme,el({},m,{offset:f,verticalPoints:T,xAxis:E,yAxis:O})),W.createElement(Mme,el({},m,{horizontalPoints:k})),W.createElement(Pme,el({},m,{verticalPoints:T})))}yf.displayName="CartesianGrid";var $me=["type","layout","connectNulls","ref"],Ime=["key"];function Eu(e){"@babel/helpers - typeof";return Eu=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Eu(e)}function BI(e,t){if(e==null)return{};var n=Lme(e,t),r,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lme(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function Mf(){return Mf=Object.assign?Object.assign.bind():function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);np){x=[].concat(Ac(d.slice(0,j)),[p-w]);break}var b=x.length%2===0?[0,g]:[g];return[].concat(Ac(t.repeat(d,m)),Ac(x),b).map(function(N){return"".concat(N,"px")}).join(", ")}),Fa(n,"id",Vu("recharts-line-")),Fa(n,"pathRef",function(l){n.mainCurve=l}),Fa(n,"handleAnimationEnd",function(){n.setState({isAnimationFinished:!0}),n.props.onAnimationEnd&&n.props.onAnimationEnd()}),Fa(n,"handleAnimationStart",function(){n.setState({isAnimationFinished:!1}),n.props.onAnimationStart&&n.props.onAnimationStart()}),n}return Yme(t,e),Hme(t,[{key:"componentDidMount",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();this.setState({totalLength:r})}}},{key:"componentDidUpdate",value:function(){if(this.props.isAnimationActive){var r=this.getTotalLength();r!==this.state.totalLength&&this.setState({totalLength:r})}}},{key:"getTotalLength",value:function(){var r=this.mainCurve;try{return r&&r.getTotalLength&&r.getTotalLength()||0}catch{return 0}}},{key:"renderErrorBar",value:function(r,a){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var s=this.props,l=s.points,u=s.xAxis,d=s.yAxis,f=s.layout,m=s.children,p=oa(m,Vh);if(!p)return null;var g=function(w,b){return{x:w.x,y:w.y,value:w.value,errorVal:In(w.payload,b)}},x={clipPath:r?"url(#clipPath-".concat(a,")"):null};return W.createElement(Nt,x,p.map(function(j){return W.cloneElement(j,{key:"bar-".concat(j.props.dataKey),data:l,xAxis:u,yAxis:d,layout:f,dataPointFormatter:g})}))}},{key:"renderDots",value:function(r,a,s){var l=this.props.isAnimationActive;if(l&&!this.state.isAnimationFinished)return null;var u=this.props,d=u.dot,f=u.points,m=u.dataKey,p=qe(this.props,!1),g=qe(d,!0),x=f.map(function(w,b){var N=Qr(Qr(Qr({key:"dot-".concat(b),r:3},p),g),{},{index:b,cx:w.x,cy:w.y,value:w.value,dataKey:m,payload:w.payload,points:f});return t.renderDotItem(d,N)}),j={clipPath:r?"url(#clipPath-".concat(a?"":"dots-").concat(s,")"):null};return W.createElement(Nt,Mf({className:"recharts-line-dots",key:"dots"},j),x)}},{key:"renderCurveStatically",value:function(r,a,s,l){var u=this.props,d=u.type,f=u.layout,m=u.connectNulls;u.ref;var p=BI(u,$me),g=Qr(Qr(Qr({},qe(p,!0)),{},{fill:"none",className:"recharts-line-curve",clipPath:a?"url(#clipPath-".concat(s,")"):null,points:r},l),{},{type:d,layout:f,connectNulls:m});return W.createElement(ig,Mf({},g,{pathRef:this.pathRef}))}},{key:"renderCurveWithAnimation",value:function(r,a){var s=this,l=this.props,u=l.points,d=l.strokeDasharray,f=l.isAnimationActive,m=l.animationBegin,p=l.animationDuration,g=l.animationEasing,x=l.animationId,j=l.animateNewValues,w=l.width,b=l.height,N=this.state,E=N.prevPoints,O=N.totalLength;return W.createElement(ji,{begin:m,duration:p,isActive:f,easing:g,from:{t:0},to:{t:1},key:"line-".concat(x),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(A){var C=A.t;if(E){var k=E.length/u.length,T=u.map(function(U,V){var H=Math.floor(V*k);if(E[H]){var G=E[H],$=ra(G.x,U.x),I=ra(G.y,U.y);return Qr(Qr({},U),{},{x:$(C),y:I(C)})}if(j){var q=ra(w*2,U.x),Z=ra(b/2,U.y);return Qr(Qr({},U),{},{x:q(C),y:Z(C)})}return Qr(Qr({},U),{},{x:U.x,y:U.y})});return s.renderCurveStatically(T,r,a)}var M=ra(0,O),R=M(C),L;if(d){var D="".concat(d).split(/[,\s]+/gim).map(function(U){return parseFloat(U)});L=s.getStrokeDasharray(R,O,D)}else L=s.generateSimpleStrokeDasharray(O,R);return s.renderCurveStatically(u,r,a,{strokeDasharray:L})})}},{key:"renderCurve",value:function(r,a){var s=this.props,l=s.points,u=s.isAnimationActive,d=this.state,f=d.prevPoints,m=d.totalLength;return u&&l&&l.length&&(!f&&m>0||!Wh(f,l))?this.renderCurveWithAnimation(r,a):this.renderCurveStatically(l,r,a)}},{key:"render",value:function(){var r,a=this.props,s=a.hide,l=a.dot,u=a.points,d=a.className,f=a.xAxis,m=a.yAxis,p=a.top,g=a.left,x=a.width,j=a.height,w=a.isAnimationActive,b=a.id;if(s||!u||!u.length)return null;var N=this.state.isAnimationFinished,E=u.length===1,O=et("recharts-line",d),A=f&&f.allowDataOverflow,C=m&&m.allowDataOverflow,k=A||C,T=Je(b)?this.id:b,M=(r=qe(l,!1))!==null&&r!==void 0?r:{r:3,strokeWidth:2},R=M.r,L=R===void 0?3:R,D=M.strokeWidth,U=D===void 0?2:D,V=OJ(l)?l:{},H=V.clipDot,G=H===void 0?!0:H,$=L*2+U;return W.createElement(Nt,{className:O},A||C?W.createElement("defs",null,W.createElement("clipPath",{id:"clipPath-".concat(T)},W.createElement("rect",{x:A?g:g-x/2,y:C?p:p-j/2,width:A?x:x*2,height:C?j:j*2})),!G&&W.createElement("clipPath",{id:"clipPath-dots-".concat(T)},W.createElement("rect",{x:g-$/2,y:p-$/2,width:x+$,height:j+$}))):null,!E&&this.renderCurve(k,T),this.renderErrorBar(k,T),(E||l)&&this.renderDots(k,G,T),(!w||N)&&ss.renderCallByParent(this.props,u))}}],[{key:"getDerivedStateFromProps",value:function(r,a){return r.animationId!==a.prevAnimationId?{prevAnimationId:r.animationId,curPoints:r.points,prevPoints:a.curPoints}:r.points!==a.curPoints?{curPoints:r.points}:null}},{key:"repeat",value:function(r,a){for(var s=r.length%2!==0?[].concat(Ac(r),[0]):r,l=[],u=0;ue.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Lpe(e,t){if(e==null)return{};var n={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(t.indexOf(r)>=0)continue;n[r]=e[r]}return n}function zpe(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Bpe(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0?l:t&&t.length&&Ee(a)&&Ee(s)?t.slice(a,s+1):[]};function c8(e){return e==="number"?[0,"auto"]:void 0}var XN=function(t,n,r,a){var s=t.graphicalItems,l=t.tooltipAxis,u=$y(n,t);return r<0||!s||!s.length||r>=u.length?null:s.reduce(function(d,f){var m,p=(m=f.props.data)!==null&&m!==void 0?m:n;p&&t.dataStartIndex+t.dataEndIndex!==0&&t.dataEndIndex-t.dataStartIndex>=r&&(p=p.slice(t.dataStartIndex,t.dataEndIndex+1));var g;if(l.dataKey&&!l.allowDuplicatedCategory){var x=p===void 0?u:p;g=kv(x,l.dataKey,a)}else g=p&&p[r]||u[r];return g?[].concat(Mu(d),[J6(f,g)]):d},[])},KI=function(t,n,r,a){var s=a||{x:t.chartX,y:t.chartY},l=Qpe(s,r),u=t.orderedTooltipTicks,d=t.tooltipAxis,f=t.tooltipTicks,m=_oe(l,u,f,d);if(m>=0&&f){var p=f[m]&&f[m].value,g=XN(t,n,m,p),x=Jpe(r,u,m,s);return{activeTooltipIndex:m,activeLabel:p,activePayload:g,activeCoordinate:x}}return null},eve=function(t,n){var r=n.axes,a=n.graphicalItems,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=t.stackOffset,x=G6(m,s);return r.reduce(function(j,w){var b,N=w.type.defaultProps!==void 0?ge(ge({},w.type.defaultProps),w.props):w.props,E=N.type,O=N.dataKey,A=N.allowDataOverflow,C=N.allowDuplicatedCategory,k=N.scale,T=N.ticks,M=N.includeHidden,R=N[l];if(j[R])return j;var L=$y(t.data,{graphicalItems:a.filter(function(z){var K,ie=l in z.props?z.props[l]:(K=z.type.defaultProps)===null||K===void 0?void 0:K[l];return ie===R}),dataStartIndex:d,dataEndIndex:f}),D=L.length,U,V,H;Cpe(N.domain,A,E)&&(U=uN(N.domain,null,A),x&&(E==="number"||k!=="auto")&&(H=Ef(L,O,"category")));var G=c8(E);if(!U||U.length===0){var $,I=($=N.domain)!==null&&$!==void 0?$:G;if(O){if(U=Ef(L,O,E),E==="category"&&x){var q=gJ(U);C&&q?(V=U,U=pg(0,D)):C||(U=Y3(I,U,w).reduce(function(z,K){return z.indexOf(K)>=0?z:[].concat(Mu(z),[K])},[]))}else if(E==="category")C?U=U.filter(function(z){return z!==""&&!Je(z)}):U=Y3(I,U,w).reduce(function(z,K){return z.indexOf(K)>=0||K===""||Je(K)?z:[].concat(Mu(z),[K])},[]);else if(E==="number"){var Z=Aoe(L,a.filter(function(z){var K,ie,Q=l in z.props?z.props[l]:(K=z.type.defaultProps)===null||K===void 0?void 0:K[l],he="hide"in z.props?z.props.hide:(ie=z.type.defaultProps)===null||ie===void 0?void 0:ie.hide;return Q===R&&(M||!he)}),O,s,m);Z&&(U=Z)}x&&(E==="number"||k!=="auto")&&(H=Ef(L,O,"category"))}else x?U=pg(0,D):u&&u[R]&&u[R].hasStack&&E==="number"?U=g==="expand"?[0,1]:Q6(u[R].stackGroups,d,f):U=V6(L,a.filter(function(z){var K=l in z.props?z.props[l]:z.type.defaultProps[l],ie="hide"in z.props?z.props.hide:z.type.defaultProps.hide;return K===R&&(M||!ie)}),E,m,!0);if(E==="number")U=GN(p,U,R,s,T),I&&(U=uN(I,U,A));else if(E==="category"&&I){var ee=I,F=U.every(function(z){return ee.indexOf(z)>=0});F&&(U=ee)}}return ge(ge({},j),{},He({},R,ge(ge({},N),{},{axisType:s,domain:U,categoricalDomain:H,duplicateDomain:V,originalDomain:(b=N.domain)!==null&&b!==void 0?b:G,isCategorical:x,layout:m})))},{})},tve=function(t,n){var r=n.graphicalItems,a=n.Axis,s=n.axisType,l=n.axisIdKey,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.layout,p=t.children,g=$y(t.data,{graphicalItems:r,dataStartIndex:d,dataEndIndex:f}),x=g.length,j=G6(m,s),w=-1;return r.reduce(function(b,N){var E=N.type.defaultProps!==void 0?ge(ge({},N.type.defaultProps),N.props):N.props,O=E[l],A=c8("number");if(!b[O]){w++;var C;return j?C=pg(0,x):u&&u[O]&&u[O].hasStack?(C=Q6(u[O].stackGroups,d,f),C=GN(p,C,O,s)):(C=uN(A,V6(g,r.filter(function(k){var T,M,R=l in k.props?k.props[l]:(T=k.type.defaultProps)===null||T===void 0?void 0:T[l],L="hide"in k.props?k.props.hide:(M=k.type.defaultProps)===null||M===void 0?void 0:M.hide;return R===O&&!L}),"number",m),a.defaultProps.allowDataOverflow),C=GN(p,C,O,s)),ge(ge({},b),{},He({},O,ge(ge({axisType:s},a.defaultProps),{},{hide:!0,orientation:sa(Xpe,"".concat(s,".").concat(w%2),null),domain:C,originalDomain:A,isCategorical:j,layout:m})))}return b},{})},nve=function(t,n){var r=n.axisType,a=r===void 0?"xAxis":r,s=n.AxisComp,l=n.graphicalItems,u=n.stackGroups,d=n.dataStartIndex,f=n.dataEndIndex,m=t.children,p="".concat(a,"Id"),g=oa(m,s),x={};return g&&g.length?x=eve(t,{axes:g,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f}):l&&l.length&&(x=tve(t,{Axis:s,graphicalItems:l,axisType:a,axisIdKey:p,stackGroups:u,dataStartIndex:d,dataEndIndex:f})),x},rve=function(t){var n=Ks(t),r=es(n,!1,!0);return{tooltipTicks:r,orderedTooltipTicks:bO(r,function(a){return a.coordinate}),tooltipAxis:n,tooltipAxisBandSize:ng(n,r)}},XI=function(t){var n=t.children,r=t.defaultShowTooltip,a=ea(n,ju),s=0,l=0;return t.data&&t.data.length!==0&&(l=t.data.length-1),a&&a.props&&(a.props.startIndex>=0&&(s=a.props.startIndex),a.props.endIndex>=0&&(l=a.props.endIndex)),{chartX:0,chartY:0,dataStartIndex:s,dataEndIndex:l,activeTooltipIndex:-1,isTooltipActive:!!r}},ave=function(t){return!t||!t.length?!1:t.some(function(n){var r=as(n&&n.type);return r&&r.indexOf("Bar")>=0})},ZI=function(t){return t==="horizontal"?{numericAxisName:"yAxis",cateAxisName:"xAxis"}:t==="vertical"?{numericAxisName:"xAxis",cateAxisName:"yAxis"}:t==="centric"?{numericAxisName:"radiusAxis",cateAxisName:"angleAxis"}:{numericAxisName:"angleAxis",cateAxisName:"radiusAxis"}},ive=function(t,n){var r=t.props,a=t.graphicalItems,s=t.xAxisMap,l=s===void 0?{}:s,u=t.yAxisMap,d=u===void 0?{}:u,f=r.width,m=r.height,p=r.children,g=r.margin||{},x=ea(p,ju),j=ea(p,sl),w=Object.keys(d).reduce(function(C,k){var T=d[k],M=T.orientation;return!T.mirror&&!T.hide?ge(ge({},C),{},He({},M,C[M]+T.width)):C},{left:g.left||0,right:g.right||0}),b=Object.keys(l).reduce(function(C,k){var T=l[k],M=T.orientation;return!T.mirror&&!T.hide?ge(ge({},C),{},He({},M,sa(C,"".concat(M))+T.height)):C},{top:g.top||0,bottom:g.bottom||0}),N=ge(ge({},b),w),E=N.bottom;x&&(N.bottom+=x.props.height||ju.defaultProps.height),j&&n&&(N=Ooe(N,a,r,n));var O=f-N.left-N.right,A=m-N.top-N.bottom;return ge(ge({brushBottom:E},N),{},{width:Math.max(O,0),height:Math.max(A,0)})},sve=function(t,n){if(n==="xAxis")return t[n].width;if(n==="yAxis")return t[n].height},rE=function(t){var n=t.chartName,r=t.GraphicalChild,a=t.defaultTooltipEventType,s=a===void 0?"axis":a,l=t.validateTooltipEventTypes,u=l===void 0?["axis"]:l,d=t.axisComponents,f=t.legendContent,m=t.formatAxisMap,p=t.defaultProps,g=function(N,E){var O=E.graphicalItems,A=E.stackGroups,C=E.offset,k=E.updateId,T=E.dataStartIndex,M=E.dataEndIndex,R=N.barSize,L=N.layout,D=N.barGap,U=N.barCategoryGap,V=N.maxBarSize,H=ZI(L),G=H.numericAxisName,$=H.cateAxisName,I=ave(O),q=[];return O.forEach(function(Z,ee){var F=$y(N.data,{graphicalItems:[Z],dataStartIndex:T,dataEndIndex:M}),z=Z.type.defaultProps!==void 0?ge(ge({},Z.type.defaultProps),Z.props):Z.props,K=z.dataKey,ie=z.maxBarSize,Q=z["".concat(G,"Id")],he=z["".concat($,"Id")],ae={},we=d.reduce(function(Tt,zt){var at=E["".concat(zt.axisType,"Map")],re=z["".concat(zt.axisType,"Id")];at&&at[re]||zt.axisType==="zAxis"||vr(!1);var Se=at[re];return ge(ge({},Tt),{},He(He({},zt.axisType,Se),"".concat(zt.axisType,"Ticks"),es(Se)))},ae),Y=we[$],pe=we["".concat($,"Ticks")],je=A&&A[Q]&&A[Q].hasStack&&Loe(Z,A[Q].stackGroups),X=as(Z.type).indexOf("Bar")>=0,Ae=ng(Y,pe),Oe=[],We=I&&Noe({barSize:R,stackGroups:A,totalSize:sve(we,$)});if(X){var Ve,be,_e=Je(ie)?V:ie,rt=(Ve=(be=ng(Y,pe,!0))!==null&&be!==void 0?be:_e)!==null&&Ve!==void 0?Ve:0;Oe=Coe({barGap:D,barCategoryGap:U,bandSize:rt!==Ae?rt:Ae,sizeList:We[he],maxBarSize:_e}),rt!==Ae&&(Oe=Oe.map(function(Tt){return ge(ge({},Tt),{},{position:ge(ge({},Tt.position),{},{offset:Tt.position.offset-rt/2})})}))}var fn=Z&&Z.type&&Z.type.getComposedData;fn&&q.push({props:ge(ge({},fn(ge(ge({},we),{},{displayedData:F,props:N,dataKey:K,item:Z,bandSize:Ae,barPosition:Oe,offset:C,stackedData:je,layout:L,dataStartIndex:T,dataEndIndex:M}))),{},He(He(He({key:Z.key||"item-".concat(ee)},G,we[G]),$,we[$]),"animationId",k)),childIndex:TJ(Z,N.children),item:Z})}),q},x=function(N,E){var O=N.props,A=N.dataStartIndex,C=N.dataEndIndex,k=N.updateId;if(!lR({props:O}))return null;var T=O.children,M=O.layout,R=O.stackOffset,L=O.data,D=O.reverseStackOrder,U=ZI(M),V=U.numericAxisName,H=U.cateAxisName,G=oa(T,r),$=$oe(L,G,"".concat(V,"Id"),"".concat(H,"Id"),R,D),I=d.reduce(function(z,K){var ie="".concat(K.axisType,"Map");return ge(ge({},z),{},He({},ie,nve(O,ge(ge({},K),{},{graphicalItems:G,stackGroups:K.axisType===V&&$,dataStartIndex:A,dataEndIndex:C}))))},{}),q=ive(ge(ge({},I),{},{props:O,graphicalItems:G}),E?.legendBBox);Object.keys(I).forEach(function(z){I[z]=m(O,I[z],q,z.replace("Map",""),n)});var Z=I["".concat(H,"Map")],ee=rve(Z),F=g(O,ge(ge({},I),{},{dataStartIndex:A,dataEndIndex:C,updateId:k,graphicalItems:G,stackGroups:$,offset:q}));return ge(ge({formattedGraphicalItems:F,graphicalItems:G,offset:q,stackGroups:$},ee),I)},j=(function(b){function N(E){var O,A,C;return zpe(this,N),C=Fpe(this,N,[E]),He(C,"eventEmitterSymbol",Symbol("rechartsEventEmitter")),He(C,"accessibilityManager",new Npe),He(C,"handleLegendBBoxUpdate",function(k){if(k){var T=C.state,M=T.dataStartIndex,R=T.dataEndIndex,L=T.updateId;C.setState(ge({legendBBox:k},x({props:C.props,dataStartIndex:M,dataEndIndex:R,updateId:L},ge(ge({},C.state),{},{legendBBox:k}))))}}),He(C,"handleReceiveSyncEvent",function(k,T,M){if(C.props.syncId===k){if(M===C.eventEmitterSymbol&&typeof C.props.syncMethod!="function")return;C.applySyncEvent(T)}}),He(C,"handleBrushChange",function(k){var T=k.startIndex,M=k.endIndex;if(T!==C.state.dataStartIndex||M!==C.state.dataEndIndex){var R=C.state.updateId;C.setState(function(){return ge({dataStartIndex:T,dataEndIndex:M},x({props:C.props,dataStartIndex:T,dataEndIndex:M,updateId:R},C.state))}),C.triggerSyncEvent({dataStartIndex:T,dataEndIndex:M})}}),He(C,"handleMouseEnter",function(k){var T=C.getMouseInfo(k);if(T){var M=ge(ge({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseEnter;Ye(R)&&R(M,k)}}),He(C,"triggeredAfterMouseMove",function(k){var T=C.getMouseInfo(k),M=T?ge(ge({},T),{},{isTooltipActive:!0}):{isTooltipActive:!1};C.setState(M),C.triggerSyncEvent(M);var R=C.props.onMouseMove;Ye(R)&&R(M,k)}),He(C,"handleItemMouseEnter",function(k){C.setState(function(){return{isTooltipActive:!0,activeItem:k,activePayload:k.tooltipPayload,activeCoordinate:k.tooltipPosition||{x:k.cx,y:k.cy}}})}),He(C,"handleItemMouseLeave",function(){C.setState(function(){return{isTooltipActive:!1}})}),He(C,"handleMouseMove",function(k){k.persist(),C.throttleTriggeredAfterMouseMove(k)}),He(C,"handleMouseLeave",function(k){C.throttleTriggeredAfterMouseMove.cancel();var T={isTooltipActive:!1};C.setState(T),C.triggerSyncEvent(T);var M=C.props.onMouseLeave;Ye(M)&&M(T,k)}),He(C,"handleOuterEvent",function(k){var T=AJ(k),M=sa(C.props,"".concat(T));if(T&&Ye(M)){var R,L;/.*touch.*/i.test(T)?L=C.getMouseInfo(k.changedTouches[0]):L=C.getMouseInfo(k),M((R=L)!==null&&R!==void 0?R:{},k)}}),He(C,"handleClick",function(k){var T=C.getMouseInfo(k);if(T){var M=ge(ge({},T),{},{isTooltipActive:!0});C.setState(M),C.triggerSyncEvent(M);var R=C.props.onClick;Ye(R)&&R(M,k)}}),He(C,"handleMouseDown",function(k){var T=C.props.onMouseDown;if(Ye(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleMouseUp",function(k){var T=C.props.onMouseUp;if(Ye(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleTouchMove",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.throttleTriggeredAfterMouseMove(k.changedTouches[0])}),He(C,"handleTouchStart",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseDown(k.changedTouches[0])}),He(C,"handleTouchEnd",function(k){k.changedTouches!=null&&k.changedTouches.length>0&&C.handleMouseUp(k.changedTouches[0])}),He(C,"handleDoubleClick",function(k){var T=C.props.onDoubleClick;if(Ye(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"handleContextMenu",function(k){var T=C.props.onContextMenu;if(Ye(T)){var M=C.getMouseInfo(k);T(M,k)}}),He(C,"triggerSyncEvent",function(k){C.props.syncId!==void 0&&XS.emit(ZS,C.props.syncId,k,C.eventEmitterSymbol)}),He(C,"applySyncEvent",function(k){var T=C.props,M=T.layout,R=T.syncMethod,L=C.state.updateId,D=k.dataStartIndex,U=k.dataEndIndex;if(k.dataStartIndex!==void 0||k.dataEndIndex!==void 0)C.setState(ge({dataStartIndex:D,dataEndIndex:U},x({props:C.props,dataStartIndex:D,dataEndIndex:U,updateId:L},C.state)));else if(k.activeTooltipIndex!==void 0){var V=k.chartX,H=k.chartY,G=k.activeTooltipIndex,$=C.state,I=$.offset,q=$.tooltipTicks;if(!I)return;if(typeof R=="function")G=R(q,k);else if(R==="value"){G=-1;for(var Z=0;Z=0){var je,X;if(V.dataKey&&!V.allowDuplicatedCategory){var Ae=typeof V.dataKey=="function"?pe:"payload.".concat(V.dataKey.toString());je=kv(Z,Ae,G),X=ee&&F&&kv(F,Ae,G)}else je=Z?.[H],X=ee&&F&&F[H];if(he||Q){var Oe=k.props.activeIndex!==void 0?k.props.activeIndex:H;return[y.cloneElement(k,ge(ge(ge({},R.props),we),{},{activeIndex:Oe})),null,null]}if(!Je(je))return[Y].concat(Mu(C.renderActivePoints({item:R,activePoint:je,basePoint:X,childIndex:H,isRange:ee})))}else{var We,Ve=(We=C.getItemByXY(C.state.activeCoordinate))!==null&&We!==void 0?We:{graphicalItem:Y},be=Ve.graphicalItem,_e=be.item,rt=_e===void 0?k:_e,fn=be.childIndex,Tt=ge(ge(ge({},R.props),we),{},{activeIndex:fn});return[y.cloneElement(rt,Tt),null,null]}return ee?[Y,null,null]:[Y,null]}),He(C,"renderCustomized",function(k,T,M){return y.cloneElement(k,ge(ge({key:"recharts-customized-".concat(M)},C.props),C.state))}),He(C,"renderMap",{CartesianGrid:{handler:Yp,once:!0},ReferenceArea:{handler:C.renderReferenceElement},ReferenceLine:{handler:Yp},ReferenceDot:{handler:C.renderReferenceElement},XAxis:{handler:Yp},YAxis:{handler:Yp},Brush:{handler:C.renderBrush,once:!0},Bar:{handler:C.renderGraphicChild},Line:{handler:C.renderGraphicChild},Area:{handler:C.renderGraphicChild},Radar:{handler:C.renderGraphicChild},RadialBar:{handler:C.renderGraphicChild},Scatter:{handler:C.renderGraphicChild},Pie:{handler:C.renderGraphicChild},Funnel:{handler:C.renderGraphicChild},Tooltip:{handler:C.renderCursor,once:!0},PolarGrid:{handler:C.renderPolarGrid,once:!0},PolarAngleAxis:{handler:C.renderPolarAxis},PolarRadiusAxis:{handler:C.renderPolarAxis},Customized:{handler:C.renderCustomized}}),C.clipPathId="".concat((O=E.id)!==null&&O!==void 0?O:Vu("recharts"),"-clip"),C.throttleTriggeredAfterMouseMove=UB(C.triggeredAfterMouseMove,(A=E.throttleDelay)!==null&&A!==void 0?A:1e3/60),C.state={},C}return Wpe(N,b),qpe(N,[{key:"componentDidMount",value:function(){var O,A;this.addListener(),this.accessibilityManager.setDetails({container:this.container,offset:{left:(O=this.props.margin.left)!==null&&O!==void 0?O:0,top:(A=this.props.margin.top)!==null&&A!==void 0?A:0},coordinateList:this.state.tooltipTicks,mouseHandlerCallback:this.triggeredAfterMouseMove,layout:this.props.layout}),this.displayDefaultTooltip()}},{key:"displayDefaultTooltip",value:function(){var O=this.props,A=O.children,C=O.data,k=O.height,T=O.layout,M=ea(A,oi);if(M){var R=M.props.defaultIndex;if(!(typeof R!="number"||R<0||R>this.state.tooltipTicks.length-1)){var L=this.state.tooltipTicks[R]&&this.state.tooltipTicks[R].value,D=XN(this.state,C,R,L),U=this.state.tooltipTicks[R].coordinate,V=(this.state.offset.top+k)/2,H=T==="horizontal",G=H?{x:U,y:V}:{y:U,x:V},$=this.state.formattedGraphicalItems.find(function(q){var Z=q.item;return Z.type.name==="Scatter"});$&&(G=ge(ge({},G),$.props.points[R].tooltipPosition),D=$.props.points[R].tooltipPayload);var I={activeTooltipIndex:R,isTooltipActive:!0,activeLabel:L,activePayload:D,activeCoordinate:G};this.setState(I),this.renderCursor(M),this.accessibilityManager.setIndex(R)}}}},{key:"getSnapshotBeforeUpdate",value:function(O,A){if(!this.props.accessibilityLayer)return null;if(this.state.tooltipTicks!==A.tooltipTicks&&this.accessibilityManager.setDetails({coordinateList:this.state.tooltipTicks}),this.props.layout!==O.layout&&this.accessibilityManager.setDetails({layout:this.props.layout}),this.props.margin!==O.margin){var C,k;this.accessibilityManager.setDetails({offset:{left:(C=this.props.margin.left)!==null&&C!==void 0?C:0,top:(k=this.props.margin.top)!==null&&k!==void 0?k:0}})}return null}},{key:"componentDidUpdate",value:function(O){M_([ea(O.children,oi)],[ea(this.props.children,oi)])||this.displayDefaultTooltip()}},{key:"componentWillUnmount",value:function(){this.removeListener(),this.throttleTriggeredAfterMouseMove.cancel()}},{key:"getTooltipEventType",value:function(){var O=ea(this.props.children,oi);if(O&&typeof O.props.shared=="boolean"){var A=O.props.shared?"axis":"item";return u.indexOf(A)>=0?A:s}return s}},{key:"getMouseInfo",value:function(O){if(!this.container)return null;var A=this.container,C=A.getBoundingClientRect(),k=gre(C),T={chartX:Math.round(O.pageX-k.left),chartY:Math.round(O.pageY-k.top)},M=C.width/A.offsetWidth||1,R=this.inRange(T.chartX,T.chartY,M);if(!R)return null;var L=this.state,D=L.xAxisMap,U=L.yAxisMap,V=this.getTooltipEventType(),H=KI(this.state,this.props.data,this.props.layout,R);if(V!=="axis"&&D&&U){var G=Ks(D).scale,$=Ks(U).scale,I=G&&G.invert?G.invert(T.chartX):null,q=$&&$.invert?$.invert(T.chartY):null;return ge(ge({},T),{},{xValue:I,yValue:q},H)}return H?ge(ge({},T),H):null}},{key:"inRange",value:function(O,A){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1,k=this.props.layout,T=O/C,M=A/C;if(k==="horizontal"||k==="vertical"){var R=this.state.offset,L=T>=R.left&&T<=R.left+R.width&&M>=R.top&&M<=R.top+R.height;return L?{x:T,y:M}:null}var D=this.state,U=D.angleAxisMap,V=D.radiusAxisMap;if(U&&V){var H=Ks(U);return Z3({x:T,y:M},H)}return null}},{key:"parseEventsOfWrapper",value:function(){var O=this.props.children,A=this.getTooltipEventType(),C=ea(O,oi),k={};C&&A==="axis"&&(C.props.trigger==="click"?k={onClick:this.handleClick}:k={onMouseEnter:this.handleMouseEnter,onDoubleClick:this.handleDoubleClick,onMouseMove:this.handleMouseMove,onMouseLeave:this.handleMouseLeave,onTouchMove:this.handleTouchMove,onTouchStart:this.handleTouchStart,onTouchEnd:this.handleTouchEnd,onContextMenu:this.handleContextMenu});var T=Mv(this.props,this.handleOuterEvent);return ge(ge({},T),k)}},{key:"addListener",value:function(){XS.on(ZS,this.handleReceiveSyncEvent)}},{key:"removeListener",value:function(){XS.removeListener(ZS,this.handleReceiveSyncEvent)}},{key:"filterFormatItem",value:function(O,A,C){for(var k=this.state.formattedGraphicalItems,T=0,M=k.length;T");return e}const $c=y.forwardRef(({id:e,className:t,children:n,config:r,...a},s)=>{const l=y.useId(),u=`chart-${e||l.replace(/:/g,"")}`;return i.jsx(u8.Provider,{value:{config:r},children:i.jsxs("div",{"data-chart":u,ref:s,className:ue("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...a,children:[i.jsx(uve,{id:u,config:r}),i.jsx(ure,{children:n})]})})});$c.displayName="Chart";const uve=({id:e,config:t})=>{const n=Object.entries(t).filter(([,r])=>r.theme||r.color);return n.length?i.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(cve).map(([r,a])=>` -${a} [data-chart=${e}] { -${n.map(([s,l])=>{const u=l.theme?.[r]||l.color;return u?` --color-${s}: ${u};`:null}).join(` -`)} -} -`).join(` -`)}}):null},ff=oi,Ic=y.forwardRef(({active:e,payload:t,className:n,indicator:r="dot",hideLabel:a=!1,hideIndicator:s=!1,label:l,labelFormatter:u,labelClassName:d,formatter:f,color:m,nameKey:p,labelKey:g},x)=>{const{config:j}=d8(),w=y.useMemo(()=>{if(a||!t?.length)return null;const[N]=t,E=`${g||N?.dataKey||N?.name||"value"}`,O=ZN(j,N,E),A=!g&&typeof l=="string"?j[l]?.label||l:O?.label;return u?i.jsx("div",{className:ue("font-medium",d),children:u(A,t)}):A?i.jsx("div",{className:ue("font-medium",d),children:A}):null},[l,u,t,a,d,j,g]);if(!e||!t?.length)return null;const b=t.length===1&&r!=="dot";return i.jsxs("div",{ref:x,className:ue("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[b?null:w,i.jsx("div",{className:"grid gap-1.5",children:t.filter(N=>N.type!=="none").map((N,E)=>{const O=`${p||N.name||N.dataKey||"value"}`,A=ZN(j,N,O),C=m||N.payload.fill||N.color;return i.jsx("div",{className:ue("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",r==="dot"&&"items-center"),children:f&&N?.value!==void 0&&N.name?f(N.value,N.name,N,E,N.payload):i.jsxs(i.Fragment,{children:[A?.icon?i.jsx(A.icon,{}):!s&&i.jsx("div",{className:ue("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":r==="dot","w-1":r==="line","w-0 border-[1.5px] border-dashed bg-transparent":r==="dashed","my-0.5":b&&r==="dashed"}),style:{"--color-bg":C,"--color-border":C}}),i.jsxs("div",{className:ue("flex flex-1 justify-between leading-none",b?"items-end":"items-center"),children:[i.jsxs("div",{className:"grid gap-1.5",children:[b?w:null,i.jsx("span",{className:"text-muted-foreground",children:A?.label||N.name})]}),N.value&&i.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:N.value.toLocaleString()})]})]})},N.dataKey)})})]})});Ic.displayName="ChartTooltip";const dve=sl,f8=y.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r="bottom",nameKey:a},s)=>{const{config:l}=d8();return n?.length?i.jsx("div",{ref:s,className:ue("flex items-center justify-center gap-4",r==="top"?"pb-3":"pt-3",e),children:n.filter(u=>u.type!=="none").map(u=>{const d=`${a||u.dataKey||"value"}`,f=ZN(l,u,d);return i.jsxs("div",{className:ue("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?i.jsx(f.icon,{}):i.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:u.color}}),f?.label]},u.value)})}):null});f8.displayName="ChartLegend";function ZN(e,t,n){if(typeof t!="object"||t===null)return;const r="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let a=n;return n in t&&typeof t[n]=="string"?a=t[n]:r&&n in r&&typeof r[n]=="string"&&(a=r[n]),a in e?e[a]:e[n]}const fve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),hve=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),QI=e=>{const t=hve(e);return t.charAt(0).toUpperCase()+t.slice(1)},h8=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),mve=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};var pve={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const vve=y.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:a="",children:s,iconNode:l,...u},d)=>y.createElement("svg",{ref:d,...pve,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:h8("lucide",a),...!s&&!mve(u)&&{"aria-hidden":"true"},...u},[...l.map(([f,m])=>y.createElement(f,m)),...Array.isArray(s)?s:[s]]));const Te=(e,t)=>{const n=y.forwardRef(({className:r,...a},s)=>y.createElement(vve,{ref:s,iconNode:t,className:h8(`lucide-${fve(QI(e))}`,`lucide-${e}`,r),...a}));return n.displayName=QI(e),n};const gve=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],yve=Te("activity",gve);const xve=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],m8=Te("arrow-left",xve);const bve=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],wve=Te("arrow-right",bve);const jve=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],JI=Te("ban",jve);const Sve=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],_ve=Te("book-open",Sve);const Nve=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],Cve=Te("bot",Nve);const Ove=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],p8=Te("boxes",Ove);const Eve=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],eL=Te("calendar",Eve);const Ave=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],Tve=Te("chart-column",Ave);const kve=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],cl=Te("check",kve);const Mve=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],gh=Te("chevron-down",Mve);const Pve=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Yh=Te("chevron-left",Pve);const Rve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Kh=Te("chevron-right",Rve);const Dve=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],QN=Te("chevron-up",Dve);const $ve=[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]],aE=Te("chevrons-left",$ve);const Ive=[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]],iE=Te("chevrons-right",Ive);const Lve=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],zve=Te("chevrons-up-down",Lve);const Bve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],xl=Te("circle-alert",Bve);const qve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Dr=Te("circle-check",qve);const Fve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Uve=Te("circle-question-mark",Fve);const Hve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],v8=Te("circle-user",Hve);const Wve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],JN=Te("circle-x",Wve);const Vve=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Gve=Te("circle",Vve);const Yve=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],ul=Te("clock",Yve);const Kve=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],eC=Te("copy",Kve);const Xve=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Zve=Te("database",Xve);const Qve=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Jve=Te("dollar-sign",Qve);const ege=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],tC=Te("download",ege);const tge=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],Pf=Te("external-link",tge);const nge=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],nC=Te("eye-off",nge);const rge=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ya=Te("eye",rge);const age=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],Ag=Te("file-search",age);const ige=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],sE=Te("file-text",ige);const sge=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],rC=Te("funnel",sge);const oge=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],Tg=Te("hash",oge);const lge=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],kg=Te("house",lge);const cge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],Pu=Te("info",cge);const uge=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],dge=Te("key",uge);const fge=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],yh=Te("loader-circle",fge);const hge=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],tL=Te("lock",hge);const mge=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],nL=Te("log-out",mge);const pge=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],vge=Te("menu",pge);const gge=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Xh=Te("message-square",gge);const yge=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],aC=Te("moon",yge);const xge=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Mg=Te("package",xge);const bge=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],g8=Te("palette",bge);const wge=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],jge=Te("pause",wge);const Sge=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],Ru=Te("pencil",Sge);const _ge=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],Nge=Te("play",_ge);const Cge=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],ir=Te("plus",Cge);const Oge=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],oE=Te("power",Oge);const Ege=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],os=Te("refresh-cw",Ege);const Age=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Tge=Te("rotate-ccw",Age);const kge=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Mge=Te("rotate-cw",kge);const Pge=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],lE=Te("save",Pge);const Rge=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Br=Te("search",Rge);const Dge=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],y8=Te("server",Dge);const $ge=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],Ige=Te("settings-2",$ge);const Lge=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],Ha=Te("settings",Lge);const zge=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],Bge=Te("shield",zge);const qge=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Fge=Te("skip-forward",qge);const Uge=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],Hge=Te("sliders-vertical",Uge);const Wge=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],cE=Te("smile",Wge);const Vge=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],Gge=Te("sparkles",Vge);const Yge=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Du=Te("square-pen",Yge);const Kge=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],rL=Te("star",Kge);const Xge=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],iC=Te("sun",Xge);const Zge=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],Qge=Te("terminal",Zge);const Jge=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],Ct=Te("trash-2",Jge);const eye=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],tye=Te("trending-up",eye);const nye=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Xc=Te("triangle-alert",nye);const rye=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],x8=Te("user",rye);const aye=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],iye=Te("users",aye);const sye=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Zh=Te("x",sye);const oye=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],xh=Te("zap",oye),aL=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,iL=et,Qu=(e,t)=>n=>{var r;if(t?.variants==null)return iL(e,n?.class,n?.className);const{variants:a,defaultVariants:s}=t,l=Object.keys(a).map(f=>{const m=n?.[f],p=s?.[f];if(m===null)return null;const g=aL(m)||aL(p);return a[f][g]}),u=n&&Object.entries(n).reduce((f,m)=>{let[p,g]=m;return g===void 0||(f[p]=g),f},{}),d=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((f,m)=>{let{class:p,className:g,...x}=m;return Object.entries(x).every(j=>{let[w,b]=j;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...f,p,g]:f},[]);return iL(e,l,d,n?.class,n?.className)},bh=Qu("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),oe=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...a},s)=>{const l=r?pQ:"button";return i.jsx(l,{className:ue(bh({variant:t,size:n,className:e})),ref:s,...a})});oe.displayName="Button";function lye(){const[e,t]=y.useState(null),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(24),[d,f]=y.useState(!0),[m,p]=y.useState(null),[g,x]=y.useState(!0),j=y.useCallback(async()=>{try{x(!0);const R=await xn.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");p({hitokoto:R.data.hitokoto,from:R.data.from||R.data.from_who||"未知"})}catch(R){console.error("获取一言失败:",R),p({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{x(!1)}},[]),w=y.useCallback(async()=>{try{const R=localStorage.getItem("access-token"),L=await xn.get(`/api/webui/statistics/dashboard?hours=${l}`,{headers:{Authorization:`Bearer ${R}`}});t(L.data),r(!1),s(100)}catch(R){console.error("Failed to fetch dashboard data:",R),r(!1),s(100)}},[l]);if(y.useEffect(()=>{if(!n)return;s(0);const R=setTimeout(()=>s(15),200),L=setTimeout(()=>s(30),800),D=setTimeout(()=>s(45),2e3),U=setTimeout(()=>s(60),4e3),V=setTimeout(()=>s(75),6500),H=setTimeout(()=>s(85),9e3),G=setTimeout(()=>s(92),11e3);return()=>{clearTimeout(R),clearTimeout(L),clearTimeout(D),clearTimeout(U),clearTimeout(V),clearTimeout(H),clearTimeout(G)}},[n]),y.useEffect(()=>{w(),j()},[w,j]),y.useEffect(()=>{if(!d)return;const R=setInterval(()=>{w()},3e4);return()=>clearInterval(R)},[d,w]),n||!e)return i.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:i.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[i.jsx(os,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(Ih,{value:a,className:"h-2"}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:[a,"%"]})]})]})});const{summary:b,model_stats:N,hourly_data:E,daily_data:O,recent_activity:A}=e,C=R=>{const L=Math.floor(R/3600),D=Math.floor(R%3600/60);return`${L}小时${D}分钟`},k=R=>new Date(R).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),T=N.slice(0,6).map(R=>({name:R.model_name,value:R.request_count,fill:`hsl(var(--chart-${N.indexOf(R)%5+1}))`})),M={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),i.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[i.jsx(hl,{value:l.toString(),onValueChange:R=>u(Number(R)),children:i.jsxs(ao,{className:"grid grid-cols-3 w-full sm:w-auto",children:[i.jsx(Lt,{value:"24",children:"24小时"}),i.jsx(Lt,{value:"168",children:"7天"}),i.jsx(Lt,{value:"720",children:"30天"})]})}),i.jsxs(oe,{variant:d?"default":"outline",size:"sm",onClick:()=>f(!d),className:"gap-2",children:[i.jsx(os,{className:`h-4 w-4 ${d?"animate-spin":""}`}),i.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:w,children:i.jsx(os,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"总请求数"}),i.jsx(yve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:b.total_requests.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",l<48?l+"小时":Math.floor(l/24)+"天"]})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"总花费"}),i.jsx(Jve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:["¥",b.total_cost.toFixed(2)]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.cost_per_hour>0?`¥${b.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"Token消耗"}),i.jsx(Zve,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[(b.total_tokens/1e3).toFixed(1),"K"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:b.tokens_per_hour>0?`${(b.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"平均响应"}),i.jsx(xh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsxs("div",{className:"text-2xl font-bold",children:[b.avg_response_time.toFixed(2),"s"]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"在线时长"}),i.jsx(ul,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsx(Pt,{children:i.jsx("div",{className:"text-xl font-bold",children:C(b.online_time)})})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"消息处理"}),i.jsx(Xh,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages.toLocaleString()}),i.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",b.total_replies.toLocaleString()," 条"]})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"成本效率"}),i.jsx(tye,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-xl font-bold",children:b.total_messages>0?`¥${(b.total_cost/b.total_messages*100).toFixed(2)}`:"¥0.00"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),i.jsxs(hl,{defaultValue:"trends",className:"space-y-4",children:[i.jsxs(ao,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[i.jsx(Lt,{value:"trends",children:"趋势"}),i.jsx(Lt,{value:"models",children:"模型"}),i.jsx(Lt,{value:"activity",children:"活动"}),i.jsx(Lt,{value:"daily",children:"日统计"})]}),i.jsxs(vn,{value:"trends",className:"space-y-4",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"请求趋势"}),i.jsxs(Wn,{children:["最近",l,"小时的请求量变化"]})]}),i.jsx(Pt,{children:i.jsx($c,{config:M,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(ove,{data:E,children:[i.jsx(yf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Qs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(ff,{content:i.jsx(Ic,{labelFormatter:R=>k(R)})}),i.jsx(Gh,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"花费趋势"}),i.jsx(Wn,{children:"API调用成本变化"})]}),i.jsx(Pt,{children:i.jsx($c,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(JS,{data:E,children:[i.jsx(yf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Qs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(ff,{content:i.jsx(Ic,{labelFormatter:R=>k(R)})}),i.jsx(hi,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"Token消耗"}),i.jsx(Wn,{children:"Token使用量变化"})]}),i.jsx(Pt,{children:i.jsx($c,{config:M,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:i.jsxs(JS,{data:E,children:[i.jsx(yf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Qs,{dataKey:"timestamp",tickFormatter:R=>k(R),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(ff,{content:i.jsx(Ic,{labelFormatter:R=>k(R)})}),i.jsx(hi,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),i.jsx(vn,{value:"models",className:"space-y-4",children:i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"模型请求分布"}),i.jsx(Wn,{children:"各模型使用占比"})]}),i.jsx(Pt,{children:i.jsx($c,{config:Object.fromEntries(N.slice(0,6).map((R,L)=>[R.model_name,{label:R.model_name,color:`hsl(var(--chart-${L%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:i.jsxs(lve,{children:[i.jsx(ff,{content:i.jsx(Ic,{})}),i.jsx(gs,{data:T,cx:"50%",cy:"50%",labelLine:!1,label:({name:R,percent:L})=>`${R} ${L?(L*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:T.map((R,L)=>i.jsx(fy,{fill:R.fill},`cell-${L}`))})]})})})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"模型详细统计"}),i.jsx(Wn,{children:"请求数、花费和性能"})]}),i.jsx(Pt,{children:i.jsx(Gt,{className:"h-[300px] sm:h-[400px]",children:i.jsx("div",{className:"space-y-3",children:N.map((R,L)=>i.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex items-center justify-between mb-2",children:[i.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:R.model_name}),i.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${L%5+1}))`}})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),i.jsx("span",{className:"ml-1 font-medium",children:R.request_count.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1 font-medium",children:["¥",R.total_cost.toFixed(2)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[(R.total_tokens/1e3).toFixed(1),"K"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),i.jsxs("span",{className:"ml-1 font-medium",children:[R.avg_response_time.toFixed(2),"s"]})]})]})]},L))})})})]})]})}),i.jsx(vn,{value:"activity",children:i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"最近活动"}),i.jsx(Wn,{children:"最新的API调用记录"})]}),i.jsx(Pt,{children:i.jsx(Gt,{className:"h-[400px] sm:h-[500px]",children:i.jsx("div",{className:"space-y-2",children:A.map((R,L)=>i.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm truncate",children:R.model}),i.jsx("div",{className:"text-xs text-muted-foreground",children:R.request_type})]}),i.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:k(R.timestamp)})]}),i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),i.jsx("span",{className:"ml-1",children:R.tokens})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"花费:"}),i.jsxs("span",{className:"ml-1",children:["¥",R.cost.toFixed(4)]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),i.jsxs("span",{className:"ml-1",children:[R.time_cost.toFixed(2),"s"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground",children:"状态:"}),i.jsx("span",{className:`ml-1 ${R.status==="success"?"text-green-600":"text-red-600"}`,children:R.status})]})]})]},L))})})})]})}),i.jsx(vn,{value:"daily",children:i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"每日统计"}),i.jsx(Wn,{children:"最近7天的数据汇总"})]}),i.jsx(Pt,{children:i.jsx($c,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:i.jsxs(JS,{data:O,children:[i.jsx(yf,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),i.jsx(Qs,{dataKey:"timestamp",tickFormatter:R=>{const L=new Date(R);return`${L.getMonth()+1}/${L.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(Zi,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),i.jsx(ff,{content:i.jsx(Ic,{labelFormatter:R=>new Date(R).toLocaleDateString("zh-CN")})}),i.jsx(dve,{content:i.jsx(f8,{})}),i.jsx(hi,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),i.jsx(hi,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),i.jsxs(Ke,{className:"border-2 border-primary/20",children:[i.jsx(gt,{className:"pb-3",children:i.jsx(yt,{className:"text-lg",children:"每日一言"})}),i.jsx(Pt,{children:g?i.jsxs("div",{className:"space-y-2",children:[i.jsx(ZM,{className:"h-6 w-3/4"}),i.jsx(ZM,{className:"h-4 w-1/4"})]}):m?i.jsxs("div",{className:"space-y-2",children:[i.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',m.hitokoto,'"']}),i.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",m.from]})]}):null})]})]})})}const cye={theme:"system",setTheme:()=>null},b8=y.createContext(cye),uE=()=>{const e=y.useContext(b8);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},uye=(e,t,n)=>{const r=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||r){t(e);return}const a=n.clientX,s=n.clientY,l=Math.hypot(Math.max(a,innerWidth-a),Math.max(s,innerHeight-s));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${a}px ${s}px)`,`circle(${l}px at ${a}px ${s}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},w8=y.createContext(void 0),j8=()=>{const e=y.useContext(w8);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};function Iy(e){const t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function Ly(e){const[t,n]=y.useState(void 0);return Yn(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(a=>{if(!Array.isArray(a)||!a.length)return;const s=a[0];let l,u;if("borderBoxSize"in s){const d=s.borderBoxSize,f=Array.isArray(d)?d[0]:d;l=f.inlineSize,u=f.blockSize}else l=e.offsetWidth,u=e.offsetHeight;n({width:l,height:u})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var zy="Switch",[dye]=yr(zy),[fye,hye]=dye(zy),S8=y.forwardRef((e,t)=>{const{__scopeSwitch:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d="on",onCheckedChange:f,form:m,...p}=e,[g,x]=y.useState(null),j=Ue(t,O=>x(O)),w=y.useRef(!1),b=g?m||!!g.closest("form"):!0,[N,E]=Ta({prop:a,defaultProp:s??!1,onChange:f,caller:zy});return i.jsxs(fye,{scope:n,checked:N,disabled:u,children:[i.jsx($e.button,{type:"button",role:"switch","aria-checked":N,"aria-required":l,"data-state":O8(N),"data-disabled":u?"":void 0,disabled:u,value:d,...p,ref:j,onClick:Ne(e.onClick,O=>{E(A=>!A),b&&(w.current=O.isPropagationStopped(),w.current||O.stopPropagation())})}),b&&i.jsx(C8,{control:g,bubbles:!w.current,name:r,value:d,checked:N,required:l,disabled:u,form:m,style:{transform:"translateX(-100%)"}})]})});S8.displayName=zy;var _8="SwitchThumb",N8=y.forwardRef((e,t)=>{const{__scopeSwitch:n,...r}=e,a=hye(_8,n);return i.jsx($e.span,{"data-state":O8(a.checked),"data-disabled":a.disabled?"":void 0,...r,ref:t})});N8.displayName=_8;var mye="SwitchBubbleInput",C8=y.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...a},s)=>{const l=y.useRef(null),u=Ue(l,s),d=Iy(n),f=Ly(t);return y.useEffect(()=>{const m=l.current;if(!m)return;const p=window.HTMLInputElement.prototype,x=Object.getOwnPropertyDescriptor(p,"checked").set;if(d!==n&&x){const j=new Event("click",{bubbles:r});x.call(m,n),m.dispatchEvent(j)}},[d,n,r]),i.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...a,tabIndex:-1,ref:u,style:{...a.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});C8.displayName=mye;function O8(e){return e?"checked":"unchecked"}var E8=S8,pye=N8;const dt=y.forwardRef(({className:e,...t},n)=>i.jsx(E8,{className:ue("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:i.jsx(pye,{className:ue("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));dt.displayName=E8.displayName;var vye=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],gye=vye.reduce((e,t)=>{const n=$h(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),yye="Label",A8=y.forwardRef((e,t)=>i.jsx(gye.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));A8.displayName=yye;var T8=A8;const xye=Qu("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),ne=y.forwardRef(({className:e,...t},n)=>i.jsx(T8,{ref:n,className:ue(xye(),e),...t}));ne.displayName=T8.displayName;const Ce=y.forwardRef(({className:e,type:t,...n},r)=>i.jsx("input",{type:t,className:ue("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:r,...n}));Ce.displayName="Input";const bye=1,wye=1e6;let e_=0;function jye(){return e_=(e_+1)%Number.MAX_SAFE_INTEGER,e_.toString()}const t_=new Map,sL=e=>{if(t_.has(e))return;const t=setTimeout(()=>{t_.delete(e),Rf({type:"REMOVE_TOAST",toastId:e})},wye);t_.set(e,t)},Sye=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,bye)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?sL(n):e.toasts.forEach(r=>{sL(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},fv=[];let hv={toasts:[]};function Rf(e){hv=Sye(hv,e),fv.forEach(t=>{t(hv)})}function _ye({...e}){const t=jye(),n=a=>Rf({type:"UPDATE_TOAST",toast:{...a,id:t}}),r=()=>Rf({type:"DISMISS_TOAST",toastId:t});return Rf({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:a=>{a||r()}}}),{id:t,dismiss:r,update:n}}function xr(){const[e,t]=y.useState(hv);return y.useEffect(()=>(fv.push(t),()=>{const n=fv.indexOf(t);n>-1&&fv.splice(n,1)}),[e]),{...e,toast:_ye,dismiss:n=>Rf({type:"DISMISS_TOAST",toastId:n})}}const Nye=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function Cye(e){const t=Nye.map(r=>({id:r.id,label:r.label,description:r.description,passed:r.validate(e)}));return{isValid:t.every(r=>r.passed),rules:t}}const dE="0.11.5 Beta",fE="MaiBot Dashboard",Oye=`${fE} v${dE}`,Eye=(e="v")=>`${e}${dE}`;function Aye(e,t=globalThis?.document){const n=yn(e);y.useEffect(()=>{const r=a=>{a.key==="Escape"&&n(a)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var Tye="DismissableLayer",sC="dismissableLayer.update",kye="dismissableLayer.pointerDownOutside",Mye="dismissableLayer.focusOutside",oL,k8=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),kl=y.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:a,onFocusOutside:s,onInteractOutside:l,onDismiss:u,...d}=e,f=y.useContext(k8),[m,p]=y.useState(null),g=m?.ownerDocument??globalThis?.document,[,x]=y.useState({}),j=Ue(t,T=>p(T)),w=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),N=w.indexOf(b),E=m?w.indexOf(m):-1,O=f.layersWithOutsidePointerEventsDisabled.size>0,A=E>=N,C=Rye(T=>{const M=T.target,R=[...f.branches].some(L=>L.contains(M));!A||R||(a?.(T),l?.(T),T.defaultPrevented||u?.())},g),k=Dye(T=>{const M=T.target;[...f.branches].some(L=>L.contains(M))||(s?.(T),l?.(T),T.defaultPrevented||u?.())},g);return Aye(T=>{E===f.layers.size-1&&(r?.(T),!T.defaultPrevented&&u&&(T.preventDefault(),u()))},g),y.useEffect(()=>{if(m)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(oL=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(m)),f.layers.add(m),lL(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=oL)}},[m,g,n,f]),y.useEffect(()=>()=>{m&&(f.layers.delete(m),f.layersWithOutsidePointerEventsDisabled.delete(m),lL())},[m,f]),y.useEffect(()=>{const T=()=>x({});return document.addEventListener(sC,T),()=>document.removeEventListener(sC,T)},[]),i.jsx($e.div,{...d,ref:j,style:{pointerEvents:O?A?"auto":"none":void 0,...e.style},onFocusCapture:Ne(e.onFocusCapture,k.onFocusCapture),onBlurCapture:Ne(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:Ne(e.onPointerDownCapture,C.onPointerDownCapture)})});kl.displayName=Tye;var Pye="DismissableLayerBranch",M8=y.forwardRef((e,t)=>{const n=y.useContext(k8),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),i.jsx($e.div,{...e,ref:a})});M8.displayName=Pye;function Rye(e,t=globalThis?.document){const n=yn(e),r=y.useRef(!1),a=y.useRef(()=>{});return y.useEffect(()=>{const s=u=>{if(u.target&&!r.current){let d=function(){P8(kye,n,f,{discrete:!0})};const f={originalEvent:u};u.pointerType==="touch"?(t.removeEventListener("click",a.current),a.current=d,t.addEventListener("click",a.current,{once:!0})):d()}else t.removeEventListener("click",a.current);r.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",s),t.removeEventListener("click",a.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Dye(e,t=globalThis?.document){const n=yn(e),r=y.useRef(!1);return y.useEffect(()=>{const a=s=>{s.target&&!r.current&&P8(Mye,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",a),()=>t.removeEventListener("focusin",a)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function lL(){const e=new CustomEvent(sC);document.dispatchEvent(e)}function P8(e,t,n,{discrete:r}){const a=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?VC(a,s):a.dispatchEvent(s)}var $ye=kl,Iye=M8,n_="focusScope.autoFocusOnMount",r_="focusScope.autoFocusOnUnmount",cL={bubbles:!1,cancelable:!0},Lye="FocusScope",Qh=y.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:s,...l}=e,[u,d]=y.useState(null),f=yn(a),m=yn(s),p=y.useRef(null),g=Ue(t,w=>d(w)),x=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let w=function(O){if(x.paused||!u)return;const A=O.target;u.contains(A)?p.current=A:Gs(p.current,{select:!0})},b=function(O){if(x.paused||!u)return;const A=O.relatedTarget;A!==null&&(u.contains(A)||Gs(p.current,{select:!0}))},N=function(O){if(document.activeElement===document.body)for(const C of O)C.removedNodes.length>0&&Gs(u)};document.addEventListener("focusin",w),document.addEventListener("focusout",b);const E=new MutationObserver(N);return u&&E.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",w),document.removeEventListener("focusout",b),E.disconnect()}}},[r,u,x.paused]),y.useEffect(()=>{if(u){dL.add(x);const w=document.activeElement;if(!u.contains(w)){const N=new CustomEvent(n_,cL);u.addEventListener(n_,f),u.dispatchEvent(N),N.defaultPrevented||(zye(Hye(R8(u)),{select:!0}),document.activeElement===w&&Gs(u))}return()=>{u.removeEventListener(n_,f),setTimeout(()=>{const N=new CustomEvent(r_,cL);u.addEventListener(r_,m),u.dispatchEvent(N),N.defaultPrevented||Gs(w??document.body,{select:!0}),u.removeEventListener(r_,m),dL.remove(x)},0)}}},[u,f,m,x]);const j=y.useCallback(w=>{if(!n&&!r||x.paused)return;const b=w.key==="Tab"&&!w.altKey&&!w.ctrlKey&&!w.metaKey,N=document.activeElement;if(b&&N){const E=w.currentTarget,[O,A]=Bye(E);O&&A?!w.shiftKey&&N===A?(w.preventDefault(),n&&Gs(O,{select:!0})):w.shiftKey&&N===O&&(w.preventDefault(),n&&Gs(A,{select:!0})):N===E&&w.preventDefault()}},[n,r,x.paused]);return i.jsx($e.div,{tabIndex:-1,...l,ref:g,onKeyDown:j})});Qh.displayName=Lye;function zye(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(Gs(r,{select:t}),document.activeElement!==n)return}function Bye(e){const t=R8(e),n=uL(t,e),r=uL(t.reverse(),e);return[n,r]}function R8(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function uL(e,t){for(const n of e)if(!qye(n,{upTo:t}))return n}function qye(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Fye(e){return e instanceof HTMLInputElement&&"select"in e}function Gs(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Fye(e)&&t&&e.select()}}var dL=Uye();function Uye(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=fL(e,t),e.unshift(t)},remove(t){e=fL(e,t),e[0]?.resume()}}}function fL(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Hye(e){return e.filter(t=>t.tagName!=="A")}var Wye="Portal",Ml=y.forwardRef((e,t)=>{const{container:n,...r}=e,[a,s]=y.useState(!1);Yn(()=>s(!0),[]);const l=n||a&&globalThis?.document?.body;return l?OY.createPortal(i.jsx($e.div,{...r,ref:t}),l):null});Ml.displayName=Wye;var a_=0;function By(){y.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??hL()),document.body.insertAdjacentElement("beforeend",e[1]??hL()),a_++,()=>{a_===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),a_--}},[])}function hL(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var li=function(){return li=Object.assign||function(t){for(var n,r=1,a=arguments.length;r"u")return lxe;var t=cxe(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},dxe=L8(),Zc="data-scroll-locked",fxe=function(e,t,n,r){var a=e.left,s=e.top,l=e.right,u=e.gap;return n===void 0&&(n="margin"),` - .`.concat(Gye,` { - overflow: hidden `).concat(r,`; - padding-right: `).concat(u,"px ").concat(r,`; - } - body[`).concat(Zc,`] { - overflow: hidden `).concat(r,`; - overscroll-behavior: contain; - `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&` - padding-left: `.concat(a,`px; - padding-top: `).concat(s,`px; - padding-right: `).concat(l,`px; - margin-left:0; - margin-top:0; - margin-right: `).concat(u,"px ").concat(r,`; - `),n==="padding"&&"padding-right: ".concat(u,"px ").concat(r,";")].filter(Boolean).join(""),` - } - - .`).concat(mv,` { - right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(pv,` { - margin-right: `).concat(u,"px ").concat(r,`; - } - - .`).concat(mv," .").concat(mv,` { - right: 0 `).concat(r,`; - } - - .`).concat(pv," .").concat(pv,` { - margin-right: 0 `).concat(r,`; - } - - body[`).concat(Zc,`] { - `).concat(Yye,": ").concat(u,`px; - } -`)},pL=function(){var e=parseInt(document.body.getAttribute(Zc)||"0",10);return isFinite(e)?e:0},hxe=function(){y.useEffect(function(){return document.body.setAttribute(Zc,(pL()+1).toString()),function(){var e=pL()-1;e<=0?document.body.removeAttribute(Zc):document.body.setAttribute(Zc,e.toString())}},[])},mxe=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,a=r===void 0?"margin":r;hxe();var s=y.useMemo(function(){return uxe(a)},[a]);return y.createElement(dxe,{styles:fxe(s,!t,a,n?"":"!important")})},oC=!1;if(typeof window<"u")try{var Kp=Object.defineProperty({},"passive",{get:function(){return oC=!0,!0}});window.addEventListener("test",Kp,Kp),window.removeEventListener("test",Kp,Kp)}catch{oC=!1}var Tc=oC?{passive:!1}:!1,pxe=function(e){return e.tagName==="TEXTAREA"},z8=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!pxe(e)&&n[t]==="visible")},vxe=function(e){return z8(e,"overflowY")},gxe=function(e){return z8(e,"overflowX")},vL=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var a=B8(e,r);if(a){var s=q8(e,r),l=s[1],u=s[2];if(l>u)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},yxe=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},xxe=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},B8=function(e,t){return e==="v"?vxe(t):gxe(t)},q8=function(e,t){return e==="v"?yxe(t):xxe(t)},bxe=function(e,t){return e==="h"&&t==="rtl"?-1:1},wxe=function(e,t,n,r,a){var s=bxe(e,window.getComputedStyle(t).direction),l=s*r,u=n.target,d=t.contains(u),f=!1,m=l>0,p=0,g=0;do{if(!u)break;var x=q8(e,u),j=x[0],w=x[1],b=x[2],N=w-b-s*j;(j||N)&&B8(e,u)&&(p+=N,g+=j);var E=u.parentNode;u=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!d&&u!==document.body||d&&(t.contains(u)||t===u));return(m&&Math.abs(p)<1||!m&&Math.abs(g)<1)&&(f=!0),f},Xp=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},gL=function(e){return[e.deltaX,e.deltaY]},yL=function(e){return e&&"current"in e?e.current:e},jxe=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Sxe=function(e){return` - .block-interactivity-`.concat(e,` {pointer-events: none;} - .allow-interactivity-`).concat(e,` {pointer-events: all;} -`)},_xe=0,kc=[];function Nxe(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),a=y.useState(_xe++)[0],s=y.useState(L8)[0],l=y.useRef(e);y.useEffect(function(){l.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(a));var w=Vye([e.lockRef.current],(e.shards||[]).map(yL),!0).filter(Boolean);return w.forEach(function(b){return b.classList.add("allow-interactivity-".concat(a))}),function(){document.body.classList.remove("block-interactivity-".concat(a)),w.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(a))})}}},[e.inert,e.lockRef.current,e.shards]);var u=y.useCallback(function(w,b){if("touches"in w&&w.touches.length===2||w.type==="wheel"&&w.ctrlKey)return!l.current.allowPinchZoom;var N=Xp(w),E=n.current,O="deltaX"in w?w.deltaX:E[0]-N[0],A="deltaY"in w?w.deltaY:E[1]-N[1],C,k=w.target,T=Math.abs(O)>Math.abs(A)?"h":"v";if("touches"in w&&T==="h"&&k.type==="range")return!1;var M=vL(T,k);if(!M)return!0;if(M?C=T:(C=T==="v"?"h":"v",M=vL(T,k)),!M)return!1;if(!r.current&&"changedTouches"in w&&(O||A)&&(r.current=C),!C)return!0;var R=r.current||C;return wxe(R,b,w,R==="h"?O:A)},[]),d=y.useCallback(function(w){var b=w;if(!(!kc.length||kc[kc.length-1]!==s)){var N="deltaY"in b?gL(b):Xp(b),E=t.current.filter(function(C){return C.name===b.type&&(C.target===b.target||b.target===C.shadowParent)&&jxe(C.delta,N)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var O=(l.current.shards||[]).map(yL).filter(Boolean).filter(function(C){return C.contains(b.target)}),A=O.length>0?u(b,O[0]):!l.current.noIsolation;A&&b.cancelable&&b.preventDefault()}}},[]),f=y.useCallback(function(w,b,N,E){var O={name:w,delta:b,target:N,should:E,shadowParent:Cxe(N)};t.current.push(O),setTimeout(function(){t.current=t.current.filter(function(A){return A!==O})},1)},[]),m=y.useCallback(function(w){n.current=Xp(w),r.current=void 0},[]),p=y.useCallback(function(w){f(w.type,gL(w),w.target,u(w,e.lockRef.current))},[]),g=y.useCallback(function(w){f(w.type,Xp(w),w.target,u(w,e.lockRef.current))},[]);y.useEffect(function(){return kc.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:g}),document.addEventListener("wheel",d,Tc),document.addEventListener("touchmove",d,Tc),document.addEventListener("touchstart",m,Tc),function(){kc=kc.filter(function(w){return w!==s}),document.removeEventListener("wheel",d,Tc),document.removeEventListener("touchmove",d,Tc),document.removeEventListener("touchstart",m,Tc)}},[]);var x=e.removeScrollBar,j=e.inert;return y.createElement(y.Fragment,null,j?y.createElement(s,{styles:Sxe(a)}):null,x?y.createElement(mxe,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Cxe(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Oxe=txe(I8,Nxe);var Jh=y.forwardRef(function(e,t){return y.createElement(qy,li({},e,{ref:t,sideCar:Oxe}))});Jh.classNames=qy.classNames;var Exe=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Mc=new WeakMap,Zp=new WeakMap,Qp={},l_=0,F8=function(e){return e&&(e.host||F8(e.parentNode))},Axe=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=F8(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},Txe=function(e,t,n,r){var a=Axe(t,Array.isArray(e)?e:[e]);Qp[n]||(Qp[n]=new WeakMap);var s=Qp[n],l=[],u=new Set,d=new Set(a),f=function(p){!p||u.has(p)||(u.add(p),f(p.parentNode))};a.forEach(f);var m=function(p){!p||d.has(p)||Array.prototype.forEach.call(p.children,function(g){if(u.has(g))m(g);else try{var x=g.getAttribute(r),j=x!==null&&x!=="false",w=(Mc.get(g)||0)+1,b=(s.get(g)||0)+1;Mc.set(g,w),s.set(g,b),l.push(g),w===1&&j&&Zp.set(g,!0),b===1&&g.setAttribute(n,"true"),j||g.setAttribute(r,"true")}catch(N){console.error("aria-hidden: cannot operate on ",g,N)}})};return m(t),u.clear(),l_++,function(){l.forEach(function(p){var g=Mc.get(p)-1,x=s.get(p)-1;Mc.set(p,g),s.set(p,x),g||(Zp.has(p)||p.removeAttribute(r),Zp.delete(p)),x||p.removeAttribute(n)}),l_--,l_||(Mc=new WeakMap,Mc=new WeakMap,Zp=new WeakMap,Qp={})}},Fy=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),a=Exe(e);return a?(r.push.apply(r,Array.from(a.querySelectorAll("[aria-live], script"))),Txe(r,a,n,"aria-hidden")):function(){return null}};function kxe(e){const t=Mxe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(Rxe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function Mxe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=$xe(a),u=Dxe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Pxe=Symbol("radix.slottable");function Rxe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Pxe}function Dxe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function $xe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Uy="Dialog",[U8,H8]=yr(Uy),[Ixe,Ja]=U8(Uy),W8=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!0}=e,u=y.useRef(null),d=y.useRef(null),[f,m]=Ta({prop:r,defaultProp:a??!1,onChange:s,caller:Uy});return i.jsx(Ixe,{scope:t,triggerRef:u,contentRef:d,contentId:Gn(),titleId:Gn(),descriptionId:Gn(),open:f,onOpenChange:m,onOpenToggle:y.useCallback(()=>m(p=>!p),[m]),modal:l,children:n})};W8.displayName=Uy;var V8="DialogTrigger",G8=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(V8,n),s=Ue(t,a.triggerRef);return i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":pE(a.open),...r,ref:s,onClick:Ne(e.onClick,a.onOpenToggle)})});G8.displayName=V8;var hE="DialogPortal",[Lxe,Y8]=U8(hE,{forceMount:void 0}),K8=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:a}=e,s=Ja(hE,t);return i.jsx(Lxe,{scope:t,forceMount:n,children:y.Children.map(r,l=>i.jsx(zn,{present:n||s.open,children:i.jsx(Ml,{asChild:!0,container:a,children:l})}))})};K8.displayName=hE;var Pg="DialogOverlay",X8=y.forwardRef((e,t)=>{const n=Y8(Pg,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Ja(Pg,e.__scopeDialog);return s.modal?i.jsx(zn,{present:r||s.open,children:i.jsx(Bxe,{...a,ref:t})}):null});X8.displayName=Pg;var zxe=kxe("DialogOverlay.RemoveScroll"),Bxe=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(Pg,n);return i.jsx(Jh,{as:zxe,allowPinchZoom:!0,shards:[a.contentRef],children:i.jsx($e.div,{"data-state":pE(a.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),bl="DialogContent",Z8=y.forwardRef((e,t)=>{const n=Y8(bl,e.__scopeDialog),{forceMount:r=n.forceMount,...a}=e,s=Ja(bl,e.__scopeDialog);return i.jsx(zn,{present:r||s.open,children:s.modal?i.jsx(qxe,{...a,ref:t}):i.jsx(Fxe,{...a,ref:t})})});Z8.displayName=bl;var qxe=y.forwardRef((e,t)=>{const n=Ja(bl,e.__scopeDialog),r=y.useRef(null),a=Ue(t,n.contentRef,r);return y.useEffect(()=>{const s=r.current;if(s)return Fy(s)},[]),i.jsx(Q8,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ne(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Ne(e.onPointerDownOutside,s=>{const l=s.detail.originalEvent,u=l.button===0&&l.ctrlKey===!0;(l.button===2||u)&&s.preventDefault()}),onFocusOutside:Ne(e.onFocusOutside,s=>s.preventDefault())})}),Fxe=y.forwardRef((e,t)=>{const n=Ja(bl,e.__scopeDialog),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(Q8,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),Q8=y.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,...l}=e,u=Ja(bl,n),d=y.useRef(null),f=Ue(t,d);return By(),i.jsxs(i.Fragment,{children:[i.jsx(Qh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(kl,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":pE(u.open),...l,ref:f,onDismiss:()=>u.onOpenChange(!1)})}),i.jsxs(i.Fragment,{children:[i.jsx(Hxe,{titleId:u.titleId}),i.jsx(Vxe,{contentRef:d,descriptionId:u.descriptionId})]})]})}),mE="DialogTitle",J8=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(mE,n);return i.jsx($e.h2,{id:a.titleId,...r,ref:t})});J8.displayName=mE;var eF="DialogDescription",tF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(eF,n);return i.jsx($e.p,{id:a.descriptionId,...r,ref:t})});tF.displayName=eF;var nF="DialogClose",rF=y.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,a=Ja(nF,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:Ne(e.onClick,()=>a.onOpenChange(!1))})});rF.displayName=nF;function pE(e){return e?"open":"closed"}var aF="DialogTitleWarning",[Uxe,iF]=vZ(aF,{contentName:bl,titleName:mE,docsSlug:"dialog"}),Hxe=({titleId:e})=>{const t=iF(aF),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. - -If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. - -For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Wxe="DialogDescriptionWarning",Vxe=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${iF(Wxe).contentName}}.`;return y.useEffect(()=>{const a=e.current?.getAttribute("aria-describedby");t&&a&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},vE=W8,sF=G8,gE=K8,Hy=X8,Wy=Z8,yE=J8,xE=tF,bE=rF;const sr=vE,oF=sF,Gxe=gE,lF=y.forwardRef(({className:e,...t},n)=>i.jsx(Hy,{ref:n,className:ue("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));lF.displayName=Hy.displayName;const Kn=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Gxe,{children:[i.jsx(lF,{}),i.jsxs(Wy,{ref:r,className:ue("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,i.jsxs(bE,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[i.jsx(Zh,{className:"h-4 w-4"}),i.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Kn.displayName=Wy.displayName;const Xn=({className:e,...t})=>i.jsx("div",{className:ue("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});Xn.displayName="DialogHeader";const qr=({className:e,...t})=>i.jsx("div",{className:ue("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});qr.displayName="DialogFooter";const Zn=y.forwardRef(({className:e,...t},n)=>i.jsx(yE,{ref:n,className:ue("text-lg font-semibold leading-none tracking-tight",e),...t}));Zn.displayName=yE.displayName;const gr=y.forwardRef(({className:e,...t},n)=>i.jsx(xE,{ref:n,className:ue("text-sm text-muted-foreground",e),...t}));gr.displayName=xE.displayName;var Yxe=Symbol("radix.slottable");function Kxe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Yxe,t}var cF="AlertDialog",[Xxe]=yr(cF,[H8]),ys=H8(),uF=e=>{const{__scopeAlertDialog:t,...n}=e,r=ys(t);return i.jsx(vE,{...r,...n,modal:!0})};uF.displayName=cF;var Zxe="AlertDialogTrigger",dF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(sF,{...a,...r,ref:t})});dF.displayName=Zxe;var Qxe="AlertDialogPortal",fF=e=>{const{__scopeAlertDialog:t,...n}=e,r=ys(t);return i.jsx(gE,{...r,...n})};fF.displayName=Qxe;var Jxe="AlertDialogOverlay",hF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(Hy,{...a,...r,ref:t})});hF.displayName=Jxe;var Qc="AlertDialogContent",[ebe,tbe]=Xxe(Qc),nbe=Kxe("AlertDialogContent"),mF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...a}=e,s=ys(n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return i.jsx(Uxe,{contentName:Qc,titleName:pF,docsSlug:"alert-dialog",children:i.jsx(ebe,{scope:n,cancelRef:d,children:i.jsxs(Wy,{role:"alertdialog",...s,...a,ref:u,onOpenAutoFocus:Ne(a.onOpenAutoFocus,f=>{f.preventDefault(),d.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[i.jsx(nbe,{children:r}),i.jsx(abe,{contentRef:l})]})})})});mF.displayName=Qc;var pF="AlertDialogTitle",vF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(yE,{...a,...r,ref:t})});vF.displayName=pF;var gF="AlertDialogDescription",yF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(xE,{...a,...r,ref:t})});yF.displayName=gF;var rbe="AlertDialogAction",xF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,a=ys(n);return i.jsx(bE,{...a,...r,ref:t})});xF.displayName=rbe;var bF="AlertDialogCancel",wF=y.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:a}=tbe(bF,n),s=ys(n),l=Ue(t,a);return i.jsx(bE,{...s,...r,ref:l})});wF.displayName=bF;var abe=({contentRef:e})=>{const t=`\`${Qc}\` requires a description for the component to be accessible for screen reader users. - -You can add a description to the \`${Qc}\` by passing a \`${gF}\` component as a child, which also benefits sighted users by adding visible context to the dialog. - -Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Qc}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. - -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return y.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},ibe=uF,sbe=dF,obe=fF,jF=hF,SF=mF,_F=xF,NF=wF,CF=vF,OF=yF;const dn=ibe,mr=sbe,lbe=obe,EF=y.forwardRef(({className:e,...t},n)=>i.jsx(jF,{className:ue("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));EF.displayName=jF.displayName;const en=y.forwardRef(({className:e,...t},n)=>i.jsxs(lbe,{children:[i.jsx(EF,{}),i.jsx(SF,{ref:n,className:ue("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));en.displayName=SF.displayName;const tn=({className:e,...t})=>i.jsx("div",{className:ue("flex flex-col space-y-2 text-center sm:text-left",e),...t});tn.displayName="AlertDialogHeader";const nn=({className:e,...t})=>i.jsx("div",{className:ue("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});nn.displayName="AlertDialogFooter";const rn=y.forwardRef(({className:e,...t},n)=>i.jsx(CF,{ref:n,className:ue("text-lg font-semibold",e),...t}));rn.displayName=CF.displayName;const an=y.forwardRef(({className:e,...t},n)=>i.jsx(OF,{ref:n,className:ue("text-sm text-muted-foreground",e),...t}));an.displayName=OF.displayName;const sn=y.forwardRef(({className:e,...t},n)=>i.jsx(_F,{ref:n,className:ue(bh(),e),...t}));sn.displayName=_F.displayName;const on=y.forwardRef(({className:e,...t},n)=>i.jsx(NF,{ref:n,className:ue(bh({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));on.displayName=NF.displayName;function cbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),i.jsxs(hl,{defaultValue:"appearance",className:"w-full",children:[i.jsxs(ao,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[i.jsxs(Lt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(g8,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"外观"})]}),i.jsxs(Lt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Bge,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"安全"})]}),i.jsxs(Lt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Ha,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"其他"})]}),i.jsxs(Lt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[i.jsx(Pu,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),i.jsx("span",{children:"关于"})]})]}),i.jsxs(Gt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[i.jsx(vn,{value:"appearance",className:"mt-0",children:i.jsx(ube,{})}),i.jsx(vn,{value:"security",className:"mt-0",children:i.jsx(dbe,{})}),i.jsx(vn,{value:"other",className:"mt-0",children:i.jsx(fbe,{})}),i.jsx(vn,{value:"about",className:"mt-0",children:i.jsx(hbe,{})})]})]})]})}function xL(e){const t=document.documentElement,r={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(r)t.style.setProperty("--primary",r.hsl),r.gradient?(t.style.setProperty("--primary-gradient",r.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const a=s=>{s=s.replace("#","");const l=parseInt(s.substring(0,2),16)/255,u=parseInt(s.substring(2,4),16)/255,d=parseInt(s.substring(4,6),16)/255,f=Math.max(l,u,d),m=Math.min(l,u,d);let p=0,g=0;const x=(f+m)/2;if(f!==m){const j=f-m;switch(g=x>.5?j/(2-f-m):j/(f+m),f){case l:p=((u-d)/j+(ulocalStorage.getItem("accent-color")||"blue");y.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";xL(f)},[]);const d=f=>{u(f),localStorage.setItem("accent-color",f),xL(f)};return i.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[i.jsx(c_,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),i.jsx(c_,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),i.jsx(c_,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Na,{value:"blue",current:l,onChange:d,label:"蓝色",colorClass:"bg-blue-500"}),i.jsx(Na,{value:"purple",current:l,onChange:d,label:"紫色",colorClass:"bg-purple-500"}),i.jsx(Na,{value:"green",current:l,onChange:d,label:"绿色",colorClass:"bg-green-500"}),i.jsx(Na,{value:"orange",current:l,onChange:d,label:"橙色",colorClass:"bg-orange-500"}),i.jsx(Na,{value:"pink",current:l,onChange:d,label:"粉色",colorClass:"bg-pink-500"}),i.jsx(Na,{value:"red",current:l,onChange:d,label:"红色",colorClass:"bg-red-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),i.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[i.jsx(Na,{value:"gradient-sunset",current:l,onChange:d,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),i.jsx(Na,{value:"gradient-ocean",current:l,onChange:d,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),i.jsx(Na,{value:"gradient-forest",current:l,onChange:d,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),i.jsx(Na,{value:"gradient-aurora",current:l,onChange:d,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),i.jsx(Na,{value:"gradient-fire",current:l,onChange:d,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),i.jsx(Na,{value:"gradient-twilight",current:l,onChange:d,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[i.jsx("div",{className:"flex-1",children:i.jsx("input",{type:"color",value:l.startsWith("#")?l:"#3b82f6",onChange:f=>d(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),i.jsx("div",{className:"flex-1",children:i.jsx(Ce,{type:"text",value:l,onChange:f=>d(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),i.jsxs("div",{children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),i.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[i.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(ne,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),i.jsx(dt,{id:"animations",checked:n,onCheckedChange:r})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-4",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5 flex-1",children:[i.jsx(ne,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),i.jsx(dt,{id:"waves-background",checked:a,onCheckedChange:s})]})})]})]})]})}function dbe(){const e=ua(),[t,n]=y.useState(""),[r,a]=y.useState(""),[s,l]=y.useState(!1),[u,d]=y.useState(!1),[f,m]=y.useState(!1),[p,g]=y.useState(!1),[x,j]=y.useState(!1),[w,b]=y.useState(!1),[N,E]=y.useState(""),[O,A]=y.useState(!1),{toast:C}=xr(),k=y.useMemo(()=>Cye(r),[r]),T=()=>localStorage.getItem("access-token")||"",M=async H=>{try{await navigator.clipboard.writeText(H),j(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},R=async()=>{if(!r.trim()){C({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!k.isValid){const H=k.rules.filter(G=>!G.passed).map(G=>G.label).join(", ");C({title:"格式错误",description:`Token 不符合要求: ${H}`,variant:"destructive"});return}m(!0);try{const H=T(),G=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${H}`},body:JSON.stringify({new_token:r.trim()})}),$=await G.json();G.ok&&$.success?(localStorage.setItem("access-token",r.trim()),a(""),t&&n(r.trim()),C({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):C({title:"更新失败",description:$.message||"无法更新 Token",variant:"destructive"})}catch(H){console.error("更新 Token 错误:",H),C({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{m(!1)}},L=async()=>{g(!0);try{const H=T(),G=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${H}`}}),$=await G.json();G.ok&&$.success?(localStorage.setItem("access-token",$.token),n($.token),E($.token),b(!0),A(!1),C({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):C({title:"生成失败",description:$.message||"无法生成新 Token",variant:"destructive"})}catch(H){console.error("生成 Token 错误:",H),C({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},D=async()=>{try{await navigator.clipboard.writeText(N),A(!0),C({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{C({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},U=()=>{b(!1),setTimeout(()=>{E(""),A(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},V=H=>{H||U()};return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsx(sr,{open:w,onOpenChange:V,children:i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(Xc,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),i.jsx(gr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[i.jsx(ne,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),i.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:N})]}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Xc,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"重要提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),i.jsx("li",{children:"请立即复制并保存到安全的位置"}),i.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),i.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),i.jsxs(qr,{className:"gap-2 sm:gap-0",children:[i.jsx(oe,{variant:"outline",onClick:D,className:"gap-2",children:O?i.jsxs(i.Fragment,{children:[i.jsx(cl,{className:"h-4 w-4 text-green-500"}),"已复制"]}):i.jsxs(i.Fragment,{children:[i.jsx(eC,{className:"h-4 w-4"}),"复制 Token"]})}),i.jsx(oe,{onClick:U,children:"我已保存,关闭"})]})]})}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),i.jsx("div",{className:"space-y-3 sm:space-y-4",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[i.jsxs("div",{className:"relative flex-1",children:[i.jsx(Ce,{id:"current-token",type:s?"text":"password",value:t||T(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),i.jsx("button",{onClick:()=>{t||n(T()),l(!s)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:s?"隐藏":"显示",children:s?i.jsx(nC,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ya,{className:"h-4 w-4 text-muted-foreground"})})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsx(oe,{variant:"outline",size:"icon",onClick:()=>M(T()),title:"复制到剪贴板",className:"flex-shrink-0",children:x?i.jsx(cl,{className:"h-4 w-4 text-green-500"}):i.jsx(eC,{className:"h-4 w-4"})}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:p,className:"gap-2 flex-1 sm:flex-none",children:[i.jsx(os,{className:ue("h-4 w-4",p&&"animate-spin")}),i.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),i.jsx("span",{className:"sm:hidden",children:"生成"})]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重新生成 Token"}),i.jsx(an,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:L,children:"确认生成"})]})]})]})]})]}),i.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),i.jsxs("div",{className:"relative",children:[i.jsx(Ce,{id:"new-token",type:u?"text":"password",value:r,onChange:H=>a(H.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),i.jsx("button",{onClick:()=>d(!u),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:u?"隐藏":"显示",children:u?i.jsx(nC,{className:"h-4 w-4 text-muted-foreground"}):i.jsx(Ya,{className:"h-4 w-4 text-muted-foreground"})})]}),r&&i.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),i.jsx("div",{className:"space-y-1.5",children:k.rules.map(H=>i.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[H.passed?i.jsx(Dr,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):i.jsx(JN,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),i.jsx("span",{className:ue(H.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:H.label})]},H.id))}),k.isValid&&i.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:i.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[i.jsx(cl,{className:"h-4 w-4"}),i.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),i.jsx(oe,{onClick:R,disabled:f||!k.isValid||!r,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),i.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[i.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),i.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),i.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),i.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),i.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),i.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),i.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function fbe(){const e=ua(),{toast:t}=xr(),[n,r]=y.useState(!1),a=async()=>{r(!0);try{const s=localStorage.getItem("access-token"),l=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${s}`}}),u=await l.json();l.ok&&u.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:u.message||"无法重置配置状态",variant:"destructive"})}catch(s){console.error("重置配置状态错误:",s),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{r(!1)}};return i.jsx("div",{className:"space-y-4 sm:space-y-6",children:i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),i.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[i.jsx("div",{className:"space-y-2",children:i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{variant:"outline",disabled:n,className:"gap-2",children:[i.jsx(Tge,{className:ue("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重新配置"}),i.jsx(an,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:a,children:"确认重置"})]})]})]})]})]})})}function hbe(){return i.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",fE]}),i.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("p",{children:["版本: ",dE]}),i.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),i.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",i.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"React 19.2.0"}),i.jsx("li",{children:"TypeScript 5.7.2"}),i.jsx("li",{children:"Vite 6.0.7"}),i.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"shadcn/ui"}),i.jsx("li",{children:"Radix UI"}),i.jsx("li",{children:"Tailwind CSS 3.4.17"}),i.jsx("li",{children:"Lucide Icons"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"后端"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Python 3.12+"}),i.jsx("li",{children:"FastAPI"}),i.jsx("li",{children:"Uvicorn"}),i.jsx("li",{children:"WebSocket"})]})]}),i.jsxs("div",{className:"space-y-1.5",children:[i.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),i.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[i.jsx("li",{children:"Bun / npm"}),i.jsx("li",{children:"ESLint 9.17.0"}),i.jsx("li",{children:"PostCSS"})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),i.jsx(Gt,{className:"h-[300px] sm:h-[400px]",children:i.jsxs("div",{className:"space-y-4 pr-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"React",description:"用户界面构建库",license:"MIT"}),i.jsx(pn,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),i.jsx(pn,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),i.jsx(pn,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),i.jsx(pn,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),i.jsx(pn,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),i.jsx(pn,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),i.jsx(pn,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),i.jsx(pn,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),i.jsx(pn,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),i.jsx(pn,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),i.jsx(pn,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),i.jsx(pn,{name:"Pydantic",description:"数据验证库",license:"MIT"}),i.jsx(pn,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),i.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[i.jsx(pn,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),i.jsx(pn,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),i.jsx(pn,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),i.jsx(pn,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[i.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:i.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[i.jsx("div",{className:"flex-shrink-0 mt-0.5",children:i.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:i.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function pn({name:e,description:t,license:n}){return i.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("p",{className:"font-medium text-foreground truncate",children:e}),i.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),i.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function c_({value:e,current:t,onChange:n,label:r,description:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ue("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("div",{className:"text-sm sm:text-base font-medium",children:r}),i.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:a})]}),i.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),i.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function Na({value:e,current:t,onChange:n,label:r,colorClass:a}){const s=t===e;return i.jsxs("button",{onClick:()=>n(e),className:ue("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",s?"border-primary bg-accent":"border-border"),children:[s&&i.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),i.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[i.jsx("div",{className:ue("h-8 w-8 sm:h-10 sm:w-10 rounded-full",a)}),i.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:r})]})]})}class mbe{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,r){return t[0]*n+t[1]*r}mix(t,n,r){return(1-r)*t+r*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const r=Math.floor(t)&255,a=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const s=this.fade(t),l=this.fade(n),u=this.perm[r]+a,d=this.perm[u],f=this.perm[u+1],m=this.perm[r+1]+a,p=this.perm[m],g=this.perm[m+1];return this.mix(this.mix(this.dot(this.grad3[d%12],t,n),this.dot(this.grad3[p%12],t-1,n),s),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[g%12],t-1,n-1),s),l)}}function pbe(){const e=y.useRef(null),t=y.useRef(null),n=y.useRef(void 0),r=y.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new mbe(Math.random()),bounding:null});return y.useEffect(()=>{const a=t.current,s=e.current;if(!a||!s)return;const l=r.current,u=()=>{const w=a.getBoundingClientRect();l.bounding=w,s.style.width=`${w.width}px`,s.style.height=`${w.height}px`},d=()=>{if(!l.bounding)return;const{width:w,height:b}=l.bounding;l.lines=[],l.paths.forEach(R=>R.remove()),l.paths=[];const N=10,E=32,O=w+200,A=b+30,C=Math.ceil(O/N),k=Math.ceil(A/E),T=(w-N*C)/2,M=(b-E*k)/2;for(let R=0;R<=C;R++){const L=[];for(let U=0;U<=k;U++){const V={x:T+N*R,y:M+E*U,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};L.push(V)}const D=document.createElementNS("http://www.w3.org/2000/svg","path");s.appendChild(D),l.paths.push(D),l.lines.push(L)}},f=w=>{const{lines:b,mouse:N,noise:E}=l;b.forEach(O=>{O.forEach(A=>{const C=E.perlin2((A.x+w*.0125)*.002,(A.y+w*.005)*.0015)*12;A.wave.x=Math.cos(C)*32,A.wave.y=Math.sin(C)*16;const k=A.x-N.sx,T=A.y-N.sy,M=Math.hypot(k,T),R=Math.max(175,N.vs);if(M{const N={x:w.x+w.wave.x+(b?w.cursor.x:0),y:w.y+w.wave.y+(b?w.cursor.y:0)};return N.x=Math.round(N.x*10)/10,N.y=Math.round(N.y*10)/10,N},p=()=>{const{lines:w,paths:b}=l;w.forEach((N,E)=>{let O=m(N[0],!1),A=`M ${O.x} ${O.y}`;N.forEach((C,k)=>{const T=k===N.length-1;O=m(C,!T),A+=`L ${O.x} ${O.y}`}),b[E].setAttribute("d",A)})},g=w=>{const{mouse:b}=l;b.sx+=(b.x-b.sx)*.1,b.sy+=(b.y-b.sy)*.1;const N=b.x-b.lx,E=b.y-b.ly,O=Math.hypot(N,E);b.v=O,b.vs+=(O-b.vs)*.1,b.vs=Math.min(100,b.vs),b.lx=b.x,b.ly=b.y,b.a=Math.atan2(E,N),a&&(a.style.setProperty("--x",`${b.sx}px`),a.style.setProperty("--y",`${b.sy}px`)),f(w),p(),n.current=requestAnimationFrame(g)},x=w=>{if(!l.bounding)return;const{mouse:b}=l;b.x=w.pageX-l.bounding.left,b.y=w.pageY-l.bounding.top+window.scrollY,b.set||(b.sx=b.x,b.sy=b.y,b.lx=b.x,b.ly=b.y,b.set=!0)},j=()=>{u(),d()};return u(),d(),window.addEventListener("resize",j),window.addEventListener("mousemove",x),n.current=requestAnimationFrame(g),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",x),n.current&&cancelAnimationFrame(n.current)}},[]),i.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[i.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),i.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:i.jsx("style",{children:` - path { - fill: none; - stroke: hsl(var(--primary) / 0.20); - stroke-width: 1px; - } - `})})]})}function vbe(){const e=ua();y.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function AF(){return!!localStorage.getItem("access-token")}function gbe(){const[e,t]=y.useState(""),[n,r]=y.useState(!1),[a,s]=y.useState(""),l=ua(),{enableWavesBackground:u,setEnableWavesBackground:d}=j8(),{theme:f,setTheme:m}=uE();y.useEffect(()=>{AF()&&l({to:"/"})},[l]);const g=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,x=()=>{m(g==="dark"?"light":"dark")},j=async w=>{if(w.preventDefault(),s(""),!e.trim()){s("请输入 Access Token");return}r(!0);try{const b=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),N=await b.json();if(b.ok&&N.valid){localStorage.setItem("access-token",e.trim());const E=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),O=await E.json();E.ok&&O.is_first_setup?l({to:"/setup"}):l({to:"/"})}else s(N.message||"Token 验证失败,请检查后重试")}catch(b){console.error("Token 验证错误:",b),s("连接服务器失败,请检查网络连接")}finally{r(!1)}};return i.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[u&&i.jsx(pbe,{}),i.jsxs(Ke,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[i.jsx("button",{onClick:x,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:g==="dark"?"切换到浅色模式":"切换到深色模式",children:g==="dark"?i.jsx(iC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):i.jsx(aC,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),i.jsxs(gt,{className:"space-y-4 text-center",children:[i.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(tL,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(yt,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),i.jsx(Wn,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),i.jsx(Pt,{children:i.jsxs("form",{onSubmit:j,className:"space-y-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),i.jsxs("div",{className:"relative",children:[i.jsx(dge,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),i.jsx(Ce,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:w=>t(w.target.value),className:ue("pl-10",a&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),a&&i.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[i.jsx(xl,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),i.jsx("span",{children:a})]}),i.jsx(oe,{type:"submit",className:"w-full",disabled:n,children:n?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),i.jsxs(sr,{children:[i.jsx(oF,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(Uve,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),i.jsxs(Kn,{className:"sm:max-w-md",children:[i.jsxs(Xn,{children:[i.jsxs(Zn,{className:"flex items-center gap-2",children:[i.jsx(tL,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),i.jsx(gr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(Qge,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),i.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[i.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),i.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(sE,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"flex-1 space-y-2",children:[i.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),i.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:i.jsx("code",{className:"text-primary",children:"data/webui.json"})}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",i.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),i.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:i.jsxs("div",{className:"flex gap-2",children:[i.jsx(xl,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),i.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[i.jsx("p",{className:"font-semibold",children:"安全提示"}),i.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[i.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),i.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[i.jsx(xh,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsxs(rn,{className:"flex items-center gap-2",children:[i.jsx(xh,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),i.jsx(an,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),i.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>d(!1),children:"关闭动画"})]})]})]})]})})]}),i.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:i.jsx("p",{children:Oye})})]})}const Qt=y.forwardRef(({className:e,...t},n)=>i.jsx("textarea",{className:ue("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));Qt.displayName="Textarea";var ybe=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],xbe=ybe.reduce((e,t)=>{const n=$h(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),bbe="Separator",bL="horizontal",wbe=["horizontal","vertical"],TF=y.forwardRef((e,t)=>{const{decorative:n,orientation:r=bL,...a}=e,s=jbe(r)?r:bL,u=n?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return i.jsx(xbe.div,{"data-orientation":s,...u,...a,ref:t})});TF.displayName=bbe;function jbe(e){return wbe.includes(e)}var kF=TF;const wh=y.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...r},a)=>i.jsx(kF,{ref:a,decorative:n,orientation:t,className:ue("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...r}));wh.displayName=kF.displayName;const Sbe=Qu("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Ht({className:e,variant:t,...n}){return i.jsx("div",{className:ue(Sbe({variant:t}),e),...n})}function _be({config:e,onChange:t}){const n=a=>{a.trim()&&!e.alias_names.includes(a.trim())&&t({...e,alias_names:[...e.alias_names,a.trim()]})},r=a=>{t({...e,alias_names:e.alias_names.filter((s,l)=>l!==a)})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"qq_account",children:"QQ账号 *"}),i.jsx(Ce,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:a=>t({...e,qq_account:Number(a.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"nickname",children:"昵称 *"}),i.jsx(Ce,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:a=>t({...e,nickname:a.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{children:"别名"}),i.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((a,s)=>i.jsxs(Ht,{variant:"secondary",className:"gap-1",children:[a,i.jsx("button",{type:"button",onClick:()=>r(s),className:"ml-1 hover:text-destructive",children:i.jsx(Zh,{className:"h-3 w-3"})})]},s))}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ce,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:a=>{a.key==="Enter"&&(n(a.target.value),a.target.value="")}}),i.jsx(oe,{type:"button",variant:"outline",onClick:()=>{const a=document.getElementById("alias_input");a&&(n(a.value),a.value="")},children:"添加"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function Nbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"personality",children:"人格特征 *"}),i.jsx(Qt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"reply_style",children:"表达风格 *"}),i.jsx(Qt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"interest",children:"兴趣 *"}),i.jsx(Qt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),i.jsx(wh,{}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"plan_style",children:"群聊说话规则 *"}),i.jsx(Qt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),i.jsx(Qt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function Cbe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),i.jsx(Ce,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"max_reg_num",children:"最大表情包数量"}),i.jsx(Ce,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"do_replace",children:"达到最大数量时替换"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),i.jsx(dt,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ce,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),i.jsx(wh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"steal_emoji",children:"偷取表情包"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),i.jsx(dt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"content_filtration",children:"启用表情包过滤"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),i.jsx(dt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ce,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function Obe({config:e,onChange:t}){return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"enable_tool",children:"启用工具系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),i.jsx(dt,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),i.jsx(wh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"enable_mood",children:"启用情绪系统"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),i.jsx(dt,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&i.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),i.jsx(Ce,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsx(ne,{htmlFor:"emotion_style",children:"情感特征"}),i.jsx(Qt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),i.jsx(wh,{}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(ne,{htmlFor:"all_global",children:"启用全局黑话模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),i.jsx(dt,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function Ze(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function st(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function Ebe(){const e=await Ze("/api/webui/config/bot",{method:"GET",headers:st()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function Abe(){const e=await Ze("/api/webui/config/bot",{method:"GET",headers:st()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function Tbe(){const e=await Ze("/api/webui/config/bot",{method:"GET",headers:st()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function kbe(){const e=await Ze("/api/webui/config/bot",{method:"GET",headers:st()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,r=n.tool||{},a=n.mood||{},s=n.jargon||{};return{enable_tool:r.enable_tool??!0,enable_mood:a.enable_mood??!1,mood_update_threshold:a.mood_update_threshold,emotion_style:a.emotion_style,all_global:s.all_global??!0}}async function Mbe(e){const t=await Ze("/api/webui/config/bot/section/bot",{method:"POST",headers:st(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function Pbe(e){const t=await Ze("/api/webui/config/bot/section/personality",{method:"POST",headers:st(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function Rbe(e){const t=await Ze("/api/webui/config/bot/section/emoji",{method:"POST",headers:st(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function Dbe(e){const t=[];t.push(Ze("/api/webui/config/bot/section/tool",{method:"POST",headers:st(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(Ze("/api/webui/config/bot/section/jargon",{method:"POST",headers:st(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(Ze("/api/webui/config/bot/section/mood",{method:"POST",headers:st(),body:JSON.stringify(n)}));const r=await Promise.all(t);for(const a of r)if(!a.ok){const s=await a.json();throw new Error(s.detail||"保存其他配置失败")}return{success:!0}}async function wL(){const e=localStorage.getItem("access-token"),t=await Ze("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function $be(){const e=ua(),{toast:t}=xr(),[n,r]=y.useState(0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!0),[m,p]=y.useState({qq_account:0,nickname:"",alias_names:[]}),[g,x]=y.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.请控制你的发言频率,不要太过频繁的发言 -4.如果有人对你感到厌烦,请减少回复 -5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.某句话如果已经被回复过,不要重复回复`}),[j,w]=y.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[b,N]=y.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),E=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:Cve},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:x8},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:cE},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Ha},{id:"complete",title:"完成设置",description:"后续配置提示",icon:xh}],O=(n+1)/E.length*100;y.useEffect(()=>{(async()=>{try{f(!0);const[D,U,V,H]=await Promise.all([Ebe(),Abe(),Tbe(),kbe()]);p(D),x(U),w(V),N(H)}catch(D){t({title:"加载配置失败",description:D instanceof Error?D.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const A=async()=>{u(!0);try{switch(n){case 0:await Mbe(m);break;case 1:await Pbe(g);break;case 2:await Rbe(j);break;case 3:await Dbe(b);break}return t({title:"保存成功",description:`${E[n].title}配置已保存`}),!0}catch(L){return t({title:"保存失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"}),!1}finally{u(!1)}},C=async()=>{await A()&&n{n>0&&r(n-1)},T=async()=>{s(!0);try{if(!await A()){s(!1);return}await wL(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(L){t({title:"完成失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}finally{s(!1)}},M=async()=>{try{await wL(),e({to:"/"})}catch(L){t({title:"跳过失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}},R=()=>{switch(n){case 0:return i.jsx(_be,{config:m,onChange:p});case 1:return i.jsx(Nbe,{config:g,onChange:x});case 2:return i.jsx(Cbe,{config:j,onChange:w});case 3:return i.jsx(Obe,{config:b,onChange:N});case 4:return i.jsxs("div",{className:"space-y-6 text-center py-8",children:[i.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:i.jsx(xh,{className:"h-8 w-8 text-primary",strokeWidth:2})}),i.jsxs("div",{className:"space-y-3",children:[i.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"添加模型"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"mt-0.5",children:i.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),i.jsxs("div",{children:[i.jsx("p",{className:"font-medium",children:"配置模型任务"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return i.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[i.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[i.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),i.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),d?i.jsxs("div",{className:"relative z-10 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:i.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),i.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),i.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[i.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[i.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:i.jsx(Gge,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),i.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),i.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",fE," 的初始配置"]})]}),i.jsxs("div",{className:"mb-6 md:mb-8",children:[i.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[i.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",E.length]}),i.jsxs("span",{className:"font-medium text-primary",children:[Math.round(O),"%"]})]}),i.jsx(Ih,{value:O,className:"h-2"})]}),i.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:E.map((L,D)=>{const U=L.icon;return i.jsxs("div",{className:ue("flex flex-1 flex-col items-center gap-1 md:gap-2",De({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[i.jsx(kg,{className:"h-4 w-4"}),"返回首页"]}),i.jsxs(oe,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[i.jsx(m8,{className:"h-4 w-4"}),"返回上一页"]})]}),i.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:i.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var PF=["PageUp","PageDown"],RF=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],DF={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Ju="Slider",[lC,Ibe,Lbe]=Rh(Ju),[$F]=yr(Ju,[Lbe]),[zbe,Vy]=$F(Ju),IF=y.forwardRef((e,t)=>{const{name:n,min:r=0,max:a=100,step:s=1,orientation:l="horizontal",disabled:u=!1,minStepsBetweenThumbs:d=0,defaultValue:f=[r],value:m,onValueChange:p=()=>{},onValueCommit:g=()=>{},inverted:x=!1,form:j,...w}=e,b=y.useRef(new Set),N=y.useRef(0),O=l==="horizontal"?Bbe:qbe,[A=[],C]=Ta({prop:m,defaultProp:f,onChange:D=>{[...b.current][N.current]?.focus(),p(D)}}),k=y.useRef(A);function T(D){const U=Vbe(A,D);L(D,U)}function M(D){L(D,N.current)}function R(){const D=k.current[N.current];A[N.current]!==D&&g(A)}function L(D,U,{commit:V}={commit:!1}){const H=Xbe(s),G=Zbe(Math.round((D-r)/s)*s+r,H),$=Df(G,[r,a]);C((I=[])=>{const q=Hbe(I,$,U);if(Kbe(q,d*s)){N.current=q.indexOf($);const Z=String(q)!==String(I);return Z&&V&&g(q),Z?q:I}else return I})}return i.jsx(zbe,{scope:e.__scopeSlider,name:n,disabled:u,min:r,max:a,valueIndexToChangeRef:N,thumbs:b.current,values:A,orientation:l,form:j,children:i.jsx(lC.Provider,{scope:e.__scopeSlider,children:i.jsx(lC.Slot,{scope:e.__scopeSlider,children:i.jsx(O,{"aria-disabled":u,"data-disabled":u?"":void 0,...w,ref:t,onPointerDown:Ne(w.onPointerDown,()=>{u||(k.current=A)}),min:r,max:a,inverted:x,onSlideStart:u?void 0:T,onSlideMove:u?void 0:M,onSlideEnd:u?void 0:R,onHomeKeyDown:()=>!u&&L(r,0,{commit:!0}),onEndKeyDown:()=>!u&&L(a,A.length-1,{commit:!0}),onStepKeyDown:({event:D,direction:U})=>{if(!u){const G=PF.includes(D.key)||D.shiftKey&&RF.includes(D.key)?10:1,$=N.current,I=A[$],q=s*G*U;L(I+q,$,{commit:!0})}}})})})})});IF.displayName=Ju;var[LF,zF]=$F(Ju,{startEdge:"left",endEdge:"right",size:"width",direction:1}),Bbe=y.forwardRef((e,t)=>{const{min:n,max:r,dir:a,inverted:s,onSlideStart:l,onSlideMove:u,onSlideEnd:d,onStepKeyDown:f,...m}=e,[p,g]=y.useState(null),x=Ue(t,O=>g(O)),j=y.useRef(void 0),w=Uu(a),b=w==="ltr",N=b&&!s||!b&&s;function E(O){const A=j.current||p.getBoundingClientRect(),C=[0,A.width],T=wE(C,N?[n,r]:[r,n]);return j.current=A,T(O-A.left)}return i.jsx(LF,{scope:e.__scopeSlider,startEdge:N?"left":"right",endEdge:N?"right":"left",direction:N?1:-1,size:"width",children:i.jsx(BF,{dir:w,"data-orientation":"horizontal",...m,ref:x,style:{...m.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:O=>{const A=E(O.clientX);l?.(A)},onSlideMove:O=>{const A=E(O.clientX);u?.(A)},onSlideEnd:()=>{j.current=void 0,d?.()},onStepKeyDown:O=>{const C=DF[N?"from-left":"from-right"].includes(O.key);f?.({event:O,direction:C?-1:1})}})})}),qbe=y.forwardRef((e,t)=>{const{min:n,max:r,inverted:a,onSlideStart:s,onSlideMove:l,onSlideEnd:u,onStepKeyDown:d,...f}=e,m=y.useRef(null),p=Ue(t,m),g=y.useRef(void 0),x=!a;function j(w){const b=g.current||m.current.getBoundingClientRect(),N=[0,b.height],O=wE(N,x?[r,n]:[n,r]);return g.current=b,O(w-b.top)}return i.jsx(LF,{scope:e.__scopeSlider,startEdge:x?"bottom":"top",endEdge:x?"top":"bottom",size:"height",direction:x?1:-1,children:i.jsx(BF,{"data-orientation":"vertical",...f,ref:p,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:w=>{const b=j(w.clientY);s?.(b)},onSlideMove:w=>{const b=j(w.clientY);l?.(b)},onSlideEnd:()=>{g.current=void 0,u?.()},onStepKeyDown:w=>{const N=DF[x?"from-bottom":"from-top"].includes(w.key);d?.({event:w,direction:N?-1:1})}})})}),BF=y.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:r,onSlideMove:a,onSlideEnd:s,onHomeKeyDown:l,onEndKeyDown:u,onStepKeyDown:d,...f}=e,m=Vy(Ju,n);return i.jsx($e.span,{...f,ref:t,onKeyDown:Ne(e.onKeyDown,p=>{p.key==="Home"?(l(p),p.preventDefault()):p.key==="End"?(u(p),p.preventDefault()):PF.concat(RF).includes(p.key)&&(d(p),p.preventDefault())}),onPointerDown:Ne(e.onPointerDown,p=>{const g=p.target;g.setPointerCapture(p.pointerId),p.preventDefault(),m.thumbs.has(g)?g.focus():r(p)}),onPointerMove:Ne(e.onPointerMove,p=>{p.target.hasPointerCapture(p.pointerId)&&a(p)}),onPointerUp:Ne(e.onPointerUp,p=>{const g=p.target;g.hasPointerCapture(p.pointerId)&&(g.releasePointerCapture(p.pointerId),s(p))})})}),qF="SliderTrack",FF=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Vy(qF,n);return i.jsx($e.span,{"data-disabled":a.disabled?"":void 0,"data-orientation":a.orientation,...r,ref:t})});FF.displayName=qF;var cC="SliderRange",UF=y.forwardRef((e,t)=>{const{__scopeSlider:n,...r}=e,a=Vy(cC,n),s=zF(cC,n),l=y.useRef(null),u=Ue(t,l),d=a.values.length,f=a.values.map(g=>VF(g,a.min,a.max)),m=d>1?Math.min(...f):0,p=100-Math.max(...f);return i.jsx($e.span,{"data-orientation":a.orientation,"data-disabled":a.disabled?"":void 0,...r,ref:u,style:{...e.style,[s.startEdge]:m+"%",[s.endEdge]:p+"%"}})});UF.displayName=cC;var uC="SliderThumb",HF=y.forwardRef((e,t)=>{const n=Ibe(e.__scopeSlider),[r,a]=y.useState(null),s=Ue(t,u=>a(u)),l=y.useMemo(()=>r?n().findIndex(u=>u.ref.current===r):-1,[n,r]);return i.jsx(Fbe,{...e,ref:s,index:l})}),Fbe=y.forwardRef((e,t)=>{const{__scopeSlider:n,index:r,name:a,...s}=e,l=Vy(uC,n),u=zF(uC,n),[d,f]=y.useState(null),m=Ue(t,E=>f(E)),p=d?l.form||!!d.closest("form"):!0,g=Ly(d),x=l.values[r],j=x===void 0?0:VF(x,l.min,l.max),w=Wbe(r,l.values.length),b=g?.[u.size],N=b?Gbe(b,j,u.direction):0;return y.useEffect(()=>{if(d)return l.thumbs.add(d),()=>{l.thumbs.delete(d)}},[d,l.thumbs]),i.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[u.startEdge]:`calc(${j}% + ${N}px)`},children:[i.jsx(lC.ItemSlot,{scope:e.__scopeSlider,children:i.jsx($e.span,{role:"slider","aria-label":e["aria-label"]||w,"aria-valuemin":l.min,"aria-valuenow":x,"aria-valuemax":l.max,"aria-orientation":l.orientation,"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,tabIndex:l.disabled?void 0:0,...s,ref:m,style:x===void 0?{display:"none"}:e.style,onFocus:Ne(e.onFocus,()=>{l.valueIndexToChangeRef.current=r})})}),p&&i.jsx(WF,{name:a??(l.name?l.name+(l.values.length>1?"[]":""):void 0),form:l.form,value:x},r)]})});HF.displayName=uC;var Ube="RadioBubbleInput",WF=y.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(a,r),l=Iy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLInputElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("input",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.input,{style:{display:"none"},...n,ref:s,defaultValue:t})});WF.displayName=Ube;function Hbe(e=[],t,n){const r=[...e];return r[n]=t,r.sort((a,s)=>a-s)}function VF(e,t,n){const s=100/(n-t)*(e-t);return Df(s,[0,100])}function Wbe(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function Vbe(e,t){if(e.length===1)return 0;const n=e.map(a=>Math.abs(a-t)),r=Math.min(...n);return n.indexOf(r)}function Gbe(e,t,n){const r=e/2,s=wE([0,50],[0,r]);return(r-s(t)*n)*n}function Ybe(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function Kbe(e,t){if(t>0){const n=Ybe(e);return Math.min(...n)>=t}return!0}function wE(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Xbe(e){return(String(e).split(".")[1]||"").length}function Zbe(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var GF=IF,Qbe=FF,Jbe=UF,e0e=HF;const Gy=y.forwardRef(({className:e,...t},n)=>i.jsxs(GF,{ref:n,className:ue("relative flex w-full touch-none select-none items-center",e),...t,children:[i.jsx(Qbe,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:i.jsx(Jbe,{className:"absolute h-full bg-primary"})}),i.jsx(e0e,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));Gy.displayName=GF.displayName;const t0e=["top","right","bottom","left"],io=Math.min,aa=Math.max,Rg=Math.round,Jp=Math.floor,xi=e=>({x:e,y:e}),n0e={left:"right",right:"left",bottom:"top",top:"bottom"},r0e={start:"end",end:"start"};function dC(e,t,n){return aa(e,io(t,n))}function ds(e,t){return typeof e=="function"?e(t):e}function fs(e){return e.split("-")[0]}function ed(e){return e.split("-")[1]}function jE(e){return e==="x"?"y":"x"}function SE(e){return e==="y"?"height":"width"}const a0e=new Set(["top","bottom"]);function mi(e){return a0e.has(fs(e))?"y":"x"}function _E(e){return jE(mi(e))}function i0e(e,t,n){n===void 0&&(n=!1);const r=ed(e),a=_E(e),s=SE(a);let l=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(l=Dg(l)),[l,Dg(l)]}function s0e(e){const t=Dg(e);return[fC(e),t,fC(t)]}function fC(e){return e.replace(/start|end/g,t=>r0e[t])}const jL=["left","right"],SL=["right","left"],o0e=["top","bottom"],l0e=["bottom","top"];function c0e(e,t,n){switch(e){case"top":case"bottom":return n?t?SL:jL:t?jL:SL;case"left":case"right":return t?o0e:l0e;default:return[]}}function u0e(e,t,n,r){const a=ed(e);let s=c0e(fs(e),n==="start",r);return a&&(s=s.map(l=>l+"-"+a),t&&(s=s.concat(s.map(fC)))),s}function Dg(e){return e.replace(/left|right|bottom|top/g,t=>n0e[t])}function d0e(e){return{top:0,right:0,bottom:0,left:0,...e}}function YF(e){return typeof e!="number"?d0e(e):{top:e,right:e,bottom:e,left:e}}function $g(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function _L(e,t,n){let{reference:r,floating:a}=e;const s=mi(t),l=_E(t),u=SE(l),d=fs(t),f=s==="y",m=r.x+r.width/2-a.width/2,p=r.y+r.height/2-a.height/2,g=r[u]/2-a[u]/2;let x;switch(d){case"top":x={x:m,y:r.y-a.height};break;case"bottom":x={x:m,y:r.y+r.height};break;case"right":x={x:r.x+r.width,y:p};break;case"left":x={x:r.x-a.width,y:p};break;default:x={x:r.x,y:r.y}}switch(ed(t)){case"start":x[l]-=g*(n&&f?-1:1);break;case"end":x[l]+=g*(n&&f?-1:1);break}return x}const f0e=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:l}=n,u=s.filter(Boolean),d=await(l.isRTL==null?void 0:l.isRTL(t));let f=await l.getElementRects({reference:e,floating:t,strategy:a}),{x:m,y:p}=_L(f,r,d),g=r,x={},j=0;for(let w=0;w({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:l,elements:u,middlewareData:d}=t,{element:f,padding:m=0}=ds(e,t)||{};if(f==null)return{};const p=YF(m),g={x:n,y:r},x=_E(a),j=SE(x),w=await l.getDimensions(f),b=x==="y",N=b?"top":"left",E=b?"bottom":"right",O=b?"clientHeight":"clientWidth",A=s.reference[j]+s.reference[x]-g[x]-s.floating[j],C=g[x]-s.reference[x],k=await(l.getOffsetParent==null?void 0:l.getOffsetParent(f));let T=k?k[O]:0;(!T||!await(l.isElement==null?void 0:l.isElement(k)))&&(T=u.floating[O]||s.floating[j]);const M=A/2-C/2,R=T/2-w[j]/2-1,L=io(p[N],R),D=io(p[E],R),U=L,V=T-w[j]-D,H=T/2-w[j]/2+M,G=dC(U,H,V),$=!d.arrow&&ed(a)!=null&&H!==G&&s.reference[j]/2-(HH<=0)){var D,U;const H=(((D=s.flip)==null?void 0:D.index)||0)+1,G=T[H];if(G&&(!(p==="alignment"?E!==mi(G):!1)||L.every(q=>mi(q.placement)===E?q.overflows[0]>0:!0)))return{data:{index:H,overflows:L},reset:{placement:G}};let $=(U=L.filter(I=>I.overflows[0]<=0).sort((I,q)=>I.overflows[1]-q.overflows[1])[0])==null?void 0:U.placement;if(!$)switch(x){case"bestFit":{var V;const I=(V=L.filter(q=>{if(k){const Z=mi(q.placement);return Z===E||Z==="y"}return!0}).map(q=>[q.placement,q.overflows.filter(Z=>Z>0).reduce((Z,ee)=>Z+ee,0)]).sort((q,Z)=>q[1]-Z[1])[0])==null?void 0:V[0];I&&($=I);break}case"initialPlacement":$=u;break}if(a!==$)return{reset:{placement:$}}}return{}}}};function NL(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function CL(e){return t0e.some(t=>e[t]>=0)}const p0e=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:r="referenceHidden",...a}=ds(e,t);switch(r){case"referenceHidden":{const s=await jh(t,{...a,elementContext:"reference"}),l=NL(s,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:CL(l)}}}case"escaped":{const s=await jh(t,{...a,altBoundary:!0}),l=NL(s,n.floating);return{data:{escapedOffsets:l,escaped:CL(l)}}}default:return{}}}}},KF=new Set(["left","top"]);async function v0e(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),l=fs(n),u=ed(n),d=mi(n)==="y",f=KF.has(l)?-1:1,m=s&&d?-1:1,p=ds(t,e);let{mainAxis:g,crossAxis:x,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return u&&typeof j=="number"&&(x=u==="end"?j*-1:j),d?{x:x*m,y:g*f}:{x:g*f,y:x*m}}const g0e=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:l,middlewareData:u}=t,d=await v0e(t,e);return l===((n=u.offset)==null?void 0:n.placement)&&(r=u.arrow)!=null&&r.alignmentOffset?{}:{x:a+d.x,y:s+d.y,data:{...d,placement:l}}}}},y0e=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:u={fn:b=>{let{x:N,y:E}=b;return{x:N,y:E}}},...d}=ds(e,t),f={x:n,y:r},m=await jh(t,d),p=mi(fs(a)),g=jE(p);let x=f[g],j=f[p];if(s){const b=g==="y"?"top":"left",N=g==="y"?"bottom":"right",E=x+m[b],O=x-m[N];x=dC(E,x,O)}if(l){const b=p==="y"?"top":"left",N=p==="y"?"bottom":"right",E=j+m[b],O=j-m[N];j=dC(E,j,O)}const w=u.fn({...t,[g]:x,[p]:j});return{...w,data:{x:w.x-n,y:w.y-r,enabled:{[g]:s,[p]:l}}}}}},x0e=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:a,rects:s,middlewareData:l}=t,{offset:u=0,mainAxis:d=!0,crossAxis:f=!0}=ds(e,t),m={x:n,y:r},p=mi(a),g=jE(p);let x=m[g],j=m[p];const w=ds(u,t),b=typeof w=="number"?{mainAxis:w,crossAxis:0}:{mainAxis:0,crossAxis:0,...w};if(d){const O=g==="y"?"height":"width",A=s.reference[g]-s.floating[O]+b.mainAxis,C=s.reference[g]+s.reference[O]-b.mainAxis;xC&&(x=C)}if(f){var N,E;const O=g==="y"?"width":"height",A=KF.has(fs(a)),C=s.reference[p]-s.floating[O]+(A&&((N=l.offset)==null?void 0:N[p])||0)+(A?0:b.crossAxis),k=s.reference[p]+s.reference[O]+(A?0:((E=l.offset)==null?void 0:E[p])||0)-(A?b.crossAxis:0);jk&&(j=k)}return{[g]:x,[p]:j}}}},b0e=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:a,rects:s,platform:l,elements:u}=t,{apply:d=()=>{},...f}=ds(e,t),m=await jh(t,f),p=fs(a),g=ed(a),x=mi(a)==="y",{width:j,height:w}=s.floating;let b,N;p==="top"||p==="bottom"?(b=p,N=g===(await(l.isRTL==null?void 0:l.isRTL(u.floating))?"start":"end")?"left":"right"):(N=p,b=g==="end"?"top":"bottom");const E=w-m.top-m.bottom,O=j-m.left-m.right,A=io(w-m[b],E),C=io(j-m[N],O),k=!t.middlewareData.shift;let T=A,M=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(M=O),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(T=E),k&&!g){const L=aa(m.left,0),D=aa(m.right,0),U=aa(m.top,0),V=aa(m.bottom,0);x?M=j-2*(L!==0||D!==0?L+D:aa(m.left,m.right)):T=w-2*(U!==0||V!==0?U+V:aa(m.top,m.bottom))}await d({...t,availableWidth:M,availableHeight:T});const R=await l.getDimensions(u.floating);return j!==R.width||w!==R.height?{reset:{rects:!0}}:{}}}};function Yy(){return typeof window<"u"}function td(e){return XF(e)?(e.nodeName||"").toLowerCase():"#document"}function la(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function Oi(e){var t;return(t=(XF(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function XF(e){return Yy()?e instanceof Node||e instanceof la(e).Node:!1}function Ka(e){return Yy()?e instanceof Element||e instanceof la(e).Element:!1}function Si(e){return Yy()?e instanceof HTMLElement||e instanceof la(e).HTMLElement:!1}function OL(e){return!Yy()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof la(e).ShadowRoot}const w0e=new Set(["inline","contents"]);function em(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Xa(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!w0e.has(a)}const j0e=new Set(["table","td","th"]);function S0e(e){return j0e.has(td(e))}const _0e=[":popover-open",":modal"];function Ky(e){return _0e.some(t=>{try{return e.matches(t)}catch{return!1}})}const N0e=["transform","translate","scale","rotate","perspective"],C0e=["transform","translate","scale","rotate","perspective","filter"],O0e=["paint","layout","strict","content"];function NE(e){const t=CE(),n=Ka(e)?Xa(e):e;return N0e.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||C0e.some(r=>(n.willChange||"").includes(r))||O0e.some(r=>(n.contain||"").includes(r))}function E0e(e){let t=so(e);for(;Si(t)&&!$u(t);){if(NE(t))return t;if(Ky(t))return null;t=so(t)}return null}function CE(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const A0e=new Set(["html","body","#document"]);function $u(e){return A0e.has(td(e))}function Xa(e){return la(e).getComputedStyle(e)}function Xy(e){return Ka(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function so(e){if(td(e)==="html")return e;const t=e.assignedSlot||e.parentNode||OL(e)&&e.host||Oi(e);return OL(t)?t.host:t}function ZF(e){const t=so(e);return $u(t)?e.ownerDocument?e.ownerDocument.body:e.body:Si(t)&&em(t)?t:ZF(t)}function Sh(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=ZF(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),l=la(a);if(s){const u=hC(l);return t.concat(l,l.visualViewport||[],em(a)?a:[],u&&n?Sh(u):[])}return t.concat(a,Sh(a,[],n))}function hC(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function QF(e){const t=Xa(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=Si(e),s=a?e.offsetWidth:n,l=a?e.offsetHeight:r,u=Rg(n)!==s||Rg(r)!==l;return u&&(n=s,r=l),{width:n,height:r,$:u}}function OE(e){return Ka(e)?e:e.contextElement}function Jc(e){const t=OE(e);if(!Si(t))return xi(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=QF(t);let l=(s?Rg(n.width):n.width)/r,u=(s?Rg(n.height):n.height)/a;return(!l||!Number.isFinite(l))&&(l=1),(!u||!Number.isFinite(u))&&(u=1),{x:l,y:u}}const T0e=xi(0);function JF(e){const t=la(e);return!CE()||!t.visualViewport?T0e:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function k0e(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==la(e)?!1:t}function wl(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=OE(e);let l=xi(1);t&&(r?Ka(r)&&(l=Jc(r)):l=Jc(e));const u=k0e(s,n,r)?JF(s):xi(0);let d=(a.left+u.x)/l.x,f=(a.top+u.y)/l.y,m=a.width/l.x,p=a.height/l.y;if(s){const g=la(s),x=r&&Ka(r)?la(r):r;let j=g,w=hC(j);for(;w&&r&&x!==j;){const b=Jc(w),N=w.getBoundingClientRect(),E=Xa(w),O=N.left+(w.clientLeft+parseFloat(E.paddingLeft))*b.x,A=N.top+(w.clientTop+parseFloat(E.paddingTop))*b.y;d*=b.x,f*=b.y,m*=b.x,p*=b.y,d+=O,f+=A,j=la(w),w=hC(j)}}return $g({width:m,height:p,x:d,y:f})}function Zy(e,t){const n=Xy(e).scrollLeft;return t?t.left+n:wl(Oi(e)).left+n}function eU(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Zy(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function M0e(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",l=Oi(r),u=t?Ky(t.floating):!1;if(r===l||u&&s)return n;let d={scrollLeft:0,scrollTop:0},f=xi(1);const m=xi(0),p=Si(r);if((p||!p&&!s)&&((td(r)!=="body"||em(l))&&(d=Xy(r)),Si(r))){const x=wl(r);f=Jc(r),m.x=x.x+r.clientLeft,m.y=x.y+r.clientTop}const g=l&&!p&&!s?eU(l,d):xi(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-d.scrollLeft*f.x+m.x+g.x,y:n.y*f.y-d.scrollTop*f.y+m.y+g.y}}function P0e(e){return Array.from(e.getClientRects())}function R0e(e){const t=Oi(e),n=Xy(e),r=e.ownerDocument.body,a=aa(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=aa(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let l=-n.scrollLeft+Zy(e);const u=-n.scrollTop;return Xa(r).direction==="rtl"&&(l+=aa(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:l,y:u}}const EL=25;function D0e(e,t){const n=la(e),r=Oi(e),a=n.visualViewport;let s=r.clientWidth,l=r.clientHeight,u=0,d=0;if(a){s=a.width,l=a.height;const m=CE();(!m||m&&t==="fixed")&&(u=a.offsetLeft,d=a.offsetTop)}const f=Zy(r);if(f<=0){const m=r.ownerDocument,p=m.body,g=getComputedStyle(p),x=m.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,j=Math.abs(r.clientWidth-p.clientWidth-x);j<=EL&&(s-=j)}else f<=EL&&(s+=f);return{width:s,height:l,x:u,y:d}}const $0e=new Set(["absolute","fixed"]);function I0e(e,t){const n=wl(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=Si(e)?Jc(e):xi(1),l=e.clientWidth*s.x,u=e.clientHeight*s.y,d=a*s.x,f=r*s.y;return{width:l,height:u,x:d,y:f}}function AL(e,t,n){let r;if(t==="viewport")r=D0e(e,n);else if(t==="document")r=R0e(Oi(e));else if(Ka(t))r=I0e(t,n);else{const a=JF(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return $g(r)}function tU(e,t){const n=so(e);return n===t||!Ka(n)||$u(n)?!1:Xa(n).position==="fixed"||tU(n,t)}function L0e(e,t){const n=t.get(e);if(n)return n;let r=Sh(e,[],!1).filter(u=>Ka(u)&&td(u)!=="body"),a=null;const s=Xa(e).position==="fixed";let l=s?so(e):e;for(;Ka(l)&&!$u(l);){const u=Xa(l),d=NE(l);!d&&u.position==="fixed"&&(a=null),(s?!d&&!a:!d&&u.position==="static"&&!!a&&$0e.has(a.position)||em(l)&&!d&&tU(e,l))?r=r.filter(m=>m!==l):a=u,l=so(l)}return t.set(e,r),r}function z0e(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const l=[...n==="clippingAncestors"?Ky(t)?[]:L0e(t,this._c):[].concat(n),r],u=l[0],d=l.reduce((f,m)=>{const p=AL(t,m,a);return f.top=aa(p.top,f.top),f.right=io(p.right,f.right),f.bottom=io(p.bottom,f.bottom),f.left=aa(p.left,f.left),f},AL(t,u,a));return{width:d.right-d.left,height:d.bottom-d.top,x:d.left,y:d.top}}function B0e(e){const{width:t,height:n}=QF(e);return{width:t,height:n}}function q0e(e,t,n){const r=Si(t),a=Oi(t),s=n==="fixed",l=wl(e,!0,s,t);let u={scrollLeft:0,scrollTop:0};const d=xi(0);function f(){d.x=Zy(a)}if(r||!r&&!s)if((td(t)!=="body"||em(a))&&(u=Xy(t)),r){const x=wl(t,!0,s,t);d.x=x.x+t.clientLeft,d.y=x.y+t.clientTop}else a&&f();s&&!r&&a&&f();const m=a&&!r&&!s?eU(a,u):xi(0),p=l.left+u.scrollLeft-d.x-m.x,g=l.top+u.scrollTop-d.y-m.y;return{x:p,y:g,width:l.width,height:l.height}}function u_(e){return Xa(e).position==="static"}function TL(e,t){if(!Si(e)||Xa(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return Oi(e)===n&&(n=n.ownerDocument.body),n}function nU(e,t){const n=la(e);if(Ky(e))return n;if(!Si(e)){let a=so(e);for(;a&&!$u(a);){if(Ka(a)&&!u_(a))return a;a=so(a)}return n}let r=TL(e,t);for(;r&&S0e(r)&&u_(r);)r=TL(r,t);return r&&$u(r)&&u_(r)&&!NE(r)?n:r||E0e(e)||n}const F0e=async function(e){const t=this.getOffsetParent||nU,n=this.getDimensions,r=await n(e.floating);return{reference:q0e(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function U0e(e){return Xa(e).direction==="rtl"}const H0e={convertOffsetParentRelativeRectToViewportRelativeRect:M0e,getDocumentElement:Oi,getClippingRect:z0e,getOffsetParent:nU,getElementRects:F0e,getClientRects:P0e,getDimensions:B0e,getScale:Jc,isElement:Ka,isRTL:U0e};function rU(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function W0e(e,t){let n=null,r;const a=Oi(e);function s(){var u;clearTimeout(r),(u=n)==null||u.disconnect(),n=null}function l(u,d){u===void 0&&(u=!1),d===void 0&&(d=1),s();const f=e.getBoundingClientRect(),{left:m,top:p,width:g,height:x}=f;if(u||t(),!g||!x)return;const j=Jp(p),w=Jp(a.clientWidth-(m+g)),b=Jp(a.clientHeight-(p+x)),N=Jp(m),O={rootMargin:-j+"px "+-w+"px "+-b+"px "+-N+"px",threshold:aa(0,io(1,d))||1};let A=!0;function C(k){const T=k[0].intersectionRatio;if(T!==d){if(!A)return l();T?l(!1,T):r=setTimeout(()=>{l(!1,1e-7)},1e3)}T===1&&!rU(f,e.getBoundingClientRect())&&l(),A=!1}try{n=new IntersectionObserver(C,{...O,root:a.ownerDocument})}catch{n=new IntersectionObserver(C,O)}n.observe(e)}return l(!0),s}function V0e(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:u=typeof IntersectionObserver=="function",animationFrame:d=!1}=r,f=OE(e),m=a||s?[...f?Sh(f):[],...Sh(t)]:[];m.forEach(N=>{a&&N.addEventListener("scroll",n,{passive:!0}),s&&N.addEventListener("resize",n)});const p=f&&u?W0e(f,n):null;let g=-1,x=null;l&&(x=new ResizeObserver(N=>{let[E]=N;E&&E.target===f&&x&&(x.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var O;(O=x)==null||O.observe(t)})),n()}),f&&!d&&x.observe(f),x.observe(t));let j,w=d?wl(e):null;d&&b();function b(){const N=wl(e);w&&!rU(w,N)&&n(),w=N,j=requestAnimationFrame(b)}return n(),()=>{var N;m.forEach(E=>{a&&E.removeEventListener("scroll",n),s&&E.removeEventListener("resize",n)}),p?.(),(N=x)==null||N.disconnect(),x=null,d&&cancelAnimationFrame(j)}}const G0e=g0e,Y0e=y0e,K0e=m0e,X0e=b0e,Z0e=p0e,kL=h0e,Q0e=x0e,J0e=(e,t,n)=>{const r=new Map,a={platform:H0e,...n},s={...a.platform,_c:r};return f0e(e,t,{...a,platform:s})};var ewe=typeof document<"u",twe=function(){},vv=ewe?y.useLayoutEffect:twe;function Ig(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,a;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Ig(e[r],t[r]))return!1;return!0}if(a=Object.keys(e),n=a.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,a[r]))return!1;for(r=n;r--!==0;){const s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!Ig(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function aU(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function ML(e,t){const n=aU(e);return Math.round(t*n)/n}function d_(e){const t=y.useRef(e);return vv(()=>{t.current=e}),t}function nwe(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:a,elements:{reference:s,floating:l}={},transform:u=!0,whileElementsMounted:d,open:f}=e,[m,p]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,x]=y.useState(r);Ig(g,r)||x(r);const[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useCallback(q=>{q!==k.current&&(k.current=q,w(q))},[]),O=y.useCallback(q=>{q!==T.current&&(T.current=q,N(q))},[]),A=s||j,C=l||b,k=y.useRef(null),T=y.useRef(null),M=y.useRef(m),R=d!=null,L=d_(d),D=d_(a),U=d_(f),V=y.useCallback(()=>{if(!k.current||!T.current)return;const q={placement:t,strategy:n,middleware:g};D.current&&(q.platform=D.current),J0e(k.current,T.current,q).then(Z=>{const ee={...Z,isPositioned:U.current!==!1};H.current&&!Ig(M.current,ee)&&(M.current=ee,Nl.flushSync(()=>{p(ee)}))})},[g,t,n,D,U]);vv(()=>{f===!1&&M.current.isPositioned&&(M.current.isPositioned=!1,p(q=>({...q,isPositioned:!1})))},[f]);const H=y.useRef(!1);vv(()=>(H.current=!0,()=>{H.current=!1}),[]),vv(()=>{if(A&&(k.current=A),C&&(T.current=C),A&&C){if(L.current)return L.current(A,C,V);V()}},[A,C,V,L,R]);const G=y.useMemo(()=>({reference:k,floating:T,setReference:E,setFloating:O}),[E,O]),$=y.useMemo(()=>({reference:A,floating:C}),[A,C]),I=y.useMemo(()=>{const q={position:n,left:0,top:0};if(!$.floating)return q;const Z=ML($.floating,m.x),ee=ML($.floating,m.y);return u?{...q,transform:"translate("+Z+"px, "+ee+"px)",...aU($.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:Z,top:ee}},[n,u,$.floating,m.x,m.y]);return y.useMemo(()=>({...m,update:V,refs:G,elements:$,floatingStyles:I}),[m,V,G,$,I])}const rwe=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:a}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?kL({element:r.current,padding:a}).fn(n):{}:r?kL({element:r,padding:a}).fn(n):{}}}},awe=(e,t)=>({...G0e(e),options:[e,t]}),iwe=(e,t)=>({...Y0e(e),options:[e,t]}),swe=(e,t)=>({...Q0e(e),options:[e,t]}),owe=(e,t)=>({...K0e(e),options:[e,t]}),lwe=(e,t)=>({...X0e(e),options:[e,t]}),cwe=(e,t)=>({...Z0e(e),options:[e,t]}),uwe=(e,t)=>({...rwe(e),options:[e,t]});var dwe="Arrow",iU=y.forwardRef((e,t)=>{const{children:n,width:r=10,height:a=5,...s}=e;return i.jsx($e.svg,{...s,ref:t,width:r,height:a,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:i.jsx("polygon",{points:"0,0 30,0 15,10"})})});iU.displayName=dwe;var fwe=iU,EE="Popper",[sU,vo]=yr(EE),[hwe,oU]=sU(EE),lU=e=>{const{__scopePopper:t,children:n}=e,[r,a]=y.useState(null);return i.jsx(hwe,{scope:t,anchor:r,onAnchorChange:a,children:n})};lU.displayName=EE;var cU="PopperAnchor",uU=y.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...a}=e,s=oU(cU,n),l=y.useRef(null),u=Ue(t,l),d=y.useRef(null);return y.useEffect(()=>{const f=d.current;d.current=r?.current||l.current,f!==d.current&&s.onAnchorChange(d.current)}),r?null:i.jsx($e.div,{...a,ref:u})});uU.displayName=cU;var AE="PopperContent",[mwe,pwe]=sU(AE),dU=y.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:a=0,align:s="center",alignOffset:l=0,arrowPadding:u=0,avoidCollisions:d=!0,collisionBoundary:f=[],collisionPadding:m=0,sticky:p="partial",hideWhenDetached:g=!1,updatePositionStrategy:x="optimized",onPlaced:j,...w}=e,b=oU(AE,n),[N,E]=y.useState(null),O=Ue(t,ae=>E(ae)),[A,C]=y.useState(null),k=Ly(A),T=k?.width??0,M=k?.height??0,R=r+(s!=="center"?"-"+s:""),L=typeof m=="number"?m:{top:0,right:0,bottom:0,left:0,...m},D=Array.isArray(f)?f:[f],U=D.length>0,V={padding:L,boundary:D.filter(gwe),altBoundary:U},{refs:H,floatingStyles:G,placement:$,isPositioned:I,middlewareData:q}=nwe({strategy:"fixed",placement:R,whileElementsMounted:(...ae)=>V0e(...ae,{animationFrame:x==="always"}),elements:{reference:b.anchor},middleware:[awe({mainAxis:a+M,alignmentAxis:l}),d&&iwe({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?swe():void 0,...V}),d&&owe({...V}),lwe({...V,apply:({elements:ae,rects:we,availableWidth:Y,availableHeight:pe})=>{const{width:je,height:X}=we.reference,Ae=ae.floating.style;Ae.setProperty("--radix-popper-available-width",`${Y}px`),Ae.setProperty("--radix-popper-available-height",`${pe}px`),Ae.setProperty("--radix-popper-anchor-width",`${je}px`),Ae.setProperty("--radix-popper-anchor-height",`${X}px`)}}),A&&uwe({element:A,padding:u}),ywe({arrowWidth:T,arrowHeight:M}),g&&cwe({strategy:"referenceHidden",...V})]}),[Z,ee]=mU($),F=yn(j);Yn(()=>{I&&F?.()},[I,F]);const z=q.arrow?.x,K=q.arrow?.y,ie=q.arrow?.centerOffset!==0,[Q,he]=y.useState();return Yn(()=>{N&&he(window.getComputedStyle(N).zIndex)},[N]),i.jsx("div",{ref:H.setFloating,"data-radix-popper-content-wrapper":"",style:{...G,transform:I?G.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Q,"--radix-popper-transform-origin":[q.transformOrigin?.x,q.transformOrigin?.y].join(" "),...q.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:i.jsx(mwe,{scope:n,placedSide:Z,onArrowChange:C,arrowX:z,arrowY:K,shouldHideArrow:ie,children:i.jsx($e.div,{"data-side":Z,"data-align":ee,...w,ref:O,style:{...w.style,animation:I?void 0:"none"}})})})});dU.displayName=AE;var fU="PopperArrow",vwe={top:"bottom",right:"left",bottom:"top",left:"right"},hU=y.forwardRef(function(t,n){const{__scopePopper:r,...a}=t,s=pwe(fU,r),l=vwe[s.placedSide];return i.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:i.jsx(fwe,{...a,ref:n,style:{...a.style,display:"block"}})})});hU.displayName=fU;function gwe(e){return e!==null}var ywe=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:a}=t,l=a.arrow?.centerOffset!==0,u=l?0:e.arrowWidth,d=l?0:e.arrowHeight,[f,m]=mU(n),p={start:"0%",center:"50%",end:"100%"}[m],g=(a.arrow?.x??0)+u/2,x=(a.arrow?.y??0)+d/2;let j="",w="";return f==="bottom"?(j=l?p:`${g}px`,w=`${-d}px`):f==="top"?(j=l?p:`${g}px`,w=`${r.floating.height+d}px`):f==="right"?(j=`${-d}px`,w=l?p:`${x}px`):f==="left"&&(j=`${r.floating.width+d}px`,w=l?p:`${x}px`),{data:{x:j,y:w}}}});function mU(e){const[t,n="center"]=e.split("-");return[t,n]}var tm=lU,nm=uU,Qy=dU,Jy=hU;function xwe(e){const t=bwe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(jwe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function bwe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=_we(a),u=Swe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var wwe=Symbol("radix.slottable");function jwe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===wwe}function Swe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function _we(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var pU=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Nwe="VisuallyHidden",ex=y.forwardRef((e,t)=>i.jsx($e.span,{...e,ref:t,style:{...pU,...e.style}}));ex.displayName=Nwe;var Cwe=ex,Owe=[" ","Enter","ArrowUp","ArrowDown"],Ewe=[" ","Enter"],jl="Select",[tx,nx,Awe]=Rh(jl),[nd]=yr(jl,[Awe,vo]),rx=vo(),[Twe,go]=nd(jl),[kwe,Mwe]=nd(jl),vU=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:a,onOpenChange:s,value:l,defaultValue:u,onValueChange:d,dir:f,name:m,autoComplete:p,disabled:g,required:x,form:j}=e,w=rx(t),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),k=Uu(f),[T,M]=Ta({prop:r,defaultProp:a??!1,onChange:s,caller:jl}),[R,L]=Ta({prop:l,defaultProp:u,onChange:d,caller:jl}),D=y.useRef(null),U=b?j||!!b.closest("form"):!0,[V,H]=y.useState(new Set),G=Array.from(V).map($=>$.props.value).join(";");return i.jsx(tm,{...w,children:i.jsxs(Twe,{required:x,scope:t,trigger:b,onTriggerChange:N,valueNode:E,onValueNodeChange:O,valueNodeHasChildren:A,onValueNodeHasChildrenChange:C,contentId:Gn(),value:R,onValueChange:L,open:T,onOpenChange:M,dir:k,triggerPointerDownPosRef:D,disabled:g,children:[i.jsx(tx.Provider,{scope:t,children:i.jsx(kwe,{scope:e.__scopeSelect,onNativeOptionAdd:y.useCallback($=>{H(I=>new Set(I).add($))},[]),onNativeOptionRemove:y.useCallback($=>{H(I=>{const q=new Set(I);return q.delete($),q})},[]),children:n})}),U?i.jsxs(BU,{"aria-hidden":!0,required:x,tabIndex:-1,name:m,autoComplete:p,value:R,onChange:$=>L($.target.value),disabled:g,form:j,children:[R===void 0?i.jsx("option",{value:""}):null,Array.from(V)]},G):null]})})};vU.displayName=jl;var gU="SelectTrigger",yU=y.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...a}=e,s=rx(n),l=go(gU,n),u=l.disabled||r,d=Ue(t,l.onTriggerChange),f=nx(n),m=y.useRef("touch"),[p,g,x]=FU(w=>{const b=f().filter(O=>!O.disabled),N=b.find(O=>O.value===l.value),E=UU(b,w,N);E!==void 0&&l.onValueChange(E.value)}),j=w=>{u||(l.onOpenChange(!0),x()),w&&(l.triggerPointerDownPosRef.current={x:Math.round(w.pageX),y:Math.round(w.pageY)})};return i.jsx(nm,{asChild:!0,...s,children:i.jsx($e.button,{type:"button",role:"combobox","aria-controls":l.contentId,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:u,"data-disabled":u?"":void 0,"data-placeholder":qU(l.value)?"":void 0,...a,ref:d,onClick:Ne(a.onClick,w=>{w.currentTarget.focus(),m.current!=="mouse"&&j(w)}),onPointerDown:Ne(a.onPointerDown,w=>{m.current=w.pointerType;const b=w.target;b.hasPointerCapture(w.pointerId)&&b.releasePointerCapture(w.pointerId),w.button===0&&w.ctrlKey===!1&&w.pointerType==="mouse"&&(j(w),w.preventDefault())}),onKeyDown:Ne(a.onKeyDown,w=>{const b=p.current!=="";!(w.ctrlKey||w.altKey||w.metaKey)&&w.key.length===1&&g(w.key),!(b&&w.key===" ")&&Owe.includes(w.key)&&(j(),w.preventDefault())})})})});yU.displayName=gU;var xU="SelectValue",bU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,children:s,placeholder:l="",...u}=e,d=go(xU,n),{onValueNodeHasChildrenChange:f}=d,m=s!==void 0,p=Ue(t,d.onValueNodeChange);return Yn(()=>{f(m)},[f,m]),i.jsx($e.span,{...u,ref:p,style:{pointerEvents:"none"},children:qU(d.value)?i.jsx(i.Fragment,{children:l}):s})});bU.displayName=xU;var Pwe="SelectIcon",wU=y.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...a}=e;return i.jsx($e.span,{"aria-hidden":!0,...a,ref:t,children:r||"▼"})});wU.displayName=Pwe;var Rwe="SelectPortal",jU=e=>i.jsx(Ml,{asChild:!0,...e});jU.displayName=Rwe;var Sl="SelectContent",SU=y.forwardRef((e,t)=>{const n=go(Sl,e.__scopeSelect),[r,a]=y.useState();if(Yn(()=>{a(new DocumentFragment)},[]),!n.open){const s=r;return s?Nl.createPortal(i.jsx(_U,{scope:e.__scopeSelect,children:i.jsx(tx.Slot,{scope:e.__scopeSelect,children:i.jsx("div",{children:e.children})})}),s):null}return i.jsx(NU,{...e,ref:t})});SU.displayName=Sl;var Ba=10,[_U,yo]=nd(Sl),Dwe="SelectContentImpl",$we=xwe("SelectContent.RemoveScroll"),NU=y.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:a,onEscapeKeyDown:s,onPointerDownOutside:l,side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b,...N}=e,E=go(Sl,n),[O,A]=y.useState(null),[C,k]=y.useState(null),T=Ue(t,ae=>A(ae)),[M,R]=y.useState(null),[L,D]=y.useState(null),U=nx(n),[V,H]=y.useState(!1),G=y.useRef(!1);y.useEffect(()=>{if(O)return Fy(O)},[O]),By();const $=y.useCallback(ae=>{const[we,...Y]=U().map(X=>X.ref.current),[pe]=Y.slice(-1),je=document.activeElement;for(const X of ae)if(X===je||(X?.scrollIntoView({block:"nearest"}),X===we&&C&&(C.scrollTop=0),X===pe&&C&&(C.scrollTop=C.scrollHeight),X?.focus(),document.activeElement!==je))return},[U,C]),I=y.useCallback(()=>$([M,O]),[$,M,O]);y.useEffect(()=>{V&&I()},[V,I]);const{onOpenChange:q,triggerPointerDownPosRef:Z}=E;y.useEffect(()=>{if(O){let ae={x:0,y:0};const we=pe=>{ae={x:Math.abs(Math.round(pe.pageX)-(Z.current?.x??0)),y:Math.abs(Math.round(pe.pageY)-(Z.current?.y??0))}},Y=pe=>{ae.x<=10&&ae.y<=10?pe.preventDefault():O.contains(pe.target)||q(!1),document.removeEventListener("pointermove",we),Z.current=null};return Z.current!==null&&(document.addEventListener("pointermove",we),document.addEventListener("pointerup",Y,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",we),document.removeEventListener("pointerup",Y,{capture:!0})}}},[O,q,Z]),y.useEffect(()=>{const ae=()=>q(!1);return window.addEventListener("blur",ae),window.addEventListener("resize",ae),()=>{window.removeEventListener("blur",ae),window.removeEventListener("resize",ae)}},[q]);const[ee,F]=FU(ae=>{const we=U().filter(je=>!je.disabled),Y=we.find(je=>je.ref.current===document.activeElement),pe=UU(we,ae,Y);pe&&setTimeout(()=>pe.ref.current.focus())}),z=y.useCallback((ae,we,Y)=>{const pe=!G.current&&!Y;(E.value!==void 0&&E.value===we||pe)&&(R(ae),pe&&(G.current=!0))},[E.value]),K=y.useCallback(()=>O?.focus(),[O]),ie=y.useCallback((ae,we,Y)=>{const pe=!G.current&&!Y;(E.value!==void 0&&E.value===we||pe)&&D(ae)},[E.value]),Q=r==="popper"?mC:CU,he=Q===mC?{side:u,sideOffset:d,align:f,alignOffset:m,arrowPadding:p,collisionBoundary:g,collisionPadding:x,sticky:j,hideWhenDetached:w,avoidCollisions:b}:{};return i.jsx(_U,{scope:n,content:O,viewport:C,onViewportChange:k,itemRefCallback:z,selectedItem:M,onItemLeave:K,itemTextRefCallback:ie,focusSelectedItem:I,selectedItemText:L,position:r,isPositioned:V,searchRef:ee,children:i.jsx(Jh,{as:$we,allowPinchZoom:!0,children:i.jsx(Qh,{asChild:!0,trapped:E.open,onMountAutoFocus:ae=>{ae.preventDefault()},onUnmountAutoFocus:Ne(a,ae=>{E.trigger?.focus({preventScroll:!0}),ae.preventDefault()}),children:i.jsx(kl,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:ae=>ae.preventDefault(),onDismiss:()=>E.onOpenChange(!1),children:i.jsx(Q,{role:"listbox",id:E.contentId,"data-state":E.open?"open":"closed",dir:E.dir,onContextMenu:ae=>ae.preventDefault(),...N,...he,onPlaced:()=>H(!0),ref:T,style:{display:"flex",flexDirection:"column",outline:"none",...N.style},onKeyDown:Ne(N.onKeyDown,ae=>{const we=ae.ctrlKey||ae.altKey||ae.metaKey;if(ae.key==="Tab"&&ae.preventDefault(),!we&&ae.key.length===1&&F(ae.key),["ArrowUp","ArrowDown","Home","End"].includes(ae.key)){let pe=U().filter(je=>!je.disabled).map(je=>je.ref.current);if(["ArrowUp","End"].includes(ae.key)&&(pe=pe.slice().reverse()),["ArrowUp","ArrowDown"].includes(ae.key)){const je=ae.target,X=pe.indexOf(je);pe=pe.slice(X+1)}setTimeout(()=>$(pe)),ae.preventDefault()}})})})})})})});NU.displayName=Dwe;var Iwe="SelectItemAlignedPosition",CU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...a}=e,s=go(Sl,n),l=yo(Sl,n),[u,d]=y.useState(null),[f,m]=y.useState(null),p=Ue(t,T=>m(T)),g=nx(n),x=y.useRef(!1),j=y.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:N,focusSelectedItem:E}=l,O=y.useCallback(()=>{if(s.trigger&&s.valueNode&&u&&f&&w&&b&&N){const T=s.trigger.getBoundingClientRect(),M=f.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),L=N.getBoundingClientRect();if(s.dir!=="rtl"){const je=L.left-M.left,X=R.left-je,Ae=T.left-X,Oe=T.width+Ae,We=Math.max(Oe,M.width),Ve=window.innerWidth-Ba,be=Df(X,[Ba,Math.max(Ba,Ve-We)]);u.style.minWidth=Oe+"px",u.style.left=be+"px"}else{const je=M.right-L.right,X=window.innerWidth-R.right-je,Ae=window.innerWidth-T.right-X,Oe=T.width+Ae,We=Math.max(Oe,M.width),Ve=window.innerWidth-Ba,be=Df(X,[Ba,Math.max(Ba,Ve-We)]);u.style.minWidth=Oe+"px",u.style.right=be+"px"}const D=g(),U=window.innerHeight-Ba*2,V=w.scrollHeight,H=window.getComputedStyle(f),G=parseInt(H.borderTopWidth,10),$=parseInt(H.paddingTop,10),I=parseInt(H.borderBottomWidth,10),q=parseInt(H.paddingBottom,10),Z=G+$+V+q+I,ee=Math.min(b.offsetHeight*5,Z),F=window.getComputedStyle(w),z=parseInt(F.paddingTop,10),K=parseInt(F.paddingBottom,10),ie=T.top+T.height/2-Ba,Q=U-ie,he=b.offsetHeight/2,ae=b.offsetTop+he,we=G+$+ae,Y=Z-we;if(we<=ie){const je=D.length>0&&b===D[D.length-1].ref.current;u.style.bottom="0px";const X=f.clientHeight-w.offsetTop-w.offsetHeight,Ae=Math.max(Q,he+(je?K:0)+X+I),Oe=we+Ae;u.style.height=Oe+"px"}else{const je=D.length>0&&b===D[0].ref.current;u.style.top="0px";const Ae=Math.max(ie,G+w.offsetTop+(je?z:0)+he)+Y;u.style.height=Ae+"px",w.scrollTop=we-ie+w.offsetTop}u.style.margin=`${Ba}px 0`,u.style.minHeight=ee+"px",u.style.maxHeight=U+"px",r?.(),requestAnimationFrame(()=>x.current=!0)}},[g,s.trigger,s.valueNode,u,f,w,b,N,s.dir,r]);Yn(()=>O(),[O]);const[A,C]=y.useState();Yn(()=>{f&&C(window.getComputedStyle(f).zIndex)},[f]);const k=y.useCallback(T=>{T&&j.current===!0&&(O(),E?.(),j.current=!1)},[O,E]);return i.jsx(zwe,{scope:n,contentWrapper:u,shouldExpandOnScrollRef:x,onScrollButtonChange:k,children:i.jsx("div",{ref:d,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:A},children:i.jsx($e.div,{...a,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...a.style}})})})});CU.displayName=Iwe;var Lwe="SelectPopperPosition",mC=y.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:a=Ba,...s}=e,l=rx(n);return i.jsx(Qy,{...l,...s,ref:t,align:r,collisionPadding:a,style:{boxSizing:"border-box",...s.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)"}})});mC.displayName=Lwe;var[zwe,TE]=nd(Sl,{}),pC="SelectViewport",OU=y.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...a}=e,s=yo(pC,n),l=TE(pC,n),u=Ue(t,s.onViewportChange),d=y.useRef(0);return i.jsxs(i.Fragment,{children:[i.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:r}),i.jsx(tx.Slot,{scope:n,children:i.jsx($e.div,{"data-radix-select-viewport":"",role:"presentation",...a,ref:u,style:{position:"relative",flex:1,overflow:"hidden auto",...a.style},onScroll:Ne(a.onScroll,f=>{const m=f.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:g}=l;if(g?.current&&p){const x=Math.abs(d.current-m.scrollTop);if(x>0){const j=window.innerHeight-Ba*2,w=parseFloat(p.style.minHeight),b=parseFloat(p.style.height),N=Math.max(w,b);if(N0?A:0,p.style.justifyContent="flex-end")}}}d.current=m.scrollTop})})})]})});OU.displayName=pC;var EU="SelectGroup",[Bwe,qwe]=nd(EU),Fwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=Gn();return i.jsx(Bwe,{scope:n,id:a,children:i.jsx($e.div,{role:"group","aria-labelledby":a,...r,ref:t})})});Fwe.displayName=EU;var AU="SelectLabel",TU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=qwe(AU,n);return i.jsx($e.div,{id:a.id,...r,ref:t})});TU.displayName=AU;var Lg="SelectItem",[Uwe,kU]=nd(Lg),MU=y.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:a=!1,textValue:s,...l}=e,u=go(Lg,n),d=yo(Lg,n),f=u.value===r,[m,p]=y.useState(s??""),[g,x]=y.useState(!1),j=Ue(t,E=>d.itemRefCallback?.(E,r,a)),w=Gn(),b=y.useRef("touch"),N=()=>{a||(u.onValueChange(r),u.onOpenChange(!1))};if(r==="")throw new Error("A 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 i.jsx(Uwe,{scope:n,value:r,disabled:a,textId:w,isSelected:f,onItemTextChange:y.useCallback(E=>{p(O=>O||(E?.textContent??"").trim())},[]),children:i.jsx(tx.ItemSlot,{scope:n,value:r,disabled:a,textValue:m,children:i.jsx($e.div,{role:"option","aria-labelledby":w,"data-highlighted":g?"":void 0,"aria-selected":f&&g,"data-state":f?"checked":"unchecked","aria-disabled":a||void 0,"data-disabled":a?"":void 0,tabIndex:a?void 0:-1,...l,ref:j,onFocus:Ne(l.onFocus,()=>x(!0)),onBlur:Ne(l.onBlur,()=>x(!1)),onClick:Ne(l.onClick,()=>{b.current!=="mouse"&&N()}),onPointerUp:Ne(l.onPointerUp,()=>{b.current==="mouse"&&N()}),onPointerDown:Ne(l.onPointerDown,E=>{b.current=E.pointerType}),onPointerMove:Ne(l.onPointerMove,E=>{b.current=E.pointerType,a?d.onItemLeave?.():b.current==="mouse"&&E.currentTarget.focus({preventScroll:!0})}),onPointerLeave:Ne(l.onPointerLeave,E=>{E.currentTarget===document.activeElement&&d.onItemLeave?.()}),onKeyDown:Ne(l.onKeyDown,E=>{d.searchRef?.current!==""&&E.key===" "||(Ewe.includes(E.key)&&N(),E.key===" "&&E.preventDefault())})})})})});MU.displayName=Lg;var xf="SelectItemText",PU=y.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:a,...s}=e,l=go(xf,n),u=yo(xf,n),d=kU(xf,n),f=Mwe(xf,n),[m,p]=y.useState(null),g=Ue(t,N=>p(N),d.onItemTextChange,N=>u.itemTextRefCallback?.(N,d.value,d.disabled)),x=m?.textContent,j=y.useMemo(()=>i.jsx("option",{value:d.value,disabled:d.disabled,children:x},d.value),[d.disabled,d.value,x]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=f;return Yn(()=>(w(j),()=>b(j)),[w,b,j]),i.jsxs(i.Fragment,{children:[i.jsx($e.span,{id:d.textId,...s,ref:g}),d.isSelected&&l.valueNode&&!l.valueNodeHasChildren?Nl.createPortal(s.children,l.valueNode):null]})});PU.displayName=xf;var RU="SelectItemIndicator",DU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return kU(RU,n).isSelected?i.jsx($e.span,{"aria-hidden":!0,...r,ref:t}):null});DU.displayName=RU;var vC="SelectScrollUpButton",$U=y.forwardRef((e,t)=>{const n=yo(vC,e.__scopeSelect),r=TE(vC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollTop>0;s(f)};const d=n.viewport;return u(),d.addEventListener("scroll",u),()=>d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(LU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop-d.offsetHeight)}}):null});$U.displayName=vC;var gC="SelectScrollDownButton",IU=y.forwardRef((e,t)=>{const n=yo(gC,e.__scopeSelect),r=TE(gC,e.__scopeSelect),[a,s]=y.useState(!1),l=Ue(t,r.onScrollButtonChange);return Yn(()=>{if(n.viewport&&n.isPositioned){let u=function(){const f=d.scrollHeight-d.clientHeight,m=Math.ceil(d.scrollTop)d.removeEventListener("scroll",u)}},[n.viewport,n.isPositioned]),a?i.jsx(LU,{...e,ref:l,onAutoScroll:()=>{const{viewport:u,selectedItem:d}=n;u&&d&&(u.scrollTop=u.scrollTop+d.offsetHeight)}}):null});IU.displayName=gC;var LU=y.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...a}=e,s=yo("SelectScrollButton",n),l=y.useRef(null),u=nx(n),d=y.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return y.useEffect(()=>()=>d(),[d]),Yn(()=>{u().find(m=>m.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[u]),i.jsx($e.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:Ne(a.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(r,50))}),onPointerMove:Ne(a.onPointerMove,()=>{s.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(r,50))}),onPointerLeave:Ne(a.onPointerLeave,()=>{d()})})}),Hwe="SelectSeparator",zU=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return i.jsx($e.div,{"aria-hidden":!0,...r,ref:t})});zU.displayName=Hwe;var yC="SelectArrow",Wwe=y.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,a=rx(n),s=go(yC,n),l=yo(yC,n);return s.open&&l.position==="popper"?i.jsx(Jy,{...a,...r,ref:t}):null});Wwe.displayName=yC;var Vwe="SelectBubbleInput",BU=y.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const a=y.useRef(null),s=Ue(r,a),l=Iy(t);return y.useEffect(()=>{const u=a.current;if(!u)return;const d=window.HTMLSelectElement.prototype,m=Object.getOwnPropertyDescriptor(d,"value").set;if(l!==t&&m){const p=new Event("change",{bubbles:!0});m.call(u,t),u.dispatchEvent(p)}},[l,t]),i.jsx($e.select,{...n,style:{...pU,...n.style},ref:s,defaultValue:t})});BU.displayName=Vwe;function qU(e){return e===""||e===void 0}function FU(e){const t=yn(e),n=y.useRef(""),r=y.useRef(0),a=y.useCallback(l=>{const u=n.current+l;t(u),(function d(f){n.current=f,window.clearTimeout(r.current),f!==""&&(r.current=window.setTimeout(()=>d(""),1e3))})(u)},[t]),s=y.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,a,s]}function UU(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=Gwe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.textValue.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function Gwe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Ywe=vU,HU=yU,Kwe=bU,Xwe=wU,Zwe=jU,WU=SU,Qwe=OU,VU=TU,GU=MU,Jwe=PU,eje=DU,YU=$U,KU=IU,XU=zU;const St=Ywe,_t=Kwe,xt=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(HU,{ref:r,className:ue("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,i.jsx(Xwe,{asChild:!0,children:i.jsx(gh,{className:"h-4 w-4 opacity-50"})})]}));xt.displayName=HU.displayName;const ZU=y.forwardRef(({className:e,...t},n)=>i.jsx(YU,{ref:n,className:ue("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(QN,{className:"h-4 w-4"})}));ZU.displayName=YU.displayName;const QU=y.forwardRef(({className:e,...t},n)=>i.jsx(KU,{ref:n,className:ue("flex cursor-default items-center justify-center py-1",e),...t,children:i.jsx(gh,{className:"h-4 w-4"})}));QU.displayName=KU.displayName;const bt=y.forwardRef(({className:e,children:t,position:n="popper",...r},a)=>i.jsx(Zwe,{children:i.jsxs(WU,{ref:a,className:ue("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...r,children:[i.jsx(ZU,{}),i.jsx(Qwe,{className:ue("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),i.jsx(QU,{})]})}));bt.displayName=WU.displayName;const tje=y.forwardRef(({className:e,...t},n)=>i.jsx(VU,{ref:n,className:ue("px-2 py-1.5 text-sm font-semibold",e),...t}));tje.displayName=VU.displayName;const ke=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(GU,{ref:r,className:ue("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(eje,{children:i.jsx(cl,{className:"h-4 w-4"})})}),i.jsx(Jwe,{children:t})]}));ke.displayName=GU.displayName;const nje=y.forwardRef(({className:e,...t},n)=>i.jsx(XU,{ref:n,className:ue("-mx-1 my-1 h-px bg-muted",e),...t}));nje.displayName=XU.displayName;function rje(e){const t=aje(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(sje);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function aje(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=lje(a),u=oje(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var ije=Symbol("radix.slottable");function sje(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===ije}function oje(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function lje(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ax="Popover",[JU]=yr(ax,[vo]),rm=vo(),[cje,xo]=JU(ax),eH=e=>{const{__scopePopover:t,children:n,open:r,defaultOpen:a,onOpenChange:s,modal:l=!1}=e,u=rm(t),d=y.useRef(null),[f,m]=y.useState(!1),[p,g]=Ta({prop:r,defaultProp:a??!1,onChange:s,caller:ax});return i.jsx(tm,{...u,children:i.jsx(cje,{scope:t,contentId:Gn(),triggerRef:d,open:p,onOpenChange:g,onOpenToggle:y.useCallback(()=>g(x=>!x),[g]),hasCustomAnchor:f,onCustomAnchorAdd:y.useCallback(()=>m(!0),[]),onCustomAnchorRemove:y.useCallback(()=>m(!1),[]),modal:l,children:n})})};eH.displayName=ax;var tH="PopoverAnchor",uje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=xo(tH,n),s=rm(n),{onCustomAnchorAdd:l,onCustomAnchorRemove:u}=a;return y.useEffect(()=>(l(),()=>u()),[l,u]),i.jsx(nm,{...s,...r,ref:t})});uje.displayName=tH;var nH="PopoverTrigger",rH=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=xo(nH,n),s=rm(n),l=Ue(t,a.triggerRef),u=i.jsx($e.button,{type:"button","aria-haspopup":"dialog","aria-expanded":a.open,"aria-controls":a.contentId,"data-state":lH(a.open),...r,ref:l,onClick:Ne(e.onClick,a.onOpenToggle)});return a.hasCustomAnchor?u:i.jsx(nm,{asChild:!0,...s,children:u})});rH.displayName=nH;var kE="PopoverPortal",[dje,fje]=JU(kE,{forceMount:void 0}),aH=e=>{const{__scopePopover:t,forceMount:n,children:r,container:a}=e,s=xo(kE,t);return i.jsx(dje,{scope:t,forceMount:n,children:i.jsx(zn,{present:n||s.open,children:i.jsx(Ml,{asChild:!0,container:a,children:r})})})};aH.displayName=kE;var Iu="PopoverContent",iH=y.forwardRef((e,t)=>{const n=fje(Iu,e.__scopePopover),{forceMount:r=n.forceMount,...a}=e,s=xo(Iu,e.__scopePopover);return i.jsx(zn,{present:r||s.open,children:s.modal?i.jsx(mje,{...a,ref:t}):i.jsx(pje,{...a,ref:t})})});iH.displayName=Iu;var hje=rje("PopoverContent.RemoveScroll"),mje=y.forwardRef((e,t)=>{const n=xo(Iu,e.__scopePopover),r=y.useRef(null),a=Ue(t,r),s=y.useRef(!1);return y.useEffect(()=>{const l=r.current;if(l)return Fy(l)},[]),i.jsx(Jh,{as:hje,allowPinchZoom:!0,children:i.jsx(sH,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ne(e.onCloseAutoFocus,l=>{l.preventDefault(),s.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Ne(e.onPointerDownOutside,l=>{const u=l.detail.originalEvent,d=u.button===0&&u.ctrlKey===!0,f=u.button===2||d;s.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:Ne(e.onFocusOutside,l=>l.preventDefault(),{checkForDefaultPrevented:!1})})})}),pje=y.forwardRef((e,t)=>{const n=xo(Iu,e.__scopePopover),r=y.useRef(!1),a=y.useRef(!1);return i.jsx(sH,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(r.current||n.triggerRef.current?.focus(),s.preventDefault()),r.current=!1,a.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(r.current=!0,s.detail.originalEvent.type==="pointerdown"&&(a.current=!0));const l=s.target;n.triggerRef.current?.contains(l)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&a.current&&s.preventDefault()}})}),sH=y.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:r,onOpenAutoFocus:a,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:m,...p}=e,g=xo(Iu,n),x=rm(n);return By(),i.jsx(Qh,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:a,onUnmountAutoFocus:s,children:i.jsx(kl,{asChild:!0,disableOutsidePointerEvents:l,onInteractOutside:m,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onDismiss:()=>g.onOpenChange(!1),children:i.jsx(Qy,{"data-state":lH(g.open),role:"dialog",id:g.contentId,...x,...p,ref:t,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),oH="PopoverClose",vje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=xo(oH,n);return i.jsx($e.button,{type:"button",...r,ref:t,onClick:Ne(e.onClick,()=>a.onOpenChange(!1))})});vje.displayName=oH;var gje="PopoverArrow",yje=y.forwardRef((e,t)=>{const{__scopePopover:n,...r}=e,a=rm(n);return i.jsx(Jy,{...a,...r,ref:t})});yje.displayName=gje;function lH(e){return e?"open":"closed"}var xje=eH,bje=rH,wje=aH,cH=iH;const oo=xje,lo=bje,hs=y.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},a)=>i.jsx(wje,{children:i.jsx(cH,{ref:a,align:t,sideOffset:n,className:ue("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...r})}));hs.displayName=cH.displayName;const rd="/api/webui/config";async function jje(){const t=await(await Ze(`${rd}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function eu(){const t=await(await Ze(`${rd}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function PL(e){const n=await(await Ze(`${rd}/bot`,{method:"POST",headers:st(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function zg(e){const n=await(await Ze(`${rd}/model`,{method:"POST",headers:st(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function Sje(e,t){const r=await(await Ze(`${rd}/bot/section/${e}`,{method:"POST",headers:st(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}async function xC(e,t){const r=await(await Ze(`${rd}/model/section/${e}`,{method:"POST",headers:st(),body:JSON.stringify(t)})).json();if(!r.success)throw new Error(r.message||`保存配置节 ${e} 失败`)}const _je=xn.create({baseURL:"",timeout:1e4});async function ME(){try{return(await _je.post("/api/webui/system/restart")).data}catch(e){throw console.error("重启麦麦失败:",e),e}}const Nje=Qu("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),ix=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx("div",{ref:r,role:"alert",className:ue(Nje({variant:t}),e),...n}));ix.displayName="Alert";const Cje=y.forwardRef(({className:e,...t},n)=>i.jsx("h5",{ref:n,className:ue("mb-1 font-medium leading-none tracking-tight",e),...t}));Cje.displayName="AlertTitle";const sx=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{ref:n,className:ue("text-sm [&_p]:leading-relaxed",e),...t}));sx.displayName="AlertDescription";function PE({onRestartComplete:e,onRestartFailed:t}){const[n,r]=y.useState(0),[a,s]=y.useState("restarting"),[l,u]=y.useState(0),[d,f]=y.useState(0);y.useEffect(()=>{const g=setInterval(()=>{r(w=>w>=90?w:w+1)},200),x=setInterval(()=>{u(w=>w+1)},1e3),j=setTimeout(()=>{s("checking"),m()},3e3);return()=>{clearInterval(g),clearInterval(x),clearTimeout(j)}},[]);const m=()=>{const x=async()=>{try{if(f(w=>w+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)r(100),s("success"),setTimeout(()=>{e?.()},1500);else throw new Error("Status check failed")}catch{d<60?setTimeout(x,2e3):(s("failed"),t?.())}};x()},p=g=>{const x=Math.floor(g/60),j=g%60;return`${x}:${j.toString().padStart(2,"0")}`};return i.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:i.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[i.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[a==="restarting"&&i.jsxs(i.Fragment,{children:[i.jsx(yh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),a==="checking"&&i.jsxs(i.Fragment,{children:[i.jsx(yh,{className:"h-16 w-16 text-primary animate-spin"}),i.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),i.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",d,"/60)"]})]}),a==="success"&&i.jsxs(i.Fragment,{children:[i.jsx(Dr,{className:"h-16 w-16 text-green-500"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),a==="failed"&&i.jsxs(i.Fragment,{children:[i.jsx(xl,{className:"h-16 w-16 text-destructive"}),i.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),i.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),a!=="failed"&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(Ih,{value:n,className:"h-2"}),i.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[i.jsxs("span",{children:[n,"%"]}),i.jsxs("span",{children:["已用时: ",p(l)]})]})]}),i.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:i.jsxs("p",{className:"text-sm text-muted-foreground",children:[a==="restarting"&&"🔄 配置已保存,正在重启主程序...",a==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",a==="success"&&"✅ 配置已生效,服务运行正常",a==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),a==="failed"&&i.jsxs("div",{className:"flex gap-2",children:[i.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),i.jsx("button",{onClick:()=>{s("checking"),f(0),m()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function Oje(){const[e,t]=y.useState(!0),[n,r]=y.useState(!1),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),{toast:g}=xr(),[x,j]=y.useState(null),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[T,M]=y.useState(null),[R,L]=y.useState(null),[D,U]=y.useState(null),[V,H]=y.useState(null),[G,$]=y.useState(null),[I,q]=y.useState(null),[Z,ee]=y.useState(null),[F,z]=y.useState(null),[K,ie]=y.useState(null),[Q,he]=y.useState(null),[ae,we]=y.useState(null),[Y,pe]=y.useState(null),[je,X]=y.useState(null),Ae=y.useRef(null),Oe=y.useRef(!0),We=y.useRef({}),Ve=y.useCallback(async()=>{try{t(!0);const re=await jje();We.current=re,j(re.bot),b(re.personality);const Se=re.chat;Se.talk_value_rules||(Se.talk_value_rules=[]),E(Se),A(re.expression),k(re.emoji),M(re.memory),L(re.tool),U(re.mood),H(re.voice),$(re.lpmm_knowledge),q(re.keyword_reaction),ee(re.response_post_process),z(re.chinese_typo),ie(re.response_splitter),he(re.log),we(re.debug),pe(re.maim_message),X(re.telemetry),u(!1),Oe.current=!1}catch(re){console.error("加载配置失败:",re),g({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[g]);y.useEffect(()=>{Ve()},[Ve]);const be=y.useCallback(async(re,Se)=>{if(!Oe.current)try{s(!0),await Sje(re,Se),u(!1)}catch(ut){console.error(`自动保存 ${re} 失败:`,ut),u(!0)}finally{s(!1)}},[]),_e=y.useCallback((re,Se)=>{Oe.current||(u(!0),Ae.current&&clearTimeout(Ae.current),Ae.current=setTimeout(()=>{be(re,Se)},2e3))},[be]);y.useEffect(()=>{x&&!Oe.current&&_e("bot",x)},[x,_e]),y.useEffect(()=>{w&&!Oe.current&&_e("personality",w)},[w,_e]),y.useEffect(()=>{N&&!Oe.current&&_e("chat",N)},[N,_e]),y.useEffect(()=>{O&&!Oe.current&&_e("expression",O)},[O,_e]),y.useEffect(()=>{C&&!Oe.current&&_e("emoji",C)},[C,_e]),y.useEffect(()=>{T&&!Oe.current&&_e("memory",T)},[T,_e]),y.useEffect(()=>{R&&!Oe.current&&_e("tool",R)},[R,_e]),y.useEffect(()=>{D&&!Oe.current&&_e("mood",D)},[D,_e]),y.useEffect(()=>{V&&!Oe.current&&_e("voice",V)},[V,_e]),y.useEffect(()=>{G&&!Oe.current&&_e("lpmm_knowledge",G)},[G,_e]),y.useEffect(()=>{I&&!Oe.current&&_e("keyword_reaction",I)},[I,_e]),y.useEffect(()=>{Z&&!Oe.current&&_e("response_post_process",Z)},[Z,_e]),y.useEffect(()=>{F&&!Oe.current&&_e("chinese_typo",F)},[F,_e]),y.useEffect(()=>{K&&!Oe.current&&_e("response_splitter",K)},[K,_e]),y.useEffect(()=>{Q&&!Oe.current&&_e("log",Q)},[Q,_e]),y.useEffect(()=>{ae&&!Oe.current&&_e("debug",ae)},[ae,_e]),y.useEffect(()=>{Y&&!Oe.current&&_e("maim_message",Y)},[Y,_e]),y.useEffect(()=>{je&&!Oe.current&&_e("telemetry",je)},[je,_e]);const rt=async()=>{try{r(!0),Ae.current&&clearTimeout(Ae.current);const re={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:D,voice:V,lpmm_knowledge:G,keyword_reaction:I,response_post_process:Z,chinese_typo:F,response_splitter:K,log:Q,debug:ae,maim_message:Y,telemetry:je};await PL(re),u(!1),g({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(re){console.error("保存配置失败:",re),g({title:"保存失败",description:re.message,variant:"destructive"})}finally{r(!1)}},fn=async()=>{try{f(!0),ME().catch(()=>{}),p(!0)}catch(re){console.error("重启失败:",re),p(!1),g({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),f(!1)}},Tt=async()=>{try{r(!0),Ae.current&&clearTimeout(Ae.current);const re={...We.current,bot:x,personality:w,chat:N,expression:O,emoji:C,memory:T,tool:R,mood:D,voice:V,lpmm_knowledge:G,keyword_reaction:I,response_post_process:Z,chinese_typo:F,response_splitter:K,log:Q,debug:ae,maim_message:Y,telemetry:je};await PL(re),u(!1),g({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(Se=>setTimeout(Se,500)),await fn()}catch(re){console.error("保存失败:",re),g({title:"保存失败",description:re.message,variant:"destructive"})}finally{r(!1)}},zt=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},at=()=>{p(!1),f(!1),g({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return e?i.jsx(Gt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:rt,disabled:n||a||!l||d,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(lE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":a?"自动保存中...":l?"保存配置":"已保存"]}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:n||a||d,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(oE,{className:"mr-2 h-4 w-4"}),d?"重启中...":l?"保存并重启":"重启麦麦"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重启麦麦?"}),i.jsx(an,{children:l?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:l?Tt:fn,children:l?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(ix,{children:[i.jsx(Pu,{className:"h-4 w-4"}),i.jsxs(sx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(hl,{defaultValue:"bot",className:"w-full",children:[i.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:i.jsxs(ao,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[i.jsx(Lt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),i.jsx(Lt,{value:"personality",className:"flex-shrink-0",children:"人格"}),i.jsx(Lt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),i.jsx(Lt,{value:"expression",className:"flex-shrink-0",children:"表达"}),i.jsx(Lt,{value:"features",className:"flex-shrink-0",children:"功能"}),i.jsx(Lt,{value:"processing",className:"flex-shrink-0",children:"处理"}),i.jsx(Lt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),i.jsx(Lt,{value:"voice",className:"flex-shrink-0",children:"语音"}),i.jsx(Lt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),i.jsx(Lt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),i.jsx(vn,{value:"bot",className:"space-y-4",children:x&&i.jsx(Eje,{config:x,onChange:j})}),i.jsx(vn,{value:"personality",className:"space-y-4",children:w&&i.jsx(Aje,{config:w,onChange:b})}),i.jsx(vn,{value:"chat",className:"space-y-4",children:N&&i.jsx(Tje,{config:N,onChange:E})}),i.jsx(vn,{value:"expression",className:"space-y-4",children:O&&i.jsx(kje,{config:O,onChange:A})}),i.jsx(vn,{value:"features",className:"space-y-4",children:C&&T&&R&&i.jsx(Mje,{emojiConfig:C,memoryConfig:T,toolConfig:R,onEmojiChange:k,onMemoryChange:M,onToolChange:L})}),i.jsx(vn,{value:"processing",className:"space-y-4",children:I&&Z&&F&&K&&i.jsx(Pje,{keywordReactionConfig:I,responsePostProcessConfig:Z,chineseTypoConfig:F,responseSplitterConfig:K,onKeywordReactionChange:q,onResponsePostProcessChange:ee,onChineseTypoChange:z,onResponseSplitterChange:ie})}),i.jsx(vn,{value:"mood",className:"space-y-4",children:D&&i.jsx(Rje,{config:D,onChange:U})}),i.jsx(vn,{value:"voice",className:"space-y-4",children:V&&i.jsx(Dje,{config:V,onChange:H})}),i.jsx(vn,{value:"lpmm",className:"space-y-4",children:G&&i.jsx($je,{config:G,onChange:$})}),i.jsxs(vn,{value:"other",className:"space-y-4",children:[Q&&i.jsx(Ije,{config:Q,onChange:he}),ae&&i.jsx(Lje,{config:ae,onChange:we}),Y&&i.jsx(zje,{config:Y,onChange:pe}),je&&i.jsx(Bje,{config:je,onChange:X})]})]}),m&&i.jsx(PE,{onRestartComplete:zt,onRestartFailed:at})]})})}function Eje({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},r=d=>{t({...e,platforms:e.platforms.filter((f,m)=>m!==d)})},a=(d,f)=>{const m=[...e.platforms];m[d]=f,t({...e,platforms:m})},s=()=>{t({...e,alias_names:[...e.alias_names,""]})},l=d=>{t({...e,alias_names:e.alias_names.filter((f,m)=>m!==d)})},u=(d,f)=>{const m=[...e.alias_names];m[d]=f,t({...e,alias_names:m})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"platform",children:"平台"}),i.jsx(Ce,{id:"platform",value:e.platform,onChange:d=>t({...e,platform:d.target.value}),placeholder:"qq"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"qq_account",children:"QQ账号"}),i.jsx(Ce,{id:"qq_account",value:e.qq_account,onChange:d=>t({...e,qq_account:d.target.value}),placeholder:"123456789"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ce,{id:"nickname",value:e.nickname,onChange:d=>t({...e,nickname:d.target.value}),placeholder:"麦麦"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{children:"其他平台账号"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.platforms.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ce,{value:d,onChange:m=>a(f,m.target.value),placeholder:"wx:114514"}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除平台账号 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>r(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{children:"别名"}),i.jsxs(oe,{onClick:s,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加"]})]}),i.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((d,f)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ce,{value:d,onChange:m=>u(f,m.target.value),placeholder:"小麦"}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除别名 "',d||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>l(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&i.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function Aje({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},r=s=>{t({...e,states:e.states.filter((l,u)=>u!==s)})},a=(s,l)=>{const u=[...e.states];u[s]=l,t({...e,states:u})};return i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"personality",children:"人格特质"}),i.jsx(Qt,{id:"personality",value:e.personality,onChange:s=>t({...e,personality:s.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"reply_style",children:"表达风格"}),i.jsx(Qt,{id:"reply_style",value:e.reply_style,onChange:s=>t({...e,reply_style:s.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"interest",children:"兴趣"}),i.jsx(Qt,{id:"interest",value:e.interest,onChange:s=>t({...e,interest:s.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"plan_style",children:"说话规则与行为风格"}),i.jsx(Qt,{id:"plan_style",value:e.plan_style,onChange:s=>t({...e,plan_style:s.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"visual_style",children:"识图规则"}),i.jsx(Qt,{id:"visual_style",value:e.visual_style,onChange:s=>t({...e,visual_style:s.target.value}),placeholder:"识图时的处理规则",rows:3})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"private_plan_style",children:"私聊规则"}),i.jsx(Qt,{id:"private_plan_style",value:e.private_plan_style,onChange:s=>t({...e,private_plan_style:s.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{children:"状态列表(人格多样性)"}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),i.jsx("div",{className:"space-y-2",children:e.states.map((s,l)=>i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Qt,{value:s,onChange:u=>a(l,u.target.value),placeholder:"描述一个人格状态",rows:2}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsx(an,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>r(l),children:"删除"})]})]})]})]},l))})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"state_probability",children:"状态替换概率"}),i.jsx(Ce,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:s=>t({...e,state_probability:parseFloat(s.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function Tje({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},r=u=>{t({...e,talk_value_rules:e.talk_value_rules.filter((d,f)=>f!==u)})},a=(u,d,f)=>{const m=[...e.talk_value_rules];m[u]={...m[u],[d]:f},t({...e,talk_value_rules:m})},s=({value:u,onChange:d})=>{const[f,m]=y.useState("00"),[p,g]=y.useState("00"),[x,j]=y.useState("23"),[w,b]=y.useState("59");y.useEffect(()=>{const E=u.split("-");if(E.length===2){const[O,A]=E,[C,k]=O.split(":"),[T,M]=A.split(":");C&&m(C.padStart(2,"0")),k&&g(k.padStart(2,"0")),T&&j(T.padStart(2,"0")),M&&b(M.padStart(2,"0"))}},[u]);const N=(E,O,A,C)=>{const k=`${E}:${O}-${A}:${C}`;d(k)};return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[i.jsx(ul,{className:"h-4 w-4 mr-2"}),u||"选择时间段"]})}),i.jsx(hs,{className:"w-80",children:i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs",children:"小时"}),i.jsxs(St,{value:f,onValueChange:E=>{m(E),N(E,p,x,w)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(ke,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs",children:"分钟"}),i.jsxs(St,{value:p,onValueChange:E=>{g(E),N(f,E,x,w)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(ke,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]}),i.jsxs("div",{children:[i.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs",children:"小时"}),i.jsxs(St,{value:x,onValueChange:E=>{j(E),N(f,p,E,w)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:Array.from({length:24},(E,O)=>O).map(E=>i.jsx(ke,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs",children:"分钟"}),i.jsxs(St,{value:w,onValueChange:E=>{b(E),N(f,p,x,E)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:Array.from({length:60},(E,O)=>O).map(E=>i.jsx(ke,{value:E.toString().padStart(2,"0"),children:E.toString().padStart(2,"0")},E))})]})]})]})]})]})})]})},l=({rule:u})=>{const d=`{ target = "${u.target}", time = "${u.time}", value = ${u.value.toFixed(1)} }`;return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ya,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(hs,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:d}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),i.jsx(Ce,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:u=>t({...e,talk_value:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),i.jsx(Ce,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:u=>t({...e,mentioned_bot_reply:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_context_size",children:"上下文长度"}),i.jsx(Ce,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:u=>t({...e,max_context_size:parseInt(u.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"planner_smooth",children:"规划器平滑"}),i.jsx(Ce,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:u=>t({...e,planner_smooth:parseFloat(u.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:u=>t({...e,enable_talk_value_rules:u})}),i.jsx(ne,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:u=>t({...e,include_planner_reasoning:u})}),i.jsx(ne,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&i.jsxs("div",{className:"border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),i.jsxs(oe,{onClick:n,size:"sm",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?i.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((u,d)=>i.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",d+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(l,{rule:u}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{variant:"ghost",size:"sm",children:i.jsx(Ct,{className:"h-4 w-4 text-destructive"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除规则 #",d+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>r(d),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(St,{value:u.target===""?"global":"specific",onValueChange:f=>{f==="global"?a(d,"target",""):a(d,"target","qq::group")},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"global",children:"全局配置"}),i.jsx(ke,{value:"specific",children:"详细配置"})]})]})]}),u.target!==""&&(()=>{const f=u.target.split(":"),m=f[0]||"qq",p=f[1]||"",g=f[2]||"group";return i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"平台"}),i.jsxs(St,{value:m,onValueChange:x=>{a(d,"target",`${x}:${p}:${g}`)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"qq",children:"QQ"}),i.jsx(ke,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ce,{value:p,onChange:x=>{a(d,"target",`${m}:${x.target.value}:${g}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"类型"}),i.jsxs(St,{value:g,onValueChange:x=>{a(d,"target",`${m}:${p}:${x}`)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"group",children:"群组(group)"}),i.jsx(ke,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",u.target||"(未设置)"]})]})})(),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"时间段 (Time)"}),i.jsx(s,{value:u.time,onChange:f=>a(d,"time",f)}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{htmlFor:`rule-value-${d}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),i.jsx(Ce,{id:`rule-value-${d}`,type:"number",step:"0.01",min:"0",max:"1",value:u.value,onChange:f=>{const m=parseFloat(f.target.value);isNaN(m)||a(d,"value",Math.max(0,Math.min(1,m)))},className:"w-20 h-8 text-xs"})]}),i.jsx(Gy,{value:[u.value],onValueChange:f=>a(d,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (完全沉默)"}),i.jsx("span",{children:"0.5"}),i.jsx("span",{children:"1.0 (正常)"})]})]})]})]},d))}):i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:i.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),i.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[i.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),i.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),i.jsxs("li",{children:["• ",i.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function kje({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},r=g=>{t({...e,learning_list:e.learning_list.filter((x,j)=>j!==g)})},a=(g,x,j)=>{const w=[...e.learning_list];w[g][x]=j,t({...e,learning_list:w})},s=({rule:g})=>{const x=`["${g[0]}", "${g[1]}", "${g[2]}", "${g[3]}"]`;return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ya,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(hs,{className:"w-96",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:x}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},l=({member:g,groupIndex:x,memberIndex:j,availableChatIds:w})=>{const b=w.includes(g)||g==="*",[N,E]=y.useState(!b);return i.jsxs("div",{className:"flex gap-2",children:[i.jsx("div",{className:"flex-1 flex gap-2",children:N?i.jsxs(i.Fragment,{children:[i.jsx(Ce,{value:g,onChange:O=>p(x,j,O.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),w.length>0&&i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!1),title:"切换到下拉选择",children:"下拉"})]}):i.jsxs(i.Fragment,{children:[i.jsxs(St,{value:g,onValueChange:O=>p(x,j,O),children:[i.jsx(xt,{className:"flex-1",children:i.jsx(_t,{placeholder:"选择聊天流"})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"*",children:"* (全局共享)"}),w.map((O,A)=>i.jsx(ke,{value:O,children:O},A))]})]}),i.jsx(oe,{size:"sm",variant:"outline",onClick:()=>E(!0),title:"切换到手动输入",children:"输入"})]})}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"icon",variant:"outline",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除组成员 "',g||"(空)",'" 吗?此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>m(x,j),children:"删除"})]})]})]})]})},u=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},d=g=>{t({...e,expression_groups:e.expression_groups.filter((x,j)=>j!==g)})},f=g=>{const x=[...e.expression_groups];x[g]=[...x[g],""],t({...e,expression_groups:x})},m=(g,x)=>{const j=[...e.expression_groups];j[g]=j[g].filter((w,b)=>b!==x),t({...e,expression_groups:j})},p=(g,x,j)=>{const w=[...e.expression_groups];w[g][x]=j,t({...e,expression_groups:w})};return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),i.jsxs(oe,{onClick:n,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((g,x)=>{const j=e.learning_list.some((A,C)=>C!==x&&A[0]===""),w=g[0]==="",b=g[0].split(":"),N=b[0]||"qq",E=b[1]||"",O=b[2]||"group";return i.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["规则 ",x+1," ",w&&"(全局配置)"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(s,{rule:g}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除学习规则 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>r(x),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"配置类型"}),i.jsxs(St,{value:w?"global":"specific",onValueChange:A=>{A==="global"?a(x,0,""):a(x,0,"qq::group")},disabled:j&&!w,children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"global",children:"全局配置"}),i.jsx(ke,{value:"specific",disabled:j&&!w,children:"详细配置"})]})]}),j&&!w&&i.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!w&&i.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[i.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"平台"}),i.jsxs(St,{value:N,onValueChange:A=>{a(x,0,`${A}:${E}:${O}`)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"qq",children:"QQ"}),i.jsx(ke,{value:"wx",children:"微信"})]})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"群 ID"}),i.jsx(Ce,{value:E,onChange:A=>{a(x,0,`${N}:${A.target.value}:${O}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"类型"}),i.jsxs(St,{value:O,onValueChange:A=>{a(x,0,`${N}:${E}:${A}`)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"group",children:"群组(group)"}),i.jsx(ke,{value:"private",children:"私聊(private)"})]})]})]})]}),i.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",g[0]||"(未设置)"]})]}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs font-medium",children:"使用学到的表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),i.jsx(dt,{checked:g[1]==="enable",onCheckedChange:A=>a(x,1,A?"enable":"disable")})]})}),i.jsx("div",{className:"grid gap-2",children:i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-xs font-medium",children:"学习表达"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),i.jsx(dt,{checked:g[2]==="enable",onCheckedChange:A=>a(x,2,A?"enable":"disable")})]})}),i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{className:"text-xs font-medium",children:"学习强度"}),i.jsx(Ce,{type:"number",step:"0.1",min:"0",max:"5",value:g[3],onChange:A=>{const C=parseFloat(A.target.value);isNaN(C)||a(x,3,Math.max(0,Math.min(5,C)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),i.jsx(Gy,{value:[parseFloat(g[3])||1],onValueChange:A=>a(x,3,A[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),i.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[i.jsx("span",{children:"0 (不学习)"}),i.jsx("span",{children:"2.5"}),i.jsx("span",{children:"5.0 (快速学习)"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},x)}),e.learning_list.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center justify-between mb-4",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),i.jsxs(oe,{onClick:u,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),i.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((g,x)=>{const j=e.learning_list.map(w=>w[0]).filter(w=>w!=="");return i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",x+1,g.length===1&&g[0]==="*"&&"(全局共享)"]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(oe,{onClick:()=>f(x),size:"sm",variant:"outline",children:i.jsx(ir,{className:"h-4 w-4"})}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除共享组 ",x+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>d(x),children:"删除"})]})]})]})]})]}),i.jsx("div",{className:"space-y-2",children:g.map((w,b)=>i.jsx(l,{member:w,groupIndex:x,memberIndex:b,availableChatIds:j},b))}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},x)}),e.expression_groups.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function Mje({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:r,onMemoryChange:a,onToolChange:s}){return i.jsxs("div",{className:"space-y-6",children:[i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:l=>s({...n,enable_tool:l})}),i.jsx(ne,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),i.jsx(Ce,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:l=>a({...t,max_agent_iterations:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),i.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"emoji_chance",children:"表情包激活概率"}),i.jsx(Ce,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:l=>r({...e,emoji_chance:parseFloat(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_reg_num",children:"最大注册数量"}),i.jsx(Ce,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:l=>r({...e,max_reg_num:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),i.jsx(Ce,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:l=>r({...e,check_interval:parseInt(l.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"do_replace",checked:e.do_replace,onCheckedChange:l=>r({...e,do_replace:l})}),i.jsx(ne,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:l=>r({...e,steal_emoji:l})}),i.jsx(ne,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:l=>r({...e,content_filtration:l})}),i.jsx(ne,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&i.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[i.jsx(ne,{htmlFor:"filtration_prompt",children:"过滤要求"}),i.jsx(Ce,{id:"filtration_prompt",value:e.filtration_prompt,onChange:l=>r({...e,filtration_prompt:l.target.value}),placeholder:"符合公序良俗"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function Pje({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:r,onKeywordReactionChange:a,onResponsePostProcessChange:s,onChineseTypoChange:l,onResponseSplitterChange:u}){const d=()=>{a({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=A=>{a({...e,regex_rules:e.regex_rules.filter((C,k)=>k!==A)})},m=(A,C,k)=>{const T=[...e.regex_rules];C==="regex"&&typeof k=="string"?T[A]={...T[A],regex:[k]}:C==="reaction"&&typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,regex_rules:T})},p=({regex:A,reaction:C,onRegexChange:k,onReactionChange:T})=>{const[M,R]=y.useState(!1),[L,D]=y.useState(""),[U,V]=y.useState(null),[H,G]=y.useState(""),[$,I]=y.useState({}),[q,Z]=y.useState(""),ee=y.useRef(null),[F,z]=y.useState("build"),K=ae=>ae.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),ie=(ae,we=0)=>{const Y=ee.current;if(!Y)return;const pe=Y.selectionStart||0,je=Y.selectionEnd||0,X=A.substring(0,pe)+ae+A.substring(je);k(X),setTimeout(()=>{const Ae=pe+ae.length+we;Y.setSelectionRange(Ae,Ae),Y.focus()},0)};y.useEffect(()=>{if(!A||!L){V(null),I({}),Z(C),G("");return}try{const ae=K(A),we=new RegExp(ae,"g"),Y=L.match(we);V(Y),G("");const je=new RegExp(ae).exec(L);if(je&&je.groups){I(je.groups);let X=C;Object.entries(je.groups).forEach(([Ae,Oe])=>{X=X.replace(new RegExp(`\\[${Ae}\\]`,"g"),Oe||"")}),Z(X)}else I({}),Z(C)}catch(ae){G(ae.message),V(null),I({}),Z(C)}},[A,L,C]);const Q=()=>{if(!L||!U||U.length===0)return i.jsx("span",{className:"text-muted-foreground",children:L||"请输入测试文本"});try{const ae=K(A),we=new RegExp(ae,"g");let Y=0;const pe=[];let je;for(;(je=we.exec(L))!==null;)je.index>Y&&pe.push(i.jsx("span",{children:L.substring(Y,je.index)},`text-${Y}`)),pe.push(i.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:je[0]},`match-${je.index}`)),Y=je.index+je[0].length;return Y)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return i.jsxs(sr,{open:M,onOpenChange:R,children:[i.jsx(oF,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ag,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"正则表达式编辑器"}),i.jsx(gr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),i.jsx(Gt,{className:"max-h-[calc(90vh-120px)]",children:i.jsxs(hl,{value:F,onValueChange:ae=>z(ae),className:"w-full",children:[i.jsxs(ao,{className:"grid w-full grid-cols-2",children:[i.jsx(Lt,{value:"build",children:"🔧 构建器"}),i.jsx(Lt,{value:"test",children:"🧪 测试器"})]}),i.jsxs(vn,{value:"build",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"正则表达式"}),i.jsx(Ce,{ref:ee,value:A,onChange:ae=>k(ae.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"Reaction 内容"}),i.jsx(Qt,{value:C,onChange:ae=>T(ae.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),i.jsxs("div",{className:"space-y-4 border-t pt-4",children:[he.map(ae=>i.jsxs("div",{className:"space-y-2",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:ae.category}),i.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ae.items.map(we=>i.jsx(oe,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>ie(we.pattern,we.moveCursor||0),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("div",{className:"flex items-center gap-2 w-full",children:[i.jsx("span",{className:"text-xs font-medium",children:we.label}),i.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:we.pattern})]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:we.desc})]})},we.label))})]},ae.category)),i.jsxs("div",{className:"space-y-2 border-t pt-4",children:[i.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("^(?P\\S{1,20})是这样的$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),i.jsx(oe,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>k("(?P.+?)(?:是|为什么|怎么)"),children:i.jsxs("div",{className:"flex flex-col items-start w-full",children:[i.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),i.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),i.jsxs("li",{children:["命名捕获组格式:",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),i.jsxs("li",{children:["在 reaction 中使用 ",i.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),i.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),i.jsxs(vn,{value:"test",className:"space-y-4 mt-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"当前正则表达式"}),i.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:A||"(未设置)"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),i.jsx(Qt,{id:"test-text",value:L,onChange:ae=>D(ae.target.value),placeholder:`在此输入要测试的文本... -例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),H&&i.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[i.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),i.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:H})]}),!H&&L&&i.jsxs("div",{className:"space-y-3",children:[i.jsx("div",{className:"flex items-center gap-2",children:U&&U.length>0?i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),i.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",U.length," 处)"]})]}):i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),i.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"匹配高亮"}),i.jsx(Gt,{className:"h-40 rounded-md bg-muted p-3",children:i.jsx("div",{className:"text-sm break-words",children:Q()})})]}),Object.keys($).length>0&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"命名捕获组"}),i.jsx(Gt,{className:"h-32 rounded-md border p-3",children:i.jsx("div",{className:"space-y-2",children:Object.entries($).map(([ae,we])=>i.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[i.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ae,"]"]}),i.jsx("span",{className:"text-muted-foreground",children:"="}),i.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:we})]},ae))})})]}),Object.keys($).length>0&&C&&i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{className:"text-sm font-medium",children:"Reaction 替换预览"}),i.jsx(Gt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:i.jsx("div",{className:"text-sm break-words",children:q})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),i.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[i.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),i.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[i.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),i.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),i.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),i.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},g=()=>{a({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},x=A=>{a({...e,keyword_rules:e.keyword_rules.filter((C,k)=>k!==A)})},j=(A,C,k)=>{const T=[...e.keyword_rules];typeof k=="string"&&(T[A]={...T[A],reaction:k}),a({...e,keyword_rules:T})},w=A=>{const C=[...e.keyword_rules];C[A]={...C[A],keywords:[...C[A].keywords||[],""]},a({...e,keyword_rules:C})},b=(A,C)=>{const k=[...e.keyword_rules];k[A]={...k[A],keywords:(k[A].keywords||[]).filter((T,M)=>M!==C)},a({...e,keyword_rules:k})},N=(A,C,k)=>{const T=[...e.keyword_rules],M=[...T[A].keywords||[]];M[C]=k,T[A]={...T[A],keywords:M},a({...e,keyword_rules:T})},E=({rule:A})=>{const C=`{ regex = [${(A.regex||[]).map(k=>`"${k}"`).join(", ")}], reaction = "${A.reaction}" }`;return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ya,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(hs,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Gt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},O=({rule:A})=>{const C=`[[keyword_reaction.keyword_rules]] -keywords = [${(A.keywords||[]).map(k=>`"${k}"`).join(", ")}] -reaction = "${A.reaction}"`;return i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(Ya,{className:"h-4 w-4 mr-1"}),"预览"]})}),i.jsx(hs,{className:"w-[95vw] sm:w-[500px]",children:i.jsxs("div",{className:"space-y-2",children:[i.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),i.jsx(Gt,{className:"h-60 rounded-md bg-muted p-3",children:i.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:C})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),i.jsxs(oe,{onClick:d,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(p,{regex:A.regex&&A.regex[0]||"",reaction:A.reaction,onRegexChange:k=>m(C,"regex",k),onReactionChange:k=>m(C,"reaction",k)}),i.jsx(E,{rule:A}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除正则规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>f(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),i.jsx(Ce,{value:A.regex&&A.regex[0]||"",onChange:k=>m(C,"regex",k.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Qt,{value:A.reaction,onChange:k=>m(C,"reaction",k.target.value),placeholder:`触发后麦麦的反应... -可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},C)),e.regex_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),i.jsxs("div",{className:"space-y-4 border-t pt-6",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),i.jsxs(oe,{onClick:g,size:"sm",variant:"outline",children:[i.jsx(ir,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),i.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((A,C)=>i.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",C+1]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(O,{rule:A}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsx(oe,{size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:["确定要删除关键词规则 ",C+1," 吗?此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>x(C),children:"删除"})]})]})]})]})]}),i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{className:"text-xs font-medium",children:"关键词列表"}),i.jsxs(oe,{onClick:()=>w(C),size:"sm",variant:"ghost",children:[i.jsx(ir,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),i.jsxs("div",{className:"space-y-2",children:[(A.keywords||[]).map((k,T)=>i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ce,{value:k,onChange:M=>N(C,T,M.target.value),placeholder:"关键词",className:"flex-1"}),i.jsx(oe,{onClick:()=>b(C,T),size:"sm",variant:"ghost",children:i.jsx(Ct,{className:"h-4 w-4"})})]},T)),(!A.keywords||A.keywords.length===0)&&i.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{className:"text-xs font-medium",children:"反应内容"}),i.jsx(Qt,{value:A.reaction,onChange:k=>j(C,"reaction",k.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},C)),e.keyword_rules.length===0&&i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:A=>s({...t,enable_response_post_process:A})}),i.jsx(ne,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&i.jsxs(i.Fragment,{children:[i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(dt,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:A=>l({...n,enable:A})}),i.jsx(ne,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),i.jsx(Ce,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:A=>l({...n,error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),i.jsx(Ce,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:A=>l({...n,min_freq:parseInt(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),i.jsx(Ce,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:A=>l({...n,tone_error_rate:parseFloat(A.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),i.jsx(Ce,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:A=>l({...n,word_replace_rate:parseFloat(A.target.value)})})]})]})]})}),i.jsx("div",{className:"border-t pt-6 space-y-4",children:i.jsxs("div",{children:[i.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[i.jsx(dt,{id:"enable_response_splitter",checked:r.enable,onCheckedChange:A=>u({...r,enable:A})}),i.jsx(ne,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),i.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),r.enable&&i.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),i.jsx(Ce,{id:"max_length",type:"number",min:"1",value:r.max_length,onChange:A=>u({...r,max_length:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),i.jsx(Ce,{id:"max_sentence_num",type:"number",min:"1",value:r.max_sentence_num,onChange:A=>u({...r,max_sentence_num:parseInt(A.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_kaomoji_protection",checked:r.enable_kaomoji_protection,onCheckedChange:A=>u({...r,enable_kaomoji_protection:A})}),i.jsx(ne,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"enable_overflow_return_all",checked:r.enable_overflow_return_all,onCheckedChange:A=>u({...r,enable_overflow_return_all:A})}),i.jsx(ne,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),i.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function Rje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),i.jsx(ne,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"情绪更新阈值"}),i.jsx(Ce,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"情感特征"}),i.jsx(Qt,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function Dje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),i.jsx(ne,{className:"cursor-pointer",children:"启用语音识别"})]}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function $je({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),i.jsx(ne,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"LPMM 模式"}),i.jsxs(St,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[i.jsx(xt,{children:i.jsx(_t,{placeholder:"选择 LPMM 模式"})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"classic",children:"经典模式"}),i.jsx(ke,{value:"agent",children:"Agent 模式"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"同义词搜索 TopK"}),i.jsx(Ce,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"同义词阈值"}),i.jsx(Ce,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"实体提取线程数"}),i.jsx(Ce,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"嵌入向量维度"}),i.jsx(Ce,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function Ije({config:e,onChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState("WARNING"),l=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),r(""))},u=x=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==x)})},d=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:a}}),r(""),s("WARNING"))},f=x=>{const j={...e.library_log_levels};delete j[x],t({...e,library_log_levels:j})},m=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],p=["FULL","compact","lite"],g=["none","title","full"];return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"日期格式"}),i.jsx(Ce,{value:e.date_style,onChange:x=>t({...e,date_style:x.target.value}),placeholder:"例如: m-d H:i:s"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"日志级别样式"}),i.jsxs(St,{value:e.log_level_style,onValueChange:x=>t({...e,log_level_style:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:p.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"日志文本颜色"}),i.jsxs(St,{value:e.color_text,onValueChange:x=>t({...e,color_text:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:g.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"全局日志级别"}),i.jsxs(St,{value:e.log_level,onValueChange:x=>t({...e,log_level:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:m.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"控制台日志级别"}),i.jsxs(St,{value:e.console_log_level,onValueChange:x=>t({...e,console_log_level:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:m.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"文件日志级别"}),i.jsxs(St,{value:e.file_log_level,onValueChange:x=>t({...e,file_log_level:x}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsx(bt,{children:m.map(x=>i.jsx(ke,{value:x,children:x},x))})]})]})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"mb-2 block",children:"完全屏蔽的库"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ce,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:x=>{x.key==="Enter"&&(x.preventDefault(),l())}}),i.jsx(oe,{onClick:l,size:"sm",className:"flex-shrink-0",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(x=>i.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[i.jsx("span",{className:"text-sm",children:x}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>u(x),children:i.jsx(Ct,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},x))})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"mb-2 block",children:"特定库的日志级别"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ce,{value:n,onChange:x=>r(x.target.value),placeholder:"输入库名",className:"flex-1"}),i.jsxs(St,{value:a,onValueChange:s,children:[i.jsx(xt,{className:"w-32",children:i.jsx(_t,{})}),i.jsx(bt,{children:m.map(x=>i.jsx(ke,{value:x,children:x},x))})]}),i.jsx(oe,{onClick:d,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([x,j])=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-medium",children:x}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-sm text-muted-foreground",children:j}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(x),children:i.jsx(Ct,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},x))})]})]})}function Lje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"显示 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),i.jsx(dt,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"显示回复器 Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),i.jsx(dt,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"显示回复器推理"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),i.jsx(dt,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"显示 Jargon Prompt"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),i.jsx(dt,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function zje({config:e,onChange:t}){const[n,r]=y.useState(""),a=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),r(""))},s=l=>{t({...e,auth_token:e.auth_token.filter((u,d)=>d!==l)})};return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[i.jsxs("div",{children:[i.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"启用自定义服务器"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),i.jsx(dt,{checked:e.use_custom,onCheckedChange:l=>t({...e,use_custom:l})})]}),e.use_custom&&i.jsxs(i.Fragment,{children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"主机地址"}),i.jsx(Ce,{value:e.host,onChange:l=>t({...e,host:l.target.value}),placeholder:"127.0.0.1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"端口号"}),i.jsx(Ce,{type:"number",value:e.port,onChange:l=>t({...e,port:parseInt(l.target.value)}),placeholder:"8090"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"连接模式"}),i.jsxs(St,{value:e.mode,onValueChange:l=>t({...e,mode:l}),children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"ws",children:"WebSocket (ws)"}),i.jsx(ke,{value:"tcp",children:"TCP"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{checked:e.use_wss,onCheckedChange:l=>t({...e,use_wss:l}),disabled:e.mode!=="ws"}),i.jsx(ne,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"SSL 证书文件路径"}),i.jsx(Ce,{value:e.cert_file,onChange:l=>t({...e,cert_file:l.target.value}),placeholder:"cert.pem"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"SSL 密钥文件路径"}),i.jsx(Ce,{value:e.key_file,onChange:l=>t({...e,key_file:l.target.value}),placeholder:"key.pem"})]})]})]})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"mb-2 block",children:"认证令牌"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),i.jsxs("div",{className:"flex gap-2 mb-2",children:[i.jsx(Ce,{value:n,onChange:l=>r(l.target.value),placeholder:"输入认证令牌",onKeyDown:l=>{l.key==="Enter"&&(l.preventDefault(),a())}}),i.jsx(oe,{onClick:a,size:"sm",children:i.jsx(ir,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),i.jsx("div",{className:"space-y-2",children:e.auth_token.map((l,u)=>i.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[i.jsx("span",{className:"text-sm font-mono",children:l}),i.jsx(oe,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>s(u),children:i.jsx(Ct,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},u))})]})]})}function Bje({config:e,onChange:t}){return i.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"space-y-0.5",children:[i.jsx(ne,{children:"启用统计信息发送"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),i.jsx(dt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const Pl=y.forwardRef(({className:e,...t},n)=>i.jsx("div",{className:"relative w-full overflow-auto",children:i.jsx("table",{ref:n,className:ue("w-full caption-bottom text-sm",e),...t})}));Pl.displayName="Table";const Rl=y.forwardRef(({className:e,...t},n)=>i.jsx("thead",{ref:n,className:ue("[&_tr]:border-b",e),...t}));Rl.displayName="TableHeader";const Dl=y.forwardRef(({className:e,...t},n)=>i.jsx("tbody",{ref:n,className:ue("[&_tr:last-child]:border-0",e),...t}));Dl.displayName="TableBody";const qje=y.forwardRef(({className:e,...t},n)=>i.jsx("tfoot",{ref:n,className:ue("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));qje.displayName="TableFooter";const Tn=y.forwardRef(({className:e,...t},n)=>i.jsx("tr",{ref:n,className:ue("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));Tn.displayName="TableRow";const Xe=y.forwardRef(({className:e,...t},n)=>i.jsx("th",{ref:n,className:ue("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Xe.displayName="TableHead";const Be=y.forwardRef(({className:e,...t},n)=>i.jsx("td",{ref:n,className:ue("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));Be.displayName="TableCell";const Fje=y.forwardRef(({className:e,...t},n)=>i.jsx("caption",{ref:n,className:ue("mt-4 text-sm text-muted-foreground",e),...t}));Fje.displayName="TableCaption";var ox="Checkbox",[Uje]=yr(ox),[Hje,RE]=Uje(ox);function Wje(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:a,disabled:s,form:l,name:u,onCheckedChange:d,required:f,value:m="on",internal_do_not_use_render:p}=e,[g,x]=Ta({prop:n,defaultProp:a??!1,onChange:d,caller:ox}),[j,w]=y.useState(null),[b,N]=y.useState(null),E=y.useRef(!1),O=j?!!l||!!j.closest("form"):!0,A={checked:g,disabled:s,setChecked:x,control:j,setControl:w,name:u,form:l,value:m,hasConsumerStoppedPropagationRef:E,required:f,defaultChecked:ro(a)?!1:a,isFormControl:O,bubbleInput:b,setBubbleInput:N};return i.jsx(Hje,{scope:t,...A,children:Vje(p)?p(A):r})}var uH="CheckboxTrigger",dH=y.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},a)=>{const{control:s,value:l,disabled:u,checked:d,required:f,setControl:m,setChecked:p,hasConsumerStoppedPropagationRef:g,isFormControl:x,bubbleInput:j}=RE(uH,e),w=Ue(a,m),b=y.useRef(d);return y.useEffect(()=>{const N=s?.form;if(N){const E=()=>p(b.current);return N.addEventListener("reset",E),()=>N.removeEventListener("reset",E)}},[s,p]),i.jsx($e.button,{type:"button",role:"checkbox","aria-checked":ro(d)?"mixed":d,"aria-required":f,"data-state":vH(d),"data-disabled":u?"":void 0,disabled:u,value:l,...r,ref:w,onKeyDown:Ne(t,N=>{N.key==="Enter"&&N.preventDefault()}),onClick:Ne(n,N=>{p(E=>ro(E)?!0:!E),j&&x&&(g.current=N.isPropagationStopped(),g.current||N.stopPropagation())})})});dH.displayName=uH;var DE=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:a,defaultChecked:s,required:l,disabled:u,value:d,onCheckedChange:f,form:m,...p}=e;return i.jsx(Wje,{__scopeCheckbox:n,checked:a,defaultChecked:s,disabled:u,required:l,onCheckedChange:f,name:r,form:m,value:d,internal_do_not_use_render:({isFormControl:g})=>i.jsxs(i.Fragment,{children:[i.jsx(dH,{...p,ref:t,__scopeCheckbox:n}),g&&i.jsx(pH,{__scopeCheckbox:n})]})})});DE.displayName=ox;var fH="CheckboxIndicator",hH=y.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...a}=e,s=RE(fH,n);return i.jsx(zn,{present:r||ro(s.checked)||s.checked===!0,children:i.jsx($e.span,{"data-state":vH(s.checked),"data-disabled":s.disabled?"":void 0,...a,ref:t,style:{pointerEvents:"none",...e.style}})})});hH.displayName=fH;var mH="CheckboxBubbleInput",pH=y.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:a,checked:s,defaultChecked:l,required:u,disabled:d,name:f,value:m,form:p,bubbleInput:g,setBubbleInput:x}=RE(mH,e),j=Ue(n,x),w=Iy(s),b=Ly(r);y.useEffect(()=>{const E=g;if(!E)return;const O=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(O,"checked").set,k=!a.current;if(w!==s&&C){const T=new Event("click",{bubbles:k});E.indeterminate=ro(s),C.call(E,ro(s)?!1:s),E.dispatchEvent(T)}},[g,w,s,a]);const N=y.useRef(ro(s)?!1:s);return i.jsx($e.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??N.current,required:u,disabled:d,name:f,value:m,form:p,...t,tabIndex:-1,ref:j,style:{...t.style,...b,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});pH.displayName=mH;function Vje(e){return typeof e=="function"}function ro(e){return e==="indeterminate"}function vH(e){return ro(e)?"indeterminate":e?"checked":"unchecked"}const pr=y.forwardRef(({className:e,...t},n)=>i.jsx(DE,{ref:n,className:ue("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:i.jsx(hH,{className:ue("grid place-content-center text-current"),children:i.jsx(cl,{className:"h-4 w-4"})})}));pr.displayName=DE.displayName;function Gje(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(!1),[l,u]=y.useState(!1),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(null),[E,O]=y.useState(null),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(!1),[L,D]=y.useState(""),[U,V]=y.useState(new Set),[H,G]=y.useState(!1),{toast:$}=xr(),I=y.useRef(null),q=y.useRef(!0);y.useEffect(()=>{Z()},[]);const Z=async()=>{try{r(!0);const be=await eu();t(be.api_providers||[]),f(!1),q.current=!1}catch(be){console.error("加载配置失败:",be)}finally{r(!1)}},ee=async()=>{try{p(!0),ME().catch(()=>{}),x(!0)}catch(be){console.error("重启失败:",be),x(!1),$({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),p(!1)}},F=async()=>{try{s(!0),I.current&&clearTimeout(I.current);const be=await eu();be.api_providers=e,await zg(be),f(!1),$({title:"保存成功",description:"正在重启麦麦..."}),await ee()}catch(be){console.error("保存配置失败:",be),$({title:"保存失败",description:be.message,variant:"destructive"}),s(!1)}},z=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},K=()=>{x(!1),p(!1),$({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},ie=y.useCallback(async be=>{if(!q.current)try{u(!0),await xC("api_providers",be),f(!1)}catch(_e){console.error("自动保存失败:",_e),f(!0)}finally{u(!1)}},[]);y.useEffect(()=>{if(!q.current)return f(!0),I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{ie(e)},2e3),()=>{I.current&&clearTimeout(I.current)}},[e,ie]);const Q=async()=>{try{s(!0),I.current&&clearTimeout(I.current);const be=await eu();be.api_providers=e,await zg(be),f(!1),$({title:"保存成功",description:"模型提供商配置已保存"})}catch(be){console.error("保存配置失败:",be),$({title:"保存失败",description:be.message,variant:"destructive"})}finally{s(!1)}},he=(be,_e)=>{N(be||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),O(_e),R(!1),w(!0)},ae=async()=>{if(b?.api_key)try{await navigator.clipboard.writeText(b.api_key),$({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{$({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},we=()=>{if(!b)return;const be={...b,max_retry:b.max_retry??2,timeout:b.timeout??30,retry_interval:b.retry_interval??10};if(E!==null){const _e=[...e];_e[E]=be,t(_e)}else t([...e,be]);w(!1),N(null),O(null)},Y=be=>{if(!be&&b){const _e={...b,max_retry:b.max_retry??2,timeout:b.timeout??30,retry_interval:b.retry_interval??10};N(_e)}w(be)},pe=be=>{T(be),C(!0)},je=()=>{if(k!==null){const be=e.filter((_e,rt)=>rt!==k);t(be),$({title:"删除成功",description:"提供商已从列表中移除"})}C(!1),T(null)},X=be=>{const _e=new Set(U);_e.has(be)?_e.delete(be):_e.add(be),V(_e)},Ae=()=>{if(U.size===Ve.length)V(new Set);else{const be=Ve.map((_e,rt)=>e.findIndex(fn=>fn===Ve[rt]));V(new Set(be))}},Oe=()=>{if(U.size===0){$({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}G(!0)},We=()=>{const be=e.filter((_e,rt)=>!U.has(rt));t(be),V(new Set),G(!1),$({title:"批量删除成功",description:`已删除 ${U.size} 个提供商`})},Ve=e.filter(be=>{if(!L)return!0;const _e=L.toLowerCase();return be.name.toLowerCase().includes(_e)||be.base_url.toLowerCase().includes(_e)||be.client_type.toLowerCase().includes(_e)});return n?i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[U.size>0&&i.jsxs(oe,{onClick:Oe,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Ct,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",U.size,")"]}),i.jsxs(oe,{onClick:()=>he(null,null),size:"sm",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),i.jsxs(oe,{onClick:Q,disabled:a||l||!d||m,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(lE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),a?"保存中...":l?"自动保存中...":d?"保存配置":"已保存"]}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:a||l||m,size:"sm",className:"w-full sm:w-auto",children:[i.jsx(oE,{className:"mr-2 h-4 w-4"}),m?"重启中...":d?"保存并重启":"重启麦麦"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重启麦麦?"}),i.jsx(an,{children:d?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:d?F:ee,children:d?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(ix,{children:[i.jsx(Pu,{className:"h-4 w-4"}),i.jsxs(sx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(Gt,{className:"h-[calc(100vh-260px)]",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"搜索提供商名称、URL 或类型...",value:L,onChange:be=>D(be.target.value),className:"pl-9"})]}),L&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Ve.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:Ve.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:L?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):Ve.map((be,_e)=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("h3",{className:"font-semibold text-base truncate",children:be.name}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:be.base_url})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>he(be,_e),children:i.jsx(Ru,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>pe(_e),children:i.jsx(Ct,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),i.jsx("p",{className:"font-medium",children:be.client_type})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),i.jsx("p",{className:"font-medium",children:be.max_retry})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),i.jsx("p",{className:"font-medium",children:be.timeout})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),i.jsx("p",{className:"font-medium",children:be.retry_interval})]})]})]},_e))}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:U.size===Ve.length&&Ve.length>0,onCheckedChange:Ae})}),i.jsx(Xe,{children:"名称"}),i.jsx(Xe,{children:"基础URL"}),i.jsx(Xe,{children:"客户端类型"}),i.jsx(Xe,{className:"text-right",children:"最大重试"}),i.jsx(Xe,{className:"text-right",children:"超时(秒)"}),i.jsx(Xe,{className:"text-right",children:"重试间隔(秒)"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:Ve.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:8,className:"text-center text-muted-foreground py-8",children:L?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):Ve.map((be,_e)=>{const rt=e.findIndex(fn=>fn===be);return i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:U.has(rt),onCheckedChange:()=>X(rt)})}),i.jsx(Be,{className:"font-medium",children:be.name}),i.jsx(Be,{className:"max-w-xs truncate",title:be.base_url,children:be.base_url}),i.jsx(Be,{children:be.client_type}),i.jsx(Be,{className:"text-right",children:be.max_retry}),i.jsx(Be,{className:"text-right",children:be.timeout}),i.jsx(Be,{className:"text-right",children:be.retry_interval}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>he(be,rt),children:i.jsx(Ru,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>pe(rt),children:i.jsx(Ct,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},_e)})})]})})]}),i.jsx(sr,{open:j,onOpenChange:Y,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:E!==null?"编辑提供商":"添加提供商"}),i.jsx(gr,{children:"配置 API 提供商的连接信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"name",children:"名称 *"}),i.jsx(Ce,{id:"name",value:b?.name||"",onChange:be=>N(_e=>_e?{..._e,name:be.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"base_url",children:"基础 URL *"}),i.jsx(Ce,{id:"base_url",value:b?.base_url||"",onChange:be=>N(_e=>_e?{..._e,base_url:be.target.value}:null),placeholder:"https://api.example.com/v1"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"api_key",children:"API Key *"}),i.jsxs("div",{className:"flex gap-2",children:[i.jsx(Ce,{id:"api_key",type:M?"text":"password",value:b?.api_key||"",onChange:be=>N(_e=>_e?{..._e,api_key:be.target.value}:null),placeholder:"sk-...",className:"flex-1"}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:()=>R(!M),title:M?"隐藏密钥":"显示密钥",children:M?i.jsx(nC,{className:"h-4 w-4"}):i.jsx(Ya,{className:"h-4 w-4"})}),i.jsx(oe,{type:"button",variant:"outline",size:"icon",onClick:ae,title:"复制密钥",children:i.jsx(eC,{className:"h-4 w-4"})})]})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"client_type",children:"客户端类型"}),i.jsxs(St,{value:b?.client_type||"openai",onValueChange:be=>N(_e=>_e?{..._e,client_type:be}:null),children:[i.jsx(xt,{id:"client_type",children:i.jsx(_t,{placeholder:"选择客户端类型"})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"openai",children:"OpenAI"}),i.jsx(ke,{value:"gemini",children:"Gemini"})]})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"max_retry",children:"最大重试"}),i.jsx(Ce,{id:"max_retry",type:"number",min:"0",value:b?.max_retry??"",onChange:be=>{const _e=be.target.value===""?null:parseInt(be.target.value);N(rt=>rt?{...rt,max_retry:_e}:null)},placeholder:"默认: 2"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"timeout",children:"超时(秒)"}),i.jsx(Ce,{id:"timeout",type:"number",min:"1",value:b?.timeout??"",onChange:be=>{const _e=be.target.value===""?null:parseInt(be.target.value);N(rt=>rt?{...rt,timeout:_e}:null)},placeholder:"默认: 30"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),i.jsx(Ce,{id:"retry_interval",type:"number",min:"1",value:b?.retry_interval??"",onChange:be=>{const _e=be.target.value===""?null:parseInt(be.target.value);N(rt=>rt?{...rt,retry_interval:_e}:null)},placeholder:"默认: 10"})]})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>w(!1),children:"取消"}),i.jsx(oe,{onClick:we,children:"保存"})]})]})}),i.jsx(dn,{open:A,onOpenChange:C,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除提供商 "',k!==null?e[k]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:je,children:"删除"})]})]})}),i.jsx(dn,{open:H,onOpenChange:G,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["确定要删除选中的 ",U.size," 个提供商吗? 此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:We,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),g&&i.jsx(PE,{onRestartComplete:z,onRestartFailed:K})]})}var RL=1,Yje=.9,Kje=.8,Xje=.17,f_=.1,h_=.999,Zje=.9999,Qje=.99,Jje=/[\\\/_+.#"@\[\(\{&]/,e1e=/[\\\/_+.#"@\[\(\{&]/g,t1e=/[\s-]/,gH=/[\s-]/g;function bC(e,t,n,r,a,s,l){if(s===t.length)return a===e.length?RL:Qje;var u=`${a},${s}`;if(l[u]!==void 0)return l[u];for(var d=r.charAt(s),f=n.indexOf(d,a),m=0,p,g,x,j;f>=0;)p=bC(e,t,n,r,f+1,s+1,l),p>m&&(f===a?p*=RL:Jje.test(e.charAt(f-1))?(p*=Kje,x=e.slice(a,f-1).match(e1e),x&&a>0&&(p*=Math.pow(h_,x.length))):t1e.test(e.charAt(f-1))?(p*=Yje,j=e.slice(a,f-1).match(gH),j&&a>0&&(p*=Math.pow(h_,j.length))):(p*=Xje,a>0&&(p*=Math.pow(h_,f-a))),e.charAt(f)!==t.charAt(s)&&(p*=Zje)),(pp&&(p=g*f_)),p>m&&(m=p),f=n.indexOf(d,f+1);return l[u]=m,m}function DL(e){return e.toLowerCase().replace(gH," ")}function n1e(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,bC(e,t,DL(e),DL(t),0,0,{})}var r1e=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],bo=r1e.reduce((e,t)=>{const n=$h(`Primitive.${t}`),r=y.forwardRef((a,s)=>{const{asChild:l,...u}=a,d=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),i.jsx(d,{...u,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),hf='[cmdk-group=""]',m_='[cmdk-group-items=""]',a1e='[cmdk-group-heading=""]',yH='[cmdk-item=""]',$L=`${yH}:not([aria-disabled="true"])`,wC="cmdk-item-select",Lc="data-value",i1e=(e,t,n)=>n1e(e,t,n),xH=y.createContext(void 0),am=()=>y.useContext(xH),bH=y.createContext(void 0),$E=()=>y.useContext(bH),wH=y.createContext(void 0),jH=y.forwardRef((e,t)=>{let n=zc(()=>{var z,K;return{search:"",value:(K=(z=e.value)!=null?z:e.defaultValue)!=null?K:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),r=zc(()=>new Set),a=zc(()=>new Map),s=zc(()=>new Map),l=zc(()=>new Set),u=SH(e),{label:d,children:f,value:m,onValueChange:p,filter:g,shouldFilter:x,loop:j,disablePointerSelection:w=!1,vimBindings:b=!0,...N}=e,E=Gn(),O=Gn(),A=Gn(),C=y.useRef(null),k=v1e();_l(()=>{if(m!==void 0){let z=m.trim();n.current.value=z,T.emit()}},[m]),_l(()=>{k(6,V)},[]);let T=y.useMemo(()=>({subscribe:z=>(l.current.add(z),()=>l.current.delete(z)),snapshot:()=>n.current,setState:(z,K,ie)=>{var Q,he,ae,we;if(!Object.is(n.current[z],K)){if(n.current[z]=K,z==="search")U(),L(),k(1,D);else if(z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Y=document.getElementById(A);Y?Y.focus():(Q=document.getElementById(E))==null||Q.focus()}if(k(7,()=>{var Y;n.current.selectedItemId=(Y=H())==null?void 0:Y.id,T.emit()}),ie||k(5,V),((he=u.current)==null?void 0:he.value)!==void 0){let Y=K??"";(we=(ae=u.current).onValueChange)==null||we.call(ae,Y);return}}T.emit()}},emit:()=>{l.current.forEach(z=>z())}}),[]),M=y.useMemo(()=>({value:(z,K,ie)=>{var Q;K!==((Q=s.current.get(z))==null?void 0:Q.value)&&(s.current.set(z,{value:K,keywords:ie}),n.current.filtered.items.set(z,R(K,ie)),k(2,()=>{L(),T.emit()}))},item:(z,K)=>(r.current.add(z),K&&(a.current.has(K)?a.current.get(K).add(z):a.current.set(K,new Set([z]))),k(3,()=>{U(),L(),n.current.value||D(),T.emit()}),()=>{s.current.delete(z),r.current.delete(z),n.current.filtered.items.delete(z);let ie=H();k(4,()=>{U(),ie?.getAttribute("id")===z&&D(),T.emit()})}),group:z=>(a.current.has(z)||a.current.set(z,new Set),()=>{s.current.delete(z),a.current.delete(z)}),filter:()=>u.current.shouldFilter,label:d||e["aria-label"],getDisablePointerSelection:()=>u.current.disablePointerSelection,listId:E,inputId:A,labelId:O,listInnerRef:C}),[]);function R(z,K){var ie,Q;let he=(Q=(ie=u.current)==null?void 0:ie.filter)!=null?Q:i1e;return z?he(z,n.current.search,K):0}function L(){if(!n.current.search||u.current.shouldFilter===!1)return;let z=n.current.filtered.items,K=[];n.current.filtered.groups.forEach(Q=>{let he=a.current.get(Q),ae=0;he.forEach(we=>{let Y=z.get(we);ae=Math.max(Y,ae)}),K.push([Q,ae])});let ie=C.current;G().sort((Q,he)=>{var ae,we;let Y=Q.getAttribute("id"),pe=he.getAttribute("id");return((ae=z.get(pe))!=null?ae:0)-((we=z.get(Y))!=null?we:0)}).forEach(Q=>{let he=Q.closest(m_);he?he.appendChild(Q.parentElement===he?Q:Q.closest(`${m_} > *`)):ie.appendChild(Q.parentElement===ie?Q:Q.closest(`${m_} > *`))}),K.sort((Q,he)=>he[1]-Q[1]).forEach(Q=>{var he;let ae=(he=C.current)==null?void 0:he.querySelector(`${hf}[${Lc}="${encodeURIComponent(Q[0])}"]`);ae?.parentElement.appendChild(ae)})}function D(){let z=G().find(ie=>ie.getAttribute("aria-disabled")!=="true"),K=z?.getAttribute(Lc);T.setState("value",K||void 0)}function U(){var z,K,ie,Q;if(!n.current.search||u.current.shouldFilter===!1){n.current.filtered.count=r.current.size;return}n.current.filtered.groups=new Set;let he=0;for(let ae of r.current){let we=(K=(z=s.current.get(ae))==null?void 0:z.value)!=null?K:"",Y=(Q=(ie=s.current.get(ae))==null?void 0:ie.keywords)!=null?Q:[],pe=R(we,Y);n.current.filtered.items.set(ae,pe),pe>0&&he++}for(let[ae,we]of a.current)for(let Y of we)if(n.current.filtered.items.get(Y)>0){n.current.filtered.groups.add(ae);break}n.current.filtered.count=he}function V(){var z,K,ie;let Q=H();Q&&(((z=Q.parentElement)==null?void 0:z.firstChild)===Q&&((ie=(K=Q.closest(hf))==null?void 0:K.querySelector(a1e))==null||ie.scrollIntoView({block:"nearest"})),Q.scrollIntoView({block:"nearest"}))}function H(){var z;return(z=C.current)==null?void 0:z.querySelector(`${yH}[aria-selected="true"]`)}function G(){var z;return Array.from(((z=C.current)==null?void 0:z.querySelectorAll($L))||[])}function $(z){let K=G()[z];K&&T.setState("value",K.getAttribute(Lc))}function I(z){var K;let ie=H(),Q=G(),he=Q.findIndex(we=>we===ie),ae=Q[he+z];(K=u.current)!=null&&K.loop&&(ae=he+z<0?Q[Q.length-1]:he+z===Q.length?Q[0]:Q[he+z]),ae&&T.setState("value",ae.getAttribute(Lc))}function q(z){let K=H(),ie=K?.closest(hf),Q;for(;ie&&!Q;)ie=z>0?m1e(ie,hf):p1e(ie,hf),Q=ie?.querySelector($L);Q?T.setState("value",Q.getAttribute(Lc)):I(z)}let Z=()=>$(G().length-1),ee=z=>{z.preventDefault(),z.metaKey?Z():z.altKey?q(1):I(1)},F=z=>{z.preventDefault(),z.metaKey?$(0):z.altKey?q(-1):I(-1)};return y.createElement(bo.div,{ref:t,tabIndex:-1,...N,"cmdk-root":"",onKeyDown:z=>{var K;(K=N.onKeyDown)==null||K.call(N,z);let ie=z.nativeEvent.isComposing||z.keyCode===229;if(!(z.defaultPrevented||ie))switch(z.key){case"n":case"j":{b&&z.ctrlKey&&ee(z);break}case"ArrowDown":{ee(z);break}case"p":case"k":{b&&z.ctrlKey&&F(z);break}case"ArrowUp":{F(z);break}case"Home":{z.preventDefault(),$(0);break}case"End":{z.preventDefault(),Z();break}case"Enter":{z.preventDefault();let Q=H();if(Q){let he=new Event(wC);Q.dispatchEvent(he)}}}}},y.createElement("label",{"cmdk-label":"",htmlFor:M.inputId,id:M.labelId,style:y1e},d),lx(e,z=>y.createElement(bH.Provider,{value:T},y.createElement(xH.Provider,{value:M},z))))}),s1e=y.forwardRef((e,t)=>{var n,r;let a=Gn(),s=y.useRef(null),l=y.useContext(wH),u=am(),d=SH(e),f=(r=(n=d.current)==null?void 0:n.forceMount)!=null?r:l?.forceMount;_l(()=>{if(!f)return u.item(a,l?.id)},[f]);let m=_H(a,s,[e.value,e.children,s],e.keywords),p=$E(),g=co(k=>k.value&&k.value===m.current),x=co(k=>f||u.filter()===!1?!0:k.search?k.filtered.items.get(a)>0:!0);y.useEffect(()=>{let k=s.current;if(!(!k||e.disabled))return k.addEventListener(wC,j),()=>k.removeEventListener(wC,j)},[x,e.onSelect,e.disabled]);function j(){var k,T;w(),(T=(k=d.current).onSelect)==null||T.call(k,m.current)}function w(){p.setState("value",m.current,!0)}if(!x)return null;let{disabled:b,value:N,onSelect:E,forceMount:O,keywords:A,...C}=e;return y.createElement(bo.div,{ref:zr(s,t),...C,id:a,"cmdk-item":"",role:"option","aria-disabled":!!b,"aria-selected":!!g,"data-disabled":!!b,"data-selected":!!g,onPointerMove:b||u.getDisablePointerSelection()?void 0:w,onClick:b?void 0:j},e.children)}),o1e=y.forwardRef((e,t)=>{let{heading:n,children:r,forceMount:a,...s}=e,l=Gn(),u=y.useRef(null),d=y.useRef(null),f=Gn(),m=am(),p=co(x=>a||m.filter()===!1?!0:x.search?x.filtered.groups.has(l):!0);_l(()=>m.group(l),[]),_H(l,u,[e.value,e.heading,d]);let g=y.useMemo(()=>({id:l,forceMount:a}),[a]);return y.createElement(bo.div,{ref:zr(u,t),...s,"cmdk-group":"",role:"presentation",hidden:p?void 0:!0},n&&y.createElement("div",{ref:d,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),lx(e,x=>y.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},y.createElement(wH.Provider,{value:g},x))))}),l1e=y.forwardRef((e,t)=>{let{alwaysRender:n,...r}=e,a=y.useRef(null),s=co(l=>!l.search);return!n&&!s?null:y.createElement(bo.div,{ref:zr(a,t),...r,"cmdk-separator":"",role:"separator"})}),c1e=y.forwardRef((e,t)=>{let{onValueChange:n,...r}=e,a=e.value!=null,s=$E(),l=co(f=>f.search),u=co(f=>f.selectedItemId),d=am();return y.useEffect(()=>{e.value!=null&&s.setState("search",e.value)},[e.value]),y.createElement(bo.input,{ref:t,...r,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":d.listId,"aria-labelledby":d.labelId,"aria-activedescendant":u,id:d.inputId,type:"text",value:a?e.value:l,onChange:f=>{a||s.setState("search",f.target.value),n?.(f.target.value)}})}),u1e=y.forwardRef((e,t)=>{let{children:n,label:r="Suggestions",...a}=e,s=y.useRef(null),l=y.useRef(null),u=co(f=>f.selectedItemId),d=am();return y.useEffect(()=>{if(l.current&&s.current){let f=l.current,m=s.current,p,g=new ResizeObserver(()=>{p=requestAnimationFrame(()=>{let x=f.offsetHeight;m.style.setProperty("--cmdk-list-height",x.toFixed(1)+"px")})});return g.observe(f),()=>{cancelAnimationFrame(p),g.unobserve(f)}}},[]),y.createElement(bo.div,{ref:zr(s,t),...a,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":u,"aria-label":r,id:d.listId},lx(e,f=>y.createElement("div",{ref:zr(l,d.listInnerRef),"cmdk-list-sizer":""},f)))}),d1e=y.forwardRef((e,t)=>{let{open:n,onOpenChange:r,overlayClassName:a,contentClassName:s,container:l,...u}=e;return y.createElement(vE,{open:n,onOpenChange:r},y.createElement(gE,{container:l},y.createElement(Hy,{"cmdk-overlay":"",className:a}),y.createElement(Wy,{"aria-label":e.label,"cmdk-dialog":"",className:s},y.createElement(jH,{ref:t,...u}))))}),f1e=y.forwardRef((e,t)=>co(n=>n.filtered.count===0)?y.createElement(bo.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),h1e=y.forwardRef((e,t)=>{let{progress:n,children:r,label:a="Loading...",...s}=e;return y.createElement(bo.div,{ref:t,...s,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":a},lx(e,l=>y.createElement("div",{"aria-hidden":!0},l)))}),Hr=Object.assign(jH,{List:u1e,Item:s1e,Input:c1e,Group:o1e,Separator:l1e,Dialog:d1e,Empty:f1e,Loading:h1e});function m1e(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function p1e(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function SH(e){let t=y.useRef(e);return _l(()=>{t.current=e}),t}var _l=typeof window>"u"?y.useEffect:y.useLayoutEffect;function zc(e){let t=y.useRef();return t.current===void 0&&(t.current=e()),t}function co(e){let t=$E(),n=()=>e(t.snapshot());return y.useSyncExternalStore(t.subscribe,n,n)}function _H(e,t,n,r=[]){let a=y.useRef(),s=am();return _l(()=>{var l;let u=(()=>{var f;for(let m of n){if(typeof m=="string")return m.trim();if(typeof m=="object"&&"current"in m)return m.current?(f=m.current.textContent)==null?void 0:f.trim():a.current}})(),d=r.map(f=>f.trim());s.value(e,u,d),(l=t.current)==null||l.setAttribute(Lc,u),a.current=u}),a}var v1e=()=>{let[e,t]=y.useState(),n=zc(()=>new Map);return _l(()=>{n.current.forEach(r=>r()),n.current=new Map},[e]),(r,a)=>{n.current.set(r,a),t({})}};function g1e(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function lx({asChild:e,children:t},n){return e&&y.isValidElement(t)?y.cloneElement(g1e(t),{ref:t.ref},n(t.props.children)):n(t)}var y1e={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const NH=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr,{ref:n,className:ue("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));NH.displayName=Hr.displayName;const CH=y.forwardRef(({className:e,...t},n)=>i.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[i.jsx(Br,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),i.jsx(Hr.Input,{ref:n,className:ue("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));CH.displayName=Hr.Input.displayName;const OH=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr.List,{ref:n,className:ue("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));OH.displayName=Hr.List.displayName;const EH=y.forwardRef((e,t)=>i.jsx(Hr.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));EH.displayName=Hr.Empty.displayName;const AH=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr.Group,{ref:n,className:ue("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));AH.displayName=Hr.Group.displayName;const x1e=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr.Separator,{ref:n,className:ue("-mx-1 h-px bg-border",e),...t}));x1e.displayName=Hr.Separator.displayName;const TH=y.forwardRef(({className:e,...t},n)=>i.jsx(Hr.Item,{ref:n,className:ue("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));TH.displayName=Hr.Item.displayName;function b1e({options:e,selected:t,onChange:n,placeholder:r="选择选项...",emptyText:a="未找到选项",className:s}){const[l,u]=y.useState(!1),d=m=>{t.includes(m)?n(t.filter(p=>p!==m)):n([...t,m])},f=m=>{n(t.filter(p=>p!==m))};return i.jsxs(oo,{open:l,onOpenChange:u,children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",role:"combobox","aria-expanded":l,className:ue("w-full justify-between min-h-10 h-auto",s),children:[i.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?i.jsx("span",{className:"text-muted-foreground",children:r}):t.map(m=>{const p=e.find(g=>g.value===m);return i.jsxs(Ht,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:g=>{g.stopPropagation(),f(m)},children:[p?.label||m,i.jsx(Zh,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},m)})}),i.jsx(zve,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),i.jsx(hs,{className:"w-full p-0",align:"start",children:i.jsxs(NH,{children:[i.jsx(CH,{placeholder:"搜索...",className:"h-9"}),i.jsxs(OH,{children:[i.jsx(EH,{children:a}),i.jsx(AH,{children:e.map(m=>{const p=t.includes(m.value);return i.jsxs(TH,{value:m.value,onSelect:()=>d(m.value),children:[i.jsx("div",{className:ue("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",p?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:i.jsx(cl,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),i.jsx("span",{children:m.label})]},m.value)})})]})]})})]})}function w1e(){const[e,t]=y.useState([]),[n,r]=y.useState([]),[a,s]=y.useState([]),[l,u]=y.useState(null),[d,f]=y.useState(!0),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(!1),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState(null),[L,D]=y.useState(!1),[U,V]=y.useState(null),[H,G]=y.useState(""),[$,I]=y.useState(new Set),[q,Z]=y.useState(!1),{toast:ee}=xr(),F=y.useRef(null),z=y.useRef(null),K=y.useRef(!0);y.useEffect(()=>{ie()},[]);const ie=async()=>{try{f(!0);const re=await eu(),Se=re.models||[];t(Se),s(Se.map(Or=>Or.name));const ut=re.api_providers||[];r(ut.map(Or=>Or.name)),u(re.model_task_config||null),w(!1),K.current=!1}catch(re){console.error("加载配置失败:",re)}finally{f(!1)}},Q=async()=>{try{N(!0),ME().catch(()=>{}),O(!0)}catch(re){console.error("重启失败:",re),O(!1),ee({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),N(!1)}},he=async()=>{try{p(!0),F.current&&clearTimeout(F.current),z.current&&clearTimeout(z.current);const re=await eu();re.models=e,re.model_task_config=l,await zg(re),w(!1),ee({title:"保存成功",description:"正在重启麦麦..."}),await Q()}catch(re){console.error("保存配置失败:",re),ee({title:"保存失败",description:re.message,variant:"destructive"}),p(!1)}},ae=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},we=()=>{O(!1),N(!1),ee({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},Y=y.useCallback(async re=>{if(!K.current)try{x(!0),await xC("models",re),w(!1)}catch(Se){console.error("自动保存模型列表失败:",Se),w(!0)}finally{x(!1)}},[]),pe=y.useCallback(async re=>{if(!K.current)try{x(!0),await xC("model_task_config",re),w(!1)}catch(Se){console.error("自动保存任务配置失败:",Se),w(!0)}finally{x(!1)}},[]);y.useEffect(()=>{if(!K.current)return w(!0),F.current&&clearTimeout(F.current),F.current=setTimeout(()=>{Y(e)},2e3),()=>{F.current&&clearTimeout(F.current)}},[e,Y]),y.useEffect(()=>{if(!(K.current||!l))return w(!0),z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{pe(l)},2e3),()=>{z.current&&clearTimeout(z.current)}},[l,pe]);const je=async()=>{try{p(!0),F.current&&clearTimeout(F.current),z.current&&clearTimeout(z.current);const re=await eu();re.models=e,re.model_task_config=l,await zg(re),w(!1),ee({title:"保存成功",description:"模型配置已保存"}),await ie()}catch(re){console.error("保存配置失败:",re),ee({title:"保存失败",description:re.message,variant:"destructive"})}finally{p(!1)}},X=(re,Se)=>{T(re||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),R(Se),C(!0)},Ae=()=>{if(!k)return;const re={...k,price_in:k.price_in??0,price_out:k.price_out??0};let Se;M!==null?(Se=[...e],Se[M]=re):Se=[...e,re],t(Se),s(Se.map(ut=>ut.name)),C(!1),T(null),R(null)},Oe=re=>{if(!re&&k){const Se={...k,price_in:k.price_in??0,price_out:k.price_out??0};T(Se)}C(re)},We=re=>{V(re),D(!0)},Ve=()=>{if(U!==null){const re=e.filter((Se,ut)=>ut!==U);t(re),s(re.map(Se=>Se.name)),ee({title:"删除成功",description:"模型已从列表中移除"})}D(!1),V(null)},be=re=>{const Se=new Set($);Se.has(re)?Se.delete(re):Se.add(re),I(Se)},_e=()=>{if($.size===zt.length)I(new Set);else{const re=zt.map((Se,ut)=>e.findIndex(Or=>Or===zt[ut]));I(new Set(re))}},rt=()=>{if($.size===0){ee({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}Z(!0)},fn=()=>{const re=e.filter((Se,ut)=>!$.has(ut));t(re),s(re.map(Se=>Se.name)),I(new Set),Z(!1),ee({title:"批量删除成功",description:`已删除 ${$.size} 个模型`})},Tt=(re,Se,ut)=>{l&&u({...l,[re]:{...l[re],[Se]:ut}})},zt=e.filter(re=>{if(!H)return!0;const Se=H.toLowerCase();return re.name.toLowerCase().includes(Se)||re.model_identifier.toLowerCase().includes(Se)||re.api_provider.toLowerCase().includes(Se)}),at=re=>l?[l.utils?.model_list||[],l.utils_small?.model_list||[],l.tool_use?.model_list||[],l.replyer?.model_list||[],l.planner?.model_list||[],l.vlm?.model_list||[],l.voice?.model_list||[],l.embedding?.model_list||[],l.lpmm_entity_extract?.model_list||[],l.lpmm_rdf_build?.model_list||[],l.lpmm_qa?.model_list||[]].some(ut=>ut.includes(re)):!1;return d?i.jsx(Gt,{className:"h-full",children:i.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:i.jsx("div",{className:"flex items-center justify-center h-64",children:i.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[i.jsxs(oe,{onClick:je,disabled:m||g||!j||b,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[i.jsx(lE,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),m?"保存中...":g?"自动保存中...":j?"保存配置":"已保存"]}),i.jsxs(dn,{children:[i.jsx(mr,{asChild:!0,children:i.jsxs(oe,{disabled:m||g||b,size:"sm",className:"flex-1 sm:flex-none",children:[i.jsx(oE,{className:"mr-2 h-4 w-4"}),b?"重启中...":j?"保存并重启":"重启麦麦"]})}),i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认重启麦麦?"}),i.jsx(an,{children:j?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:j?he:Q,children:j?"保存并重启":"确认重启"})]})]})]})]})]}),i.jsxs(ix,{children:[i.jsx(Pu,{className:"h-4 w-4"}),i.jsxs(sx,{children:["配置更新后需要",i.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),i.jsxs(hl,{defaultValue:"models",className:"w-full",children:[i.jsxs(ao,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[i.jsx(Lt,{value:"models",children:"模型配置"}),i.jsx(Lt,{value:"tasks",children:"模型任务配置"})]}),i.jsxs(vn,{value:"models",className:"space-y-4 mt-0",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),i.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[$.size>0&&i.jsxs(oe,{onClick:rt,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[i.jsx(Ct,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",$.size,")"]}),i.jsxs(oe,{onClick:()=>X(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[i.jsx(ir,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[i.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"搜索模型名称、标识符或提供商...",value:H,onChange:re=>G(re.target.value),className:"pl-9"})]}),H&&i.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",zt.length," 个结果"]})]}),i.jsx("div",{className:"md:hidden space-y-3",children:zt.length===0?i.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:H?"未找到匹配的模型":"暂无模型配置"}):zt.map((re,Se)=>{const ut=at(re.name);return i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[i.jsx("h3",{className:"font-semibold text-base",children:re.name}),i.jsx(Ht,{variant:ut?"default":"secondary",className:ut?"bg-green-600 hover:bg-green-700":"",children:ut?"已使用":"未使用"})]}),i.jsx("p",{className:"text-xs text-muted-foreground break-all",title:re.model_identifier,children:re.model_identifier})]}),i.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>X(re,Se),children:i.jsx(Ru,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>We(Se),children:i.jsx(Ct,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),i.jsx("p",{className:"font-medium",children:re.api_provider})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),i.jsx("p",{className:"font-medium",children:re.force_stream_mode?"是":"否"})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),i.jsxs("p",{className:"font-medium",children:["¥",re.price_in,"/M"]})]}),i.jsxs("div",{children:[i.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),i.jsxs("p",{className:"font-medium",children:["¥",re.price_out,"/M"]})]})]})]},Se)})}),i.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:$.size===zt.length&&zt.length>0,onCheckedChange:_e})}),i.jsx(Xe,{className:"w-24",children:"使用状态"}),i.jsx(Xe,{children:"模型名称"}),i.jsx(Xe,{children:"模型标识符"}),i.jsx(Xe,{children:"提供商"}),i.jsx(Xe,{className:"text-right",children:"输入价格"}),i.jsx(Xe,{className:"text-right",children:"输出价格"}),i.jsx(Xe,{className:"text-center",children:"强制流式"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:zt.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:9,className:"text-center text-muted-foreground py-8",children:H?"未找到匹配的模型":"暂无模型配置"})}):zt.map((re,Se)=>{const ut=e.findIndex(bs=>bs===re),Or=at(re.name);return i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:$.has(ut),onCheckedChange:()=>be(ut)})}),i.jsx(Be,{children:i.jsx(Ht,{variant:Or?"default":"secondary",className:Or?"bg-green-600 hover:bg-green-700":"",children:Or?"已使用":"未使用"})}),i.jsx(Be,{className:"font-medium",children:re.name}),i.jsx(Be,{className:"max-w-xs truncate",title:re.model_identifier,children:re.model_identifier}),i.jsx(Be,{children:re.api_provider}),i.jsxs(Be,{className:"text-right",children:["¥",re.price_in,"/M"]}),i.jsxs(Be,{className:"text-right",children:["¥",re.price_out,"/M"]}),i.jsx(Be,{className:"text-center",children:re.force_stream_mode?"是":"否"}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>X(re,ut),children:i.jsx(Ru,{className:"h-4 w-4",strokeWidth:2,fill:"none"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>We(ut),children:i.jsx(Ct,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]})})]},Se)})})]})})]}),i.jsxs(vn,{value:"tasks",className:"space-y-6 mt-0",children:[i.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),l&&i.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[i.jsx(La,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:l.utils,modelNames:a,onChange:(re,Se)=>Tt("utils",re,Se)}),i.jsx(La,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:l.utils_small,modelNames:a,onChange:(re,Se)=>Tt("utils_small",re,Se)}),i.jsx(La,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:l.tool_use,modelNames:a,onChange:(re,Se)=>Tt("tool_use",re,Se)}),i.jsx(La,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:l.replyer,modelNames:a,onChange:(re,Se)=>Tt("replyer",re,Se)}),i.jsx(La,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:l.planner,modelNames:a,onChange:(re,Se)=>Tt("planner",re,Se)}),i.jsx(La,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:l.vlm,modelNames:a,onChange:(re,Se)=>Tt("vlm",re,Se),hideTemperature:!0}),i.jsx(La,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:l.voice,modelNames:a,onChange:(re,Se)=>Tt("voice",re,Se),hideTemperature:!0,hideMaxTokens:!0}),i.jsx(La,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:l.embedding,modelNames:a,onChange:(re,Se)=>Tt("embedding",re,Se),hideTemperature:!0,hideMaxTokens:!0}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),i.jsx(La,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:l.lpmm_entity_extract,modelNames:a,onChange:(re,Se)=>Tt("lpmm_entity_extract",re,Se)}),i.jsx(La,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:l.lpmm_rdf_build,modelNames:a,onChange:(re,Se)=>Tt("lpmm_rdf_build",re,Se)}),i.jsx(La,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:l.lpmm_qa,modelNames:a,onChange:(re,Se)=>Tt("lpmm_qa",re,Se)})]})]})]})]}),i.jsx(sr,{open:A,onOpenChange:Oe,children:i.jsxs(Kn,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:M!==null?"编辑模型":"添加模型"}),i.jsx(gr,{children:"配置模型的基本信息和参数"})]}),i.jsxs("div",{className:"grid gap-4 py-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"model_name",children:"模型名称 *"}),i.jsx(Ce,{id:"model_name",value:k?.name||"",onChange:re=>T(Se=>Se?{...Se,name:re.target.value}:null),placeholder:"例如: qwen3-30b"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"model_identifier",children:"模型标识符 *"}),i.jsx(Ce,{id:"model_identifier",value:k?.model_identifier||"",onChange:re=>T(Se=>Se?{...Se,model_identifier:re.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"api_provider",children:"API 提供商 *"}),i.jsxs(St,{value:k?.api_provider||"",onValueChange:re=>T(Se=>Se?{...Se,api_provider:re}:null),children:[i.jsx(xt,{id:"api_provider",children:i.jsx(_t,{placeholder:"选择提供商"})}),i.jsx(bt,{children:n.map(re=>i.jsx(ke,{value:re,children:re},re))})]})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),i.jsx(Ce,{id:"price_in",type:"number",step:"0.1",min:"0",value:k?.price_in??"",onChange:re=>{const Se=re.target.value===""?null:parseFloat(re.target.value);T(ut=>ut?{...ut,price_in:Se}:null)},placeholder:"默认: 0"})]}),i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),i.jsx(Ce,{id:"price_out",type:"number",step:"0.1",min:"0",value:k?.price_out??"",onChange:re=>{const Se=re.target.value===""?null:parseFloat(re.target.value);T(ut=>ut?{...ut,price_out:Se}:null)},placeholder:"默认: 0"})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"force_stream_mode",checked:k?.force_stream_mode||!1,onCheckedChange:re=>T(Se=>Se?{...Se,force_stream_mode:re}:null)}),i.jsx(ne,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>C(!1),children:"取消"}),i.jsx(oe,{onClick:Ae,children:"保存"})]})]})}),i.jsx(dn,{open:L,onOpenChange:D,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除模型 "',U!==null?e[U]?.name:"",'" 吗? 此操作无法撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:Ve,children:"删除"})]})]})}),i.jsx(dn,{open:q,onOpenChange:Z,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["确定要删除选中的 ",$.size," 个模型吗? 此操作无法撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:fn,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),E&&i.jsx(PE,{onRestartComplete:ae,onRestartFailed:we})]})})}function La({title:e,description:t,taskConfig:n,modelNames:r,onChange:a,hideTemperature:s=!1,hideMaxTokens:l=!1}){const u=d=>{a("model_list",d)};return i.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[i.jsxs("div",{children:[i.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),i.jsxs("div",{className:"grid gap-4",children:[i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"模型列表"}),i.jsx(b1e,{options:r.map(d=>({label:d,value:d})),selected:n.model_list||[],onChange:u,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!s&&i.jsxs("div",{className:"grid gap-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsx(ne,{children:"温度"}),i.jsx(Ce,{type:"number",step:"0.1",min:"0",max:"1",value:n.temperature??.3,onChange:d=>{const f=parseFloat(d.target.value);!isNaN(f)&&f>=0&&f<=1&&a("temperature",f)},className:"w-20 h-8 text-sm"})]}),i.jsx(Gy,{value:[n.temperature??.3],onValueChange:d=>a("temperature",d[0]),min:0,max:1,step:.1,className:"w-full"})]}),!l&&i.jsxs("div",{className:"grid gap-2",children:[i.jsx(ne,{children:"最大 Token"}),i.jsx(Ce,{type:"number",step:"1",min:"1",value:n.max_tokens??1024,onChange:d=>a("max_tokens",parseInt(d.target.value))})]})]})]})]})}const xs="/api/webui/emoji";async function j1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_registered!==void 0&&t.append("is_registered",e.is_registered.toString()),e.is_banned!==void 0&&t.append("is_banned",e.is_banned.toString()),e.format&&t.append("format",e.format),e.sort_by&&t.append("sort_by",e.sort_by),e.sort_order&&t.append("sort_order",e.sort_order);const n=await Ze(`${xs}/list?${t}`,{headers:st()});if(!n.ok)throw new Error(`获取表情包列表失败: ${n.statusText}`);return n.json()}async function S1e(e){const t=await Ze(`${xs}/${e}`,{headers:st()});if(!t.ok)throw new Error(`获取表情包详情失败: ${t.statusText}`);return t.json()}async function _1e(e,t){const n=await Ze(`${xs}/${e}`,{method:"PATCH",headers:st(),body:JSON.stringify(t)});if(!n.ok)throw new Error(`更新表情包失败: ${n.statusText}`);return n.json()}async function N1e(e){const t=await Ze(`${xs}/${e}`,{method:"DELETE",headers:st()});if(!t.ok)throw new Error(`删除表情包失败: ${t.statusText}`);return t.json()}async function C1e(){const e=await Ze(`${xs}/stats/summary`,{headers:st()});if(!e.ok)throw new Error(`获取统计数据失败: ${e.statusText}`);return e.json()}async function O1e(e){const t=await Ze(`${xs}/${e}/register`,{method:"POST",headers:st()});if(!t.ok)throw new Error(`注册表情包失败: ${t.statusText}`);return t.json()}async function E1e(e){const t=await Ze(`${xs}/${e}/ban`,{method:"POST",headers:st()});if(!t.ok)throw new Error(`封禁表情包失败: ${t.statusText}`);return t.json()}function jC(e){const t=localStorage.getItem("access-token");return`${xs}/${e}/thumbnail?token=${encodeURIComponent(t||"")}`}async function A1e(e){const t=await Ze(`${xs}/batch/delete`,{method:"POST",headers:st(),body:JSON.stringify({emoji_ids:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"批量删除失败")}return t.json()}function T1e(){const[e,t]=y.useState([]),[n,r]=y.useState(null),[a,s]=y.useState(!1),[l,u]=y.useState(1),[d,f]=y.useState(0),[m,p]=y.useState(20),[g,x]=y.useState(""),[j,w]=y.useState("all"),[b,N]=y.useState("all"),[E,O]=y.useState("all"),[A,C]=y.useState(null),[k,T]=y.useState(!1),[M,R]=y.useState(!1),[L,D]=y.useState(!1),[U,V]=y.useState(new Set),[H,G]=y.useState(!1),[$,I]=y.useState(""),{toast:q}=xr(),Z=y.useCallback(async()=>{try{s(!0);const X=await j1e({page:l,page_size:m,search:g||void 0,is_registered:j==="all"?void 0:j==="registered",is_banned:b==="all"?void 0:b==="banned",format:E==="all"?void 0:E,sort_by:"usage_count",sort_order:"desc"});t(X.data),f(X.total)}catch(X){const Ae=X instanceof Error?X.message:"加载表情包列表失败";q({title:"错误",description:Ae,variant:"destructive"})}finally{s(!1)}},[l,m,g,j,b,E,q]),ee=async()=>{try{const X=await C1e();r(X.data)}catch(X){console.error("加载统计数据失败:",X)}};y.useEffect(()=>{Z()},[Z]),y.useEffect(()=>{ee()},[]);const F=async X=>{try{const Ae=await S1e(X.id);C(Ae.data),T(!0)}catch(Ae){const Oe=Ae instanceof Error?Ae.message:"加载详情失败";q({title:"错误",description:Oe,variant:"destructive"})}},z=X=>{C(X),R(!0)},K=X=>{C(X),D(!0)},ie=async()=>{if(A)try{await N1e(A.id),q({title:"成功",description:"表情包已删除"}),D(!1),C(null),Z(),ee()}catch(X){const Ae=X instanceof Error?X.message:"删除失败";q({title:"错误",description:Ae,variant:"destructive"})}},Q=async X=>{try{await O1e(X.id),q({title:"成功",description:"表情包已注册"}),Z(),ee()}catch(Ae){const Oe=Ae instanceof Error?Ae.message:"注册失败";q({title:"错误",description:Oe,variant:"destructive"})}},he=async X=>{try{await E1e(X.id),q({title:"成功",description:"表情包已封禁"}),Z(),ee()}catch(Ae){const Oe=Ae instanceof Error?Ae.message:"封禁失败";q({title:"错误",description:Oe,variant:"destructive"})}},ae=X=>{const Ae=new Set(U);Ae.has(X)?Ae.delete(X):Ae.add(X),V(Ae)},we=()=>{U.size===e.length&&e.length>0?V(new Set):V(new Set(e.map(X=>X.id)))},Y=async()=>{try{const X=await A1e(Array.from(U));q({title:"批量删除完成",description:X.message}),V(new Set),G(!1),Z(),ee()}catch(X){q({title:"批量删除失败",description:X instanceof Error?X.message:"批量删除失败",variant:"destructive"})}},pe=()=>{const X=parseInt($),Ae=Math.ceil(d/m);X>=1&&X<=Ae?(u(X),I("")):q({title:"无效的页码",description:`请输入1-${Ae}之间的页码`,variant:"destructive"})},je=n?.formats?Object.keys(n.formats):[];return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsxs("div",{className:"mb-4 sm:mb-6",children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),i.jsx(Gt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&i.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[i.jsx(Ke,{children:i.jsxs(gt,{className:"pb-2",children:[i.jsx(Wn,{children:"总数"}),i.jsx(yt,{className:"text-2xl",children:n.total})]})}),i.jsx(Ke,{children:i.jsxs(gt,{className:"pb-2",children:[i.jsx(Wn,{children:"已注册"}),i.jsx(yt,{className:"text-2xl text-green-600",children:n.registered})]})}),i.jsx(Ke,{children:i.jsxs(gt,{className:"pb-2",children:[i.jsx(Wn,{children:"已封禁"}),i.jsx(yt,{className:"text-2xl text-red-600",children:n.banned})]})}),i.jsx(Ke,{children:i.jsxs(gt,{className:"pb-2",children:[i.jsx(Wn,{children:"未注册"}),i.jsx(yt,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),i.jsxs(Ke,{children:[i.jsx(gt,{children:i.jsxs(yt,{className:"flex items-center gap-2",children:[i.jsx(rC,{className:"h-5 w-5"}),"搜索和筛选"]})}),i.jsxs(Pt,{className:"space-y-4",children:[i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Br,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"描述或哈希值...",value:g,onChange:X=>{x(X.target.value),u(1)},className:"pl-8"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"注册状态"}),i.jsxs(St,{value:j,onValueChange:X=>{w(X),u(1)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部"}),i.jsx(ke,{value:"registered",children:"已注册"}),i.jsx(ke,{value:"unregistered",children:"未注册"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"封禁状态"}),i.jsxs(St,{value:b,onValueChange:X=>{N(X),u(1)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部"}),i.jsx(ke,{value:"banned",children:"已封禁"}),i.jsx(ke,{value:"unbanned",children:"未封禁"})]})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"格式"}),i.jsxs(St,{value:E,onValueChange:X=>{O(X),u(1)},children:[i.jsx(xt,{children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部"}),je.map(X=>i.jsxs(ke,{value:X,children:[X.toUpperCase()," (",n?.formats[X],")"]},X))]})]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 pt-4 border-t",children:[i.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:U.size>0&&i.jsxs("span",{children:["已选择 ",U.size," 个表情包"]})}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ne,{htmlFor:"emoji-page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),i.jsxs(St,{value:m.toString(),onValueChange:X=>{p(parseInt(X)),u(1),V(new Set)},children:[i.jsx(xt,{id:"emoji-page-size",className:"w-20",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"10",children:"10"}),i.jsx(ke,{value:"20",children:"20"}),i.jsx(ke,{value:"50",children:"50"}),i.jsx(ke,{value:"100",children:"100"})]})]}),U.size>0&&i.jsxs(i.Fragment,{children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>V(new Set),children:"取消选择"}),i.jsxs(oe,{variant:"destructive",size:"sm",onClick:()=>G(!0),children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]}),i.jsx("div",{className:"flex justify-end pt-4 border-t",children:i.jsxs(oe,{variant:"outline",size:"sm",onClick:Z,disabled:a,children:[i.jsx(os,{className:`h-4 w-4 mr-2 ${a?"animate-spin":""}`}),"刷新"]})})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"表情包列表"}),i.jsxs(Wn,{children:["共 ",d," 个表情包,当前第 ",l," 页"]})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:e.length>0&&U.size===e.length,onCheckedChange:we,"aria-label":"全选"})}),i.jsx(Xe,{className:"w-16",children:"预览"}),i.jsx(Xe,{children:"描述"}),i.jsx(Xe,{children:"格式"}),i.jsx(Xe,{children:"情绪标签"}),i.jsx(Xe,{className:"text-center",children:"状态"}),i.jsx(Xe,{className:"text-right",children:"使用次数"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:e.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(X=>i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:U.has(X.id),onCheckedChange:()=>ae(X.id),"aria-label":`选择 ${X.description}`})}),i.jsx(Be,{children:i.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:jC(X.id),alt:X.description||"表情包",className:"w-full h-full object-cover",onError:Ae=>{const Oe=Ae.target;Oe.style.display="none";const We=Oe.parentElement;We&&(We.innerHTML='')}})})}),i.jsx(Be,{children:i.jsxs("div",{className:"space-y-1 max-w-xs",children:[i.jsx("div",{className:"font-medium truncate",title:X.description||"无描述",children:X.description||"无描述"}),i.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[X.emoji_hash.slice(0,16),"..."]})]})}),i.jsx(Be,{children:i.jsx(Ht,{variant:"outline",children:X.format.toUpperCase()})}),i.jsx(Be,{children:i.jsx(IL,{emotions:X.emotion})}),i.jsx(Be,{className:"align-middle",children:i.jsxs("div",{className:"flex gap-2 justify-center",children:[X.is_registered&&i.jsxs(Ht,{variant:"default",className:"bg-green-600",children:[i.jsx(Dr,{className:"h-3 w-3 mr-1"}),"已注册"]}),X.is_banned&&i.jsxs(Ht,{variant:"destructive",children:[i.jsx(JN,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),i.jsx(Be,{className:"text-right font-mono",children:X.usage_count}),i.jsx(Be,{children:i.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>F(X),children:[i.jsx(Pu,{className:"h-4 w-4 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>z(X),children:[i.jsx(Du,{className:"h-4 w-4 mr-1"}),"编辑"]}),!X.is_registered&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>Q(X),className:"text-green-600 hover:text-green-700",children:[i.jsx(Dr,{className:"h-4 w-4 mr-1"}),"注册"]}),!X.is_banned&&i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>he(X),className:"text-orange-600 hover:text-orange-700",children:[i.jsx(JI,{className:"h-4 w-4 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>K(X),className:"text-red-600 hover:text-red-700",children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},X.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(X=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex gap-3",children:[i.jsx("div",{className:"flex-shrink-0",children:i.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:jC(X.id),alt:X.description||"表情包",className:"w-full h-full object-cover",onError:Ae=>{const Oe=Ae.target;Oe.style.display="none";const We=Oe.parentElement;We&&(We.innerHTML='')}})})}),i.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[i.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:X.description||"无描述",children:X.description||"无描述"}),i.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[X.emoji_hash.slice(0,16),"..."]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[i.jsx(Ht,{variant:"outline",className:"text-xs flex-shrink-0",children:X.format.toUpperCase()}),X.is_registered&&i.jsxs(Ht,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[i.jsx(Dr,{className:"h-3 w-3 mr-1"}),"已注册"]}),X.is_banned&&i.jsxs(Ht,{variant:"destructive",className:"text-xs flex-shrink-0",children:[i.jsx(JN,{className:"h-3 w-3 mr-1"}),"已封禁"]}),i.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",X.usage_count]})]}),X.emotion&&X.emotion.length>0&&i.jsx("div",{className:"min-w-0 overflow-hidden",children:i.jsx(IL,{emotions:X.emotion})})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>F(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Pu,{className:"h-3 w-3 mr-1"}),"详情"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>z(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Du,{className:"h-3 w-3 mr-1"}),"编辑"]}),!X.is_registered&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>Q(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-green-600 hover:text-green-700",children:[i.jsx(Dr,{className:"h-3 w-3 mr-1"}),"注册"]}),!X.is_banned&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>he(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-orange-600 hover:text-orange-700",children:[i.jsx(JI,{className:"h-3 w-3 mr-1"}),"封禁"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>K(X),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-red-600 hover:text-red-700",children:[i.jsx(Ct,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},X.id))}),d>0&&i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(l-1)*m+1," 到"," ",Math.min(l*m,d)," 条,共 ",d," 条"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(1),disabled:l===1,className:"hidden sm:flex",children:i.jsx(aE,{className:"h-4 w-4"})}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(X=>Math.max(1,X-1)),disabled:l===1,children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-1"}),i.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ce,{type:"number",value:$,onChange:X=>I(X.target.value),onKeyDown:X=>X.key==="Enter"&&pe(),placeholder:l.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(d/m)}),i.jsx(oe,{variant:"outline",size:"sm",onClick:pe,disabled:!$,className:"h-8",children:"跳转"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(X=>X+1),disabled:l>=Math.ceil(d/m),children:[i.jsx("span",{className:"hidden sm:inline",children:"下一页"}),i.jsx(Kh,{className:"h-4 w-4 sm:ml-1"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(Math.ceil(d/m)),disabled:l>=Math.ceil(d/m),className:"hidden sm:flex",children:i.jsx(iE,{className:"h-4 w-4"})})]})]})]})]}),i.jsx(k1e,{emoji:A,open:k,onOpenChange:T}),i.jsx(M1e,{emoji:A,open:M,onOpenChange:R,onSuccess:()=>{Z(),ee()}})]})}),i.jsx(dn,{open:H,onOpenChange:G,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["你确定要删除选中的 ",U.size," 个表情包吗?此操作不可撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:Y,children:"确认删除"})]})]})}),i.jsx(sr,{open:L,onOpenChange:D,children:i.jsxs(Kn,{children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"确认删除"}),i.jsx(gr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>D(!1),children:"取消"}),i.jsx(oe,{variant:"destructive",onClick:ie,children:"删除"})]})]})})]})}function k1e({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsx(Xn,{children:i.jsx(Zn,{children:"表情包详情"})}),i.jsxs("div",{className:"space-y-4",children:[i.jsx("div",{className:"flex justify-center",children:i.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:i.jsx("img",{src:jC(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:a=>{const s=a.target;s.style.display="none";const l=s.parentElement;l&&(l.innerHTML='')}})})}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"ID"}),i.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"格式"}),i.jsx("div",{className:"mt-1",children:i.jsx(Ht,{variant:"outline",children:e.format.toUpperCase()})})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"文件路径"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"哈希值"}),i.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"描述"}),i.jsx("div",{className:"mt-1",children:e.description||"-"})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"情绪标签"}),i.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:(()=>{const a=e.emotion?e.emotion.split(/[,,]/).map(s=>s.trim()).filter(Boolean):[];return a.length>0?a.map((s,l)=>i.jsx(Ht,{variant:"secondary",children:s},l)):i.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})()})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"状态"}),i.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&i.jsx(Ht,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&i.jsx(Ht,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&i.jsx(Ht,{variant:"outline",children:"未注册"})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"使用次数"}),i.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"记录时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.record_time)})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"注册时间"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.register_time)})]})]}),i.jsxs("div",{children:[i.jsx(ne,{className:"text-muted-foreground",children:"最后使用"}),i.jsx("div",{className:"mt-1 text-sm",children:r(e.last_used_time)})]})]})]})})}function M1e({emoji:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState(""),[l,u]=y.useState(""),[d,f]=y.useState(!1),[m,p]=y.useState(!1),[g,x]=y.useState(!1),{toast:j}=xr();y.useEffect(()=>{e&&(s(e.description||""),u(e.emotion||""),f(e.is_registered),p(e.is_banned))},[e]);const w=async()=>{if(e)try{x(!0);const b=l.split(/[,,]/).map(N=>N.trim()).filter(Boolean).join(",");await _1e(e.id,{description:a||void 0,emotion:b||void 0,is_registered:d,is_banned:m}),j({title:"成功",description:"表情包信息已更新"}),n(!1),r()}catch(b){const N=b instanceof Error?b.message:"保存失败";j({title:"错误",description:N,variant:"destructive"})}finally{x(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表情包"}),i.jsx(gr,{children:"修改表情包的描述和标签信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{children:[i.jsx(ne,{children:"描述"}),i.jsx(Qt,{value:a,onChange:b=>s(b.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),i.jsxs("div",{children:[i.jsx(ne,{children:"情绪标签"}),i.jsx(Ce,{value:l,onChange:b=>u(b.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),i.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(pr,{id:"is_registered",checked:d,onCheckedChange:b=>f(b===!0)}),i.jsx(ne,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(pr,{id:"is_banned",checked:m,onCheckedChange:b=>p(b===!0)}),i.jsx(ne,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:w,disabled:g,children:g?"保存中...":"保存"})]})]})}):null}function IL({emotions:e}){const t=e?e.split(/[,,]/).map(s=>s.trim()).filter(Boolean):[];if(t.length===0)return i.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const n=(s,l=6)=>s.length<=l?s:s.slice(0,l)+"...",r=t.slice(0,3),a=t.length-3;return i.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[r.map((s,l)=>i.jsx(Ht,{variant:"secondary",className:"text-xs flex-shrink-0",title:s,children:n(s)},l)),a>0&&i.jsxs(Ht,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${a} 个标签: ${t.slice(3).join(", ")}`,children:["+",a]})]})}const $l="/api/webui/expression";async function P1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await Ze(`${$l}/list?${t}`,{headers:st()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取表达方式列表失败")}return n.json()}async function R1e(e){const t=await Ze(`${$l}/${e}`,{headers:st()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function D1e(e){const t=await Ze(`${$l}/`,{method:"POST",headers:st(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function $1e(e,t){const n=await Ze(`${$l}/${e}`,{method:"PATCH",headers:st(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新表达方式失败")}return n.json()}async function I1e(e){const t=await Ze(`${$l}/${e}`,{method:"DELETE",headers:st()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function L1e(e){const t=await Ze(`${$l}/batch/delete`,{method:"POST",headers:st(),body:JSON.stringify({ids:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"批量删除表达方式失败")}return t.json()}async function z1e(){const e=await Ze(`${$l}/stats/summary`,{headers:st()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function B1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d,f]=y.useState(20),[m,p]=y.useState(""),[g,x]=y.useState(null),[j,w]=y.useState(!1),[b,N]=y.useState(!1),[E,O]=y.useState(!1),[A,C]=y.useState(null),[k,T]=y.useState(new Set),[M,R]=y.useState(!1),[L,D]=y.useState(""),[U,V]=y.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:H}=xr(),G=async()=>{try{r(!0);const Q=await P1e({page:l,page_size:d,search:m||void 0});t(Q.data),s(Q.total)}catch(Q){H({title:"加载失败",description:Q instanceof Error?Q.message:"无法加载表达方式",variant:"destructive"})}finally{r(!1)}},$=async()=>{try{const Q=await z1e();V(Q.data)}catch(Q){console.error("加载统计数据失败:",Q)}};y.useEffect(()=>{G(),$()},[l,d,m]);const I=async Q=>{try{const he=await R1e(Q.id);x(he.data),w(!0)}catch(he){H({title:"加载详情失败",description:he instanceof Error?he.message:"无法加载表达方式详情",variant:"destructive"})}},q=Q=>{x(Q),N(!0)},Z=async Q=>{try{await I1e(Q.id),H({title:"删除成功",description:`已删除表达方式: ${Q.situation}`}),C(null),G(),$()}catch(he){H({title:"删除失败",description:he instanceof Error?he.message:"无法删除表达方式",variant:"destructive"})}},ee=Q=>{const he=new Set(k);he.has(Q)?he.delete(Q):he.add(Q),T(he)},F=()=>{k.size===e.length&&e.length>0?T(new Set):T(new Set(e.map(Q=>Q.id)))},z=async()=>{try{await L1e(Array.from(k)),H({title:"批量删除成功",description:`已删除 ${k.size} 个表达方式`}),T(new Set),R(!1),G(),$()}catch(Q){H({title:"批量删除失败",description:Q instanceof Error?Q.message:"无法批量删除表达方式",variant:"destructive"})}},K=()=>{const Q=parseInt(L),he=Math.ceil(a/d);Q>=1&&Q<=he?(u(Q),D("")):H({title:"无效的页码",description:`请输入1-${he}之间的页码`,variant:"destructive"})},ie=Q=>Q?new Date(Q*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(Xh,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),i.jsxs(oe,{onClick:()=>O(!0),className:"gap-2",children:[i.jsx(ir,{className:"h-4 w-4"}),"新增表达方式"]})]})}),i.jsx(Gt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:U.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:U.recent_7days})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:U.chat_count})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx(ne,{htmlFor:"search",children:"搜索"}),i.jsx("div",{className:"flex flex-col sm:flex-row gap-2 mt-1.5",children:i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Br,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{id:"search",placeholder:"搜索情境、风格或上下文...",value:m,onChange:Q=>p(Q.target.value),className:"pl-9"})]})}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[i.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:k.size>0&&i.jsxs("span",{children:["已选择 ",k.size," 个表达方式"]})}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ne,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),i.jsxs(St,{value:d.toString(),onValueChange:Q=>{f(parseInt(Q)),u(1),T(new Set)},children:[i.jsx(xt,{id:"page-size",className:"w-20",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"10",children:"10"}),i.jsx(ke,{value:"20",children:"20"}),i.jsx(ke,{value:"50",children:"50"}),i.jsx(ke,{value:"100",children:"100"})]})]}),k.size>0&&i.jsxs(i.Fragment,{children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>T(new Set),children:"取消选择"}),i.jsxs(oe,{variant:"destructive",size:"sm",onClick:()=>R(!0),children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:k.size===e.length&&e.length>0,onCheckedChange:F})}),i.jsx(Xe,{children:"情境"}),i.jsx(Xe,{children:"风格"}),i.jsx(Xe,{children:"聊天ID"}),i.jsx(Xe,{children:"最后活跃"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:n?i.jsx(Tn,{children:i.jsx(Be,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(Q=>i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:k.has(Q.id),onCheckedChange:()=>ee(Q.id)})}),i.jsx(Be,{className:"font-medium max-w-xs truncate",children:Q.situation}),i.jsx(Be,{className:"max-w-xs truncate",children:Q.style}),i.jsx(Be,{className:"font-mono text-sm",children:Q.chat_id}),i.jsx(Be,{className:"text-sm text-muted-foreground",children:ie(Q.last_active_time)}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>I(Q),children:i.jsx(Ya,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>q(Q),children:i.jsx(Du,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>C(Q),children:i.jsx(Ct,{className:"h-4 w-4 text-destructive"})})]})})]},Q.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(Q=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(pr,{checked:k.has(Q.id),onCheckedChange:()=>ee(Q.id),className:"mt-1"}),i.jsxs("div",{className:"min-w-0 flex-1 overflow-hidden space-y-2",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:Q.situation,children:Q.situation})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),i.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:Q.style,children:Q.style})]})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),i.jsx("p",{className:"font-mono text-xs truncate",children:Q.chat_id})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),i.jsx("p",{className:"text-xs",children:ie(Q.last_active_time)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>I(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ya,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>q(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Du,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>C(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Ct,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},Q.id))}),a>0&&i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(1),disabled:l===1,className:"hidden sm:flex",children:i.jsx(aE,{className:"h-4 w-4"})}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-1"}),i.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ce,{type:"number",value:L,onChange:Q=>D(Q.target.value),onKeyDown:Q=>Q.key==="Enter"&&K(),placeholder:l.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(a/d)}),i.jsx(oe,{variant:"outline",size:"sm",onClick:K,disabled:!L,className:"h-8",children:"跳转"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:[i.jsx("span",{className:"hidden sm:inline",children:"下一页"}),i.jsx(Kh,{className:"h-4 w-4 sm:ml-1"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(Math.ceil(a/d)),disabled:l>=Math.ceil(a/d),className:"hidden sm:flex",children:i.jsx(iE,{className:"h-4 w-4"})})]})]})]})]})}),i.jsx(q1e,{expression:g,open:j,onOpenChange:w}),i.jsx(F1e,{open:E,onOpenChange:O,onSuccess:()=>{G(),$(),O(!1)}}),i.jsx(U1e,{expression:g,open:b,onOpenChange:N,onSuccess:()=>{G(),$(),N(!1)}}),i.jsx(dn,{open:!!A,onOpenChange:()=>C(null),children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除表达方式 "',A?.situation,'" 吗? 此操作不可撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>A&&Z(A),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),i.jsx(H1e,{open:M,onOpenChange:R,onConfirm:z,count:k.size})]})}function q1e({expression:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"表达方式详情"}),i.jsx(gr,{children:"查看表达方式的完整信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Pc,{label:"情境",value:e.situation}),i.jsx(Pc,{label:"风格",value:e.style}),i.jsx(Pc,{icon:Tg,label:"聊天ID",value:e.chat_id,mono:!0}),i.jsx(Pc,{icon:Tg,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"上下文"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"上文内容"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Pc,{icon:ul,label:"最后活跃",value:r(e.last_active_time)}),i.jsx(Pc,{icon:ul,label:"创建时间",value:r(e.create_date)})]})]}),i.jsx(qr,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Pc({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(ne,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ue("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function F1e({open:e,onOpenChange:t,onSuccess:n}){const[r,a]=y.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[s,l]=y.useState(!1),{toast:u}=xr(),d=async()=>{if(!r.situation||!r.style||!r.chat_id){u({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{l(!0),await D1e(r),u({title:"创建成功",description:"表达方式已创建"}),a({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){u({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{l(!1)}};return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"新增表达方式"}),i.jsx(gr,{children:"创建新的表达方式记录"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsxs(ne,{htmlFor:"situation",children:["情境 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ce,{id:"situation",value:r.situation,onChange:f=>a({...r,situation:f.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(ne,{htmlFor:"style",children:["风格 ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ce,{id:"style",value:r.style,onChange:f=>a({...r,style:f.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsxs(ne,{htmlFor:"chat_id",children:["聊天ID ",i.jsx("span",{className:"text-destructive",children:"*"})]}),i.jsx(Ce,{id:"chat_id",value:r.chat_id,onChange:f=>a({...r,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"context",children:"上下文"}),i.jsx(Qt,{id:"context",value:r.context,onChange:f=>a({...r,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"up_content",children:"上文内容"}),i.jsx(Qt,{id:"up_content",value:r.up_content,onChange:f=>a({...r,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>t(!1),children:"取消"}),i.jsx(oe,{onClick:d,disabled:s,children:s?"创建中...":"创建"})]})]})})}function U1e({expression:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=xr();y.useEffect(()=>{e&&s({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{u(!0),await $1e(e.id,a),d({title:"保存成功",description:"表达方式已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新表达方式",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑表达方式"}),i.jsx(gr,{children:"修改表达方式的信息"})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_situation",children:"情境"}),i.jsx(Ce,{id:"edit_situation",value:a.situation||"",onChange:m=>s({...a,situation:m.target.value}),placeholder:"描述使用场景"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_style",children:"风格"}),i.jsx(Ce,{id:"edit_style",value:a.style||"",onChange:m=>s({...a,style:m.target.value}),placeholder:"描述表达风格"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_chat_id",children:"聊天ID"}),i.jsx(Ce,{id:"edit_chat_id",value:a.chat_id||"",onChange:m=>s({...a,chat_id:m.target.value}),placeholder:"关联的聊天ID"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_context",children:"上下文"}),i.jsx(Qt,{id:"edit_context",value:a.context||"",onChange:m=>s({...a,context:m.target.value}),placeholder:"上下文信息",rows:3})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit_up_content",children:"上文内容"}),i.jsx(Qt,{id:"edit_up_content",value:a.up_content||"",onChange:m=>s({...a,up_content:m.target.value}),placeholder:"上文内容",rows:3})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function H1e({open:e,onOpenChange:t,onConfirm:n,count:r}){return i.jsx(dn,{open:e,onOpenChange:t,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["您即将删除 ",r," 个表达方式,此操作无法撤销。确定要继续吗?"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:n,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"确认删除"})]})]})})}const ad="/api/webui/person";async function W1e(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await Ze(`${ad}/list?${t}`,{headers:st()});if(!n.ok){const r=await n.json();throw new Error(r.detail||"获取人物列表失败")}return n.json()}async function V1e(e){const t=await Ze(`${ad}/${e}`,{headers:st()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function G1e(e,t){const n=await Ze(`${ad}/${e}`,{method:"PATCH",headers:st(),body:JSON.stringify(t)});if(!n.ok){const r=await n.json();throw new Error(r.detail||"更新人物信息失败")}return n.json()}async function Y1e(e){const t=await Ze(`${ad}/${e}`,{method:"DELETE",headers:st()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function K1e(){const e=await Ze(`${ad}/stats/summary`,{headers:st()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}async function X1e(e){const t=await Ze(`${ad}/batch/delete`,{method:"POST",headers:st(),body:JSON.stringify({person_ids:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"批量删除失败")}return t.json()}function Z1e(){const[e,t]=y.useState([]),[n,r]=y.useState(!0),[a,s]=y.useState(0),[l,u]=y.useState(1),[d,f]=y.useState(20),[m,p]=y.useState(""),[g,x]=y.useState(void 0),[j,w]=y.useState(void 0),[b,N]=y.useState(null),[E,O]=y.useState(!1),[A,C]=y.useState(!1),[k,T]=y.useState(null),[M,R]=y.useState({total:0,known:0,unknown:0,platforms:{}}),[L,D]=y.useState(new Set),[U,V]=y.useState(!1),[H,G]=y.useState(""),{toast:$}=xr(),I=async()=>{try{r(!0);const Y=await W1e({page:l,page_size:d,search:m||void 0,is_known:g,platform:j});t(Y.data),s(Y.total)}catch(Y){$({title:"加载失败",description:Y instanceof Error?Y.message:"无法加载人物信息",variant:"destructive"})}finally{r(!1)}},q=async()=>{try{const Y=await K1e();R(Y.data)}catch(Y){console.error("加载统计数据失败:",Y)}};y.useEffect(()=>{I(),q()},[l,d,m,g,j]);const Z=async Y=>{try{const pe=await V1e(Y.person_id);N(pe.data),O(!0)}catch(pe){$({title:"加载详情失败",description:pe instanceof Error?pe.message:"无法加载人物详情",variant:"destructive"})}},ee=Y=>{N(Y),C(!0)},F=async Y=>{try{await Y1e(Y.person_id),$({title:"删除成功",description:`已删除人物信息: ${Y.person_name||Y.nickname||Y.user_id}`}),T(null),I(),q()}catch(pe){$({title:"删除失败",description:pe instanceof Error?pe.message:"无法删除人物信息",variant:"destructive"})}},z=y.useMemo(()=>Object.keys(M.platforms),[M.platforms]),K=Y=>{const pe=new Set(L);pe.has(Y)?pe.delete(Y):pe.add(Y),D(pe)},ie=()=>{L.size===e.length&&e.length>0?D(new Set):D(new Set(e.map(Y=>Y.person_id)))},Q=()=>{if(L.size===0){$({title:"未选择任何人物",description:"请先选择要删除的人物",variant:"destructive"});return}V(!0)},he=async()=>{try{const Y=await X1e(Array.from(L));$({title:"批量删除完成",description:Y.message}),D(new Set),V(!1),I(),q()}catch(Y){$({title:"批量删除失败",description:Y instanceof Error?Y.message:"批量删除失败",variant:"destructive"})}},ae=()=>{const Y=parseInt(H),pe=Math.ceil(a/d);Y>=1&&Y<=pe?(u(Y),G("")):$({title:"无效的页码",description:`请输入1-${pe}之间的页码`,variant:"destructive"})},we=Y=>Y?new Date(Y*1e3).toLocaleString("zh-CN"):"-";return i.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[i.jsx("div",{className:"mb-4 sm:mb-6",children:i.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:i.jsxs("div",{children:[i.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[i.jsx(iye,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),i.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),i.jsx(Gt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),i.jsx("div",{className:"text-2xl font-bold mt-1",children:M.total})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:M.known})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),i.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:M.unknown})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[i.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[i.jsxs("div",{className:"sm:col-span-2",children:[i.jsx(ne,{htmlFor:"search",children:"搜索"}),i.jsxs("div",{className:"relative mt-1.5",children:[i.jsx(Br,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:m,onChange:Y=>p(Y.target.value),className:"pl-9"})]})]}),i.jsxs("div",{children:[i.jsx(ne,{htmlFor:"filter-known",children:"认识状态"}),i.jsxs(St,{value:g===void 0?"all":g.toString(),onValueChange:Y=>{x(Y==="all"?void 0:Y==="true"),u(1)},children:[i.jsx(xt,{id:"filter-known",className:"mt-1.5",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部"}),i.jsx(ke,{value:"true",children:"已认识"}),i.jsx(ke,{value:"false",children:"未认识"})]})]})]}),i.jsxs("div",{children:[i.jsx(ne,{htmlFor:"filter-platform",children:"平台"}),i.jsxs(St,{value:j||"all",onValueChange:Y=>{w(Y==="all"?void 0:Y),u(1)},children:[i.jsx(xt,{id:"filter-platform",className:"mt-1.5",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部平台"}),z.map(Y=>i.jsxs(ke,{value:Y,children:[Y," (",M.platforms[Y],")"]},Y))]})]})]})]}),i.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[i.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:L.size>0&&i.jsxs("span",{children:["已选择 ",L.size," 个人物"]})}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(ne,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),i.jsxs(St,{value:d.toString(),onValueChange:Y=>{f(parseInt(Y)),u(1),D(new Set)},children:[i.jsx(xt,{id:"page-size",className:"w-20",children:i.jsx(_t,{})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"10",children:"10"}),i.jsx(ke,{value:"20",children:"20"}),i.jsx(ke,{value:"50",children:"50"}),i.jsx(ke,{value:"100",children:"100"})]})]}),L.size>0&&i.jsxs(oe,{variant:"destructive",size:"sm",onClick:Q,children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]}),i.jsxs("div",{className:"rounded-lg border bg-card",children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{className:"w-12",children:i.jsx(pr,{checked:e.length>0&&L.size===e.length,onCheckedChange:ie,"aria-label":"全选"})}),i.jsx(Xe,{children:"状态"}),i.jsx(Xe,{children:"名称"}),i.jsx(Xe,{children:"昵称"}),i.jsx(Xe,{children:"平台"}),i.jsx(Xe,{children:"用户ID"}),i.jsx(Xe,{children:"最后更新"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:n?i.jsx(Tn,{children:i.jsx(Be,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?i.jsx(Tn,{children:i.jsx(Be,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(Y=>i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(pr,{checked:L.has(Y.person_id),onCheckedChange:()=>K(Y.person_id),"aria-label":`选择 ${Y.person_name||Y.nickname||Y.user_id}`})}),i.jsx(Be,{children:i.jsx("div",{className:ue("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",Y.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:Y.is_known?"已认识":"未认识"})}),i.jsx(Be,{className:"font-medium",children:Y.person_name||i.jsx("span",{className:"text-muted-foreground",children:"-"})}),i.jsx(Be,{children:Y.nickname||"-"}),i.jsx(Be,{children:Y.platform}),i.jsx(Be,{className:"font-mono text-sm",children:Y.user_id}),i.jsx(Be,{className:"text-sm text-muted-foreground",children:we(Y.last_know)}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>Z(Y),children:i.jsx(Ya,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>ee(Y),children:i.jsx(Du,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"sm",onClick:()=>T(Y),children:i.jsx(Ct,{className:"h-4 w-4 text-destructive"})})]})})]},Y.id))})]})}),i.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?i.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(Y=>i.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(pr,{checked:L.has(Y.person_id),onCheckedChange:()=>K(Y.person_id),className:"mt-1"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:ue("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",Y.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:Y.is_known?"已认识":"未认识"}),i.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:Y.person_name||i.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),Y.nickname&&i.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",Y.nickname]})]})]}),i.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),i.jsx("p",{className:"font-medium text-xs",children:Y.platform})]}),i.jsxs("div",{children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),i.jsx("p",{className:"font-mono text-xs truncate",title:Y.user_id,children:Y.user_id})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),i.jsx("p",{className:"text-xs",children:we(Y.last_know)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>Z(Y),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Ya,{className:"h-3 w-3 mr-1"}),"查看"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>ee(Y),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[i.jsx(Du,{className:"h-3 w-3 mr-1"}),"编辑"]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>T(Y),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[i.jsx(Ct,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},Y.id))}),a>0&&i.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[i.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",a," 条记录,第 ",l," / ",Math.ceil(a/d)," 页"]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(1),disabled:l===1,className:"hidden sm:flex",children:i.jsx(aE,{className:"h-4 w-4"})}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(l-1),disabled:l===1,children:[i.jsx(Yh,{className:"h-4 w-4 sm:mr-1"}),i.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(Ce,{type:"number",value:H,onChange:Y=>G(Y.target.value),onKeyDown:Y=>Y.key==="Enter"&&ae(),placeholder:l.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(a/d)}),i.jsx(oe,{variant:"outline",size:"sm",onClick:ae,disabled:!H,className:"h-8",children:"跳转"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:()=>u(l+1),disabled:l>=Math.ceil(a/d),children:[i.jsx("span",{className:"hidden sm:inline",children:"下一页"}),i.jsx(Kh,{className:"h-4 w-4 sm:ml-1"})]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>u(Math.ceil(a/d)),disabled:l>=Math.ceil(a/d),className:"hidden sm:flex",children:i.jsx(iE,{className:"h-4 w-4"})})]})]})]})]})}),i.jsx(Q1e,{person:b,open:E,onOpenChange:O}),i.jsx(J1e,{person:b,open:A,onOpenChange:C,onSuccess:()=>{I(),q(),C(!1)}}),i.jsx(dn,{open:!!k,onOpenChange:()=>T(null),children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认删除"}),i.jsxs(an,{children:['确定要删除人物信息 "',k?.person_name||k?.nickname||k?.user_id,'" 吗? 此操作不可撤销。']})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:()=>k&&F(k),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),i.jsx(dn,{open:U,onOpenChange:V,children:i.jsxs(en,{children:[i.jsxs(tn,{children:[i.jsx(rn,{children:"确认批量删除"}),i.jsxs(an,{children:["确定要删除选中的 ",L.size," 个人物信息吗? 此操作不可撤销。"]})]}),i.jsxs(nn,{children:[i.jsx(on,{children:"取消"}),i.jsx(sn,{onClick:he,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})}function Q1e({person:e,open:t,onOpenChange:n}){if(!e)return null;const r=a=>a?new Date(a*1e3).toLocaleString("zh-CN"):"-";return i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"人物详情"}),i.jsxs(gr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsx(Ki,{icon:x8,label:"人物名称",value:e.person_name}),i.jsx(Ki,{icon:Xh,label:"昵称",value:e.nickname}),i.jsx(Ki,{icon:Tg,label:"用户ID",value:e.user_id,mono:!0}),i.jsx(Ki,{icon:Tg,label:"人物ID",value:e.person_id,mono:!0}),i.jsx(Ki,{label:"平台",value:e.platform}),i.jsx(Ki,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),i.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"个人印象"}),i.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&i.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[i.jsx(ne,{className:"text-xs text-muted-foreground",children:"群昵称"}),i.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((a,s)=>i.jsxs("div",{className:"text-sm flex items-center gap-2",children:[i.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:a.group_id}),i.jsx("span",{children:"→"}),i.jsx("span",{children:a.group_nick_name})]},s))})]}),i.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[i.jsx(Ki,{icon:ul,label:"认识时间",value:r(e.know_times)}),i.jsx(Ki,{icon:ul,label:"首次记录",value:r(e.know_since)}),i.jsx(Ki,{icon:ul,label:"最后更新",value:r(e.last_know)})]})]}),i.jsx(qr,{children:i.jsx(oe,{onClick:()=>n(!1),children:"关闭"})})]})})}function Ki({icon:e,label:t,value:n,mono:r=!1}){return i.jsxs("div",{className:"space-y-1",children:[i.jsxs(ne,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&i.jsx(e,{className:"h-3 w-3"}),t]}),i.jsx("div",{className:ue("text-sm",r&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function J1e({person:e,open:t,onOpenChange:n,onSuccess:r}){const[a,s]=y.useState({}),[l,u]=y.useState(!1),{toast:d}=xr();y.useEffect(()=>{e&&s({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{u(!0),await G1e(e.person_id,a),d({title:"保存成功",description:"人物信息已更新"}),r()}catch(m){d({title:"保存失败",description:m instanceof Error?m.message:"无法更新人物信息",variant:"destructive"})}finally{u(!1)}};return e?i.jsx(sr,{open:t,onOpenChange:n,children:i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑人物信息"}),i.jsxs(gr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),i.jsxs("div",{className:"space-y-4",children:[i.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"person_name",children:"人物名称"}),i.jsx(Ce,{id:"person_name",value:a.person_name||"",onChange:m=>s({...a,person_name:m.target.value}),placeholder:"为这个人设置一个名称"})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"nickname",children:"昵称"}),i.jsx(Ce,{id:"nickname",value:a.nickname||"",onChange:m=>s({...a,nickname:m.target.value}),placeholder:"昵称"})]})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"name_reason",children:"名称设定原因"}),i.jsx(Qt,{id:"name_reason",value:a.name_reason||"",onChange:m=>s({...a,name_reason:m.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"memory_points",children:"个人印象"}),i.jsx(Qt,{id:"memory_points",value:a.memory_points||"",onChange:m=>s({...a,memory_points:m.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),i.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[i.jsxs("div",{children:[i.jsx(ne,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),i.jsx(dt,{id:"is_known",checked:a.is_known,onCheckedChange:m=>s({...a,is_known:m})})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>n(!1),children:"取消"}),i.jsx(oe,{onClick:f,disabled:l,children:l?"保存中...":"保存"})]})]})}):null}function eSe(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const tSe={},bf={};function tl(e,t){try{const r=(tSe[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in bf?bf[r]:LL(r,r.split(":"))}catch{if(e in bf)return bf[e];const n=e?.match(nSe);return n?LL(e,n.slice(1)):NaN}}const nSe=/([+-]\d\d):?(\d\d)?/;function LL(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return bf[e]=n*60+r>0?n*60+r+a:n*60-r-a}class pi extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(tl(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),kH(this),SC(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new pi(...n,t):new pi(Date.now(),t)}withTimeZone(t){return new pi(+this,t)}getTimezoneOffset(){const t=-tl(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),SC(this),+this}[Symbol.for("constructDateFrom")](t){return new pi(+new Date(t),this.timeZone)}}const zL=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!zL.test(e))return;const t=e.replace(zL,"$1UTC");pi.prototype[t]&&(e.startsWith("get")?pi.prototype[e]=function(){return this.internal[t]()}:(pi.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),rSe(this),+this},pi.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),SC(this),+this}))});function SC(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-tl(e.timeZone,e)*60))}function rSe(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),kH(e)}function kH(e){const t=tl(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),l=a-s,u=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();l&&u&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+l);const d=a-n;d&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+d);const f=new Date(+e);f.setUTCSeconds(0);const m=a>0?f.getSeconds():(f.getSeconds()-60)%60,p=Math.round(-(tl(e.timeZone,e)*60))%60;(p||m)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+p),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+m));const g=tl(e.timeZone,e),x=g>0?Math.floor(g):Math.ceil(g),w=-new Date(+e).getTimezoneOffset()-x,b=x!==n,N=w-d;if(b&&N){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+N);const E=tl(e.timeZone,e),O=E>0?Math.floor(E):Math.ceil(E),A=x-O;A&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+A),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+A))}}class dr extends pi{static tz(t,...n){return n.length?new dr(...n,t):new dr(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${eSe(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new dr(+this,t)}[Symbol.for("constructDateFrom")](t){return new dr(+new Date(t),this.timeZone)}}const MH=6048e5,aSe=864e5,BL=Symbol.for("constructDateFrom");function Mn(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&BL in e?e[BL](t):e instanceof Date?new e.constructor(t):new Date(t)}function Wt(e,t){return Mn(t||e,e)}function PH(e,t,n){const r=Wt(e,n?.in);return isNaN(t)?Mn(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function RH(e,t,n){const r=Wt(e,n?.in);if(isNaN(t))return Mn(e,NaN);if(!t)return r;const a=r.getDate(),s=Mn(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const l=s.getDate();return a>=l?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}let iSe={};function im(){return iSe}function uo(e,t){const n=im(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Wt(e,t?.in),s=a.getDay(),l=(s=s.getTime()?r+1:n.getTime()>=u.getTime()?r:r-1}function qL(e){const t=Wt(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Il(e,...t){const n=Mn.bind(null,e||t.find(r=>typeof r=="object"));return t.map(n)}function Nh(e,t){const n=Wt(e,t?.in);return n.setHours(0,0,0,0),n}function $H(e,t,n){const[r,a]=Il(n?.in,e,t),s=Nh(r),l=Nh(a),u=+s-qL(s),d=+l-qL(l);return Math.round((u-d)/aSe)}function sSe(e,t){const n=DH(e,t),r=Mn(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),_h(r)}function oSe(e,t,n){return PH(e,t*7,n)}function lSe(e,t,n){return RH(e,t*12,n)}function cSe(e,t){let n,r=t?.in;return e.forEach(a=>{!r&&typeof a=="object"&&(r=Mn.bind(null,a));const s=Wt(a,r);(!n||n{!r&&typeof a=="object"&&(r=Mn.bind(null,a));const s=Wt(a,r);(!n||n>s||isNaN(+s))&&(n=s)}),Mn(r,n||NaN)}function dSe(e,t,n){const[r,a]=Il(n?.in,e,t);return+Nh(r)==+Nh(a)}function IH(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function fSe(e){return!(!IH(e)&&typeof e!="number"||isNaN(+Wt(e)))}function hSe(e,t,n){const[r,a]=Il(n?.in,e,t),s=r.getFullYear()-a.getFullYear(),l=r.getMonth()-a.getMonth();return s*12+l}function mSe(e,t){const n=Wt(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function LH(e,t){const[n,r]=Il(e,t.start,t.end);return{start:n,end:r}}function pSe(e,t){const{start:n,end:r}=LH(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setDate(1);let u=1;const d=[];for(;+l<=s;)d.push(Mn(n,l)),l.setMonth(l.getMonth()+u);return a?d.reverse():d}function vSe(e,t){const n=Wt(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function gSe(e,t){const n=Wt(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function zH(e,t){const n=Wt(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function ySe(e,t){const{start:n,end:r}=LH(t?.in,e);let a=+n>+r;const s=a?+n:+r,l=a?r:n;l.setHours(0,0,0,0),l.setMonth(0,1);let u=1;const d=[];for(;+l<=s;)d.push(Mn(n,l)),l.setFullYear(l.getFullYear()+u);return a?d.reverse():d}function BH(e,t){const n=im(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=Wt(e,t?.in),s=a.getDay(),l=(s{let r;const a=bSe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function tu(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const jSe={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},SSe={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},_Se={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},NSe={date:tu({formats:jSe,defaultWidth:"full"}),time:tu({formats:SSe,defaultWidth:"full"}),dateTime:tu({formats:_Se,defaultWidth:"full"})},CSe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},OSe=(e,t,n,r)=>CSe[e];function ci(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const l=e.defaultFormattingWidth||e.defaultWidth,u=n?.width?String(n.width):l;a=e.formattingValues[u]||e.formattingValues[l]}else{const l=e.defaultWidth,u=n?.width?String(n.width):e.defaultWidth;a=e.values[u]||e.values[l]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const ESe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},ASe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},TSe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},kSe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},MSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},PSe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},RSe=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},DSe={ordinalNumber:RSe,era:ci({values:ESe,defaultWidth:"wide"}),quarter:ci({values:ASe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ci({values:TSe,defaultWidth:"wide"}),day:ci({values:kSe,defaultWidth:"wide"}),dayPeriod:ci({values:MSe,defaultWidth:"wide",formattingValues:PSe,defaultFormattingWidth:"wide"})};function ui(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const l=s[0],u=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?ISe(u,p=>p.test(l)):$Se(u,p=>p.test(l));let f;f=e.valueCallback?e.valueCallback(d):d,f=n.valueCallback?n.valueCallback(f):f;const m=t.slice(l.length);return{value:f,rest:m}}}function $Se(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function ISe(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=n.valueCallback?n.valueCallback(l):l;const u=t.slice(a.length);return{value:l,rest:u}}}const LSe=/^(\d+)(th|st|nd|rd)?/i,zSe=/\d+/i,BSe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},qSe={any:[/^b/i,/^(a|c)/i]},FSe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},USe={any:[/1/i,/2/i,/3/i,/4/i]},HSe={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},WSe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},VSe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},GSe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},YSe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},KSe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},XSe={ordinalNumber:qH({matchPattern:LSe,parsePattern:zSe,valueCallback:e=>parseInt(e,10)}),era:ui({matchPatterns:BSe,defaultMatchWidth:"wide",parsePatterns:qSe,defaultParseWidth:"any"}),quarter:ui({matchPatterns:FSe,defaultMatchWidth:"wide",parsePatterns:USe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ui({matchPatterns:HSe,defaultMatchWidth:"wide",parsePatterns:WSe,defaultParseWidth:"any"}),day:ui({matchPatterns:VSe,defaultMatchWidth:"wide",parsePatterns:GSe,defaultParseWidth:"any"}),dayPeriod:ui({matchPatterns:YSe,defaultMatchWidth:"any",parsePatterns:KSe,defaultParseWidth:"any"})},IE={code:"en-US",formatDistance:wSe,formatLong:NSe,formatRelative:OSe,localize:DSe,match:XSe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function ZSe(e,t){const n=Wt(e,t?.in);return $H(n,zH(n))+1}function FH(e,t){const n=Wt(e,t?.in),r=+_h(n)-+sSe(n);return Math.round(r/MH)+1}function UH(e,t){const n=Wt(e,t?.in),r=n.getFullYear(),a=im(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,l=Mn(t?.in||e,0);l.setFullYear(r+1,0,s),l.setHours(0,0,0,0);const u=uo(l,t),d=Mn(t?.in||e,0);d.setFullYear(r,0,s),d.setHours(0,0,0,0);const f=uo(d,t);return+n>=+u?r+1:+n>=+f?r:r-1}function QSe(e,t){const n=im(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=UH(e,t),s=Mn(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),uo(s,t)}function HH(e,t){const n=Wt(e,t?.in),r=+uo(n,t)-+QSe(n,t);return Math.round(r/MH)+1}function It(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const Vs={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return It(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):It(n+1,2)},d(e,t){return It(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return It(e.getHours()%12||12,t.length)},H(e,t){return It(e.getHours(),t.length)},m(e,t){return It(e.getMinutes(),t.length)},s(e,t){return It(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return It(a,t.length)}},Rc={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},FL={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return Vs.y(e,t)},Y:function(e,t,n,r){const a=UH(e,r),s=a>0?a:1-a;if(t==="YY"){const l=s%100;return It(l,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):It(s,t.length)},R:function(e,t){const n=DH(e);return It(n,t.length)},u:function(e,t){const n=e.getFullYear();return It(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return It(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return It(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return Vs.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return It(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=HH(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):It(a,t.length)},I:function(e,t,n){const r=FH(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):It(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):Vs.d(e,t)},D:function(e,t,n){const r=ZSe(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):It(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return It(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return It(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return It(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Rc.noon:r===0?a=Rc.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Rc.evening:r>=12?a=Rc.afternoon:r>=4?a=Rc.morning:a=Rc.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return Vs.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):Vs.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):It(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):It(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):Vs.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):Vs.s(e,t)},S:function(e,t){return Vs.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return HL(r);case"XXXX":case"XX":return Yo(r);case"XXXXX":case"XXX":default:return Yo(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return HL(r);case"xxxx":case"xx":return Yo(r);case"xxxxx":case"xxx":default:return Yo(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+UL(r,":");case"OOOO":default:return"GMT"+Yo(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+UL(r,":");case"zzzz":default:return"GMT"+Yo(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return It(r,t.length)},T:function(e,t,n){return It(+e,t.length)}};function UL(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+It(s,2)}function HL(e,t){return e%60===0?(e>0?"-":"+")+It(Math.abs(e)/60,2):Yo(e,t)}function Yo(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=It(Math.trunc(r/60),2),s=It(r%60,2);return n+a+t+s}const WL=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},WH=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},JSe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return WL(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",WL(r,t)).replace("{{time}}",WH(a,t))},e_e={p:WH,P:JSe},t_e=/^D+$/,n_e=/^Y+$/,r_e=["D","DD","YY","YYYY"];function a_e(e){return t_e.test(e)}function i_e(e){return n_e.test(e)}function s_e(e,t,n){const r=o_e(e,t,n);if(console.warn(r),r_e.includes(e))throw new RangeError(r)}function o_e(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const l_e=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,c_e=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,u_e=/^'([^]*?)'?$/,d_e=/''/g,f_e=/[a-zA-Z]/;function gv(e,t,n){const r=im(),a=n?.locale??r.locale??IE,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,u=Wt(e,n?.in);if(!fSe(u))throw new RangeError("Invalid time value");let d=t.match(c_e).map(m=>{const p=m[0];if(p==="p"||p==="P"){const g=e_e[p];return g(m,a.formatLong)}return m}).join("").match(l_e).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:h_e(m)};if(FL[p])return{isToken:!0,value:m};if(p.match(f_e))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});a.localize.preprocessor&&(d=a.localize.preprocessor(u,d));const f={firstWeekContainsDate:s,weekStartsOn:l,locale:a};return d.map(m=>{if(!m.isToken)return m.value;const p=m.value;(!n?.useAdditionalWeekYearTokens&&i_e(p)||!n?.useAdditionalDayOfYearTokens&&a_e(p))&&s_e(p,t,String(e));const g=FL[p[0]];return g(u,p,a.localize,f)}).join("")}function h_e(e){const t=e.match(u_e);return t?t[1].replace(d_e,"'"):e}function m_e(e,t){const n=Wt(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=Mn(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function p_e(e,t){return Wt(e,t?.in).getMonth()}function v_e(e,t){return Wt(e,t?.in).getFullYear()}function g_e(e,t){return+Wt(e)>+Wt(t)}function y_e(e,t){return+Wt(e)<+Wt(t)}function x_e(e,t,n){const[r,a]=Il(n?.in,e,t);return+uo(r,n)==+uo(a,n)}function b_e(e,t,n){const[r,a]=Il(n?.in,e,t);return r.getFullYear()===a.getFullYear()&&r.getMonth()===a.getMonth()}function w_e(e,t,n){const[r,a]=Il(n?.in,e,t);return r.getFullYear()===a.getFullYear()}function j_e(e,t,n){const r=Wt(e,n?.in),a=r.getFullYear(),s=r.getDate(),l=Mn(e,0);l.setFullYear(a,t,15),l.setHours(0,0,0,0);const u=m_e(l);return r.setMonth(t,Math.min(s,u)),r}function S_e(e,t,n){const r=Wt(e,n?.in);return isNaN(+r)?Mn(e,NaN):(r.setFullYear(t),r)}const VL=5,__e=4;function N_e(e,t){const n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,a=t.addDays(e,-r+1),s=t.addDays(a,VL*7-1);return t.getMonth(e)===t.getMonth(s)?VL:__e}function VH(e,t){const n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function C_e(e,t){const n=VH(e,t),r=N_e(e,t);return t.addDays(n,r*7-1)}class ca{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?dr.tz(this.options.timeZone):new this.Date,this.newDate=(r,a,s)=>this.overrides?.newDate?this.overrides.newDate(r,a,s):this.options.timeZone?new dr(r,a,s,this.options.timeZone):new Date(r,a,s),this.addDays=(r,a)=>this.overrides?.addDays?this.overrides.addDays(r,a):PH(r,a),this.addMonths=(r,a)=>this.overrides?.addMonths?this.overrides.addMonths(r,a):RH(r,a),this.addWeeks=(r,a)=>this.overrides?.addWeeks?this.overrides.addWeeks(r,a):oSe(r,a),this.addYears=(r,a)=>this.overrides?.addYears?this.overrides.addYears(r,a):lSe(r,a),this.differenceInCalendarDays=(r,a)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(r,a):$H(r,a),this.differenceInCalendarMonths=(r,a)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(r,a):hSe(r,a),this.eachMonthOfInterval=r=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(r):pSe(r),this.eachYearOfInterval=r=>{const a=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(r):ySe(r),s=new Set(a.map(u=>this.getYear(u)));if(s.size===a.length)return a;const l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=r=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(r):C_e(r,this),this.endOfISOWeek=r=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(r):xSe(r),this.endOfMonth=r=>this.overrides?.endOfMonth?this.overrides.endOfMonth(r):mSe(r),this.endOfWeek=(r,a)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(r,a):BH(r,this.options),this.endOfYear=r=>this.overrides?.endOfYear?this.overrides.endOfYear(r):gSe(r),this.format=(r,a,s)=>{const l=this.overrides?.format?this.overrides.format(r,a,this.options):gv(r,a,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=r=>this.overrides?.getISOWeek?this.overrides.getISOWeek(r):FH(r),this.getMonth=(r,a)=>this.overrides?.getMonth?this.overrides.getMonth(r,this.options):p_e(r,this.options),this.getYear=(r,a)=>this.overrides?.getYear?this.overrides.getYear(r,this.options):v_e(r,this.options),this.getWeek=(r,a)=>this.overrides?.getWeek?this.overrides.getWeek(r,this.options):HH(r,this.options),this.isAfter=(r,a)=>this.overrides?.isAfter?this.overrides.isAfter(r,a):g_e(r,a),this.isBefore=(r,a)=>this.overrides?.isBefore?this.overrides.isBefore(r,a):y_e(r,a),this.isDate=r=>this.overrides?.isDate?this.overrides.isDate(r):IH(r),this.isSameDay=(r,a)=>this.overrides?.isSameDay?this.overrides.isSameDay(r,a):dSe(r,a),this.isSameMonth=(r,a)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(r,a):b_e(r,a),this.isSameYear=(r,a)=>this.overrides?.isSameYear?this.overrides.isSameYear(r,a):w_e(r,a),this.max=r=>this.overrides?.max?this.overrides.max(r):cSe(r),this.min=r=>this.overrides?.min?this.overrides.min(r):uSe(r),this.setMonth=(r,a)=>this.overrides?.setMonth?this.overrides.setMonth(r,a):j_e(r,a),this.setYear=(r,a)=>this.overrides?.setYear?this.overrides.setYear(r,a):S_e(r,a),this.startOfBroadcastWeek=(r,a)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(r,this):VH(r,this),this.startOfDay=r=>this.overrides?.startOfDay?this.overrides.startOfDay(r):Nh(r),this.startOfISOWeek=r=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(r):_h(r),this.startOfMonth=r=>this.overrides?.startOfMonth?this.overrides.startOfMonth(r):vSe(r),this.startOfWeek=(r,a)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(r,this.options):uo(r,this.options),this.startOfYear=r=>this.overrides?.startOfYear?this.overrides.startOfYear(r):zH(r),this.options={locale:IE,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),r={};for(let a=0;a<10;a++)r[a.toString()]=n.format(a);return r}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,r=>n[r]||r)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&ca.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:r,numerals:a}=this.options,s=n?.code;if(s&&ca.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:r,numberingSystem:a}).format(t)}catch{}const l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,l)}}ca.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Ei=new ca;class GH{constructor(t,n,r=Ei){this.date=t,this.displayMonth=n,this.outside=!!(n&&!r.isSameMonth(t,n)),this.dateLib=r}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class O_e{constructor(t,n){this.date=t,this.weeks=n}}class E_e{constructor(t,n){this.days=n,this.weekNumber=t}}function A_e(e){return W.createElement("button",{...e})}function T_e(e){return W.createElement("span",{...e})}function k_e(e){const{size:t=24,orientation:n="left",className:r}=e;return W.createElement("svg",{className:r,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&W.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&W.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&W.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&W.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function M_e(e){const{day:t,modifiers:n,...r}=e;return W.createElement("td",{...r})}function P_e(e){const{day:t,modifiers:n,...r}=e,a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),W.createElement("button",{ref:a,...r})}var Le;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(Le||(Le={}));var gn;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(gn||(gn={}));var Wa;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Wa||(Wa={}));var ta;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(ta||(ta={}));function R_e(e){const{options:t,className:n,components:r,classNames:a,...s}=e,l=[a[Le.Dropdown],n].join(" "),u=t?.find(({value:d})=>d===s.value);return W.createElement("span",{"data-disabled":s.disabled,className:a[Le.DropdownRoot]},W.createElement(r.Select,{className:l,...s},t?.map(({value:d,label:f,disabled:m})=>W.createElement(r.Option,{key:d,value:d,disabled:m},f))),W.createElement("span",{className:a[Le.CaptionLabel],"aria-hidden":!0},u?.label,W.createElement(r.Chevron,{orientation:"down",size:18,className:a[Le.Chevron]})))}function D_e(e){return W.createElement("div",{...e})}function $_e(e){return W.createElement("div",{...e})}function I_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r},e.children)}function L_e(e){const{calendarMonth:t,displayIndex:n,...r}=e;return W.createElement("div",{...r})}function z_e(e){return W.createElement("table",{...e})}function B_e(e){return W.createElement("div",{...e})}const YH=y.createContext(void 0);function sm(){const e=y.useContext(YH);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function q_e(e){const{components:t}=sm();return W.createElement(t.Dropdown,{...e})}function F_e(e){const{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:a,...s}=e,{components:l,classNames:u,labels:{labelPrevious:d,labelNext:f}}=sm(),m=y.useCallback(g=>{a&&n?.(g)},[a,n]),p=y.useCallback(g=>{r&&t?.(g)},[r,t]);return W.createElement("nav",{...s},W.createElement(l.PreviousMonthButton,{type:"button",className:u[Le.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":d(r),onClick:p},W.createElement(l.Chevron,{disabled:r?void 0:!0,className:u[Le.Chevron],orientation:"left"})),W.createElement(l.NextMonthButton,{type:"button",className:u[Le.NextMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":f(a),onClick:m},W.createElement(l.Chevron,{disabled:a?void 0:!0,orientation:"right",className:u[Le.Chevron]})))}function U_e(e){const{components:t}=sm();return W.createElement(t.Button,{...e})}function H_e(e){return W.createElement("option",{...e})}function W_e(e){const{components:t}=sm();return W.createElement(t.Button,{...e})}function V_e(e){const{rootRef:t,...n}=e;return W.createElement("div",{...n,ref:t})}function G_e(e){return W.createElement("select",{...e})}function Y_e(e){const{week:t,...n}=e;return W.createElement("tr",{...n})}function K_e(e){return W.createElement("th",{...e})}function X_e(e){return W.createElement("thead",{"aria-hidden":!0},W.createElement("tr",{...e}))}function Z_e(e){const{week:t,...n}=e;return W.createElement("th",{...n})}function Q_e(e){return W.createElement("th",{...e})}function J_e(e){return W.createElement("tbody",{...e})}function eNe(e){const{components:t}=sm();return W.createElement(t.Dropdown,{...e})}const tNe=Object.freeze(Object.defineProperty({__proto__:null,Button:A_e,CaptionLabel:T_e,Chevron:k_e,Day:M_e,DayButton:P_e,Dropdown:R_e,DropdownNav:D_e,Footer:$_e,Month:I_e,MonthCaption:L_e,MonthGrid:z_e,Months:B_e,MonthsDropdown:q_e,Nav:F_e,NextMonthButton:U_e,Option:H_e,PreviousMonthButton:W_e,Root:V_e,Select:G_e,Week:Y_e,WeekNumber:Z_e,WeekNumberHeader:Q_e,Weekday:K_e,Weekdays:X_e,Weeks:J_e,YearsDropdown:eNe},Symbol.toStringTag,{value:"Module"}));function ts(e,t,n=!1,r=Ei){let{from:a,to:s}=e;const{differenceInCalendarDays:l,isSameDay:u}=r;return a&&s?(l(s,a)<0&&([a,s]=[s,a]),l(t,a)>=(n?1:0)&&l(s,t)>=(n?1:0)):!n&&s?u(s,t):!n&&a?u(a,t):!1}function KH(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function LE(e){return!!(e&&typeof e=="object"&&"from"in e)}function XH(e){return!!(e&&typeof e=="object"&&"after"in e)}function ZH(e){return!!(e&&typeof e=="object"&&"before"in e)}function QH(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function JH(e,t){return Array.isArray(e)&&e.every(t.isDate)}function ns(e,t,n=Ei){const r=Array.isArray(t)?t:[t],{isSameDay:a,differenceInCalendarDays:s,isAfter:l}=n;return r.some(u=>{if(typeof u=="boolean")return u;if(n.isDate(u))return a(e,u);if(JH(u,n))return u.includes(e);if(LE(u))return ts(u,e,!1,n);if(QH(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(KH(u)){const d=s(u.before,e),f=s(u.after,e),m=d>0,p=f<0;return l(u.before,u.after)?p&&m:m||p}return XH(u)?s(e,u.after)>0:ZH(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function nNe(e,t,n,r,a){const{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:f,today:m}=t,{isSameDay:p,isSameMonth:g,startOfMonth:x,isBefore:j,endOfMonth:w,isAfter:b}=a,N=n&&x(n),E=r&&w(r),O={[gn.focused]:[],[gn.outside]:[],[gn.disabled]:[],[gn.hidden]:[],[gn.today]:[]},A={};for(const C of e){const{date:k,displayMonth:T}=C,M=!!(T&&!g(k,T)),R=!!(N&&j(k,N)),L=!!(E&&b(k,E)),D=!!(s&&ns(k,s,a)),U=!!(l&&ns(k,l,a))||R||L||!f&&!d&&M||f&&d===!1&&M,V=p(k,m??a.today());M&&O.outside.push(C),D&&O.disabled.push(C),U&&O.hidden.push(C),V&&O.today.push(C),u&&Object.keys(u).forEach(H=>{const G=u?.[H];G&&ns(k,G,a)&&(A[H]?A[H].push(C):A[H]=[C])})}return C=>{const k={[gn.focused]:!1,[gn.disabled]:!1,[gn.hidden]:!1,[gn.outside]:!1,[gn.today]:!1},T={};for(const M in O){const R=O[M];k[M]=R.some(L=>L===C)}for(const M in A)T[M]=A[M].some(R=>R===C);return{...k,...T}}}function rNe(e,t,n={}){return Object.entries(e).filter(([,a])=>a===!0).reduce((a,[s])=>(n[s]?a.push(n[s]):t[gn[s]]?a.push(t[gn[s]]):t[Wa[s]]&&a.push(t[Wa[s]]),a),[t[Le.Day]])}function aNe(e){return{...tNe,...e}}function iNe(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,r])=>{n.startsWith("data-")&&(t[n]=r)}),t}function zE(){const e={};for(const t in Le)e[Le[t]]=`rdp-${Le[t]}`;for(const t in gn)e[gn[t]]=`rdp-${gn[t]}`;for(const t in Wa)e[Wa[t]]=`rdp-${Wa[t]}`;for(const t in ta)e[ta[t]]=`rdp-${ta[t]}`;return e}function e9(e,t,n){return(n??new ca(t)).formatMonthYear(e)}const sNe=e9;function oNe(e,t,n){return(n??new ca(t)).format(e,"d")}function lNe(e,t=Ei){return t.format(e,"LLLL")}function cNe(e,t,n){return(n??new ca(t)).format(e,"cccccc")}function uNe(e,t=Ei){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function dNe(){return""}function t9(e,t=Ei){return t.format(e,"yyyy")}const fNe=t9,hNe=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:e9,formatDay:oNe,formatMonthCaption:sNe,formatMonthDropdown:lNe,formatWeekNumber:uNe,formatWeekNumberHeader:dNe,formatWeekdayName:cNe,formatYearCaption:fNe,formatYearDropdown:t9},Symbol.toStringTag,{value:"Module"}));function mNe(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...hNe,...e}}function pNe(e,t,n,r,a){const{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:f}=a;return d({start:l(e),end:u(e)}).map(g=>{const x=r.formatMonthDropdown(g,a),j=f(g),w=t&&gs(n)||!1;return{value:j,label:x,disabled:w}})}function vNe(e,t={},n={}){let r={...t?.[Le.Day]};return Object.entries(e).filter(([,a])=>a===!0).forEach(([a])=>{r={...r,...n?.[a]}}),r}function gNe(e,t,n){const r=e.today(),a=t?e.startOfISOWeek(r):e.startOfWeek(r),s=[];for(let l=0;l<7;l++){const u=e.addDays(a,l);s.push(u)}return s}function yNe(e,t,n,r,a=!1){if(!e||!t)return;const{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=r,f=s(e),m=l(t),p=u({start:f,end:m});return a&&p.reverse(),p.map(g=>{const x=n.formatYearDropdown(g,r);return{value:d(g),label:x,disabled:!1}})}function n9(e,t,n,r){let a=(r??new ca(n)).format(e,"PPPP");return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a}const xNe=n9;function r9(e,t,n){return(n??new ca(t)).formatMonthYear(e)}const bNe=r9;function wNe(e,t,n,r){let a=(r??new ca(n)).format(e,"PPPP");return t?.today&&(a=`Today, ${a}`),a}function jNe(e){return"Choose the Month"}function SNe(){return""}function _Ne(e){return"Go to the Next Month"}function NNe(e){return"Go to the Previous Month"}function CNe(e,t,n){return(n??new ca(t)).format(e,"cccc")}function ONe(e,t){return`Week ${e}`}function ENe(e){return"Week Number"}function ANe(e){return"Choose the Year"}const TNe=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:bNe,labelDay:xNe,labelDayButton:n9,labelGrid:r9,labelGridcell:wNe,labelMonthDropdown:jNe,labelNav:SNe,labelNext:_Ne,labelPrevious:NNe,labelWeekNumber:ONe,labelWeekNumberHeader:ENe,labelWeekday:CNe,labelYearDropdown:ANe},Symbol.toStringTag,{value:"Module"})),om=e=>e instanceof HTMLElement?e:null,p_=e=>[...e.querySelectorAll("[data-animated-month]")??[]],kNe=e=>om(e.querySelector("[data-animated-month]")),v_=e=>om(e.querySelector("[data-animated-caption]")),g_=e=>om(e.querySelector("[data-animated-weeks]")),MNe=e=>om(e.querySelector("[data-animated-nav]")),PNe=e=>om(e.querySelector("[data-animated-weekdays]"));function RNe(e,t,{classNames:n,months:r,focused:a,dateLib:s}){const l=y.useRef(null),u=y.useRef(r),d=y.useRef(!1);y.useLayoutEffect(()=>{const f=u.current;if(u.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||f.length===0||r.length!==f.length)return;const m=s.isSameMonth(r[0].date,f[0].date),p=s.isAfter(r[0].date,f[0].date),g=p?n[ta.caption_after_enter]:n[ta.caption_before_enter],x=p?n[ta.weeks_after_enter]:n[ta.weeks_before_enter],j=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(p_(w).forEach(O=>{if(!(O instanceof HTMLElement))return;const A=kNe(O);A&&O.contains(A)&&O.removeChild(A);const C=v_(O);C&&C.classList.remove(g);const k=g_(O);k&&k.classList.remove(x)}),l.current=w):l.current=null,d.current||m||a)return;const b=j instanceof HTMLElement?p_(j):[],N=p_(e.current);if(N?.every(E=>E instanceof HTMLElement)&&b&&b.every(E=>E instanceof HTMLElement)){d.current=!0,e.current.style.isolation="isolate";const E=MNe(e.current);E&&(E.style.zIndex="1"),N.forEach((O,A)=>{const C=b[A];if(!C)return;O.style.position="relative",O.style.overflow="hidden";const k=v_(O);k&&k.classList.add(g);const T=g_(O);T&&T.classList.add(x);const M=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),E&&(E.style.zIndex=""),k&&k.classList.remove(g),T&&T.classList.remove(x),O.style.position="",O.style.overflow="",O.contains(C)&&O.removeChild(C)};C.style.pointerEvents="none",C.style.position="absolute",C.style.overflow="hidden",C.setAttribute("aria-hidden","true");const R=PNe(C);R&&(R.style.opacity="0");const L=v_(C);L&&(L.classList.add(p?n[ta.caption_before_exit]:n[ta.caption_after_exit]),L.addEventListener("animationend",M));const D=g_(C);D&&D.classList.add(p?n[ta.weeks_before_exit]:n[ta.weeks_after_exit]),O.insertBefore(C,O.firstChild)})}})}function DNe(e,t,n,r){const a=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=n??{},{addDays:f,differenceInCalendarDays:m,differenceInCalendarMonths:p,endOfBroadcastWeek:g,endOfISOWeek:x,endOfMonth:j,endOfWeek:w,isAfter:b,startOfBroadcastWeek:N,startOfISOWeek:E,startOfWeek:O}=r,A=d?N(a,r):l?E(a):O(a),C=d?g(s):l?x(j(s)):w(j(s)),k=m(C,A),T=p(s,a)+1,M=[];for(let D=0;D<=k;D++){const U=f(A,D);if(t&&b(U,t))break;M.push(U)}const L=(d?35:42)*T;if(u&&M.length{const a=r.weeks.reduce((s,l)=>s.concat(l.days.slice()),t.slice());return n.concat(a.slice())},t.slice())}function INe(e,t,n,r){const{numberOfMonths:a=1}=n,s=[];for(let l=0;lt)break;s.push(u)}return s}function GL(e,t,n,r){const{month:a,defaultMonth:s,today:l=r.today(),numberOfMonths:u=1}=e;let d=a||s||l;const{differenceInCalendarMonths:f,addMonths:m,startOfMonth:p}=r;if(n&&f(n,d){const N=n.broadcastCalendar?p(b,r):n.ISOWeek?g(b):x(b),E=n.broadcastCalendar?s(b):n.ISOWeek?l(u(b)):d(u(b)),O=t.filter(T=>T>=N&&T<=E),A=n.broadcastCalendar?35:42;if(n.fixedWeeks&&O.length{const R=A-O.length;return M>E&&M<=a(E,R)});O.push(...T)}const C=O.reduce((T,M)=>{const R=n.ISOWeek?f(M):m(M),L=T.find(U=>U.weekNumber===R),D=new GH(M,b,r);return L?L.days.push(D):T.push(new E_e(R,[D])),T},[]),k=new O_e(b,C);return w.push(k),w},[]);return n.reverseMonths?j.reverse():j}function zNe(e,t){let{startMonth:n,endMonth:r}=e;const{startOfYear:a,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:f,newDate:m,today:p}=t,{fromYear:g,toYear:x,fromMonth:j,toMonth:w}=e;!n&&j&&(n=j),!n&&g&&(n=t.newDate(g,0,1)),!r&&w&&(r=w),!r&&x&&(r=m(x,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=l(n):g?n=m(g,0,1):!n&&b&&(n=a(d(e.today??p(),-100))),r?r=u(r):x?r=m(x,11,31):!r&&b&&(r=f(e.today??p())),[n&&s(n),r&&s(r)]}function BNe(e,t,n,r){if(n.disableNavigation)return;const{pagedNavigation:a,numberOfMonths:s=1}=n,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=r,f=a?s:1,m=l(e);if(!t)return u(m,f);if(!(d(t,e)n.concat(r.weeks.slice()),t.slice())}function cx(e,t){const[n,r]=y.useState(e);return[t===void 0?n:t,r]}function UNe(e,t){const[n,r]=zNe(e,t),{startOfMonth:a,endOfMonth:s}=t,l=GL(e,n,r,t),[u,d]=cx(l,e.month?l:void 0);y.useEffect(()=>{const k=GL(e,n,r,t);d(k)},[e.timeZone]);const f=INe(u,r,e,t),m=DNe(f,e.endMonth?s(e.endMonth):void 0,e,t),p=LNe(f,m,e,t),g=FNe(p),x=$Ne(p),j=qNe(u,n,e,t),w=BNe(u,r,e,t),{disableNavigation:b,onMonthChange:N}=e,E=k=>g.some(T=>T.days.some(M=>M.isEqualTo(k))),O=k=>{if(b)return;let T=a(k);n&&Ta(r)&&(T=a(r)),d(T),N?.(T)};return{months:p,weeks:g,days:x,navStart:n,navEnd:r,previousMonth:j,nextMonth:w,goToMonth:O,goToDay:k=>{E(k)||O(k.date)}}}var si;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(si||(si={}));function YL(e){return!e[gn.disabled]&&!e[gn.hidden]&&!e[gn.outside]}function HNe(e,t,n,r){let a,s=-1;for(const l of e){const u=t(l);YL(u)&&(u[gn.focused]&&sYL(t(l)))),a}function WNe(e,t,n,r,a,s,l){const{ISOWeek:u,broadcastCalendar:d}=s,{addDays:f,addMonths:m,addWeeks:p,addYears:g,endOfBroadcastWeek:x,endOfISOWeek:j,endOfWeek:w,max:b,min:N,startOfBroadcastWeek:E,startOfISOWeek:O,startOfWeek:A}=l;let k={day:f,week:p,month:m,year:g,startOfWeek:T=>d?E(T,l):u?O(T):A(T),endOfWeek:T=>d?x(T):u?j(T):w(T)}[e](n,t==="after"?1:-1);return t==="before"&&r?k=b([r,k]):t==="after"&&a&&(k=N([a,k])),k}function a9(e,t,n,r,a,s,l,u=0){if(u>365)return;const d=WNe(e,t,n.date,r,a,s,l),f=!!(s.disabled&&ns(d,s.disabled,l)),m=!!(s.hidden&&ns(d,s.hidden,l)),p=d,g=new GH(d,p,l);return!f&&!m?g:a9(e,t,g,r,a,s,l,u+1)}function VNe(e,t,n,r,a){const{autoFocus:s}=e,[l,u]=y.useState(),d=HNe(t.days,n,r||(()=>!1),l),[f,m]=y.useState(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:m,focused:f,blur:()=>{u(f),m(void 0)},moveFocus:(w,b)=>{if(!f)return;const N=a9(w,b,f,t.navStart,t.navEnd,e,a);N&&(e.disableNavigation&&!t.days.some(O=>O.isEqualTo(N))||(t.goToDay(N),m(N)))}}}function GNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=cx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t,f=x=>u?.some(j=>d(j,x))??!1,{min:m,max:p}=e;return{selected:u,select:(x,j,w)=>{let b=[...u??[]];if(f(x)){if(u?.length===m||r&&u?.length===1)return;b=u?.filter(N=>!d(N,x))}else u?.length===p?b=[x]:b=[...b,x];return a||l(b),a?.(b,x,j,w),b},isSelected:f}}function YNe(e,t,n=0,r=0,a=!1,s=Ei){const{from:l,to:u}=t||{},{isSameDay:d,isAfter:f,isBefore:m}=s;let p;if(!l&&!u)p={from:e,to:n>0?void 0:e};else if(l&&!u)d(l,e)?n===0?p={from:l,to:e}:a?p={from:l,to:void 0}:p=void 0:m(e,l)?p={from:e,to:l}:p={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))a?p={from:l,to:u}:p=void 0;else if(d(l,e))p={from:l,to:n>0?void 0:e};else if(d(u,e))p={from:e,to:n>0?void 0:e};else if(m(e,l))p={from:e,to:u};else if(f(e,l))p={from:l,to:e};else if(f(e,u))p={from:l,to:e};else throw new Error("Invalid range");if(p?.from&&p?.to){const g=s.differenceInCalendarDays(p.to,p.from);r>0&&g>r?p={from:e,to:void 0}:n>1&&gtypeof u!="function").some(u=>typeof u=="boolean"?u:n.isDate(u)?ts(e,u,!1,n):JH(u,n)?u.some(d=>ts(e,d,!1,n)):LE(u)?u.from&&u.to?KL(e,{from:u.from,to:u.to},n):!1:QH(u)?KNe(e,u.dayOfWeek,n):KH(u)?n.isAfter(u.before,u.after)?KL(e,{from:n.addDays(u.after,1),to:n.addDays(u.before,-1)},n):ns(e.from,u,n)||ns(e.to,u,n):XH(u)||ZH(u)?ns(e.from,u,n)||ns(e.to,u,n):!1))return!0;const l=r.filter(u=>typeof u=="function");if(l.length){let u=e.from;const d=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=d;f++){if(l.some(m=>m(u)))return!0;u=n.addDays(u,1)}}return!1}function ZNe(e,t){const{disabled:n,excludeDisabled:r,selected:a,required:s,onSelect:l}=e,[u,d]=cx(a,l?a:void 0),f=l?a:u;return{selected:f,select:(g,x,j)=>{const{min:w,max:b}=e,N=g?YNe(g,f,w,b,s,t):void 0;return r&&n&&N?.from&&N.to&&XNe({from:N.from,to:N.to},n,t)&&(N.from=g,N.to=void 0),l||d(N),l?.(N,g,x,j),N},isSelected:g=>f&&ts(f,g,!1,t)}}function QNe(e,t){const{selected:n,required:r,onSelect:a}=e,[s,l]=cx(n,a?n:void 0),u=a?n:s,{isSameDay:d}=t;return{selected:u,select:(p,g,x)=>{let j=p;return!r&&u&&u&&d(p,u)&&(j=void 0),a||l(j),a?.(j,p,g,x),j},isSelected:p=>u?d(u,p):!1}}function JNe(e,t){const n=QNe(e,t),r=GNe(e,t),a=ZNe(e,t);switch(e.mode){case"single":return n;case"multiple":return r;case"range":return a;default:return}}function eCe(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new dr(t.today,t.timeZone)),t.month&&(t.month=new dr(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new dr(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new dr(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new dr(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new dr(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(ot=>new dr(ot,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new dr(t.selected.from,t.timeZone):void 0,to:t.selected.to?new dr(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:r,labels:a,dateLib:s,locale:l,classNames:u}=y.useMemo(()=>{const ot={...IE,...t.locale};return{dateLib:new ca({locale:ot,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:aNe(t.components),formatters:mNe(t.formatters),labels:{...TNe,...t.labels},locale:ot,classNames:{...zE(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:d,mode:f,navLayout:m,numberOfMonths:p=1,onDayBlur:g,onDayClick:x,onDayFocus:j,onDayKeyDown:w,onDayMouseEnter:b,onDayMouseLeave:N,onNextClick:E,onPrevClick:O,showWeekNumber:A,styles:C}=t,{formatCaption:k,formatDay:T,formatMonthDropdown:M,formatWeekNumber:R,formatWeekNumberHeader:L,formatWeekdayName:D,formatYearDropdown:U}=r,V=UNe(t,s),{days:H,months:G,navStart:$,navEnd:I,previousMonth:q,nextMonth:Z,goToMonth:ee}=V,F=nNe(H,t,$,I,s),{isSelected:z,select:K,selected:ie}=JNe(t,s)??{},{blur:Q,focused:he,isFocusTarget:ae,moveFocus:we,setFocused:Y}=VNe(t,V,F,z??(()=>!1),s),{labelDayButton:pe,labelGridcell:je,labelGrid:X,labelMonthDropdown:Ae,labelNav:Oe,labelPrevious:We,labelNext:Ve,labelWeekday:be,labelWeekNumber:_e,labelWeekNumberHeader:rt,labelYearDropdown:fn}=a,Tt=y.useMemo(()=>gNe(s,t.ISOWeek),[s,t.ISOWeek]),zt=f!==void 0||x!==void 0,at=y.useCallback(()=>{q&&(ee(q),O?.(q))},[q,ee,O]),re=y.useCallback(()=>{Z&&(ee(Z),E?.(Z))},[ee,Z,E]),Se=y.useCallback((ot,Kt)=>Ge=>{Ge.preventDefault(),Ge.stopPropagation(),Y(ot),K?.(ot.date,Kt,Ge),x?.(ot.date,Kt,Ge)},[K,x,Y]),ut=y.useCallback((ot,Kt)=>Ge=>{Y(ot),j?.(ot.date,Kt,Ge)},[j,Y]),Or=y.useCallback((ot,Kt)=>Ge=>{Q(),g?.(ot.date,Kt,Ge)},[Q,g]),bs=y.useCallback((ot,Kt)=>Ge=>{const Et={ArrowLeft:[Ge.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[Ge.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[Ge.shiftKey?"year":"week","after"],ArrowUp:[Ge.shiftKey?"year":"week","before"],PageUp:[Ge.shiftKey?"year":"month","before"],PageDown:[Ge.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(Et[Ge.key]){Ge.preventDefault(),Ge.stopPropagation();const[qn,lt]=Et[Ge.key];we(qn,lt)}w?.(ot.date,Kt,Ge)},[we,w,t.dir]),mx=y.useCallback((ot,Kt)=>Ge=>{b?.(ot.date,Kt,Ge)},[b]),mm=y.useCallback((ot,Kt)=>Ge=>{N?.(ot.date,Kt,Ge)},[N]),px=y.useCallback(ot=>Kt=>{const Ge=Number(Kt.target.value),Et=s.setMonth(s.startOfMonth(ot),Ge);ee(Et)},[s,ee]),vx=y.useCallback(ot=>Kt=>{const Ge=Number(Kt.target.value),Et=s.setYear(s.startOfMonth(ot),Ge);ee(Et)},[s,ee]),{className:jo,style:wr}=y.useMemo(()=>({className:[u[Le.Root],t.className].filter(Boolean).join(" "),style:{...C?.[Le.Root],...t.style}}),[u,t.className,t.style,C]),ei=iNe(t),lr=y.useRef(null);RNe(lr,!!t.animate,{classNames:u,months:G,focused:he,dateLib:s});const gx={dayPickerProps:t,selected:ie,select:K,isSelected:z,months:G,nextMonth:Z,previousMonth:q,goToMonth:ee,getModifiers:F,components:n,classNames:u,styles:C,labels:a,formatters:r};return W.createElement(YH.Provider,{value:gx},W.createElement(n.Root,{rootRef:t.animate?lr:void 0,className:jo,style:wr,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...ei},W.createElement(n.Months,{className:u[Le.Months],style:C?.[Le.Months]},!t.hideNavigation&&!m&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Le.Nav],style:C?.[Le.Nav],"aria-label":Oe(),onPreviousClick:at,onNextClick:re,previousMonth:q,nextMonth:Z}),G.map((ot,Kt)=>W.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:u[Le.Month],style:C?.[Le.Month],key:Kt,displayIndex:Kt,calendarMonth:ot},m==="around"&&!t.hideNavigation&&Kt===0&&W.createElement(n.PreviousMonthButton,{type:"button",className:u[Le.PreviousMonthButton],tabIndex:q?void 0:-1,"aria-disabled":q?void 0:!0,"aria-label":We(q),onClick:at,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:q?void 0:!0,className:u[Le.Chevron],orientation:t.dir==="rtl"?"right":"left"})),W.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:u[Le.MonthCaption],style:C?.[Le.MonthCaption],calendarMonth:ot,displayIndex:Kt},d?.startsWith("dropdown")?W.createElement(n.DropdownNav,{className:u[Le.Dropdowns],style:C?.[Le.Dropdowns]},(()=>{const Ge=d==="dropdown"||d==="dropdown-months"?W.createElement(n.MonthsDropdown,{key:"month",className:u[Le.MonthsDropdown],"aria-label":Ae(),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:px(ot.date),options:pNe(ot.date,$,I,r,s),style:C?.[Le.Dropdown],value:s.getMonth(ot.date)}):W.createElement("span",{key:"month"},M(ot.date,s)),Et=d==="dropdown"||d==="dropdown-years"?W.createElement(n.YearsDropdown,{key:"year",className:u[Le.YearsDropdown],"aria-label":fn(s.options),classNames:u,components:n,disabled:!!t.disableNavigation,onChange:vx(ot.date),options:yNe($,I,r,s,!!t.reverseYears),style:C?.[Le.Dropdown],value:s.getYear(ot.date)}):W.createElement("span",{key:"year"},U(ot.date,s));return s.getMonthYearOrder()==="year-first"?[Et,Ge]:[Ge,Et]})(),W.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},k(ot.date,s.options,s))):W.createElement(n.CaptionLabel,{className:u[Le.CaptionLabel],role:"status","aria-live":"polite"},k(ot.date,s.options,s))),m==="around"&&!t.hideNavigation&&Kt===p-1&&W.createElement(n.NextMonthButton,{type:"button",className:u[Le.NextMonthButton],tabIndex:Z?void 0:-1,"aria-disabled":Z?void 0:!0,"aria-label":Ve(Z),onClick:re,"data-animated-button":t.animate?"true":void 0},W.createElement(n.Chevron,{disabled:Z?void 0:!0,className:u[Le.Chevron],orientation:t.dir==="rtl"?"left":"right"})),Kt===p-1&&m==="after"&&!t.hideNavigation&&W.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:u[Le.Nav],style:C?.[Le.Nav],"aria-label":Oe(),onPreviousClick:at,onNextClick:re,previousMonth:q,nextMonth:Z}),W.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":X(ot.date,s.options,s)||void 0,className:u[Le.MonthGrid],style:C?.[Le.MonthGrid]},!t.hideWeekdays&&W.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:u[Le.Weekdays],style:C?.[Le.Weekdays]},A&&W.createElement(n.WeekNumberHeader,{"aria-label":rt(s.options),className:u[Le.WeekNumberHeader],style:C?.[Le.WeekNumberHeader],scope:"col"},L()),Tt.map(Ge=>W.createElement(n.Weekday,{"aria-label":be(Ge,s.options,s),className:u[Le.Weekday],key:String(Ge),style:C?.[Le.Weekday],scope:"col"},D(Ge,s.options,s)))),W.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:u[Le.Weeks],style:C?.[Le.Weeks]},ot.weeks.map(Ge=>W.createElement(n.Week,{className:u[Le.Week],key:Ge.weekNumber,style:C?.[Le.Week],week:Ge},A&&W.createElement(n.WeekNumber,{week:Ge,style:C?.[Le.WeekNumber],"aria-label":_e(Ge.weekNumber,{locale:l}),className:u[Le.WeekNumber],scope:"row",role:"rowheader"},R(Ge.weekNumber,s)),Ge.days.map(Et=>{const{date:qn}=Et,lt=F(Et);if(lt[gn.focused]=!lt.hidden&&!!he?.isEqualTo(Et),lt[Wa.selected]=z?.(qn)||lt.selected,LE(ie)){const{from:Bl,to:_o}=ie;lt[Wa.range_start]=!!(Bl&&_o&&s.isSameDay(qn,Bl)),lt[Wa.range_end]=!!(Bl&&_o&&s.isSameDay(qn,_o)),lt[Wa.range_middle]=ts(ie,qn,!0,s)}const zl=vNe(lt,C,t.modifiersStyles),So=rNe(lt,u,t.modifiersClassNames),yx=!zt&&!lt.hidden?je(qn,lt,s.options,s):void 0;return W.createElement(n.Day,{key:`${s.format(qn,"yyyy-MM-dd")}_${s.format(Et.displayMonth,"yyyy-MM")}`,day:Et,modifiers:lt,className:So.join(" "),style:zl,role:"gridcell","aria-selected":lt.selected||void 0,"aria-label":yx,"data-day":s.format(qn,"yyyy-MM-dd"),"data-month":Et.outside?s.format(qn,"yyyy-MM"):void 0,"data-selected":lt.selected||void 0,"data-disabled":lt.disabled||void 0,"data-hidden":lt.hidden||void 0,"data-outside":Et.outside||void 0,"data-focused":lt.focused||void 0,"data-today":lt.today||void 0},!lt.hidden&&zt?W.createElement(n.DayButton,{className:u[Le.DayButton],style:C?.[Le.DayButton],type:"button",day:Et,modifiers:lt,disabled:lt.disabled||void 0,tabIndex:ae(Et)?0:-1,"aria-label":pe(qn,lt,s.options,s),onClick:Se(Et,lt),onBlur:Or(Et,lt),onFocus:ut(Et,lt),onKeyDown:bs(Et,lt),onMouseEnter:mx(Et,lt),onMouseLeave:mm(Et,lt)},T(qn,s.options,s)):!lt.hidden&&T(Et.date,s.options,s))})))))))),t.footer&&W.createElement(n.Footer,{className:u[Le.Footer],style:C?.[Le.Footer],role:"status","aria-live":"polite"},t.footer)))}function XL({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r="label",buttonVariant:a="ghost",formatters:s,components:l,...u}){const d=zE();return i.jsx(eCe,{showOutsideDays:n,className:ue("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...s},classNames:{root:ue("w-fit",d.root),months:ue("relative flex flex-col gap-4 md:flex-row",d.months),month:ue("flex w-full flex-col gap-4",d.month),nav:ue("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:ue(bh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_previous),button_next:ue(bh({variant:a}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",d.button_next),month_caption:ue("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",d.month_caption),dropdowns:ue("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:ue("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",d.dropdown_root),dropdown:ue("bg-popover absolute inset-0 opacity-0",d.dropdown),caption_label:ue("select-none font-medium",r==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",d.caption_label),table:"w-full border-collapse",weekdays:ue("flex",d.weekdays),weekday:ue("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",d.weekday),week:ue("mt-2 flex w-full",d.week),week_number_header:ue("w-[--cell-size] select-none",d.week_number_header),week_number:ue("text-muted-foreground select-none text-[0.8rem]",d.week_number),day:ue("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",d.day),range_start:ue("bg-accent rounded-l-md",d.range_start),range_middle:ue("rounded-none",d.range_middle),range_end:ue("bg-accent rounded-r-md",d.range_end),today:ue("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",d.today),outside:ue("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:ue("text-muted-foreground opacity-50",d.disabled),hidden:ue("invisible",d.hidden),...t},components:{Root:({className:f,rootRef:m,...p})=>i.jsx("div",{"data-slot":"calendar",ref:m,className:ue(f),...p}),Chevron:({className:f,orientation:m,...p})=>m==="left"?i.jsx(Yh,{className:ue("size-4",f),...p}):m==="right"?i.jsx(Kh,{className:ue("size-4",f),...p}):i.jsx(gh,{className:ue("size-4",f),...p}),DayButton:tCe,WeekNumber:({children:f,...m})=>i.jsx("td",{...m,children:i.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...l},...u})}function tCe({className:e,day:t,modifiers:n,...r}){const a=zE(),s=y.useRef(null);return y.useEffect(()=>{n.focused&&s.current?.focus()},[n.focused]),i.jsx(oe,{ref:s,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:ue("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",a.day,e),...r})}class nCe{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const r=JSON.parse(n.data);this.notifyLog(r)}catch(r){console.error("解析日志消息失败:",r)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(r=>r.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(r=>{try{r(t)}catch(a){console.error("日志回调执行失败:",a)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(r){console.error("连接状态回调执行失败:",r)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const Bc=new nCe;typeof window<"u"&&Bc.connect();const rCe={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},aCe=(e,t,n)=>{let r;const a=rCe[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?r+"内":r+"前":r},iCe={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},sCe={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},oCe={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},lCe={date:tu({formats:iCe,defaultWidth:"full"}),time:tu({formats:sCe,defaultWidth:"full"}),dateTime:tu({formats:oCe,defaultWidth:"full"})};function ZL(e,t,n){const r="eeee p";return x_e(e,t,n)?r:e.getTime()>t.getTime()?"'下个'"+r:"'上个'"+r}const cCe={lastWeek:ZL,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:ZL,other:"PP p"},uCe=(e,t,n,r)=>{const a=cCe[e];return typeof a=="function"?a(t,n,r):a},dCe={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},fCe={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},hCe={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},mCe={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},pCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},vCe={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},gCe=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},yCe={ordinalNumber:gCe,era:ci({values:dCe,defaultWidth:"wide"}),quarter:ci({values:fCe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:ci({values:hCe,defaultWidth:"wide"}),day:ci({values:mCe,defaultWidth:"wide"}),dayPeriod:ci({values:pCe,defaultWidth:"wide",formattingValues:vCe,defaultFormattingWidth:"wide"})},xCe=/^(第\s*)?\d+(日|时|分|秒)?/i,bCe=/\d+/i,wCe={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},jCe={any:[/^(前)/i,/^(公元)/i]},SCe={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},_Ce={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},NCe={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},CCe={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},OCe={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},ECe={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},ACe={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},TCe={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},kCe={ordinalNumber:qH({matchPattern:xCe,parsePattern:bCe,valueCallback:e=>parseInt(e,10)}),era:ui({matchPatterns:wCe,defaultMatchWidth:"wide",parsePatterns:jCe,defaultParseWidth:"any"}),quarter:ui({matchPatterns:SCe,defaultMatchWidth:"wide",parsePatterns:_Ce,defaultParseWidth:"any",valueCallback:e=>e+1}),month:ui({matchPatterns:NCe,defaultMatchWidth:"wide",parsePatterns:CCe,defaultParseWidth:"any"}),day:ui({matchPatterns:OCe,defaultMatchWidth:"wide",parsePatterns:ECe,defaultParseWidth:"any"}),dayPeriod:ui({matchPatterns:ACe,defaultMatchWidth:"any",parsePatterns:TCe,defaultParseWidth:"any"})},ev={code:"zh-CN",formatDistance:aCe,formatLong:lCe,formatRelative:uCe,localize:yCe,match:kCe,options:{weekStartsOn:1,firstWeekContainsDate:4}};function MCe(){const[e,t]=y.useState([]),[n,r]=y.useState(""),[a,s]=y.useState("all"),[l,u]=y.useState("all"),[d,f]=y.useState(void 0),[m,p]=y.useState(void 0),[g,x]=y.useState(!0),[j,w]=y.useState(!1),b=y.useRef(null),N=y.useRef(null);y.useEffect(()=>{const D=Bc.getAllLogs();t(D);const U=Bc.onLog(()=>{t(Bc.getAllLogs())}),V=Bc.onConnectionChange(H=>{w(H)});return()=>{U(),V()}},[]),y.useEffect(()=>{g&&N.current&&N.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,g]);const E=y.useMemo(()=>{const D=new Set(e.map(U=>U.module));return Array.from(D).sort()},[e]),O=D=>{switch(D){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},A=D=>{switch(D){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},C=()=>{window.location.reload()},k=()=>{Bc.clearLogs(),t([])},T=()=>{const D=L.map(G=>`${G.timestamp} [${G.level.padEnd(8)}] [${G.module}] ${G.message}`).join(` -`),U=new Blob([D],{type:"text/plain;charset=utf-8"}),V=URL.createObjectURL(U),H=document.createElement("a");H.href=V,H.download=`logs-${gv(new Date,"yyyy-MM-dd-HHmmss")}.txt`,H.click(),URL.revokeObjectURL(V)},M=()=>{x(!g)},R=()=>{f(void 0),p(void 0)},L=y.useMemo(()=>e.filter(D=>{const U=n===""||D.message.toLowerCase().includes(n.toLowerCase())||D.module.toLowerCase().includes(n.toLowerCase()),V=a==="all"||D.level===a,H=l==="all"||D.module===l;let G=!0;if(d||m){const $=new Date(D.timestamp);if(d){const I=new Date(d);I.setHours(0,0,0,0),G=G&&$>=I}if(m){const I=new Date(m);I.setHours(23,59,59,999),G=G&&$<=I}}return U&&V&&H&&G}),[e,n,a,l,d,m]);return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),i.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("div",{className:ue("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),i.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),i.jsx(Ke,{className:"p-3 sm:p-4",children:i.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[i.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"搜索日志...",value:n,onChange:D=>r(D.target.value),className:"pl-9 h-9 text-sm"})]}),i.jsxs(St,{value:a,onValueChange:s,children:[i.jsxs(xt,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[i.jsx(rC,{className:"h-4 w-4 mr-2"}),i.jsx(_t,{placeholder:"级别"})]}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部级别"}),i.jsx(ke,{value:"DEBUG",children:"DEBUG"}),i.jsx(ke,{value:"INFO",children:"INFO"}),i.jsx(ke,{value:"WARNING",children:"WARNING"}),i.jsx(ke,{value:"ERROR",children:"ERROR"}),i.jsx(ke,{value:"CRITICAL",children:"CRITICAL"})]})]}),i.jsxs(St,{value:l,onValueChange:u,children:[i.jsxs(xt,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[i.jsx(rC,{className:"h-4 w-4 mr-2"}),i.jsx(_t,{placeholder:"模块"})]}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部模块"}),E.map(D=>i.jsx(ke,{value:D,children:D},D))]})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ue("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!d&&"text-muted-foreground"),children:[i.jsx(eL,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:d?gv(d,"PPP",{locale:ev}):"开始日期"})]})}),i.jsx(hs,{className:"w-auto p-0",align:"start",children:i.jsx(XL,{mode:"single",selected:d,onSelect:f,initialFocus:!0,locale:ev})})]}),i.jsxs(oo,{children:[i.jsx(lo,{asChild:!0,children:i.jsxs(oe,{variant:"outline",size:"sm",className:ue("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[i.jsx(eL,{className:"mr-2 h-4 w-4"}),i.jsx("span",{className:"text-xs sm:text-sm",children:m?gv(m,"PPP",{locale:ev}):"结束日期"})]})}),i.jsx(hs,{className:"w-auto p-0",align:"start",children:i.jsx(XL,{mode:"single",selected:m,onSelect:p,initialFocus:!0,locale:ev})})]}),(d||m)&&i.jsxs(oe,{variant:"outline",size:"sm",onClick:R,className:"w-full sm:w-auto h-9",children:[i.jsx(Zh,{className:"h-4 w-4 sm:mr-2"}),i.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),i.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),i.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[i.jsxs("div",{className:"flex gap-2 flex-wrap",children:[i.jsxs(oe,{variant:g?"default":"outline",size:"sm",onClick:M,className:"flex-1 sm:flex-none h-9",children:[g?i.jsx(jge,{className:"h-4 w-4"}):i.jsx(Nge,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:g?"自动滚动":"已暂停"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:C,className:"flex-1 sm:flex-none h-9",children:[i.jsx(os,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:k,className:"flex-1 sm:flex-none h-9",children:[i.jsx(Ct,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),i.jsxs(oe,{variant:"outline",size:"sm",onClick:T,className:"flex-1 sm:flex-none h-9",children:[i.jsx(tC,{className:"h-4 w-4"}),i.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),i.jsx("div",{className:"flex-1 hidden sm:block"}),i.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[i.jsxs("span",{className:"font-mono",children:[L.length," / ",e.length]}),i.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),i.jsx(Ke,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:i.jsx(Gt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:i.jsxs("div",{ref:b,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[L.length===0?i.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):L.map(D=>i.jsxs("div",{className:ue("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",A(D.level)),children:[i.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:D.timestamp}),i.jsxs("span",{className:ue("text-xs font-semibold",O(D.level)),children:["[",D.level,"]"]})]}),i.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:D.module}),i.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:D.message})]}),i.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[i.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:D.timestamp}),i.jsxs("span",{className:ue("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",O(D.level)),children:["[",D.level,"]"]}),i.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:D.module}),i.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:D.message})]})]},D.id)),i.jsx("div",{ref:N,className:"h-4"})]})})})]})})}const PCe="Mai-with-u",RCe="plugin-repo",DCe="main",$Ce="plugin_details.json";async function ICe(){try{const e=await Ze("/api/webui/plugins/fetch-raw",{method:"POST",headers:st(),body:JSON.stringify({owner:PCe,repo:RCe,branch:DCe,file_path:$Ce})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(a=>!a?.id||!a?.manifest?(console.warn("跳过无效插件数据:",a),!1):!a.manifest.name||!a.manifest.version?(console.warn("跳过缺少必需字段的插件:",a.id),!1):!0).map(a=>({id:a.id,manifest:{manifest_version:a.manifest.manifest_version||1,name:a.manifest.name,version:a.manifest.version,description:a.manifest.description||"",author:a.manifest.author||{name:"Unknown"},license:a.manifest.license||"Unknown",host_application:a.manifest.host_application||{min_version:"0.0.0"},homepage_url:a.manifest.homepage_url,repository_url:a.manifest.repository_url,keywords:a.manifest.keywords||[],categories:a.manifest.categories||[],default_locale:a.manifest.default_locale||"zh-CN",locales_path:a.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function LCe(){try{const e=await Ze("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function zCe(){try{const e=await Ze("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function BCe(e,t,n){const r=e.split(".").map(u=>parseInt(u)||0),a=r[0]||0,s=r[1]||0,l=r[2]||0;if(n.version_majorparseInt(p)||0),d=u[0]||0,f=u[1]||0,m=u[2]||0;if(n.version_major>d||n.version_major===d&&n.version_minor>f||n.version_major===d&&n.version_minor===f&&n.version_patch>m)return!1}return!0}function qCe(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",r=window.location.host,a=new WebSocket(`${n}//${r}/api/webui/ws/plugin-progress`);return a.onopen=()=>{console.log("Plugin progress WebSocket connected");const s=setInterval(()=>{a.readyState===WebSocket.OPEN?a.send("ping"):clearInterval(s)},3e4)},a.onmessage=s=>{try{if(s.data==="pong")return;const l=JSON.parse(s.data);e(l)}catch(l){console.error("Failed to parse progress data:",l)}},a.onerror=s=>{console.error("Plugin progress WebSocket error:",s),t?.(s)},a.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},a}async function tv(){try{const e=await Ze("/api/webui/plugins/installed",{headers:st()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function nv(e,t){return t.some(n=>n.id===e)}function rv(e,t){const n=t.find(r=>r.id===e);if(n)return n.manifest?.version||n.version}async function FCe(e,t,n="main"){const r=await Ze("/api/webui/plugins/install",{method:"POST",headers:st(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"安装失败")}return await r.json()}async function UCe(e){const t=await Ze("/api/webui/plugins/uninstall",{method:"POST",headers:st(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function HCe(e,t,n="main"){const r=await Ze("/api/webui/plugins/update",{method:"POST",headers:st(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!r.ok){const a=await r.json();throw new Error(a.detail||"更新失败")}return await r.json()}const QL={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function WCe(){const e=ua(),[t,n]=y.useState(null),[r,a]=y.useState(""),[s,l]=y.useState("all"),[u,d]=y.useState("all"),[f,m]=y.useState(!1),[p,g]=y.useState([]),[x,j]=y.useState(!0),[w,b]=y.useState(null),[N,E]=y.useState(null),[O,A]=y.useState(null),[C,k]=y.useState(null),[,T]=y.useState([]),{toast:M}=xr();y.useEffect(()=>{let I=null,q=!1;return(async()=>{if(I=qCe(ee=>{q||(A(ee),ee.stage==="success"?setTimeout(()=>{q||A(null)},2e3):ee.stage==="error"&&(j(!1),b(ee.error||"加载失败")))},ee=>{console.error("WebSocket error:",ee),q||M({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(ee=>{if(!I){ee();return}const F=()=>{I&&I.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),ee()):I&&I.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),ee()):setTimeout(F,100)};F()}),!q){const ee=await LCe();E(ee),ee.installed||M({title:"Git 未安装",description:ee.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!q){const ee=await zCe();k(ee)}if(!q)try{j(!0),b(null);const ee=await ICe();if(!q){const F=await tv();T(F);const z=ee.map(K=>{const ie=nv(K.id,F),Q=rv(K.id,F);return{...K,installed:ie,installed_version:Q}});for(const K of F)!z.some(Q=>Q.id===K.id)&&K.manifest&&z.push({id:K.id,manifest:{manifest_version:K.manifest.manifest_version||1,name:K.manifest.name,version:K.manifest.version,description:K.manifest.description||"",author:K.manifest.author,license:K.manifest.license||"Unknown",host_application:K.manifest.host_application,homepage_url:K.manifest.homepage_url,repository_url:K.manifest.repository_url,keywords:K.manifest.keywords||[],categories:K.manifest.categories||[],default_locale:K.manifest.default_locale||"zh-CN",locales_path:K.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:K.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});g(z)}}catch(ee){if(!q){const F=ee instanceof Error?ee.message:"加载插件列表失败";b(F),M({title:"加载失败",description:F,variant:"destructive"})}}finally{q||j(!1)}})(),()=>{q=!0,I&&I.close()}},[M]);const R=I=>{if(!I.installed&&C&&!L(I))return i.jsxs(Ht,{variant:"destructive",className:"gap-1",children:[i.jsx(xl,{className:"h-3 w-3"}),"不兼容"]});if(I.installed){const q=I.installed_version?.trim(),Z=I.manifest.version?.trim();if(q!==Z){const ee=q?.split(".").map(Number)||[0,0,0],F=Z?.split(".").map(Number)||[0,0,0];for(let z=0;z<3;z++){if((F[z]||0)>(ee[z]||0))return i.jsxs(Ht,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[i.jsx(xl,{className:"h-3 w-3"}),"可更新"]});if((F[z]||0)<(ee[z]||0))break}}return i.jsxs(Ht,{variant:"default",className:"gap-1",children:[i.jsx(Dr,{className:"h-3 w-3"}),"已安装"]})}return null},L=I=>!C||!I.manifest?.host_application?!0:BCe(I.manifest.host_application.min_version,I.manifest.host_application.max_version,C),D=I=>{if(!I.installed||!I.installed_version||!I.manifest?.version)return!1;const q=I.installed_version.trim(),Z=I.manifest.version.trim();if(q===Z)return!1;const ee=q.split(".").map(Number),F=Z.split(".").map(Number);for(let z=0;z<3;z++){if((F[z]||0)>(ee[z]||0))return!0;if((F[z]||0)<(ee[z]||0))return!1}return!1},U=p.filter(I=>{if(!I.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",I.id),!1;const q=r===""||I.manifest.name?.toLowerCase().includes(r.toLowerCase())||I.manifest.description?.toLowerCase().includes(r.toLowerCase())||I.manifest.keywords&&I.manifest.keywords.some(z=>z.toLowerCase().includes(r.toLowerCase())),Z=s==="all"||I.manifest.categories&&I.manifest.categories.includes(s);let ee=!0;u==="installed"?ee=I.installed===!0:u==="updates"&&(ee=I.installed===!0&&D(I));const F=!f||!C||L(I);return q&&Z&&ee&&F}),V=()=>{n(null)},H=async I=>{if(!N?.installed){M({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(C&&!L(I)){M({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await FCe(I.id,I.manifest.repository_url||"","main"),M({title:"安装成功",description:`${I.manifest.name} 已成功安装`});const q=await tv();T(q),g(Z=>Z.map(ee=>{if(ee.id===I.id){const F=nv(ee.id,q),z=rv(ee.id,q);return{...ee,installed:F,installed_version:z}}return ee}))}catch(q){M({title:"安装失败",description:q instanceof Error?q.message:"未知错误",variant:"destructive"})}},G=async I=>{try{await UCe(I.id),M({title:"卸载成功",description:`${I.manifest.name} 已成功卸载`});const q=await tv();T(q),g(Z=>Z.map(ee=>{if(ee.id===I.id){const F=nv(ee.id,q),z=rv(ee.id,q);return{...ee,installed:F,installed_version:z}}return ee}))}catch(q){M({title:"卸载失败",description:q instanceof Error?q.message:"未知错误",variant:"destructive"})}},$=async I=>{if(!N?.installed){M({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const q=await HCe(I.id,I.manifest.repository_url||"","main");M({title:"更新成功",description:`${I.manifest.name} 已从 ${q.old_version} 更新到 ${q.new_version}`});const Z=await tv();T(Z),g(ee=>ee.map(F=>{if(F.id===I.id){const z=nv(F.id,Z),K=rv(F.id,Z);return{...F,installed:z,installed_version:K}}return F}))}catch(q){M({title:"更新失败",description:q instanceof Error?q.message:"未知错误",variant:"destructive"})}};return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),i.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),i.jsxs(oe,{onClick:()=>e({to:"/plugin-mirrors"}),children:[i.jsx(Ige,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),N&&!N.installed&&i.jsxs(Ke,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[i.jsx(gt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Xc,{className:"h-5 w-5 text-orange-600"}),i.jsxs("div",{children:[i.jsx(yt,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),i.jsx(Wn,{className:"text-orange-800 dark:text-orange-200",children:N.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),i.jsx(Pt,{children:i.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",i.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),i.jsx(Ke,{className:"p-4",children:i.jsxs("div",{className:"flex flex-col gap-4",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[i.jsxs("div",{className:"flex-1 relative",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),i.jsx(Ce,{placeholder:"搜索插件...",value:r,onChange:I=>a(I.target.value),className:"pl-9"})]}),i.jsxs(St,{value:s,onValueChange:l,children:[i.jsx(xt,{className:"w-full sm:w-[200px]",children:i.jsx(_t,{placeholder:"选择分类"})}),i.jsxs(bt,{children:[i.jsx(ke,{value:"all",children:"全部分类"}),i.jsx(ke,{value:"Group Management",children:"群组管理"}),i.jsx(ke,{value:"Entertainment & Interaction",children:"娱乐互动"}),i.jsx(ke,{value:"Utility Tools",children:"实用工具"}),i.jsx(ke,{value:"Content Generation",children:"内容生成"}),i.jsx(ke,{value:"Multimedia",children:"多媒体"}),i.jsx(ke,{value:"External Integration",children:"外部集成"}),i.jsx(ke,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),i.jsx(ke,{value:"Other",children:"其他"})]})]})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(pr,{id:"compatible-only",checked:f,onCheckedChange:I=>m(I===!0)}),i.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),i.jsx(hl,{value:u,onValueChange:d,className:"w-full",children:i.jsxs(ao,{className:"grid w-full grid-cols-3",children:[i.jsxs(Lt,{value:"all",children:["全部插件 (",p.length,")"]}),i.jsxs(Lt,{value:"installed",children:["已安装 (",p.filter(I=>I.installed).length,")"]}),i.jsxs(Lt,{value:"updates",children:["可更新 (",p.filter(I=>I.installed&&D(I)).length,")"]})]})}),O&&O.stage==="loading"&&i.jsx(Ke,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center justify-between",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx(yh,{className:"h-4 w-4 animate-spin"}),i.jsxs("span",{className:"text-sm font-medium",children:[O.operation==="fetch"&&"加载插件列表",O.operation==="install"&&`安装插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="uninstall"&&`卸载插件${O.plugin_id?`: ${O.plugin_id}`:""}`,O.operation==="update"&&`更新插件${O.plugin_id?`: ${O.plugin_id}`:""}`]})]}),i.jsxs("span",{className:"text-sm font-medium",children:[O.progress,"%"]})]}),i.jsx(Ih,{value:O.progress,className:"h-2"}),i.jsx("div",{className:"text-xs text-muted-foreground",children:O.message}),O.operation==="fetch"&&O.total_plugins>0&&i.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",O.loaded_plugins," / ",O.total_plugins," 个插件"]})]})}),O&&O.stage==="error"&&O.error&&i.jsx(Ke,{className:"border-destructive bg-destructive/10",children:i.jsx(gt,{children:i.jsxs("div",{className:"flex items-center gap-3",children:[i.jsx(Xc,{className:"h-5 w-5 text-destructive"}),i.jsxs("div",{children:[i.jsx(yt,{className:"text-lg text-destructive",children:"加载失败"}),i.jsx(Wn,{className:"text-destructive/80",children:O.error})]})]})})}),x?i.jsxs("div",{className:"flex items-center justify-center py-12",children:[i.jsx(yh,{className:"h-8 w-8 animate-spin text-muted-foreground"}),i.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):w?i.jsx(Ke,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Xc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:w}),i.jsx(oe,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):U.length===0?i.jsx(Ke,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Br,{className:"h-12 w-12 text-muted-foreground mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:r||s!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):i.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:U.map(I=>i.jsxs(Ke,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[i.jsxs(gt,{children:[i.jsxs("div",{className:"flex items-start justify-between gap-2",children:[i.jsx(yt,{className:"text-xl",children:I.manifest?.name||I.id}),i.jsxs("div",{className:"flex flex-col gap-1",children:[I.manifest?.categories&&I.manifest.categories[0]&&i.jsx(Ht,{variant:"secondary",className:"text-xs whitespace-nowrap",children:QL[I.manifest.categories[0]]||I.manifest.categories[0]}),R(I)]})]}),i.jsx(Wn,{className:"line-clamp-2",children:I.manifest?.description||"无描述"})]}),i.jsx(Pt,{className:"flex-1",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(tC,{className:"h-4 w-4"}),i.jsx("span",{children:I.downloads.toLocaleString()})]}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(rL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsx("span",{children:I.rating.toFixed(1)})]})]}),i.jsxs("div",{className:"flex flex-wrap gap-2",children:[I.manifest?.keywords&&I.manifest.keywords.slice(0,3).map(q=>i.jsx(Ht,{variant:"outline",className:"text-xs",children:q},q)),I.manifest?.keywords&&I.manifest.keywords.length>3&&i.jsxs(Ht,{variant:"outline",className:"text-xs",children:["+",I.manifest.keywords.length-3]})]}),i.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[i.jsxs("div",{children:["v",I.manifest?.version||"unknown"," · ",I.manifest?.author?.name||"Unknown"]}),I.manifest?.host_application&&i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx("span",{children:"支持:"}),i.jsxs("span",{className:"font-medium",children:[I.manifest.host_application.min_version,I.manifest.host_application.max_version?` - ${I.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),i.jsx(nz,{className:"pt-4",children:i.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>n(I),children:"查看详情"}),I.installed?D(I)?i.jsxs(oe,{size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>$(I),children:[i.jsx(os,{className:"h-4 w-4 mr-1"}),"更新"]}):i.jsxs(oe,{variant:"destructive",size:"sm",disabled:!N?.installed,title:N?.installed?void 0:"Git 未安装",onClick:()=>G(I),children:[i.jsx(Ct,{className:"h-4 w-4 mr-1"}),"卸载"]}):i.jsxs(oe,{size:"sm",disabled:!N?.installed||O?.operation==="install"||C!==null&&!L(I),title:N?.installed?C!==null&&!L(I)?`不兼容当前版本 (需要 ${I.manifest?.host_application?.min_version||"未知"}${I.manifest?.host_application?.max_version?` - ${I.manifest.host_application.max_version}`:"+"},当前 ${C?.version})`:void 0:"Git 未安装",onClick:()=>H(I),children:[i.jsx(tC,{className:"h-4 w-4 mr-1"}),O?.operation==="install"&&O?.plugin_id===I.id?"安装中...":"安装"]})]})})]},I.id))}),i.jsx(sr,{open:t!==null,onOpenChange:V,children:t&&t.manifest&&i.jsxs(Kn,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[i.jsx(Xn,{children:i.jsxs("div",{className:"flex items-start justify-between gap-4",children:[i.jsxs("div",{className:"space-y-2 flex-1",children:[i.jsx(Zn,{className:"text-2xl",children:t.manifest.name}),i.jsxs(gr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&i.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:i.jsx(Pf,{className:"h-3 w-3 inline"})})]})]}),i.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&i.jsx(Ht,{variant:"secondary",children:QL[t.manifest.categories[0]]||t.manifest.categories[0]}),R(t)]})]})}),i.jsxs("div",{className:"space-y-6",children:[i.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&i.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"下载量"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"评分"}),i.jsxs("div",{className:"flex items-center gap-1",children:[i.jsx(rL,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),i.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"许可证"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),i.jsxs("div",{className:"col-span-2",children:[i.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),i.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),i.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(I=>i.jsx(Ht,{variant:"outline",children:I},I))})]}),t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),i.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),i.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"主页: "}),i.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&i.jsxs("div",{className:"text-sm",children:[i.jsx("span",{className:"font-medium",children:"仓库: "}),i.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),i.jsxs(qr,{children:[t.manifest.homepage_url&&i.jsxs(oe,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[i.jsx(Pf,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&i.jsxs(oe,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[i.jsx(Pf,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function VCe(){return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),i.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),i.jsxs("div",{className:"flex gap-2",children:[i.jsxs(oe,{variant:"outline",size:"sm",children:[i.jsx(os,{className:"h-4 w-4 mr-2"}),"刷新"]}),i.jsxs(oe,{size:"sm",children:[i.jsx(Ha,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"已安装插件"}),i.jsx(Mg,{className:"h-4 w-4 text-muted-foreground"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"已启用"}),i.jsx(Dr,{className:"h-4 w-4 text-green-600"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"已禁用"}),i.jsx(xl,{className:"h-4 w-4 text-orange-600"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[i.jsx(yt,{className:"text-sm font-medium",children:"可更新"}),i.jsx(os,{className:"h-4 w-4 text-blue-600"})]}),i.jsxs(Pt,{children:[i.jsx("div",{className:"text-2xl font-bold",children:"0"}),i.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),i.jsxs(Ke,{children:[i.jsxs(gt,{children:[i.jsx(yt,{children:"已安装的插件"}),i.jsx(Wn,{children:"查看和管理已安装插件的配置"})]}),i.jsx(Pt,{children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[i.jsx(Mg,{className:"h-16 w-16 text-muted-foreground/50"}),i.jsxs("div",{className:"text-center space-y-2",children:[i.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),i.jsx("div",{className:"flex gap-2",children:i.jsx(oe,{variant:"outline",asChild:!0,children:i.jsxs("a",{href:"/plugins",children:[i.jsx(Pf,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),i.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[i.jsxs(Ke,{children:[i.jsx(gt,{children:i.jsx(yt,{className:"text-base",children:"即将推出的功能"})}),i.jsx(Pt,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Dr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Dr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Dr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:i.jsx(Dr,{className:"h-4 w-4 text-primary"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),i.jsxs(Ke,{children:[i.jsx(gt,{children:i.jsx(yt,{className:"text-base",children:"开发者工具"})}),i.jsx(Pt,{children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Ha,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"热重载"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Ha,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Ha,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:i.jsx(Ha,{className:"h-4 w-4 text-blue-600"})}),i.jsxs("div",{children:[i.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),i.jsx(Ke,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:i.jsx(Pt,{className:"pt-6",children:i.jsxs("div",{className:"flex items-start gap-3",children:[i.jsx(xl,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),i.jsxs("div",{className:"space-y-1",children:[i.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),i.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",i.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function GCe(){const e=ua(),{toast:t}=xr(),[n,r]=y.useState([]),[a,s]=y.useState(!0),[l,u]=y.useState(null),[d,f]=y.useState(null),[m,p]=y.useState(!1),[g,x]=y.useState(!1),[j,w]=y.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b=y.useCallback(async()=>{try{s(!0),u(null);const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${T}`}});if(!M.ok)throw new Error("获取镜像源列表失败");const R=await M.json();r(R.mirrors||[])}catch(T){const M=T instanceof Error?T.message:"加载镜像源失败";u(M),t({title:"加载失败",description:M,variant:"destructive"})}finally{s(!1)}},[t]);y.useEffect(()=>{b()},[b]);const N=async()=>{try{const T=localStorage.getItem("access-token"),M=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!M.ok){const R=await M.json();throw new Error(R.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),p(!1),w({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),b()}catch(T){t({title:"添加失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},E=async()=>{if(d)try{const T=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${d.id}`,{method:"PUT",headers:{Authorization:`Bearer ${T}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),x(!1),f(null),b()}catch(T){t({title:"更新失败",description:T instanceof Error?T.message:"未知错误",variant:"destructive"})}},O=async T=>{if(confirm("确定要删除这个镜像源吗?"))try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T}`,{method:"DELETE",headers:{Authorization:`Bearer ${M}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),b()}catch(M){t({title:"删除失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},A=async T=>{try{const M=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${M}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!T.enabled})})).ok)throw new Error("更新状态失败");b()}catch(M){t({title:"更新失败",description:M instanceof Error?M.message:"未知错误",variant:"destructive"})}},C=T=>{f(T),w({id:T.id,name:T.name,raw_prefix:T.raw_prefix,clone_prefix:T.clone_prefix,enabled:T.enabled,priority:T.priority}),x(!0)},k=async(T,M)=>{const R=M==="up"?T.priority-1:T.priority+1;if(!(R<1))try{const L=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${T.id}`,{method:"PUT",headers:{Authorization:`Bearer ${L}`,"Content-Type":"application/json"},body:JSON.stringify({priority:R})})).ok)throw new Error("更新优先级失败");b()}catch(L){t({title:"更新失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}};return i.jsx(Gt,{className:"h-full",children:i.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[i.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:i.jsx(m8,{className:"h-5 w-5"})}),i.jsxs("div",{children:[i.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),i.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),i.jsxs(oe,{onClick:()=>p(!0),children:[i.jsx(ir,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),a?i.jsx(Ke,{className:"p-6",children:i.jsx("div",{className:"flex items-center justify-center py-8",children:i.jsx(yh,{className:"h-8 w-8 animate-spin text-primary"})})}):l?i.jsx(Ke,{className:"p-6",children:i.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[i.jsx(Xc,{className:"h-12 w-12 text-destructive mb-4"}),i.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),i.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:l}),i.jsx(oe,{onClick:b,children:"重新加载"})]})}):i.jsxs(Ke,{children:[i.jsx("div",{className:"hidden md:block",children:i.jsxs(Pl,{children:[i.jsx(Rl,{children:i.jsxs(Tn,{children:[i.jsx(Xe,{children:"状态"}),i.jsx(Xe,{children:"名称"}),i.jsx(Xe,{children:"ID"}),i.jsx(Xe,{children:"优先级"}),i.jsx(Xe,{className:"text-right",children:"操作"})]})}),i.jsx(Dl,{children:n.map(T=>i.jsxs(Tn,{children:[i.jsx(Be,{children:i.jsx(dt,{checked:T.enabled,onCheckedChange:()=>A(T)})}),i.jsx(Be,{children:i.jsxs("div",{children:[i.jsx("div",{className:"font-medium",children:T.name}),i.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",T.raw_prefix]})]})}),i.jsx(Be,{children:i.jsx(Ht,{variant:"outline",children:T.id})}),i.jsx(Be,{children:i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("span",{className:"font-mono",children:T.priority}),i.jsxs("div",{className:"flex flex-col gap-1",children:[i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(QN,{className:"h-3 w-3"})}),i.jsx(oe,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>k(T,"down"),children:i.jsx(gh,{className:"h-3 w-3"})})]})]})}),i.jsx(Be,{className:"text-right",children:i.jsxs("div",{className:"flex items-center justify-end gap-2",children:[i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>C(T),children:i.jsx(Ru,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"ghost",size:"icon",onClick:()=>O(T.id),children:i.jsx(Ct,{className:"h-4 w-4 text-destructive"})})]})})]},T.id))})]})}),i.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(T=>i.jsx(Ke,{className:"p-4",children:i.jsxs("div",{className:"space-y-3",children:[i.jsxs("div",{className:"flex items-start justify-between",children:[i.jsxs("div",{className:"flex-1",children:[i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsx("h3",{className:"font-semibold",children:T.name}),T.enabled&&i.jsx(Ht,{variant:"default",className:"text-xs",children:"启用"})]}),i.jsx(Ht,{variant:"outline",className:"mt-1 text-xs",children:T.id})]}),i.jsx(dt,{checked:T.enabled,onCheckedChange:()=>A(T)})]}),i.jsxs("div",{className:"text-sm space-y-1",children:[i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"Raw: "}),i.jsx("span",{className:"break-all",children:T.raw_prefix})]}),i.jsxs("div",{className:"text-muted-foreground",children:[i.jsx("span",{className:"font-medium",children:"优先级: "}),i.jsx("span",{className:"font-mono",children:T.priority})]})]}),i.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[i.jsxs(oe,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>C(T),children:[i.jsx(Ru,{className:"h-4 w-4 mr-1"}),"编辑"]}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"up"),disabled:T.priority===1,children:i.jsx(QN,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"outline",size:"sm",onClick:()=>k(T,"down"),children:i.jsx(gh,{className:"h-4 w-4"})}),i.jsx(oe,{variant:"destructive",size:"sm",onClick:()=>O(T.id),children:i.jsx(Ct,{className:"h-4 w-4"})})]})]})},T.id))})]}),i.jsx(sr,{open:m,onOpenChange:p,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"添加镜像源"}),i.jsx(gr,{children:"添加新的 Git 镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-id",children:"镜像源 ID *"}),i.jsx(Ce,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:T=>w({...j,id:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-name",children:"名称 *"}),i.jsx(Ce,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),i.jsx(Ce,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-clone",children:"克隆前缀 *"}),i.jsx(Ce,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"add-priority",children:"优先级"}),i.jsx(Ce,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"add-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(ne,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>p(!1),children:"取消"}),i.jsx(oe,{onClick:N,children:"添加"})]})]})}),i.jsx(sr,{open:g,onOpenChange:x,children:i.jsxs(Kn,{className:"max-w-lg",children:[i.jsxs(Xn,{children:[i.jsx(Zn,{children:"编辑镜像源"}),i.jsx(gr,{children:"修改镜像源配置"})]}),i.jsxs("div",{className:"space-y-4 py-4",children:[i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{children:"镜像源 ID"}),i.jsx(Ce,{value:j.id,disabled:!0})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit-name",children:"名称 *"}),i.jsx(Ce,{id:"edit-name",value:j.name,onChange:T=>w({...j,name:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),i.jsx(Ce,{id:"edit-raw",value:j.raw_prefix,onChange:T=>w({...j,raw_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit-clone",children:"克隆前缀 *"}),i.jsx(Ce,{id:"edit-clone",value:j.clone_prefix,onChange:T=>w({...j,clone_prefix:T.target.value})})]}),i.jsxs("div",{className:"space-y-2",children:[i.jsx(ne,{htmlFor:"edit-priority",children:"优先级"}),i.jsx(Ce,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:T=>w({...j,priority:parseInt(T.target.value)||1})}),i.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),i.jsxs("div",{className:"flex items-center space-x-2",children:[i.jsx(dt,{id:"edit-enabled",checked:j.enabled,onCheckedChange:T=>w({...j,enabled:T})}),i.jsx(ne,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),i.jsxs(qr,{children:[i.jsx(oe,{variant:"outline",onClick:()=>x(!1),children:"取消"}),i.jsx(oe,{onClick:E,children:"保存"})]})]})})]})})}const YCe=Qu("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),i9=y.forwardRef(({className:e,size:t,abbrTitle:n,children:r,...a},s)=>i.jsx("kbd",{className:ue(YCe({size:t,className:e})),ref:s,...a,children:n?i.jsx("abbr",{title:n,children:r}):r}));i9.displayName="Kbd";const KCe=[{icon:kg,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:sE,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:y8,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:p8,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:cE,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:Xh,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:v8,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:Tve,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:Mg,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:Ag,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Ha,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function XCe({open:e,onOpenChange:t}){const[n,r]=y.useState(""),[a,s]=y.useState(0),l=ua(),u=KCe.filter(m=>m.title.toLowerCase().includes(n.toLowerCase())||m.description.toLowerCase().includes(n.toLowerCase())||m.category.toLowerCase().includes(n.toLowerCase()));y.useEffect(()=>{e&&(r(""),s(0))},[e]);const d=y.useCallback(m=>{l({to:m}),t(!1)},[l,t]),f=y.useCallback(m=>{m.key==="ArrowDown"?(m.preventDefault(),s(p=>(p+1)%u.length)):m.key==="ArrowUp"?(m.preventDefault(),s(p=>(p-1+u.length)%u.length)):m.key==="Enter"&&u[a]&&(m.preventDefault(),d(u[a].path))},[u,a,d]);return i.jsx(sr,{open:e,onOpenChange:t,children:i.jsxs(Kn,{className:"max-w-2xl p-0 gap-0",children:[i.jsxs(Xn,{className:"px-4 pt-4 pb-0",children:[i.jsx(Zn,{className:"sr-only",children:"搜索"}),i.jsxs("div",{className:"relative",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),i.jsx(Ce,{value:n,onChange:m=>{r(m.target.value),s(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),i.jsx("div",{className:"border-t",children:i.jsx(Gt,{className:"h-[400px]",children:u.length>0?i.jsx("div",{className:"p-2",children:u.map((m,p)=>{const g=m.icon;return i.jsxs("button",{onClick:()=>d(m.path),onMouseEnter:()=>s(p),className:ue("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",p===a?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[i.jsx(g,{className:"h-5 w-5 flex-shrink-0"}),i.jsxs("div",{className:"flex-1 min-w-0",children:[i.jsx("div",{className:"font-medium text-sm",children:m.title}),i.jsx("div",{className:"text-xs text-muted-foreground truncate",children:m.description})]}),i.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:m.category})]},m.path)})}):i.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[i.jsx(Br,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),i.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),i.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),i.jsxs("span",{className:"flex items-center gap-1",children:[i.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function ZCe(e){const t=QCe(e),n=y.forwardRef((r,a)=>{const{children:s,...l}=r,u=y.Children.toArray(s),d=u.find(eOe);if(d){const f=d.props.children,m=u.map(p=>p===d?y.Children.count(f)>1?y.Children.only(null):y.isValidElement(f)?f.props.children:null:p);return i.jsx(t,{...l,ref:a,children:y.isValidElement(f)?y.cloneElement(f,void 0,m):null})}return i.jsx(t,{...l,ref:a,children:s})});return n.displayName=`${e}.Slot`,n}function QCe(e){const t=y.forwardRef((n,r)=>{const{children:a,...s}=n;if(y.isValidElement(a)){const l=nOe(a),u=tOe(s,a.props);return a.type!==y.Fragment&&(u.ref=r?zr(r,l):l),y.cloneElement(a,u)}return y.Children.count(a)>1?y.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var JCe=Symbol("radix.slottable");function eOe(e){return y.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===JCe}function tOe(e,t){const n={...t};for(const r in t){const a=e[r],s=t[r];/^on[A-Z]/.test(r)?a&&s?n[r]=(...u)=>{const d=s(...u);return a(...u),d}:a&&(n[r]=a):r==="style"?n[r]={...a,...s}:r==="className"&&(n[r]=[a,s].filter(Boolean).join(" "))}return{...e,...n}}function nOe(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var _C=["Enter"," "],rOe=["ArrowDown","PageUp","Home"],s9=["ArrowUp","PageDown","End"],aOe=[...rOe,...s9],iOe={ltr:[..._C,"ArrowRight"],rtl:[..._C,"ArrowLeft"]},sOe={ltr:["ArrowLeft"],rtl:["ArrowRight"]},lm="Menu",[Ch,oOe,lOe]=Rh(lm),[Ll,o9]=yr(lm,[lOe,vo,Xg]),cm=vo(),l9=Xg(),[c9,wo]=Ll(lm),[cOe,um]=Ll(lm),u9=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:a,onOpenChange:s,modal:l=!0}=e,u=cm(t),[d,f]=y.useState(null),m=y.useRef(!1),p=yn(s),g=Uu(a);return y.useEffect(()=>{const x=()=>{m.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>m.current=!1;return document.addEventListener("keydown",x,{capture:!0}),()=>{document.removeEventListener("keydown",x,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),i.jsx(tm,{...u,children:i.jsx(c9,{scope:t,open:n,onOpenChange:p,content:d,onContentChange:f,children:i.jsx(cOe,{scope:t,onClose:y.useCallback(()=>p(!1),[p]),isUsingKeyboardRef:m,dir:g,modal:l,children:r})})})};u9.displayName=lm;var uOe="MenuAnchor",BE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=cm(n);return i.jsx(nm,{...a,...r,ref:t})});BE.displayName=uOe;var qE="MenuPortal",[dOe,d9]=Ll(qE,{forceMount:void 0}),f9=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:a}=e,s=wo(qE,t);return i.jsx(dOe,{scope:t,forceMount:n,children:i.jsx(zn,{present:n||s.open,children:i.jsx(Ml,{asChild:!0,container:a,children:r})})})};f9.displayName=qE;var Aa="MenuContent",[fOe,FE]=Ll(Aa),h9=y.forwardRef((e,t)=>{const n=d9(Aa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=wo(Aa,e.__scopeMenu),l=um(Aa,e.__scopeMenu);return i.jsx(Ch.Provider,{scope:e.__scopeMenu,children:i.jsx(zn,{present:r||s.open,children:i.jsx(Ch.Slot,{scope:e.__scopeMenu,children:l.modal?i.jsx(hOe,{...a,ref:t}):i.jsx(mOe,{...a,ref:t})})})})}),hOe=y.forwardRef((e,t)=>{const n=wo(Aa,e.__scopeMenu),r=y.useRef(null),a=Ue(t,r);return y.useEffect(()=>{const s=r.current;if(s)return Fy(s)},[]),i.jsx(UE,{...e,ref:a,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Ne(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),mOe=y.forwardRef((e,t)=>{const n=wo(Aa,e.__scopeMenu);return i.jsx(UE,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),pOe=ZCe("MenuContent.ScrollLock"),UE=y.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:a,onOpenAutoFocus:s,onCloseAutoFocus:l,disableOutsidePointerEvents:u,onEntryFocus:d,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,disableOutsideScroll:j,...w}=e,b=wo(Aa,n),N=um(Aa,n),E=cm(n),O=l9(n),A=oOe(n),[C,k]=y.useState(null),T=y.useRef(null),M=Ue(t,T,b.onContentChange),R=y.useRef(0),L=y.useRef(""),D=y.useRef(0),U=y.useRef(null),V=y.useRef("right"),H=y.useRef(0),G=j?Jh:y.Fragment,$=j?{as:pOe,allowPinchZoom:!0}:void 0,I=Z=>{const ee=L.current+Z,F=A().filter(ae=>!ae.disabled),z=document.activeElement,K=F.find(ae=>ae.ref.current===z)?.textValue,ie=F.map(ae=>ae.textValue),Q=OOe(ie,ee,K),he=F.find(ae=>ae.textValue===Q)?.ref.current;(function ae(we){L.current=we,window.clearTimeout(R.current),we!==""&&(R.current=window.setTimeout(()=>ae(""),1e3))})(ee),he&&setTimeout(()=>he.focus())};y.useEffect(()=>()=>window.clearTimeout(R.current),[]),By();const q=y.useCallback(Z=>V.current===U.current?.side&&AOe(Z,U.current?.area),[]);return i.jsx(fOe,{scope:n,searchRef:L,onItemEnter:y.useCallback(Z=>{q(Z)&&Z.preventDefault()},[q]),onItemLeave:y.useCallback(Z=>{q(Z)||(T.current?.focus(),k(null))},[q]),onTriggerLeave:y.useCallback(Z=>{q(Z)&&Z.preventDefault()},[q]),pointerGraceTimerRef:D,onPointerGraceIntentChange:y.useCallback(Z=>{U.current=Z},[]),children:i.jsx(G,{...$,children:i.jsx(Qh,{asChild:!0,trapped:a,onMountAutoFocus:Ne(s,Z=>{Z.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:l,children:i.jsx(kl,{asChild:!0,disableOutsidePointerEvents:u,onEscapeKeyDown:f,onPointerDownOutside:m,onFocusOutside:p,onInteractOutside:g,onDismiss:x,children:i.jsx(lz,{asChild:!0,...O,dir:N.dir,orientation:"vertical",loop:r,currentTabStopId:C,onCurrentTabStopIdChange:k,onEntryFocus:Ne(d,Z=>{N.isUsingKeyboardRef.current||Z.preventDefault()}),preventScrollOnEntryFocus:!0,children:i.jsx(Qy,{role:"menu","aria-orientation":"vertical","data-state":T9(b.open),"data-radix-menu-content":"",dir:N.dir,...E,...w,ref:M,style:{outline:"none",...w.style},onKeyDown:Ne(w.onKeyDown,Z=>{const F=Z.target.closest("[data-radix-menu-content]")===Z.currentTarget,z=Z.ctrlKey||Z.altKey||Z.metaKey,K=Z.key.length===1;F&&(Z.key==="Tab"&&Z.preventDefault(),!z&&K&&I(Z.key));const ie=T.current;if(Z.target!==ie||!aOe.includes(Z.key))return;Z.preventDefault();const he=A().filter(ae=>!ae.disabled).map(ae=>ae.ref.current);s9.includes(Z.key)&&he.reverse(),NOe(he)}),onBlur:Ne(e.onBlur,Z=>{Z.currentTarget.contains(Z.target)||(window.clearTimeout(R.current),L.current="")}),onPointerMove:Ne(e.onPointerMove,Oh(Z=>{const ee=Z.target,F=H.current!==Z.clientX;if(Z.currentTarget.contains(ee)&&F){const z=Z.clientX>H.current?"right":"left";V.current=z,H.current=Z.clientX}}))})})})})})})});h9.displayName=Aa;var vOe="MenuGroup",HE=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"group",...r,ref:t})});HE.displayName=vOe;var gOe="MenuLabel",m9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});m9.displayName=gOe;var Bg="MenuItem",JL="menu.itemSelect",ux=y.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...a}=e,s=y.useRef(null),l=um(Bg,e.__scopeMenu),u=FE(Bg,e.__scopeMenu),d=Ue(t,s),f=y.useRef(!1),m=()=>{const p=s.current;if(!n&&p){const g=new CustomEvent(JL,{bubbles:!0,cancelable:!0});p.addEventListener(JL,x=>r?.(x),{once:!0}),VC(p,g),g.defaultPrevented?f.current=!1:l.onClose()}};return i.jsx(p9,{...a,ref:d,disabled:n,onClick:Ne(e.onClick,m),onPointerDown:p=>{e.onPointerDown?.(p),f.current=!0},onPointerUp:Ne(e.onPointerUp,p=>{f.current||p.currentTarget?.click()}),onKeyDown:Ne(e.onKeyDown,p=>{const g=u.searchRef.current!=="";n||g&&p.key===" "||_C.includes(p.key)&&(p.currentTarget.click(),p.preventDefault())})})});ux.displayName=Bg;var p9=y.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:a,...s}=e,l=FE(Bg,n),u=l9(n),d=y.useRef(null),f=Ue(t,d),[m,p]=y.useState(!1),[g,x]=y.useState("");return y.useEffect(()=>{const j=d.current;j&&x((j.textContent??"").trim())},[s.children]),i.jsx(Ch.ItemSlot,{scope:n,disabled:r,textValue:a??g,children:i.jsx(cz,{asChild:!0,...u,focusable:!r,children:i.jsx($e.div,{role:"menuitem","data-highlighted":m?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:f,onPointerMove:Ne(e.onPointerMove,Oh(j=>{r?l.onItemLeave(j):(l.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Ne(e.onPointerLeave,Oh(j=>l.onItemLeave(j))),onFocus:Ne(e.onFocus,()=>p(!0)),onBlur:Ne(e.onBlur,()=>p(!1))})})})}),yOe="MenuCheckboxItem",v9=y.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...a}=e;return i.jsx(w9,{scope:e.__scopeMenu,checked:n,children:i.jsx(ux,{role:"menuitemcheckbox","aria-checked":qg(n)?"mixed":n,...a,ref:t,"data-state":GE(n),onSelect:Ne(a.onSelect,()=>r?.(qg(n)?!0:!n),{checkForDefaultPrevented:!1})})})});v9.displayName=yOe;var g9="MenuRadioGroup",[xOe,bOe]=Ll(g9,{value:void 0,onValueChange:()=>{}}),y9=y.forwardRef((e,t)=>{const{value:n,onValueChange:r,...a}=e,s=yn(r);return i.jsx(xOe,{scope:e.__scopeMenu,value:n,onValueChange:s,children:i.jsx(HE,{...a,ref:t})})});y9.displayName=g9;var x9="MenuRadioItem",b9=y.forwardRef((e,t)=>{const{value:n,...r}=e,a=bOe(x9,e.__scopeMenu),s=n===a.value;return i.jsx(w9,{scope:e.__scopeMenu,checked:s,children:i.jsx(ux,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":GE(s),onSelect:Ne(r.onSelect,()=>a.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});b9.displayName=x9;var WE="MenuItemIndicator",[w9,wOe]=Ll(WE,{checked:!1}),j9=y.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...a}=e,s=wOe(WE,n);return i.jsx(zn,{present:r||qg(s.checked)||s.checked===!0,children:i.jsx($e.span,{...a,ref:t,"data-state":GE(s.checked)})})});j9.displayName=WE;var jOe="MenuSeparator",S9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return i.jsx($e.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});S9.displayName=jOe;var SOe="MenuArrow",_9=y.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,a=cm(n);return i.jsx(Jy,{...a,...r,ref:t})});_9.displayName=SOe;var VE="MenuSub",[_Oe,N9]=Ll(VE),C9=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:a}=e,s=wo(VE,t),l=cm(t),[u,d]=y.useState(null),[f,m]=y.useState(null),p=yn(a);return y.useEffect(()=>(s.open===!1&&p(!1),()=>p(!1)),[s.open,p]),i.jsx(tm,{...l,children:i.jsx(c9,{scope:t,open:r,onOpenChange:p,content:f,onContentChange:m,children:i.jsx(_Oe,{scope:t,contentId:Gn(),triggerId:Gn(),trigger:u,onTriggerChange:d,children:n})})})};C9.displayName=VE;var wf="MenuSubTrigger",O9=y.forwardRef((e,t)=>{const n=wo(wf,e.__scopeMenu),r=um(wf,e.__scopeMenu),a=N9(wf,e.__scopeMenu),s=FE(wf,e.__scopeMenu),l=y.useRef(null),{pointerGraceTimerRef:u,onPointerGraceIntentChange:d}=s,f={__scopeMenu:e.__scopeMenu},m=y.useCallback(()=>{l.current&&window.clearTimeout(l.current),l.current=null},[]);return y.useEffect(()=>m,[m]),y.useEffect(()=>{const p=u.current;return()=>{window.clearTimeout(p),d(null)}},[u,d]),i.jsx(BE,{asChild:!0,...f,children:i.jsx(p9,{id:a.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":a.contentId,"data-state":T9(n.open),...e,ref:zr(t,a.onTriggerChange),onClick:p=>{e.onClick?.(p),!(e.disabled||p.defaultPrevented)&&(p.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Ne(e.onPointerMove,Oh(p=>{s.onItemEnter(p),!p.defaultPrevented&&!e.disabled&&!n.open&&!l.current&&(s.onPointerGraceIntentChange(null),l.current=window.setTimeout(()=>{n.onOpenChange(!0),m()},100))})),onPointerLeave:Ne(e.onPointerLeave,Oh(p=>{m();const g=n.content?.getBoundingClientRect();if(g){const x=n.content?.dataset.side,j=x==="right",w=j?-5:5,b=g[j?"left":"right"],N=g[j?"right":"left"];s.onPointerGraceIntentChange({area:[{x:p.clientX+w,y:p.clientY},{x:b,y:g.top},{x:N,y:g.top},{x:N,y:g.bottom},{x:b,y:g.bottom}],side:x}),window.clearTimeout(u.current),u.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(p),p.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:Ne(e.onKeyDown,p=>{const g=s.searchRef.current!=="";e.disabled||g&&p.key===" "||iOe[r.dir].includes(p.key)&&(n.onOpenChange(!0),n.content?.focus(),p.preventDefault())})})})});O9.displayName=wf;var E9="MenuSubContent",A9=y.forwardRef((e,t)=>{const n=d9(Aa,e.__scopeMenu),{forceMount:r=n.forceMount,...a}=e,s=wo(Aa,e.__scopeMenu),l=um(Aa,e.__scopeMenu),u=N9(E9,e.__scopeMenu),d=y.useRef(null),f=Ue(t,d);return i.jsx(Ch.Provider,{scope:e.__scopeMenu,children:i.jsx(zn,{present:r||s.open,children:i.jsx(Ch.Slot,{scope:e.__scopeMenu,children:i.jsx(UE,{id:u.contentId,"aria-labelledby":u.triggerId,...a,ref:f,align:"start",side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:m=>{l.isUsingKeyboardRef.current&&d.current?.focus(),m.preventDefault()},onCloseAutoFocus:m=>m.preventDefault(),onFocusOutside:Ne(e.onFocusOutside,m=>{m.target!==u.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:Ne(e.onEscapeKeyDown,m=>{l.onClose(),m.preventDefault()}),onKeyDown:Ne(e.onKeyDown,m=>{const p=m.currentTarget.contains(m.target),g=sOe[l.dir].includes(m.key);p&&g&&(s.onOpenChange(!1),u.trigger?.focus(),m.preventDefault())})})})})})});A9.displayName=E9;function T9(e){return e?"open":"closed"}function qg(e){return e==="indeterminate"}function GE(e){return qg(e)?"indeterminate":e?"checked":"unchecked"}function NOe(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function COe(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function OOe(e,t,n){const a=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let l=COe(e,Math.max(s,0));a.length===1&&(l=l.filter(f=>f!==n));const d=l.find(f=>f.toLowerCase().startsWith(a.toLowerCase()));return d!==n?d:void 0}function EOe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function AOe(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return EOe(n,t)}function Oh(e){return t=>t.pointerType==="mouse"?e(t):void 0}var TOe=u9,kOe=BE,MOe=f9,POe=h9,ROe=HE,DOe=m9,$Oe=ux,IOe=v9,LOe=y9,zOe=b9,BOe=j9,qOe=S9,FOe=_9,UOe=C9,HOe=O9,WOe=A9,YE="ContextMenu",[VOe]=yr(YE,[o9]),br=o9(),[GOe,k9]=VOe(YE),M9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,dir:a,modal:s=!0}=e,[l,u]=y.useState(!1),d=br(t),f=yn(r),m=y.useCallback(p=>{u(p),f(p)},[f]);return i.jsx(GOe,{scope:t,open:l,onOpenChange:m,modal:s,children:i.jsx(TOe,{...d,dir:a,open:l,onOpenChange:m,modal:s,children:n})})};M9.displayName=YE;var P9="ContextMenuTrigger",R9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:r=!1,...a}=e,s=k9(P9,n),l=br(n),u=y.useRef({x:0,y:0}),d=y.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...u.current})}),f=y.useRef(0),m=y.useCallback(()=>window.clearTimeout(f.current),[]),p=g=>{u.current={x:g.clientX,y:g.clientY},s.onOpenChange(!0)};return y.useEffect(()=>m,[m]),y.useEffect(()=>void(r&&m()),[r,m]),i.jsxs(i.Fragment,{children:[i.jsx(kOe,{...l,virtualRef:d}),i.jsx($e.span,{"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,...a,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:r?e.onContextMenu:Ne(e.onContextMenu,g=>{m(),p(g),g.preventDefault()}),onPointerDown:r?e.onPointerDown:Ne(e.onPointerDown,av(g=>{m(),f.current=window.setTimeout(()=>p(g),700)})),onPointerMove:r?e.onPointerMove:Ne(e.onPointerMove,av(m)),onPointerCancel:r?e.onPointerCancel:Ne(e.onPointerCancel,av(m)),onPointerUp:r?e.onPointerUp:Ne(e.onPointerUp,av(m))})]})});R9.displayName=P9;var YOe="ContextMenuPortal",D9=e=>{const{__scopeContextMenu:t,...n}=e,r=br(t);return i.jsx(MOe,{...r,...n})};D9.displayName=YOe;var $9="ContextMenuContent",I9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=k9($9,n),s=br(n),l=y.useRef(!1);return i.jsx(POe,{...s,...r,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:u=>{e.onCloseAutoFocus?.(u),!u.defaultPrevented&&l.current&&u.preventDefault(),l.current=!1},onInteractOutside:u=>{e.onInteractOutside?.(u),!u.defaultPrevented&&!a.modal&&(l.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});I9.displayName=$9;var KOe="ContextMenuGroup",XOe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(ROe,{...a,...r,ref:t})});XOe.displayName=KOe;var ZOe="ContextMenuLabel",L9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(DOe,{...a,...r,ref:t})});L9.displayName=ZOe;var QOe="ContextMenuItem",z9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx($Oe,{...a,...r,ref:t})});z9.displayName=QOe;var JOe="ContextMenuCheckboxItem",B9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(IOe,{...a,...r,ref:t})});B9.displayName=JOe;var eEe="ContextMenuRadioGroup",tEe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(LOe,{...a,...r,ref:t})});tEe.displayName=eEe;var nEe="ContextMenuRadioItem",q9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(zOe,{...a,...r,ref:t})});q9.displayName=nEe;var rEe="ContextMenuItemIndicator",F9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(BOe,{...a,...r,ref:t})});F9.displayName=rEe;var aEe="ContextMenuSeparator",U9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(qOe,{...a,...r,ref:t})});U9.displayName=aEe;var iEe="ContextMenuArrow",sEe=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(FOe,{...a,...r,ref:t})});sEe.displayName=iEe;var H9="ContextMenuSub",W9=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:r,open:a,defaultOpen:s}=e,l=br(t),[u,d]=Ta({prop:a,defaultProp:s??!1,onChange:r,caller:H9});return i.jsx(UOe,{...l,open:u,onOpenChange:d,children:n})};W9.displayName=H9;var oEe="ContextMenuSubTrigger",V9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(HOe,{...a,...r,ref:t})});V9.displayName=oEe;var lEe="ContextMenuSubContent",G9=y.forwardRef((e,t)=>{const{__scopeContextMenu:n,...r}=e,a=br(n);return i.jsx(WOe,{...a,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});G9.displayName=lEe;function av(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var cEe=M9,uEe=R9,dEe=D9,Y9=I9,K9=L9,X9=z9,Z9=B9,Q9=q9,J9=F9,eW=U9,fEe=W9,tW=V9,nW=G9;const hEe=cEe,mEe=uEe,pEe=fEe,rW=y.forwardRef(({className:e,inset:t,children:n,...r},a)=>i.jsxs(tW,{ref:a,className:ue("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...r,children:[n,i.jsx(Kh,{className:"ml-auto h-4 w-4"})]}));rW.displayName=tW.displayName;const aW=y.forwardRef(({className:e,...t},n)=>i.jsx(nW,{ref:n,className:ue("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));aW.displayName=nW.displayName;const iW=y.forwardRef(({className:e,...t},n)=>i.jsx(dEe,{children:i.jsx(Y9,{ref:n,className:ue("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));iW.displayName=Y9.displayName;const za=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(X9,{ref:r,className:ue("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));za.displayName=X9.displayName;const vEe=y.forwardRef(({className:e,children:t,checked:n,...r},a)=>i.jsxs(Z9,{ref:a,className:ue("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...r,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(J9,{children:i.jsx(cl,{className:"h-4 w-4"})})}),t]}));vEe.displayName=Z9.displayName;const gEe=y.forwardRef(({className:e,children:t,...n},r)=>i.jsxs(Q9,{ref:r,className:ue("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[i.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i.jsx(J9,{children:i.jsx(Gve,{className:"h-2 w-2 fill-current"})})}),t]}));gEe.displayName=Q9.displayName;const yEe=y.forwardRef(({className:e,inset:t,...n},r)=>i.jsx(K9,{ref:r,className:ue("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));yEe.displayName=K9.displayName;const jf=y.forwardRef(({className:e,...t},n)=>i.jsx(eW,{ref:n,className:ue("-mx-1 my-1 h-px bg-border",e),...t}));jf.displayName=eW.displayName;const qc=({className:e,...t})=>i.jsx("span",{className:ue("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});qc.displayName="ContextMenuShortcut";var xEe=Symbol("radix.slottable");function bEe(e){const t=({children:n})=>i.jsx(i.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=xEe,t}var[dx]=yr("Tooltip",[vo]),fx=vo(),sW="TooltipProvider",wEe=700,NC="tooltip.open",[jEe,KE]=dx(sW),oW=e=>{const{__scopeTooltip:t,delayDuration:n=wEe,skipDelayDuration:r=300,disableHoverableContent:a=!1,children:s}=e,l=y.useRef(!0),u=y.useRef(!1),d=y.useRef(0);return y.useEffect(()=>{const f=d.current;return()=>window.clearTimeout(f)},[]),i.jsx(jEe,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:y.useCallback(()=>{window.clearTimeout(d.current),l.current=!1},[]),onClose:y.useCallback(()=>{window.clearTimeout(d.current),d.current=window.setTimeout(()=>l.current=!0,r)},[r]),isPointerInTransitRef:u,onPointerInTransitChange:y.useCallback(f=>{u.current=f},[]),disableHoverableContent:a,children:s})};oW.displayName=sW;var Eh="Tooltip",[SEe,dm]=dx(Eh),lW=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:a,onOpenChange:s,disableHoverableContent:l,delayDuration:u}=e,d=KE(Eh,e.__scopeTooltip),f=fx(t),[m,p]=y.useState(null),g=Gn(),x=y.useRef(0),j=l??d.disableHoverableContent,w=u??d.delayDuration,b=y.useRef(!1),[N,E]=Ta({prop:r,defaultProp:a??!1,onChange:T=>{T?(d.onOpen(),document.dispatchEvent(new CustomEvent(NC))):d.onClose(),s?.(T)},caller:Eh}),O=y.useMemo(()=>N?b.current?"delayed-open":"instant-open":"closed",[N]),A=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,b.current=!1,E(!0)},[E]),C=y.useCallback(()=>{window.clearTimeout(x.current),x.current=0,E(!1)},[E]),k=y.useCallback(()=>{window.clearTimeout(x.current),x.current=window.setTimeout(()=>{b.current=!0,E(!0),x.current=0},w)},[w,E]);return y.useEffect(()=>()=>{x.current&&(window.clearTimeout(x.current),x.current=0)},[]),i.jsx(tm,{...f,children:i.jsx(SEe,{scope:t,contentId:g,open:N,stateAttribute:O,trigger:m,onTriggerChange:p,onTriggerEnter:y.useCallback(()=>{d.isOpenDelayedRef.current?k():A()},[d.isOpenDelayedRef,k,A]),onTriggerLeave:y.useCallback(()=>{j?C():(window.clearTimeout(x.current),x.current=0)},[C,j]),onOpen:A,onClose:C,disableHoverableContent:j,children:n})})};lW.displayName=Eh;var CC="TooltipTrigger",cW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=dm(CC,n),s=KE(CC,n),l=fx(n),u=y.useRef(null),d=Ue(t,u,a.onTriggerChange),f=y.useRef(!1),m=y.useRef(!1),p=y.useCallback(()=>f.current=!1,[]);return y.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),i.jsx(nm,{asChild:!0,...l,children:i.jsx($e.button,{"aria-describedby":a.open?a.contentId:void 0,"data-state":a.stateAttribute,...r,ref:d,onPointerMove:Ne(e.onPointerMove,g=>{g.pointerType!=="touch"&&!m.current&&!s.isPointerInTransitRef.current&&(a.onTriggerEnter(),m.current=!0)}),onPointerLeave:Ne(e.onPointerLeave,()=>{a.onTriggerLeave(),m.current=!1}),onPointerDown:Ne(e.onPointerDown,()=>{a.open&&a.onClose(),f.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:Ne(e.onFocus,()=>{f.current||a.onOpen()}),onBlur:Ne(e.onBlur,a.onClose),onClick:Ne(e.onClick,a.onClose)})})});cW.displayName=CC;var XE="TooltipPortal",[_Ee,NEe]=dx(XE,{forceMount:void 0}),uW=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:a}=e,s=dm(XE,t);return i.jsx(_Ee,{scope:t,forceMount:n,children:i.jsx(zn,{present:n||s.open,children:i.jsx(Ml,{asChild:!0,container:a,children:r})})})};uW.displayName=XE;var Lu="TooltipContent",dW=y.forwardRef((e,t)=>{const n=NEe(Lu,e.__scopeTooltip),{forceMount:r=n.forceMount,side:a="top",...s}=e,l=dm(Lu,e.__scopeTooltip);return i.jsx(zn,{present:r||l.open,children:l.disableHoverableContent?i.jsx(fW,{side:a,...s,ref:t}):i.jsx(CEe,{side:a,...s,ref:t})})}),CEe=y.forwardRef((e,t)=>{const n=dm(Lu,e.__scopeTooltip),r=KE(Lu,e.__scopeTooltip),a=y.useRef(null),s=Ue(t,a),[l,u]=y.useState(null),{trigger:d,onClose:f}=n,m=a.current,{onPointerInTransitChange:p}=r,g=y.useCallback(()=>{u(null),p(!1)},[p]),x=y.useCallback((j,w)=>{const b=j.currentTarget,N={x:j.clientX,y:j.clientY},E=kEe(N,b.getBoundingClientRect()),O=MEe(N,E),A=PEe(w.getBoundingClientRect()),C=DEe([...O,...A]);u(C),p(!0)},[p]);return y.useEffect(()=>()=>g(),[g]),y.useEffect(()=>{if(d&&m){const j=b=>x(b,m),w=b=>x(b,d);return d.addEventListener("pointerleave",j),m.addEventListener("pointerleave",w),()=>{d.removeEventListener("pointerleave",j),m.removeEventListener("pointerleave",w)}}},[d,m,x,g]),y.useEffect(()=>{if(l){const j=w=>{const b=w.target,N={x:w.clientX,y:w.clientY},E=d?.contains(b)||m?.contains(b),O=!REe(N,l);E?g():O&&(g(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[d,m,l,f,g]),i.jsx(fW,{...e,ref:s})}),[OEe,EEe]=dx(Eh,{isInside:!1}),AEe=bEe("TooltipContent"),fW=y.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":a,onEscapeKeyDown:s,onPointerDownOutside:l,...u}=e,d=dm(Lu,n),f=fx(n),{onClose:m}=d;return y.useEffect(()=>(document.addEventListener(NC,m),()=>document.removeEventListener(NC,m)),[m]),y.useEffect(()=>{if(d.trigger){const p=g=>{g.target?.contains(d.trigger)&&m()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[d.trigger,m]),i.jsx(kl,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:l,onFocusOutside:p=>p.preventDefault(),onDismiss:m,children:i.jsxs(Qy,{"data-state":d.stateAttribute,...f,...u,ref:t,style:{...u.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[i.jsx(AEe,{children:r}),i.jsx(OEe,{scope:n,isInside:!0,children:i.jsx(Cwe,{id:d.contentId,role:"tooltip",children:a||r})})]})})});dW.displayName=Lu;var hW="TooltipArrow",TEe=y.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,a=fx(n);return EEe(hW,n).isInside?null:i.jsx(Jy,{...a,...r,ref:t})});TEe.displayName=hW;function kEe(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),a=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,a,s)){case s:return"left";case a:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function MEe(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function PEe(e){const{top:t,right:n,bottom:r,left:a}=e;return[{x:a,y:t},{x:n,y:t},{x:n,y:r},{x:a,y:r}]}function REe(e,t){const{x:n,y:r}=e;let a=!1;for(let s=0,l=t.length-1;sr!=g>r&&n<(p-f)*(r-m)/(g-m)+f&&(a=!a)}return a}function DEe(e){const t=e.slice();return t.sort((n,r)=>n.xr.x?1:n.yr.y?1:0),$Ee(t)}function $Ee(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r=2;){const s=t[t.length-1],l=t[t.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))t.pop();else break}t.push(a)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const a=e[r];for(;n.length>=2;){const s=n[n.length-1],l=n[n.length-2];if((s.x-l.x)*(a.y-l.y)>=(s.y-l.y)*(a.x-l.x))n.pop();else break}n.push(a)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var IEe=oW,LEe=lW,zEe=cW,BEe=uW,mW=dW;const qEe=IEe,FEe=LEe,UEe=zEe,pW=y.forwardRef(({className:e,sideOffset:t=4,...n},r)=>i.jsx(BEe,{children:i.jsx(mW,{ref:r,sideOffset:t,className:ue("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));pW.displayName=mW.displayName;function HEe({children:e}){vbe();const[t,n]=y.useState(!0),[r,a]=y.useState(!1),[s,l]=y.useState(!1),{theme:u,setTheme:d}=uE(),f=YY(),m=ua();y.useEffect(()=>{const w=b=>{(b.metaKey||b.ctrlKey)&&b.key==="k"&&(b.preventDefault(),l(!0))};return window.addEventListener("keydown",w),()=>window.removeEventListener("keydown",w)},[]);const p=[{title:"概览",items:[{icon:kg,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:sE,label:"麦麦主程序配置",path:"/config/bot"},{icon:y8,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:p8,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:cE,label:"表情包管理",path:"/resource/emoji"},{icon:Xh,label:"表达方式管理",path:"/resource/expression"},{icon:v8,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:Mg,label:"插件市场",path:"/plugins"},{icon:Hge,label:"插件配置",path:"/plugin-config"},{icon:Ag,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Ha,label:"系统设置",path:"/settings"}]}],x=u==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":u,j=()=>{localStorage.removeItem("access-token"),m({to:"/auth"})};return i.jsx(qEe,{delayDuration:300,children:i.jsxs("div",{className:"flex h-screen overflow-hidden",children:[i.jsxs("aside",{className:ue("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",r?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[i.jsx("div",{className:"flex h-16 items-center border-b px-4",children:i.jsxs("div",{className:ue("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[i.jsxs("div",{className:ue("flex items-baseline gap-2",!t&&"lg:hidden"),children:[i.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),i.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:Eye()})]}),!t&&i.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),i.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:i.jsx("ul",{className:ue("space-y-6",!t&&"lg:space-y-3"),children:p.map((w,b)=>i.jsxs("li",{children:[i.jsx("div",{className:ue("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:i.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:w.title})}),!t&&b>0&&i.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),i.jsx("ul",{className:"space-y-1",children:w.items.map(N=>{const E=f({to:N.path}),O=N.icon,A=i.jsxs(i.Fragment,{children:[E&&i.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),i.jsxs("div",{className:ue("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[i.jsx(O,{className:ue("h-5 w-5 flex-shrink-0",E&&"text-primary"),strokeWidth:2,fill:"none"}),i.jsx("span",{className:ue("text-sm font-medium whitespace-nowrap transition-all duration-300",E&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:N.label})]})]});return i.jsx("li",{className:"relative",children:i.jsxs(FEe,{children:[i.jsx(UEe,{asChild:!0,children:i.jsx(zC,{to:N.path,className:ue("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",E?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>a(!1),children:A})}),!t&&i.jsx(pW,{side:"right",className:"hidden lg:block",children:i.jsx("p",{children:N.label})})]})},N.path)})})]},w.title))})})]}),r&&i.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>a(!1)}),i.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[i.jsxs("div",{className:"flex items-center gap-4",children:[i.jsx("button",{onClick:()=>a(!r),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:i.jsx(vge,{className:"h-5 w-5"})}),i.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:i.jsx(Yh,{className:ue("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),i.jsxs("div",{className:"flex items-center gap-2",children:[i.jsxs("button",{onClick:()=>l(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[i.jsx(Br,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),i.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),i.jsxs(i9,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[i.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),i.jsx(XCe,{open:s,onOpenChange:l}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[i.jsx(_ve,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),i.jsx("button",{onClick:w=>{uye(x==="dark"?"light":"dark",d,w)},className:"rounded-lg p-2 hover:bg-accent",title:x==="dark"?"切换到浅色模式":"切换到深色模式",children:x==="dark"?i.jsx(iC,{className:"h-5 w-5"}):i.jsx(aC,{className:"h-5 w-5"})}),i.jsx("div",{className:"h-6 w-px bg-border"}),i.jsxs(oe,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[i.jsx(nL,{className:"h-4 w-4"}),i.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),i.jsxs(hEe,{children:[i.jsx(mEe,{asChild:!0,children:i.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),i.jsxs(iW,{className:"w-64",children:[i.jsxs(za,{onClick:()=>m({to:"/"}),children:[i.jsx(kg,{className:"mr-2 h-4 w-4"}),"首页"]}),i.jsxs(za,{onClick:()=>m({to:"/settings"}),children:[i.jsx(Ha,{className:"mr-2 h-4 w-4"}),"系统设置"]}),i.jsxs(za,{onClick:()=>m({to:"/logs"}),children:[i.jsx(Ag,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),i.jsx(jf,{}),i.jsxs(pEe,{children:[i.jsxs(rW,{children:[i.jsx(g8,{className:"mr-2 h-4 w-4"}),"切换主题"]}),i.jsxs(aW,{className:"w-48",children:[i.jsxs(za,{onClick:()=>d("light"),disabled:u==="light",children:[i.jsx(iC,{className:"mr-2 h-4 w-4"}),"浅色",u==="light"&&i.jsx(qc,{children:"✓"})]}),i.jsxs(za,{onClick:()=>d("dark"),disabled:u==="dark",children:[i.jsx(aC,{className:"mr-2 h-4 w-4"}),"深色",u==="dark"&&i.jsx(qc,{children:"✓"})]}),i.jsxs(za,{onClick:()=>d("system"),disabled:u==="system",children:[i.jsx(Ha,{className:"mr-2 h-4 w-4"}),"跟随系统",u==="system"&&i.jsx(qc,{children:"✓"})]})]})]}),i.jsx(jf,{}),i.jsxs(za,{onClick:()=>window.location.reload(),children:[i.jsx(Mge,{className:"mr-2 h-4 w-4"}),"刷新页面",i.jsx(qc,{children:"⌘R"})]}),i.jsxs(za,{onClick:()=>l(!0),children:[i.jsx(Br,{className:"mr-2 h-4 w-4"}),"搜索",i.jsx(qc,{children:"⌘K"})]}),i.jsx(jf,{}),i.jsxs(za,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[i.jsx(Pf,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),i.jsx(jf,{}),i.jsxs(za,{onClick:j,className:"text-destructive focus:text-destructive",children:[i.jsx(nL,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const fm=zY({component:()=>i.jsxs(i.Fragment,{children:[i.jsx(BC,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!AF())throw i5({to:"/auth"})}}),WEe=or({getParentRoute:()=>fm,path:"/auth",component:gbe}),VEe=or({getParentRoute:()=>fm,path:"/setup",component:$be}),da=or({getParentRoute:()=>fm,id:"protected",component:()=>i.jsx(HEe,{children:i.jsx(BC,{})})}),GEe=or({getParentRoute:()=>da,path:"/",component:lye}),YEe=or({getParentRoute:()=>da,path:"/config/bot",component:Oje}),KEe=or({getParentRoute:()=>da,path:"/config/modelProvider",component:Gje}),XEe=or({getParentRoute:()=>da,path:"/config/model",component:w1e}),ZEe=or({getParentRoute:()=>da,path:"/resource/emoji",component:T1e}),QEe=or({getParentRoute:()=>da,path:"/resource/expression",component:B1e}),JEe=or({getParentRoute:()=>da,path:"/resource/person",component:Z1e}),e2e=or({getParentRoute:()=>da,path:"/logs",component:MCe}),t2e=or({getParentRoute:()=>da,path:"/plugins",component:WCe}),n2e=or({getParentRoute:()=>da,path:"/plugin-config",component:VCe}),r2e=or({getParentRoute:()=>da,path:"/plugin-mirrors",component:GCe}),a2e=or({getParentRoute:()=>da,path:"/settings",component:cbe}),i2e=or({getParentRoute:()=>fm,path:"*",component:MF}),s2e=fm.addChildren([WEe,VEe,da.addChildren([GEe,YEe,KEe,XEe,ZEe,QEe,JEe,t2e,n2e,r2e,e2e,a2e]),i2e]),o2e=KY({routeTree:s2e,defaultNotFoundComponent:MF});function l2e({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...r}){const[a,s]=y.useState(()=>localStorage.getItem(n)||t);y.useEffect(()=>{const u=window.document.documentElement;if(u.classList.remove("light","dark"),a==="system"){const d=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";u.classList.add(d);return}u.classList.add(a)},[a]),y.useEffect(()=>{const u=localStorage.getItem("accent-color");if(u){const d=document.documentElement,m={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[u];m&&(d.style.setProperty("--primary",m.hsl),m.gradient?(d.style.setProperty("--primary-gradient",m.gradient),d.classList.add("has-gradient")):(d.style.removeProperty("--primary-gradient"),d.classList.remove("has-gradient")))}},[]);const l={theme:a,setTheme:u=>{localStorage.setItem(n,u),s(u)}};return i.jsx(b8.Provider,{...r,value:l,children:e})}function c2e({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:r="enable-animations",wavesStorageKey:a="enable-waves-background"}){const[s,l]=y.useState(()=>{const m=localStorage.getItem(r);return m!==null?m==="true":t}),[u,d]=y.useState(()=>{const m=localStorage.getItem(a);return m!==null?m==="true":n});y.useEffect(()=>{const m=document.documentElement;s?m.classList.remove("no-animations"):m.classList.add("no-animations"),localStorage.setItem(r,String(s))},[s,r]),y.useEffect(()=>{localStorage.setItem(a,String(u))},[u,a]);const f={enableAnimations:s,setEnableAnimations:l,enableWavesBackground:u,setEnableWavesBackground:d};return i.jsx(w8.Provider,{value:f,children:e})}var ZE="ToastProvider",[QE,u2e,d2e]=Rh("Toast"),[vW]=yr("Toast",[d2e]),[f2e,hx]=vW(ZE),gW=e=>{const{__scopeToast:t,label:n="Notification",duration:r=5e3,swipeDirection:a="right",swipeThreshold:s=50,children:l}=e,[u,d]=y.useState(null),[f,m]=y.useState(0),p=y.useRef(!1),g=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${ZE}\`. Expected non-empty \`string\`.`),i.jsx(QE.Provider,{scope:t,children:i.jsx(f2e,{scope:t,label:n,duration:r,swipeDirection:a,swipeThreshold:s,toastCount:f,viewport:u,onViewportChange:d,onToastAdd:y.useCallback(()=>m(x=>x+1),[]),onToastRemove:y.useCallback(()=>m(x=>x-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:g,children:l})})};gW.displayName=ZE;var yW="ToastViewport",h2e=["F8"],OC="toast.viewportPause",EC="toast.viewportResume",xW=y.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:r=h2e,label:a="Notifications ({hotkey})",...s}=e,l=hx(yW,n),u=u2e(n),d=y.useRef(null),f=y.useRef(null),m=y.useRef(null),p=y.useRef(null),g=Ue(t,p,l.onViewportChange),x=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=l.toastCount>0;y.useEffect(()=>{const b=N=>{r.length!==0&&r.every(O=>N[O]||N.code===O)&&p.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[r]),y.useEffect(()=>{const b=d.current,N=p.current;if(j&&b&&N){const E=()=>{if(!l.isClosePausedRef.current){const k=new CustomEvent(OC);N.dispatchEvent(k),l.isClosePausedRef.current=!0}},O=()=>{if(l.isClosePausedRef.current){const k=new CustomEvent(EC);N.dispatchEvent(k),l.isClosePausedRef.current=!1}},A=k=>{!b.contains(k.relatedTarget)&&O()},C=()=>{b.contains(document.activeElement)||O()};return b.addEventListener("focusin",E),b.addEventListener("focusout",A),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",C),window.addEventListener("blur",E),window.addEventListener("focus",O),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",A),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",C),window.removeEventListener("blur",E),window.removeEventListener("focus",O)}}},[j,l.isClosePausedRef]);const w=y.useCallback(({tabbingDirection:b})=>{const E=u().map(O=>{const A=O.ref.current,C=[A,...C2e(A)];return b==="forwards"?C:C.reverse()});return(b==="forwards"?E.reverse():E).flat()},[u]);return y.useEffect(()=>{const b=p.current;if(b){const N=E=>{const O=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!O){const C=document.activeElement,k=E.shiftKey;if(E.target===b&&k){f.current?.focus();return}const R=w({tabbingDirection:k?"backwards":"forwards"}),L=R.findIndex(D=>D===C);y_(R.slice(L+1))?E.preventDefault():k?f.current?.focus():m.current?.focus()}};return b.addEventListener("keydown",N),()=>b.removeEventListener("keydown",N)}},[u,w]),i.jsxs(Iye,{ref:d,role:"region","aria-label":a.replace("{hotkey}",x),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&i.jsx(AC,{ref:f,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"forwards"});y_(b)}}),i.jsx(QE.Slot,{scope:n,children:i.jsx($e.ol,{tabIndex:-1,...s,ref:g})}),j&&i.jsx(AC,{ref:m,onFocusFromOutsideViewport:()=>{const b=w({tabbingDirection:"backwards"});y_(b)}})]})});xW.displayName=yW;var bW="ToastFocusProxy",AC=y.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:r,...a}=e,s=hx(bW,n);return i.jsx(ex,{tabIndex:0,...a,ref:t,style:{position:"fixed"},onFocus:l=>{const u=l.relatedTarget;!s.viewport?.contains(u)&&r()}})});AC.displayName=bW;var hm="Toast",m2e="toast.swipeStart",p2e="toast.swipeMove",v2e="toast.swipeCancel",g2e="toast.swipeEnd",wW=y.forwardRef((e,t)=>{const{forceMount:n,open:r,defaultOpen:a,onOpenChange:s,...l}=e,[u,d]=Ta({prop:r,defaultProp:a??!0,onChange:s,caller:hm});return i.jsx(zn,{present:n||u,children:i.jsx(b2e,{open:u,...l,ref:t,onClose:()=>d(!1),onPause:yn(e.onPause),onResume:yn(e.onResume),onSwipeStart:Ne(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Ne(e.onSwipeMove,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:Ne(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Ne(e.onSwipeEnd,f=>{const{x:m,y:p}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),d(!1)})})})});wW.displayName=hm;var[y2e,x2e]=vW(hm,{onClose(){}}),b2e=y.forwardRef((e,t)=>{const{__scopeToast:n,type:r="foreground",duration:a,open:s,onClose:l,onEscapeKeyDown:u,onPause:d,onResume:f,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:g,onSwipeEnd:x,...j}=e,w=hx(hm,n),[b,N]=y.useState(null),E=Ue(t,H=>N(H)),O=y.useRef(null),A=y.useRef(null),C=a||w.duration,k=y.useRef(0),T=y.useRef(C),M=y.useRef(0),{onToastAdd:R,onToastRemove:L}=w,D=yn(()=>{b?.contains(document.activeElement)&&w.viewport?.focus(),l()}),U=y.useCallback(H=>{!H||H===1/0||(window.clearTimeout(M.current),k.current=new Date().getTime(),M.current=window.setTimeout(D,H))},[D]);y.useEffect(()=>{const H=w.viewport;if(H){const G=()=>{U(T.current),f?.()},$=()=>{const I=new Date().getTime()-k.current;T.current=T.current-I,window.clearTimeout(M.current),d?.()};return H.addEventListener(OC,$),H.addEventListener(EC,G),()=>{H.removeEventListener(OC,$),H.removeEventListener(EC,G)}}},[w.viewport,C,d,f,U]),y.useEffect(()=>{s&&!w.isClosePausedRef.current&&U(C)},[s,C,w.isClosePausedRef,U]),y.useEffect(()=>(R(),()=>L()),[R,L]);const V=y.useMemo(()=>b?EW(b):null,[b]);return w.viewport?i.jsxs(i.Fragment,{children:[V&&i.jsx(w2e,{__scopeToast:n,role:"status","aria-live":r==="foreground"?"assertive":"polite",children:V}),i.jsx(y2e,{scope:n,onClose:D,children:Nl.createPortal(i.jsx(QE.ItemSlot,{scope:n,children:i.jsx($ye,{asChild:!0,onEscapeKeyDown:Ne(u,()=>{w.isFocusedToastEscapeKeyDownRef.current||D(),w.isFocusedToastEscapeKeyDownRef.current=!1}),children:i.jsx($e.li,{tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":w.swipeDirection,...j,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Ne(e.onKeyDown,H=>{H.key==="Escape"&&(u?.(H.nativeEvent),H.nativeEvent.defaultPrevented||(w.isFocusedToastEscapeKeyDownRef.current=!0,D()))}),onPointerDown:Ne(e.onPointerDown,H=>{H.button===0&&(O.current={x:H.clientX,y:H.clientY})}),onPointerMove:Ne(e.onPointerMove,H=>{if(!O.current)return;const G=H.clientX-O.current.x,$=H.clientY-O.current.y,I=!!A.current,q=["left","right"].includes(w.swipeDirection),Z=["left","up"].includes(w.swipeDirection)?Math.min:Math.max,ee=q?Z(0,G):0,F=q?0:Z(0,$),z=H.pointerType==="touch"?10:2,K={x:ee,y:F},ie={originalEvent:H,delta:K};I?(A.current=K,iv(p2e,p,ie,{discrete:!1})):e5(K,w.swipeDirection,z)?(A.current=K,iv(m2e,m,ie,{discrete:!1}),H.target.setPointerCapture(H.pointerId)):(Math.abs(G)>z||Math.abs($)>z)&&(O.current=null)}),onPointerUp:Ne(e.onPointerUp,H=>{const G=A.current,$=H.target;if($.hasPointerCapture(H.pointerId)&&$.releasePointerCapture(H.pointerId),A.current=null,O.current=null,G){const I=H.currentTarget,q={originalEvent:H,delta:G};e5(G,w.swipeDirection,w.swipeThreshold)?iv(g2e,x,q,{discrete:!0}):iv(v2e,g,q,{discrete:!0}),I.addEventListener("click",Z=>Z.preventDefault(),{once:!0})}})})})}),w.viewport)})]}):null}),w2e=e=>{const{__scopeToast:t,children:n,...r}=e,a=hx(hm,t),[s,l]=y.useState(!1),[u,d]=y.useState(!1);return _2e(()=>l(!0)),y.useEffect(()=>{const f=window.setTimeout(()=>d(!0),1e3);return()=>window.clearTimeout(f)},[]),u?null:i.jsx(Ml,{asChild:!0,children:i.jsx(ex,{...r,children:s&&i.jsxs(i.Fragment,{children:[a.label," ",n]})})})},j2e="ToastTitle",jW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});jW.displayName=j2e;var S2e="ToastDescription",SW=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e;return i.jsx($e.div,{...r,ref:t})});SW.displayName=S2e;var _W="ToastAction",NW=y.forwardRef((e,t)=>{const{altText:n,...r}=e;return n.trim()?i.jsx(OW,{altText:n,asChild:!0,children:i.jsx(JE,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${_W}\`. Expected non-empty \`string\`.`),null)});NW.displayName=_W;var CW="ToastClose",JE=y.forwardRef((e,t)=>{const{__scopeToast:n,...r}=e,a=x2e(CW,n);return i.jsx(OW,{asChild:!0,children:i.jsx($e.button,{type:"button",...r,ref:t,onClick:Ne(e.onClick,a.onClose)})})});JE.displayName=CW;var OW=y.forwardRef((e,t)=>{const{__scopeToast:n,altText:r,...a}=e;return i.jsx($e.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":r||void 0,...a,ref:t})});function EW(e){const t=[];return Array.from(e.childNodes).forEach(r=>{if(r.nodeType===r.TEXT_NODE&&r.textContent&&t.push(r.textContent),N2e(r)){const a=r.ariaHidden||r.hidden||r.style.display==="none",s=r.dataset.radixToastAnnounceExclude==="";if(!a)if(s){const l=r.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...EW(r))}}),t}function iv(e,t,n,{discrete:r}){const a=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&a.addEventListener(e,t,{once:!0}),r?VC(a,s):a.dispatchEvent(s)}var e5=(e,t,n=0)=>{const r=Math.abs(e.x),a=Math.abs(e.y),s=r>a;return t==="left"||t==="right"?s&&r>n:!s&&a>n};function _2e(e=()=>{}){const t=yn(e);Yn(()=>{let n=0,r=0;return n=window.requestAnimationFrame(()=>r=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(r)}},[t])}function N2e(e){return e.nodeType===e.ELEMENT_NODE}function C2e(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const a=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||a?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function y_(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var O2e=gW,AW=xW,TW=wW,kW=jW,MW=SW,PW=NW,RW=JE;const E2e=O2e,DW=y.forwardRef(({className:e,...t},n)=>i.jsx(AW,{ref:n,className:ue("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));DW.displayName=AW.displayName;const A2e=Qu("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),$W=y.forwardRef(({className:e,variant:t,...n},r)=>i.jsx(TW,{ref:r,className:ue(A2e({variant:t}),e),...n}));$W.displayName=TW.displayName;const T2e=y.forwardRef(({className:e,...t},n)=>i.jsx(PW,{ref:n,className:ue("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));T2e.displayName=PW.displayName;const IW=y.forwardRef(({className:e,...t},n)=>i.jsx(RW,{ref:n,className:ue("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:i.jsx(Zh,{className:"h-4 w-4"})}));IW.displayName=RW.displayName;const LW=y.forwardRef(({className:e,...t},n)=>i.jsx(kW,{ref:n,className:ue("text-sm font-semibold [&+div]:text-xs",e),...t}));LW.displayName=kW.displayName;const zW=y.forwardRef(({className:e,...t},n)=>i.jsx(MW,{ref:n,className:ue("text-sm opacity-90",e),...t}));zW.displayName=MW.displayName;function k2e(){const{toasts:e}=xr();return i.jsxs(E2e,{children:[e.map(function({id:t,title:n,description:r,action:a,...s}){return i.jsxs($W,{...s,children:[i.jsxs("div",{className:"grid gap-1",children:[n&&i.jsx(LW,{children:n}),r&&i.jsx(zW,{children:r})]}),a,i.jsx(IW,{})]},t)}),i.jsx(DW,{})]})}oG.createRoot(document.getElementById("root")).render(i.jsx(y.StrictMode,{children:i.jsx(l2e,{defaultTheme:"system",children:i.jsxs(c2e,{children:[i.jsx(QY,{router:o2e}),i.jsx(k2e,{})]})})})); diff --git a/webui/dist/assets/index-D2uz_15W.css b/webui/dist/assets/index-D2uz_15W.css new file mode 100644 index 00000000..33288344 --- /dev/null +++ b/webui/dist/assets/index-D2uz_15W.css @@ -0,0 +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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-\[calc\(90vh-8rem\)\]{max-height:calc(90vh - 8rem)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-orange-700:hover{--tw-bg-opacity: 1;background-color:rgb(194 65 12 / var(--tw-bg-opacity, 1))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-blue-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 58 138 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-1{margin-left:.25rem}.sm\:mr-1{margin-right:.25rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} diff --git a/webui/dist/assets/index-DgvN-P_n.js b/webui/dist/assets/index-DgvN-P_n.js new file mode 100644 index 00000000..c055516c --- /dev/null +++ b/webui/dist/assets/index-DgvN-P_n.js @@ -0,0 +1,48 @@ +import{r as x,j as e,u as qn,R as Ne,d as K_,L as Q_,e as Z_,f as Ts,g as J_,h as e2,O as ry,b as t2,k as s2}from"./router-BWgTyY51.js";import{a as n2,b as a2}from"./react-vendor-Dtc2IqVY.js";import{c as iy,R as l2,T as r2,L as i2,a as o2,C as Xc,X as Kc,Y as Ii,b as c2,B as uf,d as Qc,P as d2,e as u2,f as m2}from"./charts-DU5SeejN.js";import{c as Dn,a as _d,u as jn,P as dt,b as be,d as Tt,e as xo,f as Qa,g as ws,h as Is,i as oy,j as rh,k as ih,S as f2,l as cy,m as dy,R as uy,O as Cd,n as oh,C as kd,o as ch,T as dh,D as uh,p as mh,q as my,r as fy,W as h2,s as hy,I as x2,t as xy,v as py,w as p2,x as gy,V as g2,L as vy,y as jy,z as v2,A as j2,B as yy,E as y2,F as b2,G as Ga,H as Td,J as Wr,K as by,M as Ny,N as wy,Q as Sy,U as fh,X as hh,Y as Ed,Z as Md,_ as xh,$ as _y,a0 as N2,a1 as Cy,a2 as w2,a3 as S2,a4 as ky,a5 as _2}from"./ui-vendor-nTGLnMlb.js";import{R as xa,A as C2,D as k2,a as T2,Z as ao,C as _l,M as po,T as E2,X as go,P as Ty,S as M2,b as Tn,I as Fr,c as Lr,d as Cl,e as Df,E as Of,f as Mn,g as Ys,h as Af,i as D2,j as Rf,k as zf,L as Zv,K as O2,l as Tl,m as A2,n as R2,F as ph,o as z2,B as P2,U as Ey,p as gh,q as L2,r as B2,s as Gs,H as fd,t as My,u as lo,v as Pf,w as ro,x as vh,y as jh,z as ys,G as ft,J as hd,N as Yr,O as vo,Q as Ol,V as Al,W as jo,Y as U2,_ as Lf,$ as qr,a0 as Jv,a1 as xd,a2 as H2,a3 as ej,a4 as F2,a5 as Y2,a6 as Bf,a7 as q2,a8 as tj,a9 as so,aa as pd,ab as Dy,ac as Oy,ad as Ay,ae as V2,af as G2,ag as $2,ah as I2,ai as W2,aj as sj,ak as X2}from"./icons-DnP4c9nr.js";(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))i(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&i(m)}).observe(document,{childList:!0,subtree:!0});function l(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerPolicy&&(d.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?d.credentials="include":c.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function i(c){if(c.ep)return;c.ep=!0;const d=l(c);fetch(c.href,d)}})();var mf={exports:{}},Wi={},ff={exports:{}},hf={};var nj;function K2(){return nj||(nj=1,(function(s){function a(R,O){var L=R.length;R.push(O);e:for(;0>>1,le=R[ee];if(0>>1;eec(W,L))fec(I,W)?(R[ee]=I,R[fe]=L,ee=fe):(R[ee]=W,R[F]=L,ee=F);else if(fec(I,L))R[ee]=I,R[fe]=L,ee=fe;else break e}}return O}function c(R,O){var L=R.sortIndex-O.sortIndex;return L!==0?L:R.id-O.id}if(s.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;s.unstable_now=function(){return d.now()}}else{var m=Date,h=m.now();s.unstable_now=function(){return m.now()-h}}var p=[],v=[],g=1,j=null,b=3,w=!1,S=!1,C=!1,N=!1,T=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,M=typeof setImmediate<"u"?setImmediate:null;function k(R){for(var O=l(v);O!==null;){if(O.callback===null)i(v);else if(O.startTime<=R)i(v),O.sortIndex=O.expirationTime,a(p,O);else break;O=l(v)}}function D(R){if(C=!1,k(R),!S)if(l(p)!==null)S=!0,A||(A=!0,oe());else{var O=l(v);O!==null&&me(D,O.startTime-R)}}var A=!1,E=-1,B=5,Y=-1;function G(){return N?!0:!(s.unstable_now()-YR&&G());){var ee=j.callback;if(typeof ee=="function"){j.callback=null,b=j.priorityLevel;var le=ee(j.expirationTime<=R);if(R=s.unstable_now(),typeof le=="function"){j.callback=le,k(R),O=!0;break t}j===l(p)&&i(p),k(R)}else i(p);j=l(p)}if(j!==null)O=!0;else{var xe=l(v);xe!==null&&me(D,xe.startTime-R),O=!1}}break e}finally{j=null,b=L,w=!1}O=void 0}}finally{O?oe():A=!1}}}var oe;if(typeof M=="function")oe=function(){M($)};else if(typeof MessageChannel<"u"){var je=new MessageChannel,ae=je.port2;je.port1.onmessage=$,oe=function(){ae.postMessage(null)}}else oe=function(){T($,0)};function me(R,O){E=T(function(){R(s.unstable_now())},O)}s.unstable_IdlePriority=5,s.unstable_ImmediatePriority=1,s.unstable_LowPriority=4,s.unstable_NormalPriority=3,s.unstable_Profiling=null,s.unstable_UserBlockingPriority=2,s.unstable_cancelCallback=function(R){R.callback=null},s.unstable_forceFrameRate=function(R){0>R||125ee?(R.sortIndex=L,a(v,R),l(p)===null&&R===l(v)&&(C?(P(E),E=-1):C=!0,me(D,L-ee))):(R.sortIndex=le,a(p,R),S||w||(S=!0,A||(A=!0,oe()))),R},s.unstable_shouldYield=G,s.unstable_wrapCallback=function(R){var O=b;return function(){var L=b;b=O;try{return R.apply(this,arguments)}finally{b=L}}}})(hf)),hf}var aj;function Q2(){return aj||(aj=1,ff.exports=K2()),ff.exports}var lj;function Z2(){if(lj)return Wi;lj=1;var s=Q2(),a=n2(),l=a2();function i(t){var n="https://react.dev/errors/"+t;if(1le||(t.current=ee[le],ee[le]=null,le--)}function W(t,n){le++,ee[le]=t.current,t.current=n}var fe=xe(null),I=xe(null),ve=xe(null),de=xe(null);function Ce(t,n){switch(W(ve,n),W(I,t),W(fe,null),n.nodeType){case 9:case 11:t=(t=n.documentElement)&&(t=t.namespaceURI)?bv(t):0;break;default:if(t=n.tagName,n=n.namespaceURI)n=bv(n),t=Nv(n,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}F(fe),W(fe,t)}function Q(){F(fe),F(I),F(ve)}function Oe(t){t.memoizedState!==null&&W(de,t);var n=fe.current,r=Nv(n,t.type);n!==r&&(W(I,t),W(fe,r))}function $e(t){I.current===t&&(F(fe),F(I)),de.current===t&&(F(de),qi._currentValue=L)}var re,Pe;function ze(t){if(re===void 0)try{throw Error()}catch(r){var n=r.stack.trim().match(/\n( *(at )?)/);re=n&&n[1]||"",Pe=-1)":-1u||z[o]!==K[u]){var ie=` +`+z[o].replace(" at new "," at ");return t.displayName&&ie.includes("")&&(ie=ie.replace("",t.displayName)),ie}while(1<=o&&0<=u);break}}}finally{Zt=!1,Error.prepareStackTrace=r}return(r=t?t.displayName||t.name:"")?ze(r):""}function An(t,n){switch(t.tag){case 26:case 27:case 5:return ze(t.type);case 16:return ze("Lazy");case 13:return t.child!==n&&n!==null?ze("Suspense Fallback"):ze("Suspense");case 19:return ze("SuspenseList");case 0:case 15:return Rs(t.type,!1);case 11:return Rs(t.type.render,!1);case 1:return Rs(t.type,!0);case 31:return ze("Activity");default:return""}}function Le(t){try{var n="",r=null;do n+=An(t,r),r=t,t=t.return;while(t);return n}catch(o){return` +Error generating stack: `+o.message+` +`+o.stack}}var Nn=Object.prototype.hasOwnProperty,ln=s.unstable_scheduleCallback,rn=s.unstable_cancelCallback,Xt=s.unstable_shouldYield,Ds=s.unstable_requestPaint,ke=s.unstable_now,is=s.unstable_getCurrentPriorityLevel,he=s.unstable_ImmediatePriority,Ee=s.unstable_UserBlockingPriority,Ve=s.unstable_NormalPriority,Os=s.unstable_LowPriority,$n=s.unstable_IdlePriority,Hl=s.log,Fl=s.unstable_setDisableYieldValue,se=null,ge=null;function Qe(t){if(typeof Hl=="function"&&Fl(t),ge&&typeof ge.setStrictMode=="function")try{ge.setStrictMode(se,t)}catch{}}var pt=Math.clz32?Math.clz32:Mt,tl=Math.log,We=Math.LN2;function Mt(t){return t>>>=0,t===0?32:31-(tl(t)/We|0)|0}var Be=256,ht=262144,os=4194304;function Xe(t){var n=t&42;if(n!==0)return n;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Yl(t,n,r){var o=t.pendingLanes;if(o===0)return 0;var u=0,f=t.suspendedLanes,y=t.pingedLanes;t=t.warmLanes;var _=o&134217727;return _!==0?(o=_&~f,o!==0?u=Xe(o):(y&=_,y!==0?u=Xe(y):r||(r=_&~t,r!==0&&(u=Xe(r))))):(_=o&~f,_!==0?u=Xe(_):y!==0?u=Xe(y):r||(r=o&~t,r!==0&&(u=Xe(r)))),u===0?0:n!==0&&n!==u&&(n&f)===0&&(f=u&-u,r=n&-n,f>=r||f===32&&(r&4194048)!==0)?n:u}function sl(t,n){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&n)===0}function Zd(t,n){switch(t){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ql(){var t=os;return os<<=1,(os&62914560)===0&&(os=4194304),t}function nl(t){for(var n=[],r=0;31>r;r++)n.push(t);return n}function ni(t,n){t.pendingLanes|=n,n!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function B1(t,n,r,o,u,f){var y=t.pendingLanes;t.pendingLanes=r,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=r,t.entangledLanes&=r,t.errorRecoveryDisabledLanes&=r,t.shellSuspendCounter=0;var _=t.entanglements,z=t.expirationTimes,K=t.hiddenUpdates;for(r=y&~r;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var V1=/[\n"\\]/g;function cn(t){return t.replace(V1,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function au(t,n,r,o,u,f,y,_){t.name="",y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"?t.type=y:t.removeAttribute("type"),n!=null?y==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+on(n)):t.value!==""+on(n)&&(t.value=""+on(n)):y!=="submit"&&y!=="reset"||t.removeAttribute("value"),n!=null?lu(t,y,on(n)):r!=null?lu(t,y,on(r)):o!=null&&t.removeAttribute("value"),u==null&&f!=null&&(t.defaultChecked=!!f),u!=null&&(t.checked=u&&typeof u!="function"&&typeof u!="symbol"),_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"?t.name=""+on(_):t.removeAttribute("name")}function xx(t,n,r,o,u,f,y,_){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(t.type=f),n!=null||r!=null){if(!(f!=="submit"&&f!=="reset"||n!=null)){nu(t);return}r=r!=null?""+on(r):"",n=n!=null?""+on(n):r,_||n===t.value||(t.value=n),t.defaultValue=n}o=o??u,o=typeof o!="function"&&typeof o!="symbol"&&!!o,t.checked=_?t.checked:!!o,t.defaultChecked=!!o,y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"&&(t.name=y),nu(t)}function lu(t,n,r){n==="number"&&Uo(t.ownerDocument)===t||t.defaultValue===""+r||(t.defaultValue=""+r)}function Xl(t,n,r,o){if(t=t.options,n){n={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),du=!1;if(Xn)try{var ii={};Object.defineProperty(ii,"passive",{get:function(){du=!0}}),window.addEventListener("test",ii,ii),window.removeEventListener("test",ii,ii)}catch{du=!1}var ya=null,uu=null,Fo=null;function Nx(){if(Fo)return Fo;var t,n=uu,r=n.length,o,u="value"in ya?ya.value:ya.textContent,f=u.length;for(t=0;t=di),Tx=" ",Ex=!1;function Mx(t,n){switch(t){case"keyup":return vS.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Dx(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Jl=!1;function yS(t,n){switch(t){case"compositionend":return Dx(n);case"keypress":return n.which!==32?null:(Ex=!0,Tx);case"textInput":return t=n.data,t===Tx&&Ex?null:t;default:return null}}function bS(t,n){if(Jl)return t==="compositionend"||!pu&&Mx(t,n)?(t=Nx(),Fo=uu=ya=null,Jl=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:r,offset:n-t};t=o}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Ux(r)}}function Fx(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?Fx(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function Yx(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var n=Uo(t.document);n instanceof t.HTMLIFrameElement;){try{var r=typeof n.contentWindow.location.href=="string"}catch{r=!1}if(r)t=n.contentWindow;else break;n=Uo(t.document)}return n}function ju(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}var ES=Xn&&"documentMode"in document&&11>=document.documentMode,er=null,yu=null,hi=null,bu=!1;function qx(t,n,r){var o=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;bu||er==null||er!==Uo(o)||(o=er,"selectionStart"in o&&ju(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),hi&&fi(hi,o)||(hi=o,o=Rc(yu,"onSelect"),0>=y,u-=y,Rn=1<<32-pt(n)+u|r<Ge?(st=Te,Te=null):st=Te.sibling;var mt=J(V,Te,X[Ge],ce);if(mt===null){Te===null&&(Te=st);break}t&&Te&&mt.alternate===null&&n(V,Te),H=f(mt,H,Ge),ut===null?De=mt:ut.sibling=mt,ut=mt,Te=st}if(Ge===X.length)return r(V,Te),nt&&Qn(V,Ge),De;if(Te===null){for(;GeGe?(st=Te,Te=null):st=Te.sibling;var Ya=J(V,Te,mt.value,ce);if(Ya===null){Te===null&&(Te=st);break}t&&Te&&Ya.alternate===null&&n(V,Te),H=f(Ya,H,Ge),ut===null?De=Ya:ut.sibling=Ya,ut=Ya,Te=st}if(mt.done)return r(V,Te),nt&&Qn(V,Ge),De;if(Te===null){for(;!mt.done;Ge++,mt=X.next())mt=ue(V,mt.value,ce),mt!==null&&(H=f(mt,H,Ge),ut===null?De=mt:ut.sibling=mt,ut=mt);return nt&&Qn(V,Ge),De}for(Te=o(Te);!mt.done;Ge++,mt=X.next())mt=ne(Te,V,Ge,mt.value,ce),mt!==null&&(t&&mt.alternate!==null&&Te.delete(mt.key===null?Ge:mt.key),H=f(mt,H,Ge),ut===null?De=mt:ut.sibling=mt,ut=mt);return t&&Te.forEach(function(X_){return n(V,X_)}),nt&&Qn(V,Ge),De}function St(V,H,X,ce){if(typeof X=="object"&&X!==null&&X.type===C&&X.key===null&&(X=X.props.children),typeof X=="object"&&X!==null){switch(X.$$typeof){case w:e:{for(var De=X.key;H!==null;){if(H.key===De){if(De=X.type,De===C){if(H.tag===7){r(V,H.sibling),ce=u(H,X.props.children),ce.return=V,V=ce;break e}}else if(H.elementType===De||typeof De=="object"&&De!==null&&De.$$typeof===B&&hl(De)===H.type){r(V,H.sibling),ce=u(H,X.props),yi(ce,X),ce.return=V,V=ce;break e}r(V,H);break}else n(V,H);H=H.sibling}X.type===C?(ce=cl(X.props.children,V.mode,ce,X.key),ce.return=V,V=ce):(ce=Qo(X.type,X.key,X.props,null,V.mode,ce),yi(ce,X),ce.return=V,V=ce)}return y(V);case S:e:{for(De=X.key;H!==null;){if(H.key===De)if(H.tag===4&&H.stateNode.containerInfo===X.containerInfo&&H.stateNode.implementation===X.implementation){r(V,H.sibling),ce=u(H,X.children||[]),ce.return=V,V=ce;break e}else{r(V,H);break}else n(V,H);H=H.sibling}ce=Tu(X,V.mode,ce),ce.return=V,V=ce}return y(V);case B:return X=hl(X),St(V,H,X,ce)}if(me(X))return we(V,H,X,ce);if(oe(X)){if(De=oe(X),typeof De!="function")throw Error(i(150));return X=De.call(X),Re(V,H,X,ce)}if(typeof X.then=="function")return St(V,H,ac(X),ce);if(X.$$typeof===M)return St(V,H,ec(V,X),ce);lc(V,X)}return typeof X=="string"&&X!==""||typeof X=="number"||typeof X=="bigint"?(X=""+X,H!==null&&H.tag===6?(r(V,H.sibling),ce=u(H,X),ce.return=V,V=ce):(r(V,H),ce=ku(X,V.mode,ce),ce.return=V,V=ce),y(V)):r(V,H)}return function(V,H,X,ce){try{ji=0;var De=St(V,H,X,ce);return ur=null,De}catch(Te){if(Te===dr||Te===sc)throw Te;var ut=Ks(29,Te,null,V.mode);return ut.lanes=ce,ut.return=V,ut}finally{}}}var pl=mp(!0),fp=mp(!1),_a=!1;function Hu(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fu(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Ca(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function ka(t,n,r){var o=t.updateQueue;if(o===null)return null;if(o=o.shared,(xt&2)!==0){var u=o.pending;return u===null?n.next=n:(n.next=u.next,u.next=n),o.pending=n,n=Ko(t),Kx(t,null,r),n}return Xo(t,o,n,r),Ko(t)}function bi(t,n,r){if(n=n.updateQueue,n!==null&&(n=n.shared,(r&4194048)!==0)){var o=n.lanes;o&=t.pendingLanes,r|=o,n.lanes=r,ax(t,r)}}function Yu(t,n){var r=t.updateQueue,o=t.alternate;if(o!==null&&(o=o.updateQueue,r===o)){var u=null,f=null;if(r=r.firstBaseUpdate,r!==null){do{var y={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};f===null?u=f=y:f=f.next=y,r=r.next}while(r!==null);f===null?u=f=n:f=f.next=n}else u=f=n;r={baseState:o.baseState,firstBaseUpdate:u,lastBaseUpdate:f,shared:o.shared,callbacks:o.callbacks},t.updateQueue=r;return}t=r.lastBaseUpdate,t===null?r.firstBaseUpdate=n:t.next=n,r.lastBaseUpdate=n}var qu=!1;function Ni(){if(qu){var t=cr;if(t!==null)throw t}}function wi(t,n,r,o){qu=!1;var u=t.updateQueue;_a=!1;var f=u.firstBaseUpdate,y=u.lastBaseUpdate,_=u.shared.pending;if(_!==null){u.shared.pending=null;var z=_,K=z.next;z.next=null,y===null?f=K:y.next=K,y=z;var ie=t.alternate;ie!==null&&(ie=ie.updateQueue,_=ie.lastBaseUpdate,_!==y&&(_===null?ie.firstBaseUpdate=K:_.next=K,ie.lastBaseUpdate=z))}if(f!==null){var ue=u.baseState;y=0,ie=K=z=null,_=f;do{var J=_.lane&-536870913,ne=J!==_.lane;if(ne?(tt&J)===J:(o&J)===J){J!==0&&J===or&&(qu=!0),ie!==null&&(ie=ie.next={lane:0,tag:_.tag,payload:_.payload,callback:null,next:null});e:{var we=t,Re=_;J=n;var St=r;switch(Re.tag){case 1:if(we=Re.payload,typeof we=="function"){ue=we.call(St,ue,J);break e}ue=we;break e;case 3:we.flags=we.flags&-65537|128;case 0:if(we=Re.payload,J=typeof we=="function"?we.call(St,ue,J):we,J==null)break e;ue=j({},ue,J);break e;case 2:_a=!0}}J=_.callback,J!==null&&(t.flags|=64,ne&&(t.flags|=8192),ne=u.callbacks,ne===null?u.callbacks=[J]:ne.push(J))}else ne={lane:J,tag:_.tag,payload:_.payload,callback:_.callback,next:null},ie===null?(K=ie=ne,z=ue):ie=ie.next=ne,y|=J;if(_=_.next,_===null){if(_=u.shared.pending,_===null)break;ne=_,_=ne.next,ne.next=null,u.lastBaseUpdate=ne,u.shared.pending=null}}while(!0);ie===null&&(z=ue),u.baseState=z,u.firstBaseUpdate=K,u.lastBaseUpdate=ie,f===null&&(u.shared.lanes=0),Oa|=y,t.lanes=y,t.memoizedState=ue}}function hp(t,n){if(typeof t!="function")throw Error(i(191,t));t.call(n)}function xp(t,n){var r=t.callbacks;if(r!==null)for(t.callbacks=null,t=0;tf?f:8;var y=R.T,_={};R.T=_,om(t,!1,n,r);try{var z=u(),K=R.S;if(K!==null&&K(_,z),z!==null&&typeof z=="object"&&typeof z.then=="function"){var ie=BS(z,o);Ci(t,n,ie,tn(t))}else Ci(t,n,o,tn(t))}catch(ue){Ci(t,n,{then:function(){},status:"rejected",reason:ue},tn())}finally{O.p=f,y!==null&&_.types!==null&&(y.types=_.types),R.T=y}}function VS(){}function rm(t,n,r,o){if(t.tag!==5)throw Error(i(476));var u=Ip(t).queue;$p(t,u,n,L,r===null?VS:function(){return Wp(t),r(o)})}function Ip(t){var n=t.memoizedState;if(n!==null)return n;n={memoizedState:L,baseState:L,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ta,lastRenderedState:L},next:null};var r={};return n.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ta,lastRenderedState:r},next:null},t.memoizedState=n,t=t.alternate,t!==null&&(t.memoizedState=n),n}function Wp(t){var n=Ip(t);n.next===null&&(n=t.alternate.memoizedState),Ci(t,n.next.queue,{},tn())}function im(){return gs(qi)}function Xp(){return Qt().memoizedState}function Kp(){return Qt().memoizedState}function GS(t){for(var n=t.return;n!==null;){switch(n.tag){case 24:case 3:var r=tn();t=Ca(r);var o=ka(n,t,r);o!==null&&(Fs(o,n,r),bi(o,n,r)),n={cache:Pu()},t.payload=n;return}n=n.return}}function $S(t,n,r){var o=tn();r={lane:o,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},xc(t)?Zp(n,r):(r=_u(t,n,r,o),r!==null&&(Fs(r,t,o),Jp(r,n,o)))}function Qp(t,n,r){var o=tn();Ci(t,n,r,o)}function Ci(t,n,r,o){var u={lane:o,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(xc(t))Zp(n,u);else{var f=t.alternate;if(t.lanes===0&&(f===null||f.lanes===0)&&(f=n.lastRenderedReducer,f!==null))try{var y=n.lastRenderedState,_=f(y,r);if(u.hasEagerState=!0,u.eagerState=_,Xs(_,y))return Xo(t,n,u,0),Et===null&&Wo(),!1}catch{}finally{}if(r=_u(t,n,u,o),r!==null)return Fs(r,t,o),Jp(r,n,o),!0}return!1}function om(t,n,r,o){if(o={lane:2,revertLane:Hm(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},xc(t)){if(n)throw Error(i(479))}else n=_u(t,r,o,2),n!==null&&Fs(n,t,2)}function xc(t){var n=t.alternate;return t===Ye||n!==null&&n===Ye}function Zp(t,n){fr=oc=!0;var r=t.pending;r===null?n.next=n:(n.next=r.next,r.next=n),t.pending=n}function Jp(t,n,r){if((r&4194048)!==0){var o=n.lanes;o&=t.pendingLanes,r|=o,n.lanes=r,ax(t,r)}}var ki={readContext:gs,use:uc,useCallback:It,useContext:It,useEffect:It,useImperativeHandle:It,useLayoutEffect:It,useInsertionEffect:It,useMemo:It,useReducer:It,useRef:It,useState:It,useDebugValue:It,useDeferredValue:It,useTransition:It,useSyncExternalStore:It,useId:It,useHostTransitionStatus:It,useFormState:It,useActionState:It,useOptimistic:It,useMemoCache:It,useCacheRefresh:It};ki.useEffectEvent=It;var eg={readContext:gs,use:uc,useCallback:function(t,n){return As().memoizedState=[t,n===void 0?null:n],t},useContext:gs,useEffect:Lp,useImperativeHandle:function(t,n,r){r=r!=null?r.concat([t]):null,fc(4194308,4,Fp.bind(null,n,t),r)},useLayoutEffect:function(t,n){return fc(4194308,4,t,n)},useInsertionEffect:function(t,n){fc(4,2,t,n)},useMemo:function(t,n){var r=As();n=n===void 0?null:n;var o=t();if(gl){Qe(!0);try{t()}finally{Qe(!1)}}return r.memoizedState=[o,n],o},useReducer:function(t,n,r){var o=As();if(r!==void 0){var u=r(n);if(gl){Qe(!0);try{r(n)}finally{Qe(!1)}}}else u=n;return o.memoizedState=o.baseState=u,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:u},o.queue=t,t=t.dispatch=$S.bind(null,Ye,t),[o.memoizedState,t]},useRef:function(t){var n=As();return t={current:t},n.memoizedState=t},useState:function(t){t=tm(t);var n=t.queue,r=Qp.bind(null,Ye,n);return n.dispatch=r,[t.memoizedState,r]},useDebugValue:am,useDeferredValue:function(t,n){var r=As();return lm(r,t,n)},useTransition:function(){var t=tm(!1);return t=$p.bind(null,Ye,t.queue,!0,!1),As().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,n,r){var o=Ye,u=As();if(nt){if(r===void 0)throw Error(i(407));r=r()}else{if(r=n(),Et===null)throw Error(i(349));(tt&127)!==0||bp(o,n,r)}u.memoizedState=r;var f={value:r,getSnapshot:n};return u.queue=f,Lp(wp.bind(null,o,f,t),[t]),o.flags|=2048,xr(9,{destroy:void 0},Np.bind(null,o,f,r,n),null),r},useId:function(){var t=As(),n=Et.identifierPrefix;if(nt){var r=zn,o=Rn;r=(o&~(1<<32-pt(o)-1)).toString(32)+r,n="_"+n+"R_"+r,r=cc++,0<\/script>",f=f.removeChild(f.firstChild);break;case"select":f=typeof o.is=="string"?y.createElement("select",{is:o.is}):y.createElement("select"),o.multiple?f.multiple=!0:o.size&&(f.size=o.size);break;default:f=typeof o.is=="string"?y.createElement(u,{is:o.is}):y.createElement(u)}}f[xs]=n,f[zs]=o;e:for(y=n.child;y!==null;){if(y.tag===5||y.tag===6)f.appendChild(y.stateNode);else if(y.tag!==4&&y.tag!==27&&y.child!==null){y.child.return=y,y=y.child;continue}if(y===n)break e;for(;y.sibling===null;){if(y.return===null||y.return===n)break e;y=y.return}y.sibling.return=y.return,y=y.sibling}n.stateNode=f;e:switch(js(f,u,o),u){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}o&&na(n)}}return Ht(n),Nm(n,n.type,t===null?null:t.memoizedProps,n.pendingProps,r),null;case 6:if(t&&n.stateNode!=null)t.memoizedProps!==o&&na(n);else{if(typeof o!="string"&&n.stateNode===null)throw Error(i(166));if(t=ve.current,rr(n)){if(t=n.stateNode,r=n.memoizedProps,o=null,u=ps,u!==null)switch(u.tag){case 27:case 5:o=u.memoizedProps}t[xs]=n,t=!!(t.nodeValue===r||o!==null&&o.suppressHydrationWarning===!0||jv(t.nodeValue,r)),t||wa(n,!0)}else t=zc(t).createTextNode(o),t[xs]=n,n.stateNode=t}return Ht(n),null;case 31:if(r=n.memoizedState,t===null||t.memoizedState!==null){if(o=rr(n),r!==null){if(t===null){if(!o)throw Error(i(318));if(t=n.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(i(557));t[xs]=n}else dl(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Ht(n),t=!1}else r=Ou(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=r),t=!0;if(!t)return n.flags&256?(Zs(n),n):(Zs(n),null);if((n.flags&128)!==0)throw Error(i(558))}return Ht(n),null;case 13:if(o=n.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(u=rr(n),o!==null&&o.dehydrated!==null){if(t===null){if(!u)throw Error(i(318));if(u=n.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));u[xs]=n}else dl(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Ht(n),u=!1}else u=Ou(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=u),u=!0;if(!u)return n.flags&256?(Zs(n),n):(Zs(n),null)}return Zs(n),(n.flags&128)!==0?(n.lanes=r,n):(r=o!==null,t=t!==null&&t.memoizedState!==null,r&&(o=n.child,u=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(u=o.alternate.memoizedState.cachePool.pool),f=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(f=o.memoizedState.cachePool.pool),f!==u&&(o.flags|=2048)),r!==t&&r&&(n.child.flags|=8192),yc(n,n.updateQueue),Ht(n),null);case 4:return Q(),t===null&&Vm(n.stateNode.containerInfo),Ht(n),null;case 10:return Jn(n.type),Ht(n),null;case 19:if(F(Kt),o=n.memoizedState,o===null)return Ht(n),null;if(u=(n.flags&128)!==0,f=o.rendering,f===null)if(u)Ei(o,!1);else{if(Wt!==0||t!==null&&(t.flags&128)!==0)for(t=n.child;t!==null;){if(f=ic(t),f!==null){for(n.flags|=128,Ei(o,!1),t=f.updateQueue,n.updateQueue=t,yc(n,t),n.subtreeFlags=0,t=r,r=n.child;r!==null;)Qx(r,t),r=r.sibling;return W(Kt,Kt.current&1|2),nt&&Qn(n,o.treeForkCount),n.child}t=t.sibling}o.tail!==null&&ke()>_c&&(n.flags|=128,u=!0,Ei(o,!1),n.lanes=4194304)}else{if(!u)if(t=ic(f),t!==null){if(n.flags|=128,u=!0,t=t.updateQueue,n.updateQueue=t,yc(n,t),Ei(o,!0),o.tail===null&&o.tailMode==="hidden"&&!f.alternate&&!nt)return Ht(n),null}else 2*ke()-o.renderingStartTime>_c&&r!==536870912&&(n.flags|=128,u=!0,Ei(o,!1),n.lanes=4194304);o.isBackwards?(f.sibling=n.child,n.child=f):(t=o.last,t!==null?t.sibling=f:n.child=f,o.last=f)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=ke(),t.sibling=null,r=Kt.current,W(Kt,u?r&1|2:r&1),nt&&Qn(n,o.treeForkCount),t):(Ht(n),null);case 22:case 23:return Zs(n),Gu(),o=n.memoizedState!==null,t!==null?t.memoizedState!==null!==o&&(n.flags|=8192):o&&(n.flags|=8192),o?(r&536870912)!==0&&(n.flags&128)===0&&(Ht(n),n.subtreeFlags&6&&(n.flags|=8192)):Ht(n),r=n.updateQueue,r!==null&&yc(n,r.retryQueue),r=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),o=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(o=n.memoizedState.cachePool.pool),o!==r&&(n.flags|=2048),t!==null&&F(fl),null;case 24:return r=null,t!==null&&(r=t.memoizedState.cache),n.memoizedState.cache!==r&&(n.flags|=2048),Jn(Jt),Ht(n),null;case 25:return null;case 30:return null}throw Error(i(156,n.tag))}function QS(t,n){switch(Mu(n),n.tag){case 1:return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return Jn(Jt),Q(),t=n.flags,(t&65536)!==0&&(t&128)===0?(n.flags=t&-65537|128,n):null;case 26:case 27:case 5:return $e(n),null;case 31:if(n.memoizedState!==null){if(Zs(n),n.alternate===null)throw Error(i(340));dl()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 13:if(Zs(n),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(i(340));dl()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return F(Kt),null;case 4:return Q(),null;case 10:return Jn(n.type),null;case 22:case 23:return Zs(n),Gu(),t!==null&&F(fl),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 24:return Jn(Jt),null;case 25:return null;default:return null}}function Sg(t,n){switch(Mu(n),n.tag){case 3:Jn(Jt),Q();break;case 26:case 27:case 5:$e(n);break;case 4:Q();break;case 31:n.memoizedState!==null&&Zs(n);break;case 13:Zs(n);break;case 19:F(Kt);break;case 10:Jn(n.type);break;case 22:case 23:Zs(n),Gu(),t!==null&&F(fl);break;case 24:Jn(Jt)}}function Mi(t,n){try{var r=n.updateQueue,o=r!==null?r.lastEffect:null;if(o!==null){var u=o.next;r=u;do{if((r.tag&t)===t){o=void 0;var f=r.create,y=r.inst;o=f(),y.destroy=o}r=r.next}while(r!==u)}}catch(_){jt(n,n.return,_)}}function Ma(t,n,r){try{var o=n.updateQueue,u=o!==null?o.lastEffect:null;if(u!==null){var f=u.next;o=f;do{if((o.tag&t)===t){var y=o.inst,_=y.destroy;if(_!==void 0){y.destroy=void 0,u=n;var z=r,K=_;try{K()}catch(ie){jt(u,z,ie)}}}o=o.next}while(o!==f)}}catch(ie){jt(n,n.return,ie)}}function _g(t){var n=t.updateQueue;if(n!==null){var r=t.stateNode;try{xp(n,r)}catch(o){jt(t,t.return,o)}}}function Cg(t,n,r){r.props=vl(t.type,t.memoizedProps),r.state=t.memoizedState;try{r.componentWillUnmount()}catch(o){jt(t,n,o)}}function Di(t,n){try{var r=t.ref;if(r!==null){switch(t.tag){case 26:case 27:case 5:var o=t.stateNode;break;case 30:o=t.stateNode;break;default:o=t.stateNode}typeof r=="function"?t.refCleanup=r(o):r.current=o}}catch(u){jt(t,n,u)}}function Pn(t,n){var r=t.ref,o=t.refCleanup;if(r!==null)if(typeof o=="function")try{o()}catch(u){jt(t,n,u)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(u){jt(t,n,u)}else r.current=null}function kg(t){var n=t.type,r=t.memoizedProps,o=t.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":r.autoFocus&&o.focus();break e;case"img":r.src?o.src=r.src:r.srcSet&&(o.srcset=r.srcSet)}}catch(u){jt(t,t.return,u)}}function wm(t,n,r){try{var o=t.stateNode;j_(o,t.type,r,n),o[zs]=n}catch(u){jt(t,t.return,u)}}function Tg(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&La(t.type)||t.tag===4}function Sm(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Tg(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&La(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function _m(t,n,r){var o=t.tag;if(o===5||o===6)t=t.stateNode,n?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(t,n):(n=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,n.appendChild(t),r=r._reactRootContainer,r!=null||n.onclick!==null||(n.onclick=Wn));else if(o!==4&&(o===27&&La(t.type)&&(r=t.stateNode,n=null),t=t.child,t!==null))for(_m(t,n,r),t=t.sibling;t!==null;)_m(t,n,r),t=t.sibling}function bc(t,n,r){var o=t.tag;if(o===5||o===6)t=t.stateNode,n?r.insertBefore(t,n):r.appendChild(t);else if(o!==4&&(o===27&&La(t.type)&&(r=t.stateNode),t=t.child,t!==null))for(bc(t,n,r),t=t.sibling;t!==null;)bc(t,n,r),t=t.sibling}function Eg(t){var n=t.stateNode,r=t.memoizedProps;try{for(var o=t.type,u=n.attributes;u.length;)n.removeAttributeNode(u[0]);js(n,o,r),n[xs]=t,n[zs]=r}catch(f){jt(t,t.return,f)}}var aa=!1,ss=!1,Cm=!1,Mg=typeof WeakSet=="function"?WeakSet:Set,ds=null;function ZS(t,n){if(t=t.containerInfo,Im=Yc,t=Yx(t),ju(t)){if("selectionStart"in t)var r={start:t.selectionStart,end:t.selectionEnd};else e:{r=(r=t.ownerDocument)&&r.defaultView||window;var o=r.getSelection&&r.getSelection();if(o&&o.rangeCount!==0){r=o.anchorNode;var u=o.anchorOffset,f=o.focusNode;o=o.focusOffset;try{r.nodeType,f.nodeType}catch{r=null;break e}var y=0,_=-1,z=-1,K=0,ie=0,ue=t,J=null;t:for(;;){for(var ne;ue!==r||u!==0&&ue.nodeType!==3||(_=y+u),ue!==f||o!==0&&ue.nodeType!==3||(z=y+o),ue.nodeType===3&&(y+=ue.nodeValue.length),(ne=ue.firstChild)!==null;)J=ue,ue=ne;for(;;){if(ue===t)break t;if(J===r&&++K===u&&(_=y),J===f&&++ie===o&&(z=y),(ne=ue.nextSibling)!==null)break;ue=J,J=ue.parentNode}ue=ne}r=_===-1||z===-1?null:{start:_,end:z}}else r=null}r=r||{start:0,end:0}}else r=null;for(Wm={focusedElem:t,selectionRange:r},Yc=!1,ds=n;ds!==null;)if(n=ds,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,ds=t;else for(;ds!==null;){switch(n=ds,f=n.alternate,t=n.flags,n.tag){case 0:if((t&4)!==0&&(t=n.updateQueue,t=t!==null?t.events:null,t!==null))for(r=0;r title"))),js(f,o,r),f[xs]=t,cs(f),o=f;break e;case"link":var y=Pv("link","href",u).get(o+(r.href||""));if(y){for(var _=0;_St&&(y=St,St=Re,Re=y);var V=Hx(_,Re),H=Hx(_,St);if(V&&H&&(ne.rangeCount!==1||ne.anchorNode!==V.node||ne.anchorOffset!==V.offset||ne.focusNode!==H.node||ne.focusOffset!==H.offset)){var X=ue.createRange();X.setStart(V.node,V.offset),ne.removeAllRanges(),Re>St?(ne.addRange(X),ne.extend(H.node,H.offset)):(X.setEnd(H.node,H.offset),ne.addRange(X))}}}}for(ue=[],ne=_;ne=ne.parentNode;)ne.nodeType===1&&ue.push({element:ne,left:ne.scrollLeft,top:ne.scrollTop});for(typeof _.focus=="function"&&_.focus(),_=0;_r?32:r,R.T=null,r=Am,Am=null;var f=Ra,y=ca;if(ls=0,yr=Ra=null,ca=0,(xt&6)!==0)throw Error(i(331));var _=xt;if(xt|=4,Fg(f.current),Bg(f,f.current,y,r),xt=_,Li(0,!1),ge&&typeof ge.onPostCommitFiberRoot=="function")try{ge.onPostCommitFiberRoot(se,f)}catch{}return!0}finally{O.p=u,R.T=o,lv(t,n)}}function iv(t,n,r){n=un(r,n),n=mm(t.stateNode,n,2),t=ka(t,n,2),t!==null&&(ni(t,2),Ln(t))}function jt(t,n,r){if(t.tag===3)iv(t,t,r);else for(;n!==null;){if(n.tag===3){iv(n,t,r);break}else if(n.tag===1){var o=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(Aa===null||!Aa.has(o))){t=un(r,t),r=og(2),o=ka(n,r,2),o!==null&&(cg(r,o,n,t),ni(o,2),Ln(o));break}}n=n.return}}function Lm(t,n,r){var o=t.pingCache;if(o===null){o=t.pingCache=new t_;var u=new Set;o.set(n,u)}else u=o.get(n),u===void 0&&(u=new Set,o.set(n,u));u.has(r)||(Em=!0,u.add(r),t=r_.bind(null,t,n,r),n.then(t,t))}function r_(t,n,r){var o=t.pingCache;o!==null&&o.delete(n),t.pingedLanes|=t.suspendedLanes&r,t.warmLanes&=~r,Et===t&&(tt&r)===r&&(Wt===4||Wt===3&&(tt&62914560)===tt&&300>ke()-Sc?(xt&2)===0&&br(t,0):Mm|=r,jr===tt&&(jr=0)),Ln(t)}function ov(t,n){n===0&&(n=ql()),t=ol(t,n),t!==null&&(ni(t,n),Ln(t))}function i_(t){var n=t.memoizedState,r=0;n!==null&&(r=n.retryLane),ov(t,r)}function o_(t,n){var r=0;switch(t.tag){case 31:case 13:var o=t.stateNode,u=t.memoizedState;u!==null&&(r=u.retryLane);break;case 19:o=t.stateNode;break;case 22:o=t.stateNode._retryCache;break;default:throw Error(i(314))}o!==null&&o.delete(n),ov(t,r)}function c_(t,n){return ln(t,n)}var Dc=null,wr=null,Bm=!1,Oc=!1,Um=!1,Pa=0;function Ln(t){t!==wr&&t.next===null&&(wr===null?Dc=wr=t:wr=wr.next=t),Oc=!0,Bm||(Bm=!0,u_())}function Li(t,n){if(!Um&&Oc){Um=!0;do for(var r=!1,o=Dc;o!==null;){if(t!==0){var u=o.pendingLanes;if(u===0)var f=0;else{var y=o.suspendedLanes,_=o.pingedLanes;f=(1<<31-pt(42|t)+1)-1,f&=u&~(y&~_),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(r=!0,mv(o,f))}else f=tt,f=Yl(o,o===Et?f:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(f&3)===0||sl(o,f)||(r=!0,mv(o,f));o=o.next}while(r);Um=!1}}function d_(){cv()}function cv(){Oc=Bm=!1;var t=0;Pa!==0&&b_()&&(t=Pa);for(var n=ke(),r=null,o=Dc;o!==null;){var u=o.next,f=dv(o,n);f===0?(o.next=null,r===null?Dc=u:r.next=u,u===null&&(wr=r)):(r=o,(t!==0||(f&3)!==0)&&(Oc=!0)),o=u}ls!==0&&ls!==5||Li(t),Pa!==0&&(Pa=0)}function dv(t,n){for(var r=t.suspendedLanes,o=t.pingedLanes,u=t.expirationTimes,f=t.pendingLanes&-62914561;0_)break;var ie=z.transferSize,ue=z.initiatorType;ie&&yv(ue)&&(z=z.responseEnd,y+=ie*(z<_?1:(_-K)/(z-K)))}if(--o,n+=8*(f+y)/(u.duration/1e3),t++,10"u"?null:document;function Ov(t,n,r){var o=Sr;if(o&&typeof n=="string"&&n){var u=cn(n);u='link[rel="'+t+'"][href="'+u+'"]',typeof r=="string"&&(u+='[crossorigin="'+r+'"]'),Dv.has(u)||(Dv.add(u),t={rel:t,crossOrigin:r,href:n},o.querySelector(u)===null&&(n=o.createElement("link"),js(n,"link",t),cs(n),o.head.appendChild(n)))}}function M_(t){da.D(t),Ov("dns-prefetch",t,null)}function D_(t,n){da.C(t,n),Ov("preconnect",t,n)}function O_(t,n,r){da.L(t,n,r);var o=Sr;if(o&&t&&n){var u='link[rel="preload"][as="'+cn(n)+'"]';n==="image"&&r&&r.imageSrcSet?(u+='[imagesrcset="'+cn(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(u+='[imagesizes="'+cn(r.imageSizes)+'"]')):u+='[href="'+cn(t)+'"]';var f=u;switch(n){case"style":f=_r(t);break;case"script":f=Cr(t)}gn.has(f)||(t=j({rel:"preload",href:n==="image"&&r&&r.imageSrcSet?void 0:t,as:n},r),gn.set(f,t),o.querySelector(u)!==null||n==="style"&&o.querySelector(Fi(f))||n==="script"&&o.querySelector(Yi(f))||(n=o.createElement("link"),js(n,"link",t),cs(n),o.head.appendChild(n)))}}function A_(t,n){da.m(t,n);var r=Sr;if(r&&t){var o=n&&typeof n.as=="string"?n.as:"script",u='link[rel="modulepreload"][as="'+cn(o)+'"][href="'+cn(t)+'"]',f=u;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=Cr(t)}if(!gn.has(f)&&(t=j({rel:"modulepreload",href:t},n),gn.set(f,t),r.querySelector(u)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(Yi(f)))return}o=r.createElement("link"),js(o,"link",t),cs(o),r.head.appendChild(o)}}}function R_(t,n,r){da.S(t,n,r);var o=Sr;if(o&&t){var u=Il(o).hoistableStyles,f=_r(t);n=n||"default";var y=u.get(f);if(!y){var _={loading:0,preload:null};if(y=o.querySelector(Fi(f)))_.loading=5;else{t=j({rel:"stylesheet",href:t,"data-precedence":n},r),(r=gn.get(f))&&tf(t,r);var z=y=o.createElement("link");cs(z),js(z,"link",t),z._p=new Promise(function(K,ie){z.onload=K,z.onerror=ie}),z.addEventListener("load",function(){_.loading|=1}),z.addEventListener("error",function(){_.loading|=2}),_.loading|=4,Lc(y,n,o)}y={type:"stylesheet",instance:y,count:1,state:_},u.set(f,y)}}}function z_(t,n){da.X(t,n);var r=Sr;if(r&&t){var o=Il(r).hoistableScripts,u=Cr(t),f=o.get(u);f||(f=r.querySelector(Yi(u)),f||(t=j({src:t,async:!0},n),(n=gn.get(u))&&sf(t,n),f=r.createElement("script"),cs(f),js(f,"link",t),r.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},o.set(u,f))}}function P_(t,n){da.M(t,n);var r=Sr;if(r&&t){var o=Il(r).hoistableScripts,u=Cr(t),f=o.get(u);f||(f=r.querySelector(Yi(u)),f||(t=j({src:t,async:!0,type:"module"},n),(n=gn.get(u))&&sf(t,n),f=r.createElement("script"),cs(f),js(f,"link",t),r.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},o.set(u,f))}}function Av(t,n,r,o){var u=(u=ve.current)?Pc(u):null;if(!u)throw Error(i(446));switch(t){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(n=_r(r.href),r=Il(u).hoistableStyles,o=r.get(n),o||(o={type:"style",instance:null,count:0,state:null},r.set(n,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){t=_r(r.href);var f=Il(u).hoistableStyles,y=f.get(t);if(y||(u=u.ownerDocument||u,y={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(t,y),(f=u.querySelector(Fi(t)))&&!f._p&&(y.instance=f,y.state.loading=5),gn.has(t)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},gn.set(t,r),f||L_(u,t,r,y.state))),n&&o===null)throw Error(i(528,""));return y}if(n&&o!==null)throw Error(i(529,""));return null;case"script":return n=r.async,r=r.src,typeof r=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=Cr(r),r=Il(u).hoistableScripts,o=r.get(n),o||(o={type:"script",instance:null,count:0,state:null},r.set(n,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,t))}}function _r(t){return'href="'+cn(t)+'"'}function Fi(t){return'link[rel="stylesheet"]['+t+"]"}function Rv(t){return j({},t,{"data-precedence":t.precedence,precedence:null})}function L_(t,n,r,o){t.querySelector('link[rel="preload"][as="style"]['+n+"]")?o.loading=1:(n=t.createElement("link"),o.preload=n,n.addEventListener("load",function(){return o.loading|=1}),n.addEventListener("error",function(){return o.loading|=2}),js(n,"link",r),cs(n),t.head.appendChild(n))}function Cr(t){return'[src="'+cn(t)+'"]'}function Yi(t){return"script[async]"+t}function zv(t,n,r){if(n.count++,n.instance===null)switch(n.type){case"style":var o=t.querySelector('style[data-href~="'+cn(r.href)+'"]');if(o)return n.instance=o,cs(o),o;var u=j({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return o=(t.ownerDocument||t).createElement("style"),cs(o),js(o,"style",u),Lc(o,r.precedence,t),n.instance=o;case"stylesheet":u=_r(r.href);var f=t.querySelector(Fi(u));if(f)return n.state.loading|=4,n.instance=f,cs(f),f;o=Rv(r),(u=gn.get(u))&&tf(o,u),f=(t.ownerDocument||t).createElement("link"),cs(f);var y=f;return y._p=new Promise(function(_,z){y.onload=_,y.onerror=z}),js(f,"link",o),n.state.loading|=4,Lc(f,r.precedence,t),n.instance=f;case"script":return f=Cr(r.src),(u=t.querySelector(Yi(f)))?(n.instance=u,cs(u),u):(o=r,(u=gn.get(f))&&(o=j({},r),sf(o,u)),t=t.ownerDocument||t,u=t.createElement("script"),cs(u),js(u,"link",o),t.head.appendChild(u),n.instance=u);case"void":return null;default:throw Error(i(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(o=n.instance,n.state.loading|=4,Lc(o,r.precedence,t));return n.instance}function Lc(t,n,r){for(var o=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=o.length?o[o.length-1]:null,f=u,y=0;y title"):null)}function B_(t,n,r){if(r===1||n.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;switch(n.rel){case"stylesheet":return t=n.disabled,typeof n.precedence=="string"&&t==null;default:return!0}case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function Bv(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function U_(t,n,r,o){if(r.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var u=_r(o.href),f=n.querySelector(Fi(u));if(f){n=f._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(t.count++,t=Uc.bind(t),n.then(t,t)),r.state.loading|=4,r.instance=f,cs(f);return}f=n.ownerDocument||n,o=Rv(o),(u=gn.get(u))&&tf(o,u),f=f.createElement("link"),cs(f);var y=f;y._p=new Promise(function(_,z){y.onload=_,y.onerror=z}),js(f,"link",o),r.instance=f}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(r,n),(n=r.state.preload)&&(r.state.loading&3)===0&&(t.count++,r=Uc.bind(t),n.addEventListener("load",r),n.addEventListener("error",r))}}var nf=0;function H_(t,n){return t.stylesheets&&t.count===0&&Fc(t,t.stylesheets),0nf?50:800)+n);return t.unsuspend=r,function(){t.unsuspend=null,clearTimeout(o),clearTimeout(u)}}:null}function Uc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Fc(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Hc=null;function Fc(t,n){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Hc=new Map,n.forEach(F_,t),Hc=null,Uc.call(t))}function F_(t,n){if(!(n.state.loading&4)){var r=Hc.get(t);if(r)var o=r.get(null);else{r=new Map,Hc.set(t,r);for(var u=t.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(a){console.error(a)}}return s(),mf.exports=Z2(),mf.exports}var eC=J2();function Ry(s,a){return function(){return s.apply(a,arguments)}}const{toString:tC}=Object.prototype,{getPrototypeOf:yh}=Object,{iterator:Dd,toStringTag:zy}=Symbol,Od=(s=>a=>{const l=tC.call(a);return s[l]||(s[l]=l.slice(8,-1).toLowerCase())})(Object.create(null)),On=s=>(s=s.toLowerCase(),a=>Od(a)===s),Ad=s=>a=>typeof a===s,{isArray:Xr}=Array,Vr=Ad("undefined");function yo(s){return s!==null&&!Vr(s)&&s.constructor!==null&&!Vr(s.constructor)&&qs(s.constructor.isBuffer)&&s.constructor.isBuffer(s)}const Py=On("ArrayBuffer");function sC(s){let a;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?a=ArrayBuffer.isView(s):a=s&&s.buffer&&Py(s.buffer),a}const nC=Ad("string"),qs=Ad("function"),Ly=Ad("number"),bo=s=>s!==null&&typeof s=="object",aC=s=>s===!0||s===!1,id=s=>{if(Od(s)!=="object")return!1;const a=yh(s);return(a===null||a===Object.prototype||Object.getPrototypeOf(a)===null)&&!(zy in s)&&!(Dd in s)},lC=s=>{if(!bo(s)||yo(s))return!1;try{return Object.keys(s).length===0&&Object.getPrototypeOf(s)===Object.prototype}catch{return!1}},rC=On("Date"),iC=On("File"),oC=On("Blob"),cC=On("FileList"),dC=s=>bo(s)&&qs(s.pipe),uC=s=>{let a;return s&&(typeof FormData=="function"&&s instanceof FormData||qs(s.append)&&((a=Od(s))==="formdata"||a==="object"&&qs(s.toString)&&s.toString()==="[object FormData]"))},mC=On("URLSearchParams"),[fC,hC,xC,pC]=["ReadableStream","Request","Response","Headers"].map(On),gC=s=>s.trim?s.trim():s.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function No(s,a,{allOwnKeys:l=!1}={}){if(s===null||typeof s>"u")return;let i,c;if(typeof s!="object"&&(s=[s]),Xr(s))for(i=0,c=s.length;i0;)if(c=l[i],a===c.toLowerCase())return c;return null}const wl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Uy=s=>!Vr(s)&&s!==wl;function Uf(){const{caseless:s,skipUndefined:a}=Uy(this)&&this||{},l={},i=(c,d)=>{const m=s&&By(l,d)||d;id(l[m])&&id(c)?l[m]=Uf(l[m],c):id(c)?l[m]=Uf({},c):Xr(c)?l[m]=c.slice():(!a||!Vr(c))&&(l[m]=c)};for(let c=0,d=arguments.length;c(No(a,(c,d)=>{l&&qs(c)?s[d]=Ry(c,l):s[d]=c},{allOwnKeys:i}),s),jC=s=>(s.charCodeAt(0)===65279&&(s=s.slice(1)),s),yC=(s,a,l,i)=>{s.prototype=Object.create(a.prototype,i),s.prototype.constructor=s,Object.defineProperty(s,"super",{value:a.prototype}),l&&Object.assign(s.prototype,l)},bC=(s,a,l,i)=>{let c,d,m;const h={};if(a=a||{},s==null)return a;do{for(c=Object.getOwnPropertyNames(s),d=c.length;d-- >0;)m=c[d],(!i||i(m,s,a))&&!h[m]&&(a[m]=s[m],h[m]=!0);s=l!==!1&&yh(s)}while(s&&(!l||l(s,a))&&s!==Object.prototype);return a},NC=(s,a,l)=>{s=String(s),(l===void 0||l>s.length)&&(l=s.length),l-=a.length;const i=s.indexOf(a,l);return i!==-1&&i===l},wC=s=>{if(!s)return null;if(Xr(s))return s;let a=s.length;if(!Ly(a))return null;const l=new Array(a);for(;a-- >0;)l[a]=s[a];return l},SC=(s=>a=>s&&a instanceof s)(typeof Uint8Array<"u"&&yh(Uint8Array)),_C=(s,a)=>{const i=(s&&s[Dd]).call(s);let c;for(;(c=i.next())&&!c.done;){const d=c.value;a.call(s,d[0],d[1])}},CC=(s,a)=>{let l;const i=[];for(;(l=s.exec(a))!==null;)i.push(l);return i},kC=On("HTMLFormElement"),TC=s=>s.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(l,i,c){return i.toUpperCase()+c}),ij=(({hasOwnProperty:s})=>(a,l)=>s.call(a,l))(Object.prototype),EC=On("RegExp"),Hy=(s,a)=>{const l=Object.getOwnPropertyDescriptors(s),i={};No(l,(c,d)=>{let m;(m=a(c,d,s))!==!1&&(i[d]=m||c)}),Object.defineProperties(s,i)},MC=s=>{Hy(s,(a,l)=>{if(qs(s)&&["arguments","caller","callee"].indexOf(l)!==-1)return!1;const i=s[l];if(qs(i)){if(a.enumerable=!1,"writable"in a){a.writable=!1;return}a.set||(a.set=()=>{throw Error("Can not rewrite read-only method '"+l+"'")})}})},DC=(s,a)=>{const l={},i=c=>{c.forEach(d=>{l[d]=!0})};return Xr(s)?i(s):i(String(s).split(a)),l},OC=()=>{},AC=(s,a)=>s!=null&&Number.isFinite(s=+s)?s:a;function RC(s){return!!(s&&qs(s.append)&&s[zy]==="FormData"&&s[Dd])}const zC=s=>{const a=new Array(10),l=(i,c)=>{if(bo(i)){if(a.indexOf(i)>=0)return;if(yo(i))return i;if(!("toJSON"in i)){a[c]=i;const d=Xr(i)?[]:{};return No(i,(m,h)=>{const p=l(m,c+1);!Vr(p)&&(d[h]=p)}),a[c]=void 0,d}}return i};return l(s,0)},PC=On("AsyncFunction"),LC=s=>s&&(bo(s)||qs(s))&&qs(s.then)&&qs(s.catch),Fy=((s,a)=>s?setImmediate:a?((l,i)=>(wl.addEventListener("message",({source:c,data:d})=>{c===wl&&d===l&&i.length&&i.shift()()},!1),c=>{i.push(c),wl.postMessage(l,"*")}))(`axios@${Math.random()}`,[]):l=>setTimeout(l))(typeof setImmediate=="function",qs(wl.postMessage)),BC=typeof queueMicrotask<"u"?queueMicrotask.bind(wl):typeof process<"u"&&process.nextTick||Fy,UC=s=>s!=null&&qs(s[Dd]),te={isArray:Xr,isArrayBuffer:Py,isBuffer:yo,isFormData:uC,isArrayBufferView:sC,isString:nC,isNumber:Ly,isBoolean:aC,isObject:bo,isPlainObject:id,isEmptyObject:lC,isReadableStream:fC,isRequest:hC,isResponse:xC,isHeaders:pC,isUndefined:Vr,isDate:rC,isFile:iC,isBlob:oC,isRegExp:EC,isFunction:qs,isStream:dC,isURLSearchParams:mC,isTypedArray:SC,isFileList:cC,forEach:No,merge:Uf,extend:vC,trim:gC,stripBOM:jC,inherits:yC,toFlatObject:bC,kindOf:Od,kindOfTest:On,endsWith:NC,toArray:wC,forEachEntry:_C,matchAll:CC,isHTMLForm:kC,hasOwnProperty:ij,hasOwnProp:ij,reduceDescriptors:Hy,freezeMethods:MC,toObjectSet:DC,toCamelCase:TC,noop:OC,toFiniteNumber:AC,findKey:By,global:wl,isContextDefined:Uy,isSpecCompliantForm:RC,toJSONObject:zC,isAsyncFn:PC,isThenable:LC,setImmediate:Fy,asap:BC,isIterable:UC};function qe(s,a,l,i,c){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=s,this.name="AxiosError",a&&(this.code=a),l&&(this.config=l),i&&(this.request=i),c&&(this.response=c,this.status=c.status?c.status:null)}te.inherits(qe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:te.toJSONObject(this.config),code:this.code,status:this.status}}});const Yy=qe.prototype,qy={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(s=>{qy[s]={value:s}});Object.defineProperties(qe,qy);Object.defineProperty(Yy,"isAxiosError",{value:!0});qe.from=(s,a,l,i,c,d)=>{const m=Object.create(Yy);te.toFlatObject(s,m,function(g){return g!==Error.prototype},v=>v!=="isAxiosError");const h=s&&s.message?s.message:"Error",p=a==null&&s?s.code:a;return qe.call(m,h,p,l,i,c),s&&m.cause==null&&Object.defineProperty(m,"cause",{value:s,configurable:!0}),m.name=s&&s.name||"Error",d&&Object.assign(m,d),m};const HC=null;function Hf(s){return te.isPlainObject(s)||te.isArray(s)}function Vy(s){return te.endsWith(s,"[]")?s.slice(0,-2):s}function oj(s,a,l){return s?s.concat(a).map(function(c,d){return c=Vy(c),!l&&d?"["+c+"]":c}).join(l?".":""):a}function FC(s){return te.isArray(s)&&!s.some(Hf)}const YC=te.toFlatObject(te,{},null,function(a){return/^is[A-Z]/.test(a)});function Rd(s,a,l){if(!te.isObject(s))throw new TypeError("target must be an object");a=a||new FormData,l=te.toFlatObject(l,{metaTokens:!0,dots:!1,indexes:!1},!1,function(C,N){return!te.isUndefined(N[C])});const i=l.metaTokens,c=l.visitor||g,d=l.dots,m=l.indexes,p=(l.Blob||typeof Blob<"u"&&Blob)&&te.isSpecCompliantForm(a);if(!te.isFunction(c))throw new TypeError("visitor must be a function");function v(S){if(S===null)return"";if(te.isDate(S))return S.toISOString();if(te.isBoolean(S))return S.toString();if(!p&&te.isBlob(S))throw new qe("Blob is not supported. Use a Buffer instead.");return te.isArrayBuffer(S)||te.isTypedArray(S)?p&&typeof Blob=="function"?new Blob([S]):Buffer.from(S):S}function g(S,C,N){let T=S;if(S&&!N&&typeof S=="object"){if(te.endsWith(C,"{}"))C=i?C:C.slice(0,-2),S=JSON.stringify(S);else if(te.isArray(S)&&FC(S)||(te.isFileList(S)||te.endsWith(C,"[]"))&&(T=te.toArray(S)))return C=Vy(C),T.forEach(function(M,k){!(te.isUndefined(M)||M===null)&&a.append(m===!0?oj([C],k,d):m===null?C:C+"[]",v(M))}),!1}return Hf(S)?!0:(a.append(oj(N,C,d),v(S)),!1)}const j=[],b=Object.assign(YC,{defaultVisitor:g,convertValue:v,isVisitable:Hf});function w(S,C){if(!te.isUndefined(S)){if(j.indexOf(S)!==-1)throw Error("Circular reference detected in "+C.join("."));j.push(S),te.forEach(S,function(T,P){(!(te.isUndefined(T)||T===null)&&c.call(a,T,te.isString(P)?P.trim():P,C,b))===!0&&w(T,C?C.concat(P):[P])}),j.pop()}}if(!te.isObject(s))throw new TypeError("data must be an object");return w(s),a}function cj(s){const a={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(s).replace(/[!'()~]|%20|%00/g,function(i){return a[i]})}function bh(s,a){this._pairs=[],s&&Rd(s,this,a)}const Gy=bh.prototype;Gy.append=function(a,l){this._pairs.push([a,l])};Gy.toString=function(a){const l=a?function(i){return a.call(this,i,cj)}:cj;return this._pairs.map(function(c){return l(c[0])+"="+l(c[1])},"").join("&")};function qC(s){return encodeURIComponent(s).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function $y(s,a,l){if(!a)return s;const i=l&&l.encode||qC;te.isFunction(l)&&(l={serialize:l});const c=l&&l.serialize;let d;if(c?d=c(a,l):d=te.isURLSearchParams(a)?a.toString():new bh(a,l).toString(i),d){const m=s.indexOf("#");m!==-1&&(s=s.slice(0,m)),s+=(s.indexOf("?")===-1?"?":"&")+d}return s}class dj{constructor(){this.handlers=[]}use(a,l,i){return this.handlers.push({fulfilled:a,rejected:l,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(a){this.handlers[a]&&(this.handlers[a]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(a){te.forEach(this.handlers,function(i){i!==null&&a(i)})}}const Iy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},VC=typeof URLSearchParams<"u"?URLSearchParams:bh,GC=typeof FormData<"u"?FormData:null,$C=typeof Blob<"u"?Blob:null,IC={isBrowser:!0,classes:{URLSearchParams:VC,FormData:GC,Blob:$C},protocols:["http","https","file","blob","url","data"]},Nh=typeof window<"u"&&typeof document<"u",Ff=typeof navigator=="object"&&navigator||void 0,WC=Nh&&(!Ff||["ReactNative","NativeScript","NS"].indexOf(Ff.product)<0),XC=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",KC=Nh&&window.location.href||"http://localhost",QC=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Nh,hasStandardBrowserEnv:WC,hasStandardBrowserWebWorkerEnv:XC,navigator:Ff,origin:KC},Symbol.toStringTag,{value:"Module"})),Ss={...QC,...IC};function ZC(s,a){return Rd(s,new Ss.classes.URLSearchParams,{visitor:function(l,i,c,d){return Ss.isNode&&te.isBuffer(l)?(this.append(i,l.toString("base64")),!1):d.defaultVisitor.apply(this,arguments)},...a})}function JC(s){return te.matchAll(/\w+|\[(\w*)]/g,s).map(a=>a[0]==="[]"?"":a[1]||a[0])}function ek(s){const a={},l=Object.keys(s);let i;const c=l.length;let d;for(i=0;i=l.length;return m=!m&&te.isArray(c)?c.length:m,p?(te.hasOwnProp(c,m)?c[m]=[c[m],i]:c[m]=i,!h):((!c[m]||!te.isObject(c[m]))&&(c[m]=[]),a(l,i,c[m],d)&&te.isArray(c[m])&&(c[m]=ek(c[m])),!h)}if(te.isFormData(s)&&te.isFunction(s.entries)){const l={};return te.forEachEntry(s,(i,c)=>{a(JC(i),c,l,0)}),l}return null}function tk(s,a,l){if(te.isString(s))try{return(a||JSON.parse)(s),te.trim(s)}catch(i){if(i.name!=="SyntaxError")throw i}return(l||JSON.stringify)(s)}const wo={transitional:Iy,adapter:["xhr","http","fetch"],transformRequest:[function(a,l){const i=l.getContentType()||"",c=i.indexOf("application/json")>-1,d=te.isObject(a);if(d&&te.isHTMLForm(a)&&(a=new FormData(a)),te.isFormData(a))return c?JSON.stringify(Wy(a)):a;if(te.isArrayBuffer(a)||te.isBuffer(a)||te.isStream(a)||te.isFile(a)||te.isBlob(a)||te.isReadableStream(a))return a;if(te.isArrayBufferView(a))return a.buffer;if(te.isURLSearchParams(a))return l.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),a.toString();let h;if(d){if(i.indexOf("application/x-www-form-urlencoded")>-1)return ZC(a,this.formSerializer).toString();if((h=te.isFileList(a))||i.indexOf("multipart/form-data")>-1){const p=this.env&&this.env.FormData;return Rd(h?{"files[]":a}:a,p&&new p,this.formSerializer)}}return d||c?(l.setContentType("application/json",!1),tk(a)):a}],transformResponse:[function(a){const l=this.transitional||wo.transitional,i=l&&l.forcedJSONParsing,c=this.responseType==="json";if(te.isResponse(a)||te.isReadableStream(a))return a;if(a&&te.isString(a)&&(i&&!this.responseType||c)){const m=!(l&&l.silentJSONParsing)&&c;try{return JSON.parse(a,this.parseReviver)}catch(h){if(m)throw h.name==="SyntaxError"?qe.from(h,qe.ERR_BAD_RESPONSE,this,null,this.response):h}}return a}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ss.classes.FormData,Blob:Ss.classes.Blob},validateStatus:function(a){return a>=200&&a<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};te.forEach(["delete","get","head","post","put","patch"],s=>{wo.headers[s]={}});const sk=te.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),nk=s=>{const a={};let l,i,c;return s&&s.split(` +`).forEach(function(m){c=m.indexOf(":"),l=m.substring(0,c).trim().toLowerCase(),i=m.substring(c+1).trim(),!(!l||a[l]&&sk[l])&&(l==="set-cookie"?a[l]?a[l].push(i):a[l]=[i]:a[l]=a[l]?a[l]+", "+i:i)}),a},uj=Symbol("internals");function Xi(s){return s&&String(s).trim().toLowerCase()}function od(s){return s===!1||s==null?s:te.isArray(s)?s.map(od):String(s)}function ak(s){const a=Object.create(null),l=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=l.exec(s);)a[i[1]]=i[2];return a}const lk=s=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(s.trim());function xf(s,a,l,i,c){if(te.isFunction(i))return i.call(this,a,l);if(c&&(a=l),!!te.isString(a)){if(te.isString(i))return a.indexOf(i)!==-1;if(te.isRegExp(i))return i.test(a)}}function rk(s){return s.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(a,l,i)=>l.toUpperCase()+i)}function ik(s,a){const l=te.toCamelCase(" "+a);["get","set","has"].forEach(i=>{Object.defineProperty(s,i+l,{value:function(c,d,m){return this[i].call(this,a,c,d,m)},configurable:!0})})}let Vs=class{constructor(a){a&&this.set(a)}set(a,l,i){const c=this;function d(h,p,v){const g=Xi(p);if(!g)throw new Error("header name must be a non-empty string");const j=te.findKey(c,g);(!j||c[j]===void 0||v===!0||v===void 0&&c[j]!==!1)&&(c[j||p]=od(h))}const m=(h,p)=>te.forEach(h,(v,g)=>d(v,g,p));if(te.isPlainObject(a)||a instanceof this.constructor)m(a,l);else if(te.isString(a)&&(a=a.trim())&&!lk(a))m(nk(a),l);else if(te.isObject(a)&&te.isIterable(a)){let h={},p,v;for(const g of a){if(!te.isArray(g))throw TypeError("Object iterator must return a key-value pair");h[v=g[0]]=(p=h[v])?te.isArray(p)?[...p,g[1]]:[p,g[1]]:g[1]}m(h,l)}else a!=null&&d(l,a,i);return this}get(a,l){if(a=Xi(a),a){const i=te.findKey(this,a);if(i){const c=this[i];if(!l)return c;if(l===!0)return ak(c);if(te.isFunction(l))return l.call(this,c,i);if(te.isRegExp(l))return l.exec(c);throw new TypeError("parser must be boolean|regexp|function")}}}has(a,l){if(a=Xi(a),a){const i=te.findKey(this,a);return!!(i&&this[i]!==void 0&&(!l||xf(this,this[i],i,l)))}return!1}delete(a,l){const i=this;let c=!1;function d(m){if(m=Xi(m),m){const h=te.findKey(i,m);h&&(!l||xf(i,i[h],h,l))&&(delete i[h],c=!0)}}return te.isArray(a)?a.forEach(d):d(a),c}clear(a){const l=Object.keys(this);let i=l.length,c=!1;for(;i--;){const d=l[i];(!a||xf(this,this[d],d,a,!0))&&(delete this[d],c=!0)}return c}normalize(a){const l=this,i={};return te.forEach(this,(c,d)=>{const m=te.findKey(i,d);if(m){l[m]=od(c),delete l[d];return}const h=a?rk(d):String(d).trim();h!==d&&delete l[d],l[h]=od(c),i[h]=!0}),this}concat(...a){return this.constructor.concat(this,...a)}toJSON(a){const l=Object.create(null);return te.forEach(this,(i,c)=>{i!=null&&i!==!1&&(l[c]=a&&te.isArray(i)?i.join(", "):i)}),l}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([a,l])=>a+": "+l).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(a){return a instanceof this?a:new this(a)}static concat(a,...l){const i=new this(a);return l.forEach(c=>i.set(c)),i}static accessor(a){const i=(this[uj]=this[uj]={accessors:{}}).accessors,c=this.prototype;function d(m){const h=Xi(m);i[h]||(ik(c,m),i[h]=!0)}return te.isArray(a)?a.forEach(d):d(a),this}};Vs.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);te.reduceDescriptors(Vs.prototype,({value:s},a)=>{let l=a[0].toUpperCase()+a.slice(1);return{get:()=>s,set(i){this[l]=i}}});te.freezeMethods(Vs);function pf(s,a){const l=this||wo,i=a||l,c=Vs.from(i.headers);let d=i.data;return te.forEach(s,function(h){d=h.call(l,d,c.normalize(),a?a.status:void 0)}),c.normalize(),d}function Xy(s){return!!(s&&s.__CANCEL__)}function Kr(s,a,l){qe.call(this,s??"canceled",qe.ERR_CANCELED,a,l),this.name="CanceledError"}te.inherits(Kr,qe,{__CANCEL__:!0});function Ky(s,a,l){const i=l.config.validateStatus;!l.status||!i||i(l.status)?s(l):a(new qe("Request failed with status code "+l.status,[qe.ERR_BAD_REQUEST,qe.ERR_BAD_RESPONSE][Math.floor(l.status/100)-4],l.config,l.request,l))}function ok(s){const a=/^([-+\w]{1,25})(:?\/\/|:)/.exec(s);return a&&a[1]||""}function ck(s,a){s=s||10;const l=new Array(s),i=new Array(s);let c=0,d=0,m;return a=a!==void 0?a:1e3,function(p){const v=Date.now(),g=i[d];m||(m=v),l[c]=p,i[c]=v;let j=d,b=0;for(;j!==c;)b+=l[j++],j=j%s;if(c=(c+1)%s,c===d&&(d=(d+1)%s),v-m{l=g,c=null,d&&(clearTimeout(d),d=null),s(...v)};return[(...v)=>{const g=Date.now(),j=g-l;j>=i?m(v,g):(c=v,d||(d=setTimeout(()=>{d=null,m(c)},i-j)))},()=>c&&m(c)]}const gd=(s,a,l=3)=>{let i=0;const c=ck(50,250);return dk(d=>{const m=d.loaded,h=d.lengthComputable?d.total:void 0,p=m-i,v=c(p),g=m<=h;i=m;const j={loaded:m,total:h,progress:h?m/h:void 0,bytes:p,rate:v||void 0,estimated:v&&h&&g?(h-m)/v:void 0,event:d,lengthComputable:h!=null,[a?"download":"upload"]:!0};s(j)},l)},mj=(s,a)=>{const l=s!=null;return[i=>a[0]({lengthComputable:l,total:s,loaded:i}),a[1]]},fj=s=>(...a)=>te.asap(()=>s(...a)),uk=Ss.hasStandardBrowserEnv?((s,a)=>l=>(l=new URL(l,Ss.origin),s.protocol===l.protocol&&s.host===l.host&&(a||s.port===l.port)))(new URL(Ss.origin),Ss.navigator&&/(msie|trident)/i.test(Ss.navigator.userAgent)):()=>!0,mk=Ss.hasStandardBrowserEnv?{write(s,a,l,i,c,d,m){if(typeof document>"u")return;const h=[`${s}=${encodeURIComponent(a)}`];te.isNumber(l)&&h.push(`expires=${new Date(l).toUTCString()}`),te.isString(i)&&h.push(`path=${i}`),te.isString(c)&&h.push(`domain=${c}`),d===!0&&h.push("secure"),te.isString(m)&&h.push(`SameSite=${m}`),document.cookie=h.join("; ")},read(s){if(typeof document>"u")return null;const a=document.cookie.match(new RegExp("(?:^|; )"+s+"=([^;]*)"));return a?decodeURIComponent(a[1]):null},remove(s){this.write(s,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function fk(s){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(s)}function hk(s,a){return a?s.replace(/\/?\/$/,"")+"/"+a.replace(/^\/+/,""):s}function Qy(s,a,l){let i=!fk(a);return s&&(i||l==!1)?hk(s,a):a}const hj=s=>s instanceof Vs?{...s}:s;function El(s,a){a=a||{};const l={};function i(v,g,j,b){return te.isPlainObject(v)&&te.isPlainObject(g)?te.merge.call({caseless:b},v,g):te.isPlainObject(g)?te.merge({},g):te.isArray(g)?g.slice():g}function c(v,g,j,b){if(te.isUndefined(g)){if(!te.isUndefined(v))return i(void 0,v,j,b)}else return i(v,g,j,b)}function d(v,g){if(!te.isUndefined(g))return i(void 0,g)}function m(v,g){if(te.isUndefined(g)){if(!te.isUndefined(v))return i(void 0,v)}else return i(void 0,g)}function h(v,g,j){if(j in a)return i(v,g);if(j in s)return i(void 0,v)}const p={url:d,method:d,data:d,baseURL:m,transformRequest:m,transformResponse:m,paramsSerializer:m,timeout:m,timeoutMessage:m,withCredentials:m,withXSRFToken:m,adapter:m,responseType:m,xsrfCookieName:m,xsrfHeaderName:m,onUploadProgress:m,onDownloadProgress:m,decompress:m,maxContentLength:m,maxBodyLength:m,beforeRedirect:m,transport:m,httpAgent:m,httpsAgent:m,cancelToken:m,socketPath:m,responseEncoding:m,validateStatus:h,headers:(v,g,j)=>c(hj(v),hj(g),j,!0)};return te.forEach(Object.keys({...s,...a}),function(g){const j=p[g]||c,b=j(s[g],a[g],g);te.isUndefined(b)&&j!==h||(l[g]=b)}),l}const Zy=s=>{const a=El({},s);let{data:l,withXSRFToken:i,xsrfHeaderName:c,xsrfCookieName:d,headers:m,auth:h}=a;if(a.headers=m=Vs.from(m),a.url=$y(Qy(a.baseURL,a.url,a.allowAbsoluteUrls),s.params,s.paramsSerializer),h&&m.set("Authorization","Basic "+btoa((h.username||"")+":"+(h.password?unescape(encodeURIComponent(h.password)):""))),te.isFormData(l)){if(Ss.hasStandardBrowserEnv||Ss.hasStandardBrowserWebWorkerEnv)m.setContentType(void 0);else if(te.isFunction(l.getHeaders)){const p=l.getHeaders(),v=["content-type","content-length"];Object.entries(p).forEach(([g,j])=>{v.includes(g.toLowerCase())&&m.set(g,j)})}}if(Ss.hasStandardBrowserEnv&&(i&&te.isFunction(i)&&(i=i(a)),i||i!==!1&&uk(a.url))){const p=c&&d&&mk.read(d);p&&m.set(c,p)}return a},xk=typeof XMLHttpRequest<"u",pk=xk&&function(s){return new Promise(function(l,i){const c=Zy(s);let d=c.data;const m=Vs.from(c.headers).normalize();let{responseType:h,onUploadProgress:p,onDownloadProgress:v}=c,g,j,b,w,S;function C(){w&&w(),S&&S(),c.cancelToken&&c.cancelToken.unsubscribe(g),c.signal&&c.signal.removeEventListener("abort",g)}let N=new XMLHttpRequest;N.open(c.method.toUpperCase(),c.url,!0),N.timeout=c.timeout;function T(){if(!N)return;const M=Vs.from("getAllResponseHeaders"in N&&N.getAllResponseHeaders()),D={data:!h||h==="text"||h==="json"?N.responseText:N.response,status:N.status,statusText:N.statusText,headers:M,config:s,request:N};Ky(function(E){l(E),C()},function(E){i(E),C()},D),N=null}"onloadend"in N?N.onloadend=T:N.onreadystatechange=function(){!N||N.readyState!==4||N.status===0&&!(N.responseURL&&N.responseURL.indexOf("file:")===0)||setTimeout(T)},N.onabort=function(){N&&(i(new qe("Request aborted",qe.ECONNABORTED,s,N)),N=null)},N.onerror=function(k){const D=k&&k.message?k.message:"Network Error",A=new qe(D,qe.ERR_NETWORK,s,N);A.event=k||null,i(A),N=null},N.ontimeout=function(){let k=c.timeout?"timeout of "+c.timeout+"ms exceeded":"timeout exceeded";const D=c.transitional||Iy;c.timeoutErrorMessage&&(k=c.timeoutErrorMessage),i(new qe(k,D.clarifyTimeoutError?qe.ETIMEDOUT:qe.ECONNABORTED,s,N)),N=null},d===void 0&&m.setContentType(null),"setRequestHeader"in N&&te.forEach(m.toJSON(),function(k,D){N.setRequestHeader(D,k)}),te.isUndefined(c.withCredentials)||(N.withCredentials=!!c.withCredentials),h&&h!=="json"&&(N.responseType=c.responseType),v&&([b,S]=gd(v,!0),N.addEventListener("progress",b)),p&&N.upload&&([j,w]=gd(p),N.upload.addEventListener("progress",j),N.upload.addEventListener("loadend",w)),(c.cancelToken||c.signal)&&(g=M=>{N&&(i(!M||M.type?new Kr(null,s,N):M),N.abort(),N=null)},c.cancelToken&&c.cancelToken.subscribe(g),c.signal&&(c.signal.aborted?g():c.signal.addEventListener("abort",g)));const P=ok(c.url);if(P&&Ss.protocols.indexOf(P)===-1){i(new qe("Unsupported protocol "+P+":",qe.ERR_BAD_REQUEST,s));return}N.send(d||null)})},gk=(s,a)=>{const{length:l}=s=s?s.filter(Boolean):[];if(a||l){let i=new AbortController,c;const d=function(v){if(!c){c=!0,h();const g=v instanceof Error?v:this.reason;i.abort(g instanceof qe?g:new Kr(g instanceof Error?g.message:g))}};let m=a&&setTimeout(()=>{m=null,d(new qe(`timeout ${a} of ms exceeded`,qe.ETIMEDOUT))},a);const h=()=>{s&&(m&&clearTimeout(m),m=null,s.forEach(v=>{v.unsubscribe?v.unsubscribe(d):v.removeEventListener("abort",d)}),s=null)};s.forEach(v=>v.addEventListener("abort",d));const{signal:p}=i;return p.unsubscribe=()=>te.asap(h),p}},vk=function*(s,a){let l=s.byteLength;if(l{const c=jk(s,a);let d=0,m,h=p=>{m||(m=!0,i&&i(p))};return new ReadableStream({async pull(p){try{const{done:v,value:g}=await c.next();if(v){h(),p.close();return}let j=g.byteLength;if(l){let b=d+=j;l(b)}p.enqueue(new Uint8Array(g))}catch(v){throw h(v),v}},cancel(p){return h(p),c.return()}},{highWaterMark:2})},pj=64*1024,{isFunction:Zc}=te,bk=(({Request:s,Response:a})=>({Request:s,Response:a}))(te.global),{ReadableStream:gj,TextEncoder:vj}=te.global,jj=(s,...a)=>{try{return!!s(...a)}catch{return!1}},Nk=s=>{s=te.merge.call({skipUndefined:!0},bk,s);const{fetch:a,Request:l,Response:i}=s,c=a?Zc(a):typeof fetch=="function",d=Zc(l),m=Zc(i);if(!c)return!1;const h=c&&Zc(gj),p=c&&(typeof vj=="function"?(S=>C=>S.encode(C))(new vj):async S=>new Uint8Array(await new l(S).arrayBuffer())),v=d&&h&&jj(()=>{let S=!1;const C=new l(Ss.origin,{body:new gj,method:"POST",get duplex(){return S=!0,"half"}}).headers.has("Content-Type");return S&&!C}),g=m&&h&&jj(()=>te.isReadableStream(new i("").body)),j={stream:g&&(S=>S.body)};c&&["text","arrayBuffer","blob","formData","stream"].forEach(S=>{!j[S]&&(j[S]=(C,N)=>{let T=C&&C[S];if(T)return T.call(C);throw new qe(`Response type '${S}' is not supported`,qe.ERR_NOT_SUPPORT,N)})});const b=async S=>{if(S==null)return 0;if(te.isBlob(S))return S.size;if(te.isSpecCompliantForm(S))return(await new l(Ss.origin,{method:"POST",body:S}).arrayBuffer()).byteLength;if(te.isArrayBufferView(S)||te.isArrayBuffer(S))return S.byteLength;if(te.isURLSearchParams(S)&&(S=S+""),te.isString(S))return(await p(S)).byteLength},w=async(S,C)=>{const N=te.toFiniteNumber(S.getContentLength());return N??b(C)};return async S=>{let{url:C,method:N,data:T,signal:P,cancelToken:M,timeout:k,onDownloadProgress:D,onUploadProgress:A,responseType:E,headers:B,withCredentials:Y="same-origin",fetchOptions:G}=Zy(S),$=a||fetch;E=E?(E+"").toLowerCase():"text";let oe=gk([P,M&&M.toAbortSignal()],k),je=null;const ae=oe&&oe.unsubscribe&&(()=>{oe.unsubscribe()});let me;try{if(A&&v&&N!=="get"&&N!=="head"&&(me=await w(B,T))!==0){let xe=new l(C,{method:"POST",body:T,duplex:"half"}),F;if(te.isFormData(T)&&(F=xe.headers.get("content-type"))&&B.setContentType(F),xe.body){const[W,fe]=mj(me,gd(fj(A)));T=xj(xe.body,pj,W,fe)}}te.isString(Y)||(Y=Y?"include":"omit");const R=d&&"credentials"in l.prototype,O={...G,signal:oe,method:N.toUpperCase(),headers:B.normalize().toJSON(),body:T,duplex:"half",credentials:R?Y:void 0};je=d&&new l(C,O);let L=await(d?$(je,G):$(C,O));const ee=g&&(E==="stream"||E==="response");if(g&&(D||ee&&ae)){const xe={};["status","statusText","headers"].forEach(I=>{xe[I]=L[I]});const F=te.toFiniteNumber(L.headers.get("content-length")),[W,fe]=D&&mj(F,gd(fj(D),!0))||[];L=new i(xj(L.body,pj,W,()=>{fe&&fe(),ae&&ae()}),xe)}E=E||"text";let le=await j[te.findKey(j,E)||"text"](L,S);return!ee&&ae&&ae(),await new Promise((xe,F)=>{Ky(xe,F,{data:le,headers:Vs.from(L.headers),status:L.status,statusText:L.statusText,config:S,request:je})})}catch(R){throw ae&&ae(),R&&R.name==="TypeError"&&/Load failed|fetch/i.test(R.message)?Object.assign(new qe("Network Error",qe.ERR_NETWORK,S,je),{cause:R.cause||R}):qe.from(R,R&&R.code,S,je)}}},wk=new Map,Jy=s=>{let a=s&&s.env||{};const{fetch:l,Request:i,Response:c}=a,d=[i,c,l];let m=d.length,h=m,p,v,g=wk;for(;h--;)p=d[h],v=g.get(p),v===void 0&&g.set(p,v=h?new Map:Nk(a)),g=v;return v};Jy();const wh={http:HC,xhr:pk,fetch:{get:Jy}};te.forEach(wh,(s,a)=>{if(s){try{Object.defineProperty(s,"name",{value:a})}catch{}Object.defineProperty(s,"adapterName",{value:a})}});const yj=s=>`- ${s}`,Sk=s=>te.isFunction(s)||s===null||s===!1;function _k(s,a){s=te.isArray(s)?s:[s];const{length:l}=s;let i,c;const d={};for(let m=0;m`adapter ${p} `+(v===!1?"is not supported by the environment":"is not available in the build"));let h=l?m.length>1?`since : +`+m.map(yj).join(` +`):" "+yj(m[0]):"as no adapter specified";throw new qe("There is no suitable adapter to dispatch the request "+h,"ERR_NOT_SUPPORT")}return c}const eb={getAdapter:_k,adapters:wh};function gf(s){if(s.cancelToken&&s.cancelToken.throwIfRequested(),s.signal&&s.signal.aborted)throw new Kr(null,s)}function bj(s){return gf(s),s.headers=Vs.from(s.headers),s.data=pf.call(s,s.transformRequest),["post","put","patch"].indexOf(s.method)!==-1&&s.headers.setContentType("application/x-www-form-urlencoded",!1),eb.getAdapter(s.adapter||wo.adapter,s)(s).then(function(i){return gf(s),i.data=pf.call(s,s.transformResponse,i),i.headers=Vs.from(i.headers),i},function(i){return Xy(i)||(gf(s),i&&i.response&&(i.response.data=pf.call(s,s.transformResponse,i.response),i.response.headers=Vs.from(i.response.headers))),Promise.reject(i)})}const tb="1.13.2",zd={};["object","boolean","number","function","string","symbol"].forEach((s,a)=>{zd[s]=function(i){return typeof i===s||"a"+(a<1?"n ":" ")+s}});const Nj={};zd.transitional=function(a,l,i){function c(d,m){return"[Axios v"+tb+"] Transitional option '"+d+"'"+m+(i?". "+i:"")}return(d,m,h)=>{if(a===!1)throw new qe(c(m," has been removed"+(l?" in "+l:"")),qe.ERR_DEPRECATED);return l&&!Nj[m]&&(Nj[m]=!0,console.warn(c(m," has been deprecated since v"+l+" and will be removed in the near future"))),a?a(d,m,h):!0}};zd.spelling=function(a){return(l,i)=>(console.warn(`${i} is likely a misspelling of ${a}`),!0)};function Ck(s,a,l){if(typeof s!="object")throw new qe("options must be an object",qe.ERR_BAD_OPTION_VALUE);const i=Object.keys(s);let c=i.length;for(;c-- >0;){const d=i[c],m=a[d];if(m){const h=s[d],p=h===void 0||m(h,d,s);if(p!==!0)throw new qe("option "+d+" must be "+p,qe.ERR_BAD_OPTION_VALUE);continue}if(l!==!0)throw new qe("Unknown option "+d,qe.ERR_BAD_OPTION)}}const cd={assertOptions:Ck,validators:zd},Bn=cd.validators;let kl=class{constructor(a){this.defaults=a||{},this.interceptors={request:new dj,response:new dj}}async request(a,l){try{return await this._request(a,l)}catch(i){if(i instanceof Error){let c={};Error.captureStackTrace?Error.captureStackTrace(c):c=new Error;const d=c.stack?c.stack.replace(/^.+\n/,""):"";try{i.stack?d&&!String(i.stack).endsWith(d.replace(/^.+\n.+\n/,""))&&(i.stack+=` +`+d):i.stack=d}catch{}}throw i}}_request(a,l){typeof a=="string"?(l=l||{},l.url=a):l=a||{},l=El(this.defaults,l);const{transitional:i,paramsSerializer:c,headers:d}=l;i!==void 0&&cd.assertOptions(i,{silentJSONParsing:Bn.transitional(Bn.boolean),forcedJSONParsing:Bn.transitional(Bn.boolean),clarifyTimeoutError:Bn.transitional(Bn.boolean)},!1),c!=null&&(te.isFunction(c)?l.paramsSerializer={serialize:c}:cd.assertOptions(c,{encode:Bn.function,serialize:Bn.function},!0)),l.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?l.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:l.allowAbsoluteUrls=!0),cd.assertOptions(l,{baseUrl:Bn.spelling("baseURL"),withXsrfToken:Bn.spelling("withXSRFToken")},!0),l.method=(l.method||this.defaults.method||"get").toLowerCase();let m=d&&te.merge(d.common,d[l.method]);d&&te.forEach(["delete","get","head","post","put","patch","common"],S=>{delete d[S]}),l.headers=Vs.concat(m,d);const h=[];let p=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(l)===!1||(p=p&&C.synchronous,h.unshift(C.fulfilled,C.rejected))});const v=[];this.interceptors.response.forEach(function(C){v.push(C.fulfilled,C.rejected)});let g,j=0,b;if(!p){const S=[bj.bind(this),void 0];for(S.unshift(...h),S.push(...v),b=S.length,g=Promise.resolve(l);j{if(!i._listeners)return;let d=i._listeners.length;for(;d-- >0;)i._listeners[d](c);i._listeners=null}),this.promise.then=c=>{let d;const m=new Promise(h=>{i.subscribe(h),d=h}).then(c);return m.cancel=function(){i.unsubscribe(d)},m},a(function(d,m,h){i.reason||(i.reason=new Kr(d,m,h),l(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(a){if(this.reason){a(this.reason);return}this._listeners?this._listeners.push(a):this._listeners=[a]}unsubscribe(a){if(!this._listeners)return;const l=this._listeners.indexOf(a);l!==-1&&this._listeners.splice(l,1)}toAbortSignal(){const a=new AbortController,l=i=>{a.abort(i)};return this.subscribe(l),a.signal.unsubscribe=()=>this.unsubscribe(l),a.signal}static source(){let a;return{token:new sb(function(c){a=c}),cancel:a}}};function Tk(s){return function(l){return s.apply(null,l)}}function Ek(s){return te.isObject(s)&&s.isAxiosError===!0}const Yf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Yf).forEach(([s,a])=>{Yf[a]=s});function nb(s){const a=new kl(s),l=Ry(kl.prototype.request,a);return te.extend(l,kl.prototype,a,{allOwnKeys:!0}),te.extend(l,a,null,{allOwnKeys:!0}),l.create=function(c){return nb(El(s,c))},l}const $t=nb(wo);$t.Axios=kl;$t.CanceledError=Kr;$t.CancelToken=kk;$t.isCancel=Xy;$t.VERSION=tb;$t.toFormData=Rd;$t.AxiosError=qe;$t.Cancel=$t.CanceledError;$t.all=function(a){return Promise.all(a)};$t.spread=Tk;$t.isAxiosError=Ek;$t.mergeConfig=El;$t.AxiosHeaders=Vs;$t.formToJSON=s=>Wy(te.isHTMLForm(s)?new FormData(s):s);$t.getAdapter=eb.getAdapter;$t.HttpStatusCode=Yf;$t.default=$t;const{Axios:c6,AxiosError:d6,CanceledError:u6,isCancel:m6,CancelToken:f6,VERSION:h6,all:x6,Cancel:p6,isAxiosError:g6,spread:v6,toFormData:j6,AxiosHeaders:y6,HttpStatusCode:b6,formToJSON:N6,getAdapter:w6,mergeConfig:S6}=$t,Mk=(s,a)=>{const l=new Array(s.length+a.length);for(let i=0;i({classGroupId:s,validator:a}),ab=(s=new Map,a=null,l)=>({nextPart:s,validators:a,classGroupId:l}),vd="-",wj=[],Ok="arbitrary..",Ak=s=>{const a=zk(s),{conflictingClassGroups:l,conflictingClassGroupModifiers:i}=s;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return Rk(m);const h=m.split(vd),p=h[0]===""&&h.length>1?1:0;return lb(h,p,a)},getConflictingClassGroupIds:(m,h)=>{if(h){const p=i[m],v=l[m];return p?v?Mk(v,p):p:v||wj}return l[m]||wj}}},lb=(s,a,l)=>{if(s.length-a===0)return l.classGroupId;const c=s[a],d=l.nextPart.get(c);if(d){const v=lb(s,a+1,d);if(v)return v}const m=l.validators;if(m===null)return;const h=a===0?s.join(vd):s.slice(a).join(vd),p=m.length;for(let v=0;vs.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=s.slice(1,-1),l=a.indexOf(":"),i=a.slice(0,l);return i?Ok+i:void 0})(),zk=s=>{const{theme:a,classGroups:l}=s;return Pk(l,a)},Pk=(s,a)=>{const l=ab();for(const i in s){const c=s[i];Sh(c,l,i,a)}return l},Sh=(s,a,l,i)=>{const c=s.length;for(let d=0;d{if(typeof s=="string"){Bk(s,a,l);return}if(typeof s=="function"){Uk(s,a,l,i);return}Hk(s,a,l,i)},Bk=(s,a,l)=>{const i=s===""?a:rb(a,s);i.classGroupId=l},Uk=(s,a,l,i)=>{if(Fk(s)){Sh(s(i),a,l,i);return}a.validators===null&&(a.validators=[]),a.validators.push(Dk(l,s))},Hk=(s,a,l,i)=>{const c=Object.entries(s),d=c.length;for(let m=0;m{let l=s;const i=a.split(vd),c=i.length;for(let d=0;d"isThemeGetter"in s&&s.isThemeGetter===!0,Yk=s=>{if(s<1)return{get:()=>{},set:()=>{}};let a=0,l=Object.create(null),i=Object.create(null);const c=(d,m)=>{l[d]=m,a++,a>s&&(a=0,i=l,l=Object.create(null))};return{get(d){let m=l[d];if(m!==void 0)return m;if((m=i[d])!==void 0)return c(d,m),m},set(d,m){d in l?l[d]=m:c(d,m)}}},qf="!",Sj=":",qk=[],_j=(s,a,l,i,c)=>({modifiers:s,hasImportantModifier:a,baseClassName:l,maybePostfixModifierPosition:i,isExternal:c}),Vk=s=>{const{prefix:a,experimentalParseClassName:l}=s;let i=c=>{const d=[];let m=0,h=0,p=0,v;const g=c.length;for(let C=0;Cp?v-p:void 0;return _j(d,w,b,S)};if(a){const c=a+Sj,d=i;i=m=>m.startsWith(c)?d(m.slice(c.length)):_j(qk,!1,m,void 0,!0)}if(l){const c=i;i=d=>l({className:d,parseClassName:c})}return i},Gk=s=>{const a=new Map;return s.orderSensitiveModifiers.forEach((l,i)=>{a.set(l,1e6+i)}),l=>{const i=[];let c=[];for(let d=0;d0&&(c.sort(),i.push(...c),c=[]),i.push(m)):c.push(m)}return c.length>0&&(c.sort(),i.push(...c)),i}},$k=s=>({cache:Yk(s.cacheSize),parseClassName:Vk(s),sortModifiers:Gk(s),...Ak(s)}),Ik=/\s+/,Wk=(s,a)=>{const{parseClassName:l,getClassGroupId:i,getConflictingClassGroupIds:c,sortModifiers:d}=a,m=[],h=s.trim().split(Ik);let p="";for(let v=h.length-1;v>=0;v-=1){const g=h[v],{isExternal:j,modifiers:b,hasImportantModifier:w,baseClassName:S,maybePostfixModifierPosition:C}=l(g);if(j){p=g+(p.length>0?" "+p:p);continue}let N=!!C,T=i(N?S.substring(0,C):S);if(!T){if(!N){p=g+(p.length>0?" "+p:p);continue}if(T=i(S),!T){p=g+(p.length>0?" "+p:p);continue}N=!1}const P=b.length===0?"":b.length===1?b[0]:d(b).join(":"),M=w?P+qf:P,k=M+T;if(m.indexOf(k)>-1)continue;m.push(k);const D=c(T,N);for(let A=0;A0?" "+p:p)}return p},Xk=(...s)=>{let a=0,l,i,c="";for(;a{if(typeof s=="string")return s;let a,l="";for(let i=0;i{let l,i,c,d;const m=p=>{const v=a.reduce((g,j)=>j(g),s());return l=$k(v),i=l.cache.get,c=l.cache.set,d=h,h(p)},h=p=>{const v=i(p);if(v)return v;const g=Wk(p,l);return c(p,g),g};return d=m,(...p)=>d(Xk(...p))},Qk=[],rs=s=>{const a=l=>l[s]||Qk;return a.isThemeGetter=!0,a},ob=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,cb=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Zk=/^\d+\/\d+$/,Jk=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eT=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,tT=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,sT=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,nT=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Tr=s=>Zk.test(s),Ke=s=>!!s&&!Number.isNaN(Number(s)),qa=s=>!!s&&Number.isInteger(Number(s)),vf=s=>s.endsWith("%")&&Ke(s.slice(0,-1)),ua=s=>Jk.test(s),aT=()=>!0,lT=s=>eT.test(s)&&!tT.test(s),db=()=>!1,rT=s=>sT.test(s),iT=s=>nT.test(s),oT=s=>!Se(s)&&!_e(s),cT=s=>Qr(s,fb,db),Se=s=>ob.test(s),bl=s=>Qr(s,hb,lT),jf=s=>Qr(s,hT,Ke),Cj=s=>Qr(s,ub,db),dT=s=>Qr(s,mb,iT),Jc=s=>Qr(s,xb,rT),_e=s=>cb.test(s),Ki=s=>Zr(s,hb),uT=s=>Zr(s,xT),kj=s=>Zr(s,ub),mT=s=>Zr(s,fb),fT=s=>Zr(s,mb),ed=s=>Zr(s,xb,!0),Qr=(s,a,l)=>{const i=ob.exec(s);return i?i[1]?a(i[1]):l(i[2]):!1},Zr=(s,a,l=!1)=>{const i=cb.exec(s);return i?i[1]?a(i[1]):l:!1},ub=s=>s==="position"||s==="percentage",mb=s=>s==="image"||s==="url",fb=s=>s==="length"||s==="size"||s==="bg-size",hb=s=>s==="length",hT=s=>s==="number",xT=s=>s==="family-name",xb=s=>s==="shadow",pT=()=>{const s=rs("color"),a=rs("font"),l=rs("text"),i=rs("font-weight"),c=rs("tracking"),d=rs("leading"),m=rs("breakpoint"),h=rs("container"),p=rs("spacing"),v=rs("radius"),g=rs("shadow"),j=rs("inset-shadow"),b=rs("text-shadow"),w=rs("drop-shadow"),S=rs("blur"),C=rs("perspective"),N=rs("aspect"),T=rs("ease"),P=rs("animate"),M=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],D=()=>[...k(),_e,Se],A=()=>["auto","hidden","clip","visible","scroll"],E=()=>["auto","contain","none"],B=()=>[_e,Se,p],Y=()=>[Tr,"full","auto",...B()],G=()=>[qa,"none","subgrid",_e,Se],$=()=>["auto",{span:["full",qa,_e,Se]},qa,_e,Se],oe=()=>[qa,"auto",_e,Se],je=()=>["auto","min","max","fr",_e,Se],ae=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],me=()=>["start","end","center","stretch","center-safe","end-safe"],R=()=>["auto",...B()],O=()=>[Tr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...B()],L=()=>[s,_e,Se],ee=()=>[...k(),kj,Cj,{position:[_e,Se]}],le=()=>["no-repeat",{repeat:["","x","y","space","round"]}],xe=()=>["auto","cover","contain",mT,cT,{size:[_e,Se]}],F=()=>[vf,Ki,bl],W=()=>["","none","full",v,_e,Se],fe=()=>["",Ke,Ki,bl],I=()=>["solid","dashed","dotted","double"],ve=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],de=()=>[Ke,vf,kj,Cj],Ce=()=>["","none",S,_e,Se],Q=()=>["none",Ke,_e,Se],Oe=()=>["none",Ke,_e,Se],$e=()=>[Ke,_e,Se],re=()=>[Tr,"full",...B()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ua],breakpoint:[ua],color:[aT],container:[ua],"drop-shadow":[ua],ease:["in","out","in-out"],font:[oT],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ua],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ua],shadow:[ua],spacing:["px",Ke],text:[ua],"text-shadow":[ua],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Tr,Se,_e,N]}],container:["container"],columns:[{columns:[Ke,Se,_e,h]}],"break-after":[{"break-after":M()}],"break-before":[{"break-before":M()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:D()}],overflow:[{overflow:A()}],"overflow-x":[{"overflow-x":A()}],"overflow-y":[{"overflow-y":A()}],overscroll:[{overscroll:E()}],"overscroll-x":[{"overscroll-x":E()}],"overscroll-y":[{"overscroll-y":E()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Y()}],"inset-x":[{"inset-x":Y()}],"inset-y":[{"inset-y":Y()}],start:[{start:Y()}],end:[{end:Y()}],top:[{top:Y()}],right:[{right:Y()}],bottom:[{bottom:Y()}],left:[{left:Y()}],visibility:["visible","invisible","collapse"],z:[{z:[qa,"auto",_e,Se]}],basis:[{basis:[Tr,"full","auto",h,...B()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ke,Tr,"auto","initial","none",Se]}],grow:[{grow:["",Ke,_e,Se]}],shrink:[{shrink:["",Ke,_e,Se]}],order:[{order:[qa,"first","last","none",_e,Se]}],"grid-cols":[{"grid-cols":G()}],"col-start-end":[{col:$()}],"col-start":[{"col-start":oe()}],"col-end":[{"col-end":oe()}],"grid-rows":[{"grid-rows":G()}],"row-start-end":[{row:$()}],"row-start":[{"row-start":oe()}],"row-end":[{"row-end":oe()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":je()}],"auto-rows":[{"auto-rows":je()}],gap:[{gap:B()}],"gap-x":[{"gap-x":B()}],"gap-y":[{"gap-y":B()}],"justify-content":[{justify:[...ae(),"normal"]}],"justify-items":[{"justify-items":[...me(),"normal"]}],"justify-self":[{"justify-self":["auto",...me()]}],"align-content":[{content:["normal",...ae()]}],"align-items":[{items:[...me(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...me(),{baseline:["","last"]}]}],"place-content":[{"place-content":ae()}],"place-items":[{"place-items":[...me(),"baseline"]}],"place-self":[{"place-self":["auto",...me()]}],p:[{p:B()}],px:[{px:B()}],py:[{py:B()}],ps:[{ps:B()}],pe:[{pe:B()}],pt:[{pt:B()}],pr:[{pr:B()}],pb:[{pb:B()}],pl:[{pl:B()}],m:[{m:R()}],mx:[{mx:R()}],my:[{my:R()}],ms:[{ms:R()}],me:[{me:R()}],mt:[{mt:R()}],mr:[{mr:R()}],mb:[{mb:R()}],ml:[{ml:R()}],"space-x":[{"space-x":B()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":B()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],w:[{w:[h,"screen",...O()]}],"min-w":[{"min-w":[h,"screen","none",...O()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[m]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",l,Ki,bl]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[i,_e,jf]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",vf,Se]}],"font-family":[{font:[uT,Se,a]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,_e,Se]}],"line-clamp":[{"line-clamp":[Ke,"none",_e,jf]}],leading:[{leading:[d,...B()]}],"list-image":[{"list-image":["none",_e,Se]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",_e,Se]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:L()}],"text-color":[{text:L()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...I(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ke,"from-font","auto",_e,bl]}],"text-decoration-color":[{decoration:L()}],"underline-offset":[{"underline-offset":[Ke,"auto",_e,Se]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:B()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",_e,Se]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",_e,Se]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ee()}],"bg-repeat":[{bg:le()}],"bg-size":[{bg:xe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},qa,_e,Se],radial:["",_e,Se],conic:[qa,_e,Se]},fT,dT]}],"bg-color":[{bg:L()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:L()}],"gradient-via":[{via:L()}],"gradient-to":[{to:L()}],rounded:[{rounded:W()}],"rounded-s":[{"rounded-s":W()}],"rounded-e":[{"rounded-e":W()}],"rounded-t":[{"rounded-t":W()}],"rounded-r":[{"rounded-r":W()}],"rounded-b":[{"rounded-b":W()}],"rounded-l":[{"rounded-l":W()}],"rounded-ss":[{"rounded-ss":W()}],"rounded-se":[{"rounded-se":W()}],"rounded-ee":[{"rounded-ee":W()}],"rounded-es":[{"rounded-es":W()}],"rounded-tl":[{"rounded-tl":W()}],"rounded-tr":[{"rounded-tr":W()}],"rounded-br":[{"rounded-br":W()}],"rounded-bl":[{"rounded-bl":W()}],"border-w":[{border:fe()}],"border-w-x":[{"border-x":fe()}],"border-w-y":[{"border-y":fe()}],"border-w-s":[{"border-s":fe()}],"border-w-e":[{"border-e":fe()}],"border-w-t":[{"border-t":fe()}],"border-w-r":[{"border-r":fe()}],"border-w-b":[{"border-b":fe()}],"border-w-l":[{"border-l":fe()}],"divide-x":[{"divide-x":fe()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":fe()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...I(),"hidden","none"]}],"divide-style":[{divide:[...I(),"hidden","none"]}],"border-color":[{border:L()}],"border-color-x":[{"border-x":L()}],"border-color-y":[{"border-y":L()}],"border-color-s":[{"border-s":L()}],"border-color-e":[{"border-e":L()}],"border-color-t":[{"border-t":L()}],"border-color-r":[{"border-r":L()}],"border-color-b":[{"border-b":L()}],"border-color-l":[{"border-l":L()}],"divide-color":[{divide:L()}],"outline-style":[{outline:[...I(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ke,_e,Se]}],"outline-w":[{outline:["",Ke,Ki,bl]}],"outline-color":[{outline:L()}],shadow:[{shadow:["","none",g,ed,Jc]}],"shadow-color":[{shadow:L()}],"inset-shadow":[{"inset-shadow":["none",j,ed,Jc]}],"inset-shadow-color":[{"inset-shadow":L()}],"ring-w":[{ring:fe()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:L()}],"ring-offset-w":[{"ring-offset":[Ke,bl]}],"ring-offset-color":[{"ring-offset":L()}],"inset-ring-w":[{"inset-ring":fe()}],"inset-ring-color":[{"inset-ring":L()}],"text-shadow":[{"text-shadow":["none",b,ed,Jc]}],"text-shadow-color":[{"text-shadow":L()}],opacity:[{opacity:[Ke,_e,Se]}],"mix-blend":[{"mix-blend":[...ve(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ve()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ke]}],"mask-image-linear-from-pos":[{"mask-linear-from":de()}],"mask-image-linear-to-pos":[{"mask-linear-to":de()}],"mask-image-linear-from-color":[{"mask-linear-from":L()}],"mask-image-linear-to-color":[{"mask-linear-to":L()}],"mask-image-t-from-pos":[{"mask-t-from":de()}],"mask-image-t-to-pos":[{"mask-t-to":de()}],"mask-image-t-from-color":[{"mask-t-from":L()}],"mask-image-t-to-color":[{"mask-t-to":L()}],"mask-image-r-from-pos":[{"mask-r-from":de()}],"mask-image-r-to-pos":[{"mask-r-to":de()}],"mask-image-r-from-color":[{"mask-r-from":L()}],"mask-image-r-to-color":[{"mask-r-to":L()}],"mask-image-b-from-pos":[{"mask-b-from":de()}],"mask-image-b-to-pos":[{"mask-b-to":de()}],"mask-image-b-from-color":[{"mask-b-from":L()}],"mask-image-b-to-color":[{"mask-b-to":L()}],"mask-image-l-from-pos":[{"mask-l-from":de()}],"mask-image-l-to-pos":[{"mask-l-to":de()}],"mask-image-l-from-color":[{"mask-l-from":L()}],"mask-image-l-to-color":[{"mask-l-to":L()}],"mask-image-x-from-pos":[{"mask-x-from":de()}],"mask-image-x-to-pos":[{"mask-x-to":de()}],"mask-image-x-from-color":[{"mask-x-from":L()}],"mask-image-x-to-color":[{"mask-x-to":L()}],"mask-image-y-from-pos":[{"mask-y-from":de()}],"mask-image-y-to-pos":[{"mask-y-to":de()}],"mask-image-y-from-color":[{"mask-y-from":L()}],"mask-image-y-to-color":[{"mask-y-to":L()}],"mask-image-radial":[{"mask-radial":[_e,Se]}],"mask-image-radial-from-pos":[{"mask-radial-from":de()}],"mask-image-radial-to-pos":[{"mask-radial-to":de()}],"mask-image-radial-from-color":[{"mask-radial-from":L()}],"mask-image-radial-to-color":[{"mask-radial-to":L()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":k()}],"mask-image-conic-pos":[{"mask-conic":[Ke]}],"mask-image-conic-from-pos":[{"mask-conic-from":de()}],"mask-image-conic-to-pos":[{"mask-conic-to":de()}],"mask-image-conic-from-color":[{"mask-conic-from":L()}],"mask-image-conic-to-color":[{"mask-conic-to":L()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ee()}],"mask-repeat":[{mask:le()}],"mask-size":[{mask:xe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",_e,Se]}],filter:[{filter:["","none",_e,Se]}],blur:[{blur:Ce()}],brightness:[{brightness:[Ke,_e,Se]}],contrast:[{contrast:[Ke,_e,Se]}],"drop-shadow":[{"drop-shadow":["","none",w,ed,Jc]}],"drop-shadow-color":[{"drop-shadow":L()}],grayscale:[{grayscale:["",Ke,_e,Se]}],"hue-rotate":[{"hue-rotate":[Ke,_e,Se]}],invert:[{invert:["",Ke,_e,Se]}],saturate:[{saturate:[Ke,_e,Se]}],sepia:[{sepia:["",Ke,_e,Se]}],"backdrop-filter":[{"backdrop-filter":["","none",_e,Se]}],"backdrop-blur":[{"backdrop-blur":Ce()}],"backdrop-brightness":[{"backdrop-brightness":[Ke,_e,Se]}],"backdrop-contrast":[{"backdrop-contrast":[Ke,_e,Se]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ke,_e,Se]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ke,_e,Se]}],"backdrop-invert":[{"backdrop-invert":["",Ke,_e,Se]}],"backdrop-opacity":[{"backdrop-opacity":[Ke,_e,Se]}],"backdrop-saturate":[{"backdrop-saturate":[Ke,_e,Se]}],"backdrop-sepia":[{"backdrop-sepia":["",Ke,_e,Se]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":B()}],"border-spacing-x":[{"border-spacing-x":B()}],"border-spacing-y":[{"border-spacing-y":B()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",_e,Se]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ke,"initial",_e,Se]}],ease:[{ease:["linear","initial",T,_e,Se]}],delay:[{delay:[Ke,_e,Se]}],animate:[{animate:["none",P,_e,Se]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,_e,Se]}],"perspective-origin":[{"perspective-origin":D()}],rotate:[{rotate:Q()}],"rotate-x":[{"rotate-x":Q()}],"rotate-y":[{"rotate-y":Q()}],"rotate-z":[{"rotate-z":Q()}],scale:[{scale:Oe()}],"scale-x":[{"scale-x":Oe()}],"scale-y":[{"scale-y":Oe()}],"scale-z":[{"scale-z":Oe()}],"scale-3d":["scale-3d"],skew:[{skew:$e()}],"skew-x":[{"skew-x":$e()}],"skew-y":[{"skew-y":$e()}],transform:[{transform:[_e,Se,"","none","gpu","cpu"]}],"transform-origin":[{origin:D()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:re()}],"translate-x":[{"translate-x":re()}],"translate-y":[{"translate-y":re()}],"translate-z":[{"translate-z":re()}],"translate-none":["translate-none"],accent:[{accent:L()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:L()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",_e,Se]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":B()}],"scroll-mx":[{"scroll-mx":B()}],"scroll-my":[{"scroll-my":B()}],"scroll-ms":[{"scroll-ms":B()}],"scroll-me":[{"scroll-me":B()}],"scroll-mt":[{"scroll-mt":B()}],"scroll-mr":[{"scroll-mr":B()}],"scroll-mb":[{"scroll-mb":B()}],"scroll-ml":[{"scroll-ml":B()}],"scroll-p":[{"scroll-p":B()}],"scroll-px":[{"scroll-px":B()}],"scroll-py":[{"scroll-py":B()}],"scroll-ps":[{"scroll-ps":B()}],"scroll-pe":[{"scroll-pe":B()}],"scroll-pt":[{"scroll-pt":B()}],"scroll-pr":[{"scroll-pr":B()}],"scroll-pb":[{"scroll-pb":B()}],"scroll-pl":[{"scroll-pl":B()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",_e,Se]}],fill:[{fill:["none",...L()]}],"stroke-w":[{stroke:[Ke,Ki,bl,jf]}],stroke:[{stroke:["none",...L()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},gT=Kk(pT);function Z(...s){return gT(iy(s))}const Ue=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("rounded-xl border bg-card text-card-foreground shadow",s),...a}));Ue.displayName="Card";const ot=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("flex flex-col space-y-1.5 p-6",s),...a}));ot.displayName="CardHeader";const ct=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("font-semibold leading-none tracking-tight",s),...a}));ct.displayName="CardTitle";const us=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("text-sm text-muted-foreground",s),...a}));us.displayName="CardDescription";const gt=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("p-6 pt-0",s),...a}));gt.displayName="CardContent";const pb=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("flex items-center p-6 pt-0",s),...a}));pb.displayName="CardFooter";var yf="rovingFocusGroup.onEntryFocus",vT={bubbles:!1,cancelable:!0},So="RovingFocusGroup",[Vf,gb,jT]=_d(So),[yT,Pd]=Dn(So,[jT]),[bT,NT]=yT(So),vb=x.forwardRef((s,a)=>e.jsx(Vf.Provider,{scope:s.__scopeRovingFocusGroup,children:e.jsx(Vf.Slot,{scope:s.__scopeRovingFocusGroup,children:e.jsx(wT,{...s,ref:a})})}));vb.displayName=So;var wT=x.forwardRef((s,a)=>{const{__scopeRovingFocusGroup:l,orientation:i,loop:c=!1,dir:d,currentTabStopId:m,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:p,onEntryFocus:v,preventScrollOnEntryFocus:g=!1,...j}=s,b=x.useRef(null),w=Tt(a,b),S=xo(d),[C,N]=Qa({prop:m,defaultProp:h??null,onChange:p,caller:So}),[T,P]=x.useState(!1),M=ws(v),k=gb(l),D=x.useRef(!1),[A,E]=x.useState(0);return x.useEffect(()=>{const B=b.current;if(B)return B.addEventListener(yf,M),()=>B.removeEventListener(yf,M)},[M]),e.jsx(bT,{scope:l,orientation:i,dir:S,loop:c,currentTabStopId:C,onItemFocus:x.useCallback(B=>N(B),[N]),onItemShiftTab:x.useCallback(()=>P(!0),[]),onFocusableItemAdd:x.useCallback(()=>E(B=>B+1),[]),onFocusableItemRemove:x.useCallback(()=>E(B=>B-1),[]),children:e.jsx(dt.div,{tabIndex:T||A===0?-1:0,"data-orientation":i,...j,ref:w,style:{outline:"none",...s.style},onMouseDown:be(s.onMouseDown,()=>{D.current=!0}),onFocus:be(s.onFocus,B=>{const Y=!D.current;if(B.target===B.currentTarget&&Y&&!T){const G=new CustomEvent(yf,vT);if(B.currentTarget.dispatchEvent(G),!G.defaultPrevented){const $=k().filter(R=>R.focusable),oe=$.find(R=>R.active),je=$.find(R=>R.id===C),me=[oe,je,...$].filter(Boolean).map(R=>R.ref.current);bb(me,g)}}D.current=!1}),onBlur:be(s.onBlur,()=>P(!1))})})}),jb="RovingFocusGroupItem",yb=x.forwardRef((s,a)=>{const{__scopeRovingFocusGroup:l,focusable:i=!0,active:c=!1,tabStopId:d,children:m,...h}=s,p=jn(),v=d||p,g=NT(jb,l),j=g.currentTabStopId===v,b=gb(l),{onFocusableItemAdd:w,onFocusableItemRemove:S,currentTabStopId:C}=g;return x.useEffect(()=>{if(i)return w(),()=>S()},[i,w,S]),e.jsx(Vf.ItemSlot,{scope:l,id:v,focusable:i,active:c,children:e.jsx(dt.span,{tabIndex:j?0:-1,"data-orientation":g.orientation,...h,ref:a,onMouseDown:be(s.onMouseDown,N=>{i?g.onItemFocus(v):N.preventDefault()}),onFocus:be(s.onFocus,()=>g.onItemFocus(v)),onKeyDown:be(s.onKeyDown,N=>{if(N.key==="Tab"&&N.shiftKey){g.onItemShiftTab();return}if(N.target!==N.currentTarget)return;const T=CT(N,g.orientation,g.dir);if(T!==void 0){if(N.metaKey||N.ctrlKey||N.altKey||N.shiftKey)return;N.preventDefault();let M=b().filter(k=>k.focusable).map(k=>k.ref.current);if(T==="last")M.reverse();else if(T==="prev"||T==="next"){T==="prev"&&M.reverse();const k=M.indexOf(N.currentTarget);M=g.loop?kT(M,k+1):M.slice(k+1)}setTimeout(()=>bb(M))}}),children:typeof m=="function"?m({isCurrentTabStop:j,hasTabStop:C!=null}):m})})});yb.displayName=jb;var ST={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function _T(s,a){return a!=="rtl"?s:s==="ArrowLeft"?"ArrowRight":s==="ArrowRight"?"ArrowLeft":s}function CT(s,a,l){const i=_T(s.key,l);if(!(a==="vertical"&&["ArrowLeft","ArrowRight"].includes(i))&&!(a==="horizontal"&&["ArrowUp","ArrowDown"].includes(i)))return ST[i]}function bb(s,a=!1){const l=document.activeElement;for(const i of s)if(i===l||(i.focus({preventScroll:a}),document.activeElement!==l))return}function kT(s,a){return s.map((l,i)=>s[(a+i)%s.length])}var Nb=vb,wb=yb,Ld="Tabs",[TT]=Dn(Ld,[Pd]),Sb=Pd(),[ET,_h]=TT(Ld),_b=x.forwardRef((s,a)=>{const{__scopeTabs:l,value:i,onValueChange:c,defaultValue:d,orientation:m="horizontal",dir:h,activationMode:p="automatic",...v}=s,g=xo(h),[j,b]=Qa({prop:i,onChange:c,defaultProp:d??"",caller:Ld});return e.jsx(ET,{scope:l,baseId:jn(),value:j,onValueChange:b,orientation:m,dir:g,activationMode:p,children:e.jsx(dt.div,{dir:g,"data-orientation":m,...v,ref:a})})});_b.displayName=Ld;var Cb="TabsList",kb=x.forwardRef((s,a)=>{const{__scopeTabs:l,loop:i=!0,...c}=s,d=_h(Cb,l),m=Sb(l);return e.jsx(Nb,{asChild:!0,...m,orientation:d.orientation,dir:d.dir,loop:i,children:e.jsx(dt.div,{role:"tablist","aria-orientation":d.orientation,...c,ref:a})})});kb.displayName=Cb;var Tb="TabsTrigger",Eb=x.forwardRef((s,a)=>{const{__scopeTabs:l,value:i,disabled:c=!1,...d}=s,m=_h(Tb,l),h=Sb(l),p=Ob(m.baseId,i),v=Ab(m.baseId,i),g=i===m.value;return e.jsx(wb,{asChild:!0,...h,focusable:!c,active:g,children:e.jsx(dt.button,{type:"button",role:"tab","aria-selected":g,"aria-controls":v,"data-state":g?"active":"inactive","data-disabled":c?"":void 0,disabled:c,id:p,...d,ref:a,onMouseDown:be(s.onMouseDown,j=>{!c&&j.button===0&&j.ctrlKey===!1?m.onValueChange(i):j.preventDefault()}),onKeyDown:be(s.onKeyDown,j=>{[" ","Enter"].includes(j.key)&&m.onValueChange(i)}),onFocus:be(s.onFocus,()=>{const j=m.activationMode!=="manual";!g&&!c&&j&&m.onValueChange(i)})})})});Eb.displayName=Tb;var Mb="TabsContent",Db=x.forwardRef((s,a)=>{const{__scopeTabs:l,value:i,forceMount:c,children:d,...m}=s,h=_h(Mb,l),p=Ob(h.baseId,i),v=Ab(h.baseId,i),g=i===h.value,j=x.useRef(g);return x.useEffect(()=>{const b=requestAnimationFrame(()=>j.current=!1);return()=>cancelAnimationFrame(b)},[]),e.jsx(Is,{present:c||g,children:({present:b})=>e.jsx(dt.div,{"data-state":g?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":p,hidden:!b,id:v,tabIndex:0,...m,ref:a,style:{...s.style,animationDuration:j.current?"0s":void 0},children:b&&d})})});Db.displayName=Mb;function Ob(s,a){return`${s}-trigger-${a}`}function Ab(s,a){return`${s}-content-${a}`}var MT=_b,Rb=kb,zb=Eb,Pb=Db;const Ml=MT,$a=x.forwardRef(({className:s,...a},l)=>e.jsx(Rb,{ref:l,className:Z("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",s),...a}));$a.displayName=Rb.displayName;const bt=x.forwardRef(({className:s,...a},l)=>e.jsx(zb,{ref:l,className:Z("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",s),...a}));bt.displayName=zb.displayName;const Vt=x.forwardRef(({className:s,...a},l)=>e.jsx(Pb,{ref:l,className:Z("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",s),...a}));Vt.displayName=Pb.displayName;function DT(s,a){return x.useReducer((l,i)=>a[l][i]??l,s)}var Ch="ScrollArea",[Lb]=Dn(Ch),[OT,bn]=Lb(Ch),Bb=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,type:i="hover",dir:c,scrollHideDelay:d=600,...m}=s,[h,p]=x.useState(null),[v,g]=x.useState(null),[j,b]=x.useState(null),[w,S]=x.useState(null),[C,N]=x.useState(null),[T,P]=x.useState(0),[M,k]=x.useState(0),[D,A]=x.useState(!1),[E,B]=x.useState(!1),Y=Tt(a,$=>p($)),G=xo(c);return e.jsx(OT,{scope:l,type:i,dir:G,scrollHideDelay:d,scrollArea:h,viewport:v,onViewportChange:g,content:j,onContentChange:b,scrollbarX:w,onScrollbarXChange:S,scrollbarXEnabled:D,onScrollbarXEnabledChange:A,scrollbarY:C,onScrollbarYChange:N,scrollbarYEnabled:E,onScrollbarYEnabledChange:B,onCornerWidthChange:P,onCornerHeightChange:k,children:e.jsx(dt.div,{dir:G,...m,ref:Y,style:{position:"relative","--radix-scroll-area-corner-width":T+"px","--radix-scroll-area-corner-height":M+"px",...s.style}})})});Bb.displayName=Ch;var Ub="ScrollAreaViewport",Hb=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,children:i,nonce:c,...d}=s,m=bn(Ub,l),h=x.useRef(null),p=Tt(a,h,m.onViewportChange);return e.jsxs(e.Fragment,{children:[e.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:c}),e.jsx(dt.div,{"data-radix-scroll-area-viewport":"",...d,ref:p,style:{overflowX:m.scrollbarXEnabled?"scroll":"hidden",overflowY:m.scrollbarYEnabled?"scroll":"hidden",...s.style},children:e.jsx("div",{ref:m.onContentChange,style:{minWidth:"100%",display:"table"},children:i})})]})});Hb.displayName=Ub;var Vn="ScrollAreaScrollbar",kh=x.forwardRef((s,a)=>{const{forceMount:l,...i}=s,c=bn(Vn,s.__scopeScrollArea),{onScrollbarXEnabledChange:d,onScrollbarYEnabledChange:m}=c,h=s.orientation==="horizontal";return x.useEffect(()=>(h?d(!0):m(!0),()=>{h?d(!1):m(!1)}),[h,d,m]),c.type==="hover"?e.jsx(AT,{...i,ref:a,forceMount:l}):c.type==="scroll"?e.jsx(RT,{...i,ref:a,forceMount:l}):c.type==="auto"?e.jsx(Fb,{...i,ref:a,forceMount:l}):c.type==="always"?e.jsx(Th,{...i,ref:a}):null});kh.displayName=Vn;var AT=x.forwardRef((s,a)=>{const{forceMount:l,...i}=s,c=bn(Vn,s.__scopeScrollArea),[d,m]=x.useState(!1);return x.useEffect(()=>{const h=c.scrollArea;let p=0;if(h){const v=()=>{window.clearTimeout(p),m(!0)},g=()=>{p=window.setTimeout(()=>m(!1),c.scrollHideDelay)};return h.addEventListener("pointerenter",v),h.addEventListener("pointerleave",g),()=>{window.clearTimeout(p),h.removeEventListener("pointerenter",v),h.removeEventListener("pointerleave",g)}}},[c.scrollArea,c.scrollHideDelay]),e.jsx(Is,{present:l||d,children:e.jsx(Fb,{"data-state":d?"visible":"hidden",...i,ref:a})})}),RT=x.forwardRef((s,a)=>{const{forceMount:l,...i}=s,c=bn(Vn,s.__scopeScrollArea),d=s.orientation==="horizontal",m=Ud(()=>p("SCROLL_END"),100),[h,p]=DT("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return x.useEffect(()=>{if(h==="idle"){const v=window.setTimeout(()=>p("HIDE"),c.scrollHideDelay);return()=>window.clearTimeout(v)}},[h,c.scrollHideDelay,p]),x.useEffect(()=>{const v=c.viewport,g=d?"scrollLeft":"scrollTop";if(v){let j=v[g];const b=()=>{const w=v[g];j!==w&&(p("SCROLL"),m()),j=w};return v.addEventListener("scroll",b),()=>v.removeEventListener("scroll",b)}},[c.viewport,d,p,m]),e.jsx(Is,{present:l||h!=="hidden",children:e.jsx(Th,{"data-state":h==="hidden"?"hidden":"visible",...i,ref:a,onPointerEnter:be(s.onPointerEnter,()=>p("POINTER_ENTER")),onPointerLeave:be(s.onPointerLeave,()=>p("POINTER_LEAVE"))})})}),Fb=x.forwardRef((s,a)=>{const l=bn(Vn,s.__scopeScrollArea),{forceMount:i,...c}=s,[d,m]=x.useState(!1),h=s.orientation==="horizontal",p=Ud(()=>{if(l.viewport){const v=l.viewport.offsetWidth{const{orientation:l="vertical",...i}=s,c=bn(Vn,s.__scopeScrollArea),d=x.useRef(null),m=x.useRef(0),[h,p]=x.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),v=$b(h.viewport,h.content),g={...i,sizes:h,onSizesChange:p,hasThumb:v>0&&v<1,onThumbChange:b=>d.current=b,onThumbPointerUp:()=>m.current=0,onThumbPointerDown:b=>m.current=b};function j(b,w){return HT(b,m.current,h,w)}return l==="horizontal"?e.jsx(zT,{...g,ref:a,onThumbPositionChange:()=>{if(c.viewport&&d.current){const b=c.viewport.scrollLeft,w=Tj(b,h,c.dir);d.current.style.transform=`translate3d(${w}px, 0, 0)`}},onWheelScroll:b=>{c.viewport&&(c.viewport.scrollLeft=b)},onDragScroll:b=>{c.viewport&&(c.viewport.scrollLeft=j(b,c.dir))}}):l==="vertical"?e.jsx(PT,{...g,ref:a,onThumbPositionChange:()=>{if(c.viewport&&d.current){const b=c.viewport.scrollTop,w=Tj(b,h);d.current.style.transform=`translate3d(0, ${w}px, 0)`}},onWheelScroll:b=>{c.viewport&&(c.viewport.scrollTop=b)},onDragScroll:b=>{c.viewport&&(c.viewport.scrollTop=j(b))}}):null}),zT=x.forwardRef((s,a)=>{const{sizes:l,onSizesChange:i,...c}=s,d=bn(Vn,s.__scopeScrollArea),[m,h]=x.useState(),p=x.useRef(null),v=Tt(a,p,d.onScrollbarXChange);return x.useEffect(()=>{p.current&&h(getComputedStyle(p.current))},[p]),e.jsx(qb,{"data-orientation":"horizontal",...c,ref:v,sizes:l,style:{bottom:0,left:d.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:d.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Bd(l)+"px",...s.style},onThumbPointerDown:g=>s.onThumbPointerDown(g.x),onDragScroll:g=>s.onDragScroll(g.x),onWheelScroll:(g,j)=>{if(d.viewport){const b=d.viewport.scrollLeft+g.deltaX;s.onWheelScroll(b),Wb(b,j)&&g.preventDefault()}},onResize:()=>{p.current&&d.viewport&&m&&i({content:d.viewport.scrollWidth,viewport:d.viewport.offsetWidth,scrollbar:{size:p.current.clientWidth,paddingStart:yd(m.paddingLeft),paddingEnd:yd(m.paddingRight)}})}})}),PT=x.forwardRef((s,a)=>{const{sizes:l,onSizesChange:i,...c}=s,d=bn(Vn,s.__scopeScrollArea),[m,h]=x.useState(),p=x.useRef(null),v=Tt(a,p,d.onScrollbarYChange);return x.useEffect(()=>{p.current&&h(getComputedStyle(p.current))},[p]),e.jsx(qb,{"data-orientation":"vertical",...c,ref:v,sizes:l,style:{top:0,right:d.dir==="ltr"?0:void 0,left:d.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Bd(l)+"px",...s.style},onThumbPointerDown:g=>s.onThumbPointerDown(g.y),onDragScroll:g=>s.onDragScroll(g.y),onWheelScroll:(g,j)=>{if(d.viewport){const b=d.viewport.scrollTop+g.deltaY;s.onWheelScroll(b),Wb(b,j)&&g.preventDefault()}},onResize:()=>{p.current&&d.viewport&&m&&i({content:d.viewport.scrollHeight,viewport:d.viewport.offsetHeight,scrollbar:{size:p.current.clientHeight,paddingStart:yd(m.paddingTop),paddingEnd:yd(m.paddingBottom)}})}})}),[LT,Yb]=Lb(Vn),qb=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,sizes:i,hasThumb:c,onThumbChange:d,onThumbPointerUp:m,onThumbPointerDown:h,onThumbPositionChange:p,onDragScroll:v,onWheelScroll:g,onResize:j,...b}=s,w=bn(Vn,l),[S,C]=x.useState(null),N=Tt(a,Y=>C(Y)),T=x.useRef(null),P=x.useRef(""),M=w.viewport,k=i.content-i.viewport,D=ws(g),A=ws(p),E=Ud(j,10);function B(Y){if(T.current){const G=Y.clientX-T.current.left,$=Y.clientY-T.current.top;v({x:G,y:$})}}return x.useEffect(()=>{const Y=G=>{const $=G.target;S?.contains($)&&D(G,k)};return document.addEventListener("wheel",Y,{passive:!1}),()=>document.removeEventListener("wheel",Y,{passive:!1})},[M,S,k,D]),x.useEffect(A,[i,A]),Gr(S,E),Gr(w.content,E),e.jsx(LT,{scope:l,scrollbar:S,hasThumb:c,onThumbChange:ws(d),onThumbPointerUp:ws(m),onThumbPositionChange:A,onThumbPointerDown:ws(h),children:e.jsx(dt.div,{...b,ref:N,style:{position:"absolute",...b.style},onPointerDown:be(s.onPointerDown,Y=>{Y.button===0&&(Y.target.setPointerCapture(Y.pointerId),T.current=S.getBoundingClientRect(),P.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",w.viewport&&(w.viewport.style.scrollBehavior="auto"),B(Y))}),onPointerMove:be(s.onPointerMove,B),onPointerUp:be(s.onPointerUp,Y=>{const G=Y.target;G.hasPointerCapture(Y.pointerId)&&G.releasePointerCapture(Y.pointerId),document.body.style.webkitUserSelect=P.current,w.viewport&&(w.viewport.style.scrollBehavior=""),T.current=null})})})}),jd="ScrollAreaThumb",Vb=x.forwardRef((s,a)=>{const{forceMount:l,...i}=s,c=Yb(jd,s.__scopeScrollArea);return e.jsx(Is,{present:l||c.hasThumb,children:e.jsx(BT,{ref:a,...i})})}),BT=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,style:i,...c}=s,d=bn(jd,l),m=Yb(jd,l),{onThumbPositionChange:h}=m,p=Tt(a,j=>m.onThumbChange(j)),v=x.useRef(void 0),g=Ud(()=>{v.current&&(v.current(),v.current=void 0)},100);return x.useEffect(()=>{const j=d.viewport;if(j){const b=()=>{if(g(),!v.current){const w=FT(j,h);v.current=w,h()}};return h(),j.addEventListener("scroll",b),()=>j.removeEventListener("scroll",b)}},[d.viewport,g,h]),e.jsx(dt.div,{"data-state":m.hasThumb?"visible":"hidden",...c,ref:p,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...i},onPointerDownCapture:be(s.onPointerDownCapture,j=>{const w=j.target.getBoundingClientRect(),S=j.clientX-w.left,C=j.clientY-w.top;m.onThumbPointerDown({x:S,y:C})}),onPointerUp:be(s.onPointerUp,m.onThumbPointerUp)})});Vb.displayName=jd;var Eh="ScrollAreaCorner",Gb=x.forwardRef((s,a)=>{const l=bn(Eh,s.__scopeScrollArea),i=!!(l.scrollbarX&&l.scrollbarY);return l.type!=="scroll"&&i?e.jsx(UT,{...s,ref:a}):null});Gb.displayName=Eh;var UT=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,...i}=s,c=bn(Eh,l),[d,m]=x.useState(0),[h,p]=x.useState(0),v=!!(d&&h);return Gr(c.scrollbarX,()=>{const g=c.scrollbarX?.offsetHeight||0;c.onCornerHeightChange(g),p(g)}),Gr(c.scrollbarY,()=>{const g=c.scrollbarY?.offsetWidth||0;c.onCornerWidthChange(g),m(g)}),v?e.jsx(dt.div,{...i,ref:a,style:{width:d,height:h,position:"absolute",right:c.dir==="ltr"?0:void 0,left:c.dir==="rtl"?0:void 0,bottom:0,...s.style}}):null});function yd(s){return s?parseInt(s,10):0}function $b(s,a){const l=s/a;return isNaN(l)?0:l}function Bd(s){const a=$b(s.viewport,s.content),l=s.scrollbar.paddingStart+s.scrollbar.paddingEnd,i=(s.scrollbar.size-l)*a;return Math.max(i,18)}function HT(s,a,l,i="ltr"){const c=Bd(l),d=c/2,m=a||d,h=c-m,p=l.scrollbar.paddingStart+m,v=l.scrollbar.size-l.scrollbar.paddingEnd-h,g=l.content-l.viewport,j=i==="ltr"?[0,g]:[g*-1,0];return Ib([p,v],j)(s)}function Tj(s,a,l="ltr"){const i=Bd(a),c=a.scrollbar.paddingStart+a.scrollbar.paddingEnd,d=a.scrollbar.size-c,m=a.content-a.viewport,h=d-i,p=l==="ltr"?[0,m]:[m*-1,0],v=rh(s,p);return Ib([0,m],[0,h])(v)}function Ib(s,a){return l=>{if(s[0]===s[1]||a[0]===a[1])return a[0];const i=(a[1]-a[0])/(s[1]-s[0]);return a[0]+i*(l-s[0])}}function Wb(s,a){return s>0&&s{})=>{let l={left:s.scrollLeft,top:s.scrollTop},i=0;return(function c(){const d={left:s.scrollLeft,top:s.scrollTop},m=l.left!==d.left,h=l.top!==d.top;(m||h)&&a(),l=d,i=window.requestAnimationFrame(c)})(),()=>window.cancelAnimationFrame(i)};function Ud(s,a){const l=ws(s),i=x.useRef(0);return x.useEffect(()=>()=>window.clearTimeout(i.current),[]),x.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(l,a)},[l,a])}function Gr(s,a){const l=ws(a);oy(()=>{let i=0;if(s){const c=new ResizeObserver(()=>{cancelAnimationFrame(i),i=window.requestAnimationFrame(l)});return c.observe(s),()=>{window.cancelAnimationFrame(i),c.unobserve(s)}}},[s,l])}var Xb=Bb,YT=Hb,qT=Gb;const Ct=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(Xb,{ref:i,className:Z("relative overflow-hidden",s),...l,children:[e.jsx(YT,{className:"h-full w-full rounded-[inherit]",children:a}),e.jsx(Kb,{}),e.jsx(qT,{})]}));Ct.displayName=Xb.displayName;const Kb=x.forwardRef(({className:s,orientation:a="vertical",...l},i)=>e.jsx(kh,{ref:i,orientation:a,className:Z("flex touch-none select-none transition-colors",a==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",a==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",s),...l,children:e.jsx(Vb,{className:"relative flex-1 rounded-full bg-border"})}));Kb.displayName=kh.displayName;function Ej({className:s,...a}){return e.jsx("div",{className:Z("animate-pulse rounded-md bg-primary/10",s),...a})}function VT(s,a=[]){let l=[];function i(d,m){const h=x.createContext(m);h.displayName=d+"Context";const p=l.length;l=[...l,m];const v=j=>{const{scope:b,children:w,...S}=j,C=b?.[s]?.[p]||h,N=x.useMemo(()=>S,Object.values(S));return e.jsx(C.Provider,{value:N,children:w})};v.displayName=d+"Provider";function g(j,b){const w=b?.[s]?.[p]||h,S=x.useContext(w);if(S)return S;if(m!==void 0)return m;throw new Error(`\`${j}\` must be used within \`${d}\``)}return[v,g]}const c=()=>{const d=l.map(m=>x.createContext(m));return function(h){const p=h?.[s]||d;return x.useMemo(()=>({[`__scope${s}`]:{...h,[s]:p}}),[h,p])}};return c.scopeName=s,[i,GT(c,...a)]}function GT(...s){const a=s[0];if(s.length===1)return a;const l=()=>{const i=s.map(c=>({useScope:c(),scopeName:c.scopeName}));return function(d){const m=i.reduce((h,{useScope:p,scopeName:v})=>{const j=p(d)[`__scope${v}`];return{...h,...j}},{});return x.useMemo(()=>({[`__scope${a.scopeName}`]:m}),[m])}};return l.scopeName=a.scopeName,l}var $T=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Qb=$T.reduce((s,a)=>{const l=ih(`Primitive.${a}`),i=x.forwardRef((c,d)=>{const{asChild:m,...h}=c,p=m?l:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(p,{...h,ref:d})});return i.displayName=`Primitive.${a}`,{...s,[a]:i}},{}),Mh="Progress",Dh=100,[IT]=VT(Mh),[WT,XT]=IT(Mh),Zb=x.forwardRef((s,a)=>{const{__scopeProgress:l,value:i=null,max:c,getValueLabel:d=KT,...m}=s;(c||c===0)&&!Mj(c)&&console.error(QT(`${c}`,"Progress"));const h=Mj(c)?c:Dh;i!==null&&!Dj(i,h)&&console.error(ZT(`${i}`,"Progress"));const p=Dj(i,h)?i:null,v=bd(p)?d(p,h):void 0;return e.jsx(WT,{scope:l,value:p,max:h,children:e.jsx(Qb.div,{"aria-valuemax":h,"aria-valuemin":0,"aria-valuenow":bd(p)?p:void 0,"aria-valuetext":v,role:"progressbar","data-state":t0(p,h),"data-value":p??void 0,"data-max":h,...m,ref:a})})});Zb.displayName=Mh;var Jb="ProgressIndicator",e0=x.forwardRef((s,a)=>{const{__scopeProgress:l,...i}=s,c=XT(Jb,l);return e.jsx(Qb.div,{"data-state":t0(c.value,c.max),"data-value":c.value??void 0,"data-max":c.max,...i,ref:a})});e0.displayName=Jb;function KT(s,a){return`${Math.round(s/a*100)}%`}function t0(s,a){return s==null?"indeterminate":s===a?"complete":"loading"}function bd(s){return typeof s=="number"}function Mj(s){return bd(s)&&!isNaN(s)&&s>0}function Dj(s,a){return bd(s)&&!isNaN(s)&&s<=a&&s>=0}function QT(s,a){return`Invalid prop \`max\` of value \`${s}\` supplied to \`${a}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Dh}\`.`}function ZT(s,a){return`Invalid prop \`value\` of value \`${s}\` supplied to \`${a}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${Dh} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var s0=Zb,JT=e0;const _o=x.forwardRef(({className:s,value:a,...l},i)=>e.jsx(s0,{ref:i,className:Z("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",s),...l,children:e.jsx(JT,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(a||0)}%)`}})}));_o.displayName=s0.displayName;const eE={light:"",dark:".dark"},n0=x.createContext(null);function a0(){const s=x.useContext(n0);if(!s)throw new Error("useChart must be used within a ");return s}const Dr=x.forwardRef(({id:s,className:a,children:l,config:i,...c},d)=>{const m=x.useId(),h=`chart-${s||m.replace(/:/g,"")}`;return e.jsx(n0.Provider,{value:{config:i},children:e.jsxs("div",{"data-chart":h,ref:d,className:Z("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",a),...c,children:[e.jsx(tE,{id:h,config:i}),e.jsx(l2,{children:l})]})})});Dr.displayName="Chart";const tE=({id:s,config:a})=>{const l=Object.entries(a).filter(([,i])=>i.theme||i.color);return l.length?e.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(eE).map(([i,c])=>` +${c} [data-chart=${s}] { +${l.map(([d,m])=>{const h=m.theme?.[i]||m.color;return h?` --color-${d}: ${h};`:null}).join(` +`)} +} +`).join(` +`)}}):null},Qi=r2,Or=x.forwardRef(({active:s,payload:a,className:l,indicator:i="dot",hideLabel:c=!1,hideIndicator:d=!1,label:m,labelFormatter:h,labelClassName:p,formatter:v,color:g,nameKey:j,labelKey:b},w)=>{const{config:S}=a0(),C=x.useMemo(()=>{if(c||!a?.length)return null;const[T]=a,P=`${b||T?.dataKey||T?.name||"value"}`,M=Gf(S,T,P),k=!b&&typeof m=="string"?S[m]?.label||m:M?.label;return h?e.jsx("div",{className:Z("font-medium",p),children:h(k,a)}):k?e.jsx("div",{className:Z("font-medium",p),children:k}):null},[m,h,a,c,p,S,b]);if(!s||!a?.length)return null;const N=a.length===1&&i!=="dot";return e.jsxs("div",{ref:w,className:Z("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",l),children:[N?null:C,e.jsx("div",{className:"grid gap-1.5",children:a.filter(T=>T.type!=="none").map((T,P)=>{const M=`${j||T.name||T.dataKey||"value"}`,k=Gf(S,T,M),D=g||T.payload.fill||T.color;return e.jsx("div",{className:Z("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",i==="dot"&&"items-center"),children:v&&T?.value!==void 0&&T.name?v(T.value,T.name,T,P,T.payload):e.jsxs(e.Fragment,{children:[k?.icon?e.jsx(k.icon,{}):!d&&e.jsx("div",{className:Z("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":i==="dot","w-1":i==="line","w-0 border-[1.5px] border-dashed bg-transparent":i==="dashed","my-0.5":N&&i==="dashed"}),style:{"--color-bg":D,"--color-border":D}}),e.jsxs("div",{className:Z("flex flex-1 justify-between leading-none",N?"items-end":"items-center"),children:[e.jsxs("div",{className:"grid gap-1.5",children:[N?C:null,e.jsx("span",{className:"text-muted-foreground",children:k?.label||T.name})]}),T.value&&e.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:T.value.toLocaleString()})]})]})},T.dataKey)})})]})});Or.displayName="ChartTooltip";const sE=i2,l0=x.forwardRef(({className:s,hideIcon:a=!1,payload:l,verticalAlign:i="bottom",nameKey:c},d)=>{const{config:m}=a0();return l?.length?e.jsx("div",{ref:d,className:Z("flex items-center justify-center gap-4",i==="top"?"pb-3":"pt-3",s),children:l.filter(h=>h.type!=="none").map(h=>{const p=`${c||h.dataKey||"value"}`,v=Gf(m,h,p);return e.jsxs("div",{className:Z("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[v?.icon&&!a?e.jsx(v.icon,{}):e.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:h.color}}),v?.label]},h.value)})}):null});l0.displayName="ChartLegend";function Gf(s,a,l){if(typeof a!="object"||a===null)return;const i="payload"in a&&typeof a.payload=="object"&&a.payload!==null?a.payload:void 0;let c=l;return l in a&&typeof a[l]=="string"?c=a[l]:i&&l in i&&typeof i[l]=="string"&&(c=i[l]),c in s?s[c]:s[l]}const Oj=s=>typeof s=="boolean"?`${s}`:s===0?"0":s,Aj=iy,Jr=(s,a)=>l=>{var i;if(a?.variants==null)return Aj(s,l?.class,l?.className);const{variants:c,defaultVariants:d}=a,m=Object.keys(c).map(v=>{const g=l?.[v],j=d?.[v];if(g===null)return null;const b=Oj(g)||Oj(j);return c[v][b]}),h=l&&Object.entries(l).reduce((v,g)=>{let[j,b]=g;return b===void 0||(v[j]=b),v},{}),p=a==null||(i=a.compoundVariants)===null||i===void 0?void 0:i.reduce((v,g)=>{let{class:j,className:b,...w}=g;return Object.entries(w).every(S=>{let[C,N]=S;return Array.isArray(N)?N.includes({...d,...h}[C]):{...d,...h}[C]===N})?[...v,j,b]:v},[]);return Aj(s,m,p,l?.class,l?.className)},io=Jr("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),q=x.forwardRef(({className:s,variant:a,size:l,asChild:i=!1,...c},d)=>{const m=i?f2:"button";return e.jsx(m,{className:Z(io({variant:a,size:l,className:s})),ref:d,...c})});q.displayName="Button";function nE(){const[s,a]=x.useState(null),[l,i]=x.useState(!0),[c,d]=x.useState(0),[m,h]=x.useState(24),[p,v]=x.useState(!0),[g,j]=x.useState(null),[b,w]=x.useState(!0),S=x.useCallback(async()=>{try{w(!0);const Y=await $t.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");j({hitokoto:Y.data.hitokoto,from:Y.data.from||Y.data.from_who||"未知"})}catch(Y){console.error("获取一言失败:",Y),j({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{w(!1)}},[]),C=x.useCallback(async()=>{try{const Y=localStorage.getItem("access-token"),G=await $t.get(`/api/webui/statistics/dashboard?hours=${m}`,{headers:{Authorization:`Bearer ${Y}`}});a(G.data),i(!1),d(100)}catch(Y){console.error("Failed to fetch dashboard data:",Y),i(!1),d(100)}},[m]);if(x.useEffect(()=>{if(!l)return;d(0);const Y=setTimeout(()=>d(15),200),G=setTimeout(()=>d(30),800),$=setTimeout(()=>d(45),2e3),oe=setTimeout(()=>d(60),4e3),je=setTimeout(()=>d(75),6500),ae=setTimeout(()=>d(85),9e3),me=setTimeout(()=>d(92),11e3);return()=>{clearTimeout(Y),clearTimeout(G),clearTimeout($),clearTimeout(oe),clearTimeout(je),clearTimeout(ae),clearTimeout(me)}},[l]),x.useEffect(()=>{C(),S()},[C,S]),x.useEffect(()=>{if(!p)return;const Y=setInterval(()=>{C()},3e4);return()=>clearInterval(Y)},[p,C]),l||!s)return e.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:e.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[e.jsx(xa,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(_o,{value:c,className:"h-2"}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[c,"%"]})]})]})});const{summary:N,model_stats:T,hourly_data:P,daily_data:M,recent_activity:k}=s,D=Y=>{const G=Math.floor(Y/3600),$=Math.floor(Y%3600/60);return`${G}小时${$}分钟`},A=Y=>new Date(Y).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),E=T.slice(0,6).map(Y=>({name:Y.model_name,value:Y.request_count,fill:`hsl(var(--chart-${T.indexOf(Y)%5+1}))`})),B={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(Ml,{value:m.toString(),onValueChange:Y=>h(Number(Y)),children:e.jsxs($a,{className:"grid grid-cols-3 w-full sm:w-auto",children:[e.jsx(bt,{value:"24",children:"24小时"}),e.jsx(bt,{value:"168",children:"7天"}),e.jsx(bt,{value:"720",children:"30天"})]})}),e.jsxs(q,{variant:p?"default":"outline",size:"sm",onClick:()=>v(!p),className:"gap-2",children:[e.jsx(xa,{className:`h-4 w-4 ${p?"animate-spin":""}`}),e.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:C,children:e.jsx(xa,{className:"h-4 w-4"})})]})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"总请求数"}),e.jsx(C2,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:N.total_requests.toLocaleString()}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",m<48?m+"小时":Math.floor(m/24)+"天"]})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"总花费"}),e.jsx(k2,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsxs("div",{className:"text-2xl font-bold",children:["¥",N.total_cost.toFixed(2)]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:N.cost_per_hour>0?`¥${N.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"Token消耗"}),e.jsx(T2,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsxs("div",{className:"text-2xl font-bold",children:[(N.total_tokens/1e3).toFixed(1),"K"]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:N.tokens_per_hour>0?`${(N.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"平均响应"}),e.jsx(ao,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsxs("div",{className:"text-2xl font-bold",children:[N.avg_response_time.toFixed(2),"s"]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"在线时长"}),e.jsx(_l,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsx(gt,{children:e.jsx("div",{className:"text-xl font-bold",children:D(N.online_time)})})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"消息处理"}),e.jsx(po,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-xl font-bold",children:N.total_messages.toLocaleString()}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",N.total_replies.toLocaleString()," 条"]})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"成本效率"}),e.jsx(E2,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-xl font-bold",children:N.total_messages>0?`¥${(N.total_cost/N.total_messages*100).toFixed(2)}`:"¥0.00"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),e.jsxs(Ml,{defaultValue:"trends",className:"space-y-4",children:[e.jsxs($a,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[e.jsx(bt,{value:"trends",children:"趋势"}),e.jsx(bt,{value:"models",children:"模型"}),e.jsx(bt,{value:"activity",children:"活动"}),e.jsx(bt,{value:"daily",children:"日统计"})]}),e.jsxs(Vt,{value:"trends",className:"space-y-4",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"请求趋势"}),e.jsxs(us,{children:["最近",m,"小时的请求量变化"]})]}),e.jsx(gt,{children:e.jsx(Dr,{config:B,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:e.jsxs(o2,{data:P,children:[e.jsx(Xc,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),e.jsx(Kc,{dataKey:"timestamp",tickFormatter:Y=>A(Y),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Qi,{content:e.jsx(Or,{labelFormatter:Y=>A(Y)})}),e.jsx(c2,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"花费趋势"}),e.jsx(us,{children:"API调用成本变化"})]}),e.jsx(gt,{children:e.jsx(Dr,{config:B,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:e.jsxs(uf,{data:P,children:[e.jsx(Xc,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),e.jsx(Kc,{dataKey:"timestamp",tickFormatter:Y=>A(Y),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Qi,{content:e.jsx(Or,{labelFormatter:Y=>A(Y)})}),e.jsx(Qc,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"Token消耗"}),e.jsx(us,{children:"Token使用量变化"})]}),e.jsx(gt,{children:e.jsx(Dr,{config:B,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:e.jsxs(uf,{data:P,children:[e.jsx(Xc,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),e.jsx(Kc,{dataKey:"timestamp",tickFormatter:Y=>A(Y),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Qi,{content:e.jsx(Or,{labelFormatter:Y=>A(Y)})}),e.jsx(Qc,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),e.jsx(Vt,{value:"models",className:"space-y-4",children:e.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"模型请求分布"}),e.jsx(us,{children:"各模型使用占比"})]}),e.jsx(gt,{children:e.jsx(Dr,{config:Object.fromEntries(T.slice(0,6).map((Y,G)=>[Y.model_name,{label:Y.model_name,color:`hsl(var(--chart-${G%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:e.jsxs(d2,{children:[e.jsx(Qi,{content:e.jsx(Or,{})}),e.jsx(u2,{data:E,cx:"50%",cy:"50%",labelLine:!1,label:({name:Y,percent:G})=>`${Y} ${G?(G*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:E.map((Y,G)=>e.jsx(m2,{fill:Y.fill},`cell-${G}`))})]})})})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"模型详细统计"}),e.jsx(us,{children:"请求数、花费和性能"})]}),e.jsx(gt,{children:e.jsx(Ct,{className:"h-[300px] sm:h-[400px]",children:e.jsx("div",{className:"space-y-3",children:T.map((Y,G)=>e.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:Y.model_name}),e.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${G%5+1}))`}})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),e.jsx("span",{className:"ml-1 font-medium",children:Y.request_count.toLocaleString()})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"花费:"}),e.jsxs("span",{className:"ml-1 font-medium",children:["¥",Y.total_cost.toFixed(2)]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),e.jsxs("span",{className:"ml-1 font-medium",children:[(Y.total_tokens/1e3).toFixed(1),"K"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),e.jsxs("span",{className:"ml-1 font-medium",children:[Y.avg_response_time.toFixed(2),"s"]})]})]})]},G))})})})]})]})}),e.jsx(Vt,{value:"activity",children:e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"最近活动"}),e.jsx(us,{children:"最新的API调用记录"})]}),e.jsx(gt,{children:e.jsx(Ct,{className:"h-[400px] sm:h-[500px]",children:e.jsx("div",{className:"space-y-2",children:k.map((Y,G)=>e.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"font-medium text-sm truncate",children:Y.model}),e.jsx("div",{className:"text-xs text-muted-foreground",children:Y.request_type})]}),e.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:A(Y.timestamp)})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),e.jsx("span",{className:"ml-1",children:Y.tokens})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"花费:"}),e.jsxs("span",{className:"ml-1",children:["¥",Y.cost.toFixed(4)]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),e.jsxs("span",{className:"ml-1",children:[Y.time_cost.toFixed(2),"s"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"状态:"}),e.jsx("span",{className:`ml-1 ${Y.status==="success"?"text-green-600":"text-red-600"}`,children:Y.status})]})]})]},G))})})})]})}),e.jsx(Vt,{value:"daily",children:e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"每日统计"}),e.jsx(us,{children:"最近7天的数据汇总"})]}),e.jsx(gt,{children:e.jsx(Dr,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:e.jsxs(uf,{data:M,children:[e.jsx(Xc,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),e.jsx(Kc,{dataKey:"timestamp",tickFormatter:Y=>{const G=new Date(Y);return`${G.getMonth()+1}/${G.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Qi,{content:e.jsx(Or,{labelFormatter:Y=>new Date(Y).toLocaleDateString("zh-CN")})}),e.jsx(sE,{content:e.jsx(l0,{})}),e.jsx(Qc,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),e.jsx(Qc,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),e.jsxs(Ue,{className:"border-2 border-primary/20",children:[e.jsx(ot,{className:"pb-3",children:e.jsx(ct,{className:"text-lg",children:"每日一言"})}),e.jsx(gt,{children:b?e.jsxs("div",{className:"space-y-2",children:[e.jsx(Ej,{className:"h-6 w-3/4"}),e.jsx(Ej,{className:"h-4 w-1/4"})]}):g?e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',g.hitokoto,'"']}),e.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",g.from]})]}):null})]})]})})}const aE={theme:"system",setTheme:()=>null},r0=x.createContext(aE),Oh=()=>{const s=x.useContext(r0);if(s===void 0)throw new Error("useTheme must be used within a ThemeProvider");return s},lE=(s,a,l)=>{const i=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||i){a(s);return}const c=l.clientX,d=l.clientY,m=Math.hypot(Math.max(c,innerWidth-c),Math.max(d,innerHeight-d));document.startViewTransition(()=>{a(s)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${c}px ${d}px)`,`circle(${m}px at ${c}px ${d}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},i0=x.createContext(void 0),o0=()=>{const s=x.useContext(i0);if(s===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return s};var Hd="Switch",[rE]=Dn(Hd),[iE,oE]=rE(Hd),c0=x.forwardRef((s,a)=>{const{__scopeSwitch:l,name:i,checked:c,defaultChecked:d,required:m,disabled:h,value:p="on",onCheckedChange:v,form:g,...j}=s,[b,w]=x.useState(null),S=Tt(a,M=>w(M)),C=x.useRef(!1),N=b?g||!!b.closest("form"):!0,[T,P]=Qa({prop:c,defaultProp:d??!1,onChange:v,caller:Hd});return e.jsxs(iE,{scope:l,checked:T,disabled:h,children:[e.jsx(dt.button,{type:"button",role:"switch","aria-checked":T,"aria-required":m,"data-state":f0(T),"data-disabled":h?"":void 0,disabled:h,value:p,...j,ref:S,onClick:be(s.onClick,M=>{P(k=>!k),N&&(C.current=M.isPropagationStopped(),C.current||M.stopPropagation())})}),N&&e.jsx(m0,{control:b,bubbles:!C.current,name:i,value:p,checked:T,required:m,disabled:h,form:g,style:{transform:"translateX(-100%)"}})]})});c0.displayName=Hd;var d0="SwitchThumb",u0=x.forwardRef((s,a)=>{const{__scopeSwitch:l,...i}=s,c=oE(d0,l);return e.jsx(dt.span,{"data-state":f0(c.checked),"data-disabled":c.disabled?"":void 0,...i,ref:a})});u0.displayName=d0;var cE="SwitchBubbleInput",m0=x.forwardRef(({__scopeSwitch:s,control:a,checked:l,bubbles:i=!0,...c},d)=>{const m=x.useRef(null),h=Tt(m,d),p=cy(l),v=dy(a);return x.useEffect(()=>{const g=m.current;if(!g)return;const j=window.HTMLInputElement.prototype,w=Object.getOwnPropertyDescriptor(j,"checked").set;if(p!==l&&w){const S=new Event("click",{bubbles:i});w.call(g,l),g.dispatchEvent(S)}},[p,l,i]),e.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:l,...c,tabIndex:-1,ref:h,style:{...c.style,...v,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});m0.displayName=cE;function f0(s){return s?"checked":"unchecked"}var h0=c0,dE=u0;const Ze=x.forwardRef(({className:s,...a},l)=>e.jsx(h0,{className:Z("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",s),...a,ref:l,children:e.jsx(dE,{className:Z("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));Ze.displayName=h0.displayName;const uE=Jr("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),U=x.forwardRef(({className:s,...a},l)=>e.jsx(uy,{ref:l,className:Z(uE(),s),...a}));U.displayName=uy.displayName;const pe=x.forwardRef(({className:s,type:a,...l},i)=>e.jsx("input",{type:a,className:Z("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",s),ref:i,...l}));pe.displayName="Input";const mE=1,fE=1e6;let bf=0;function hE(){return bf=(bf+1)%Number.MAX_SAFE_INTEGER,bf.toString()}const Nf=new Map,Rj=s=>{if(Nf.has(s))return;const a=setTimeout(()=>{Nf.delete(s),no({type:"REMOVE_TOAST",toastId:s})},fE);Nf.set(s,a)},xE=(s,a)=>{switch(a.type){case"ADD_TOAST":return{...s,toasts:[a.toast,...s.toasts].slice(0,mE)};case"UPDATE_TOAST":return{...s,toasts:s.toasts.map(l=>l.id===a.toast.id?{...l,...a.toast}:l)};case"DISMISS_TOAST":{const{toastId:l}=a;return l?Rj(l):s.toasts.forEach(i=>{Rj(i.id)}),{...s,toasts:s.toasts.map(i=>i.id===l||l===void 0?{...i,open:!1}:i)}}case"REMOVE_TOAST":return a.toastId===void 0?{...s,toasts:[]}:{...s,toasts:s.toasts.filter(l=>l.id!==a.toastId)}}},dd=[];let ud={toasts:[]};function no(s){ud=xE(ud,s),dd.forEach(a=>{a(ud)})}function pE({...s}){const a=hE(),l=c=>no({type:"UPDATE_TOAST",toast:{...c,id:a}}),i=()=>no({type:"DISMISS_TOAST",toastId:a});return no({type:"ADD_TOAST",toast:{...s,id:a,open:!0,onOpenChange:c=>{c||i()}}}),{id:a,dismiss:i,update:l}}function Es(){const[s,a]=x.useState(ud);return x.useEffect(()=>(dd.push(a),()=>{const l=dd.indexOf(a);l>-1&&dd.splice(l,1)}),[s]),{...s,toast:pE,dismiss:l=>no({type:"DISMISS_TOAST",toastId:l})}}const gE=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:s=>s.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:s=>/[A-Z]/.test(s)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:s=>/[a-z]/.test(s)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:s=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(s)}];function vE(s){const a=gE.map(i=>({id:i.id,label:i.label,description:i.description,passed:i.validate(s)}));return{isValid:a.every(i=>i.passed),rules:a}}const Ah="0.11.5 Beta",Rh="MaiBot Dashboard",jE=`${Rh} v${Ah}`,yE=(s="v")=>`${s}${Ah}`,bs=mh,x0=my,bE=oh,p0=x.forwardRef(({className:s,...a},l)=>e.jsx(Cd,{ref:l,className:Z("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...a}));p0.displayName=Cd.displayName;const ms=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(bE,{children:[e.jsx(p0,{}),e.jsxs(kd,{ref:i,className:Z("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...l,children:[a,e.jsxs(ch,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[e.jsx(go,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));ms.displayName=kd.displayName;const fs=({className:s,...a})=>e.jsx("div",{className:Z("flex flex-col space-y-1.5 text-center sm:text-left",s),...a});fs.displayName="DialogHeader";const $s=({className:s,...a})=>e.jsx("div",{className:Z("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...a});$s.displayName="DialogFooter";const hs=x.forwardRef(({className:s,...a},l)=>e.jsx(dh,{ref:l,className:Z("text-lg font-semibold leading-none tracking-tight",s),...a}));hs.displayName=dh.displayName;const ks=x.forwardRef(({className:s,...a},l)=>e.jsx(uh,{ref:l,className:Z("text-sm text-muted-foreground",s),...a}));ks.displayName=uh.displayName;var NE=Symbol("radix.slottable");function wE(s){const a=({children:l})=>e.jsx(e.Fragment,{children:l});return a.displayName=`${s}.Slottable`,a.__radixId=NE,a}var g0="AlertDialog",[SE]=Dn(g0,[fy]),ga=fy(),v0=s=>{const{__scopeAlertDialog:a,...l}=s,i=ga(a);return e.jsx(mh,{...i,...l,modal:!0})};v0.displayName=g0;var _E="AlertDialogTrigger",j0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(my,{...c,...i,ref:a})});j0.displayName=_E;var CE="AlertDialogPortal",y0=s=>{const{__scopeAlertDialog:a,...l}=s,i=ga(a);return e.jsx(oh,{...i,...l})};y0.displayName=CE;var kE="AlertDialogOverlay",b0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(Cd,{...c,...i,ref:a})});b0.displayName=kE;var Br="AlertDialogContent",[TE,EE]=SE(Br),ME=wE("AlertDialogContent"),N0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,children:i,...c}=s,d=ga(l),m=x.useRef(null),h=Tt(a,m),p=x.useRef(null);return e.jsx(h2,{contentName:Br,titleName:w0,docsSlug:"alert-dialog",children:e.jsx(TE,{scope:l,cancelRef:p,children:e.jsxs(kd,{role:"alertdialog",...d,...c,ref:h,onOpenAutoFocus:be(c.onOpenAutoFocus,v=>{v.preventDefault(),p.current?.focus({preventScroll:!0})}),onPointerDownOutside:v=>v.preventDefault(),onInteractOutside:v=>v.preventDefault(),children:[e.jsx(ME,{children:i}),e.jsx(OE,{contentRef:m})]})})})});N0.displayName=Br;var w0="AlertDialogTitle",S0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(dh,{...c,...i,ref:a})});S0.displayName=w0;var _0="AlertDialogDescription",C0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(uh,{...c,...i,ref:a})});C0.displayName=_0;var DE="AlertDialogAction",k0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(ch,{...c,...i,ref:a})});k0.displayName=DE;var T0="AlertDialogCancel",E0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,{cancelRef:c}=EE(T0,l),d=ga(l),m=Tt(a,c);return e.jsx(ch,{...d,...i,ref:m})});E0.displayName=T0;var OE=({contentRef:s})=>{const a=`\`${Br}\` requires a description for the component to be accessible for screen reader users. + +You can add a description to the \`${Br}\` by passing a \`${_0}\` component as a child, which also benefits sighted users by adding visible context to the dialog. + +Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Br}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. + +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return x.useEffect(()=>{document.getElementById(s.current?.getAttribute("aria-describedby"))||console.warn(a)},[a,s]),null},AE=v0,RE=j0,zE=y0,M0=b0,D0=N0,O0=k0,A0=E0,R0=S0,z0=C0;const Ft=AE,_s=RE,PE=zE,P0=x.forwardRef(({className:s,...a},l)=>e.jsx(M0,{className:Z("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...a,ref:l}));P0.displayName=M0.displayName;const Ot=x.forwardRef(({className:s,...a},l)=>e.jsxs(PE,{children:[e.jsx(P0,{}),e.jsx(D0,{ref:l,className:Z("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...a})]}));Ot.displayName=D0.displayName;const At=({className:s,...a})=>e.jsx("div",{className:Z("flex flex-col space-y-2 text-center sm:text-left",s),...a});At.displayName="AlertDialogHeader";const Rt=({className:s,...a})=>e.jsx("div",{className:Z("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...a});Rt.displayName="AlertDialogFooter";const zt=x.forwardRef(({className:s,...a},l)=>e.jsx(R0,{ref:l,className:Z("text-lg font-semibold",s),...a}));zt.displayName=R0.displayName;const Pt=x.forwardRef(({className:s,...a},l)=>e.jsx(z0,{ref:l,className:Z("text-sm text-muted-foreground",s),...a}));Pt.displayName=z0.displayName;const Lt=x.forwardRef(({className:s,...a},l)=>e.jsx(O0,{ref:l,className:Z(io(),s),...a}));Lt.displayName=O0.displayName;const Bt=x.forwardRef(({className:s,...a},l)=>e.jsx(A0,{ref:l,className:Z(io({variant:"outline"}),"mt-2 sm:mt-0",s),...a}));Bt.displayName=A0.displayName;function LE(){return e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),e.jsxs(Ml,{defaultValue:"appearance",className:"w-full",children:[e.jsxs($a,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[e.jsxs(bt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[e.jsx(Ty,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),e.jsx("span",{children:"外观"})]}),e.jsxs(bt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[e.jsx(M2,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),e.jsx("span",{children:"安全"})]}),e.jsxs(bt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[e.jsx(Tn,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),e.jsx("span",{children:"其他"})]}),e.jsxs(bt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[e.jsx(Fr,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),e.jsx("span",{children:"关于"})]})]}),e.jsxs(Ct,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[e.jsx(Vt,{value:"appearance",className:"mt-0",children:e.jsx(BE,{})}),e.jsx(Vt,{value:"security",className:"mt-0",children:e.jsx(UE,{})}),e.jsx(Vt,{value:"other",className:"mt-0",children:e.jsx(HE,{})}),e.jsx(Vt,{value:"about",className:"mt-0",children:e.jsx(FE,{})})]})]})]})}function zj(s){const a=document.documentElement,i={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[s];if(i)a.style.setProperty("--primary",i.hsl),i.gradient?(a.style.setProperty("--primary-gradient",i.gradient),a.classList.add("has-gradient")):(a.style.removeProperty("--primary-gradient"),a.classList.remove("has-gradient"));else if(s.startsWith("#")){const c=d=>{d=d.replace("#","");const m=parseInt(d.substring(0,2),16)/255,h=parseInt(d.substring(2,4),16)/255,p=parseInt(d.substring(4,6),16)/255,v=Math.max(m,h,p),g=Math.min(m,h,p);let j=0,b=0;const w=(v+g)/2;if(v!==g){const S=v-g;switch(b=w>.5?S/(2-v-g):S/(v+g),v){case m:j=((h-p)/S+(hlocalStorage.getItem("accent-color")||"blue");x.useEffect(()=>{const v=localStorage.getItem("accent-color")||"blue";zj(v)},[]);const p=v=>{h(v),localStorage.setItem("accent-color",v),zj(v)};return e.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[e.jsx(wf,{value:"light",current:s,onChange:a,label:"浅色",description:"始终使用浅色主题"}),e.jsx(wf,{value:"dark",current:s,onChange:a,label:"深色",description:"始终使用深色主题"}),e.jsx(wf,{value:"system",current:s,onChange:a,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),e.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[e.jsx(vn,{value:"blue",current:m,onChange:p,label:"蓝色",colorClass:"bg-blue-500"}),e.jsx(vn,{value:"purple",current:m,onChange:p,label:"紫色",colorClass:"bg-purple-500"}),e.jsx(vn,{value:"green",current:m,onChange:p,label:"绿色",colorClass:"bg-green-500"}),e.jsx(vn,{value:"orange",current:m,onChange:p,label:"橙色",colorClass:"bg-orange-500"}),e.jsx(vn,{value:"pink",current:m,onChange:p,label:"粉色",colorClass:"bg-pink-500"}),e.jsx(vn,{value:"red",current:m,onChange:p,label:"红色",colorClass:"bg-red-500"})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),e.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[e.jsx(vn,{value:"gradient-sunset",current:m,onChange:p,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),e.jsx(vn,{value:"gradient-ocean",current:m,onChange:p,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),e.jsx(vn,{value:"gradient-forest",current:m,onChange:p,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),e.jsx(vn,{value:"gradient-aurora",current:m,onChange:p,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),e.jsx(vn,{value:"gradient-fire",current:m,onChange:p,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),e.jsx(vn,{value:"gradient-twilight",current:m,onChange:p,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[e.jsx("div",{className:"flex-1",children:e.jsx("input",{type:"color",value:m.startsWith("#")?m:"#3b82f6",onChange:v=>p(v.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),e.jsx("div",{className:"flex-1",children:e.jsx(pe,{type:"text",value:m,onChange:v=>p(v.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),e.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),e.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[e.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5 flex-1",children:[e.jsx(U,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),e.jsx(Ze,{id:"animations",checked:l,onCheckedChange:i})]})}),e.jsx("div",{className:"rounded-lg border bg-card p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5 flex-1",children:[e.jsx(U,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),e.jsx(Ze,{id:"waves-background",checked:c,onCheckedChange:d})]})})]})]})]})}function UE(){const s=qn(),[a,l]=x.useState(""),[i,c]=x.useState(""),[d,m]=x.useState(!1),[h,p]=x.useState(!1),[v,g]=x.useState(!1),[j,b]=x.useState(!1),[w,S]=x.useState(!1),[C,N]=x.useState(!1),[T,P]=x.useState(""),[M,k]=x.useState(!1),{toast:D}=Es(),A=x.useMemo(()=>vE(i),[i]),E=()=>localStorage.getItem("access-token")||"",B=async ae=>{try{await navigator.clipboard.writeText(ae),S(!0),D({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>S(!1),2e3)}catch{D({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},Y=async()=>{if(!i.trim()){D({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!A.isValid){const ae=A.rules.filter(me=>!me.passed).map(me=>me.label).join(", ");D({title:"格式错误",description:`Token 不符合要求: ${ae}`,variant:"destructive"});return}g(!0);try{const ae=E(),me=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${ae}`},body:JSON.stringify({new_token:i.trim()})}),R=await me.json();me.ok&&R.success?(localStorage.setItem("access-token",i.trim()),c(""),a&&l(i.trim()),D({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),s({to:"/auth"})},1500)):D({title:"更新失败",description:R.message||"无法更新 Token",variant:"destructive"})}catch(ae){console.error("更新 Token 错误:",ae),D({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},G=async()=>{b(!0);try{const ae=E(),me=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${ae}`}}),R=await me.json();me.ok&&R.success?(localStorage.setItem("access-token",R.token),l(R.token),P(R.token),N(!0),k(!1),D({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):D({title:"生成失败",description:R.message||"无法生成新 Token",variant:"destructive"})}catch(ae){console.error("生成 Token 错误:",ae),D({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{b(!1)}},$=async()=>{try{await navigator.clipboard.writeText(T),k(!0),D({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{D({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},oe=()=>{N(!1),setTimeout(()=>{P(""),k(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),s({to:"/auth"})},500)},je=ae=>{ae||oe()};return e.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[e.jsx(bs,{open:C,onOpenChange:je,children:e.jsxs(ms,{className:"sm:max-w-md",children:[e.jsxs(fs,{children:[e.jsxs(hs,{className:"flex items-center gap-2",children:[e.jsx(Lr,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),e.jsx(ks,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[e.jsx(U,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),e.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:T})]}),e.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(Lr,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[e.jsx("p",{className:"font-semibold",children:"重要提示"}),e.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[e.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),e.jsx("li",{children:"请立即复制并保存到安全的位置"}),e.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),e.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),e.jsxs($s,{className:"gap-2 sm:gap-0",children:[e.jsx(q,{variant:"outline",onClick:$,className:"gap-2",children:M?e.jsxs(e.Fragment,{children:[e.jsx(Cl,{className:"h-4 w-4 text-green-500"}),"已复制"]}):e.jsxs(e.Fragment,{children:[e.jsx(Df,{className:"h-4 w-4"}),"复制 Token"]})}),e.jsx(q,{onClick:oe,children:"我已保存,关闭"})]})]})}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),e.jsx("div",{className:"space-y-3 sm:space-y-4",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(pe,{id:"current-token",type:d?"text":"password",value:a||E(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),e.jsx("button",{onClick:()=>{a||l(E()),m(!d)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:d?"隐藏":"显示",children:d?e.jsx(Of,{className:"h-4 w-4 text-muted-foreground"}):e.jsx(Mn,{className:"h-4 w-4 text-muted-foreground"})})]}),e.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[e.jsx(q,{variant:"outline",size:"icon",onClick:()=>B(E()),title:"复制到剪贴板",className:"flex-shrink-0",children:w?e.jsx(Cl,{className:"h-4 w-4 text-green-500"}):e.jsx(Df,{className:"h-4 w-4"})}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{variant:"outline",disabled:j,className:"gap-2 flex-1 sm:flex-none",children:[e.jsx(xa,{className:Z("h-4 w-4",j&&"animate-spin")}),e.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),e.jsx("span",{className:"sm:hidden",children:"生成"})]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重新生成 Token"}),e.jsx(Pt,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:G,children:"确认生成"})]})]})]})]})]}),e.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),e.jsxs("div",{className:"relative",children:[e.jsx(pe,{id:"new-token",type:h?"text":"password",value:i,onChange:ae=>c(ae.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),e.jsx("button",{onClick:()=>p(!h),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:h?"隐藏":"显示",children:h?e.jsx(Of,{className:"h-4 w-4 text-muted-foreground"}):e.jsx(Mn,{className:"h-4 w-4 text-muted-foreground"})})]}),i&&e.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),e.jsx("div",{className:"space-y-1.5",children:A.rules.map(ae=>e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[ae.passed?e.jsx(Ys,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):e.jsx(Af,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),e.jsx("span",{className:Z(ae.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:ae.label})]},ae.id))}),A.isValid&&e.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[e.jsx(Cl,{className:"h-4 w-4"}),e.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),e.jsx(q,{onClick:Y,disabled:v||!A.isValid||!i,className:"w-full sm:w-auto",children:v?"更新中...":"更新自定义 Token"})]})]}),e.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[e.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),e.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),e.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),e.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),e.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),e.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),e.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function HE(){const s=qn(),{toast:a}=Es(),[l,i]=x.useState(!1),c=async()=>{i(!0);try{const d=localStorage.getItem("access-token"),m=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${d}`}}),h=await m.json();m.ok&&h.success?(a({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{s({to:"/setup"})},1e3)):a({title:"重置失败",description:h.message||"无法重置配置状态",variant:"destructive"})}catch(d){console.error("重置配置状态错误:",d),a({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{i(!1)}};return e.jsx("div",{className:"space-y-4 sm:space-y-6",children:e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsx("div",{className:"space-y-2",children:e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{variant:"outline",disabled:l,className:"gap-2",children:[e.jsx(D2,{className:Z("h-4 w-4",l&&"animate-spin")}),"重新进行初次配置"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重新配置"}),e.jsx(Pt,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:c,children:"确认重置"})]})]})]})]})]})})}function FE(){return e.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",Rh]}),e.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[e.jsxs("p",{children:["版本: ",Ah]}),e.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),e.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",e.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),e.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{children:"React 19.2.0"}),e.jsx("li",{children:"TypeScript 5.7.2"}),e.jsx("li",{children:"Vite 6.0.7"}),e.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),e.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{children:"shadcn/ui"}),e.jsx("li",{children:"Radix UI"}),e.jsx("li",{children:"Tailwind CSS 3.4.17"}),e.jsx("li",{children:"Lucide Icons"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"font-medium text-foreground",children:"后端"}),e.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{children:"Python 3.12+"}),e.jsx("li",{children:"FastAPI"}),e.jsx("li",{children:"Uvicorn"}),e.jsx("li",{children:"WebSocket"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),e.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{children:"Bun / npm"}),e.jsx("li",{children:"ESLint 9.17.0"}),e.jsx("li",{children:"PostCSS"})]})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),e.jsx(Ct,{className:"h-[300px] sm:h-[400px]",children:e.jsxs("div",{className:"space-y-4 pr-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"React",description:"用户界面构建库",license:"MIT"}),e.jsx(qt,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),e.jsx(qt,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),e.jsx(qt,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),e.jsx(qt,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),e.jsx(qt,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),e.jsx(qt,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),e.jsx(qt,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),e.jsx(qt,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),e.jsx(qt,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),e.jsx(qt,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),e.jsx(qt,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),e.jsx(qt,{name:"Pydantic",description:"数据验证库",license:"MIT"}),e.jsx(qt,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),e.jsx(qt,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),e.jsx(qt,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),e.jsx(qt,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:e.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[e.jsx("div",{className:"flex-shrink-0 mt-0.5",children:e.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:e.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function qt({name:s,description:a,license:l}){return e.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-foreground truncate",children:s}),e.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:a})]}),e.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:l})]})}function wf({value:s,current:a,onChange:l,label:i,description:c}){const d=a===s;return e.jsxs("button",{onClick:()=>l(s),className:Z("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",d?"border-primary bg-accent":"border-border"),children:[d&&e.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm sm:text-base font-medium",children:i}),e.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:c})]}),e.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[s==="light"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),s==="dark"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),s==="system"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function vn({value:s,current:a,onChange:l,label:i,colorClass:c}){const d=a===s;return e.jsxs("button",{onClick:()=>l(s),className:Z("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",d?"border-primary bg-accent":"border-border"),children:[d&&e.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),e.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[e.jsx("div",{className:Z("h-8 w-8 sm:h-10 sm:w-10 rounded-full",c)}),e.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:i})]})]})}class YE{grad3;p;perm;constructor(a=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let l=0;l<256;l++)this.p[l]=Math.floor(Math.random()*256);this.perm=[];for(let l=0;l<512;l++)this.perm[l]=this.p[l&255]}dot(a,l,i){return a[0]*l+a[1]*i}mix(a,l,i){return(1-i)*a+i*l}fade(a){return a*a*a*(a*(a*6-15)+10)}perlin2(a,l){const i=Math.floor(a)&255,c=Math.floor(l)&255;a-=Math.floor(a),l-=Math.floor(l);const d=this.fade(a),m=this.fade(l),h=this.perm[i]+c,p=this.perm[h],v=this.perm[h+1],g=this.perm[i+1]+c,j=this.perm[g],b=this.perm[g+1];return this.mix(this.mix(this.dot(this.grad3[p%12],a,l),this.dot(this.grad3[j%12],a-1,l),d),this.mix(this.dot(this.grad3[v%12],a,l-1),this.dot(this.grad3[b%12],a-1,l-1),d),m)}}function qE(){const s=x.useRef(null),a=x.useRef(null),l=x.useRef(void 0),i=x.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new YE(Math.random()),bounding:null});return x.useEffect(()=>{const c=a.current,d=s.current;if(!c||!d)return;const m=i.current,h=()=>{const C=c.getBoundingClientRect();m.bounding=C,d.style.width=`${C.width}px`,d.style.height=`${C.height}px`},p=()=>{if(!m.bounding)return;const{width:C,height:N}=m.bounding;m.lines=[],m.paths.forEach(Y=>Y.remove()),m.paths=[];const T=10,P=32,M=C+200,k=N+30,D=Math.ceil(M/T),A=Math.ceil(k/P),E=(C-T*D)/2,B=(N-P*A)/2;for(let Y=0;Y<=D;Y++){const G=[];for(let oe=0;oe<=A;oe++){const je={x:E+T*Y,y:B+P*oe,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};G.push(je)}const $=document.createElementNS("http://www.w3.org/2000/svg","path");d.appendChild($),m.paths.push($),m.lines.push(G)}},v=C=>{const{lines:N,mouse:T,noise:P}=m;N.forEach(M=>{M.forEach(k=>{const D=P.perlin2((k.x+C*.0125)*.002,(k.y+C*.005)*.0015)*12;k.wave.x=Math.cos(D)*32,k.wave.y=Math.sin(D)*16;const A=k.x-T.sx,E=k.y-T.sy,B=Math.hypot(A,E),Y=Math.max(175,T.vs);if(B{const T={x:C.x+C.wave.x+(N?C.cursor.x:0),y:C.y+C.wave.y+(N?C.cursor.y:0)};return T.x=Math.round(T.x*10)/10,T.y=Math.round(T.y*10)/10,T},j=()=>{const{lines:C,paths:N}=m;C.forEach((T,P)=>{let M=g(T[0],!1),k=`M ${M.x} ${M.y}`;T.forEach((D,A)=>{const E=A===T.length-1;M=g(D,!E),k+=`L ${M.x} ${M.y}`}),N[P].setAttribute("d",k)})},b=C=>{const{mouse:N}=m;N.sx+=(N.x-N.sx)*.1,N.sy+=(N.y-N.sy)*.1;const T=N.x-N.lx,P=N.y-N.ly,M=Math.hypot(T,P);N.v=M,N.vs+=(M-N.vs)*.1,N.vs=Math.min(100,N.vs),N.lx=N.x,N.ly=N.y,N.a=Math.atan2(P,T),c&&(c.style.setProperty("--x",`${N.sx}px`),c.style.setProperty("--y",`${N.sy}px`)),v(C),j(),l.current=requestAnimationFrame(b)},w=C=>{if(!m.bounding)return;const{mouse:N}=m;N.x=C.pageX-m.bounding.left,N.y=C.pageY-m.bounding.top+window.scrollY,N.set||(N.sx=N.x,N.sy=N.y,N.lx=N.x,N.ly=N.y,N.set=!0)},S=()=>{h(),p()};return h(),p(),window.addEventListener("resize",S),window.addEventListener("mousemove",w),l.current=requestAnimationFrame(b),()=>{window.removeEventListener("resize",S),window.removeEventListener("mousemove",w),l.current&&cancelAnimationFrame(l.current)}},[]),e.jsxs("div",{ref:a,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[e.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),e.jsx("svg",{ref:s,style:{display:"block",width:"100%",height:"100%"},children:e.jsx("style",{children:` + path { + fill: none; + stroke: hsl(var(--primary) / 0.20); + stroke-width: 1px; + } + `})})]})}function VE(){const s=qn();x.useEffect(()=>{localStorage.getItem("access-token")||s({to:"/auth"})},[s])}function L0(){return!!localStorage.getItem("access-token")}function GE(){const[s,a]=x.useState(""),[l,i]=x.useState(!1),[c,d]=x.useState(""),m=qn(),{enableWavesBackground:h,setEnableWavesBackground:p}=o0(),{theme:v,setTheme:g}=Oh();x.useEffect(()=>{L0()&&m({to:"/"})},[m]);const b=v==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":v,w=()=>{g(b==="dark"?"light":"dark")},S=async C=>{if(C.preventDefault(),d(""),!s.trim()){d("请输入 Access Token");return}i(!0);try{const N=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:s.trim()})}),T=await N.json();if(N.ok&&T.valid){localStorage.setItem("access-token",s.trim());const P=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${s.trim()}`}}),M=await P.json();P.ok&&M.is_first_setup?m({to:"/setup"}):m({to:"/"})}else d(T.message||"Token 验证失败,请检查后重试")}catch(N){console.error("Token 验证错误:",N),d("连接服务器失败,请检查网络连接")}finally{i(!1)}};return e.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[h&&e.jsx(qE,{}),e.jsxs(Ue,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[e.jsx("button",{onClick:w,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:b==="dark"?"切换到浅色模式":"切换到深色模式",children:b==="dark"?e.jsx(Rf,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):e.jsx(zf,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),e.jsxs(ot,{className:"space-y-4 text-center",children:[e.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:e.jsx(Zv,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ct,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),e.jsx(us,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),e.jsx(gt,{children:e.jsxs("form",{onSubmit:S,className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),e.jsxs("div",{className:"relative",children:[e.jsx(O2,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),e.jsx(pe,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:s,onChange:C=>a(C.target.value),className:Z("pl-10",c&&"border-red-500 focus-visible:ring-red-500"),disabled:l,autoFocus:!0,autoComplete:"off"})]})]}),c&&e.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[e.jsx(Tl,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),e.jsx("span",{children:c})]}),e.jsx(q,{type:"submit",className:"w-full",disabled:l,children:l?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),e.jsxs(bs,{children:[e.jsx(x0,{asChild:!0,children:e.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[e.jsx(A2,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),e.jsxs(ms,{className:"sm:max-w-md",children:[e.jsxs(fs,{children:[e.jsxs(hs,{className:"flex items-center gap-2",children:[e.jsx(Zv,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),e.jsx(ks,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(R2,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),e.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[e.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),e.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(ph,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),e.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:e.jsx("code",{className:"text-primary",children:"data/webui.json"})}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",e.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),e.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(Tl,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),e.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[e.jsx("p",{className:"font-semibold",children:"安全提示"}),e.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[e.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),e.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[e.jsx(ao,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsxs(zt,{className:"flex items-center gap-2",children:[e.jsx(ao,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),e.jsx(Pt,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>p(!1),children:"关闭动画"})]})]})]})]})})]}),e.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:e.jsx("p",{children:jE})})]})}const Dt=x.forwardRef(({className:s,...a},l)=>e.jsx("textarea",{className:Z("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",s),ref:l,...a}));Dt.displayName="Textarea";var $E=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],IE=$E.reduce((s,a)=>{const l=ih(`Primitive.${a}`),i=x.forwardRef((c,d)=>{const{asChild:m,...h}=c,p=m?l:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(p,{...h,ref:d})});return i.displayName=`Primitive.${a}`,{...s,[a]:i}},{}),WE="Separator",Pj="horizontal",XE=["horizontal","vertical"],B0=x.forwardRef((s,a)=>{const{decorative:l,orientation:i=Pj,...c}=s,d=KE(i)?i:Pj,h=l?{role:"none"}:{"aria-orientation":d==="vertical"?d:void 0,role:"separator"};return e.jsx(IE.div,{"data-orientation":d,...h,...c,ref:a})});B0.displayName=WE;function KE(s){return XE.includes(s)}var U0=B0;const oo=x.forwardRef(({className:s,orientation:a="horizontal",decorative:l=!0,...i},c)=>e.jsx(U0,{ref:c,decorative:l,orientation:a,className:Z("shrink-0 bg-border",a==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",s),...i}));oo.displayName=U0.displayName;const QE=Jr("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function _t({className:s,variant:a,...l}){return e.jsx("div",{className:Z(QE({variant:a}),s),...l})}function ZE({config:s,onChange:a}){const l=c=>{c.trim()&&!s.alias_names.includes(c.trim())&&a({...s,alias_names:[...s.alias_names,c.trim()]})},i=c=>{a({...s,alias_names:s.alias_names.filter((d,m)=>m!==c)})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"qq_account",children:"QQ账号 *"}),e.jsx(pe,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:s.qq_account||"",onChange:c=>a({...s,qq_account:Number(c.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"nickname",children:"昵称 *"}),e.jsx(pe,{id:"nickname",placeholder:"请输入机器人的昵称",value:s.nickname,onChange:c=>a({...s,nickname:c.target.value})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{children:"别名"}),e.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:s.alias_names.map((c,d)=>e.jsxs(_t,{variant:"secondary",className:"gap-1",children:[c,e.jsx("button",{type:"button",onClick:()=>i(d),className:"ml-1 hover:text-destructive",children:e.jsx(go,{className:"h-3 w-3"})})]},d))}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(pe,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:c=>{c.key==="Enter"&&(l(c.target.value),c.target.value="")}}),e.jsx(q,{type:"button",variant:"outline",onClick:()=>{const c=document.getElementById("alias_input");c&&(l(c.value),c.value="")},children:"添加"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function JE({config:s,onChange:a}){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"personality",children:"人格特征 *"}),e.jsx(Dt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:s.personality,onChange:l=>a({...s,personality:l.target.value}),rows:3}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"reply_style",children:"表达风格 *"}),e.jsx(Dt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:s.reply_style,onChange:l=>a({...s,reply_style:l.target.value}),rows:3}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"interest",children:"兴趣 *"}),e.jsx(Dt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:s.interest,onChange:l=>a({...s,interest:l.target.value}),rows:2}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),e.jsx(oo,{}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"plan_style",children:"群聊说话规则 *"}),e.jsx(Dt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:s.plan_style,onChange:l=>a({...s,plan_style:l.target.value}),rows:4}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),e.jsx(Dt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:s.private_plan_style,onChange:l=>a({...s,private_plan_style:l.target.value}),rows:3}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function e4({config:s,onChange:a}){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{htmlFor:"emoji_chance",children:"表情包激活概率"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[(s.emoji_chance*100).toFixed(0),"%"]})]}),e.jsx(pe,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:s.emoji_chance,onChange:l=>a({...s,emoji_chance:Number(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"max_reg_num",children:"最大表情包数量"}),e.jsx(pe,{id:"max_reg_num",type:"number",min:"1",max:"200",value:s.max_reg_num,onChange:l=>a({...s,max_reg_num:Number(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"do_replace",children:"达到最大数量时替换"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),e.jsx(Ze,{id:"do_replace",checked:s.do_replace,onCheckedChange:l=>a({...s,do_replace:l})})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),e.jsx(pe,{id:"check_interval",type:"number",min:"1",max:"120",value:s.check_interval,onChange:l=>a({...s,check_interval:Number(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),e.jsx(oo,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"steal_emoji",children:"偷取表情包"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),e.jsx(Ze,{id:"steal_emoji",checked:s.steal_emoji,onCheckedChange:l=>a({...s,steal_emoji:l})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"content_filtration",children:"启用表情包过滤"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),e.jsx(Ze,{id:"content_filtration",checked:s.content_filtration,onCheckedChange:l=>a({...s,content_filtration:l})})]}),s.content_filtration&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"filtration_prompt",children:"过滤要求"}),e.jsx(pe,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:s.filtration_prompt,onChange:l=>a({...s,filtration_prompt:l.target.value})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function t4({config:s,onChange:a}){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"enable_tool",children:"启用工具系统"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),e.jsx(Ze,{id:"enable_tool",checked:s.enable_tool,onCheckedChange:l=>a({...s,enable_tool:l})})]}),e.jsx(oo,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"enable_mood",children:"启用情绪系统"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),e.jsx(Ze,{id:"enable_mood",checked:s.enable_mood,onCheckedChange:l=>a({...s,enable_mood:l})})]}),s.enable_mood&&e.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),e.jsx(pe,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:s.mood_update_threshold||1,onChange:l=>a({...s,mood_update_threshold:Number(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"emotion_style",children:"情感特征"}),e.jsx(Dt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:s.emotion_style||"",onChange:l=>a({...s,emotion_style:l.target.value}),rows:2}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),e.jsx(oo,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"all_global",children:"启用全局黑话模式"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),e.jsx(Ze,{id:"all_global",checked:s.all_global,onCheckedChange:l=>a({...s,all_global:l})})]})]})}async function Fe(s,a){const l=await fetch(s,a);if(l.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return l}function Ie(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function s4(){const s=await Fe("/api/webui/config/bot",{method:"GET",headers:Ie()});if(!s.ok)throw new Error("读取Bot配置失败");const l=(await s.json()).config.bot||{};return{qq_account:l.qq_account||0,nickname:l.nickname||"",alias_names:l.alias_names||[]}}async function n4(){const s=await Fe("/api/webui/config/bot",{method:"GET",headers:Ie()});if(!s.ok)throw new Error("读取人格配置失败");const l=(await s.json()).config.personality||{};return{personality:l.personality||"",reply_style:l.reply_style||"",interest:l.interest||"",plan_style:l.plan_style||"",private_plan_style:l.private_plan_style||""}}async function a4(){const s=await Fe("/api/webui/config/bot",{method:"GET",headers:Ie()});if(!s.ok)throw new Error("读取表情包配置失败");const l=(await s.json()).config.emoji||{};return{emoji_chance:l.emoji_chance??.4,max_reg_num:l.max_reg_num??40,do_replace:l.do_replace??!0,check_interval:l.check_interval??10,steal_emoji:l.steal_emoji??!0,content_filtration:l.content_filtration??!1,filtration_prompt:l.filtration_prompt||""}}async function l4(){const s=await Fe("/api/webui/config/bot",{method:"GET",headers:Ie()});if(!s.ok)throw new Error("读取其他配置失败");const l=(await s.json()).config,i=l.tool||{},c=l.mood||{},d=l.jargon||{};return{enable_tool:i.enable_tool??!0,enable_mood:c.enable_mood??!1,mood_update_threshold:c.mood_update_threshold,emotion_style:c.emotion_style,all_global:d.all_global??!0}}async function r4(s){const a=await Fe("/api/webui/config/bot/section/bot",{method:"POST",headers:Ie(),body:JSON.stringify(s)});if(!a.ok){const l=await a.json();throw new Error(l.detail||"保存Bot基础配置失败")}return await a.json()}async function i4(s){const a=await Fe("/api/webui/config/bot/section/personality",{method:"POST",headers:Ie(),body:JSON.stringify(s)});if(!a.ok){const l=await a.json();throw new Error(l.detail||"保存人格配置失败")}return await a.json()}async function o4(s){const a=await Fe("/api/webui/config/bot/section/emoji",{method:"POST",headers:Ie(),body:JSON.stringify(s)});if(!a.ok){const l=await a.json();throw new Error(l.detail||"保存表情包配置失败")}return await a.json()}async function c4(s){const a=[];a.push(Fe("/api/webui/config/bot/section/tool",{method:"POST",headers:Ie(),body:JSON.stringify({enable_tool:s.enable_tool})})),a.push(Fe("/api/webui/config/bot/section/jargon",{method:"POST",headers:Ie(),body:JSON.stringify({all_global:s.all_global})}));const l={enable_mood:s.enable_mood};s.enable_mood&&(l.mood_update_threshold=s.mood_update_threshold||1,l.emotion_style=s.emotion_style||""),a.push(Fe("/api/webui/config/bot/section/mood",{method:"POST",headers:Ie(),body:JSON.stringify(l)}));const i=await Promise.all(a);for(const c of i)if(!c.ok){const d=await c.json();throw new Error(d.detail||"保存其他配置失败")}return{success:!0}}async function Lj(){const s=localStorage.getItem("access-token"),a=await Fe("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${s}`}});if(!a.ok){const l=await a.json();throw new Error(l.message||"标记配置完成失败")}return await a.json()}function d4(){const s=qn(),{toast:a}=Es(),[l,i]=x.useState(0),[c,d]=x.useState(!1),[m,h]=x.useState(!1),[p,v]=x.useState(!0),[g,j]=x.useState({qq_account:0,nickname:"",alias_names:[]}),[b,w]=x.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.请控制你的发言频率,不要太过频繁的发言 +4.如果有人对你感到厌烦,请减少回复 +5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.某句话如果已经被回复过,不要重复回复`}),[S,C]=x.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[N,T]=x.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),P=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:P2},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:Ey},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:gh},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Tn},{id:"complete",title:"完成设置",description:"后续配置提示",icon:ao}],M=(l+1)/P.length*100;x.useEffect(()=>{(async()=>{try{v(!0);const[$,oe,je,ae]=await Promise.all([s4(),n4(),a4(),l4()]);j($),w(oe),C(je),T(ae)}catch($){a({title:"加载配置失败",description:$ instanceof Error?$.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{v(!1)}})()},[a]);const k=async()=>{h(!0);try{switch(l){case 0:await r4(g);break;case 1:await i4(b);break;case 2:await o4(S);break;case 3:await c4(N);break}return a({title:"保存成功",description:`${P[l].title}配置已保存`}),!0}catch(G){return a({title:"保存失败",description:G instanceof Error?G.message:"未知错误",variant:"destructive"}),!1}finally{h(!1)}},D=async()=>{await k()&&l{l>0&&i(l-1)},E=async()=>{d(!0);try{if(!await k()){d(!1);return}await Lj(),a({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{s({to:"/"})},500)}catch(G){a({title:"完成失败",description:G instanceof Error?G.message:"未知错误",variant:"destructive"})}finally{d(!1)}},B=async()=>{try{await Lj(),s({to:"/"})}catch(G){a({title:"跳过失败",description:G instanceof Error?G.message:"未知错误",variant:"destructive"})}},Y=()=>{switch(l){case 0:return e.jsx(ZE,{config:g,onChange:j});case 1:return e.jsx(JE,{config:b,onChange:w});case 2:return e.jsx(e4,{config:S,onChange:C});case 3:return e.jsx(t4,{config:N,onChange:T});case 4:return e.jsxs("div",{className:"space-y-6 text-center py-8",children:[e.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:e.jsx(ao,{className:"h-8 w-8 text-primary",strokeWidth:2})}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),e.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5",children:e.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5",children:e.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"添加模型"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5",children:e.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"配置模型任务"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return e.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),e.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),p?e.jsxs("div",{className:"relative z-10 text-center",children:[e.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:e.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),e.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[e.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[e.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:e.jsx(z2,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),e.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),e.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",Rh," 的初始配置"]})]}),e.jsxs("div",{className:"mb-6 md:mb-8",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[e.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",l+1," / ",P.length]}),e.jsxs("span",{className:"font-medium text-primary",children:[Math.round(M),"%"]})]}),e.jsx(_o,{value:M,className:"h-2"})]}),e.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:P.map((G,$)=>{const oe=G.icon;return e.jsxs("div",{className:Z("flex flex-1 flex-col items-center gap-1 md:gap-2",$s({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[e.jsx(fd,{className:"h-4 w-4"}),"返回首页"]}),e.jsxs(q,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[e.jsx(My,{className:"h-4 w-4"}),"返回上一页"]})]}),e.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var F0=["PageUp","PageDown"],Y0=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],q0={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},ei="Slider",[$f,u4,m4]=_d(ei),[V0]=Dn(ei,[m4]),[f4,Fd]=V0(ei),G0=x.forwardRef((s,a)=>{const{name:l,min:i=0,max:c=100,step:d=1,orientation:m="horizontal",disabled:h=!1,minStepsBetweenThumbs:p=0,defaultValue:v=[i],value:g,onValueChange:j=()=>{},onValueCommit:b=()=>{},inverted:w=!1,form:S,...C}=s,N=x.useRef(new Set),T=x.useRef(0),M=m==="horizontal"?h4:x4,[k=[],D]=Qa({prop:g,defaultProp:v,onChange:$=>{[...N.current][T.current]?.focus(),j($)}}),A=x.useRef(k);function E($){const oe=y4(k,$);G($,oe)}function B($){G($,T.current)}function Y(){const $=A.current[T.current];k[T.current]!==$&&b(k)}function G($,oe,{commit:je}={commit:!1}){const ae=S4(d),me=_4(Math.round(($-i)/d)*d+i,ae),R=rh(me,[i,c]);D((O=[])=>{const L=v4(O,R,oe);if(w4(L,p*d)){T.current=L.indexOf(R);const ee=String(L)!==String(O);return ee&&je&&b(L),ee?L:O}else return O})}return e.jsx(f4,{scope:s.__scopeSlider,name:l,disabled:h,min:i,max:c,valueIndexToChangeRef:T,thumbs:N.current,values:k,orientation:m,form:S,children:e.jsx($f.Provider,{scope:s.__scopeSlider,children:e.jsx($f.Slot,{scope:s.__scopeSlider,children:e.jsx(M,{"aria-disabled":h,"data-disabled":h?"":void 0,...C,ref:a,onPointerDown:be(C.onPointerDown,()=>{h||(A.current=k)}),min:i,max:c,inverted:w,onSlideStart:h?void 0:E,onSlideMove:h?void 0:B,onSlideEnd:h?void 0:Y,onHomeKeyDown:()=>!h&&G(i,0,{commit:!0}),onEndKeyDown:()=>!h&&G(c,k.length-1,{commit:!0}),onStepKeyDown:({event:$,direction:oe})=>{if(!h){const me=F0.includes($.key)||$.shiftKey&&Y0.includes($.key)?10:1,R=T.current,O=k[R],L=d*me*oe;G(O+L,R,{commit:!0})}}})})})})});G0.displayName=ei;var[$0,I0]=V0(ei,{startEdge:"left",endEdge:"right",size:"width",direction:1}),h4=x.forwardRef((s,a)=>{const{min:l,max:i,dir:c,inverted:d,onSlideStart:m,onSlideMove:h,onSlideEnd:p,onStepKeyDown:v,...g}=s,[j,b]=x.useState(null),w=Tt(a,M=>b(M)),S=x.useRef(void 0),C=xo(c),N=C==="ltr",T=N&&!d||!N&&d;function P(M){const k=S.current||j.getBoundingClientRect(),D=[0,k.width],E=zh(D,T?[l,i]:[i,l]);return S.current=k,E(M-k.left)}return e.jsx($0,{scope:s.__scopeSlider,startEdge:T?"left":"right",endEdge:T?"right":"left",direction:T?1:-1,size:"width",children:e.jsx(W0,{dir:C,"data-orientation":"horizontal",...g,ref:w,style:{...g.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:M=>{const k=P(M.clientX);m?.(k)},onSlideMove:M=>{const k=P(M.clientX);h?.(k)},onSlideEnd:()=>{S.current=void 0,p?.()},onStepKeyDown:M=>{const D=q0[T?"from-left":"from-right"].includes(M.key);v?.({event:M,direction:D?-1:1})}})})}),x4=x.forwardRef((s,a)=>{const{min:l,max:i,inverted:c,onSlideStart:d,onSlideMove:m,onSlideEnd:h,onStepKeyDown:p,...v}=s,g=x.useRef(null),j=Tt(a,g),b=x.useRef(void 0),w=!c;function S(C){const N=b.current||g.current.getBoundingClientRect(),T=[0,N.height],M=zh(T,w?[i,l]:[l,i]);return b.current=N,M(C-N.top)}return e.jsx($0,{scope:s.__scopeSlider,startEdge:w?"bottom":"top",endEdge:w?"top":"bottom",size:"height",direction:w?1:-1,children:e.jsx(W0,{"data-orientation":"vertical",...v,ref:j,style:{...v.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:C=>{const N=S(C.clientY);d?.(N)},onSlideMove:C=>{const N=S(C.clientY);m?.(N)},onSlideEnd:()=>{b.current=void 0,h?.()},onStepKeyDown:C=>{const T=q0[w?"from-bottom":"from-top"].includes(C.key);p?.({event:C,direction:T?-1:1})}})})}),W0=x.forwardRef((s,a)=>{const{__scopeSlider:l,onSlideStart:i,onSlideMove:c,onSlideEnd:d,onHomeKeyDown:m,onEndKeyDown:h,onStepKeyDown:p,...v}=s,g=Fd(ei,l);return e.jsx(dt.span,{...v,ref:a,onKeyDown:be(s.onKeyDown,j=>{j.key==="Home"?(m(j),j.preventDefault()):j.key==="End"?(h(j),j.preventDefault()):F0.concat(Y0).includes(j.key)&&(p(j),j.preventDefault())}),onPointerDown:be(s.onPointerDown,j=>{const b=j.target;b.setPointerCapture(j.pointerId),j.preventDefault(),g.thumbs.has(b)?b.focus():i(j)}),onPointerMove:be(s.onPointerMove,j=>{j.target.hasPointerCapture(j.pointerId)&&c(j)}),onPointerUp:be(s.onPointerUp,j=>{const b=j.target;b.hasPointerCapture(j.pointerId)&&(b.releasePointerCapture(j.pointerId),d(j))})})}),X0="SliderTrack",K0=x.forwardRef((s,a)=>{const{__scopeSlider:l,...i}=s,c=Fd(X0,l);return e.jsx(dt.span,{"data-disabled":c.disabled?"":void 0,"data-orientation":c.orientation,...i,ref:a})});K0.displayName=X0;var If="SliderRange",Q0=x.forwardRef((s,a)=>{const{__scopeSlider:l,...i}=s,c=Fd(If,l),d=I0(If,l),m=x.useRef(null),h=Tt(a,m),p=c.values.length,v=c.values.map(b=>eN(b,c.min,c.max)),g=p>1?Math.min(...v):0,j=100-Math.max(...v);return e.jsx(dt.span,{"data-orientation":c.orientation,"data-disabled":c.disabled?"":void 0,...i,ref:h,style:{...s.style,[d.startEdge]:g+"%",[d.endEdge]:j+"%"}})});Q0.displayName=If;var Wf="SliderThumb",Z0=x.forwardRef((s,a)=>{const l=u4(s.__scopeSlider),[i,c]=x.useState(null),d=Tt(a,h=>c(h)),m=x.useMemo(()=>i?l().findIndex(h=>h.ref.current===i):-1,[l,i]);return e.jsx(p4,{...s,ref:d,index:m})}),p4=x.forwardRef((s,a)=>{const{__scopeSlider:l,index:i,name:c,...d}=s,m=Fd(Wf,l),h=I0(Wf,l),[p,v]=x.useState(null),g=Tt(a,P=>v(P)),j=p?m.form||!!p.closest("form"):!0,b=dy(p),w=m.values[i],S=w===void 0?0:eN(w,m.min,m.max),C=j4(i,m.values.length),N=b?.[h.size],T=N?b4(N,S,h.direction):0;return x.useEffect(()=>{if(p)return m.thumbs.add(p),()=>{m.thumbs.delete(p)}},[p,m.thumbs]),e.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[h.startEdge]:`calc(${S}% + ${T}px)`},children:[e.jsx($f.ItemSlot,{scope:s.__scopeSlider,children:e.jsx(dt.span,{role:"slider","aria-label":s["aria-label"]||C,"aria-valuemin":m.min,"aria-valuenow":w,"aria-valuemax":m.max,"aria-orientation":m.orientation,"data-orientation":m.orientation,"data-disabled":m.disabled?"":void 0,tabIndex:m.disabled?void 0:0,...d,ref:g,style:w===void 0?{display:"none"}:s.style,onFocus:be(s.onFocus,()=>{m.valueIndexToChangeRef.current=i})})}),j&&e.jsx(J0,{name:c??(m.name?m.name+(m.values.length>1?"[]":""):void 0),form:m.form,value:w},i)]})});Z0.displayName=Wf;var g4="RadioBubbleInput",J0=x.forwardRef(({__scopeSlider:s,value:a,...l},i)=>{const c=x.useRef(null),d=Tt(c,i),m=cy(a);return x.useEffect(()=>{const h=c.current;if(!h)return;const p=window.HTMLInputElement.prototype,g=Object.getOwnPropertyDescriptor(p,"value").set;if(m!==a&&g){const j=new Event("input",{bubbles:!0});g.call(h,a),h.dispatchEvent(j)}},[m,a]),e.jsx(dt.input,{style:{display:"none"},...l,ref:d,defaultValue:a})});J0.displayName=g4;function v4(s=[],a,l){const i=[...s];return i[l]=a,i.sort((c,d)=>c-d)}function eN(s,a,l){const d=100/(l-a)*(s-a);return rh(d,[0,100])}function j4(s,a){return a>2?`Value ${s+1} of ${a}`:a===2?["Minimum","Maximum"][s]:void 0}function y4(s,a){if(s.length===1)return 0;const l=s.map(c=>Math.abs(c-a)),i=Math.min(...l);return l.indexOf(i)}function b4(s,a,l){const i=s/2,d=zh([0,50],[0,i]);return(i-d(a)*l)*l}function N4(s){return s.slice(0,-1).map((a,l)=>s[l+1]-a)}function w4(s,a){if(a>0){const l=N4(s);return Math.min(...l)>=a}return!0}function zh(s,a){return l=>{if(s[0]===s[1]||a[0]===a[1])return a[0];const i=(a[1]-a[0])/(s[1]-s[0]);return a[0]+i*(l-s[0])}}function S4(s){return(String(s).split(".")[1]||"").length}function _4(s,a){const l=Math.pow(10,a);return Math.round(s*l)/l}var tN=G0,C4=K0,k4=Q0,T4=Z0;const Yd=x.forwardRef(({className:s,...a},l)=>e.jsxs(tN,{ref:l,className:Z("relative flex w-full touch-none select-none items-center",s),...a,children:[e.jsx(C4,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:e.jsx(k4,{className:"absolute h-full bg-primary"})}),e.jsx(T4,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));Yd.displayName=tN.displayName;const rt=y2,it=b2,at=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(hy,{ref:i,className:Z("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",s),...l,children:[a,e.jsx(x2,{asChild:!0,children:e.jsx(lo,{className:"h-4 w-4 opacity-50"})})]}));at.displayName=hy.displayName;const sN=x.forwardRef(({className:s,...a},l)=>e.jsx(xy,{ref:l,className:Z("flex cursor-default items-center justify-center py-1",s),...a,children:e.jsx(Pf,{className:"h-4 w-4"})}));sN.displayName=xy.displayName;const nN=x.forwardRef(({className:s,...a},l)=>e.jsx(py,{ref:l,className:Z("flex cursor-default items-center justify-center py-1",s),...a,children:e.jsx(lo,{className:"h-4 w-4"})}));nN.displayName=py.displayName;const lt=x.forwardRef(({className:s,children:a,position:l="popper",...i},c)=>e.jsx(p2,{children:e.jsxs(gy,{ref:c,className:Z("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",l==="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",s),position:l,...i,children:[e.jsx(sN,{}),e.jsx(g2,{className:Z("p-1",l==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:a}),e.jsx(nN,{})]})}));lt.displayName=gy.displayName;const E4=x.forwardRef(({className:s,...a},l)=>e.jsx(vy,{ref:l,className:Z("px-2 py-1.5 text-sm font-semibold",s),...a}));E4.displayName=vy.displayName;const ye=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(jy,{ref:i,className:Z("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...l,children:[e.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(v2,{children:e.jsx(Cl,{className:"h-4 w-4"})})}),e.jsx(j2,{children:a})]}));ye.displayName=jy.displayName;const M4=x.forwardRef(({className:s,...a},l)=>e.jsx(yy,{ref:l,className:Z("-mx-1 my-1 h-px bg-muted",s),...a}));M4.displayName=yy.displayName;function D4(s){const a=O4(s),l=x.forwardRef((i,c)=>{const{children:d,...m}=i,h=x.Children.toArray(d),p=h.find(R4);if(p){const v=p.props.children,g=h.map(j=>j===p?x.Children.count(v)>1?x.Children.only(null):x.isValidElement(v)?v.props.children:null:j);return e.jsx(a,{...m,ref:c,children:x.isValidElement(v)?x.cloneElement(v,void 0,g):null})}return e.jsx(a,{...m,ref:c,children:d})});return l.displayName=`${s}.Slot`,l}function O4(s){const a=x.forwardRef((l,i)=>{const{children:c,...d}=l;if(x.isValidElement(c)){const m=P4(c),h=z4(d,c.props);return c.type!==x.Fragment&&(h.ref=i?Ga(i,m):m),x.cloneElement(c,h)}return x.Children.count(c)>1?x.Children.only(null):null});return a.displayName=`${s}.SlotClone`,a}var A4=Symbol("radix.slottable");function R4(s){return x.isValidElement(s)&&typeof s.type=="function"&&"__radixId"in s.type&&s.type.__radixId===A4}function z4(s,a){const l={...a};for(const i in a){const c=s[i],d=a[i];/^on[A-Z]/.test(i)?c&&d?l[i]=(...h)=>{const p=d(...h);return c(...h),p}:c&&(l[i]=c):i==="style"?l[i]={...c,...d}:i==="className"&&(l[i]=[c,d].filter(Boolean).join(" "))}return{...s,...l}}function P4(s){let a=Object.getOwnPropertyDescriptor(s.props,"ref")?.get,l=a&&"isReactWarning"in a&&a.isReactWarning;return l?s.ref:(a=Object.getOwnPropertyDescriptor(s,"ref")?.get,l=a&&"isReactWarning"in a&&a.isReactWarning,l?s.props.ref:s.props.ref||s.ref)}var qd="Popover",[aN]=Dn(qd,[Wr]),Co=Wr(),[L4,Za]=aN(qd),lN=s=>{const{__scopePopover:a,children:l,open:i,defaultOpen:c,onOpenChange:d,modal:m=!1}=s,h=Co(a),p=x.useRef(null),[v,g]=x.useState(!1),[j,b]=Qa({prop:i,defaultProp:c??!1,onChange:d,caller:qd});return e.jsx(Ed,{...h,children:e.jsx(L4,{scope:a,contentId:jn(),triggerRef:p,open:j,onOpenChange:b,onOpenToggle:x.useCallback(()=>b(w=>!w),[b]),hasCustomAnchor:v,onCustomAnchorAdd:x.useCallback(()=>g(!0),[]),onCustomAnchorRemove:x.useCallback(()=>g(!1),[]),modal:m,children:l})})};lN.displayName=qd;var rN="PopoverAnchor",B4=x.forwardRef((s,a)=>{const{__scopePopover:l,...i}=s,c=Za(rN,l),d=Co(l),{onCustomAnchorAdd:m,onCustomAnchorRemove:h}=c;return x.useEffect(()=>(m(),()=>h()),[m,h]),e.jsx(Md,{...d,...i,ref:a})});B4.displayName=rN;var iN="PopoverTrigger",oN=x.forwardRef((s,a)=>{const{__scopePopover:l,...i}=s,c=Za(iN,l),d=Co(l),m=Tt(a,c.triggerRef),h=e.jsx(dt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":c.open,"aria-controls":c.contentId,"data-state":fN(c.open),...i,ref:m,onClick:be(s.onClick,c.onOpenToggle)});return c.hasCustomAnchor?h:e.jsx(Md,{asChild:!0,...d,children:h})});oN.displayName=iN;var Ph="PopoverPortal",[U4,H4]=aN(Ph,{forceMount:void 0}),cN=s=>{const{__scopePopover:a,forceMount:l,children:i,container:c}=s,d=Za(Ph,a);return e.jsx(U4,{scope:a,forceMount:l,children:e.jsx(Is,{present:l||d.open,children:e.jsx(Td,{asChild:!0,container:c,children:i})})})};cN.displayName=Ph;var $r="PopoverContent",dN=x.forwardRef((s,a)=>{const l=H4($r,s.__scopePopover),{forceMount:i=l.forceMount,...c}=s,d=Za($r,s.__scopePopover);return e.jsx(Is,{present:i||d.open,children:d.modal?e.jsx(Y4,{...c,ref:a}):e.jsx(q4,{...c,ref:a})})});dN.displayName=$r;var F4=D4("PopoverContent.RemoveScroll"),Y4=x.forwardRef((s,a)=>{const l=Za($r,s.__scopePopover),i=x.useRef(null),c=Tt(a,i),d=x.useRef(!1);return x.useEffect(()=>{const m=i.current;if(m)return by(m)},[]),e.jsx(Ny,{as:F4,allowPinchZoom:!0,children:e.jsx(uN,{...s,ref:c,trapFocus:l.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:be(s.onCloseAutoFocus,m=>{m.preventDefault(),d.current||l.triggerRef.current?.focus()}),onPointerDownOutside:be(s.onPointerDownOutside,m=>{const h=m.detail.originalEvent,p=h.button===0&&h.ctrlKey===!0,v=h.button===2||p;d.current=v},{checkForDefaultPrevented:!1}),onFocusOutside:be(s.onFocusOutside,m=>m.preventDefault(),{checkForDefaultPrevented:!1})})})}),q4=x.forwardRef((s,a)=>{const l=Za($r,s.__scopePopover),i=x.useRef(!1),c=x.useRef(!1);return e.jsx(uN,{...s,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:d=>{s.onCloseAutoFocus?.(d),d.defaultPrevented||(i.current||l.triggerRef.current?.focus(),d.preventDefault()),i.current=!1,c.current=!1},onInteractOutside:d=>{s.onInteractOutside?.(d),d.defaultPrevented||(i.current=!0,d.detail.originalEvent.type==="pointerdown"&&(c.current=!0));const m=d.target;l.triggerRef.current?.contains(m)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&c.current&&d.preventDefault()}})}),uN=x.forwardRef((s,a)=>{const{__scopePopover:l,trapFocus:i,onOpenAutoFocus:c,onCloseAutoFocus:d,disableOutsidePointerEvents:m,onEscapeKeyDown:h,onPointerDownOutside:p,onFocusOutside:v,onInteractOutside:g,...j}=s,b=Za($r,l),w=Co(l);return wy(),e.jsx(Sy,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:c,onUnmountAutoFocus:d,children:e.jsx(fh,{asChild:!0,disableOutsidePointerEvents:m,onInteractOutside:g,onEscapeKeyDown:h,onPointerDownOutside:p,onFocusOutside:v,onDismiss:()=>b.onOpenChange(!1),children:e.jsx(hh,{"data-state":fN(b.open),role:"dialog",id:b.contentId,...w,...j,ref:a,style:{...j.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),mN="PopoverClose",V4=x.forwardRef((s,a)=>{const{__scopePopover:l,...i}=s,c=Za(mN,l);return e.jsx(dt.button,{type:"button",...i,ref:a,onClick:be(s.onClick,()=>c.onOpenChange(!1))})});V4.displayName=mN;var G4="PopoverArrow",$4=x.forwardRef((s,a)=>{const{__scopePopover:l,...i}=s,c=Co(l);return e.jsx(xh,{...c,...i,ref:a})});$4.displayName=G4;function fN(s){return s?"open":"closed"}var I4=lN,W4=oN,X4=cN,hN=dN;const Ia=I4,Wa=W4,pa=x.forwardRef(({className:s,align:a="center",sideOffset:l=4,...i},c)=>e.jsx(X4,{children:e.jsx(hN,{ref:c,align:a,sideOffset:l,className:Z("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",s),...i})}));pa.displayName=hN.displayName;const ti="/api/webui/config";async function K4(){const a=await(await Fe(`${ti}/bot`)).json();if(!a.success)throw new Error("获取配置数据失败");return a.config}async function Ur(){const a=await(await Fe(`${ti}/model`)).json();if(!a.success)throw new Error("获取模型配置数据失败");return a.config}async function Bj(s){const l=await(await Fe(`${ti}/bot`,{method:"POST",headers:Ie(),body:JSON.stringify(s)})).json();if(!l.success)throw new Error(l.message||"保存配置失败")}async function Nd(s){const l=await(await Fe(`${ti}/model`,{method:"POST",headers:Ie(),body:JSON.stringify(s)})).json();if(!l.success)throw new Error(l.message||"保存配置失败")}async function Q4(s,a){const i=await(await Fe(`${ti}/bot/section/${s}`,{method:"POST",headers:Ie(),body:JSON.stringify(a)})).json();if(!i.success)throw new Error(i.message||`保存配置节 ${s} 失败`)}async function Xf(s,a){const i=await(await Fe(`${ti}/model/section/${s}`,{method:"POST",headers:Ie(),body:JSON.stringify(a)})).json();if(!i.success)throw new Error(i.message||`保存配置节 ${s} 失败`)}const Z4=$t.create({baseURL:"",timeout:1e4});async function Lh(){try{return(await Z4.post("/api/webui/system/restart")).data}catch(s){throw console.error("重启麦麦失败:",s),s}}const J4=Jr("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),Vd=x.forwardRef(({className:s,variant:a,...l},i)=>e.jsx("div",{ref:i,role:"alert",className:Z(J4({variant:a}),s),...l}));Vd.displayName="Alert";const eM=x.forwardRef(({className:s,...a},l)=>e.jsx("h5",{ref:l,className:Z("mb-1 font-medium leading-none tracking-tight",s),...a}));eM.displayName="AlertTitle";const Gd=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("text-sm [&_p]:leading-relaxed",s),...a}));Gd.displayName="AlertDescription";function Bh({onRestartComplete:s,onRestartFailed:a}){const[l,i]=x.useState(0),[c,d]=x.useState("restarting"),[m,h]=x.useState(0),[p,v]=x.useState(0);x.useEffect(()=>{const b=setInterval(()=>{i(C=>C>=90?C:C+1)},200),w=setInterval(()=>{h(C=>C+1)},1e3),S=setTimeout(()=>{d("checking"),g()},3e3);return()=>{clearInterval(b),clearInterval(w),clearTimeout(S)}},[]);const g=()=>{const w=async()=>{try{if(v(C=>C+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)i(100),d("success"),setTimeout(()=>{s?.()},1500);else throw new Error("Status check failed")}catch{p<60?setTimeout(w,2e3):(d("failed"),a?.())}};w()},j=b=>{const w=Math.floor(b/60),S=b%60;return`${w}:${S.toString().padStart(2,"0")}`};return e.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:e.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[e.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[c==="restarting"&&e.jsxs(e.Fragment,{children:[e.jsx(ro,{className:"h-16 w-16 text-primary animate-spin"}),e.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),e.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),c==="checking"&&e.jsxs(e.Fragment,{children:[e.jsx(ro,{className:"h-16 w-16 text-primary animate-spin"}),e.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),e.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",p,"/60)"]})]}),c==="success"&&e.jsxs(e.Fragment,{children:[e.jsx(Ys,{className:"h-16 w-16 text-green-500"}),e.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),e.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),c==="failed"&&e.jsxs(e.Fragment,{children:[e.jsx(Tl,{className:"h-16 w-16 text-destructive"}),e.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),e.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),c!=="failed"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(_o,{value:l,className:"h-2"}),e.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[e.jsxs("span",{children:[l,"%"]}),e.jsxs("span",{children:["已用时: ",j(m)]})]})]}),e.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:[c==="restarting"&&"🔄 配置已保存,正在重启主程序...",c==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",c==="success"&&"✅ 配置已生效,服务运行正常",c==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),c==="failed"&&e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),e.jsx("button",{onClick:()=>{d("checking"),v(0),g()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function tM(){const[s,a]=x.useState(!0),[l,i]=x.useState(!1),[c,d]=x.useState(!1),[m,h]=x.useState(!1),[p,v]=x.useState(!1),[g,j]=x.useState(!1),{toast:b}=Es(),[w,S]=x.useState(null),[C,N]=x.useState(null),[T,P]=x.useState(null),[M,k]=x.useState(null),[D,A]=x.useState(null),[E,B]=x.useState(null),[Y,G]=x.useState(null),[$,oe]=x.useState(null),[je,ae]=x.useState(null),[me,R]=x.useState(null),[O,L]=x.useState(null),[ee,le]=x.useState(null),[xe,F]=x.useState(null),[W,fe]=x.useState(null),[I,ve]=x.useState(null),[de,Ce]=x.useState(null),[Q,Oe]=x.useState(null),[$e,re]=x.useState(null),Pe=x.useRef(null),ze=x.useRef(!0),Zt=x.useRef({}),Rs=x.useCallback(async()=>{try{a(!0);const ke=await K4();Zt.current=ke,S(ke.bot),N(ke.personality);const is=ke.chat;is.talk_value_rules||(is.talk_value_rules=[]),P(is),k(ke.expression),A(ke.emoji),B(ke.memory),G(ke.tool),oe(ke.mood),ae(ke.voice),R(ke.lpmm_knowledge),L(ke.keyword_reaction),le(ke.response_post_process),F(ke.chinese_typo),fe(ke.response_splitter),ve(ke.log),Ce(ke.debug),Oe(ke.maim_message),re(ke.telemetry),h(!1),ze.current=!1}catch(ke){console.error("加载配置失败:",ke),b({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{a(!1)}},[b]);x.useEffect(()=>{Rs()},[Rs]);const An=x.useCallback(async(ke,is)=>{if(!ze.current)try{d(!0),await Q4(ke,is),h(!1)}catch(he){console.error(`自动保存 ${ke} 失败:`,he),h(!0)}finally{d(!1)}},[]),Le=x.useCallback((ke,is)=>{ze.current||(h(!0),Pe.current&&clearTimeout(Pe.current),Pe.current=setTimeout(()=>{An(ke,is)},2e3))},[An]);x.useEffect(()=>{w&&!ze.current&&Le("bot",w)},[w,Le]),x.useEffect(()=>{C&&!ze.current&&Le("personality",C)},[C,Le]),x.useEffect(()=>{T&&!ze.current&&Le("chat",T)},[T,Le]),x.useEffect(()=>{M&&!ze.current&&Le("expression",M)},[M,Le]),x.useEffect(()=>{D&&!ze.current&&Le("emoji",D)},[D,Le]),x.useEffect(()=>{E&&!ze.current&&Le("memory",E)},[E,Le]),x.useEffect(()=>{Y&&!ze.current&&Le("tool",Y)},[Y,Le]),x.useEffect(()=>{$&&!ze.current&&Le("mood",$)},[$,Le]),x.useEffect(()=>{je&&!ze.current&&Le("voice",je)},[je,Le]),x.useEffect(()=>{me&&!ze.current&&Le("lpmm_knowledge",me)},[me,Le]),x.useEffect(()=>{O&&!ze.current&&Le("keyword_reaction",O)},[O,Le]),x.useEffect(()=>{ee&&!ze.current&&Le("response_post_process",ee)},[ee,Le]),x.useEffect(()=>{xe&&!ze.current&&Le("chinese_typo",xe)},[xe,Le]),x.useEffect(()=>{W&&!ze.current&&Le("response_splitter",W)},[W,Le]),x.useEffect(()=>{I&&!ze.current&&Le("log",I)},[I,Le]),x.useEffect(()=>{de&&!ze.current&&Le("debug",de)},[de,Le]),x.useEffect(()=>{Q&&!ze.current&&Le("maim_message",Q)},[Q,Le]),x.useEffect(()=>{$e&&!ze.current&&Le("telemetry",$e)},[$e,Le]);const Nn=async()=>{try{i(!0),Pe.current&&clearTimeout(Pe.current);const ke={...Zt.current,bot:w,personality:C,chat:T,expression:M,emoji:D,memory:E,tool:Y,mood:$,voice:je,lpmm_knowledge:me,keyword_reaction:O,response_post_process:ee,chinese_typo:xe,response_splitter:W,log:I,debug:de,maim_message:Q,telemetry:$e};await Bj(ke),h(!1),b({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(ke){console.error("保存配置失败:",ke),b({title:"保存失败",description:ke.message,variant:"destructive"})}finally{i(!1)}},ln=async()=>{try{v(!0),Lh().catch(()=>{}),j(!0)}catch(ke){console.error("重启失败:",ke),j(!1),b({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),v(!1)}},rn=async()=>{try{i(!0),Pe.current&&clearTimeout(Pe.current);const ke={...Zt.current,bot:w,personality:C,chat:T,expression:M,emoji:D,memory:E,tool:Y,mood:$,voice:je,lpmm_knowledge:me,keyword_reaction:O,response_post_process:ee,chinese_typo:xe,response_splitter:W,log:I,debug:de,maim_message:Q,telemetry:$e};await Bj(ke),h(!1),b({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(is=>setTimeout(is,500)),await ln()}catch(ke){console.error("保存失败:",ke),b({title:"保存失败",description:ke.message,variant:"destructive"})}finally{i(!1)}},Xt=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Ds=()=>{j(!1),v(!1),b({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return s?e.jsx(Ct,{className:"h-full",children:e.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),e.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[e.jsxs(q,{onClick:Nn,disabled:l||c||!m||p,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[e.jsx(vh,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),l?"保存中...":c?"自动保存中...":m?"保存配置":"已保存"]}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{disabled:l||c||p,size:"sm",className:"flex-1 sm:flex-none",children:[e.jsx(jh,{className:"mr-2 h-4 w-4"}),p?"重启中...":m?"保存并重启":"重启麦麦"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重启麦麦?"}),e.jsx(Pt,{children:m?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:m?rn:ln,children:m?"保存并重启":"确认重启"})]})]})]})]})]}),e.jsxs(Vd,{children:[e.jsx(Fr,{className:"h-4 w-4"}),e.jsxs(Gd,{children:["配置更新后需要",e.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),e.jsxs(Ml,{defaultValue:"bot",className:"w-full",children:[e.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:e.jsxs($a,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[e.jsx(bt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),e.jsx(bt,{value:"personality",className:"flex-shrink-0",children:"人格"}),e.jsx(bt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),e.jsx(bt,{value:"expression",className:"flex-shrink-0",children:"表达"}),e.jsx(bt,{value:"features",className:"flex-shrink-0",children:"功能"}),e.jsx(bt,{value:"processing",className:"flex-shrink-0",children:"处理"}),e.jsx(bt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),e.jsx(bt,{value:"voice",className:"flex-shrink-0",children:"语音"}),e.jsx(bt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),e.jsx(bt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),e.jsx(Vt,{value:"bot",className:"space-y-4",children:w&&e.jsx(sM,{config:w,onChange:S})}),e.jsx(Vt,{value:"personality",className:"space-y-4",children:C&&e.jsx(nM,{config:C,onChange:N})}),e.jsx(Vt,{value:"chat",className:"space-y-4",children:T&&e.jsx(aM,{config:T,onChange:P})}),e.jsx(Vt,{value:"expression",className:"space-y-4",children:M&&e.jsx(lM,{config:M,onChange:k})}),e.jsx(Vt,{value:"features",className:"space-y-4",children:D&&E&&Y&&e.jsx(rM,{emojiConfig:D,memoryConfig:E,toolConfig:Y,onEmojiChange:A,onMemoryChange:B,onToolChange:G})}),e.jsx(Vt,{value:"processing",className:"space-y-4",children:O&&ee&&xe&&W&&e.jsx(iM,{keywordReactionConfig:O,responsePostProcessConfig:ee,chineseTypoConfig:xe,responseSplitterConfig:W,onKeywordReactionChange:L,onResponsePostProcessChange:le,onChineseTypoChange:F,onResponseSplitterChange:fe})}),e.jsx(Vt,{value:"mood",className:"space-y-4",children:$&&e.jsx(oM,{config:$,onChange:oe})}),e.jsx(Vt,{value:"voice",className:"space-y-4",children:je&&e.jsx(cM,{config:je,onChange:ae})}),e.jsx(Vt,{value:"lpmm",className:"space-y-4",children:me&&e.jsx(dM,{config:me,onChange:R})}),e.jsxs(Vt,{value:"other",className:"space-y-4",children:[I&&e.jsx(uM,{config:I,onChange:ve}),de&&e.jsx(mM,{config:de,onChange:Ce}),Q&&e.jsx(fM,{config:Q,onChange:Oe}),$e&&e.jsx(hM,{config:$e,onChange:re})]})]}),g&&e.jsx(Bh,{onRestartComplete:Xt,onRestartFailed:Ds})]})})}function sM({config:s,onChange:a}){const l=()=>{a({...s,platforms:[...s.platforms,""]})},i=p=>{a({...s,platforms:s.platforms.filter((v,g)=>g!==p)})},c=(p,v)=>{const g=[...s.platforms];g[p]=v,a({...s,platforms:g})},d=()=>{a({...s,alias_names:[...s.alias_names,""]})},m=p=>{a({...s,alias_names:s.alias_names.filter((v,g)=>g!==p)})},h=(p,v)=>{const g=[...s.alias_names];g[p]=v,a({...s,alias_names:g})};return e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"platform",children:"平台"}),e.jsx(pe,{id:"platform",value:s.platform,onChange:p=>a({...s,platform:p.target.value}),placeholder:"qq"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"qq_account",children:"QQ账号"}),e.jsx(pe,{id:"qq_account",value:s.qq_account,onChange:p=>a({...s,qq_account:p.target.value}),placeholder:"123456789"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"nickname",children:"昵称"}),e.jsx(pe,{id:"nickname",value:s.nickname,onChange:p=>a({...s,nickname:p.target.value}),placeholder:"麦麦"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{children:"其他平台账号"}),e.jsxs(q,{onClick:l,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加"]})]}),e.jsxs("div",{className:"space-y-2",children:[s.platforms.map((p,v)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx(pe,{value:p,onChange:g=>c(v,g.target.value),placeholder:"wx:114514"}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"icon",variant:"outline",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除平台账号 "',p||"(空)",'" 吗?此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>i(v),children:"删除"})]})]})]})]},v)),s.platforms.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{children:"别名"}),e.jsxs(q,{onClick:d,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加"]})]}),e.jsxs("div",{className:"space-y-2",children:[s.alias_names.map((p,v)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx(pe,{value:p,onChange:g=>h(v,g.target.value),placeholder:"小麦"}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"icon",variant:"outline",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除别名 "',p||"(空)",'" 吗?此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>m(v),children:"删除"})]})]})]})]},v)),s.alias_names.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function nM({config:s,onChange:a}){const l=()=>{a({...s,states:[...s.states,""]})},i=d=>{a({...s,states:s.states.filter((m,h)=>h!==d)})},c=(d,m)=>{const h=[...s.states];h[d]=m,a({...s,states:h})};return e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"personality",children:"人格特质"}),e.jsx(Dt,{id:"personality",value:s.personality,onChange:d=>a({...s,personality:d.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"reply_style",children:"表达风格"}),e.jsx(Dt,{id:"reply_style",value:s.reply_style,onChange:d=>a({...s,reply_style:d.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"interest",children:"兴趣"}),e.jsx(Dt,{id:"interest",value:s.interest,onChange:d=>a({...s,interest:d.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"plan_style",children:"说话规则与行为风格"}),e.jsx(Dt,{id:"plan_style",value:s.plan_style,onChange:d=>a({...s,plan_style:d.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"visual_style",children:"识图规则"}),e.jsx(Dt,{id:"visual_style",value:s.visual_style,onChange:d=>a({...s,visual_style:d.target.value}),placeholder:"识图时的处理规则",rows:3})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"private_plan_style",children:"私聊规则"}),e.jsx(Dt,{id:"private_plan_style",value:s.private_plan_style,onChange:d=>a({...s,private_plan_style:d.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{children:"状态列表(人格多样性)"}),e.jsxs(q,{onClick:l,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),e.jsx("div",{className:"space-y-2",children:s.states.map((d,m)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx(Dt,{value:d,onChange:h=>c(m,h.target.value),placeholder:"描述一个人格状态",rows:2}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"icon",variant:"outline",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsx(Pt,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>i(m),children:"删除"})]})]})]})]},m))})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"state_probability",children:"状态替换概率"}),e.jsx(pe,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:s.state_probability,onChange:d=>a({...s,state_probability:parseFloat(d.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function aM({config:s,onChange:a}){const l=()=>{a({...s,talk_value_rules:[...s.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},i=h=>{a({...s,talk_value_rules:s.talk_value_rules.filter((p,v)=>v!==h)})},c=(h,p,v)=>{const g=[...s.talk_value_rules];g[h]={...g[h],[p]:v},a({...s,talk_value_rules:g})},d=({value:h,onChange:p})=>{const[v,g]=x.useState("00"),[j,b]=x.useState("00"),[w,S]=x.useState("23"),[C,N]=x.useState("59");x.useEffect(()=>{const P=h.split("-");if(P.length===2){const[M,k]=P,[D,A]=M.split(":"),[E,B]=k.split(":");D&&g(D.padStart(2,"0")),A&&b(A.padStart(2,"0")),E&&S(E.padStart(2,"0")),B&&N(B.padStart(2,"0"))}},[h]);const T=(P,M,k,D)=>{const A=`${P}:${M}-${k}:${D}`;p(A)};return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[e.jsx(_l,{className:"h-4 w-4 mr-2"}),h||"选择时间段"]})}),e.jsx(pa,{className:"w-80",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-xs",children:"小时"}),e.jsxs(rt,{value:v,onValueChange:P=>{g(P),T(P,j,w,C)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:Array.from({length:24},(P,M)=>M).map(P=>e.jsx(ye,{value:P.toString().padStart(2,"0"),children:P.toString().padStart(2,"0")},P))})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-xs",children:"分钟"}),e.jsxs(rt,{value:j,onValueChange:P=>{b(P),T(v,P,w,C)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:Array.from({length:60},(P,M)=>M).map(P=>e.jsx(ye,{value:P.toString().padStart(2,"0"),children:P.toString().padStart(2,"0")},P))})]})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-xs",children:"小时"}),e.jsxs(rt,{value:w,onValueChange:P=>{S(P),T(v,j,P,C)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:Array.from({length:24},(P,M)=>M).map(P=>e.jsx(ye,{value:P.toString().padStart(2,"0"),children:P.toString().padStart(2,"0")},P))})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-xs",children:"分钟"}),e.jsxs(rt,{value:C,onValueChange:P=>{N(P),T(v,j,w,P)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:Array.from({length:60},(P,M)=>M).map(P=>e.jsx(ye,{value:P.toString().padStart(2,"0"),children:P.toString().padStart(2,"0")},P))})]})]})]})]})]})})]})},m=({rule:h})=>{const p=`{ target = "${h.target}", time = "${h.time}", value = ${h.value.toFixed(1)} }`;return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"预览"]})}),e.jsx(pa,{className:"w-96",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),e.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:p}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),e.jsx(pe,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:s.talk_value,onChange:h=>a({...s,talk_value:parseFloat(h.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),e.jsx(pe,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:s.mentioned_bot_reply,onChange:h=>a({...s,mentioned_bot_reply:parseFloat(h.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_context_size",children:"上下文长度"}),e.jsx(pe,{id:"max_context_size",type:"number",min:"1",value:s.max_context_size,onChange:h=>a({...s,max_context_size:parseInt(h.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"planner_smooth",children:"规划器平滑"}),e.jsx(pe,{id:"planner_smooth",type:"number",step:"1",min:"0",value:s.planner_smooth,onChange:h=>a({...s,planner_smooth:parseFloat(h.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_talk_value_rules",checked:s.enable_talk_value_rules,onCheckedChange:h=>a({...s,enable_talk_value_rules:h})}),e.jsx(U,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"include_planner_reasoning",checked:s.include_planner_reasoning,onCheckedChange:h=>a({...s,include_planner_reasoning:h})}),e.jsx(U,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),s.enable_talk_value_rules&&e.jsxs("div",{className:"border-t pt-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),e.jsxs(q,{onClick:l,size:"sm",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),s.talk_value_rules&&s.talk_value_rules.length>0?e.jsx("div",{className:"space-y-4",children:s.talk_value_rules.map((h,p)=>e.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",p+1]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(m,{rule:h}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{variant:"ghost",size:"sm",children:e.jsx(ft,{className:"h-4 w-4 text-destructive"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除规则 #",p+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>i(p),children:"删除"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"配置类型"}),e.jsxs(rt,{value:h.target===""?"global":"specific",onValueChange:v=>{v==="global"?c(p,"target",""):c(p,"target","qq::group")},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"global",children:"全局配置"}),e.jsx(ye,{value:"specific",children:"详细配置"})]})]})]}),h.target!==""&&(()=>{const v=h.target.split(":"),g=v[0]||"qq",j=v[1]||"",b=v[2]||"group";return e.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"平台"}),e.jsxs(rt,{value:g,onValueChange:w=>{c(p,"target",`${w}:${j}:${b}`)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"qq",children:"QQ"}),e.jsx(ye,{value:"wx",children:"微信"})]})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"群 ID"}),e.jsx(pe,{value:j,onChange:w=>{c(p,"target",`${g}:${w.target.value}:${b}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"类型"}),e.jsxs(rt,{value:b,onValueChange:w=>{c(p,"target",`${g}:${j}:${w}`)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"group",children:"群组(group)"}),e.jsx(ye,{value:"private",children:"私聊(private)"})]})]})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",h.target||"(未设置)"]})]})})(),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"时间段 (Time)"}),e.jsx(d,{value:h.time,onChange:v=>c(p,"time",v)}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{htmlFor:`rule-value-${p}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),e.jsx(pe,{id:`rule-value-${p}`,type:"number",step:"0.01",min:"0",max:"1",value:h.value,onChange:v=>{const g=parseFloat(v.target.value);isNaN(g)||c(p,"value",Math.max(0,Math.min(1,g)))},className:"w-20 h-8 text-xs"})]}),e.jsx(Yd,{value:[h.value],onValueChange:v=>c(p,"value",v[0]),min:0,max:1,step:.01,className:"w-full"}),e.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[e.jsx("span",{children:"0 (完全沉默)"}),e.jsx("span",{children:"0.5"}),e.jsx("span",{children:"1.0 (正常)"})]})]})]})]},p))}):e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:e.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),e.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[e.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),e.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[e.jsxs("li",{children:["• ",e.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),e.jsxs("li",{children:["• ",e.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),e.jsxs("li",{children:["• ",e.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),e.jsxs("li",{children:["• ",e.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),e.jsxs("li",{children:["• ",e.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function lM({config:s,onChange:a}){const l=()=>{a({...s,learning_list:[...s.learning_list,["","enable","enable","1.0"]]})},i=b=>{a({...s,learning_list:s.learning_list.filter((w,S)=>S!==b)})},c=(b,w,S)=>{const C=[...s.learning_list];C[b][w]=S,a({...s,learning_list:C})},d=({rule:b})=>{const w=`["${b[0]}", "${b[1]}", "${b[2]}", "${b[3]}"]`;return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"预览"]})}),e.jsx(pa,{className:"w-96",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),e.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:w}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},m=({member:b,groupIndex:w,memberIndex:S,availableChatIds:C})=>{const N=C.includes(b)||b==="*",[T,P]=x.useState(!N);return e.jsxs("div",{className:"flex gap-2",children:[e.jsx("div",{className:"flex-1 flex gap-2",children:T?e.jsxs(e.Fragment,{children:[e.jsx(pe,{value:b,onChange:M=>j(w,S,M.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),C.length>0&&e.jsx(q,{size:"sm",variant:"outline",onClick:()=>P(!1),title:"切换到下拉选择",children:"下拉"})]}):e.jsxs(e.Fragment,{children:[e.jsxs(rt,{value:b,onValueChange:M=>j(w,S,M),children:[e.jsx(at,{className:"flex-1",children:e.jsx(it,{placeholder:"选择聊天流"})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"*",children:"* (全局共享)"}),C.map((M,k)=>e.jsx(ye,{value:M,children:M},k))]})]}),e.jsx(q,{size:"sm",variant:"outline",onClick:()=>P(!0),title:"切换到手动输入",children:"输入"})]})}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"icon",variant:"outline",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除组成员 "',b||"(空)",'" 吗?此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>g(w,S),children:"删除"})]})]})]})]})},h=()=>{a({...s,expression_groups:[...s.expression_groups,[]]})},p=b=>{a({...s,expression_groups:s.expression_groups.filter((w,S)=>S!==b)})},v=b=>{const w=[...s.expression_groups];w[b]=[...w[b],""],a({...s,expression_groups:w})},g=(b,w)=>{const S=[...s.expression_groups];S[b]=S[b].filter((C,N)=>N!==w),a({...s,expression_groups:S})},j=(b,w,S)=>{const C=[...s.expression_groups];C[b][w]=S,a({...s,expression_groups:C})};return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),e.jsxs(q,{onClick:l,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.jsxs("div",{className:"space-y-4",children:[s.learning_list.map((b,w)=>{const S=s.learning_list.some((k,D)=>D!==w&&k[0]===""),C=b[0]==="",N=b[0].split(":"),T=N[0]||"qq",P=N[1]||"",M=N[2]||"group";return e.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium",children:["规则 ",w+1," ",C&&"(全局配置)"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(d,{rule:b}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除学习规则 ",w+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>i(w),children:"删除"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"配置类型"}),e.jsxs(rt,{value:C?"global":"specific",onValueChange:k=>{k==="global"?c(w,0,""):c(w,0,"qq::group")},disabled:S&&!C,children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"global",children:"全局配置"}),e.jsx(ye,{value:"specific",disabled:S&&!C,children:"详细配置"})]})]}),S&&!C&&e.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!C&&e.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"平台"}),e.jsxs(rt,{value:T,onValueChange:k=>{c(w,0,`${k}:${P}:${M}`)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"qq",children:"QQ"}),e.jsx(ye,{value:"wx",children:"微信"})]})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"群 ID"}),e.jsx(pe,{value:P,onChange:k=>{c(w,0,`${T}:${k.target.value}:${M}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"类型"}),e.jsxs(rt,{value:M,onValueChange:k=>{c(w,0,`${T}:${P}:${k}`)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"group",children:"群组(group)"}),e.jsx(ye,{value:"private",children:"私聊(private)"})]})]})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",b[0]||"(未设置)"]})]}),e.jsx("div",{className:"grid gap-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-xs font-medium",children:"使用学到的表达"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),e.jsx(Ze,{checked:b[1]==="enable",onCheckedChange:k=>c(w,1,k?"enable":"disable")})]})}),e.jsx("div",{className:"grid gap-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-xs font-medium",children:"学习表达"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),e.jsx(Ze,{checked:b[2]==="enable",onCheckedChange:k=>c(w,2,k?"enable":"disable")})]})}),e.jsxs("div",{className:"grid gap-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{className:"text-xs font-medium",children:"学习强度"}),e.jsx(pe,{type:"number",step:"0.1",min:"0",max:"5",value:b[3],onChange:k=>{const D=parseFloat(k.target.value);isNaN(D)||c(w,3,Math.max(0,Math.min(5,D)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),e.jsx(Yd,{value:[parseFloat(b[3])||1],onValueChange:k=>c(w,3,k[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),e.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[e.jsx("span",{children:"0 (不学习)"}),e.jsx("span",{children:"2.5"}),e.jsx("span",{children:"5.0 (快速学习)"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},w)}),s.learning_list.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),e.jsxs(q,{onClick:h,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),e.jsxs("div",{className:"space-y-4",children:[s.expression_groups.map((b,w)=>{const S=s.learning_list.map(C=>C[0]).filter(C=>C!=="");return e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",w+1,b.length===1&&b[0]==="*"&&"(全局共享)"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(q,{onClick:()=>v(w),size:"sm",variant:"outline",children:e.jsx(ys,{className:"h-4 w-4"})}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除共享组 ",w+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>p(w),children:"删除"})]})]})]})]})]}),e.jsx("div",{className:"space-y-2",children:b.map((C,N)=>e.jsx(m,{member:C,groupIndex:w,memberIndex:N,availableChatIds:S},N))}),e.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},w)}),s.expression_groups.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function rM({emojiConfig:s,memoryConfig:a,toolConfig:l,onEmojiChange:i,onMemoryChange:c,onToolChange:d}){return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_tool",checked:l.enable_tool,onCheckedChange:m=>d({...l,enable_tool:m})}),e.jsx(U,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),e.jsx(pe,{id:"max_agent_iterations",type:"number",min:"1",value:a.max_agent_iterations,onChange:m=>c({...a,max_agent_iterations:parseInt(m.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"emoji_chance",children:"表情包激活概率"}),e.jsx(pe,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:s.emoji_chance,onChange:m=>i({...s,emoji_chance:parseFloat(m.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_reg_num",children:"最大注册数量"}),e.jsx(pe,{id:"max_reg_num",type:"number",min:"1",value:s.max_reg_num,onChange:m=>i({...s,max_reg_num:parseInt(m.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),e.jsx(pe,{id:"check_interval",type:"number",min:"1",value:s.check_interval,onChange:m=>i({...s,check_interval:parseInt(m.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"do_replace",checked:s.do_replace,onCheckedChange:m=>i({...s,do_replace:m})}),e.jsx(U,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"steal_emoji",checked:s.steal_emoji,onCheckedChange:m=>i({...s,steal_emoji:m})}),e.jsx(U,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),e.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"content_filtration",checked:s.content_filtration,onCheckedChange:m=>i({...s,content_filtration:m})}),e.jsx(U,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),s.content_filtration&&e.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[e.jsx(U,{htmlFor:"filtration_prompt",children:"过滤要求"}),e.jsx(pe,{id:"filtration_prompt",value:s.filtration_prompt,onChange:m=>i({...s,filtration_prompt:m.target.value}),placeholder:"符合公序良俗"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function iM({keywordReactionConfig:s,responsePostProcessConfig:a,chineseTypoConfig:l,responseSplitterConfig:i,onKeywordReactionChange:c,onResponsePostProcessChange:d,onChineseTypoChange:m,onResponseSplitterChange:h}){const p=()=>{c({...s,regex_rules:[...s.regex_rules,{regex:[""],reaction:""}]})},v=k=>{c({...s,regex_rules:s.regex_rules.filter((D,A)=>A!==k)})},g=(k,D,A)=>{const E=[...s.regex_rules];D==="regex"&&typeof A=="string"?E[k]={...E[k],regex:[A]}:D==="reaction"&&typeof A=="string"&&(E[k]={...E[k],reaction:A}),c({...s,regex_rules:E})},j=({regex:k,reaction:D,onRegexChange:A,onReactionChange:E})=>{const[B,Y]=x.useState(!1),[G,$]=x.useState(""),[oe,je]=x.useState(null),[ae,me]=x.useState(""),[R,O]=x.useState({}),[L,ee]=x.useState(""),le=x.useRef(null),[xe,F]=x.useState("build"),W=de=>de.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),fe=(de,Ce=0)=>{const Q=le.current;if(!Q)return;const Oe=Q.selectionStart||0,$e=Q.selectionEnd||0,re=k.substring(0,Oe)+de+k.substring($e);A(re),setTimeout(()=>{const Pe=Oe+de.length+Ce;Q.setSelectionRange(Pe,Pe),Q.focus()},0)};x.useEffect(()=>{if(!k||!G){je(null),O({}),ee(D),me("");return}try{const de=W(k),Ce=new RegExp(de,"g"),Q=G.match(Ce);je(Q),me("");const $e=new RegExp(de).exec(G);if($e&&$e.groups){O($e.groups);let re=D;Object.entries($e.groups).forEach(([Pe,ze])=>{re=re.replace(new RegExp(`\\[${Pe}\\]`,"g"),ze||"")}),ee(re)}else O({}),ee(D)}catch(de){me(de.message),je(null),O({}),ee(D)}},[k,G,D]);const I=()=>{if(!G||!oe||oe.length===0)return e.jsx("span",{className:"text-muted-foreground",children:G||"请输入测试文本"});try{const de=W(k),Ce=new RegExp(de,"g");let Q=0;const Oe=[];let $e;for(;($e=Ce.exec(G))!==null;)$e.index>Q&&Oe.push(e.jsx("span",{children:G.substring(Q,$e.index)},`text-${Q}`)),Oe.push(e.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:$e[0]},`match-${$e.index}`)),Q=$e.index+$e[0].length;return Q)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return e.jsxs(bs,{open:B,onOpenChange:Y,children:[e.jsx(x0,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(hd,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),e.jsxs(ms,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"正则表达式编辑器"}),e.jsx(ks,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),e.jsx(Ct,{className:"max-h-[calc(90vh-120px)]",children:e.jsxs(Ml,{value:xe,onValueChange:de=>F(de),className:"w-full",children:[e.jsxs($a,{className:"grid w-full grid-cols-2",children:[e.jsx(bt,{value:"build",children:"🔧 构建器"}),e.jsx(bt,{value:"test",children:"🧪 测试器"})]}),e.jsxs(Vt,{value:"build",className:"space-y-4 mt-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"正则表达式"}),e.jsx(pe,{ref:le,value:k,onChange:de=>A(de.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"Reaction 内容"}),e.jsx(Dt,{value:D,onChange:de=>E(de.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),e.jsxs("div",{className:"space-y-4 border-t pt-4",children:[ve.map(de=>e.jsxs("div",{className:"space-y-2",children:[e.jsx("h5",{className:"text-xs font-semibold text-primary",children:de.category}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:de.items.map(Ce=>e.jsx(q,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>fe(Ce.pattern,Ce.moveCursor||0),children:e.jsxs("div",{className:"flex flex-col items-start w-full",children:[e.jsxs("div",{className:"flex items-center gap-2 w-full",children:[e.jsx("span",{className:"text-xs font-medium",children:Ce.label}),e.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:Ce.pattern})]}),e.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:Ce.desc})]})},Ce.label))})]},de.category)),e.jsxs("div",{className:"space-y-2 border-t pt-4",children:[e.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(q,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>A("^(?P\\S{1,20})是这样的$"),children:e.jsxs("div",{className:"flex flex-col items-start w-full",children:[e.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),e.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),e.jsx(q,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>A("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:e.jsxs("div",{className:"flex flex-col items-start w-full",children:[e.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),e.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),e.jsx(q,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>A("(?P.+?)(?:是|为什么|怎么)"),children:e.jsxs("div",{className:"flex flex-col items-start w-full",children:[e.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),e.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),e.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[e.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),e.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),e.jsxs("li",{children:["命名捕获组格式:",e.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),e.jsxs("li",{children:["在 reaction 中使用 ",e.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),e.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),e.jsxs(Vt,{value:"test",className:"space-y-4 mt-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"当前正则表达式"}),e.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:k||"(未设置)"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),e.jsx(Dt,{id:"test-text",value:G,onChange:de=>$(de.target.value),placeholder:`在此输入要测试的文本... +例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),ae&&e.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[e.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),e.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:ae})]}),!ae&&G&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"flex items-center gap-2",children:oe&&oe.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),e.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",oe.length," 处)"]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"匹配高亮"}),e.jsx(Ct,{className:"h-40 rounded-md bg-muted p-3",children:e.jsx("div",{className:"text-sm break-words",children:I()})})]}),Object.keys(R).length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"命名捕获组"}),e.jsx(Ct,{className:"h-32 rounded-md border p-3",children:e.jsx("div",{className:"space-y-2",children:Object.entries(R).map(([de,Ce])=>e.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[e.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",de,"]"]}),e.jsx("span",{className:"text-muted-foreground",children:"="}),e.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:Ce})]},de))})})]}),Object.keys(R).length>0&&D&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"Reaction 替换预览"}),e.jsx(Ct,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:e.jsx("div",{className:"text-sm break-words",children:L})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),e.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[e.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),e.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),e.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),e.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),e.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},b=()=>{c({...s,keyword_rules:[...s.keyword_rules,{keywords:[],reaction:""}]})},w=k=>{c({...s,keyword_rules:s.keyword_rules.filter((D,A)=>A!==k)})},S=(k,D,A)=>{const E=[...s.keyword_rules];typeof A=="string"&&(E[k]={...E[k],reaction:A}),c({...s,keyword_rules:E})},C=k=>{const D=[...s.keyword_rules];D[k]={...D[k],keywords:[...D[k].keywords||[],""]},c({...s,keyword_rules:D})},N=(k,D)=>{const A=[...s.keyword_rules];A[k]={...A[k],keywords:(A[k].keywords||[]).filter((E,B)=>B!==D)},c({...s,keyword_rules:A})},T=(k,D,A)=>{const E=[...s.keyword_rules],B=[...E[k].keywords||[]];B[D]=A,E[k]={...E[k],keywords:B},c({...s,keyword_rules:E})},P=({rule:k})=>{const D=`{ regex = [${(k.regex||[]).map(A=>`"${A}"`).join(", ")}], reaction = "${k.reaction}" }`;return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"预览"]})}),e.jsx(pa,{className:"w-[95vw] sm:w-[500px]",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),e.jsx(Ct,{className:"h-60 rounded-md bg-muted p-3",children:e.jsx("pre",{className:"font-mono text-xs break-all",children:D})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},M=({rule:k})=>{const D=`[[keyword_reaction.keyword_rules]] +keywords = [${(k.keywords||[]).map(A=>`"${A}"`).join(", ")}] +reaction = "${k.reaction}"`;return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"预览"]})}),e.jsx(pa,{className:"w-[95vw] sm:w-[500px]",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),e.jsx(Ct,{className:"h-60 rounded-md bg-muted p-3",children:e.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:D})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),e.jsxs(q,{onClick:p,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),e.jsxs("div",{className:"space-y-3",children:[s.regex_rules.map((k,D)=>e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",D+1]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{regex:k.regex&&k.regex[0]||"",reaction:k.reaction,onRegexChange:A=>g(D,"regex",A),onReactionChange:A=>g(D,"reaction",A)}),e.jsx(P,{rule:k}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除正则规则 ",D+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>v(D),children:"删除"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),e.jsx(pe,{value:k.regex&&k.regex[0]||"",onChange:A=>g(D,"regex",A.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"反应内容"}),e.jsx(Dt,{value:k.reaction,onChange:A=>g(D,"reaction",A.target.value),placeholder:`触发后麦麦的反应... +可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},D)),s.regex_rules.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),e.jsxs("div",{className:"space-y-4 border-t pt-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),e.jsxs(q,{onClick:b,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),e.jsxs("div",{className:"space-y-3",children:[s.keyword_rules.map((k,D)=>e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",D+1]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(M,{rule:k}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除关键词规则 ",D+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>w(D),children:"删除"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{className:"text-xs font-medium",children:"关键词列表"}),e.jsxs(q,{onClick:()=>C(D),size:"sm",variant:"ghost",children:[e.jsx(ys,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),e.jsxs("div",{className:"space-y-2",children:[(k.keywords||[]).map((A,E)=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{value:A,onChange:B=>T(D,E,B.target.value),placeholder:"关键词",className:"flex-1"}),e.jsx(q,{onClick:()=>N(D,E),size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})]},E)),(!k.keywords||k.keywords.length===0)&&e.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"反应内容"}),e.jsx(Dt,{value:k.reaction,onChange:A=>S(D,"reaction",A.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},D)),s.keyword_rules.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_response_post_process",checked:a.enable_response_post_process,onCheckedChange:k=>d({...a,enable_response_post_process:k})}),e.jsx(U,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),a.enable_response_post_process&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"border-t pt-6 space-y-4",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[e.jsx(Ze,{id:"enable_chinese_typo",checked:l.enable,onCheckedChange:k=>m({...l,enable:k})}),e.jsx(U,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),l.enable&&e.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),e.jsx(pe,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:l.error_rate,onChange:k=>m({...l,error_rate:parseFloat(k.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),e.jsx(pe,{id:"min_freq",type:"number",min:"0",value:l.min_freq,onChange:k=>m({...l,min_freq:parseInt(k.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),e.jsx(pe,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:l.tone_error_rate,onChange:k=>m({...l,tone_error_rate:parseFloat(k.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),e.jsx(pe,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:l.word_replace_rate,onChange:k=>m({...l,word_replace_rate:parseFloat(k.target.value)})})]})]})]})}),e.jsx("div",{className:"border-t pt-6 space-y-4",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[e.jsx(Ze,{id:"enable_response_splitter",checked:i.enable,onCheckedChange:k=>h({...i,enable:k})}),e.jsx(U,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),i.enable&&e.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),e.jsx(pe,{id:"max_length",type:"number",min:"1",value:i.max_length,onChange:k=>h({...i,max_length:parseInt(k.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),e.jsx(pe,{id:"max_sentence_num",type:"number",min:"1",value:i.max_sentence_num,onChange:k=>h({...i,max_sentence_num:parseInt(k.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_kaomoji_protection",checked:i.enable_kaomoji_protection,onCheckedChange:k=>h({...i,enable_kaomoji_protection:k})}),e.jsx(U,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_overflow_return_all",checked:i.enable_overflow_return_all,onCheckedChange:k=>h({...i,enable_overflow_return_all:k})}),e.jsx(U,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),e.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function oM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{checked:s.enable_mood,onCheckedChange:l=>a({...s,enable_mood:l})}),e.jsx(U,{className:"cursor-pointer",children:"启用情绪系统"})]}),s.enable_mood&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"情绪更新阈值"}),e.jsx(pe,{type:"number",min:"1",value:s.mood_update_threshold,onChange:l=>a({...s,mood_update_threshold:parseInt(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"情感特征"}),e.jsx(Dt,{value:s.emotion_style,onChange:l=>a({...s,emotion_style:l.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function cM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{checked:s.enable_asr,onCheckedChange:l=>a({...s,enable_asr:l})}),e.jsx(U,{className:"cursor-pointer",children:"启用语音识别"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function dM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{checked:s.enable,onCheckedChange:l=>a({...s,enable:l})}),e.jsx(U,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),s.enable&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"LPMM 模式"}),e.jsxs(rt,{value:s.lpmm_mode,onValueChange:l=>a({...s,lpmm_mode:l}),children:[e.jsx(at,{children:e.jsx(it,{placeholder:"选择 LPMM 模式"})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"classic",children:"经典模式"}),e.jsx(ye,{value:"agent",children:"Agent 模式"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"同义词搜索 TopK"}),e.jsx(pe,{type:"number",min:"1",value:s.rag_synonym_search_top_k,onChange:l=>a({...s,rag_synonym_search_top_k:parseInt(l.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"同义词阈值"}),e.jsx(pe,{type:"number",step:"0.1",min:"0",max:"1",value:s.rag_synonym_threshold,onChange:l=>a({...s,rag_synonym_threshold:parseFloat(l.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"实体提取线程数"}),e.jsx(pe,{type:"number",min:"1",value:s.info_extraction_workers,onChange:l=>a({...s,info_extraction_workers:parseInt(l.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"嵌入向量维度"}),e.jsx(pe,{type:"number",min:"1",value:s.embedding_dimension,onChange:l=>a({...s,embedding_dimension:parseInt(l.target.value)})})]})]})]})]})]})}function uM({config:s,onChange:a}){const[l,i]=x.useState(""),[c,d]=x.useState("WARNING"),m=()=>{l&&!s.suppress_libraries.includes(l)&&(a({...s,suppress_libraries:[...s.suppress_libraries,l]}),i(""))},h=w=>{a({...s,suppress_libraries:s.suppress_libraries.filter(S=>S!==w)})},p=()=>{l&&!s.library_log_levels[l]&&(a({...s,library_log_levels:{...s.library_log_levels,[l]:c}}),i(""),d("WARNING"))},v=w=>{const S={...s.library_log_levels};delete S[w],a({...s,library_log_levels:S})},g=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],j=["FULL","compact","lite"],b=["none","title","full"];return e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"日期格式"}),e.jsx(pe,{value:s.date_style,onChange:w=>a({...s,date_style:w.target.value}),placeholder:"例如: m-d H:i:s"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"日志级别样式"}),e.jsxs(rt,{value:s.log_level_style,onValueChange:w=>a({...s,log_level_style:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:j.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"日志文本颜色"}),e.jsxs(rt,{value:s.color_text,onValueChange:w=>a({...s,color_text:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:b.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"全局日志级别"}),e.jsxs(rt,{value:s.log_level,onValueChange:w=>a({...s,log_level:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:g.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"控制台日志级别"}),e.jsxs(rt,{value:s.console_log_level,onValueChange:w=>a({...s,console_log_level:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:g.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"文件日志级别"}),e.jsxs(rt,{value:s.file_log_level,onValueChange:w=>a({...s,file_log_level:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:g.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"mb-2 block",children:"完全屏蔽的库"}),e.jsxs("div",{className:"flex gap-2 mb-2",children:[e.jsx(pe,{value:l,onChange:w=>i(w.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),m())}}),e.jsx(q,{onClick:m,size:"sm",className:"flex-shrink-0",children:e.jsx(ys,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:s.suppress_libraries.map(w=>e.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[e.jsx("span",{className:"text-sm",children:w}),e.jsx(q,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>h(w),children:e.jsx(ft,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},w))})]}),e.jsxs("div",{children:[e.jsx(U,{className:"mb-2 block",children:"特定库的日志级别"}),e.jsxs("div",{className:"flex gap-2 mb-2",children:[e.jsx(pe,{value:l,onChange:w=>i(w.target.value),placeholder:"输入库名",className:"flex-1"}),e.jsxs(rt,{value:c,onValueChange:d,children:[e.jsx(at,{className:"w-32",children:e.jsx(it,{})}),e.jsx(lt,{children:g.map(w=>e.jsx(ye,{value:w,children:w},w))})]}),e.jsx(q,{onClick:p,size:"sm",children:e.jsx(ys,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),e.jsx("div",{className:"space-y-2",children:Object.entries(s.library_log_levels).map(([w,S])=>e.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[e.jsx("span",{className:"text-sm font-medium",children:w}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:S}),e.jsx(q,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>v(w),children:e.jsx(ft,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},w))})]})]})}function mM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"显示 Prompt"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),e.jsx(Ze,{checked:s.show_prompt,onCheckedChange:l=>a({...s,show_prompt:l})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"显示回复器 Prompt"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),e.jsx(Ze,{checked:s.show_replyer_prompt,onCheckedChange:l=>a({...s,show_replyer_prompt:l})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"显示回复器推理"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),e.jsx(Ze,{checked:s.show_replyer_reasoning,onCheckedChange:l=>a({...s,show_replyer_reasoning:l})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"显示 Jargon Prompt"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),e.jsx(Ze,{checked:s.show_jargon_prompt,onCheckedChange:l=>a({...s,show_jargon_prompt:l})})]})]})]})}function fM({config:s,onChange:a}){const[l,i]=x.useState(""),c=()=>{l&&!s.auth_token.includes(l)&&(a({...s,auth_token:[...s.auth_token,l]}),i(""))},d=m=>{a({...s,auth_token:s.auth_token.filter((h,p)=>p!==m)})};return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"启用自定义服务器"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),e.jsx(Ze,{checked:s.use_custom,onCheckedChange:m=>a({...s,use_custom:m})})]}),s.use_custom&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"主机地址"}),e.jsx(pe,{value:s.host,onChange:m=>a({...s,host:m.target.value}),placeholder:"127.0.0.1"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"端口号"}),e.jsx(pe,{type:"number",value:s.port,onChange:m=>a({...s,port:parseInt(m.target.value)}),placeholder:"8090"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"连接模式"}),e.jsxs(rt,{value:s.mode,onValueChange:m=>a({...s,mode:m}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"ws",children:"WebSocket (ws)"}),e.jsx(ye,{value:"tcp",children:"TCP"})]})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{checked:s.use_wss,onCheckedChange:m=>a({...s,use_wss:m}),disabled:s.mode!=="ws"}),e.jsx(U,{children:"使用 WSS 安全连接"})]})]}),s.use_wss&&s.mode==="ws"&&e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"SSL 证书文件路径"}),e.jsx(pe,{value:s.cert_file,onChange:m=>a({...s,cert_file:m.target.value}),placeholder:"cert.pem"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"SSL 密钥文件路径"}),e.jsx(pe,{value:s.key_file,onChange:m=>a({...s,key_file:m.target.value}),placeholder:"key.pem"})]})]})]})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"mb-2 block",children:"认证令牌"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),e.jsxs("div",{className:"flex gap-2 mb-2",children:[e.jsx(pe,{value:l,onChange:m=>i(m.target.value),placeholder:"输入认证令牌",onKeyDown:m=>{m.key==="Enter"&&(m.preventDefault(),c())}}),e.jsx(q,{onClick:c,size:"sm",children:e.jsx(ys,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),e.jsx("div",{className:"space-y-2",children:s.auth_token.map((m,h)=>e.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[e.jsx("span",{className:"text-sm font-mono",children:m}),e.jsx(q,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>d(h),children:e.jsx(ft,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},h))})]})]})}function hM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"启用统计信息发送"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),e.jsx(Ze,{checked:s.enable,onCheckedChange:l=>a({...s,enable:l})})]})]})}const Rl=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:l,className:Z("w-full caption-bottom text-sm",s),...a})}));Rl.displayName="Table";const zl=x.forwardRef(({className:s,...a},l)=>e.jsx("thead",{ref:l,className:Z("[&_tr]:border-b",s),...a}));zl.displayName="TableHeader";const Pl=x.forwardRef(({className:s,...a},l)=>e.jsx("tbody",{ref:l,className:Z("[&_tr:last-child]:border-0",s),...a}));Pl.displayName="TableBody";const xM=x.forwardRef(({className:s,...a},l)=>e.jsx("tfoot",{ref:l,className:Z("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",s),...a}));xM.displayName="TableFooter";const ns=x.forwardRef(({className:s,...a},l)=>e.jsx("tr",{ref:l,className:Z("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",s),...a}));ns.displayName="TableRow";const He=x.forwardRef(({className:s,...a},l)=>e.jsx("th",{ref:l,className:Z("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",s),...a}));He.displayName="TableHead";const Ae=x.forwardRef(({className:s,...a},l)=>e.jsx("td",{ref:l,className:Z("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",s),...a}));Ae.displayName="TableCell";const pM=x.forwardRef(({className:s,...a},l)=>e.jsx("caption",{ref:l,className:Z("mt-4 text-sm text-muted-foreground",s),...a}));pM.displayName="TableCaption";const Cs=x.forwardRef(({className:s,...a},l)=>e.jsx(_y,{ref:l,className:Z("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",s),...a,children:e.jsx(N2,{className:Z("grid place-content-center text-current"),children:e.jsx(Cl,{className:"h-4 w-4"})})}));Cs.displayName=_y.displayName;function gM(){const[s,a]=x.useState([]),[l,i]=x.useState(!0),[c,d]=x.useState(!1),[m,h]=x.useState(!1),[p,v]=x.useState(!1),[g,j]=x.useState(!1),[b,w]=x.useState(!1),[S,C]=x.useState(!1),[N,T]=x.useState(null),[P,M]=x.useState(null),[k,D]=x.useState(!1),[A,E]=x.useState(null),[B,Y]=x.useState(!1),[G,$]=x.useState(""),[oe,je]=x.useState(new Set),[ae,me]=x.useState(!1),[R,O]=x.useState(1),[L,ee]=x.useState(20),[le,xe]=x.useState(""),{toast:F}=Es(),W=x.useRef(null),fe=x.useRef(!0);x.useEffect(()=>{I()},[]);const I=async()=>{try{i(!0);const he=await Ur();a(he.api_providers||[]),v(!1),fe.current=!1}catch(he){console.error("加载配置失败:",he)}finally{i(!1)}},ve=async()=>{try{j(!0),Lh().catch(()=>{}),w(!0)}catch(he){console.error("重启失败:",he),w(!1),F({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),j(!1)}},de=async()=>{try{d(!0),W.current&&clearTimeout(W.current);const he=await Ur();he.api_providers=s,await Nd(he),v(!1),F({title:"保存成功",description:"正在重启麦麦..."}),await ve()}catch(he){console.error("保存配置失败:",he),F({title:"保存失败",description:he.message,variant:"destructive"}),d(!1)}},Ce=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Q=()=>{w(!1),j(!1),F({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},Oe=x.useCallback(async he=>{if(!fe.current)try{h(!0),await Xf("api_providers",he),v(!1)}catch(Ee){console.error("自动保存失败:",Ee),v(!0)}finally{h(!1)}},[]);x.useEffect(()=>{if(!fe.current)return v(!0),W.current&&clearTimeout(W.current),W.current=setTimeout(()=>{Oe(s)},2e3),()=>{W.current&&clearTimeout(W.current)}},[s,Oe]);const $e=async()=>{try{d(!0),W.current&&clearTimeout(W.current);const he=await Ur();he.api_providers=s,await Nd(he),v(!1),F({title:"保存成功",description:"模型提供商配置已保存"})}catch(he){console.error("保存配置失败:",he),F({title:"保存失败",description:he.message,variant:"destructive"})}finally{d(!1)}},re=(he,Ee)=>{T(he||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),M(Ee),Y(!1),C(!0)},Pe=async()=>{if(N?.api_key)try{await navigator.clipboard.writeText(N.api_key),F({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{F({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},ze=()=>{if(!N)return;const he={...N,max_retry:N.max_retry??2,timeout:N.timeout??30,retry_interval:N.retry_interval??10};if(P!==null){const Ee=[...s];Ee[P]=he,a(Ee)}else a([...s,he]);C(!1),T(null),M(null)},Zt=he=>{if(!he&&N){const Ee={...N,max_retry:N.max_retry??2,timeout:N.timeout??30,retry_interval:N.retry_interval??10};T(Ee)}C(he)},Rs=he=>{E(he),D(!0)},An=()=>{if(A!==null){const he=s.filter((Ee,Ve)=>Ve!==A);a(he),F({title:"删除成功",description:"提供商已从列表中移除"})}D(!1),E(null)},Le=he=>{const Ee=new Set(oe);Ee.has(he)?Ee.delete(he):Ee.add(he),je(Ee)},Nn=()=>{if(oe.size===Xt.length)je(new Set);else{const he=Xt.map((Ee,Ve)=>s.findIndex(Os=>Os===Xt[Ve]));je(new Set(he))}},ln=()=>{if(oe.size===0){F({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}me(!0)},rn=()=>{const he=s.filter((Ee,Ve)=>!oe.has(Ve));a(he),je(new Set),me(!1),F({title:"批量删除成功",description:`已删除 ${oe.size} 个提供商`})},Xt=s.filter(he=>{if(!G)return!0;const Ee=G.toLowerCase();return he.name.toLowerCase().includes(Ee)||he.base_url.toLowerCase().includes(Ee)||he.client_type.toLowerCase().includes(Ee)}),Ds=Math.ceil(Xt.length/L),ke=Xt.slice((R-1)*L,R*L),is=()=>{const he=parseInt(le);he>=1&&he<=Ds&&(O(he),xe(""))};return l?e.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[oe.size>0&&e.jsxs(q,{onClick:ln,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[e.jsx(ft,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",oe.size,")"]}),e.jsxs(q,{onClick:()=>re(null,null),size:"sm",className:"w-full sm:w-auto",children:[e.jsx(ys,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),e.jsxs(q,{onClick:$e,disabled:c||m||!p||g,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[e.jsx(vh,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),c?"保存中...":m?"自动保存中...":p?"保存配置":"已保存"]}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{disabled:c||m||g,size:"sm",className:"w-full sm:w-auto",children:[e.jsx(jh,{className:"mr-2 h-4 w-4"}),g?"重启中...":p?"保存并重启":"重启麦麦"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重启麦麦?"}),e.jsx(Pt,{children:p?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:p?de:ve,children:p?"保存并重启":"确认重启"})]})]})]})]})]}),e.jsxs(Vd,{children:[e.jsx(Fr,{className:"h-4 w-4"}),e.jsxs(Gd,{children:["配置更新后需要",e.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),e.jsxs(Ct,{className:"h-[calc(100vh-260px)]",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[e.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"搜索提供商名称、URL 或类型...",value:G,onChange:he=>$(he.target.value),className:"pl-9"})]}),G&&e.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Xt.length," 个结果"]})]}),e.jsx("div",{className:"md:hidden space-y-3",children:Xt.length===0?e.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:G?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):ke.map((he,Ee)=>{const Ve=s.findIndex(Os=>Os===he);return e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"font-semibold text-base truncate",children:he.name}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:he.base_url})]}),e.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>re(he,Ve),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>Rs(Ve),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),e.jsx("p",{className:"font-medium",children:he.client_type})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),e.jsx("p",{className:"font-medium",children:he.max_retry})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),e.jsx("p",{className:"font-medium",children:he.timeout})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),e.jsx("p",{className:"font-medium",children:he.retry_interval})]})]})]},Ee)})}),e.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:oe.size===Xt.length&&Xt.length>0,onCheckedChange:Nn})}),e.jsx(He,{children:"名称"}),e.jsx(He,{children:"基础URL"}),e.jsx(He,{children:"客户端类型"}),e.jsx(He,{className:"text-right",children:"最大重试"}),e.jsx(He,{className:"text-right",children:"超时(秒)"}),e.jsx(He,{className:"text-right",children:"重试间隔(秒)"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:ke.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:8,className:"text-center text-muted-foreground py-8",children:G?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):ke.map((he,Ee)=>{const Ve=s.findIndex(Os=>Os===he);return e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:oe.has(Ve),onCheckedChange:()=>Le(Ve)})}),e.jsx(Ae,{className:"font-medium",children:he.name}),e.jsx(Ae,{className:"max-w-xs truncate",title:he.base_url,children:he.base_url}),e.jsx(Ae,{children:he.client_type}),e.jsx(Ae,{className:"text-right",children:he.max_retry}),e.jsx(Ae,{className:"text-right",children:he.timeout}),e.jsx(Ae,{className:"text-right",children:he.retry_interval}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>re(he,Ve),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>Rs(Ve),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})})]},Ee)})})]})}),Xt.length>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"page-size-provider",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:L.toString(),onValueChange:he=>{ee(parseInt(he)),O(1),je(new Set)},children:[e.jsx(at,{id:"page-size-provider",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["显示 ",(R-1)*L+1," 到"," ",Math.min(R*L,Xt.length)," 条,共 ",Xt.length," 条"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>O(1),disabled:R===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>O(he=>Math.max(1,he-1)),disabled:R===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:le,onChange:he=>xe(he.target.value),onKeyDown:he=>he.key==="Enter"&&is(),placeholder:R.toString(),className:"w-16 h-8 text-center",min:1,max:Ds}),e.jsx(q,{variant:"outline",size:"sm",onClick:is,disabled:!le,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>O(he=>he+1),disabled:R>=Ds,children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>O(Ds),disabled:R>=Ds,className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]}),e.jsx(bs,{open:S,onOpenChange:Zt,children:e.jsxs(ms,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:P!==null?"编辑提供商":"添加提供商"}),e.jsx(ks,{children:"配置 API 提供商的连接信息和参数"})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"name",children:"名称 *"}),e.jsx(pe,{id:"name",value:N?.name||"",onChange:he=>T(Ee=>Ee?{...Ee,name:he.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"base_url",children:"基础 URL *"}),e.jsx(pe,{id:"base_url",value:N?.base_url||"",onChange:he=>T(Ee=>Ee?{...Ee,base_url:he.target.value}:null),placeholder:"https://api.example.com/v1"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"api_key",children:"API Key *"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(pe,{id:"api_key",type:B?"text":"password",value:N?.api_key||"",onChange:he=>T(Ee=>Ee?{...Ee,api_key:he.target.value}:null),placeholder:"sk-...",className:"flex-1"}),e.jsx(q,{type:"button",variant:"outline",size:"icon",onClick:()=>Y(!B),title:B?"隐藏密钥":"显示密钥",children:B?e.jsx(Of,{className:"h-4 w-4"}):e.jsx(Mn,{className:"h-4 w-4"})}),e.jsx(q,{type:"button",variant:"outline",size:"icon",onClick:Pe,title:"复制密钥",children:e.jsx(Df,{className:"h-4 w-4"})})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"client_type",children:"客户端类型"}),e.jsxs(rt,{value:N?.client_type||"openai",onValueChange:he=>T(Ee=>Ee?{...Ee,client_type:he}:null),children:[e.jsx(at,{id:"client_type",children:e.jsx(it,{placeholder:"选择客户端类型"})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"openai",children:"OpenAI"}),e.jsx(ye,{value:"gemini",children:"Gemini"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_retry",children:"最大重试"}),e.jsx(pe,{id:"max_retry",type:"number",min:"0",value:N?.max_retry??"",onChange:he=>{const Ee=he.target.value===""?null:parseInt(he.target.value);T(Ve=>Ve?{...Ve,max_retry:Ee}:null)},placeholder:"默认: 2"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"timeout",children:"超时(秒)"}),e.jsx(pe,{id:"timeout",type:"number",min:"1",value:N?.timeout??"",onChange:he=>{const Ee=he.target.value===""?null:parseInt(he.target.value);T(Ve=>Ve?{...Ve,timeout:Ee}:null)},placeholder:"默认: 30"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),e.jsx(pe,{id:"retry_interval",type:"number",min:"1",value:N?.retry_interval??"",onChange:he=>{const Ee=he.target.value===""?null:parseInt(he.target.value);T(Ve=>Ve?{...Ve,retry_interval:Ee}:null)},placeholder:"默认: 10"})]})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>C(!1),children:"取消"}),e.jsx(q,{onClick:ze,children:"保存"})]})]})}),e.jsx(Ft,{open:k,onOpenChange:D,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除提供商 "',A!==null?s[A]?.name:"",'" 吗? 此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:An,children:"删除"})]})]})}),e.jsx(Ft,{open:ae,onOpenChange:me,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["确定要删除选中的 ",oe.size," 个提供商吗? 此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:rn,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),b&&e.jsx(Bh,{onRestartComplete:Ce,onRestartFailed:Q})]})}var Uj=1,vM=.9,jM=.8,yM=.17,Sf=.1,_f=.999,bM=.9999,NM=.99,wM=/[\\\/_+.#"@\[\(\{&]/,SM=/[\\\/_+.#"@\[\(\{&]/g,_M=/[\s-]/,xN=/[\s-]/g;function Kf(s,a,l,i,c,d,m){if(d===a.length)return c===s.length?Uj:NM;var h=`${c},${d}`;if(m[h]!==void 0)return m[h];for(var p=i.charAt(d),v=l.indexOf(p,c),g=0,j,b,w,S;v>=0;)j=Kf(s,a,l,i,v+1,d+1,m),j>g&&(v===c?j*=Uj:wM.test(s.charAt(v-1))?(j*=jM,w=s.slice(c,v-1).match(SM),w&&c>0&&(j*=Math.pow(_f,w.length))):_M.test(s.charAt(v-1))?(j*=vM,S=s.slice(c,v-1).match(xN),S&&c>0&&(j*=Math.pow(_f,S.length))):(j*=yM,c>0&&(j*=Math.pow(_f,v-c))),s.charAt(v)!==a.charAt(d)&&(j*=bM)),(jj&&(j=b*Sf)),j>g&&(g=j),v=l.indexOf(p,v+1);return m[h]=g,g}function Hj(s){return s.toLowerCase().replace(xN," ")}function CM(s,a,l){return s=l&&l.length>0?`${s+" "+l.join(" ")}`:s,Kf(s,a,Hj(s),Hj(a),0,0,{})}var kM=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ja=kM.reduce((s,a)=>{const l=ih(`Primitive.${a}`),i=x.forwardRef((c,d)=>{const{asChild:m,...h}=c,p=m?l:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(p,{...h,ref:d})});return i.displayName=`Primitive.${a}`,{...s,[a]:i}},{}),Zi='[cmdk-group=""]',Cf='[cmdk-group-items=""]',TM='[cmdk-group-heading=""]',pN='[cmdk-item=""]',Fj=`${pN}:not([aria-disabled="true"])`,Qf="cmdk-item-select",Ar="data-value",EM=(s,a,l)=>CM(s,a,l),gN=x.createContext(void 0),ko=()=>x.useContext(gN),vN=x.createContext(void 0),Uh=()=>x.useContext(vN),jN=x.createContext(void 0),yN=x.forwardRef((s,a)=>{let l=Rr(()=>{var F,W;return{search:"",value:(W=(F=s.value)!=null?F:s.defaultValue)!=null?W:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),i=Rr(()=>new Set),c=Rr(()=>new Map),d=Rr(()=>new Map),m=Rr(()=>new Set),h=bN(s),{label:p,children:v,value:g,onValueChange:j,filter:b,shouldFilter:w,loop:S,disablePointerSelection:C=!1,vimBindings:N=!0,...T}=s,P=jn(),M=jn(),k=jn(),D=x.useRef(null),A=HM();Dl(()=>{if(g!==void 0){let F=g.trim();l.current.value=F,E.emit()}},[g]),Dl(()=>{A(6,je)},[]);let E=x.useMemo(()=>({subscribe:F=>(m.current.add(F),()=>m.current.delete(F)),snapshot:()=>l.current,setState:(F,W,fe)=>{var I,ve,de,Ce;if(!Object.is(l.current[F],W)){if(l.current[F]=W,F==="search")oe(),G(),A(1,$);else if(F==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Q=document.getElementById(k);Q?Q.focus():(I=document.getElementById(P))==null||I.focus()}if(A(7,()=>{var Q;l.current.selectedItemId=(Q=ae())==null?void 0:Q.id,E.emit()}),fe||A(5,je),((ve=h.current)==null?void 0:ve.value)!==void 0){let Q=W??"";(Ce=(de=h.current).onValueChange)==null||Ce.call(de,Q);return}}E.emit()}},emit:()=>{m.current.forEach(F=>F())}}),[]),B=x.useMemo(()=>({value:(F,W,fe)=>{var I;W!==((I=d.current.get(F))==null?void 0:I.value)&&(d.current.set(F,{value:W,keywords:fe}),l.current.filtered.items.set(F,Y(W,fe)),A(2,()=>{G(),E.emit()}))},item:(F,W)=>(i.current.add(F),W&&(c.current.has(W)?c.current.get(W).add(F):c.current.set(W,new Set([F]))),A(3,()=>{oe(),G(),l.current.value||$(),E.emit()}),()=>{d.current.delete(F),i.current.delete(F),l.current.filtered.items.delete(F);let fe=ae();A(4,()=>{oe(),fe?.getAttribute("id")===F&&$(),E.emit()})}),group:F=>(c.current.has(F)||c.current.set(F,new Set),()=>{d.current.delete(F),c.current.delete(F)}),filter:()=>h.current.shouldFilter,label:p||s["aria-label"],getDisablePointerSelection:()=>h.current.disablePointerSelection,listId:P,inputId:k,labelId:M,listInnerRef:D}),[]);function Y(F,W){var fe,I;let ve=(I=(fe=h.current)==null?void 0:fe.filter)!=null?I:EM;return F?ve(F,l.current.search,W):0}function G(){if(!l.current.search||h.current.shouldFilter===!1)return;let F=l.current.filtered.items,W=[];l.current.filtered.groups.forEach(I=>{let ve=c.current.get(I),de=0;ve.forEach(Ce=>{let Q=F.get(Ce);de=Math.max(Q,de)}),W.push([I,de])});let fe=D.current;me().sort((I,ve)=>{var de,Ce;let Q=I.getAttribute("id"),Oe=ve.getAttribute("id");return((de=F.get(Oe))!=null?de:0)-((Ce=F.get(Q))!=null?Ce:0)}).forEach(I=>{let ve=I.closest(Cf);ve?ve.appendChild(I.parentElement===ve?I:I.closest(`${Cf} > *`)):fe.appendChild(I.parentElement===fe?I:I.closest(`${Cf} > *`))}),W.sort((I,ve)=>ve[1]-I[1]).forEach(I=>{var ve;let de=(ve=D.current)==null?void 0:ve.querySelector(`${Zi}[${Ar}="${encodeURIComponent(I[0])}"]`);de?.parentElement.appendChild(de)})}function $(){let F=me().find(fe=>fe.getAttribute("aria-disabled")!=="true"),W=F?.getAttribute(Ar);E.setState("value",W||void 0)}function oe(){var F,W,fe,I;if(!l.current.search||h.current.shouldFilter===!1){l.current.filtered.count=i.current.size;return}l.current.filtered.groups=new Set;let ve=0;for(let de of i.current){let Ce=(W=(F=d.current.get(de))==null?void 0:F.value)!=null?W:"",Q=(I=(fe=d.current.get(de))==null?void 0:fe.keywords)!=null?I:[],Oe=Y(Ce,Q);l.current.filtered.items.set(de,Oe),Oe>0&&ve++}for(let[de,Ce]of c.current)for(let Q of Ce)if(l.current.filtered.items.get(Q)>0){l.current.filtered.groups.add(de);break}l.current.filtered.count=ve}function je(){var F,W,fe;let I=ae();I&&(((F=I.parentElement)==null?void 0:F.firstChild)===I&&((fe=(W=I.closest(Zi))==null?void 0:W.querySelector(TM))==null||fe.scrollIntoView({block:"nearest"})),I.scrollIntoView({block:"nearest"}))}function ae(){var F;return(F=D.current)==null?void 0:F.querySelector(`${pN}[aria-selected="true"]`)}function me(){var F;return Array.from(((F=D.current)==null?void 0:F.querySelectorAll(Fj))||[])}function R(F){let W=me()[F];W&&E.setState("value",W.getAttribute(Ar))}function O(F){var W;let fe=ae(),I=me(),ve=I.findIndex(Ce=>Ce===fe),de=I[ve+F];(W=h.current)!=null&&W.loop&&(de=ve+F<0?I[I.length-1]:ve+F===I.length?I[0]:I[ve+F]),de&&E.setState("value",de.getAttribute(Ar))}function L(F){let W=ae(),fe=W?.closest(Zi),I;for(;fe&&!I;)fe=F>0?BM(fe,Zi):UM(fe,Zi),I=fe?.querySelector(Fj);I?E.setState("value",I.getAttribute(Ar)):O(F)}let ee=()=>R(me().length-1),le=F=>{F.preventDefault(),F.metaKey?ee():F.altKey?L(1):O(1)},xe=F=>{F.preventDefault(),F.metaKey?R(0):F.altKey?L(-1):O(-1)};return x.createElement(Ja.div,{ref:a,tabIndex:-1,...T,"cmdk-root":"",onKeyDown:F=>{var W;(W=T.onKeyDown)==null||W.call(T,F);let fe=F.nativeEvent.isComposing||F.keyCode===229;if(!(F.defaultPrevented||fe))switch(F.key){case"n":case"j":{N&&F.ctrlKey&&le(F);break}case"ArrowDown":{le(F);break}case"p":case"k":{N&&F.ctrlKey&&xe(F);break}case"ArrowUp":{xe(F);break}case"Home":{F.preventDefault(),R(0);break}case"End":{F.preventDefault(),ee();break}case"Enter":{F.preventDefault();let I=ae();if(I){let ve=new Event(Qf);I.dispatchEvent(ve)}}}}},x.createElement("label",{"cmdk-label":"",htmlFor:B.inputId,id:B.labelId,style:YM},p),$d(s,F=>x.createElement(vN.Provider,{value:E},x.createElement(gN.Provider,{value:B},F))))}),MM=x.forwardRef((s,a)=>{var l,i;let c=jn(),d=x.useRef(null),m=x.useContext(jN),h=ko(),p=bN(s),v=(i=(l=p.current)==null?void 0:l.forceMount)!=null?i:m?.forceMount;Dl(()=>{if(!v)return h.item(c,m?.id)},[v]);let g=NN(c,d,[s.value,s.children,d],s.keywords),j=Uh(),b=Xa(A=>A.value&&A.value===g.current),w=Xa(A=>v||h.filter()===!1?!0:A.search?A.filtered.items.get(c)>0:!0);x.useEffect(()=>{let A=d.current;if(!(!A||s.disabled))return A.addEventListener(Qf,S),()=>A.removeEventListener(Qf,S)},[w,s.onSelect,s.disabled]);function S(){var A,E;C(),(E=(A=p.current).onSelect)==null||E.call(A,g.current)}function C(){j.setState("value",g.current,!0)}if(!w)return null;let{disabled:N,value:T,onSelect:P,forceMount:M,keywords:k,...D}=s;return x.createElement(Ja.div,{ref:Ga(d,a),...D,id:c,"cmdk-item":"",role:"option","aria-disabled":!!N,"aria-selected":!!b,"data-disabled":!!N,"data-selected":!!b,onPointerMove:N||h.getDisablePointerSelection()?void 0:C,onClick:N?void 0:S},s.children)}),DM=x.forwardRef((s,a)=>{let{heading:l,children:i,forceMount:c,...d}=s,m=jn(),h=x.useRef(null),p=x.useRef(null),v=jn(),g=ko(),j=Xa(w=>c||g.filter()===!1?!0:w.search?w.filtered.groups.has(m):!0);Dl(()=>g.group(m),[]),NN(m,h,[s.value,s.heading,p]);let b=x.useMemo(()=>({id:m,forceMount:c}),[c]);return x.createElement(Ja.div,{ref:Ga(h,a),...d,"cmdk-group":"",role:"presentation",hidden:j?void 0:!0},l&&x.createElement("div",{ref:p,"cmdk-group-heading":"","aria-hidden":!0,id:v},l),$d(s,w=>x.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":l?v:void 0},x.createElement(jN.Provider,{value:b},w))))}),OM=x.forwardRef((s,a)=>{let{alwaysRender:l,...i}=s,c=x.useRef(null),d=Xa(m=>!m.search);return!l&&!d?null:x.createElement(Ja.div,{ref:Ga(c,a),...i,"cmdk-separator":"",role:"separator"})}),AM=x.forwardRef((s,a)=>{let{onValueChange:l,...i}=s,c=s.value!=null,d=Uh(),m=Xa(v=>v.search),h=Xa(v=>v.selectedItemId),p=ko();return x.useEffect(()=>{s.value!=null&&d.setState("search",s.value)},[s.value]),x.createElement(Ja.input,{ref:a,...i,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":p.listId,"aria-labelledby":p.labelId,"aria-activedescendant":h,id:p.inputId,type:"text",value:c?s.value:m,onChange:v=>{c||d.setState("search",v.target.value),l?.(v.target.value)}})}),RM=x.forwardRef((s,a)=>{let{children:l,label:i="Suggestions",...c}=s,d=x.useRef(null),m=x.useRef(null),h=Xa(v=>v.selectedItemId),p=ko();return x.useEffect(()=>{if(m.current&&d.current){let v=m.current,g=d.current,j,b=new ResizeObserver(()=>{j=requestAnimationFrame(()=>{let w=v.offsetHeight;g.style.setProperty("--cmdk-list-height",w.toFixed(1)+"px")})});return b.observe(v),()=>{cancelAnimationFrame(j),b.unobserve(v)}}},[]),x.createElement(Ja.div,{ref:Ga(d,a),...c,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":h,"aria-label":i,id:p.listId},$d(s,v=>x.createElement("div",{ref:Ga(m,p.listInnerRef),"cmdk-list-sizer":""},v)))}),zM=x.forwardRef((s,a)=>{let{open:l,onOpenChange:i,overlayClassName:c,contentClassName:d,container:m,...h}=s;return x.createElement(mh,{open:l,onOpenChange:i},x.createElement(oh,{container:m},x.createElement(Cd,{"cmdk-overlay":"",className:c}),x.createElement(kd,{"aria-label":s.label,"cmdk-dialog":"",className:d},x.createElement(yN,{ref:a,...h}))))}),PM=x.forwardRef((s,a)=>Xa(l=>l.filtered.count===0)?x.createElement(Ja.div,{ref:a,...s,"cmdk-empty":"",role:"presentation"}):null),LM=x.forwardRef((s,a)=>{let{progress:l,children:i,label:c="Loading...",...d}=s;return x.createElement(Ja.div,{ref:a,...d,"cmdk-loading":"",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,"aria-label":c},$d(s,m=>x.createElement("div",{"aria-hidden":!0},m)))}),Ws=Object.assign(yN,{List:RM,Item:MM,Input:AM,Group:DM,Separator:OM,Dialog:zM,Empty:PM,Loading:LM});function BM(s,a){let l=s.nextElementSibling;for(;l;){if(l.matches(a))return l;l=l.nextElementSibling}}function UM(s,a){let l=s.previousElementSibling;for(;l;){if(l.matches(a))return l;l=l.previousElementSibling}}function bN(s){let a=x.useRef(s);return Dl(()=>{a.current=s}),a}var Dl=typeof window>"u"?x.useEffect:x.useLayoutEffect;function Rr(s){let a=x.useRef();return a.current===void 0&&(a.current=s()),a}function Xa(s){let a=Uh(),l=()=>s(a.snapshot());return x.useSyncExternalStore(a.subscribe,l,l)}function NN(s,a,l,i=[]){let c=x.useRef(),d=ko();return Dl(()=>{var m;let h=(()=>{var v;for(let g of l){if(typeof g=="string")return g.trim();if(typeof g=="object"&&"current"in g)return g.current?(v=g.current.textContent)==null?void 0:v.trim():c.current}})(),p=i.map(v=>v.trim());d.value(s,h,p),(m=a.current)==null||m.setAttribute(Ar,h),c.current=h}),c}var HM=()=>{let[s,a]=x.useState(),l=Rr(()=>new Map);return Dl(()=>{l.current.forEach(i=>i()),l.current=new Map},[s]),(i,c)=>{l.current.set(i,c),a({})}};function FM(s){let a=s.type;return typeof a=="function"?a(s.props):"render"in a?a.render(s.props):s}function $d({asChild:s,children:a},l){return s&&x.isValidElement(a)?x.cloneElement(FM(a),{ref:a.ref},l(a.props.children)):l(a)}var YM={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const wN=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws,{ref:l,className:Z("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",s),...a}));wN.displayName=Ws.displayName;const SN=x.forwardRef(({className:s,...a},l)=>e.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[e.jsx(Gs,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(Ws.Input,{ref:l,className:Z("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",s),...a})]}));SN.displayName=Ws.Input.displayName;const _N=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws.List,{ref:l,className:Z("max-h-[300px] overflow-y-auto overflow-x-hidden",s),...a}));_N.displayName=Ws.List.displayName;const CN=x.forwardRef((s,a)=>e.jsx(Ws.Empty,{ref:a,className:"py-6 text-center text-sm",...s}));CN.displayName=Ws.Empty.displayName;const kN=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws.Group,{ref:l,className:Z("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",s),...a}));kN.displayName=Ws.Group.displayName;const qM=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws.Separator,{ref:l,className:Z("-mx-1 h-px bg-border",s),...a}));qM.displayName=Ws.Separator.displayName;const TN=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws.Item,{ref:l,className:Z("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",s),...a}));TN.displayName=Ws.Item.displayName;function VM({options:s,selected:a,onChange:l,placeholder:i="选择选项...",emptyText:c="未找到选项",className:d}){const[m,h]=x.useState(!1),p=g=>{a.includes(g)?l(a.filter(j=>j!==g)):l([...a,g])},v=g=>{l(a.filter(j=>j!==g))};return e.jsxs(Ia,{open:m,onOpenChange:h,children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",role:"combobox","aria-expanded":m,className:Z("w-full justify-between min-h-10 h-auto",d),children:[e.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:a.length===0?e.jsx("span",{className:"text-muted-foreground",children:i}):a.map(g=>{const j=s.find(b=>b.value===g);return e.jsxs(_t,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:b=>{b.stopPropagation(),v(g)},children:[j?.label||g,e.jsx(go,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},g)})}),e.jsx(U2,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),e.jsx(pa,{className:"w-full p-0",align:"start",children:e.jsxs(wN,{children:[e.jsx(SN,{placeholder:"搜索...",className:"h-9"}),e.jsxs(_N,{children:[e.jsx(CN,{children:c}),e.jsx(kN,{children:s.map(g=>{const j=a.includes(g.value);return e.jsxs(TN,{value:g.value,onSelect:()=>p(g.value),children:[e.jsx("div",{className:Z("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",j?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:e.jsx(Cl,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),e.jsx("span",{children:g.label})]},g.value)})})]})]})})]})}function GM(){const[s,a]=x.useState([]),[l,i]=x.useState([]),[c,d]=x.useState([]),[m,h]=x.useState(null),[p,v]=x.useState(!0),[g,j]=x.useState(!1),[b,w]=x.useState(!1),[S,C]=x.useState(!1),[N,T]=x.useState(!1),[P,M]=x.useState(!1),[k,D]=x.useState(!1),[A,E]=x.useState(null),[B,Y]=x.useState(null),[G,$]=x.useState(!1),[oe,je]=x.useState(null),[ae,me]=x.useState(""),[R,O]=x.useState(new Set),[L,ee]=x.useState(!1),[le,xe]=x.useState(1),[F,W]=x.useState(20),[fe,I]=x.useState(""),{toast:ve}=Es(),de=x.useRef(null),Ce=x.useRef(null),Q=x.useRef(!0);x.useEffect(()=>{Oe()},[]);const Oe=async()=>{try{v(!0);const se=await Ur(),ge=se.models||[];a(ge),d(ge.map(pt=>pt.name));const Qe=se.api_providers||[];i(Qe.map(pt=>pt.name)),h(se.model_task_config||null),C(!1),Q.current=!1}catch(se){console.error("加载配置失败:",se)}finally{v(!1)}},$e=async()=>{try{T(!0),Lh().catch(()=>{}),M(!0)}catch(se){console.error("重启失败:",se),M(!1),ve({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),T(!1)}},re=async()=>{try{j(!0),de.current&&clearTimeout(de.current),Ce.current&&clearTimeout(Ce.current);const se=await Ur();se.models=s,se.model_task_config=m,await Nd(se),C(!1),ve({title:"保存成功",description:"正在重启麦麦..."}),await $e()}catch(se){console.error("保存配置失败:",se),ve({title:"保存失败",description:se.message,variant:"destructive"}),j(!1)}},Pe=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},ze=()=>{M(!1),T(!1),ve({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},Zt=x.useCallback(async se=>{if(!Q.current)try{w(!0),await Xf("models",se),C(!1)}catch(ge){console.error("自动保存模型列表失败:",ge),C(!0)}finally{w(!1)}},[]),Rs=x.useCallback(async se=>{if(!Q.current)try{w(!0),await Xf("model_task_config",se),C(!1)}catch(ge){console.error("自动保存任务配置失败:",ge),C(!0)}finally{w(!1)}},[]);x.useEffect(()=>{if(!Q.current)return C(!0),de.current&&clearTimeout(de.current),de.current=setTimeout(()=>{Zt(s)},2e3),()=>{de.current&&clearTimeout(de.current)}},[s,Zt]),x.useEffect(()=>{if(!(Q.current||!m))return C(!0),Ce.current&&clearTimeout(Ce.current),Ce.current=setTimeout(()=>{Rs(m)},2e3),()=>{Ce.current&&clearTimeout(Ce.current)}},[m,Rs]);const An=async()=>{try{j(!0),de.current&&clearTimeout(de.current),Ce.current&&clearTimeout(Ce.current);const se=await Ur();se.models=s,se.model_task_config=m,await Nd(se),C(!1),ve({title:"保存成功",description:"模型配置已保存"}),await Oe()}catch(se){console.error("保存配置失败:",se),ve({title:"保存失败",description:se.message,variant:"destructive"})}finally{j(!1)}},Le=(se,ge)=>{E(se||{model_identifier:"",name:"",api_provider:l[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),Y(ge),D(!0)},Nn=()=>{if(!A)return;const se={...A,price_in:A.price_in??0,price_out:A.price_out??0};let ge;B!==null?(ge=[...s],ge[B]=se):ge=[...s,se],a(ge),d(ge.map(Qe=>Qe.name)),D(!1),E(null),Y(null)},ln=se=>{if(!se&&A){const ge={...A,price_in:A.price_in??0,price_out:A.price_out??0};E(ge)}D(se)},rn=se=>{je(se),$(!0)},Xt=()=>{if(oe!==null){const se=s.filter((ge,Qe)=>Qe!==oe);a(se),d(se.map(ge=>ge.name)),ve({title:"删除成功",description:"模型已从列表中移除"})}$(!1),je(null)},Ds=se=>{const ge=new Set(R);ge.has(se)?ge.delete(se):ge.add(se),O(ge)},ke=()=>{if(R.size===Ve.length)O(new Set);else{const se=Ve.map((ge,Qe)=>s.findIndex(pt=>pt===Ve[Qe]));O(new Set(se))}},is=()=>{if(R.size===0){ve({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}ee(!0)},he=()=>{const se=s.filter((ge,Qe)=>!R.has(Qe));a(se),d(se.map(ge=>ge.name)),O(new Set),ee(!1),ve({title:"批量删除成功",description:`已删除 ${R.size} 个模型`})},Ee=(se,ge,Qe)=>{m&&h({...m,[se]:{...m[se],[ge]:Qe}})},Ve=s.filter(se=>{if(!ae)return!0;const ge=ae.toLowerCase();return se.name.toLowerCase().includes(ge)||se.model_identifier.toLowerCase().includes(ge)||se.api_provider.toLowerCase().includes(ge)}),Os=Math.ceil(Ve.length/F),$n=Ve.slice((le-1)*F,le*F),Hl=()=>{const se=parseInt(fe);se>=1&&se<=Os&&(xe(se),I(""))},Fl=se=>m?[m.utils?.model_list||[],m.utils_small?.model_list||[],m.tool_use?.model_list||[],m.replyer?.model_list||[],m.planner?.model_list||[],m.vlm?.model_list||[],m.voice?.model_list||[],m.embedding?.model_list||[],m.lpmm_entity_extract?.model_list||[],m.lpmm_rdf_build?.model_list||[],m.lpmm_qa?.model_list||[]].some(Qe=>Qe.includes(se)):!1;return p?e.jsx(Ct,{className:"h-full",children:e.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),e.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[e.jsxs(q,{onClick:An,disabled:g||b||!S||N,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[e.jsx(vh,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),g?"保存中...":b?"自动保存中...":S?"保存配置":"已保存"]}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{disabled:g||b||N,size:"sm",className:"flex-1 sm:flex-none",children:[e.jsx(jh,{className:"mr-2 h-4 w-4"}),N?"重启中...":S?"保存并重启":"重启麦麦"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重启麦麦?"}),e.jsx(Pt,{children:S?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:S?re:$e,children:S?"保存并重启":"确认重启"})]})]})]})]})]}),e.jsxs(Vd,{children:[e.jsx(Fr,{className:"h-4 w-4"}),e.jsxs(Gd,{children:["配置更新后需要",e.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),e.jsxs(Ml,{defaultValue:"models",className:"w-full",children:[e.jsxs($a,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[e.jsx(bt,{value:"models",children:"模型配置"}),e.jsx(bt,{value:"tasks",children:"模型任务配置"})]}),e.jsxs(Vt,{value:"models",className:"space-y-4 mt-0",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),e.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[R.size>0&&e.jsxs(q,{onClick:is,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[e.jsx(ft,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",R.size,")"]}),e.jsxs(q,{onClick:()=>Le(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[e.jsx(ys,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[e.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"搜索模型名称、标识符或提供商...",value:ae,onChange:se=>me(se.target.value),className:"pl-9"})]}),ae&&e.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Ve.length," 个结果"]})]}),e.jsx("div",{className:"md:hidden space-y-3",children:$n.length===0?e.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:ae?"未找到匹配的模型":"暂无模型配置"}):$n.map((se,ge)=>{const Qe=s.findIndex(tl=>tl===se),pt=Fl(se.name);return e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h3",{className:"font-semibold text-base",children:se.name}),e.jsx(_t,{variant:pt?"default":"secondary",className:pt?"bg-green-600 hover:bg-green-700":"",children:pt?"已使用":"未使用"})]}),e.jsx("p",{className:"text-xs text-muted-foreground break-all",title:se.model_identifier,children:se.model_identifier})]}),e.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>Le(se,Qe),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>rn(Qe),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),e.jsx("p",{className:"font-medium",children:se.api_provider})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),e.jsx("p",{className:"font-medium",children:se.force_stream_mode?"是":"否"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),e.jsxs("p",{className:"font-medium",children:["¥",se.price_in,"/M"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),e.jsxs("p",{className:"font-medium",children:["¥",se.price_out,"/M"]})]})]})]},ge)})}),e.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:R.size===Ve.length&&Ve.length>0,onCheckedChange:ke})}),e.jsx(He,{className:"w-24",children:"使用状态"}),e.jsx(He,{children:"模型名称"}),e.jsx(He,{children:"模型标识符"}),e.jsx(He,{children:"提供商"}),e.jsx(He,{className:"text-right",children:"输入价格"}),e.jsx(He,{className:"text-right",children:"输出价格"}),e.jsx(He,{className:"text-center",children:"强制流式"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:$n.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:9,className:"text-center text-muted-foreground py-8",children:ae?"未找到匹配的模型":"暂无模型配置"})}):$n.map((se,ge)=>{const Qe=s.findIndex(tl=>tl===se),pt=Fl(se.name);return e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:R.has(Qe),onCheckedChange:()=>Ds(Qe)})}),e.jsx(Ae,{children:e.jsx(_t,{variant:pt?"default":"secondary",className:pt?"bg-green-600 hover:bg-green-700":"",children:pt?"已使用":"未使用"})}),e.jsx(Ae,{className:"font-medium",children:se.name}),e.jsx(Ae,{className:"max-w-xs truncate",title:se.model_identifier,children:se.model_identifier}),e.jsx(Ae,{children:se.api_provider}),e.jsxs(Ae,{className:"text-right",children:["¥",se.price_in,"/M"]}),e.jsxs(Ae,{className:"text-right",children:["¥",se.price_out,"/M"]}),e.jsx(Ae,{className:"text-center",children:se.force_stream_mode?"是":"否"}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>Le(se,Qe),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>rn(Qe),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})})]},ge)})})]})}),Ve.length>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"page-size-model",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:F.toString(),onValueChange:se=>{W(parseInt(se)),xe(1),O(new Set)},children:[e.jsx(at,{id:"page-size-model",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["显示 ",(le-1)*F+1," 到"," ",Math.min(le*F,Ve.length)," 条,共 ",Ve.length," 条"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>xe(1),disabled:le===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>xe(se=>Math.max(1,se-1)),disabled:le===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:fe,onChange:se=>I(se.target.value),onKeyDown:se=>se.key==="Enter"&&Hl(),placeholder:le.toString(),className:"w-16 h-8 text-center",min:1,max:Os}),e.jsx(q,{variant:"outline",size:"sm",onClick:Hl,disabled:!fe,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>xe(se=>se+1),disabled:le>=Os,children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>xe(Os),disabled:le>=Os,className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]}),e.jsxs(Vt,{value:"tasks",className:"space-y-6 mt-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),m&&e.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[e.jsx(Cn,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:m.utils,modelNames:c,onChange:(se,ge)=>Ee("utils",se,ge)}),e.jsx(Cn,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:m.utils_small,modelNames:c,onChange:(se,ge)=>Ee("utils_small",se,ge)}),e.jsx(Cn,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:m.tool_use,modelNames:c,onChange:(se,ge)=>Ee("tool_use",se,ge)}),e.jsx(Cn,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:m.replyer,modelNames:c,onChange:(se,ge)=>Ee("replyer",se,ge)}),e.jsx(Cn,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:m.planner,modelNames:c,onChange:(se,ge)=>Ee("planner",se,ge)}),e.jsx(Cn,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:m.vlm,modelNames:c,onChange:(se,ge)=>Ee("vlm",se,ge),hideTemperature:!0}),e.jsx(Cn,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:m.voice,modelNames:c,onChange:(se,ge)=>Ee("voice",se,ge),hideTemperature:!0,hideMaxTokens:!0}),e.jsx(Cn,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:m.embedding,modelNames:c,onChange:(se,ge)=>Ee("embedding",se,ge),hideTemperature:!0,hideMaxTokens:!0}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),e.jsx(Cn,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:m.lpmm_entity_extract,modelNames:c,onChange:(se,ge)=>Ee("lpmm_entity_extract",se,ge)}),e.jsx(Cn,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:m.lpmm_rdf_build,modelNames:c,onChange:(se,ge)=>Ee("lpmm_rdf_build",se,ge)}),e.jsx(Cn,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:m.lpmm_qa,modelNames:c,onChange:(se,ge)=>Ee("lpmm_qa",se,ge)})]})]})]})]}),e.jsx(bs,{open:k,onOpenChange:ln,children:e.jsxs(ms,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:B!==null?"编辑模型":"添加模型"}),e.jsx(ks,{children:"配置模型的基本信息和参数"})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"model_name",children:"模型名称 *"}),e.jsx(pe,{id:"model_name",value:A?.name||"",onChange:se=>E(ge=>ge?{...ge,name:se.target.value}:null),placeholder:"例如: qwen3-30b"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"model_identifier",children:"模型标识符 *"}),e.jsx(pe,{id:"model_identifier",value:A?.model_identifier||"",onChange:se=>E(ge=>ge?{...ge,model_identifier:se.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"api_provider",children:"API 提供商 *"}),e.jsxs(rt,{value:A?.api_provider||"",onValueChange:se=>E(ge=>ge?{...ge,api_provider:se}:null),children:[e.jsx(at,{id:"api_provider",children:e.jsx(it,{placeholder:"选择提供商"})}),e.jsx(lt,{children:l.map(se=>e.jsx(ye,{value:se,children:se},se))})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),e.jsx(pe,{id:"price_in",type:"number",step:"0.1",min:"0",value:A?.price_in??"",onChange:se=>{const ge=se.target.value===""?null:parseFloat(se.target.value);E(Qe=>Qe?{...Qe,price_in:ge}:null)},placeholder:"默认: 0"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),e.jsx(pe,{id:"price_out",type:"number",step:"0.1",min:"0",value:A?.price_out??"",onChange:se=>{const ge=se.target.value===""?null:parseFloat(se.target.value);E(Qe=>Qe?{...Qe,price_out:ge}:null)},placeholder:"默认: 0"})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"force_stream_mode",checked:A?.force_stream_mode||!1,onCheckedChange:se=>E(ge=>ge?{...ge,force_stream_mode:se}:null)}),e.jsx(U,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>D(!1),children:"取消"}),e.jsx(q,{onClick:Nn,children:"保存"})]})]})}),e.jsx(Ft,{open:G,onOpenChange:$,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除模型 "',oe!==null?s[oe]?.name:"",'" 吗? 此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:Xt,children:"删除"})]})]})}),e.jsx(Ft,{open:L,onOpenChange:ee,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["确定要删除选中的 ",R.size," 个模型吗? 此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:he,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),P&&e.jsx(Bh,{onRestartComplete:Pe,onRestartFailed:ze})]})})}function Cn({title:s,description:a,taskConfig:l,modelNames:i,onChange:c,hideTemperature:d=!1,hideMaxTokens:m=!1}){const h=p=>{c("model_list",p)};return e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:s}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:a})]}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"模型列表"}),e.jsx(VM,{options:i.map(p=>({label:p,value:p})),selected:l.model_list||[],onChange:h,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!d&&e.jsxs("div",{className:"grid gap-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{children:"温度"}),e.jsx(pe,{type:"number",step:"0.1",min:"0",max:"1",value:l.temperature??.3,onChange:p=>{const v=parseFloat(p.target.value);!isNaN(v)&&v>=0&&v<=1&&c("temperature",v)},className:"w-20 h-8 text-sm"})]}),e.jsx(Yd,{value:[l.temperature??.3],onValueChange:p=>c("temperature",p[0]),min:0,max:1,step:.1,className:"w-full"})]}),!m&&e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"最大 Token"}),e.jsx(pe,{type:"number",step:"1",min:"1",value:l.max_tokens??1024,onChange:p=>c("max_tokens",parseInt(p.target.value))})]})]})]})]})}const va="/api/webui/emoji";async function $M(s){const a=new URLSearchParams;s.page&&a.append("page",s.page.toString()),s.page_size&&a.append("page_size",s.page_size.toString()),s.search&&a.append("search",s.search),s.is_registered!==void 0&&a.append("is_registered",s.is_registered.toString()),s.is_banned!==void 0&&a.append("is_banned",s.is_banned.toString()),s.format&&a.append("format",s.format),s.sort_by&&a.append("sort_by",s.sort_by),s.sort_order&&a.append("sort_order",s.sort_order);const l=await Fe(`${va}/list?${a}`,{headers:Ie()});if(!l.ok)throw new Error(`获取表情包列表失败: ${l.statusText}`);return l.json()}async function IM(s){const a=await Fe(`${va}/${s}`,{headers:Ie()});if(!a.ok)throw new Error(`获取表情包详情失败: ${a.statusText}`);return a.json()}async function WM(s,a){const l=await Fe(`${va}/${s}`,{method:"PATCH",headers:Ie(),body:JSON.stringify(a)});if(!l.ok)throw new Error(`更新表情包失败: ${l.statusText}`);return l.json()}async function XM(s){const a=await Fe(`${va}/${s}`,{method:"DELETE",headers:Ie()});if(!a.ok)throw new Error(`删除表情包失败: ${a.statusText}`);return a.json()}async function KM(){const s=await Fe(`${va}/stats/summary`,{headers:Ie()});if(!s.ok)throw new Error(`获取统计数据失败: ${s.statusText}`);return s.json()}async function QM(s){const a=await Fe(`${va}/${s}/register`,{method:"POST",headers:Ie()});if(!a.ok)throw new Error(`注册表情包失败: ${a.statusText}`);return a.json()}async function ZM(s){const a=await Fe(`${va}/${s}/ban`,{method:"POST",headers:Ie()});if(!a.ok)throw new Error(`封禁表情包失败: ${a.statusText}`);return a.json()}function Zf(s){const a=localStorage.getItem("access-token");return`${va}/${s}/thumbnail?token=${encodeURIComponent(a||"")}`}async function JM(s){const a=await Fe(`${va}/batch/delete`,{method:"POST",headers:Ie(),body:JSON.stringify({emoji_ids:s})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"批量删除失败")}return a.json()}function eD(){const[s,a]=x.useState([]),[l,i]=x.useState(null),[c,d]=x.useState(!1),[m,h]=x.useState(1),[p,v]=x.useState(0),[g,j]=x.useState(20),[b,w]=x.useState(""),[S,C]=x.useState("all"),[N,T]=x.useState("all"),[P,M]=x.useState("all"),[k,D]=x.useState(null),[A,E]=x.useState(!1),[B,Y]=x.useState(!1),[G,$]=x.useState(!1),[oe,je]=x.useState(new Set),[ae,me]=x.useState(!1),[R,O]=x.useState(""),{toast:L}=Es(),ee=x.useCallback(async()=>{try{d(!0);const re=await $M({page:m,page_size:g,search:b||void 0,is_registered:S==="all"?void 0:S==="registered",is_banned:N==="all"?void 0:N==="banned",format:P==="all"?void 0:P,sort_by:"usage_count",sort_order:"desc"});a(re.data),v(re.total)}catch(re){const Pe=re instanceof Error?re.message:"加载表情包列表失败";L({title:"错误",description:Pe,variant:"destructive"})}finally{d(!1)}},[m,g,b,S,N,P,L]),le=async()=>{try{const re=await KM();i(re.data)}catch(re){console.error("加载统计数据失败:",re)}};x.useEffect(()=>{ee()},[ee]),x.useEffect(()=>{le()},[]);const xe=async re=>{try{const Pe=await IM(re.id);D(Pe.data),E(!0)}catch(Pe){const ze=Pe instanceof Error?Pe.message:"加载详情失败";L({title:"错误",description:ze,variant:"destructive"})}},F=re=>{D(re),Y(!0)},W=re=>{D(re),$(!0)},fe=async()=>{if(k)try{await XM(k.id),L({title:"成功",description:"表情包已删除"}),$(!1),D(null),ee(),le()}catch(re){const Pe=re instanceof Error?re.message:"删除失败";L({title:"错误",description:Pe,variant:"destructive"})}},I=async re=>{try{await QM(re.id),L({title:"成功",description:"表情包已注册"}),ee(),le()}catch(Pe){const ze=Pe instanceof Error?Pe.message:"注册失败";L({title:"错误",description:ze,variant:"destructive"})}},ve=async re=>{try{await ZM(re.id),L({title:"成功",description:"表情包已封禁"}),ee(),le()}catch(Pe){const ze=Pe instanceof Error?Pe.message:"封禁失败";L({title:"错误",description:ze,variant:"destructive"})}},de=re=>{const Pe=new Set(oe);Pe.has(re)?Pe.delete(re):Pe.add(re),je(Pe)},Ce=()=>{oe.size===s.length&&s.length>0?je(new Set):je(new Set(s.map(re=>re.id)))},Q=async()=>{try{const re=await JM(Array.from(oe));L({title:"批量删除完成",description:re.message}),je(new Set),me(!1),ee(),le()}catch(re){L({title:"批量删除失败",description:re instanceof Error?re.message:"批量删除失败",variant:"destructive"})}},Oe=()=>{const re=parseInt(R),Pe=Math.ceil(p/g);re>=1&&re<=Pe?(h(re),O("")):L({title:"无效的页码",description:`请输入1-${Pe}之间的页码`,variant:"destructive"})},$e=l?.formats?Object.keys(l.formats):[];return e.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[e.jsxs("div",{className:"mb-4 sm:mb-6",children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),e.jsx(Ct,{className:"flex-1",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[l&&e.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[e.jsx(Ue,{children:e.jsxs(ot,{className:"pb-2",children:[e.jsx(us,{children:"总数"}),e.jsx(ct,{className:"text-2xl",children:l.total})]})}),e.jsx(Ue,{children:e.jsxs(ot,{className:"pb-2",children:[e.jsx(us,{children:"已注册"}),e.jsx(ct,{className:"text-2xl text-green-600",children:l.registered})]})}),e.jsx(Ue,{children:e.jsxs(ot,{className:"pb-2",children:[e.jsx(us,{children:"已封禁"}),e.jsx(ct,{className:"text-2xl text-red-600",children:l.banned})]})}),e.jsx(Ue,{children:e.jsxs(ot,{className:"pb-2",children:[e.jsx(us,{children:"未注册"}),e.jsx(ct,{className:"text-2xl text-gray-600",children:l.unregistered})]})})]}),e.jsxs(Ue,{children:[e.jsx(ot,{children:e.jsxs(ct,{className:"flex items-center gap-2",children:[e.jsx(Lf,{className:"h-5 w-5"}),"搜索和筛选"]})}),e.jsxs(gt,{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"搜索"}),e.jsxs("div",{className:"relative",children:[e.jsx(Gs,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"描述或哈希值...",value:b,onChange:re=>{w(re.target.value),h(1)},className:"pl-8"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"注册状态"}),e.jsxs(rt,{value:S,onValueChange:re=>{C(re),h(1)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部"}),e.jsx(ye,{value:"registered",children:"已注册"}),e.jsx(ye,{value:"unregistered",children:"未注册"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"封禁状态"}),e.jsxs(rt,{value:N,onValueChange:re=>{T(re),h(1)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部"}),e.jsx(ye,{value:"banned",children:"已封禁"}),e.jsx(ye,{value:"unbanned",children:"未封禁"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"格式"}),e.jsxs(rt,{value:P,onValueChange:re=>{M(re),h(1)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部"}),$e.map(re=>e.jsxs(ye,{value:re,children:[re.toUpperCase()," (",l?.formats[re],")"]},re))]})]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 pt-4 border-t",children:[e.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:oe.size>0&&e.jsxs("span",{children:["已选择 ",oe.size," 个表情包"]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"emoji-page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:g.toString(),onValueChange:re=>{j(parseInt(re)),h(1),je(new Set)},children:[e.jsx(at,{id:"emoji-page-size",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),oe.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>je(new Set),children:"取消选择"}),e.jsxs(q,{variant:"destructive",size:"sm",onClick:()=>me(!0),children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]}),e.jsx("div",{className:"flex justify-end pt-4 border-t",children:e.jsxs(q,{variant:"outline",size:"sm",onClick:ee,disabled:c,children:[e.jsx(xa,{className:`h-4 w-4 mr-2 ${c?"animate-spin":""}`}),"刷新"]})})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"表情包列表"}),e.jsxs(us,{children:["共 ",p," 个表情包,当前第 ",m," 页"]})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:s.length>0&&oe.size===s.length,onCheckedChange:Ce,"aria-label":"全选"})}),e.jsx(He,{className:"w-16",children:"预览"}),e.jsx(He,{children:"描述"}),e.jsx(He,{children:"格式"}),e.jsx(He,{children:"情绪标签"}),e.jsx(He,{className:"text-center",children:"状态"}),e.jsx(He,{className:"text-right",children:"使用次数"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:s.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):s.map(re=>e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:oe.has(re.id),onCheckedChange:()=>de(re.id),"aria-label":`选择 ${re.description}`})}),e.jsx(Ae,{children:e.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:e.jsx("img",{src:Zf(re.id),alt:re.description||"表情包",className:"w-full h-full object-cover",onError:Pe=>{const ze=Pe.target;ze.style.display="none";const Zt=ze.parentElement;Zt&&(Zt.innerHTML='')}})})}),e.jsx(Ae,{children:e.jsxs("div",{className:"space-y-1 max-w-xs",children:[e.jsx("div",{className:"font-medium truncate",title:re.description||"无描述",children:re.description||"无描述"}),e.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[re.emoji_hash.slice(0,16),"..."]})]})}),e.jsx(Ae,{children:e.jsx(_t,{variant:"outline",children:re.format.toUpperCase()})}),e.jsx(Ae,{children:e.jsx(Yj,{emotions:re.emotion})}),e.jsx(Ae,{className:"align-middle",children:e.jsxs("div",{className:"flex gap-2 justify-center",children:[re.is_registered&&e.jsxs(_t,{variant:"default",className:"bg-green-600",children:[e.jsx(Ys,{className:"h-3 w-3 mr-1"}),"已注册"]}),re.is_banned&&e.jsxs(_t,{variant:"destructive",children:[e.jsx(Af,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),e.jsx(Ae,{className:"text-right font-mono",children:re.usage_count}),e.jsx(Ae,{children:e.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>xe(re),children:[e.jsx(Fr,{className:"h-4 w-4 mr-1"}),"详情"]}),e.jsxs(q,{variant:"default",size:"sm",onClick:()=>F(re),children:[e.jsx(qr,{className:"h-4 w-4 mr-1"}),"编辑"]}),!re.is_registered&&e.jsxs(q,{size:"sm",onClick:()=>I(re),className:"bg-green-600 hover:bg-green-700 text-white",children:[e.jsx(Ys,{className:"h-4 w-4 mr-1"}),"注册"]}),!re.is_banned&&e.jsxs(q,{size:"sm",onClick:()=>ve(re),className:"bg-orange-600 hover:bg-orange-700 text-white",children:[e.jsx(Jv,{className:"h-4 w-4 mr-1"}),"封禁"]}),e.jsxs(q,{size:"sm",onClick:()=>W(re),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},re.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3",children:s.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):s.map(re=>e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[e.jsxs("div",{className:"flex gap-3",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:e.jsx("img",{src:Zf(re.id),alt:re.description||"表情包",className:"w-full h-full object-cover",onError:Pe=>{const ze=Pe.target;ze.style.display="none";const Zt=ze.parentElement;Zt&&(Zt.innerHTML='')}})})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[e.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[e.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:re.description||"无描述",children:re.description||"无描述"}),e.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[re.emoji_hash.slice(0,16),"..."]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[e.jsx(_t,{variant:"outline",className:"text-xs flex-shrink-0",children:re.format.toUpperCase()}),re.is_registered&&e.jsxs(_t,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[e.jsx(Ys,{className:"h-3 w-3 mr-1"}),"已注册"]}),re.is_banned&&e.jsxs(_t,{variant:"destructive",className:"text-xs flex-shrink-0",children:[e.jsx(Af,{className:"h-3 w-3 mr-1"}),"已封禁"]}),e.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",re.usage_count]})]}),re.emotion&&re.emotion.length>0&&e.jsx("div",{className:"min-w-0 overflow-hidden",children:e.jsx(Yj,{emotions:re.emotion})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>xe(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(Fr,{className:"h-3 w-3 mr-1"}),"详情"]}),e.jsxs(q,{variant:"default",size:"sm",onClick:()=>F(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(qr,{className:"h-3 w-3 mr-1"}),"编辑"]}),!re.is_registered&&e.jsxs(q,{size:"sm",onClick:()=>I(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-green-600 hover:bg-green-700 text-white",children:[e.jsx(Ys,{className:"h-3 w-3 mr-1"}),"注册"]}),!re.is_banned&&e.jsxs(q,{size:"sm",onClick:()=>ve(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-orange-600 hover:bg-orange-700 text-white",children:[e.jsx(Jv,{className:"h-3 w-3 mr-1"}),"封禁"]}),e.jsxs(q,{size:"sm",onClick:()=>W(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},re.id))}),p>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(m-1)*g+1," 到"," ",Math.min(m*g,p)," 条,共 ",p," 条"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(1),disabled:m===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(re=>Math.max(1,re-1)),disabled:m===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:R,onChange:re=>O(re.target.value),onKeyDown:re=>re.key==="Enter"&&Oe(),placeholder:m.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(p/g)}),e.jsx(q,{variant:"outline",size:"sm",onClick:Oe,disabled:!R,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(re=>re+1),disabled:m>=Math.ceil(p/g),children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(Math.ceil(p/g)),disabled:m>=Math.ceil(p/g),className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]})]}),e.jsx(tD,{emoji:k,open:A,onOpenChange:E}),e.jsx(sD,{emoji:k,open:B,onOpenChange:Y,onSuccess:()=>{ee(),le()}})]})}),e.jsx(Ft,{open:ae,onOpenChange:me,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["你确定要删除选中的 ",oe.size," 个表情包吗?此操作不可撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:Q,children:"确认删除"})]})]})}),e.jsx(bs,{open:G,onOpenChange:$,children:e.jsxs(ms,{children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"确认删除"}),e.jsx(ks,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>$(!1),children:"取消"}),e.jsx(q,{variant:"destructive",onClick:fe,children:"删除"})]})]})})]})}function tD({emoji:s,open:a,onOpenChange:l}){if(!s)return null;const i=c=>c?new Date(c*1e3).toLocaleString("zh-CN"):"-";return e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[90vh]",children:[e.jsx(fs,{children:e.jsx(hs,{children:"表情包详情"})}),e.jsx(Ct,{className:"max-h-[calc(90vh-8rem)] pr-4",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:e.jsx("img",{src:Zf(s.id),alt:s.description||"表情包",className:"w-full h-full object-cover",onError:c=>{const d=c.target;d.style.display="none";const m=d.parentElement;m&&(m.innerHTML='')}})})}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"ID"}),e.jsx("div",{className:"mt-1 font-mono",children:s.id})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"格式"}),e.jsx("div",{className:"mt-1",children:e.jsx(_t,{variant:"outline",children:s.format.toUpperCase()})})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"文件路径"}),e.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:s.full_path})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"哈希值"}),e.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:s.emoji_hash})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"描述"}),e.jsx("div",{className:"mt-1",children:s.description||"-"})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"情绪标签"}),e.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:(()=>{const c=s.emotion?s.emotion.split(/[,,]/).map(d=>d.trim()).filter(Boolean):[];return c.length>0?c.map((d,m)=>e.jsx(_t,{variant:"secondary",children:d},m)):e.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})()})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"状态"}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[s.is_registered&&e.jsx(_t,{variant:"default",className:"bg-green-600",children:"已注册"}),s.is_banned&&e.jsx(_t,{variant:"destructive",children:"已封禁"}),!s.is_registered&&!s.is_banned&&e.jsx(_t,{variant:"outline",children:"未注册"})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"使用次数"}),e.jsx("div",{className:"mt-1 font-mono text-lg",children:s.usage_count})]})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"记录时间"}),e.jsx("div",{className:"mt-1 text-sm",children:i(s.record_time)})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"注册时间"}),e.jsx("div",{className:"mt-1 text-sm",children:i(s.register_time)})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"最后使用"}),e.jsx("div",{className:"mt-1 text-sm",children:i(s.last_used_time)})]})]})})]})})}function sD({emoji:s,open:a,onOpenChange:l,onSuccess:i}){const[c,d]=x.useState(""),[m,h]=x.useState(""),[p,v]=x.useState(!1),[g,j]=x.useState(!1),[b,w]=x.useState(!1),{toast:S}=Es();x.useEffect(()=>{s&&(d(s.description||""),h(s.emotion||""),v(s.is_registered),j(s.is_banned))},[s]);const C=async()=>{if(s)try{w(!0);const N=m.split(/[,,]/).map(T=>T.trim()).filter(Boolean).join(",");await WM(s.id,{description:c||void 0,emotion:N||void 0,is_registered:p,is_banned:g}),S({title:"成功",description:"表情包信息已更新"}),l(!1),i()}catch(N){const T=N instanceof Error?N.message:"保存失败";S({title:"错误",description:T,variant:"destructive"})}finally{w(!1)}};return s?e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"编辑表情包"}),e.jsx(ks,{children:"修改表情包的描述和标签信息"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(U,{children:"描述"}),e.jsx(Dt,{value:c,onChange:N=>d(N.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),e.jsxs("div",{children:[e.jsx(U,{children:"情绪标签"}),e.jsx(pe,{value:m,onChange:N=>h(N.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Cs,{id:"is_registered",checked:p,onCheckedChange:N=>v(N===!0)}),e.jsx(U,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Cs,{id:"is_banned",checked:g,onCheckedChange:N=>j(N===!0)}),e.jsx(U,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>l(!1),children:"取消"}),e.jsx(q,{onClick:C,disabled:b,children:b?"保存中...":"保存"})]})]})}):null}function Yj({emotions:s}){const a=s?s.split(/[,,]/).map(d=>d.trim()).filter(Boolean):[];if(a.length===0)return e.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const l=(d,m=6)=>d.length<=m?d:d.slice(0,m)+"...",i=a.slice(0,3),c=a.length-3;return e.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[i.map((d,m)=>e.jsx(_t,{variant:"secondary",className:"text-xs flex-shrink-0",title:d,children:l(d)},m)),c>0&&e.jsxs(_t,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${c} 个标签: ${a.slice(3).join(", ")}`,children:["+",c]})]})}const Ll="/api/webui/expression";async function nD(s){const a=new URLSearchParams;s.page&&a.append("page",s.page.toString()),s.page_size&&a.append("page_size",s.page_size.toString()),s.search&&a.append("search",s.search),s.chat_id&&a.append("chat_id",s.chat_id);const l=await Fe(`${Ll}/list?${a}`,{headers:Ie()});if(!l.ok){const i=await l.json();throw new Error(i.detail||"获取表达方式列表失败")}return l.json()}async function aD(s){const a=await Fe(`${Ll}/${s}`,{headers:Ie()});if(!a.ok){const l=await a.json();throw new Error(l.detail||"获取表达方式详情失败")}return a.json()}async function lD(s){const a=await Fe(`${Ll}/`,{method:"POST",headers:Ie(),body:JSON.stringify(s)});if(!a.ok){const l=await a.json();throw new Error(l.detail||"创建表达方式失败")}return a.json()}async function rD(s,a){const l=await Fe(`${Ll}/${s}`,{method:"PATCH",headers:Ie(),body:JSON.stringify(a)});if(!l.ok){const i=await l.json();throw new Error(i.detail||"更新表达方式失败")}return l.json()}async function iD(s){const a=await Fe(`${Ll}/${s}`,{method:"DELETE",headers:Ie()});if(!a.ok){const l=await a.json();throw new Error(l.detail||"删除表达方式失败")}return a.json()}async function oD(s){const a=await Fe(`${Ll}/batch/delete`,{method:"POST",headers:Ie(),body:JSON.stringify({ids:s})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"批量删除表达方式失败")}return a.json()}async function cD(){const s=await Fe(`${Ll}/stats/summary`,{headers:Ie()});if(!s.ok){const a=await s.json();throw new Error(a.detail||"获取统计数据失败")}return s.json()}function dD(){const[s,a]=x.useState([]),[l,i]=x.useState(!0),[c,d]=x.useState(0),[m,h]=x.useState(1),[p,v]=x.useState(20),[g,j]=x.useState(""),[b,w]=x.useState(null),[S,C]=x.useState(!1),[N,T]=x.useState(!1),[P,M]=x.useState(!1),[k,D]=x.useState(null),[A,E]=x.useState(new Set),[B,Y]=x.useState(!1),[G,$]=x.useState(""),[oe,je]=x.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:ae}=Es(),me=async()=>{try{i(!0);const I=await nD({page:m,page_size:p,search:g||void 0});a(I.data),d(I.total)}catch(I){ae({title:"加载失败",description:I instanceof Error?I.message:"无法加载表达方式",variant:"destructive"})}finally{i(!1)}},R=async()=>{try{const I=await cD();je(I.data)}catch(I){console.error("加载统计数据失败:",I)}};x.useEffect(()=>{me(),R()},[m,p,g]);const O=async I=>{try{const ve=await aD(I.id);w(ve.data),C(!0)}catch(ve){ae({title:"加载详情失败",description:ve instanceof Error?ve.message:"无法加载表达方式详情",variant:"destructive"})}},L=I=>{w(I),T(!0)},ee=async I=>{try{await iD(I.id),ae({title:"删除成功",description:`已删除表达方式: ${I.situation}`}),D(null),me(),R()}catch(ve){ae({title:"删除失败",description:ve instanceof Error?ve.message:"无法删除表达方式",variant:"destructive"})}},le=I=>{const ve=new Set(A);ve.has(I)?ve.delete(I):ve.add(I),E(ve)},xe=()=>{A.size===s.length&&s.length>0?E(new Set):E(new Set(s.map(I=>I.id)))},F=async()=>{try{await oD(Array.from(A)),ae({title:"批量删除成功",description:`已删除 ${A.size} 个表达方式`}),E(new Set),Y(!1),me(),R()}catch(I){ae({title:"批量删除失败",description:I instanceof Error?I.message:"无法批量删除表达方式",variant:"destructive"})}},W=()=>{const I=parseInt(G),ve=Math.ceil(c/p);I>=1&&I<=ve?(h(I),$("")):ae({title:"无效的页码",description:`请输入1-${ve}之间的页码`,variant:"destructive"})},fe=I=>I?new Date(I*1e3).toLocaleString("zh-CN"):"-";return e.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[e.jsx("div",{className:"mb-4 sm:mb-6",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[e.jsx(po,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),e.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),e.jsxs(q,{onClick:()=>M(!0),className:"gap-2",children:[e.jsx(ys,{className:"h-4 w-4"}),"新增表达方式"]})]})}),e.jsx(Ct,{className:"flex-1",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),e.jsx("div",{className:"text-2xl font-bold mt-1",children:oe.total})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),e.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:oe.recent_7days})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),e.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:oe.chat_count})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx(U,{htmlFor:"search",children:"搜索"}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-2 mt-1.5",children:e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(Gs,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{id:"search",placeholder:"搜索情境、风格或上下文...",value:g,onChange:I=>j(I.target.value),className:"pl-9"})]})}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[e.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:A.size>0&&e.jsxs("span",{children:["已选择 ",A.size," 个表达方式"]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:p.toString(),onValueChange:I=>{v(parseInt(I)),h(1),E(new Set)},children:[e.jsx(at,{id:"page-size",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),A.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>E(new Set),children:"取消选择"}),e.jsxs(q,{variant:"destructive",size:"sm",onClick:()=>Y(!0),children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card",children:[e.jsx("div",{className:"hidden md:block",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:A.size===s.length&&s.length>0,onCheckedChange:xe})}),e.jsx(He,{children:"情境"}),e.jsx(He,{children:"风格"}),e.jsx(He,{children:"聊天ID"}),e.jsx(He,{children:"最后活跃"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:l?e.jsx(ns,{children:e.jsx(Ae,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):s.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):s.map(I=>e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:A.has(I.id),onCheckedChange:()=>le(I.id)})}),e.jsx(Ae,{className:"font-medium max-w-xs truncate",children:I.situation}),e.jsx(Ae,{className:"max-w-xs truncate",children:I.style}),e.jsx(Ae,{className:"font-mono text-sm",children:I.chat_id}),e.jsx(Ae,{className:"text-sm text-muted-foreground",children:fe(I.last_active_time)}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>O(I),children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"详情"]}),e.jsxs(q,{variant:"default",size:"sm",onClick:()=>L(I),children:[e.jsx(qr,{className:"h-4 w-4 mr-1"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>D(I),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},I.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3 p-4",children:l?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):s.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):s.map(I=>e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Cs,{checked:A.has(I.id),onCheckedChange:()=>le(I.id),className:"mt-1"}),e.jsxs("div",{className:"min-w-0 flex-1 overflow-hidden space-y-2",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),e.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:I.situation,children:I.situation})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),e.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:I.style,children:I.style})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),e.jsx("p",{className:"font-mono text-xs truncate",children:I.chat_id})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),e.jsx("p",{className:"text-xs",children:fe(I.last_active_time)})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>O(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(Mn,{className:"h-3 w-3 mr-1"}),"查看"]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>L(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(qr,{className:"h-3 w-3 mr-1"}),"编辑"]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>D(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[e.jsx(ft,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},I.id))}),c>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",c," 条记录,第 ",m," / ",Math.ceil(c/p)," 页"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(1),disabled:m===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(m-1),disabled:m===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:G,onChange:I=>$(I.target.value),onKeyDown:I=>I.key==="Enter"&&W(),placeholder:m.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(c/p)}),e.jsx(q,{variant:"outline",size:"sm",onClick:W,disabled:!G,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(m+1),disabled:m>=Math.ceil(c/p),children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(Math.ceil(c/p)),disabled:m>=Math.ceil(c/p),className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]})]})}),e.jsx(uD,{expression:b,open:S,onOpenChange:C}),e.jsx(mD,{open:P,onOpenChange:M,onSuccess:()=>{me(),R(),M(!1)}}),e.jsx(fD,{expression:b,open:N,onOpenChange:T,onSuccess:()=>{me(),R(),T(!1)}}),e.jsx(Ft,{open:!!k,onOpenChange:()=>D(null),children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除表达方式 "',k?.situation,'" 吗? 此操作不可撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>k&&ee(k),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),e.jsx(hD,{open:B,onOpenChange:Y,onConfirm:F,count:A.size})]})}function uD({expression:s,open:a,onOpenChange:l}){if(!s)return null;const i=c=>c?new Date(c*1e3).toLocaleString("zh-CN"):"-";return e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"表达方式详情"}),e.jsx(ks,{children:"查看表达方式的完整信息"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(Er,{label:"情境",value:s.situation}),e.jsx(Er,{label:"风格",value:s.style}),e.jsx(Er,{icon:xd,label:"聊天ID",value:s.chat_id,mono:!0}),e.jsx(Er,{icon:xd,label:"记录ID",value:s.id.toString(),mono:!0})]}),s.context&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"上下文"}),e.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:s.context})]}),s.up_content&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"上文内容"}),e.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:s.up_content})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(Er,{icon:_l,label:"最后活跃",value:i(s.last_active_time)}),e.jsx(Er,{icon:_l,label:"创建时间",value:i(s.create_date)})]})]}),e.jsx($s,{children:e.jsx(q,{onClick:()=>l(!1),children:"关闭"})})]})})}function Er({icon:s,label:a,value:l,mono:i=!1}){return e.jsxs("div",{className:"space-y-1",children:[e.jsxs(U,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[s&&e.jsx(s,{className:"h-3 w-3"}),a]}),e.jsx("div",{className:Z("text-sm",i&&"font-mono",!l&&"text-muted-foreground"),children:l||"-"})]})}function mD({open:s,onOpenChange:a,onSuccess:l}){const[i,c]=x.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[d,m]=x.useState(!1),{toast:h}=Es(),p=async()=>{if(!i.situation||!i.style||!i.chat_id){h({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{m(!0),await lD(i),h({title:"创建成功",description:"表达方式已创建"}),c({situation:"",style:"",context:"",up_content:"",chat_id:""}),l()}catch(v){h({title:"创建失败",description:v instanceof Error?v.message:"无法创建表达方式",variant:"destructive"})}finally{m(!1)}};return e.jsx(bs,{open:s,onOpenChange:a,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"新增表达方式"}),e.jsx(ks,{children:"创建新的表达方式记录"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(U,{htmlFor:"situation",children:["情境 ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(pe,{id:"situation",value:i.situation,onChange:v=>c({...i,situation:v.target.value}),placeholder:"描述使用场景"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(U,{htmlFor:"style",children:["风格 ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(pe,{id:"style",value:i.style,onChange:v=>c({...i,style:v.target.value}),placeholder:"描述表达风格"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(U,{htmlFor:"chat_id",children:["聊天ID ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(pe,{id:"chat_id",value:i.chat_id,onChange:v=>c({...i,chat_id:v.target.value}),placeholder:"关联的聊天ID"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"context",children:"上下文"}),e.jsx(Dt,{id:"context",value:i.context,onChange:v=>c({...i,context:v.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"up_content",children:"上文内容"}),e.jsx(Dt,{id:"up_content",value:i.up_content,onChange:v=>c({...i,up_content:v.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>a(!1),children:"取消"}),e.jsx(q,{onClick:p,disabled:d,children:d?"创建中...":"创建"})]})]})})}function fD({expression:s,open:a,onOpenChange:l,onSuccess:i}){const[c,d]=x.useState({}),[m,h]=x.useState(!1),{toast:p}=Es();x.useEffect(()=>{s&&d({situation:s.situation,style:s.style,context:s.context||"",up_content:s.up_content||"",chat_id:s.chat_id})},[s]);const v=async()=>{if(s)try{h(!0),await rD(s.id,c),p({title:"保存成功",description:"表达方式已更新"}),i()}catch(g){p({title:"保存失败",description:g instanceof Error?g.message:"无法更新表达方式",variant:"destructive"})}finally{h(!1)}};return s?e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"编辑表达方式"}),e.jsx(ks,{children:"修改表达方式的信息"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_situation",children:"情境"}),e.jsx(pe,{id:"edit_situation",value:c.situation||"",onChange:g=>d({...c,situation:g.target.value}),placeholder:"描述使用场景"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_style",children:"风格"}),e.jsx(pe,{id:"edit_style",value:c.style||"",onChange:g=>d({...c,style:g.target.value}),placeholder:"描述表达风格"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_chat_id",children:"聊天ID"}),e.jsx(pe,{id:"edit_chat_id",value:c.chat_id||"",onChange:g=>d({...c,chat_id:g.target.value}),placeholder:"关联的聊天ID"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_context",children:"上下文"}),e.jsx(Dt,{id:"edit_context",value:c.context||"",onChange:g=>d({...c,context:g.target.value}),placeholder:"上下文信息",rows:3})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_up_content",children:"上文内容"}),e.jsx(Dt,{id:"edit_up_content",value:c.up_content||"",onChange:g=>d({...c,up_content:g.target.value}),placeholder:"上文内容",rows:3})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>l(!1),children:"取消"}),e.jsx(q,{onClick:v,disabled:m,children:m?"保存中...":"保存"})]})]})}):null}function hD({open:s,onOpenChange:a,onConfirm:l,count:i}){return e.jsx(Ft,{open:s,onOpenChange:a,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["您即将删除 ",i," 个表达方式,此操作无法撤销。确定要继续吗?"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:l,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"确认删除"})]})]})})}const si="/api/webui/person";async function xD(s){const a=new URLSearchParams;s.page&&a.append("page",s.page.toString()),s.page_size&&a.append("page_size",s.page_size.toString()),s.search&&a.append("search",s.search),s.is_known!==void 0&&a.append("is_known",s.is_known.toString()),s.platform&&a.append("platform",s.platform);const l=await Fe(`${si}/list?${a}`,{headers:Ie()});if(!l.ok){const i=await l.json();throw new Error(i.detail||"获取人物列表失败")}return l.json()}async function pD(s){const a=await Fe(`${si}/${s}`,{headers:Ie()});if(!a.ok){const l=await a.json();throw new Error(l.detail||"获取人物详情失败")}return a.json()}async function gD(s,a){const l=await Fe(`${si}/${s}`,{method:"PATCH",headers:Ie(),body:JSON.stringify(a)});if(!l.ok){const i=await l.json();throw new Error(i.detail||"更新人物信息失败")}return l.json()}async function vD(s){const a=await Fe(`${si}/${s}`,{method:"DELETE",headers:Ie()});if(!a.ok){const l=await a.json();throw new Error(l.detail||"删除人物信息失败")}return a.json()}async function jD(){const s=await Fe(`${si}/stats/summary`,{headers:Ie()});if(!s.ok){const a=await s.json();throw new Error(a.detail||"获取统计数据失败")}return s.json()}async function yD(s){const a=await Fe(`${si}/batch/delete`,{method:"POST",headers:Ie(),body:JSON.stringify({person_ids:s})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"批量删除失败")}return a.json()}function bD(){const[s,a]=x.useState([]),[l,i]=x.useState(!0),[c,d]=x.useState(0),[m,h]=x.useState(1),[p,v]=x.useState(20),[g,j]=x.useState(""),[b,w]=x.useState(void 0),[S,C]=x.useState(void 0),[N,T]=x.useState(null),[P,M]=x.useState(!1),[k,D]=x.useState(!1),[A,E]=x.useState(null),[B,Y]=x.useState({total:0,known:0,unknown:0,platforms:{}}),[G,$]=x.useState(new Set),[oe,je]=x.useState(!1),[ae,me]=x.useState(""),{toast:R}=Es(),O=async()=>{try{i(!0);const Q=await xD({page:m,page_size:p,search:g||void 0,is_known:b,platform:S});a(Q.data),d(Q.total)}catch(Q){R({title:"加载失败",description:Q instanceof Error?Q.message:"无法加载人物信息",variant:"destructive"})}finally{i(!1)}},L=async()=>{try{const Q=await jD();Y(Q.data)}catch(Q){console.error("加载统计数据失败:",Q)}};x.useEffect(()=>{O(),L()},[m,p,g,b,S]);const ee=async Q=>{try{const Oe=await pD(Q.person_id);T(Oe.data),M(!0)}catch(Oe){R({title:"加载详情失败",description:Oe instanceof Error?Oe.message:"无法加载人物详情",variant:"destructive"})}},le=Q=>{T(Q),D(!0)},xe=async Q=>{try{await vD(Q.person_id),R({title:"删除成功",description:`已删除人物信息: ${Q.person_name||Q.nickname||Q.user_id}`}),E(null),O(),L()}catch(Oe){R({title:"删除失败",description:Oe instanceof Error?Oe.message:"无法删除人物信息",variant:"destructive"})}},F=x.useMemo(()=>Object.keys(B.platforms),[B.platforms]),W=Q=>{const Oe=new Set(G);Oe.has(Q)?Oe.delete(Q):Oe.add(Q),$(Oe)},fe=()=>{G.size===s.length&&s.length>0?$(new Set):$(new Set(s.map(Q=>Q.person_id)))},I=()=>{if(G.size===0){R({title:"未选择任何人物",description:"请先选择要删除的人物",variant:"destructive"});return}je(!0)},ve=async()=>{try{const Q=await yD(Array.from(G));R({title:"批量删除完成",description:Q.message}),$(new Set),je(!1),O(),L()}catch(Q){R({title:"批量删除失败",description:Q instanceof Error?Q.message:"批量删除失败",variant:"destructive"})}},de=()=>{const Q=parseInt(ae),Oe=Math.ceil(c/p);Q>=1&&Q<=Oe?(h(Q),me("")):R({title:"无效的页码",description:`请输入1-${Oe}之间的页码`,variant:"destructive"})},Ce=Q=>Q?new Date(Q*1e3).toLocaleString("zh-CN"):"-";return e.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[e.jsx("div",{className:"mb-4 sm:mb-6",children:e.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[e.jsx(H2,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),e.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),e.jsx(Ct,{className:"flex-1",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),e.jsx("div",{className:"text-2xl font-bold mt-1",children:B.total})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),e.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:B.known})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),e.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:B.unknown})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[e.jsxs("div",{className:"sm:col-span-2",children:[e.jsx(U,{htmlFor:"search",children:"搜索"}),e.jsxs("div",{className:"relative mt-1.5",children:[e.jsx(Gs,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:g,onChange:Q=>j(Q.target.value),className:"pl-9"})]})]}),e.jsxs("div",{children:[e.jsx(U,{htmlFor:"filter-known",children:"认识状态"}),e.jsxs(rt,{value:b===void 0?"all":b.toString(),onValueChange:Q=>{w(Q==="all"?void 0:Q==="true"),h(1)},children:[e.jsx(at,{id:"filter-known",className:"mt-1.5",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部"}),e.jsx(ye,{value:"true",children:"已认识"}),e.jsx(ye,{value:"false",children:"未认识"})]})]})]}),e.jsxs("div",{children:[e.jsx(U,{htmlFor:"filter-platform",children:"平台"}),e.jsxs(rt,{value:S||"all",onValueChange:Q=>{C(Q==="all"?void 0:Q),h(1)},children:[e.jsx(at,{id:"filter-platform",className:"mt-1.5",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部平台"}),F.map(Q=>e.jsxs(ye,{value:Q,children:[Q," (",B.platforms[Q],")"]},Q))]})]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[e.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:G.size>0&&e.jsxs("span",{children:["已选择 ",G.size," 个人物"]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:p.toString(),onValueChange:Q=>{v(parseInt(Q)),h(1),$(new Set)},children:[e.jsx(at,{id:"page-size",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),G.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>$(new Set),children:"取消选择"}),e.jsxs(q,{variant:"destructive",size:"sm",onClick:I,children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card",children:[e.jsx("div",{className:"hidden md:block",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:s.length>0&&G.size===s.length,onCheckedChange:fe,"aria-label":"全选"})}),e.jsx(He,{children:"状态"}),e.jsx(He,{children:"名称"}),e.jsx(He,{children:"昵称"}),e.jsx(He,{children:"平台"}),e.jsx(He,{children:"用户ID"}),e.jsx(He,{children:"最后更新"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:l?e.jsx(ns,{children:e.jsx(Ae,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):s.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):s.map(Q=>e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:G.has(Q.person_id),onCheckedChange:()=>W(Q.person_id),"aria-label":`选择 ${Q.person_name||Q.nickname||Q.user_id}`})}),e.jsx(Ae,{children:e.jsx("div",{className:Z("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",Q.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:Q.is_known?"已认识":"未认识"})}),e.jsx(Ae,{className:"font-medium",children:Q.person_name||e.jsx("span",{className:"text-muted-foreground",children:"-"})}),e.jsx(Ae,{children:Q.nickname||"-"}),e.jsx(Ae,{children:Q.platform}),e.jsx(Ae,{className:"font-mono text-sm",children:Q.user_id}),e.jsx(Ae,{className:"text-sm text-muted-foreground",children:Ce(Q.last_know)}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>ee(Q),children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"详情"]}),e.jsxs(q,{variant:"default",size:"sm",onClick:()=>le(Q),children:[e.jsx(qr,{className:"h-4 w-4 mr-1"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>E(Q),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},Q.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3 p-4",children:l?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):s.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):s.map(Q=>e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Cs,{checked:G.has(Q.person_id),onCheckedChange:()=>W(Q.person_id),className:"mt-1"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:Z("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",Q.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:Q.is_known?"已认识":"未认识"}),e.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:Q.person_name||e.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),Q.nickname&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",Q.nickname]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),e.jsx("p",{className:"font-medium text-xs",children:Q.platform})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),e.jsx("p",{className:"font-mono text-xs truncate",title:Q.user_id,children:Q.user_id})]}),e.jsxs("div",{className:"col-span-2",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),e.jsx("p",{className:"text-xs",children:Ce(Q.last_know)})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>ee(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(Mn,{className:"h-3 w-3 mr-1"}),"查看"]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>le(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(qr,{className:"h-3 w-3 mr-1"}),"编辑"]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>E(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[e.jsx(ft,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},Q.id))}),c>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",c," 条记录,第 ",m," / ",Math.ceil(c/p)," 页"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(1),disabled:m===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(m-1),disabled:m===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:ae,onChange:Q=>me(Q.target.value),onKeyDown:Q=>Q.key==="Enter"&&de(),placeholder:m.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(c/p)}),e.jsx(q,{variant:"outline",size:"sm",onClick:de,disabled:!ae,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(m+1),disabled:m>=Math.ceil(c/p),children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(Math.ceil(c/p)),disabled:m>=Math.ceil(c/p),className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]})]})}),e.jsx(ND,{person:N,open:P,onOpenChange:M}),e.jsx(wD,{person:N,open:k,onOpenChange:D,onSuccess:()=>{O(),L(),D(!1)}}),e.jsx(Ft,{open:!!A,onOpenChange:()=>E(null),children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除人物信息 "',A?.person_name||A?.nickname||A?.user_id,'" 吗? 此操作不可撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>A&&xe(A),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),e.jsx(Ft,{open:oe,onOpenChange:je,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["确定要删除选中的 ",G.size," 个人物信息吗? 此操作不可撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:ve,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})}function ND({person:s,open:a,onOpenChange:l}){if(!s)return null;const i=c=>c?new Date(c*1e3).toLocaleString("zh-CN"):"-";return e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"人物详情"}),e.jsxs(ks,{children:["查看 ",s.person_name||s.nickname||s.user_id," 的完整信息"]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(ma,{icon:Ey,label:"人物名称",value:s.person_name}),e.jsx(ma,{icon:po,label:"昵称",value:s.nickname}),e.jsx(ma,{icon:xd,label:"用户ID",value:s.user_id,mono:!0}),e.jsx(ma,{icon:xd,label:"人物ID",value:s.person_id,mono:!0}),e.jsx(ma,{label:"平台",value:s.platform}),e.jsx(ma,{label:"状态",value:s.is_known?"已认识":"未认识"})]}),s.name_reason&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),e.jsx("p",{className:"mt-1 text-sm",children:s.name_reason})]}),s.memory_points&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"个人印象"}),e.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:s.memory_points})]}),s.group_nick_name&&s.group_nick_name.length>0&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"群昵称"}),e.jsx("div",{className:"mt-2 space-y-1",children:s.group_nick_name.map((c,d)=>e.jsxs("div",{className:"text-sm flex items-center gap-2",children:[e.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:c.group_id}),e.jsx("span",{children:"→"}),e.jsx("span",{children:c.group_nick_name})]},d))})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsx(ma,{icon:_l,label:"认识时间",value:i(s.know_times)}),e.jsx(ma,{icon:_l,label:"首次记录",value:i(s.know_since)}),e.jsx(ma,{icon:_l,label:"最后更新",value:i(s.last_know)})]})]}),e.jsx($s,{children:e.jsx(q,{onClick:()=>l(!1),children:"关闭"})})]})})}function ma({icon:s,label:a,value:l,mono:i=!1}){return e.jsxs("div",{className:"space-y-1",children:[e.jsxs(U,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[s&&e.jsx(s,{className:"h-3 w-3"}),a]}),e.jsx("div",{className:Z("text-sm",i&&"font-mono",!l&&"text-muted-foreground"),children:l||"-"})]})}function wD({person:s,open:a,onOpenChange:l,onSuccess:i}){const[c,d]=x.useState({}),[m,h]=x.useState(!1),{toast:p}=Es();x.useEffect(()=>{s&&d({person_name:s.person_name||"",name_reason:s.name_reason||"",nickname:s.nickname||"",memory_points:s.memory_points||"",is_known:s.is_known})},[s]);const v=async()=>{if(s)try{h(!0),await gD(s.person_id,c),p({title:"保存成功",description:"人物信息已更新"}),i()}catch(g){p({title:"保存失败",description:g instanceof Error?g.message:"无法更新人物信息",variant:"destructive"})}finally{h(!1)}};return s?e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"编辑人物信息"}),e.jsxs(ks,{children:["修改 ",s.person_name||s.nickname||s.user_id," 的信息"]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"person_name",children:"人物名称"}),e.jsx(pe,{id:"person_name",value:c.person_name||"",onChange:g=>d({...c,person_name:g.target.value}),placeholder:"为这个人设置一个名称"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"nickname",children:"昵称"}),e.jsx(pe,{id:"nickname",value:c.nickname||"",onChange:g=>d({...c,nickname:g.target.value}),placeholder:"昵称"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"name_reason",children:"名称设定原因"}),e.jsx(Dt,{id:"name_reason",value:c.name_reason||"",onChange:g=>d({...c,name_reason:g.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"memory_points",children:"个人印象"}),e.jsx(Dt,{id:"memory_points",value:c.memory_points||"",onChange:g=>d({...c,memory_points:g.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[e.jsxs("div",{children:[e.jsx(U,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),e.jsx(Ze,{id:"is_known",checked:c.is_known,onCheckedChange:g=>d({...c,is_known:g})})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>l(!1),children:"取消"}),e.jsx(q,{onClick:v,disabled:m,children:m?"保存中...":"保存"})]})]})}):null}function SD(s,a,l="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:s,timeZoneName:l}).format(a).split(/\s/g).slice(2).join(" ")}const _D={},Ji={};function Sl(s,a){try{const i=(_D[s]||=new Intl.DateTimeFormat("en-US",{timeZone:s,timeZoneName:"longOffset"}).format)(a).split("GMT")[1];return i in Ji?Ji[i]:qj(i,i.split(":"))}catch{if(s in Ji)return Ji[s];const l=s?.match(CD);return l?qj(s,l.slice(1)):NaN}}const CD=/([+-]\d\d):?(\d\d)?/;function qj(s,a){const l=+(a[0]||0),i=+(a[1]||0),c=+(a[2]||0)/60;return Ji[s]=l*60+i>0?l*60+i+c:l*60-i-c}class Yn extends Date{constructor(...a){super(),a.length>1&&typeof a[a.length-1]=="string"&&(this.timeZone=a.pop()),this.internal=new Date,isNaN(Sl(this.timeZone,this))?this.setTime(NaN):a.length?typeof a[0]=="number"&&(a.length===1||a.length===2&&typeof a[1]!="number")?this.setTime(a[0]):typeof a[0]=="string"?this.setTime(+new Date(a[0])):a[0]instanceof Date?this.setTime(+a[0]):(this.setTime(+new Date(...a)),EN(this),Jf(this)):this.setTime(Date.now())}static tz(a,...l){return l.length?new Yn(...l,a):new Yn(Date.now(),a)}withTimeZone(a){return new Yn(+this,a)}getTimezoneOffset(){const a=-Sl(this.timeZone,this);return a>0?Math.floor(a):Math.ceil(a)}setTime(a){return Date.prototype.setTime.apply(this,arguments),Jf(this),+this}[Symbol.for("constructDateFrom")](a){return new Yn(+new Date(a),this.timeZone)}}const Vj=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(s=>{if(!Vj.test(s))return;const a=s.replace(Vj,"$1UTC");Yn.prototype[a]&&(s.startsWith("get")?Yn.prototype[s]=function(){return this.internal[a]()}:(Yn.prototype[s]=function(){return Date.prototype[a].apply(this.internal,arguments),kD(this),+this},Yn.prototype[a]=function(){return Date.prototype[a].apply(this,arguments),Jf(this),+this}))});function Jf(s){s.internal.setTime(+s),s.internal.setUTCSeconds(s.internal.getUTCSeconds()-Math.round(-Sl(s.timeZone,s)*60))}function kD(s){Date.prototype.setFullYear.call(s,s.internal.getUTCFullYear(),s.internal.getUTCMonth(),s.internal.getUTCDate()),Date.prototype.setHours.call(s,s.internal.getUTCHours(),s.internal.getUTCMinutes(),s.internal.getUTCSeconds(),s.internal.getUTCMilliseconds()),EN(s)}function EN(s){const a=Sl(s.timeZone,s),l=a>0?Math.floor(a):Math.ceil(a),i=new Date(+s);i.setUTCHours(i.getUTCHours()-1);const c=-new Date(+s).getTimezoneOffset(),d=-new Date(+i).getTimezoneOffset(),m=c-d,h=Date.prototype.getHours.apply(s)!==s.internal.getUTCHours();m&&h&&s.internal.setUTCMinutes(s.internal.getUTCMinutes()+m);const p=c-l;p&&Date.prototype.setUTCMinutes.call(s,Date.prototype.getUTCMinutes.call(s)+p);const v=new Date(+s);v.setUTCSeconds(0);const g=c>0?v.getSeconds():(v.getSeconds()-60)%60,j=Math.round(-(Sl(s.timeZone,s)*60))%60;(j||g)&&(s.internal.setUTCSeconds(s.internal.getUTCSeconds()+j),Date.prototype.setUTCSeconds.call(s,Date.prototype.getUTCSeconds.call(s)+j+g));const b=Sl(s.timeZone,s),w=b>0?Math.floor(b):Math.ceil(b),C=-new Date(+s).getTimezoneOffset()-w,N=w!==l,T=C-p;if(N&&T){Date.prototype.setUTCMinutes.call(s,Date.prototype.getUTCMinutes.call(s)+T);const P=Sl(s.timeZone,s),M=P>0?Math.floor(P):Math.ceil(P),k=w-M;k&&(s.internal.setUTCMinutes(s.internal.getUTCMinutes()+k),Date.prototype.setUTCMinutes.call(s,Date.prototype.getUTCMinutes.call(s)+k))}}class Ns extends Yn{static tz(a,...l){return l.length?new Ns(...l,a):new Ns(Date.now(),a)}toISOString(){const[a,l,i]=this.tzComponents(),c=`${a}${l}:${i}`;return this.internal.toISOString().slice(0,-1)+c}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[a,l,i,c]=this.internal.toUTCString().split(" ");return`${a?.slice(0,-1)} ${i} ${l} ${c}`}toTimeString(){const a=this.internal.toUTCString().split(" ")[4],[l,i,c]=this.tzComponents();return`${a} GMT${l}${i}${c} (${SD(this.timeZone,this)})`}toLocaleString(a,l){return Date.prototype.toLocaleString.call(this,a,{...l,timeZone:l?.timeZone||this.timeZone})}toLocaleDateString(a,l){return Date.prototype.toLocaleDateString.call(this,a,{...l,timeZone:l?.timeZone||this.timeZone})}toLocaleTimeString(a,l){return Date.prototype.toLocaleTimeString.call(this,a,{...l,timeZone:l?.timeZone||this.timeZone})}tzComponents(){const a=this.getTimezoneOffset(),l=a>0?"-":"+",i=String(Math.floor(Math.abs(a)/60)).padStart(2,"0"),c=String(Math.abs(a)%60).padStart(2,"0");return[l,i,c]}withTimeZone(a){return new Ns(+this,a)}[Symbol.for("constructDateFrom")](a){return new Ns(+new Date(a),this.timeZone)}}const MN=6048e5,TD=864e5,Gj=Symbol.for("constructDateFrom");function as(s,a){return typeof s=="function"?s(a):s&&typeof s=="object"&&Gj in s?s[Gj](a):s instanceof Date?new s.constructor(a):new Date(a)}function kt(s,a){return as(a||s,s)}function DN(s,a,l){const i=kt(s,l?.in);return isNaN(a)?as(s,NaN):(a&&i.setDate(i.getDate()+a),i)}function ON(s,a,l){const i=kt(s,l?.in);if(isNaN(a))return as(s,NaN);if(!a)return i;const c=i.getDate(),d=as(s,i.getTime());d.setMonth(i.getMonth()+a+1,0);const m=d.getDate();return c>=m?d:(i.setFullYear(d.getFullYear(),d.getMonth(),c),i)}let ED={};function To(){return ED}function Ka(s,a){const l=To(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??l.weekStartsOn??l.locale?.options?.weekStartsOn??0,c=kt(s,a?.in),d=c.getDay(),m=(d=d.getTime()?i+1:l.getTime()>=h.getTime()?i:i-1}function $j(s){const a=kt(s),l=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()));return l.setUTCFullYear(a.getFullYear()),+s-+l}function Bl(s,...a){const l=as.bind(null,s||a.find(i=>typeof i=="object"));return a.map(l)}function uo(s,a){const l=kt(s,a?.in);return l.setHours(0,0,0,0),l}function RN(s,a,l){const[i,c]=Bl(l?.in,s,a),d=uo(i),m=uo(c),h=+d-$j(d),p=+m-$j(m);return Math.round((h-p)/TD)}function MD(s,a){const l=AN(s,a),i=as(s,0);return i.setFullYear(l,0,4),i.setHours(0,0,0,0),co(i)}function DD(s,a,l){return DN(s,a*7,l)}function OD(s,a,l){return ON(s,a*12,l)}function AD(s,a){let l,i=a?.in;return s.forEach(c=>{!i&&typeof c=="object"&&(i=as.bind(null,c));const d=kt(c,i);(!l||l{!i&&typeof c=="object"&&(i=as.bind(null,c));const d=kt(c,i);(!l||l>d||isNaN(+d))&&(l=d)}),as(i,l||NaN)}function zD(s,a,l){const[i,c]=Bl(l?.in,s,a);return+uo(i)==+uo(c)}function zN(s){return s instanceof Date||typeof s=="object"&&Object.prototype.toString.call(s)==="[object Date]"}function PD(s){return!(!zN(s)&&typeof s!="number"||isNaN(+kt(s)))}function LD(s,a,l){const[i,c]=Bl(l?.in,s,a),d=i.getFullYear()-c.getFullYear(),m=i.getMonth()-c.getMonth();return d*12+m}function BD(s,a){const l=kt(s,a?.in),i=l.getMonth();return l.setFullYear(l.getFullYear(),i+1,0),l.setHours(23,59,59,999),l}function PN(s,a){const[l,i]=Bl(s,a.start,a.end);return{start:l,end:i}}function UD(s,a){const{start:l,end:i}=PN(a?.in,s);let c=+l>+i;const d=c?+l:+i,m=c?i:l;m.setHours(0,0,0,0),m.setDate(1);let h=1;const p=[];for(;+m<=d;)p.push(as(l,m)),m.setMonth(m.getMonth()+h);return c?p.reverse():p}function HD(s,a){const l=kt(s,a?.in);return l.setDate(1),l.setHours(0,0,0,0),l}function FD(s,a){const l=kt(s,a?.in),i=l.getFullYear();return l.setFullYear(i+1,0,0),l.setHours(23,59,59,999),l}function LN(s,a){const l=kt(s,a?.in);return l.setFullYear(l.getFullYear(),0,1),l.setHours(0,0,0,0),l}function YD(s,a){const{start:l,end:i}=PN(a?.in,s);let c=+l>+i;const d=c?+l:+i,m=c?i:l;m.setHours(0,0,0,0),m.setMonth(0,1);let h=1;const p=[];for(;+m<=d;)p.push(as(l,m)),m.setFullYear(m.getFullYear()+h);return c?p.reverse():p}function BN(s,a){const l=To(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??l.weekStartsOn??l.locale?.options?.weekStartsOn??0,c=kt(s,a?.in),d=c.getDay(),m=(d{let i;const c=VD[s];return typeof c=="string"?i=c:a===1?i=c.one:i=c.other.replace("{{count}}",a.toString()),l?.addSuffix?l.comparison&&l.comparison>0?"in "+i:i+" ago":i};function Hr(s){return(a={})=>{const l=a.width?String(a.width):s.defaultWidth;return s.formats[l]||s.formats[s.defaultWidth]}}const $D={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ID={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},WD={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},XD={date:Hr({formats:$D,defaultWidth:"full"}),time:Hr({formats:ID,defaultWidth:"full"}),dateTime:Hr({formats:WD,defaultWidth:"full"})},KD={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},QD=(s,a,l,i)=>KD[s];function Hn(s){return(a,l)=>{const i=l?.context?String(l.context):"standalone";let c;if(i==="formatting"&&s.formattingValues){const m=s.defaultFormattingWidth||s.defaultWidth,h=l?.width?String(l.width):m;c=s.formattingValues[h]||s.formattingValues[m]}else{const m=s.defaultWidth,h=l?.width?String(l.width):s.defaultWidth;c=s.values[h]||s.values[m]}const d=s.argumentCallback?s.argumentCallback(a):a;return c[d]}}const ZD={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},JD={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},eO={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},tO={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},sO={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},nO={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},aO=(s,a)=>{const l=Number(s),i=l%100;if(i>20||i<10)switch(i%10){case 1:return l+"st";case 2:return l+"nd";case 3:return l+"rd"}return l+"th"},lO={ordinalNumber:aO,era:Hn({values:ZD,defaultWidth:"wide"}),quarter:Hn({values:JD,defaultWidth:"wide",argumentCallback:s=>s-1}),month:Hn({values:eO,defaultWidth:"wide"}),day:Hn({values:tO,defaultWidth:"wide"}),dayPeriod:Hn({values:sO,defaultWidth:"wide",formattingValues:nO,defaultFormattingWidth:"wide"})};function Fn(s){return(a,l={})=>{const i=l.width,c=i&&s.matchPatterns[i]||s.matchPatterns[s.defaultMatchWidth],d=a.match(c);if(!d)return null;const m=d[0],h=i&&s.parsePatterns[i]||s.parsePatterns[s.defaultParseWidth],p=Array.isArray(h)?iO(h,j=>j.test(m)):rO(h,j=>j.test(m));let v;v=s.valueCallback?s.valueCallback(p):p,v=l.valueCallback?l.valueCallback(v):v;const g=a.slice(m.length);return{value:v,rest:g}}}function rO(s,a){for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l)&&a(s[l]))return l}function iO(s,a){for(let l=0;l{const i=a.match(s.matchPattern);if(!i)return null;const c=i[0],d=a.match(s.parsePattern);if(!d)return null;let m=s.valueCallback?s.valueCallback(d[0]):d[0];m=l.valueCallback?l.valueCallback(m):m;const h=a.slice(c.length);return{value:m,rest:h}}}const oO=/^(\d+)(th|st|nd|rd)?/i,cO=/\d+/i,dO={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},uO={any:[/^b/i,/^(a|c)/i]},mO={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},fO={any:[/1/i,/2/i,/3/i,/4/i]},hO={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},xO={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},pO={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},gO={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},vO={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},jO={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},yO={ordinalNumber:UN({matchPattern:oO,parsePattern:cO,valueCallback:s=>parseInt(s,10)}),era:Fn({matchPatterns:dO,defaultMatchWidth:"wide",parsePatterns:uO,defaultParseWidth:"any"}),quarter:Fn({matchPatterns:mO,defaultMatchWidth:"wide",parsePatterns:fO,defaultParseWidth:"any",valueCallback:s=>s+1}),month:Fn({matchPatterns:hO,defaultMatchWidth:"wide",parsePatterns:xO,defaultParseWidth:"any"}),day:Fn({matchPatterns:pO,defaultMatchWidth:"wide",parsePatterns:gO,defaultParseWidth:"any"}),dayPeriod:Fn({matchPatterns:vO,defaultMatchWidth:"any",parsePatterns:jO,defaultParseWidth:"any"})},Hh={code:"en-US",formatDistance:GD,formatLong:XD,formatRelative:QD,localize:lO,match:yO,options:{weekStartsOn:0,firstWeekContainsDate:1}};function bO(s,a){const l=kt(s,a?.in);return RN(l,LN(l))+1}function HN(s,a){const l=kt(s,a?.in),i=+co(l)-+MD(l);return Math.round(i/MN)+1}function FN(s,a){const l=kt(s,a?.in),i=l.getFullYear(),c=To(),d=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??c.firstWeekContainsDate??c.locale?.options?.firstWeekContainsDate??1,m=as(a?.in||s,0);m.setFullYear(i+1,0,d),m.setHours(0,0,0,0);const h=Ka(m,a),p=as(a?.in||s,0);p.setFullYear(i,0,d),p.setHours(0,0,0,0);const v=Ka(p,a);return+l>=+h?i+1:+l>=+v?i:i-1}function NO(s,a){const l=To(),i=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??l.firstWeekContainsDate??l.locale?.options?.firstWeekContainsDate??1,c=FN(s,a),d=as(a?.in||s,0);return d.setFullYear(c,0,i),d.setHours(0,0,0,0),Ka(d,a)}function YN(s,a){const l=kt(s,a?.in),i=+Ka(l,a)-+NO(l,a);return Math.round(i/MN)+1}function yt(s,a){const l=s<0?"-":"",i=Math.abs(s).toString().padStart(a,"0");return l+i}const Va={y(s,a){const l=s.getFullYear(),i=l>0?l:1-l;return yt(a==="yy"?i%100:i,a.length)},M(s,a){const l=s.getMonth();return a==="M"?String(l+1):yt(l+1,2)},d(s,a){return yt(s.getDate(),a.length)},a(s,a){const l=s.getHours()/12>=1?"pm":"am";switch(a){case"a":case"aa":return l.toUpperCase();case"aaa":return l;case"aaaaa":return l[0];case"aaaa":default:return l==="am"?"a.m.":"p.m."}},h(s,a){return yt(s.getHours()%12||12,a.length)},H(s,a){return yt(s.getHours(),a.length)},m(s,a){return yt(s.getMinutes(),a.length)},s(s,a){return yt(s.getSeconds(),a.length)},S(s,a){const l=a.length,i=s.getMilliseconds(),c=Math.trunc(i*Math.pow(10,l-3));return yt(c,a.length)}},Mr={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Ij={G:function(s,a,l){const i=s.getFullYear()>0?1:0;switch(a){case"G":case"GG":case"GGG":return l.era(i,{width:"abbreviated"});case"GGGGG":return l.era(i,{width:"narrow"});case"GGGG":default:return l.era(i,{width:"wide"})}},y:function(s,a,l){if(a==="yo"){const i=s.getFullYear(),c=i>0?i:1-i;return l.ordinalNumber(c,{unit:"year"})}return Va.y(s,a)},Y:function(s,a,l,i){const c=FN(s,i),d=c>0?c:1-c;if(a==="YY"){const m=d%100;return yt(m,2)}return a==="Yo"?l.ordinalNumber(d,{unit:"year"}):yt(d,a.length)},R:function(s,a){const l=AN(s);return yt(l,a.length)},u:function(s,a){const l=s.getFullYear();return yt(l,a.length)},Q:function(s,a,l){const i=Math.ceil((s.getMonth()+1)/3);switch(a){case"Q":return String(i);case"QQ":return yt(i,2);case"Qo":return l.ordinalNumber(i,{unit:"quarter"});case"QQQ":return l.quarter(i,{width:"abbreviated",context:"formatting"});case"QQQQQ":return l.quarter(i,{width:"narrow",context:"formatting"});case"QQQQ":default:return l.quarter(i,{width:"wide",context:"formatting"})}},q:function(s,a,l){const i=Math.ceil((s.getMonth()+1)/3);switch(a){case"q":return String(i);case"qq":return yt(i,2);case"qo":return l.ordinalNumber(i,{unit:"quarter"});case"qqq":return l.quarter(i,{width:"abbreviated",context:"standalone"});case"qqqqq":return l.quarter(i,{width:"narrow",context:"standalone"});case"qqqq":default:return l.quarter(i,{width:"wide",context:"standalone"})}},M:function(s,a,l){const i=s.getMonth();switch(a){case"M":case"MM":return Va.M(s,a);case"Mo":return l.ordinalNumber(i+1,{unit:"month"});case"MMM":return l.month(i,{width:"abbreviated",context:"formatting"});case"MMMMM":return l.month(i,{width:"narrow",context:"formatting"});case"MMMM":default:return l.month(i,{width:"wide",context:"formatting"})}},L:function(s,a,l){const i=s.getMonth();switch(a){case"L":return String(i+1);case"LL":return yt(i+1,2);case"Lo":return l.ordinalNumber(i+1,{unit:"month"});case"LLL":return l.month(i,{width:"abbreviated",context:"standalone"});case"LLLLL":return l.month(i,{width:"narrow",context:"standalone"});case"LLLL":default:return l.month(i,{width:"wide",context:"standalone"})}},w:function(s,a,l,i){const c=YN(s,i);return a==="wo"?l.ordinalNumber(c,{unit:"week"}):yt(c,a.length)},I:function(s,a,l){const i=HN(s);return a==="Io"?l.ordinalNumber(i,{unit:"week"}):yt(i,a.length)},d:function(s,a,l){return a==="do"?l.ordinalNumber(s.getDate(),{unit:"date"}):Va.d(s,a)},D:function(s,a,l){const i=bO(s);return a==="Do"?l.ordinalNumber(i,{unit:"dayOfYear"}):yt(i,a.length)},E:function(s,a,l){const i=s.getDay();switch(a){case"E":case"EE":case"EEE":return l.day(i,{width:"abbreviated",context:"formatting"});case"EEEEE":return l.day(i,{width:"narrow",context:"formatting"});case"EEEEEE":return l.day(i,{width:"short",context:"formatting"});case"EEEE":default:return l.day(i,{width:"wide",context:"formatting"})}},e:function(s,a,l,i){const c=s.getDay(),d=(c-i.weekStartsOn+8)%7||7;switch(a){case"e":return String(d);case"ee":return yt(d,2);case"eo":return l.ordinalNumber(d,{unit:"day"});case"eee":return l.day(c,{width:"abbreviated",context:"formatting"});case"eeeee":return l.day(c,{width:"narrow",context:"formatting"});case"eeeeee":return l.day(c,{width:"short",context:"formatting"});case"eeee":default:return l.day(c,{width:"wide",context:"formatting"})}},c:function(s,a,l,i){const c=s.getDay(),d=(c-i.weekStartsOn+8)%7||7;switch(a){case"c":return String(d);case"cc":return yt(d,a.length);case"co":return l.ordinalNumber(d,{unit:"day"});case"ccc":return l.day(c,{width:"abbreviated",context:"standalone"});case"ccccc":return l.day(c,{width:"narrow",context:"standalone"});case"cccccc":return l.day(c,{width:"short",context:"standalone"});case"cccc":default:return l.day(c,{width:"wide",context:"standalone"})}},i:function(s,a,l){const i=s.getDay(),c=i===0?7:i;switch(a){case"i":return String(c);case"ii":return yt(c,a.length);case"io":return l.ordinalNumber(c,{unit:"day"});case"iii":return l.day(i,{width:"abbreviated",context:"formatting"});case"iiiii":return l.day(i,{width:"narrow",context:"formatting"});case"iiiiii":return l.day(i,{width:"short",context:"formatting"});case"iiii":default:return l.day(i,{width:"wide",context:"formatting"})}},a:function(s,a,l){const c=s.getHours()/12>=1?"pm":"am";switch(a){case"a":case"aa":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"aaa":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return l.dayPeriod(c,{width:"narrow",context:"formatting"});case"aaaa":default:return l.dayPeriod(c,{width:"wide",context:"formatting"})}},b:function(s,a,l){const i=s.getHours();let c;switch(i===12?c=Mr.noon:i===0?c=Mr.midnight:c=i/12>=1?"pm":"am",a){case"b":case"bb":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"bbb":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return l.dayPeriod(c,{width:"narrow",context:"formatting"});case"bbbb":default:return l.dayPeriod(c,{width:"wide",context:"formatting"})}},B:function(s,a,l){const i=s.getHours();let c;switch(i>=17?c=Mr.evening:i>=12?c=Mr.afternoon:i>=4?c=Mr.morning:c=Mr.night,a){case"B":case"BB":case"BBB":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"BBBBB":return l.dayPeriod(c,{width:"narrow",context:"formatting"});case"BBBB":default:return l.dayPeriod(c,{width:"wide",context:"formatting"})}},h:function(s,a,l){if(a==="ho"){let i=s.getHours()%12;return i===0&&(i=12),l.ordinalNumber(i,{unit:"hour"})}return Va.h(s,a)},H:function(s,a,l){return a==="Ho"?l.ordinalNumber(s.getHours(),{unit:"hour"}):Va.H(s,a)},K:function(s,a,l){const i=s.getHours()%12;return a==="Ko"?l.ordinalNumber(i,{unit:"hour"}):yt(i,a.length)},k:function(s,a,l){let i=s.getHours();return i===0&&(i=24),a==="ko"?l.ordinalNumber(i,{unit:"hour"}):yt(i,a.length)},m:function(s,a,l){return a==="mo"?l.ordinalNumber(s.getMinutes(),{unit:"minute"}):Va.m(s,a)},s:function(s,a,l){return a==="so"?l.ordinalNumber(s.getSeconds(),{unit:"second"}):Va.s(s,a)},S:function(s,a){return Va.S(s,a)},X:function(s,a,l){const i=s.getTimezoneOffset();if(i===0)return"Z";switch(a){case"X":return Xj(i);case"XXXX":case"XX":return Nl(i);case"XXXXX":case"XXX":default:return Nl(i,":")}},x:function(s,a,l){const i=s.getTimezoneOffset();switch(a){case"x":return Xj(i);case"xxxx":case"xx":return Nl(i);case"xxxxx":case"xxx":default:return Nl(i,":")}},O:function(s,a,l){const i=s.getTimezoneOffset();switch(a){case"O":case"OO":case"OOO":return"GMT"+Wj(i,":");case"OOOO":default:return"GMT"+Nl(i,":")}},z:function(s,a,l){const i=s.getTimezoneOffset();switch(a){case"z":case"zz":case"zzz":return"GMT"+Wj(i,":");case"zzzz":default:return"GMT"+Nl(i,":")}},t:function(s,a,l){const i=Math.trunc(+s/1e3);return yt(i,a.length)},T:function(s,a,l){return yt(+s,a.length)}};function Wj(s,a=""){const l=s>0?"-":"+",i=Math.abs(s),c=Math.trunc(i/60),d=i%60;return d===0?l+String(c):l+String(c)+a+yt(d,2)}function Xj(s,a){return s%60===0?(s>0?"-":"+")+yt(Math.abs(s)/60,2):Nl(s,a)}function Nl(s,a=""){const l=s>0?"-":"+",i=Math.abs(s),c=yt(Math.trunc(i/60),2),d=yt(i%60,2);return l+c+a+d}const Kj=(s,a)=>{switch(s){case"P":return a.date({width:"short"});case"PP":return a.date({width:"medium"});case"PPP":return a.date({width:"long"});case"PPPP":default:return a.date({width:"full"})}},qN=(s,a)=>{switch(s){case"p":return a.time({width:"short"});case"pp":return a.time({width:"medium"});case"ppp":return a.time({width:"long"});case"pppp":default:return a.time({width:"full"})}},wO=(s,a)=>{const l=s.match(/(P+)(p+)?/)||[],i=l[1],c=l[2];if(!c)return Kj(s,a);let d;switch(i){case"P":d=a.dateTime({width:"short"});break;case"PP":d=a.dateTime({width:"medium"});break;case"PPP":d=a.dateTime({width:"long"});break;case"PPPP":default:d=a.dateTime({width:"full"});break}return d.replace("{{date}}",Kj(i,a)).replace("{{time}}",qN(c,a))},SO={p:qN,P:wO},_O=/^D+$/,CO=/^Y+$/,kO=["D","DD","YY","YYYY"];function TO(s){return _O.test(s)}function EO(s){return CO.test(s)}function MO(s,a,l){const i=DO(s,a,l);if(console.warn(i),kO.includes(s))throw new RangeError(i)}function DO(s,a,l){const i=s[0]==="Y"?"years":"days of the month";return`Use \`${s.toLowerCase()}\` instead of \`${s}\` (in \`${a}\`) for formatting ${i} to the input \`${l}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const OO=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,AO=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,RO=/^'([^]*?)'?$/,zO=/''/g,PO=/[a-zA-Z]/;function md(s,a,l){const i=To(),c=l?.locale??i.locale??Hh,d=l?.firstWeekContainsDate??l?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,m=l?.weekStartsOn??l?.locale?.options?.weekStartsOn??i.weekStartsOn??i.locale?.options?.weekStartsOn??0,h=kt(s,l?.in);if(!PD(h))throw new RangeError("Invalid time value");let p=a.match(AO).map(g=>{const j=g[0];if(j==="p"||j==="P"){const b=SO[j];return b(g,c.formatLong)}return g}).join("").match(OO).map(g=>{if(g==="''")return{isToken:!1,value:"'"};const j=g[0];if(j==="'")return{isToken:!1,value:LO(g)};if(Ij[j])return{isToken:!0,value:g};if(j.match(PO))throw new RangeError("Format string contains an unescaped latin alphabet character `"+j+"`");return{isToken:!1,value:g}});c.localize.preprocessor&&(p=c.localize.preprocessor(h,p));const v={firstWeekContainsDate:d,weekStartsOn:m,locale:c};return p.map(g=>{if(!g.isToken)return g.value;const j=g.value;(!l?.useAdditionalWeekYearTokens&&EO(j)||!l?.useAdditionalDayOfYearTokens&&TO(j))&&MO(j,a,String(s));const b=Ij[j[0]];return b(h,j,c.localize,v)}).join("")}function LO(s){const a=s.match(RO);return a?a[1].replace(zO,"'"):s}function BO(s,a){const l=kt(s,a?.in),i=l.getFullYear(),c=l.getMonth(),d=as(l,0);return d.setFullYear(i,c+1,0),d.setHours(0,0,0,0),d.getDate()}function UO(s,a){return kt(s,a?.in).getMonth()}function HO(s,a){return kt(s,a?.in).getFullYear()}function FO(s,a){return+kt(s)>+kt(a)}function YO(s,a){return+kt(s)<+kt(a)}function qO(s,a,l){const[i,c]=Bl(l?.in,s,a);return+Ka(i,l)==+Ka(c,l)}function VO(s,a,l){const[i,c]=Bl(l?.in,s,a);return i.getFullYear()===c.getFullYear()&&i.getMonth()===c.getMonth()}function GO(s,a,l){const[i,c]=Bl(l?.in,s,a);return i.getFullYear()===c.getFullYear()}function $O(s,a,l){const i=kt(s,l?.in),c=i.getFullYear(),d=i.getDate(),m=as(s,0);m.setFullYear(c,a,15),m.setHours(0,0,0,0);const h=BO(m);return i.setMonth(a,Math.min(d,h)),i}function IO(s,a,l){const i=kt(s,l?.in);return isNaN(+i)?as(s,NaN):(i.setFullYear(a),i)}const Qj=5,WO=4;function XO(s,a){const l=a.startOfMonth(s),i=l.getDay()>0?l.getDay():7,c=a.addDays(s,-i+1),d=a.addDays(c,Qj*7-1);return a.getMonth(s)===a.getMonth(d)?Qj:WO}function VN(s,a){const l=a.startOfMonth(s),i=l.getDay();return i===1?l:i===0?a.addDays(l,-6):a.addDays(l,-1*(i-1))}function KO(s,a){const l=VN(s,a),i=XO(s,a);return a.addDays(l,i*7-1)}class nn{constructor(a,l){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?Ns.tz(this.options.timeZone):new this.Date,this.newDate=(i,c,d)=>this.overrides?.newDate?this.overrides.newDate(i,c,d):this.options.timeZone?new Ns(i,c,d,this.options.timeZone):new Date(i,c,d),this.addDays=(i,c)=>this.overrides?.addDays?this.overrides.addDays(i,c):DN(i,c),this.addMonths=(i,c)=>this.overrides?.addMonths?this.overrides.addMonths(i,c):ON(i,c),this.addWeeks=(i,c)=>this.overrides?.addWeeks?this.overrides.addWeeks(i,c):DD(i,c),this.addYears=(i,c)=>this.overrides?.addYears?this.overrides.addYears(i,c):OD(i,c),this.differenceInCalendarDays=(i,c)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(i,c):RN(i,c),this.differenceInCalendarMonths=(i,c)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(i,c):LD(i,c),this.eachMonthOfInterval=i=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(i):UD(i),this.eachYearOfInterval=i=>{const c=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(i):YD(i),d=new Set(c.map(h=>this.getYear(h)));if(d.size===c.length)return c;const m=[];return d.forEach(h=>{m.push(new Date(h,0,1))}),m},this.endOfBroadcastWeek=i=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(i):KO(i,this),this.endOfISOWeek=i=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(i):qD(i),this.endOfMonth=i=>this.overrides?.endOfMonth?this.overrides.endOfMonth(i):BD(i),this.endOfWeek=(i,c)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(i,c):BN(i,this.options),this.endOfYear=i=>this.overrides?.endOfYear?this.overrides.endOfYear(i):FD(i),this.format=(i,c,d)=>{const m=this.overrides?.format?this.overrides.format(i,c,this.options):md(i,c,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(m):m},this.getISOWeek=i=>this.overrides?.getISOWeek?this.overrides.getISOWeek(i):HN(i),this.getMonth=(i,c)=>this.overrides?.getMonth?this.overrides.getMonth(i,this.options):UO(i,this.options),this.getYear=(i,c)=>this.overrides?.getYear?this.overrides.getYear(i,this.options):HO(i,this.options),this.getWeek=(i,c)=>this.overrides?.getWeek?this.overrides.getWeek(i,this.options):YN(i,this.options),this.isAfter=(i,c)=>this.overrides?.isAfter?this.overrides.isAfter(i,c):FO(i,c),this.isBefore=(i,c)=>this.overrides?.isBefore?this.overrides.isBefore(i,c):YO(i,c),this.isDate=i=>this.overrides?.isDate?this.overrides.isDate(i):zN(i),this.isSameDay=(i,c)=>this.overrides?.isSameDay?this.overrides.isSameDay(i,c):zD(i,c),this.isSameMonth=(i,c)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(i,c):VO(i,c),this.isSameYear=(i,c)=>this.overrides?.isSameYear?this.overrides.isSameYear(i,c):GO(i,c),this.max=i=>this.overrides?.max?this.overrides.max(i):AD(i),this.min=i=>this.overrides?.min?this.overrides.min(i):RD(i),this.setMonth=(i,c)=>this.overrides?.setMonth?this.overrides.setMonth(i,c):$O(i,c),this.setYear=(i,c)=>this.overrides?.setYear?this.overrides.setYear(i,c):IO(i,c),this.startOfBroadcastWeek=(i,c)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(i,this):VN(i,this),this.startOfDay=i=>this.overrides?.startOfDay?this.overrides.startOfDay(i):uo(i),this.startOfISOWeek=i=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(i):co(i),this.startOfMonth=i=>this.overrides?.startOfMonth?this.overrides.startOfMonth(i):HD(i),this.startOfWeek=(i,c)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(i,this.options):Ka(i,this.options),this.startOfYear=i=>this.overrides?.startOfYear?this.overrides.startOfYear(i):LN(i),this.options={locale:Hh,...a},this.overrides=l}getDigitMap(){const{numerals:a="latn"}=this.options,l=new Intl.NumberFormat("en-US",{numberingSystem:a}),i={};for(let c=0;c<10;c++)i[c.toString()]=l.format(c);return i}replaceDigits(a){const l=this.getDigitMap();return a.replace(/\d/g,i=>l[i]||i)}formatNumber(a){return this.replaceDigits(a.toString())}getMonthYearOrder(){const a=this.options.locale?.code;return a&&nn.yearFirstLocales.has(a)?"year-first":"month-first"}formatMonthYear(a){const{locale:l,timeZone:i,numerals:c}=this.options,d=l?.code;if(d&&nn.yearFirstLocales.has(d))try{return new Intl.DateTimeFormat(d,{month:"long",year:"numeric",timeZone:i,numberingSystem:c}).format(a)}catch{}const m=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(a,m)}}nn.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Gn=new nn;class GN{constructor(a,l,i=Gn){this.date=a,this.displayMonth=l,this.outside=!!(l&&!i.isSameMonth(a,l)),this.dateLib=i}isEqualTo(a){return this.dateLib.isSameDay(a.date,this.date)&&this.dateLib.isSameMonth(a.displayMonth,this.displayMonth)}}class QO{constructor(a,l){this.date=a,this.weeks=l}}class ZO{constructor(a,l){this.days=l,this.weekNumber=a}}function JO(s){return Ne.createElement("button",{...s})}function eA(s){return Ne.createElement("span",{...s})}function tA(s){const{size:a=24,orientation:l="left",className:i}=s;return Ne.createElement("svg",{className:i,width:a,height:a,viewBox:"0 0 24 24"},l==="up"&&Ne.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),l==="down"&&Ne.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),l==="left"&&Ne.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),l==="right"&&Ne.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function sA(s){const{day:a,modifiers:l,...i}=s;return Ne.createElement("td",{...i})}function nA(s){const{day:a,modifiers:l,...i}=s,c=Ne.useRef(null);return Ne.useEffect(()=>{l.focused&&c.current?.focus()},[l.focused]),Ne.createElement("button",{ref:c,...i})}var Me;(function(s){s.Root="root",s.Chevron="chevron",s.Day="day",s.DayButton="day_button",s.CaptionLabel="caption_label",s.Dropdowns="dropdowns",s.Dropdown="dropdown",s.DropdownRoot="dropdown_root",s.Footer="footer",s.MonthGrid="month_grid",s.MonthCaption="month_caption",s.MonthsDropdown="months_dropdown",s.Month="month",s.Months="months",s.Nav="nav",s.NextMonthButton="button_next",s.PreviousMonthButton="button_previous",s.Week="week",s.Weeks="weeks",s.Weekday="weekday",s.Weekdays="weekdays",s.WeekNumber="week_number",s.WeekNumberHeader="week_number_header",s.YearsDropdown="years_dropdown"})(Me||(Me={}));var Gt;(function(s){s.disabled="disabled",s.hidden="hidden",s.outside="outside",s.focused="focused",s.today="today"})(Gt||(Gt={}));var En;(function(s){s.range_end="range_end",s.range_middle="range_middle",s.range_start="range_start",s.selected="selected"})(En||(En={}));var sn;(function(s){s.weeks_before_enter="weeks_before_enter",s.weeks_before_exit="weeks_before_exit",s.weeks_after_enter="weeks_after_enter",s.weeks_after_exit="weeks_after_exit",s.caption_after_enter="caption_after_enter",s.caption_after_exit="caption_after_exit",s.caption_before_enter="caption_before_enter",s.caption_before_exit="caption_before_exit"})(sn||(sn={}));function aA(s){const{options:a,className:l,components:i,classNames:c,...d}=s,m=[c[Me.Dropdown],l].join(" "),h=a?.find(({value:p})=>p===d.value);return Ne.createElement("span",{"data-disabled":d.disabled,className:c[Me.DropdownRoot]},Ne.createElement(i.Select,{className:m,...d},a?.map(({value:p,label:v,disabled:g})=>Ne.createElement(i.Option,{key:p,value:p,disabled:g},v))),Ne.createElement("span",{className:c[Me.CaptionLabel],"aria-hidden":!0},h?.label,Ne.createElement(i.Chevron,{orientation:"down",size:18,className:c[Me.Chevron]})))}function lA(s){return Ne.createElement("div",{...s})}function rA(s){return Ne.createElement("div",{...s})}function iA(s){const{calendarMonth:a,displayIndex:l,...i}=s;return Ne.createElement("div",{...i},s.children)}function oA(s){const{calendarMonth:a,displayIndex:l,...i}=s;return Ne.createElement("div",{...i})}function cA(s){return Ne.createElement("table",{...s})}function dA(s){return Ne.createElement("div",{...s})}const $N=x.createContext(void 0);function Eo(){const s=x.useContext($N);if(s===void 0)throw new Error("useDayPicker() must be used within a custom component.");return s}function uA(s){const{components:a}=Eo();return Ne.createElement(a.Dropdown,{...s})}function mA(s){const{onPreviousClick:a,onNextClick:l,previousMonth:i,nextMonth:c,...d}=s,{components:m,classNames:h,labels:{labelPrevious:p,labelNext:v}}=Eo(),g=x.useCallback(b=>{c&&l?.(b)},[c,l]),j=x.useCallback(b=>{i&&a?.(b)},[i,a]);return Ne.createElement("nav",{...d},Ne.createElement(m.PreviousMonthButton,{type:"button",className:h[Me.PreviousMonthButton],tabIndex:i?void 0:-1,"aria-disabled":i?void 0:!0,"aria-label":p(i),onClick:j},Ne.createElement(m.Chevron,{disabled:i?void 0:!0,className:h[Me.Chevron],orientation:"left"})),Ne.createElement(m.NextMonthButton,{type:"button",className:h[Me.NextMonthButton],tabIndex:c?void 0:-1,"aria-disabled":c?void 0:!0,"aria-label":v(c),onClick:g},Ne.createElement(m.Chevron,{disabled:c?void 0:!0,orientation:"right",className:h[Me.Chevron]})))}function fA(s){const{components:a}=Eo();return Ne.createElement(a.Button,{...s})}function hA(s){return Ne.createElement("option",{...s})}function xA(s){const{components:a}=Eo();return Ne.createElement(a.Button,{...s})}function pA(s){const{rootRef:a,...l}=s;return Ne.createElement("div",{...l,ref:a})}function gA(s){return Ne.createElement("select",{...s})}function vA(s){const{week:a,...l}=s;return Ne.createElement("tr",{...l})}function jA(s){return Ne.createElement("th",{...s})}function yA(s){return Ne.createElement("thead",{"aria-hidden":!0},Ne.createElement("tr",{...s}))}function bA(s){const{week:a,...l}=s;return Ne.createElement("th",{...l})}function NA(s){return Ne.createElement("th",{...s})}function wA(s){return Ne.createElement("tbody",{...s})}function SA(s){const{components:a}=Eo();return Ne.createElement(a.Dropdown,{...s})}const _A=Object.freeze(Object.defineProperty({__proto__:null,Button:JO,CaptionLabel:eA,Chevron:tA,Day:sA,DayButton:nA,Dropdown:aA,DropdownNav:lA,Footer:rA,Month:iA,MonthCaption:oA,MonthGrid:cA,Months:dA,MonthsDropdown:uA,Nav:mA,NextMonthButton:fA,Option:hA,PreviousMonthButton:xA,Root:pA,Select:gA,Week:vA,WeekNumber:bA,WeekNumberHeader:NA,Weekday:jA,Weekdays:yA,Weeks:wA,YearsDropdown:SA},Symbol.toStringTag,{value:"Module"}));function fa(s,a,l=!1,i=Gn){let{from:c,to:d}=s;const{differenceInCalendarDays:m,isSameDay:h}=i;return c&&d?(m(d,c)<0&&([c,d]=[d,c]),m(a,c)>=(l?1:0)&&m(d,a)>=(l?1:0)):!l&&d?h(d,a):!l&&c?h(c,a):!1}function IN(s){return!!(s&&typeof s=="object"&&"before"in s&&"after"in s)}function Fh(s){return!!(s&&typeof s=="object"&&"from"in s)}function WN(s){return!!(s&&typeof s=="object"&&"after"in s)}function XN(s){return!!(s&&typeof s=="object"&&"before"in s)}function KN(s){return!!(s&&typeof s=="object"&&"dayOfWeek"in s)}function QN(s,a){return Array.isArray(s)&&s.every(a.isDate)}function ha(s,a,l=Gn){const i=Array.isArray(a)?a:[a],{isSameDay:c,differenceInCalendarDays:d,isAfter:m}=l;return i.some(h=>{if(typeof h=="boolean")return h;if(l.isDate(h))return c(s,h);if(QN(h,l))return h.includes(s);if(Fh(h))return fa(h,s,!1,l);if(KN(h))return Array.isArray(h.dayOfWeek)?h.dayOfWeek.includes(s.getDay()):h.dayOfWeek===s.getDay();if(IN(h)){const p=d(h.before,s),v=d(h.after,s),g=p>0,j=v<0;return m(h.before,h.after)?j&&g:g||j}return WN(h)?d(s,h.after)>0:XN(h)?d(h.before,s)>0:typeof h=="function"?h(s):!1})}function CA(s,a,l,i,c){const{disabled:d,hidden:m,modifiers:h,showOutsideDays:p,broadcastCalendar:v,today:g}=a,{isSameDay:j,isSameMonth:b,startOfMonth:w,isBefore:S,endOfMonth:C,isAfter:N}=c,T=l&&w(l),P=i&&C(i),M={[Gt.focused]:[],[Gt.outside]:[],[Gt.disabled]:[],[Gt.hidden]:[],[Gt.today]:[]},k={};for(const D of s){const{date:A,displayMonth:E}=D,B=!!(E&&!b(A,E)),Y=!!(T&&S(A,T)),G=!!(P&&N(A,P)),$=!!(d&&ha(A,d,c)),oe=!!(m&&ha(A,m,c))||Y||G||!v&&!p&&B||v&&p===!1&&B,je=j(A,g??c.today());B&&M.outside.push(D),$&&M.disabled.push(D),oe&&M.hidden.push(D),je&&M.today.push(D),h&&Object.keys(h).forEach(ae=>{const me=h?.[ae];me&&ha(A,me,c)&&(k[ae]?k[ae].push(D):k[ae]=[D])})}return D=>{const A={[Gt.focused]:!1,[Gt.disabled]:!1,[Gt.hidden]:!1,[Gt.outside]:!1,[Gt.today]:!1},E={};for(const B in M){const Y=M[B];A[B]=Y.some(G=>G===D)}for(const B in k)E[B]=k[B].some(Y=>Y===D);return{...A,...E}}}function kA(s,a,l={}){return Object.entries(s).filter(([,c])=>c===!0).reduce((c,[d])=>(l[d]?c.push(l[d]):a[Gt[d]]?c.push(a[Gt[d]]):a[En[d]]&&c.push(a[En[d]]),c),[a[Me.Day]])}function TA(s){return{..._A,...s}}function EA(s){const a={"data-mode":s.mode??void 0,"data-required":"required"in s?s.required:void 0,"data-multiple-months":s.numberOfMonths&&s.numberOfMonths>1||void 0,"data-week-numbers":s.showWeekNumber||void 0,"data-broadcast-calendar":s.broadcastCalendar||void 0,"data-nav-layout":s.navLayout||void 0};return Object.entries(s).forEach(([l,i])=>{l.startsWith("data-")&&(a[l]=i)}),a}function Yh(){const s={};for(const a in Me)s[Me[a]]=`rdp-${Me[a]}`;for(const a in Gt)s[Gt[a]]=`rdp-${Gt[a]}`;for(const a in En)s[En[a]]=`rdp-${En[a]}`;for(const a in sn)s[sn[a]]=`rdp-${sn[a]}`;return s}function ZN(s,a,l){return(l??new nn(a)).formatMonthYear(s)}const MA=ZN;function DA(s,a,l){return(l??new nn(a)).format(s,"d")}function OA(s,a=Gn){return a.format(s,"LLLL")}function AA(s,a,l){return(l??new nn(a)).format(s,"cccccc")}function RA(s,a=Gn){return s<10?a.formatNumber(`0${s.toLocaleString()}`):a.formatNumber(`${s.toLocaleString()}`)}function zA(){return""}function JN(s,a=Gn){return a.format(s,"yyyy")}const PA=JN,LA=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:ZN,formatDay:DA,formatMonthCaption:MA,formatMonthDropdown:OA,formatWeekNumber:RA,formatWeekNumberHeader:zA,formatWeekdayName:AA,formatYearCaption:PA,formatYearDropdown:JN},Symbol.toStringTag,{value:"Module"}));function BA(s){return s?.formatMonthCaption&&!s.formatCaption&&(s.formatCaption=s.formatMonthCaption),s?.formatYearCaption&&!s.formatYearDropdown&&(s.formatYearDropdown=s.formatYearCaption),{...LA,...s}}function UA(s,a,l,i,c){const{startOfMonth:d,startOfYear:m,endOfYear:h,eachMonthOfInterval:p,getMonth:v}=c;return p({start:m(s),end:h(s)}).map(b=>{const w=i.formatMonthDropdown(b,c),S=v(b),C=a&&bd(l)||!1;return{value:S,label:w,disabled:C}})}function HA(s,a={},l={}){let i={...a?.[Me.Day]};return Object.entries(s).filter(([,c])=>c===!0).forEach(([c])=>{i={...i,...l?.[c]}}),i}function FA(s,a,l){const i=s.today(),c=a?s.startOfISOWeek(i):s.startOfWeek(i),d=[];for(let m=0;m<7;m++){const h=s.addDays(c,m);d.push(h)}return d}function YA(s,a,l,i,c=!1){if(!s||!a)return;const{startOfYear:d,endOfYear:m,eachYearOfInterval:h,getYear:p}=i,v=d(s),g=m(a),j=h({start:v,end:g});return c&&j.reverse(),j.map(b=>{const w=l.formatYearDropdown(b,i);return{value:p(b),label:w,disabled:!1}})}function ew(s,a,l,i){let c=(i??new nn(l)).format(s,"PPPP");return a.today&&(c=`Today, ${c}`),a.selected&&(c=`${c}, selected`),c}const qA=ew;function tw(s,a,l){return(l??new nn(a)).formatMonthYear(s)}const VA=tw;function GA(s,a,l,i){let c=(i??new nn(l)).format(s,"PPPP");return a?.today&&(c=`Today, ${c}`),c}function $A(s){return"Choose the Month"}function IA(){return""}function WA(s){return"Go to the Next Month"}function XA(s){return"Go to the Previous Month"}function KA(s,a,l){return(l??new nn(a)).format(s,"cccc")}function QA(s,a){return`Week ${s}`}function ZA(s){return"Week Number"}function JA(s){return"Choose the Year"}const eR=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:VA,labelDay:qA,labelDayButton:ew,labelGrid:tw,labelGridcell:GA,labelMonthDropdown:$A,labelNav:IA,labelNext:WA,labelPrevious:XA,labelWeekNumber:QA,labelWeekNumberHeader:ZA,labelWeekday:KA,labelYearDropdown:JA},Symbol.toStringTag,{value:"Module"})),Mo=s=>s instanceof HTMLElement?s:null,kf=s=>[...s.querySelectorAll("[data-animated-month]")??[]],tR=s=>Mo(s.querySelector("[data-animated-month]")),Tf=s=>Mo(s.querySelector("[data-animated-caption]")),Ef=s=>Mo(s.querySelector("[data-animated-weeks]")),sR=s=>Mo(s.querySelector("[data-animated-nav]")),nR=s=>Mo(s.querySelector("[data-animated-weekdays]"));function aR(s,a,{classNames:l,months:i,focused:c,dateLib:d}){const m=x.useRef(null),h=x.useRef(i),p=x.useRef(!1);x.useLayoutEffect(()=>{const v=h.current;if(h.current=i,!a||!s.current||!(s.current instanceof HTMLElement)||i.length===0||v.length===0||i.length!==v.length)return;const g=d.isSameMonth(i[0].date,v[0].date),j=d.isAfter(i[0].date,v[0].date),b=j?l[sn.caption_after_enter]:l[sn.caption_before_enter],w=j?l[sn.weeks_after_enter]:l[sn.weeks_before_enter],S=m.current,C=s.current.cloneNode(!0);if(C instanceof HTMLElement?(kf(C).forEach(M=>{if(!(M instanceof HTMLElement))return;const k=tR(M);k&&M.contains(k)&&M.removeChild(k);const D=Tf(M);D&&D.classList.remove(b);const A=Ef(M);A&&A.classList.remove(w)}),m.current=C):m.current=null,p.current||g||c)return;const N=S instanceof HTMLElement?kf(S):[],T=kf(s.current);if(T?.every(P=>P instanceof HTMLElement)&&N&&N.every(P=>P instanceof HTMLElement)){p.current=!0,s.current.style.isolation="isolate";const P=sR(s.current);P&&(P.style.zIndex="1"),T.forEach((M,k)=>{const D=N[k];if(!D)return;M.style.position="relative",M.style.overflow="hidden";const A=Tf(M);A&&A.classList.add(b);const E=Ef(M);E&&E.classList.add(w);const B=()=>{p.current=!1,s.current&&(s.current.style.isolation=""),P&&(P.style.zIndex=""),A&&A.classList.remove(b),E&&E.classList.remove(w),M.style.position="",M.style.overflow="",M.contains(D)&&M.removeChild(D)};D.style.pointerEvents="none",D.style.position="absolute",D.style.overflow="hidden",D.setAttribute("aria-hidden","true");const Y=nR(D);Y&&(Y.style.opacity="0");const G=Tf(D);G&&(G.classList.add(j?l[sn.caption_before_exit]:l[sn.caption_after_exit]),G.addEventListener("animationend",B));const $=Ef(D);$&&$.classList.add(j?l[sn.weeks_before_exit]:l[sn.weeks_after_exit]),M.insertBefore(D,M.firstChild)})}})}function lR(s,a,l,i){const c=s[0],d=s[s.length-1],{ISOWeek:m,fixedWeeks:h,broadcastCalendar:p}=l??{},{addDays:v,differenceInCalendarDays:g,differenceInCalendarMonths:j,endOfBroadcastWeek:b,endOfISOWeek:w,endOfMonth:S,endOfWeek:C,isAfter:N,startOfBroadcastWeek:T,startOfISOWeek:P,startOfWeek:M}=i,k=p?T(c,i):m?P(c):M(c),D=p?b(d):m?w(S(d)):C(S(d)),A=g(D,k),E=j(d,c)+1,B=[];for(let $=0;$<=A;$++){const oe=v(k,$);if(a&&N(oe,a))break;B.push(oe)}const G=(p?35:42)*E;if(h&&B.length{const c=i.weeks.reduce((d,m)=>d.concat(m.days.slice()),a.slice());return l.concat(c.slice())},a.slice())}function iR(s,a,l,i){const{numberOfMonths:c=1}=l,d=[];for(let m=0;ma)break;d.push(h)}return d}function Zj(s,a,l,i){const{month:c,defaultMonth:d,today:m=i.today(),numberOfMonths:h=1}=s;let p=c||d||m;const{differenceInCalendarMonths:v,addMonths:g,startOfMonth:j}=i;if(l&&v(l,p){const T=l.broadcastCalendar?j(N,i):l.ISOWeek?b(N):w(N),P=l.broadcastCalendar?d(N):l.ISOWeek?m(h(N)):p(h(N)),M=a.filter(E=>E>=T&&E<=P),k=l.broadcastCalendar?35:42;if(l.fixedWeeks&&M.length{const Y=k-M.length;return B>P&&B<=c(P,Y)});M.push(...E)}const D=M.reduce((E,B)=>{const Y=l.ISOWeek?v(B):g(B),G=E.find(oe=>oe.weekNumber===Y),$=new GN(B,N,i);return G?G.days.push($):E.push(new ZO(Y,[$])),E},[]),A=new QO(N,D);return C.push(A),C},[]);return l.reverseMonths?S.reverse():S}function cR(s,a){let{startMonth:l,endMonth:i}=s;const{startOfYear:c,startOfDay:d,startOfMonth:m,endOfMonth:h,addYears:p,endOfYear:v,newDate:g,today:j}=a,{fromYear:b,toYear:w,fromMonth:S,toMonth:C}=s;!l&&S&&(l=S),!l&&b&&(l=a.newDate(b,0,1)),!i&&C&&(i=C),!i&&w&&(i=g(w,11,31));const N=s.captionLayout==="dropdown"||s.captionLayout==="dropdown-years";return l?l=m(l):b?l=g(b,0,1):!l&&N&&(l=c(p(s.today??j(),-100))),i?i=h(i):w?i=g(w,11,31):!i&&N&&(i=v(s.today??j())),[l&&d(l),i&&d(i)]}function dR(s,a,l,i){if(l.disableNavigation)return;const{pagedNavigation:c,numberOfMonths:d=1}=l,{startOfMonth:m,addMonths:h,differenceInCalendarMonths:p}=i,v=c?d:1,g=m(s);if(!a)return h(g,v);if(!(p(a,s)l.concat(i.weeks.slice()),a.slice())}function Id(s,a){const[l,i]=x.useState(s);return[a===void 0?l:a,i]}function fR(s,a){const[l,i]=cR(s,a),{startOfMonth:c,endOfMonth:d}=a,m=Zj(s,l,i,a),[h,p]=Id(m,s.month?m:void 0);x.useEffect(()=>{const A=Zj(s,l,i,a);p(A)},[s.timeZone]);const v=iR(h,i,s,a),g=lR(v,s.endMonth?d(s.endMonth):void 0,s,a),j=oR(v,g,s,a),b=mR(j),w=rR(j),S=uR(h,l,s,a),C=dR(h,i,s,a),{disableNavigation:N,onMonthChange:T}=s,P=A=>b.some(E=>E.days.some(B=>B.isEqualTo(A))),M=A=>{if(N)return;let E=c(A);l&&Ec(i)&&(E=c(i)),p(E),T?.(E)};return{months:j,weeks:b,days:w,navStart:l,navEnd:i,previousMonth:S,nextMonth:C,goToMonth:M,goToDay:A=>{P(A)||M(A.date)}}}var Un;(function(s){s[s.Today=0]="Today",s[s.Selected=1]="Selected",s[s.LastFocused=2]="LastFocused",s[s.FocusedModifier=3]="FocusedModifier"})(Un||(Un={}));function Jj(s){return!s[Gt.disabled]&&!s[Gt.hidden]&&!s[Gt.outside]}function hR(s,a,l,i){let c,d=-1;for(const m of s){const h=a(m);Jj(h)&&(h[Gt.focused]&&dJj(a(m)))),c}function xR(s,a,l,i,c,d,m){const{ISOWeek:h,broadcastCalendar:p}=d,{addDays:v,addMonths:g,addWeeks:j,addYears:b,endOfBroadcastWeek:w,endOfISOWeek:S,endOfWeek:C,max:N,min:T,startOfBroadcastWeek:P,startOfISOWeek:M,startOfWeek:k}=m;let A={day:v,week:j,month:g,year:b,startOfWeek:E=>p?P(E,m):h?M(E):k(E),endOfWeek:E=>p?w(E):h?S(E):C(E)}[s](l,a==="after"?1:-1);return a==="before"&&i?A=N([i,A]):a==="after"&&c&&(A=T([c,A])),A}function sw(s,a,l,i,c,d,m,h=0){if(h>365)return;const p=xR(s,a,l.date,i,c,d,m),v=!!(d.disabled&&ha(p,d.disabled,m)),g=!!(d.hidden&&ha(p,d.hidden,m)),j=p,b=new GN(p,j,m);return!v&&!g?b:sw(s,a,b,i,c,d,m,h+1)}function pR(s,a,l,i,c){const{autoFocus:d}=s,[m,h]=x.useState(),p=hR(a.days,l,i||(()=>!1),m),[v,g]=x.useState(d?p:void 0);return{isFocusTarget:C=>!!p?.isEqualTo(C),setFocused:g,focused:v,blur:()=>{h(v),g(void 0)},moveFocus:(C,N)=>{if(!v)return;const T=sw(C,N,v,a.navStart,a.navEnd,s,c);T&&(s.disableNavigation&&!a.days.some(M=>M.isEqualTo(T))||(a.goToDay(T),g(T)))}}}function gR(s,a){const{selected:l,required:i,onSelect:c}=s,[d,m]=Id(l,c?l:void 0),h=c?l:d,{isSameDay:p}=a,v=w=>h?.some(S=>p(S,w))??!1,{min:g,max:j}=s;return{selected:h,select:(w,S,C)=>{let N=[...h??[]];if(v(w)){if(h?.length===g||i&&h?.length===1)return;N=h?.filter(T=>!p(T,w))}else h?.length===j?N=[w]:N=[...N,w];return c||m(N),c?.(N,w,S,C),N},isSelected:v}}function vR(s,a,l=0,i=0,c=!1,d=Gn){const{from:m,to:h}=a||{},{isSameDay:p,isAfter:v,isBefore:g}=d;let j;if(!m&&!h)j={from:s,to:l>0?void 0:s};else if(m&&!h)p(m,s)?l===0?j={from:m,to:s}:c?j={from:m,to:void 0}:j=void 0:g(s,m)?j={from:s,to:m}:j={from:m,to:s};else if(m&&h)if(p(m,s)&&p(h,s))c?j={from:m,to:h}:j=void 0;else if(p(m,s))j={from:m,to:l>0?void 0:s};else if(p(h,s))j={from:s,to:l>0?void 0:s};else if(g(s,m))j={from:s,to:h};else if(v(s,m))j={from:m,to:s};else if(v(s,h))j={from:m,to:s};else throw new Error("Invalid range");if(j?.from&&j?.to){const b=d.differenceInCalendarDays(j.to,j.from);i>0&&b>i?j={from:s,to:void 0}:l>1&&btypeof h!="function").some(h=>typeof h=="boolean"?h:l.isDate(h)?fa(s,h,!1,l):QN(h,l)?h.some(p=>fa(s,p,!1,l)):Fh(h)?h.from&&h.to?ey(s,{from:h.from,to:h.to},l):!1:KN(h)?jR(s,h.dayOfWeek,l):IN(h)?l.isAfter(h.before,h.after)?ey(s,{from:l.addDays(h.after,1),to:l.addDays(h.before,-1)},l):ha(s.from,h,l)||ha(s.to,h,l):WN(h)||XN(h)?ha(s.from,h,l)||ha(s.to,h,l):!1))return!0;const m=i.filter(h=>typeof h=="function");if(m.length){let h=s.from;const p=l.differenceInCalendarDays(s.to,s.from);for(let v=0;v<=p;v++){if(m.some(g=>g(h)))return!0;h=l.addDays(h,1)}}return!1}function bR(s,a){const{disabled:l,excludeDisabled:i,selected:c,required:d,onSelect:m}=s,[h,p]=Id(c,m?c:void 0),v=m?c:h;return{selected:v,select:(b,w,S)=>{const{min:C,max:N}=s,T=b?vR(b,v,C,N,d,a):void 0;return i&&l&&T?.from&&T.to&&yR({from:T.from,to:T.to},l,a)&&(T.from=b,T.to=void 0),m||p(T),m?.(T,b,w,S),T},isSelected:b=>v&&fa(v,b,!1,a)}}function NR(s,a){const{selected:l,required:i,onSelect:c}=s,[d,m]=Id(l,c?l:void 0),h=c?l:d,{isSameDay:p}=a;return{selected:h,select:(j,b,w)=>{let S=j;return!i&&h&&h&&p(j,h)&&(S=void 0),c||m(S),c?.(S,j,b,w),S},isSelected:j=>h?p(h,j):!1}}function wR(s,a){const l=NR(s,a),i=gR(s,a),c=bR(s,a);switch(s.mode){case"single":return l;case"multiple":return i;case"range":return c;default:return}}function SR(s){let a=s;a.timeZone&&(a={...s},a.today&&(a.today=new Ns(a.today,a.timeZone)),a.month&&(a.month=new Ns(a.month,a.timeZone)),a.defaultMonth&&(a.defaultMonth=new Ns(a.defaultMonth,a.timeZone)),a.startMonth&&(a.startMonth=new Ns(a.startMonth,a.timeZone)),a.endMonth&&(a.endMonth=new Ns(a.endMonth,a.timeZone)),a.mode==="single"&&a.selected?a.selected=new Ns(a.selected,a.timeZone):a.mode==="multiple"&&a.selected?a.selected=a.selected?.map(We=>new Ns(We,a.timeZone)):a.mode==="range"&&a.selected&&(a.selected={from:a.selected.from?new Ns(a.selected.from,a.timeZone):void 0,to:a.selected.to?new Ns(a.selected.to,a.timeZone):void 0}));const{components:l,formatters:i,labels:c,dateLib:d,locale:m,classNames:h}=x.useMemo(()=>{const We={...Hh,...a.locale};return{dateLib:new nn({locale:We,weekStartsOn:a.broadcastCalendar?1:a.weekStartsOn,firstWeekContainsDate:a.firstWeekContainsDate,useAdditionalWeekYearTokens:a.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:a.useAdditionalDayOfYearTokens,timeZone:a.timeZone,numerals:a.numerals},a.dateLib),components:TA(a.components),formatters:BA(a.formatters),labels:{...eR,...a.labels},locale:We,classNames:{...Yh(),...a.classNames}}},[a.locale,a.broadcastCalendar,a.weekStartsOn,a.firstWeekContainsDate,a.useAdditionalWeekYearTokens,a.useAdditionalDayOfYearTokens,a.timeZone,a.numerals,a.dateLib,a.components,a.formatters,a.labels,a.classNames]),{captionLayout:p,mode:v,navLayout:g,numberOfMonths:j=1,onDayBlur:b,onDayClick:w,onDayFocus:S,onDayKeyDown:C,onDayMouseEnter:N,onDayMouseLeave:T,onNextClick:P,onPrevClick:M,showWeekNumber:k,styles:D}=a,{formatCaption:A,formatDay:E,formatMonthDropdown:B,formatWeekNumber:Y,formatWeekNumberHeader:G,formatWeekdayName:$,formatYearDropdown:oe}=i,je=fR(a,d),{days:ae,months:me,navStart:R,navEnd:O,previousMonth:L,nextMonth:ee,goToMonth:le}=je,xe=CA(ae,a,R,O,d),{isSelected:F,select:W,selected:fe}=wR(a,d)??{},{blur:I,focused:ve,isFocusTarget:de,moveFocus:Ce,setFocused:Q}=pR(a,je,xe,F??(()=>!1),d),{labelDayButton:Oe,labelGridcell:$e,labelGrid:re,labelMonthDropdown:Pe,labelNav:ze,labelPrevious:Zt,labelNext:Rs,labelWeekday:An,labelWeekNumber:Le,labelWeekNumberHeader:Nn,labelYearDropdown:ln}=c,rn=x.useMemo(()=>FA(d,a.ISOWeek),[d,a.ISOWeek]),Xt=v!==void 0||w!==void 0,Ds=x.useCallback(()=>{L&&(le(L),M?.(L))},[L,le,M]),ke=x.useCallback(()=>{ee&&(le(ee),P?.(ee))},[le,ee,P]),is=x.useCallback((We,Mt)=>Be=>{Be.preventDefault(),Be.stopPropagation(),Q(We),W?.(We.date,Mt,Be),w?.(We.date,Mt,Be)},[W,w,Q]),he=x.useCallback((We,Mt)=>Be=>{Q(We),S?.(We.date,Mt,Be)},[S,Q]),Ee=x.useCallback((We,Mt)=>Be=>{I(),b?.(We.date,Mt,Be)},[I,b]),Ve=x.useCallback((We,Mt)=>Be=>{const ht={ArrowLeft:[Be.shiftKey?"month":"day",a.dir==="rtl"?"after":"before"],ArrowRight:[Be.shiftKey?"month":"day",a.dir==="rtl"?"before":"after"],ArrowDown:[Be.shiftKey?"year":"week","after"],ArrowUp:[Be.shiftKey?"year":"week","before"],PageUp:[Be.shiftKey?"year":"month","before"],PageDown:[Be.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(ht[Be.key]){Be.preventDefault(),Be.stopPropagation();const[os,Xe]=ht[Be.key];Ce(os,Xe)}C?.(We.date,Mt,Be)},[Ce,C,a.dir]),Os=x.useCallback((We,Mt)=>Be=>{N?.(We.date,Mt,Be)},[N]),$n=x.useCallback((We,Mt)=>Be=>{T?.(We.date,Mt,Be)},[T]),Hl=x.useCallback(We=>Mt=>{const Be=Number(Mt.target.value),ht=d.setMonth(d.startOfMonth(We),Be);le(ht)},[d,le]),Fl=x.useCallback(We=>Mt=>{const Be=Number(Mt.target.value),ht=d.setYear(d.startOfMonth(We),Be);le(ht)},[d,le]),{className:se,style:ge}=x.useMemo(()=>({className:[h[Me.Root],a.className].filter(Boolean).join(" "),style:{...D?.[Me.Root],...a.style}}),[h,a.className,a.style,D]),Qe=EA(a),pt=x.useRef(null);aR(pt,!!a.animate,{classNames:h,months:me,focused:ve,dateLib:d});const tl={dayPickerProps:a,selected:fe,select:W,isSelected:F,months:me,nextMonth:ee,previousMonth:L,goToMonth:le,getModifiers:xe,components:l,classNames:h,styles:D,labels:c,formatters:i};return Ne.createElement($N.Provider,{value:tl},Ne.createElement(l.Root,{rootRef:a.animate?pt:void 0,className:se,style:ge,dir:a.dir,id:a.id,lang:a.lang,nonce:a.nonce,title:a.title,role:a.role,"aria-label":a["aria-label"],"aria-labelledby":a["aria-labelledby"],...Qe},Ne.createElement(l.Months,{className:h[Me.Months],style:D?.[Me.Months]},!a.hideNavigation&&!g&&Ne.createElement(l.Nav,{"data-animated-nav":a.animate?"true":void 0,className:h[Me.Nav],style:D?.[Me.Nav],"aria-label":ze(),onPreviousClick:Ds,onNextClick:ke,previousMonth:L,nextMonth:ee}),me.map((We,Mt)=>Ne.createElement(l.Month,{"data-animated-month":a.animate?"true":void 0,className:h[Me.Month],style:D?.[Me.Month],key:Mt,displayIndex:Mt,calendarMonth:We},g==="around"&&!a.hideNavigation&&Mt===0&&Ne.createElement(l.PreviousMonthButton,{type:"button",className:h[Me.PreviousMonthButton],tabIndex:L?void 0:-1,"aria-disabled":L?void 0:!0,"aria-label":Zt(L),onClick:Ds,"data-animated-button":a.animate?"true":void 0},Ne.createElement(l.Chevron,{disabled:L?void 0:!0,className:h[Me.Chevron],orientation:a.dir==="rtl"?"right":"left"})),Ne.createElement(l.MonthCaption,{"data-animated-caption":a.animate?"true":void 0,className:h[Me.MonthCaption],style:D?.[Me.MonthCaption],calendarMonth:We,displayIndex:Mt},p?.startsWith("dropdown")?Ne.createElement(l.DropdownNav,{className:h[Me.Dropdowns],style:D?.[Me.Dropdowns]},(()=>{const Be=p==="dropdown"||p==="dropdown-months"?Ne.createElement(l.MonthsDropdown,{key:"month",className:h[Me.MonthsDropdown],"aria-label":Pe(),classNames:h,components:l,disabled:!!a.disableNavigation,onChange:Hl(We.date),options:UA(We.date,R,O,i,d),style:D?.[Me.Dropdown],value:d.getMonth(We.date)}):Ne.createElement("span",{key:"month"},B(We.date,d)),ht=p==="dropdown"||p==="dropdown-years"?Ne.createElement(l.YearsDropdown,{key:"year",className:h[Me.YearsDropdown],"aria-label":ln(d.options),classNames:h,components:l,disabled:!!a.disableNavigation,onChange:Fl(We.date),options:YA(R,O,i,d,!!a.reverseYears),style:D?.[Me.Dropdown],value:d.getYear(We.date)}):Ne.createElement("span",{key:"year"},oe(We.date,d));return d.getMonthYearOrder()==="year-first"?[ht,Be]:[Be,ht]})(),Ne.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},A(We.date,d.options,d))):Ne.createElement(l.CaptionLabel,{className:h[Me.CaptionLabel],role:"status","aria-live":"polite"},A(We.date,d.options,d))),g==="around"&&!a.hideNavigation&&Mt===j-1&&Ne.createElement(l.NextMonthButton,{type:"button",className:h[Me.NextMonthButton],tabIndex:ee?void 0:-1,"aria-disabled":ee?void 0:!0,"aria-label":Rs(ee),onClick:ke,"data-animated-button":a.animate?"true":void 0},Ne.createElement(l.Chevron,{disabled:ee?void 0:!0,className:h[Me.Chevron],orientation:a.dir==="rtl"?"left":"right"})),Mt===j-1&&g==="after"&&!a.hideNavigation&&Ne.createElement(l.Nav,{"data-animated-nav":a.animate?"true":void 0,className:h[Me.Nav],style:D?.[Me.Nav],"aria-label":ze(),onPreviousClick:Ds,onNextClick:ke,previousMonth:L,nextMonth:ee}),Ne.createElement(l.MonthGrid,{role:"grid","aria-multiselectable":v==="multiple"||v==="range","aria-label":re(We.date,d.options,d)||void 0,className:h[Me.MonthGrid],style:D?.[Me.MonthGrid]},!a.hideWeekdays&&Ne.createElement(l.Weekdays,{"data-animated-weekdays":a.animate?"true":void 0,className:h[Me.Weekdays],style:D?.[Me.Weekdays]},k&&Ne.createElement(l.WeekNumberHeader,{"aria-label":Nn(d.options),className:h[Me.WeekNumberHeader],style:D?.[Me.WeekNumberHeader],scope:"col"},G()),rn.map(Be=>Ne.createElement(l.Weekday,{"aria-label":An(Be,d.options,d),className:h[Me.Weekday],key:String(Be),style:D?.[Me.Weekday],scope:"col"},$(Be,d.options,d)))),Ne.createElement(l.Weeks,{"data-animated-weeks":a.animate?"true":void 0,className:h[Me.Weeks],style:D?.[Me.Weeks]},We.weeks.map(Be=>Ne.createElement(l.Week,{className:h[Me.Week],key:Be.weekNumber,style:D?.[Me.Week],week:Be},k&&Ne.createElement(l.WeekNumber,{week:Be,style:D?.[Me.WeekNumber],"aria-label":Le(Be.weekNumber,{locale:m}),className:h[Me.WeekNumber],scope:"row",role:"rowheader"},Y(Be.weekNumber,d)),Be.days.map(ht=>{const{date:os}=ht,Xe=xe(ht);if(Xe[Gt.focused]=!Xe.hidden&&!!ve?.isEqualTo(ht),Xe[En.selected]=F?.(os)||Xe.selected,Fh(fe)){const{from:ql,to:nl}=fe;Xe[En.range_start]=!!(ql&&nl&&d.isSameDay(os,ql)),Xe[En.range_end]=!!(ql&&nl&&d.isSameDay(os,nl)),Xe[En.range_middle]=fa(fe,os,!0,d)}const Yl=HA(Xe,D,a.modifiersStyles),sl=kA(Xe,h,a.modifiersClassNames),Zd=!Xt&&!Xe.hidden?$e(os,Xe,d.options,d):void 0;return Ne.createElement(l.Day,{key:`${d.format(os,"yyyy-MM-dd")}_${d.format(ht.displayMonth,"yyyy-MM")}`,day:ht,modifiers:Xe,className:sl.join(" "),style:Yl,role:"gridcell","aria-selected":Xe.selected||void 0,"aria-label":Zd,"data-day":d.format(os,"yyyy-MM-dd"),"data-month":ht.outside?d.format(os,"yyyy-MM"):void 0,"data-selected":Xe.selected||void 0,"data-disabled":Xe.disabled||void 0,"data-hidden":Xe.hidden||void 0,"data-outside":ht.outside||void 0,"data-focused":Xe.focused||void 0,"data-today":Xe.today||void 0},!Xe.hidden&&Xt?Ne.createElement(l.DayButton,{className:h[Me.DayButton],style:D?.[Me.DayButton],type:"button",day:ht,modifiers:Xe,disabled:Xe.disabled||void 0,tabIndex:de(ht)?0:-1,"aria-label":Oe(os,Xe,d.options,d),onClick:is(ht,Xe),onBlur:Ee(ht,Xe),onFocus:he(ht,Xe),onKeyDown:Ve(ht,Xe),onMouseEnter:Os(ht,Xe),onMouseLeave:$n(ht,Xe)},E(os,d.options,d)):!Xe.hidden&&E(ht.date,d.options,d))})))))))),a.footer&&Ne.createElement(l.Footer,{className:h[Me.Footer],style:D?.[Me.Footer],role:"status","aria-live":"polite"},a.footer)))}function ty({className:s,classNames:a,showOutsideDays:l=!0,captionLayout:i="label",buttonVariant:c="ghost",formatters:d,components:m,...h}){const p=Yh();return e.jsx(SR,{showOutsideDays:l,className:Z("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,s),captionLayout:i,formatters:{formatMonthDropdown:v=>v.toLocaleString("default",{month:"short"}),...d},classNames:{root:Z("w-fit",p.root),months:Z("relative flex flex-col gap-4 md:flex-row",p.months),month:Z("flex w-full flex-col gap-4",p.month),nav:Z("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",p.nav),button_previous:Z(io({variant:c}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",p.button_previous),button_next:Z(io({variant:c}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",p.button_next),month_caption:Z("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",p.month_caption),dropdowns:Z("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",p.dropdowns),dropdown_root:Z("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",p.dropdown_root),dropdown:Z("bg-popover absolute inset-0 opacity-0",p.dropdown),caption_label:Z("select-none font-medium",i==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",p.caption_label),table:"w-full border-collapse",weekdays:Z("flex",p.weekdays),weekday:Z("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",p.weekday),week:Z("mt-2 flex w-full",p.week),week_number_header:Z("w-[--cell-size] select-none",p.week_number_header),week_number:Z("text-muted-foreground select-none text-[0.8rem]",p.week_number),day:Z("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",p.day),range_start:Z("bg-accent rounded-l-md",p.range_start),range_middle:Z("rounded-none",p.range_middle),range_end:Z("bg-accent rounded-r-md",p.range_end),today:Z("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",p.today),outside:Z("text-muted-foreground aria-selected:text-muted-foreground",p.outside),disabled:Z("text-muted-foreground opacity-50",p.disabled),hidden:Z("invisible",p.hidden),...a},components:{Root:({className:v,rootRef:g,...j})=>e.jsx("div",{"data-slot":"calendar",ref:g,className:Z(v),...j}),Chevron:({className:v,orientation:g,...j})=>g==="left"?e.jsx(Ol,{className:Z("size-4",v),...j}):g==="right"?e.jsx(Al,{className:Z("size-4",v),...j}):e.jsx(lo,{className:Z("size-4",v),...j}),DayButton:_R,WeekNumber:({children:v,...g})=>e.jsx("td",{...g,children:e.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:v})}),...m},...h})}function _R({className:s,day:a,modifiers:l,...i}){const c=Yh(),d=x.useRef(null);return x.useEffect(()=>{l.focused&&d.current?.focus()},[l.focused]),e.jsx(q,{ref:d,variant:"ghost",size:"icon","data-day":a.date.toLocaleDateString(),"data-selected-single":l.selected&&!l.range_start&&!l.range_end&&!l.range_middle,"data-range-start":l.range_start,"data-range-end":l.range_end,"data-range-middle":l.range_middle,className:Z("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",c.day,s),...i})}class CR{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const a=window.location.protocol==="https:"?"wss:":"ws:",l=window.location.host;return`${a}//${l}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const a=this.getWebSocketUrl();try{this.ws=new WebSocket(a),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=l=>{try{if(l.data==="pong")return;const i=JSON.parse(l.data);this.notifyLog(i)}catch(i){console.error("解析日志消息失败:",i)}},this.ws.onerror=l=>{console.error("❌ WebSocket 错误:",l),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(l){console.error("创建 WebSocket 连接失败:",l),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const a=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},a)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(a){return this.logCallbacks.add(a),()=>this.logCallbacks.delete(a)}onConnectionChange(a){return this.connectionCallbacks.add(a),a(this.isConnected),()=>this.connectionCallbacks.delete(a)}notifyLog(a){this.logCache.some(i=>i.id===a.id)||(this.logCache.push(a),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(i=>{try{i(a)}catch(c){console.error("日志回调执行失败:",c)}}))}notifyConnection(a){this.connectionCallbacks.forEach(l=>{try{l(a)}catch(i){console.error("连接状态回调执行失败:",i)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const zr=new CR;typeof window<"u"&&zr.connect();const kR={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},TR=(s,a,l)=>{let i;const c=kR[s];return typeof c=="string"?i=c:a===1?i=c.one:i=c.other.replace("{{count}}",String(a)),l?.addSuffix?l.comparison&&l.comparison>0?i+"内":i+"前":i},ER={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},MR={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},DR={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},OR={date:Hr({formats:ER,defaultWidth:"full"}),time:Hr({formats:MR,defaultWidth:"full"}),dateTime:Hr({formats:DR,defaultWidth:"full"})};function sy(s,a,l){const i="eeee p";return qO(s,a,l)?i:s.getTime()>a.getTime()?"'下个'"+i:"'上个'"+i}const AR={lastWeek:sy,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:sy,other:"PP p"},RR=(s,a,l,i)=>{const c=AR[s];return typeof c=="function"?c(a,l,i):c},zR={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},PR={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},LR={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},BR={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},UR={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},HR={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},FR=(s,a)=>{const l=Number(s);switch(a?.unit){case"date":return l.toString()+"日";case"hour":return l.toString()+"时";case"minute":return l.toString()+"分";case"second":return l.toString()+"秒";default:return"第 "+l.toString()}},YR={ordinalNumber:FR,era:Hn({values:zR,defaultWidth:"wide"}),quarter:Hn({values:PR,defaultWidth:"wide",argumentCallback:s=>s-1}),month:Hn({values:LR,defaultWidth:"wide"}),day:Hn({values:BR,defaultWidth:"wide"}),dayPeriod:Hn({values:UR,defaultWidth:"wide",formattingValues:HR,defaultFormattingWidth:"wide"})},qR=/^(第\s*)?\d+(日|时|分|秒)?/i,VR=/\d+/i,GR={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},$R={any:[/^(前)/i,/^(公元)/i]},IR={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},WR={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},XR={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},KR={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},QR={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},ZR={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},JR={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},e3={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},t3={ordinalNumber:UN({matchPattern:qR,parsePattern:VR,valueCallback:s=>parseInt(s,10)}),era:Fn({matchPatterns:GR,defaultMatchWidth:"wide",parsePatterns:$R,defaultParseWidth:"any"}),quarter:Fn({matchPatterns:IR,defaultMatchWidth:"wide",parsePatterns:WR,defaultParseWidth:"any",valueCallback:s=>s+1}),month:Fn({matchPatterns:XR,defaultMatchWidth:"wide",parsePatterns:KR,defaultParseWidth:"any"}),day:Fn({matchPatterns:QR,defaultMatchWidth:"wide",parsePatterns:ZR,defaultParseWidth:"any"}),dayPeriod:Fn({matchPatterns:JR,defaultMatchWidth:"any",parsePatterns:e3,defaultParseWidth:"any"})},td={code:"zh-CN",formatDistance:TR,formatLong:OR,formatRelative:RR,localize:YR,match:t3,options:{weekStartsOn:1,firstWeekContainsDate:4}};function s3(){const[s,a]=x.useState([]),[l,i]=x.useState(""),[c,d]=x.useState("all"),[m,h]=x.useState("all"),[p,v]=x.useState(void 0),[g,j]=x.useState(void 0),[b,w]=x.useState(!0),[S,C]=x.useState(!1),N=x.useRef(null),T=x.useRef(null);x.useEffect(()=>{const $=zr.getAllLogs();a($);const oe=zr.onLog(()=>{a(zr.getAllLogs())}),je=zr.onConnectionChange(ae=>{C(ae)});return()=>{oe(),je()}},[]),x.useEffect(()=>{b&&T.current&&T.current.scrollIntoView({behavior:"smooth",block:"end"})},[s,b]);const P=x.useMemo(()=>{const $=new Set(s.map(oe=>oe.module));return Array.from($).sort()},[s]),M=$=>{switch($){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},k=$=>{switch($){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},D=()=>{window.location.reload()},A=()=>{zr.clearLogs(),a([])},E=()=>{const $=G.map(me=>`${me.timestamp} [${me.level.padEnd(8)}] [${me.module}] ${me.message}`).join(` +`),oe=new Blob([$],{type:"text/plain;charset=utf-8"}),je=URL.createObjectURL(oe),ae=document.createElement("a");ae.href=je,ae.download=`logs-${md(new Date,"yyyy-MM-dd-HHmmss")}.txt`,ae.click(),URL.revokeObjectURL(je)},B=()=>{w(!b)},Y=()=>{v(void 0),j(void 0)},G=x.useMemo(()=>s.filter($=>{const oe=l===""||$.message.toLowerCase().includes(l.toLowerCase())||$.module.toLowerCase().includes(l.toLowerCase()),je=c==="all"||$.level===c,ae=m==="all"||$.module===m;let me=!0;if(p||g){const R=new Date($.timestamp);if(p){const O=new Date(p);O.setHours(0,0,0,0),me=me&&R>=O}if(g){const O=new Date(g);O.setHours(23,59,59,999),me=me&&R<=O}}return oe&&je&&ae&&me}),[s,l,c,m,p,g]);return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:Z("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",S?"bg-green-500 animate-pulse":"bg-red-500")}),e.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:S?"已连接":"未连接"})]})]}),e.jsx(Ue,{className:"p-3 sm:p-4",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"搜索日志...",value:l,onChange:$=>i($.target.value),className:"pl-9 h-9 text-sm"})]}),e.jsxs(rt,{value:c,onValueChange:d,children:[e.jsxs(at,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[e.jsx(Lf,{className:"h-4 w-4 mr-2"}),e.jsx(it,{placeholder:"级别"})]}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部级别"}),e.jsx(ye,{value:"DEBUG",children:"DEBUG"}),e.jsx(ye,{value:"INFO",children:"INFO"}),e.jsx(ye,{value:"WARNING",children:"WARNING"}),e.jsx(ye,{value:"ERROR",children:"ERROR"}),e.jsx(ye,{value:"CRITICAL",children:"CRITICAL"})]})]}),e.jsxs(rt,{value:m,onValueChange:h,children:[e.jsxs(at,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[e.jsx(Lf,{className:"h-4 w-4 mr-2"}),e.jsx(it,{placeholder:"模块"})]}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部模块"}),P.map($=>e.jsx(ye,{value:$,children:$},$))]})]})]}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",className:Z("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!p&&"text-muted-foreground"),children:[e.jsx(ej,{className:"mr-2 h-4 w-4"}),e.jsx("span",{className:"text-xs sm:text-sm",children:p?md(p,"PPP",{locale:td}):"开始日期"})]})}),e.jsx(pa,{className:"w-auto p-0",align:"start",children:e.jsx(ty,{mode:"single",selected:p,onSelect:v,initialFocus:!0,locale:td})})]}),e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",className:Z("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!g&&"text-muted-foreground"),children:[e.jsx(ej,{className:"mr-2 h-4 w-4"}),e.jsx("span",{className:"text-xs sm:text-sm",children:g?md(g,"PPP",{locale:td}):"结束日期"})]})}),e.jsx(pa,{className:"w-auto p-0",align:"start",children:e.jsx(ty,{mode:"single",selected:g,onSelect:j,initialFocus:!0,locale:td})})]}),(p||g)&&e.jsxs(q,{variant:"outline",size:"sm",onClick:Y,className:"w-full sm:w-auto h-9",children:[e.jsx(go,{className:"h-4 w-4 sm:mr-2"}),e.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),e.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[e.jsxs("div",{className:"flex gap-2 flex-wrap",children:[e.jsxs(q,{variant:b?"default":"outline",size:"sm",onClick:B,className:"flex-1 sm:flex-none h-9",children:[b?e.jsx(F2,{className:"h-4 w-4"}):e.jsx(Y2,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2 text-sm",children:b?"自动滚动":"已暂停"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:D,className:"flex-1 sm:flex-none h-9",children:[e.jsx(xa,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:A,className:"flex-1 sm:flex-none h-9",children:[e.jsx(ft,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:E,className:"flex-1 sm:flex-none h-9",children:[e.jsx(Bf,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),e.jsx("div",{className:"flex-1 hidden sm:block"}),e.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[e.jsxs("span",{className:"font-mono",children:[G.length," / ",s.length]}),e.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),e.jsx(Ue,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:e.jsx(Ct,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:e.jsxs("div",{ref:N,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[G.length===0?e.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):G.map($=>e.jsxs("div",{className:Z("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",k($.level)),children:[e.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:$.timestamp}),e.jsxs("span",{className:Z("text-xs font-semibold",M($.level)),children:["[",$.level,"]"]})]}),e.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:$.module}),e.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:$.message})]}),e.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:$.timestamp}),e.jsxs("span",{className:Z("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",M($.level)),children:["[",$.level,"]"]}),e.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:$.module}),e.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:$.message})]})]},$.id)),e.jsx("div",{ref:T,className:"h-4"})]})})})]})})}const n3="Mai-with-u",a3="plugin-repo",l3="main",r3="plugin_details.json";async function i3(){try{const s=await Fe("/api/webui/plugins/fetch-raw",{method:"POST",headers:Ie(),body:JSON.stringify({owner:n3,repo:a3,branch:l3,file_path:r3})});if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);const a=await s.json();if(!a.success||!a.data)throw new Error(a.error||"获取插件列表失败");return JSON.parse(a.data).filter(c=>!c?.id||!c?.manifest?(console.warn("跳过无效插件数据:",c),!1):!c.manifest.name||!c.manifest.version?(console.warn("跳过缺少必需字段的插件:",c.id),!1):!0).map(c=>({id:c.id,manifest:{manifest_version:c.manifest.manifest_version||1,name:c.manifest.name,version:c.manifest.version,description:c.manifest.description||"",author:c.manifest.author||{name:"Unknown"},license:c.manifest.license||"Unknown",host_application:c.manifest.host_application||{min_version:"0.0.0"},homepage_url:c.manifest.homepage_url,repository_url:c.manifest.repository_url,keywords:c.manifest.keywords||[],categories:c.manifest.categories||[],default_locale:c.manifest.default_locale||"zh-CN",locales_path:c.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(s){throw console.error("Failed to fetch plugin list:",s),s}}async function o3(){try{const s=await Fe("/api/webui/plugins/git-status");if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return await s.json()}catch(s){return console.error("Failed to check Git status:",s),{installed:!1,error:"无法检测 Git 安装状态"}}}async function c3(){try{const s=await Fe("/api/webui/plugins/version");if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return await s.json()}catch(s){return console.error("Failed to get Maimai version:",s),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function d3(s,a,l){const i=s.split(".").map(h=>parseInt(h)||0),c=i[0]||0,d=i[1]||0,m=i[2]||0;if(l.version_majorparseInt(j)||0),p=h[0]||0,v=h[1]||0,g=h[2]||0;if(l.version_major>p||l.version_major===p&&l.version_minor>v||l.version_major===p&&l.version_minor===v&&l.version_patch>g)return!1}return!0}function u3(s,a){const l=window.location.protocol==="https:"?"wss:":"ws:",i=window.location.host,c=new WebSocket(`${l}//${i}/api/webui/ws/plugin-progress`);return c.onopen=()=>{console.log("Plugin progress WebSocket connected");const d=setInterval(()=>{c.readyState===WebSocket.OPEN?c.send("ping"):clearInterval(d)},3e4)},c.onmessage=d=>{try{if(d.data==="pong")return;const m=JSON.parse(d.data);s(m)}catch(m){console.error("Failed to parse progress data:",m)}},c.onerror=d=>{console.error("Plugin progress WebSocket error:",d),a?.(d)},c.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},c}async function sd(){try{const s=await Fe("/api/webui/plugins/installed",{headers:Ie()});if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);const a=await s.json();if(!a.success)throw new Error(a.message||"获取已安装插件列表失败");return a.plugins||[]}catch(s){return console.error("Failed to get installed plugins:",s),[]}}function nd(s,a){return a.some(l=>l.id===s)}function ad(s,a){const l=a.find(i=>i.id===s);if(l)return l.manifest?.version||l.version}async function m3(s,a,l="main"){const i=await Fe("/api/webui/plugins/install",{method:"POST",headers:Ie(),body:JSON.stringify({plugin_id:s,repository_url:a,branch:l})});if(!i.ok){const c=await i.json();throw new Error(c.detail||"安装失败")}return await i.json()}async function f3(s){const a=await Fe("/api/webui/plugins/uninstall",{method:"POST",headers:Ie(),body:JSON.stringify({plugin_id:s})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"卸载失败")}return await a.json()}async function h3(s,a,l="main"){const i=await Fe("/api/webui/plugins/update",{method:"POST",headers:Ie(),body:JSON.stringify({plugin_id:s,repository_url:a,branch:l})});if(!i.ok){const c=await i.json();throw new Error(c.detail||"更新失败")}return await i.json()}const ny={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function x3(){const s=qn(),[a,l]=x.useState(null),[i,c]=x.useState(""),[d,m]=x.useState("all"),[h,p]=x.useState("all"),[v,g]=x.useState(!1),[j,b]=x.useState([]),[w,S]=x.useState(!0),[C,N]=x.useState(null),[T,P]=x.useState(null),[M,k]=x.useState(null),[D,A]=x.useState(null),[,E]=x.useState([]),{toast:B}=Es();x.useEffect(()=>{let O=null,L=!1;return(async()=>{if(O=u3(le=>{L||(k(le),le.stage==="success"?setTimeout(()=>{L||k(null)},2e3):le.stage==="error"&&(S(!1),N(le.error||"加载失败")))},le=>{console.error("WebSocket error:",le),L||B({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(le=>{if(!O){le();return}const xe=()=>{O&&O.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),le()):O&&O.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),le()):setTimeout(xe,100)};xe()}),!L){const le=await o3();P(le),le.installed||B({title:"Git 未安装",description:le.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!L){const le=await c3();A(le)}if(!L)try{S(!0),N(null);const le=await i3();if(!L){const xe=await sd();E(xe);const F=le.map(W=>{const fe=nd(W.id,xe),I=ad(W.id,xe);return{...W,installed:fe,installed_version:I}});for(const W of xe)!F.some(I=>I.id===W.id)&&W.manifest&&F.push({id:W.id,manifest:{manifest_version:W.manifest.manifest_version||1,name:W.manifest.name,version:W.manifest.version,description:W.manifest.description||"",author:W.manifest.author,license:W.manifest.license||"Unknown",host_application:W.manifest.host_application,homepage_url:W.manifest.homepage_url,repository_url:W.manifest.repository_url,keywords:W.manifest.keywords||[],categories:W.manifest.categories||[],default_locale:W.manifest.default_locale||"zh-CN",locales_path:W.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:W.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});b(F)}}catch(le){if(!L){const xe=le instanceof Error?le.message:"加载插件列表失败";N(xe),B({title:"加载失败",description:xe,variant:"destructive"})}}finally{L||S(!1)}})(),()=>{L=!0,O&&O.close()}},[B]);const Y=O=>{if(!O.installed&&D&&!G(O))return e.jsxs(_t,{variant:"destructive",className:"gap-1",children:[e.jsx(Tl,{className:"h-3 w-3"}),"不兼容"]});if(O.installed){const L=O.installed_version?.trim(),ee=O.manifest.version?.trim();if(L!==ee){const le=L?.split(".").map(Number)||[0,0,0],xe=ee?.split(".").map(Number)||[0,0,0];for(let F=0;F<3;F++){if((xe[F]||0)>(le[F]||0))return e.jsxs(_t,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[e.jsx(Tl,{className:"h-3 w-3"}),"可更新"]});if((xe[F]||0)<(le[F]||0))break}}return e.jsxs(_t,{variant:"default",className:"gap-1",children:[e.jsx(Ys,{className:"h-3 w-3"}),"已安装"]})}return null},G=O=>!D||!O.manifest?.host_application?!0:d3(O.manifest.host_application.min_version,O.manifest.host_application.max_version,D),$=O=>{if(!O.installed||!O.installed_version||!O.manifest?.version)return!1;const L=O.installed_version.trim(),ee=O.manifest.version.trim();if(L===ee)return!1;const le=L.split(".").map(Number),xe=ee.split(".").map(Number);for(let F=0;F<3;F++){if((xe[F]||0)>(le[F]||0))return!0;if((xe[F]||0)<(le[F]||0))return!1}return!1},oe=j.filter(O=>{if(!O.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",O.id),!1;const L=i===""||O.manifest.name?.toLowerCase().includes(i.toLowerCase())||O.manifest.description?.toLowerCase().includes(i.toLowerCase())||O.manifest.keywords&&O.manifest.keywords.some(F=>F.toLowerCase().includes(i.toLowerCase())),ee=d==="all"||O.manifest.categories&&O.manifest.categories.includes(d);let le=!0;h==="installed"?le=O.installed===!0:h==="updates"&&(le=O.installed===!0&&$(O));const xe=!v||!D||G(O);return L&&ee&&le&&xe}),je=()=>{l(null)},ae=async O=>{if(!T?.installed){B({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(D&&!G(O)){B({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await m3(O.id,O.manifest.repository_url||"","main"),B({title:"安装成功",description:`${O.manifest.name} 已成功安装`});const L=await sd();E(L),b(ee=>ee.map(le=>{if(le.id===O.id){const xe=nd(le.id,L),F=ad(le.id,L);return{...le,installed:xe,installed_version:F}}return le}))}catch(L){B({title:"安装失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}},me=async O=>{try{await f3(O.id),B({title:"卸载成功",description:`${O.manifest.name} 已成功卸载`});const L=await sd();E(L),b(ee=>ee.map(le=>{if(le.id===O.id){const xe=nd(le.id,L),F=ad(le.id,L);return{...le,installed:xe,installed_version:F}}return le}))}catch(L){B({title:"卸载失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}},R=async O=>{if(!T?.installed){B({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const L=await h3(O.id,O.manifest.repository_url||"","main");B({title:"更新成功",description:`${O.manifest.name} 已从 ${L.old_version} 更新到 ${L.new_version}`});const ee=await sd();E(ee),b(le=>le.map(xe=>{if(xe.id===O.id){const F=nd(xe.id,ee),W=ad(xe.id,ee);return{...xe,installed:F,installed_version:W}}return xe}))}catch(L){B({title:"更新失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}};return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),e.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),e.jsxs(q,{onClick:()=>s({to:"/plugin-mirrors"}),children:[e.jsx(q2,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),T&&!T.installed&&e.jsxs(Ue,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[e.jsx(ot,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Lr,{className:"h-5 w-5 text-orange-600"}),e.jsxs("div",{children:[e.jsx(ct,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),e.jsx(us,{className:"text-orange-800 dark:text-orange-200",children:T.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),e.jsx(gt,{children:e.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",e.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),e.jsx(Ue,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"搜索插件...",value:i,onChange:O=>c(O.target.value),className:"pl-9"})]}),e.jsxs(rt,{value:d,onValueChange:m,children:[e.jsx(at,{className:"w-full sm:w-[200px]",children:e.jsx(it,{placeholder:"选择分类"})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部分类"}),e.jsx(ye,{value:"Group Management",children:"群组管理"}),e.jsx(ye,{value:"Entertainment & Interaction",children:"娱乐互动"}),e.jsx(ye,{value:"Utility Tools",children:"实用工具"}),e.jsx(ye,{value:"Content Generation",children:"内容生成"}),e.jsx(ye,{value:"Multimedia",children:"多媒体"}),e.jsx(ye,{value:"External Integration",children:"外部集成"}),e.jsx(ye,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),e.jsx(ye,{value:"Other",children:"其他"})]})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Cs,{id:"compatible-only",checked:v,onCheckedChange:O=>g(O===!0)}),e.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),e.jsx(Ml,{value:h,onValueChange:p,className:"w-full",children:e.jsxs($a,{className:"grid w-full grid-cols-3",children:[e.jsxs(bt,{value:"all",children:["全部插件 (",j.length,")"]}),e.jsxs(bt,{value:"installed",children:["已安装 (",j.filter(O=>O.installed).length,")"]}),e.jsxs(bt,{value:"updates",children:["可更新 (",j.filter(O=>O.installed&&$(O)).length,")"]})]})}),M&&M.stage==="loading"&&e.jsx(Ue,{className:"p-4",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ro,{className:"h-4 w-4 animate-spin"}),e.jsxs("span",{className:"text-sm font-medium",children:[M.operation==="fetch"&&"加载插件列表",M.operation==="install"&&`安装插件${M.plugin_id?`: ${M.plugin_id}`:""}`,M.operation==="uninstall"&&`卸载插件${M.plugin_id?`: ${M.plugin_id}`:""}`,M.operation==="update"&&`更新插件${M.plugin_id?`: ${M.plugin_id}`:""}`]})]}),e.jsxs("span",{className:"text-sm font-medium",children:[M.progress,"%"]})]}),e.jsx(_o,{value:M.progress,className:"h-2"}),e.jsx("div",{className:"text-xs text-muted-foreground",children:M.message}),M.operation==="fetch"&&M.total_plugins>0&&e.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",M.loaded_plugins," / ",M.total_plugins," 个插件"]})]})}),M&&M.stage==="error"&&M.error&&e.jsx(Ue,{className:"border-destructive bg-destructive/10",children:e.jsx(ot,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Lr,{className:"h-5 w-5 text-destructive"}),e.jsxs("div",{children:[e.jsx(ct,{className:"text-lg text-destructive",children:"加载失败"}),e.jsx(us,{className:"text-destructive/80",children:M.error})]})]})})}),w?e.jsxs("div",{className:"flex items-center justify-center py-12",children:[e.jsx(ro,{className:"h-8 w-8 animate-spin text-muted-foreground"}),e.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):C?e.jsx(Ue,{className:"p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[e.jsx(Lr,{className:"h-12 w-12 text-destructive mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:C}),e.jsx(q,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):oe.length===0?e.jsx(Ue,{className:"p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[e.jsx(Gs,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:i||d!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:oe.map(O=>e.jsxs(Ue,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[e.jsxs(ot,{children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx(ct,{className:"text-xl",children:O.manifest?.name||O.id}),e.jsxs("div",{className:"flex flex-col gap-1",children:[O.manifest?.categories&&O.manifest.categories[0]&&e.jsx(_t,{variant:"secondary",className:"text-xs whitespace-nowrap",children:ny[O.manifest.categories[0]]||O.manifest.categories[0]}),Y(O)]})]}),e.jsx(us,{className:"line-clamp-2",children:O.manifest?.description||"无描述"})]}),e.jsx(gt,{className:"flex-1",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Bf,{className:"h-4 w-4"}),e.jsx("span",{children:O.downloads.toLocaleString()})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(tj,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),e.jsx("span",{children:O.rating.toFixed(1)})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[O.manifest?.keywords&&O.manifest.keywords.slice(0,3).map(L=>e.jsx(_t,{variant:"outline",className:"text-xs",children:L},L)),O.manifest?.keywords&&O.manifest.keywords.length>3&&e.jsxs(_t,{variant:"outline",className:"text-xs",children:["+",O.manifest.keywords.length-3]})]}),e.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[e.jsxs("div",{children:["v",O.manifest?.version||"unknown"," · ",O.manifest?.author?.name||"Unknown"]}),O.manifest?.host_application&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{children:"支持:"}),e.jsxs("span",{className:"font-medium",children:[O.manifest.host_application.min_version,O.manifest.host_application.max_version?` - ${O.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),e.jsx(pb,{className:"pt-4",children:e.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>l(O),children:"查看详情"}),O.installed?$(O)?e.jsxs(q,{size:"sm",disabled:!T?.installed,title:T?.installed?void 0:"Git 未安装",onClick:()=>R(O),children:[e.jsx(xa,{className:"h-4 w-4 mr-1"}),"更新"]}):e.jsxs(q,{variant:"destructive",size:"sm",disabled:!T?.installed,title:T?.installed?void 0:"Git 未安装",onClick:()=>me(O),children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"卸载"]}):e.jsxs(q,{size:"sm",disabled:!T?.installed||M?.operation==="install"||D!==null&&!G(O),title:T?.installed?D!==null&&!G(O)?`不兼容当前版本 (需要 ${O.manifest?.host_application?.min_version||"未知"}${O.manifest?.host_application?.max_version?` - ${O.manifest.host_application.max_version}`:"+"},当前 ${D?.version})`:void 0:"Git 未安装",onClick:()=>ae(O),children:[e.jsx(Bf,{className:"h-4 w-4 mr-1"}),M?.operation==="install"&&M?.plugin_id===O.id?"安装中...":"安装"]})]})})]},O.id))}),e.jsx(bs,{open:a!==null,onOpenChange:je,children:a&&a.manifest&&e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsx(fs,{children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-2 flex-1",children:[e.jsx(hs,{className:"text-2xl",children:a.manifest.name}),e.jsxs(ks,{children:["作者: ",a.manifest.author?.name||"Unknown",a.manifest.author?.url&&e.jsx("a",{href:a.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:e.jsx(so,{className:"h-3 w-3 inline"})})]})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[a.manifest.categories&&a.manifest.categories[0]&&e.jsx(_t,{variant:"secondary",children:ny[a.manifest.categories[0]]||a.manifest.categories[0]}),Y(a)]})]})}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"版本"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",a.manifest?.version||"unknown"]}),a.installed&&a.installed_version&&e.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",a.installed_version]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"下载量"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a.downloads.toLocaleString()})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"评分"}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(tj,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[a.rating.toFixed(1)," (",a.review_count,")"]})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"许可证"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a.manifest.license||"Unknown"})]}),e.jsxs("div",{className:"col-span-2",children:[e.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[a.manifest.host_application?.min_version||"未知",a.manifest.host_application?.max_version?` - ${a.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:a.manifest.keywords&&a.manifest.keywords.map(O=>e.jsx(_t,{variant:"outline",children:O},O))})]}),a.detailed_description&&e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),e.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:a.detailed_description})]}),!a.detailed_description&&e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a.manifest.description||"无描述"})]}),e.jsxs("div",{className:"space-y-2",children:[a.manifest.homepage_url&&e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:"主页: "}),e.jsx("a",{href:a.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:a.manifest.homepage_url})]}),a.manifest.repository_url&&e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:"仓库: "}),e.jsx("a",{href:a.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:a.manifest.repository_url})]})]})]}),e.jsxs($s,{children:[a.manifest.homepage_url&&e.jsxs(q,{onClick:()=>window.open(a.manifest.homepage_url,"_blank"),children:[e.jsx(so,{className:"h-4 w-4 mr-2"}),"访问主页"]}),a.manifest.repository_url&&e.jsxs(q,{variant:"outline",onClick:()=>window.open(a.manifest.repository_url,"_blank"),children:[e.jsx(so,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function p3(){return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(xa,{className:"h-4 w-4 mr-2"}),"刷新"]}),e.jsxs(q,{size:"sm",children:[e.jsx(Tn,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"已安装插件"}),e.jsx(pd,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:"0"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"已启用"}),e.jsx(Ys,{className:"h-4 w-4 text-green-600"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:"0"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"已禁用"}),e.jsx(Tl,{className:"h-4 w-4 text-orange-600"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:"0"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"可更新"}),e.jsx(xa,{className:"h-4 w-4 text-blue-600"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:"0"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"已安装的插件"}),e.jsx(us,{children:"查看和管理已安装插件的配置"})]}),e.jsx(gt,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[e.jsx(pd,{className:"h-16 w-16 text-muted-foreground/50"}),e.jsxs("div",{className:"text-center space-y-2",children:[e.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),e.jsx("div",{className:"flex gap-2",children:e.jsx(q,{variant:"outline",asChild:!0,children:e.jsxs("a",{href:"/plugins",children:[e.jsx(so,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[e.jsxs(Ue,{children:[e.jsx(ot,{children:e.jsx(ct,{className:"text-base",children:"即将推出的功能"})}),e.jsx(gt,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:e.jsx(Ys,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:e.jsx(Ys,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:e.jsx(Ys,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:e.jsx(Ys,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),e.jsxs(Ue,{children:[e.jsx(ot,{children:e.jsx(ct,{className:"text-base",children:"开发者工具"})}),e.jsx(gt,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:e.jsx(Tn,{className:"h-4 w-4 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"热重载"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:e.jsx(Tn,{className:"h-4 w-4 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:e.jsx(Tn,{className:"h-4 w-4 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:e.jsx(Tn,{className:"h-4 w-4 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),e.jsx(Ue,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:e.jsx(gt,{className:"pt-6",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Tl,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),e.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",e.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function g3(){const s=qn(),{toast:a}=Es(),[l,i]=x.useState([]),[c,d]=x.useState(!0),[m,h]=x.useState(null),[p,v]=x.useState(null),[g,j]=x.useState(!1),[b,w]=x.useState(!1),[S,C]=x.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),N=x.useCallback(async()=>{try{d(!0),h(null);const E=localStorage.getItem("access-token"),B=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${E}`}});if(!B.ok)throw new Error("获取镜像源列表失败");const Y=await B.json();i(Y.mirrors||[])}catch(E){const B=E instanceof Error?E.message:"加载镜像源失败";h(B),a({title:"加载失败",description:B,variant:"destructive"})}finally{d(!1)}},[a]);x.useEffect(()=>{N()},[N]);const T=async()=>{try{const E=localStorage.getItem("access-token"),B=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${E}`,"Content-Type":"application/json"},body:JSON.stringify(S)});if(!B.ok){const Y=await B.json();throw new Error(Y.detail||"添加镜像源失败")}a({title:"添加成功",description:"镜像源已添加"}),j(!1),C({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),N()}catch(E){a({title:"添加失败",description:E instanceof Error?E.message:"未知错误",variant:"destructive"})}},P=async()=>{if(p)try{const E=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${p.id}`,{method:"PUT",headers:{Authorization:`Bearer ${E}`,"Content-Type":"application/json"},body:JSON.stringify({name:S.name,raw_prefix:S.raw_prefix,clone_prefix:S.clone_prefix,enabled:S.enabled,priority:S.priority})})).ok)throw new Error("更新镜像源失败");a({title:"更新成功",description:"镜像源已更新"}),w(!1),v(null),N()}catch(E){a({title:"更新失败",description:E instanceof Error?E.message:"未知错误",variant:"destructive"})}},M=async E=>{if(confirm("确定要删除这个镜像源吗?"))try{const B=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${E}`,{method:"DELETE",headers:{Authorization:`Bearer ${B}`}})).ok)throw new Error("删除镜像源失败");a({title:"删除成功",description:"镜像源已删除"}),N()}catch(B){a({title:"删除失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}},k=async E=>{try{const B=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${E.id}`,{method:"PUT",headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!E.enabled})})).ok)throw new Error("更新状态失败");N()}catch(B){a({title:"更新失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}},D=E=>{v(E),C({id:E.id,name:E.name,raw_prefix:E.raw_prefix,clone_prefix:E.clone_prefix,enabled:E.enabled,priority:E.priority}),w(!0)},A=async(E,B)=>{const Y=B==="up"?E.priority-1:E.priority+1;if(!(Y<1))try{const G=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${E.id}`,{method:"PUT",headers:{Authorization:`Bearer ${G}`,"Content-Type":"application/json"},body:JSON.stringify({priority:Y})})).ok)throw new Error("更新优先级失败");N()}catch(G){a({title:"更新失败",description:G instanceof Error?G.message:"未知错误",variant:"destructive"})}};return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(q,{variant:"ghost",size:"icon",onClick:()=>s({to:"/plugins"}),children:e.jsx(My,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),e.jsxs(q,{onClick:()=>j(!0),children:[e.jsx(ys,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),c?e.jsx(Ue,{className:"p-6",children:e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(ro,{className:"h-8 w-8 animate-spin text-primary"})})}):m?e.jsx(Ue,{className:"p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[e.jsx(Lr,{className:"h-12 w-12 text-destructive mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:m}),e.jsx(q,{onClick:N,children:"重新加载"})]})}):e.jsxs(Ue,{children:[e.jsx("div",{className:"hidden md:block",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{children:"状态"}),e.jsx(He,{children:"名称"}),e.jsx(He,{children:"ID"}),e.jsx(He,{children:"优先级"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:l.map(E=>e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Ze,{checked:E.enabled,onCheckedChange:()=>k(E)})}),e.jsx(Ae,{children:e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:E.name}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",E.raw_prefix]})]})}),e.jsx(Ae,{children:e.jsx(_t,{variant:"outline",children:E.id})}),e.jsx(Ae,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-mono",children:E.priority}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(q,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>A(E,"up"),disabled:E.priority===1,children:e.jsx(Pf,{className:"h-3 w-3"})}),e.jsx(q,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>A(E,"down"),children:e.jsx(lo,{className:"h-3 w-3"})})]})]})}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(q,{variant:"ghost",size:"icon",onClick:()=>D(E),children:e.jsx(Yr,{className:"h-4 w-4"})}),e.jsx(q,{variant:"ghost",size:"icon",onClick:()=>M(E.id),children:e.jsx(ft,{className:"h-4 w-4 text-destructive"})})]})})]},E.id))})]})}),e.jsx("div",{className:"md:hidden p-4 space-y-4",children:l.map(E=>e.jsx(Ue,{className:"p-4",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold",children:E.name}),E.enabled&&e.jsx(_t,{variant:"default",className:"text-xs",children:"启用"})]}),e.jsx(_t,{variant:"outline",className:"mt-1 text-xs",children:E.id})]}),e.jsx(Ze,{checked:E.enabled,onCheckedChange:()=>k(E)})]}),e.jsxs("div",{className:"text-sm space-y-1",children:[e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium",children:"Raw: "}),e.jsx("span",{className:"break-all",children:E.raw_prefix})]}),e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium",children:"优先级: "}),e.jsx("span",{className:"font-mono",children:E.priority})]})]}),e.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[e.jsxs(q,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>D(E),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1"}),"编辑"]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>A(E,"up"),disabled:E.priority===1,children:e.jsx(Pf,{className:"h-4 w-4"})}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>A(E,"down"),children:e.jsx(lo,{className:"h-4 w-4"})}),e.jsx(q,{variant:"destructive",size:"sm",onClick:()=>M(E.id),children:e.jsx(ft,{className:"h-4 w-4"})})]})]})},E.id))})]}),e.jsx(bs,{open:g,onOpenChange:j,children:e.jsxs(ms,{className:"max-w-lg",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"添加镜像源"}),e.jsx(ks,{children:"添加新的 Git 镜像源配置"})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-id",children:"镜像源 ID *"}),e.jsx(pe,{id:"add-id",placeholder:"例如: my-mirror",value:S.id,onChange:E=>C({...S,id:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-name",children:"名称 *"}),e.jsx(pe,{id:"add-name",placeholder:"例如: 我的镜像源",value:S.name,onChange:E=>C({...S,name:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),e.jsx(pe,{id:"add-raw",placeholder:"https://example.com/raw",value:S.raw_prefix,onChange:E=>C({...S,raw_prefix:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-clone",children:"克隆前缀 *"}),e.jsx(pe,{id:"add-clone",placeholder:"https://example.com/clone",value:S.clone_prefix,onChange:E=>C({...S,clone_prefix:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-priority",children:"优先级"}),e.jsx(pe,{id:"add-priority",type:"number",min:"1",value:S.priority,onChange:E=>C({...S,priority:parseInt(E.target.value)||1})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"add-enabled",checked:S.enabled,onCheckedChange:E=>C({...S,enabled:E})}),e.jsx(U,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>j(!1),children:"取消"}),e.jsx(q,{onClick:T,children:"添加"})]})]})}),e.jsx(bs,{open:b,onOpenChange:w,children:e.jsxs(ms,{className:"max-w-lg",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"编辑镜像源"}),e.jsx(ks,{children:"修改镜像源配置"})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"镜像源 ID"}),e.jsx(pe,{value:S.id,disabled:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit-name",children:"名称 *"}),e.jsx(pe,{id:"edit-name",value:S.name,onChange:E=>C({...S,name:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),e.jsx(pe,{id:"edit-raw",value:S.raw_prefix,onChange:E=>C({...S,raw_prefix:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit-clone",children:"克隆前缀 *"}),e.jsx(pe,{id:"edit-clone",value:S.clone_prefix,onChange:E=>C({...S,clone_prefix:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit-priority",children:"优先级"}),e.jsx(pe,{id:"edit-priority",type:"number",min:"1",value:S.priority,onChange:E=>C({...S,priority:parseInt(E.target.value)||1})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"edit-enabled",checked:S.enabled,onCheckedChange:E=>C({...S,enabled:E})}),e.jsx(U,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>w(!1),children:"取消"}),e.jsx(q,{onClick:P,children:"保存"})]})]})})]})})}const v3=Jr("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),nw=x.forwardRef(({className:s,size:a,abbrTitle:l,children:i,...c},d)=>e.jsx("kbd",{className:Z(v3({size:a,className:s})),ref:d,...c,children:l?e.jsx("abbr",{title:l,children:i}):i}));nw.displayName="Kbd";const j3=[{icon:fd,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:ph,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:Dy,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:Oy,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:gh,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:po,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:Ay,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:V2,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:pd,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:hd,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Tn,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function y3({open:s,onOpenChange:a}){const[l,i]=x.useState(""),[c,d]=x.useState(0),m=qn(),h=j3.filter(g=>g.title.toLowerCase().includes(l.toLowerCase())||g.description.toLowerCase().includes(l.toLowerCase())||g.category.toLowerCase().includes(l.toLowerCase()));x.useEffect(()=>{s&&(i(""),d(0))},[s]);const p=x.useCallback(g=>{m({to:g}),a(!1)},[m,a]),v=x.useCallback(g=>{g.key==="ArrowDown"?(g.preventDefault(),d(j=>(j+1)%h.length)):g.key==="ArrowUp"?(g.preventDefault(),d(j=>(j-1+h.length)%h.length)):g.key==="Enter"&&h[c]&&(g.preventDefault(),p(h[c].path))},[h,c,p]);return e.jsx(bs,{open:s,onOpenChange:a,children:e.jsxs(ms,{className:"max-w-2xl p-0 gap-0",children:[e.jsxs(fs,{className:"px-4 pt-4 pb-0",children:[e.jsx(hs,{className:"sr-only",children:"搜索"}),e.jsxs("div",{className:"relative",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),e.jsx(pe,{value:l,onChange:g=>{i(g.target.value),d(0)},onKeyDown:v,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),e.jsx("div",{className:"border-t",children:e.jsx(Ct,{className:"h-[400px]",children:h.length>0?e.jsx("div",{className:"p-2",children:h.map((g,j)=>{const b=g.icon;return e.jsxs("button",{onClick:()=>p(g.path),onMouseEnter:()=>d(j),className:Z("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",j===c?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[e.jsx(b,{className:"h-5 w-5 flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"font-medium text-sm",children:g.title}),e.jsx("div",{className:"text-xs text-muted-foreground truncate",children:g.description})]}),e.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:g.category})]},g.path)})}):e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(Gs,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:l?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),e.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),e.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function b3(s){const a=N3(s),l=x.forwardRef((i,c)=>{const{children:d,...m}=i,h=x.Children.toArray(d),p=h.find(S3);if(p){const v=p.props.children,g=h.map(j=>j===p?x.Children.count(v)>1?x.Children.only(null):x.isValidElement(v)?v.props.children:null:j);return e.jsx(a,{...m,ref:c,children:x.isValidElement(v)?x.cloneElement(v,void 0,g):null})}return e.jsx(a,{...m,ref:c,children:d})});return l.displayName=`${s}.Slot`,l}function N3(s){const a=x.forwardRef((l,i)=>{const{children:c,...d}=l;if(x.isValidElement(c)){const m=C3(c),h=_3(d,c.props);return c.type!==x.Fragment&&(h.ref=i?Ga(i,m):m),x.cloneElement(c,h)}return x.Children.count(c)>1?x.Children.only(null):null});return a.displayName=`${s}.SlotClone`,a}var w3=Symbol("radix.slottable");function S3(s){return x.isValidElement(s)&&typeof s.type=="function"&&"__radixId"in s.type&&s.type.__radixId===w3}function _3(s,a){const l={...a};for(const i in a){const c=s[i],d=a[i];/^on[A-Z]/.test(i)?c&&d?l[i]=(...h)=>{const p=d(...h);return c(...h),p}:c&&(l[i]=c):i==="style"?l[i]={...c,...d}:i==="className"&&(l[i]=[c,d].filter(Boolean).join(" "))}return{...s,...l}}function C3(s){let a=Object.getOwnPropertyDescriptor(s.props,"ref")?.get,l=a&&"isReactWarning"in a&&a.isReactWarning;return l?s.ref:(a=Object.getOwnPropertyDescriptor(s,"ref")?.get,l=a&&"isReactWarning"in a&&a.isReactWarning,l?s.props.ref:s.props.ref||s.ref)}var eh=["Enter"," "],k3=["ArrowDown","PageUp","Home"],aw=["ArrowUp","PageDown","End"],T3=[...k3,...aw],E3={ltr:[...eh,"ArrowRight"],rtl:[...eh,"ArrowLeft"]},M3={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Do="Menu",[mo,D3,O3]=_d(Do),[Ul,lw]=Dn(Do,[O3,Wr,Pd]),Oo=Wr(),rw=Pd(),[iw,el]=Ul(Do),[A3,Ao]=Ul(Do),ow=s=>{const{__scopeMenu:a,open:l=!1,children:i,dir:c,onOpenChange:d,modal:m=!0}=s,h=Oo(a),[p,v]=x.useState(null),g=x.useRef(!1),j=ws(d),b=xo(c);return x.useEffect(()=>{const w=()=>{g.current=!0,document.addEventListener("pointerdown",S,{capture:!0,once:!0}),document.addEventListener("pointermove",S,{capture:!0,once:!0})},S=()=>g.current=!1;return document.addEventListener("keydown",w,{capture:!0}),()=>{document.removeEventListener("keydown",w,{capture:!0}),document.removeEventListener("pointerdown",S,{capture:!0}),document.removeEventListener("pointermove",S,{capture:!0})}},[]),e.jsx(Ed,{...h,children:e.jsx(iw,{scope:a,open:l,onOpenChange:j,content:p,onContentChange:v,children:e.jsx(A3,{scope:a,onClose:x.useCallback(()=>j(!1),[j]),isUsingKeyboardRef:g,dir:b,modal:m,children:i})})})};ow.displayName=Do;var R3="MenuAnchor",qh=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s,c=Oo(l);return e.jsx(Md,{...c,...i,ref:a})});qh.displayName=R3;var Vh="MenuPortal",[z3,cw]=Ul(Vh,{forceMount:void 0}),dw=s=>{const{__scopeMenu:a,forceMount:l,children:i,container:c}=s,d=el(Vh,a);return e.jsx(z3,{scope:a,forceMount:l,children:e.jsx(Is,{present:l||d.open,children:e.jsx(Td,{asChild:!0,container:c,children:i})})})};dw.displayName=Vh;var yn="MenuContent",[P3,Gh]=Ul(yn),uw=x.forwardRef((s,a)=>{const l=cw(yn,s.__scopeMenu),{forceMount:i=l.forceMount,...c}=s,d=el(yn,s.__scopeMenu),m=Ao(yn,s.__scopeMenu);return e.jsx(mo.Provider,{scope:s.__scopeMenu,children:e.jsx(Is,{present:i||d.open,children:e.jsx(mo.Slot,{scope:s.__scopeMenu,children:m.modal?e.jsx(L3,{...c,ref:a}):e.jsx(B3,{...c,ref:a})})})})}),L3=x.forwardRef((s,a)=>{const l=el(yn,s.__scopeMenu),i=x.useRef(null),c=Tt(a,i);return x.useEffect(()=>{const d=i.current;if(d)return by(d)},[]),e.jsx($h,{...s,ref:c,trapFocus:l.open,disableOutsidePointerEvents:l.open,disableOutsideScroll:!0,onFocusOutside:be(s.onFocusOutside,d=>d.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>l.onOpenChange(!1)})}),B3=x.forwardRef((s,a)=>{const l=el(yn,s.__scopeMenu);return e.jsx($h,{...s,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>l.onOpenChange(!1)})}),U3=b3("MenuContent.ScrollLock"),$h=x.forwardRef((s,a)=>{const{__scopeMenu:l,loop:i=!1,trapFocus:c,onOpenAutoFocus:d,onCloseAutoFocus:m,disableOutsidePointerEvents:h,onEntryFocus:p,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:j,onInteractOutside:b,onDismiss:w,disableOutsideScroll:S,...C}=s,N=el(yn,l),T=Ao(yn,l),P=Oo(l),M=rw(l),k=D3(l),[D,A]=x.useState(null),E=x.useRef(null),B=Tt(a,E,N.onContentChange),Y=x.useRef(0),G=x.useRef(""),$=x.useRef(0),oe=x.useRef(null),je=x.useRef("right"),ae=x.useRef(0),me=S?Ny:x.Fragment,R=S?{as:U3,allowPinchZoom:!0}:void 0,O=ee=>{const le=G.current+ee,xe=k().filter(de=>!de.disabled),F=document.activeElement,W=xe.find(de=>de.ref.current===F)?.textValue,fe=xe.map(de=>de.textValue),I=Q3(fe,le,W),ve=xe.find(de=>de.textValue===I)?.ref.current;(function de(Ce){G.current=Ce,window.clearTimeout(Y.current),Ce!==""&&(Y.current=window.setTimeout(()=>de(""),1e3))})(le),ve&&setTimeout(()=>ve.focus())};x.useEffect(()=>()=>window.clearTimeout(Y.current),[]),wy();const L=x.useCallback(ee=>je.current===oe.current?.side&&J3(ee,oe.current?.area),[]);return e.jsx(P3,{scope:l,searchRef:G,onItemEnter:x.useCallback(ee=>{L(ee)&&ee.preventDefault()},[L]),onItemLeave:x.useCallback(ee=>{L(ee)||(E.current?.focus(),A(null))},[L]),onTriggerLeave:x.useCallback(ee=>{L(ee)&&ee.preventDefault()},[L]),pointerGraceTimerRef:$,onPointerGraceIntentChange:x.useCallback(ee=>{oe.current=ee},[]),children:e.jsx(me,{...R,children:e.jsx(Sy,{asChild:!0,trapped:c,onMountAutoFocus:be(d,ee=>{ee.preventDefault(),E.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:m,children:e.jsx(fh,{asChild:!0,disableOutsidePointerEvents:h,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:j,onInteractOutside:b,onDismiss:w,children:e.jsx(Nb,{asChild:!0,...M,dir:T.dir,orientation:"vertical",loop:i,currentTabStopId:D,onCurrentTabStopIdChange:A,onEntryFocus:be(p,ee=>{T.isUsingKeyboardRef.current||ee.preventDefault()}),preventScrollOnEntryFocus:!0,children:e.jsx(hh,{role:"menu","aria-orientation":"vertical","data-state":Tw(N.open),"data-radix-menu-content":"",dir:T.dir,...P,...C,ref:B,style:{outline:"none",...C.style},onKeyDown:be(C.onKeyDown,ee=>{const xe=ee.target.closest("[data-radix-menu-content]")===ee.currentTarget,F=ee.ctrlKey||ee.altKey||ee.metaKey,W=ee.key.length===1;xe&&(ee.key==="Tab"&&ee.preventDefault(),!F&&W&&O(ee.key));const fe=E.current;if(ee.target!==fe||!T3.includes(ee.key))return;ee.preventDefault();const ve=k().filter(de=>!de.disabled).map(de=>de.ref.current);aw.includes(ee.key)&&ve.reverse(),X3(ve)}),onBlur:be(s.onBlur,ee=>{ee.currentTarget.contains(ee.target)||(window.clearTimeout(Y.current),G.current="")}),onPointerMove:be(s.onPointerMove,fo(ee=>{const le=ee.target,xe=ae.current!==ee.clientX;if(ee.currentTarget.contains(le)&&xe){const F=ee.clientX>ae.current?"right":"left";je.current=F,ae.current=ee.clientX}}))})})})})})})});uw.displayName=yn;var H3="MenuGroup",Ih=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s;return e.jsx(dt.div,{role:"group",...i,ref:a})});Ih.displayName=H3;var F3="MenuLabel",mw=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s;return e.jsx(dt.div,{...i,ref:a})});mw.displayName=F3;var wd="MenuItem",ay="menu.itemSelect",Wd=x.forwardRef((s,a)=>{const{disabled:l=!1,onSelect:i,...c}=s,d=x.useRef(null),m=Ao(wd,s.__scopeMenu),h=Gh(wd,s.__scopeMenu),p=Tt(a,d),v=x.useRef(!1),g=()=>{const j=d.current;if(!l&&j){const b=new CustomEvent(ay,{bubbles:!0,cancelable:!0});j.addEventListener(ay,w=>i?.(w),{once:!0}),Cy(j,b),b.defaultPrevented?v.current=!1:m.onClose()}};return e.jsx(fw,{...c,ref:p,disabled:l,onClick:be(s.onClick,g),onPointerDown:j=>{s.onPointerDown?.(j),v.current=!0},onPointerUp:be(s.onPointerUp,j=>{v.current||j.currentTarget?.click()}),onKeyDown:be(s.onKeyDown,j=>{const b=h.searchRef.current!=="";l||b&&j.key===" "||eh.includes(j.key)&&(j.currentTarget.click(),j.preventDefault())})})});Wd.displayName=wd;var fw=x.forwardRef((s,a)=>{const{__scopeMenu:l,disabled:i=!1,textValue:c,...d}=s,m=Gh(wd,l),h=rw(l),p=x.useRef(null),v=Tt(a,p),[g,j]=x.useState(!1),[b,w]=x.useState("");return x.useEffect(()=>{const S=p.current;S&&w((S.textContent??"").trim())},[d.children]),e.jsx(mo.ItemSlot,{scope:l,disabled:i,textValue:c??b,children:e.jsx(wb,{asChild:!0,...h,focusable:!i,children:e.jsx(dt.div,{role:"menuitem","data-highlighted":g?"":void 0,"aria-disabled":i||void 0,"data-disabled":i?"":void 0,...d,ref:v,onPointerMove:be(s.onPointerMove,fo(S=>{i?m.onItemLeave(S):(m.onItemEnter(S),S.defaultPrevented||S.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:be(s.onPointerLeave,fo(S=>m.onItemLeave(S))),onFocus:be(s.onFocus,()=>j(!0)),onBlur:be(s.onBlur,()=>j(!1))})})})}),Y3="MenuCheckboxItem",hw=x.forwardRef((s,a)=>{const{checked:l=!1,onCheckedChange:i,...c}=s;return e.jsx(jw,{scope:s.__scopeMenu,checked:l,children:e.jsx(Wd,{role:"menuitemcheckbox","aria-checked":Sd(l)?"mixed":l,...c,ref:a,"data-state":Kh(l),onSelect:be(c.onSelect,()=>i?.(Sd(l)?!0:!l),{checkForDefaultPrevented:!1})})})});hw.displayName=Y3;var xw="MenuRadioGroup",[q3,V3]=Ul(xw,{value:void 0,onValueChange:()=>{}}),pw=x.forwardRef((s,a)=>{const{value:l,onValueChange:i,...c}=s,d=ws(i);return e.jsx(q3,{scope:s.__scopeMenu,value:l,onValueChange:d,children:e.jsx(Ih,{...c,ref:a})})});pw.displayName=xw;var gw="MenuRadioItem",vw=x.forwardRef((s,a)=>{const{value:l,...i}=s,c=V3(gw,s.__scopeMenu),d=l===c.value;return e.jsx(jw,{scope:s.__scopeMenu,checked:d,children:e.jsx(Wd,{role:"menuitemradio","aria-checked":d,...i,ref:a,"data-state":Kh(d),onSelect:be(i.onSelect,()=>c.onValueChange?.(l),{checkForDefaultPrevented:!1})})})});vw.displayName=gw;var Wh="MenuItemIndicator",[jw,G3]=Ul(Wh,{checked:!1}),yw=x.forwardRef((s,a)=>{const{__scopeMenu:l,forceMount:i,...c}=s,d=G3(Wh,l);return e.jsx(Is,{present:i||Sd(d.checked)||d.checked===!0,children:e.jsx(dt.span,{...c,ref:a,"data-state":Kh(d.checked)})})});yw.displayName=Wh;var $3="MenuSeparator",bw=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s;return e.jsx(dt.div,{role:"separator","aria-orientation":"horizontal",...i,ref:a})});bw.displayName=$3;var I3="MenuArrow",Nw=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s,c=Oo(l);return e.jsx(xh,{...c,...i,ref:a})});Nw.displayName=I3;var Xh="MenuSub",[W3,ww]=Ul(Xh),Sw=s=>{const{__scopeMenu:a,children:l,open:i=!1,onOpenChange:c}=s,d=el(Xh,a),m=Oo(a),[h,p]=x.useState(null),[v,g]=x.useState(null),j=ws(c);return x.useEffect(()=>(d.open===!1&&j(!1),()=>j(!1)),[d.open,j]),e.jsx(Ed,{...m,children:e.jsx(iw,{scope:a,open:i,onOpenChange:j,content:v,onContentChange:g,children:e.jsx(W3,{scope:a,contentId:jn(),triggerId:jn(),trigger:h,onTriggerChange:p,children:l})})})};Sw.displayName=Xh;var eo="MenuSubTrigger",_w=x.forwardRef((s,a)=>{const l=el(eo,s.__scopeMenu),i=Ao(eo,s.__scopeMenu),c=ww(eo,s.__scopeMenu),d=Gh(eo,s.__scopeMenu),m=x.useRef(null),{pointerGraceTimerRef:h,onPointerGraceIntentChange:p}=d,v={__scopeMenu:s.__scopeMenu},g=x.useCallback(()=>{m.current&&window.clearTimeout(m.current),m.current=null},[]);return x.useEffect(()=>g,[g]),x.useEffect(()=>{const j=h.current;return()=>{window.clearTimeout(j),p(null)}},[h,p]),e.jsx(qh,{asChild:!0,...v,children:e.jsx(fw,{id:c.triggerId,"aria-haspopup":"menu","aria-expanded":l.open,"aria-controls":c.contentId,"data-state":Tw(l.open),...s,ref:Ga(a,c.onTriggerChange),onClick:j=>{s.onClick?.(j),!(s.disabled||j.defaultPrevented)&&(j.currentTarget.focus(),l.open||l.onOpenChange(!0))},onPointerMove:be(s.onPointerMove,fo(j=>{d.onItemEnter(j),!j.defaultPrevented&&!s.disabled&&!l.open&&!m.current&&(d.onPointerGraceIntentChange(null),m.current=window.setTimeout(()=>{l.onOpenChange(!0),g()},100))})),onPointerLeave:be(s.onPointerLeave,fo(j=>{g();const b=l.content?.getBoundingClientRect();if(b){const w=l.content?.dataset.side,S=w==="right",C=S?-5:5,N=b[S?"left":"right"],T=b[S?"right":"left"];d.onPointerGraceIntentChange({area:[{x:j.clientX+C,y:j.clientY},{x:N,y:b.top},{x:T,y:b.top},{x:T,y:b.bottom},{x:N,y:b.bottom}],side:w}),window.clearTimeout(h.current),h.current=window.setTimeout(()=>d.onPointerGraceIntentChange(null),300)}else{if(d.onTriggerLeave(j),j.defaultPrevented)return;d.onPointerGraceIntentChange(null)}})),onKeyDown:be(s.onKeyDown,j=>{const b=d.searchRef.current!=="";s.disabled||b&&j.key===" "||E3[i.dir].includes(j.key)&&(l.onOpenChange(!0),l.content?.focus(),j.preventDefault())})})})});_w.displayName=eo;var Cw="MenuSubContent",kw=x.forwardRef((s,a)=>{const l=cw(yn,s.__scopeMenu),{forceMount:i=l.forceMount,...c}=s,d=el(yn,s.__scopeMenu),m=Ao(yn,s.__scopeMenu),h=ww(Cw,s.__scopeMenu),p=x.useRef(null),v=Tt(a,p);return e.jsx(mo.Provider,{scope:s.__scopeMenu,children:e.jsx(Is,{present:i||d.open,children:e.jsx(mo.Slot,{scope:s.__scopeMenu,children:e.jsx($h,{id:h.contentId,"aria-labelledby":h.triggerId,...c,ref:v,align:"start",side:m.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:g=>{m.isUsingKeyboardRef.current&&p.current?.focus(),g.preventDefault()},onCloseAutoFocus:g=>g.preventDefault(),onFocusOutside:be(s.onFocusOutside,g=>{g.target!==h.trigger&&d.onOpenChange(!1)}),onEscapeKeyDown:be(s.onEscapeKeyDown,g=>{m.onClose(),g.preventDefault()}),onKeyDown:be(s.onKeyDown,g=>{const j=g.currentTarget.contains(g.target),b=M3[m.dir].includes(g.key);j&&b&&(d.onOpenChange(!1),h.trigger?.focus(),g.preventDefault())})})})})})});kw.displayName=Cw;function Tw(s){return s?"open":"closed"}function Sd(s){return s==="indeterminate"}function Kh(s){return Sd(s)?"indeterminate":s?"checked":"unchecked"}function X3(s){const a=document.activeElement;for(const l of s)if(l===a||(l.focus(),document.activeElement!==a))return}function K3(s,a){return s.map((l,i)=>s[(a+i)%s.length])}function Q3(s,a,l){const c=a.length>1&&Array.from(a).every(v=>v===a[0])?a[0]:a,d=l?s.indexOf(l):-1;let m=K3(s,Math.max(d,0));c.length===1&&(m=m.filter(v=>v!==l));const p=m.find(v=>v.toLowerCase().startsWith(c.toLowerCase()));return p!==l?p:void 0}function Z3(s,a){const{x:l,y:i}=s;let c=!1;for(let d=0,m=a.length-1;di!=b>i&&l<(j-v)*(i-g)/(b-g)+v&&(c=!c)}return c}function J3(s,a){if(!a)return!1;const l={x:s.clientX,y:s.clientY};return Z3(l,a)}function fo(s){return a=>a.pointerType==="mouse"?s(a):void 0}var e5=ow,t5=qh,s5=dw,n5=uw,a5=Ih,l5=mw,r5=Wd,i5=hw,o5=pw,c5=vw,d5=yw,u5=bw,m5=Nw,f5=Sw,h5=_w,x5=kw,Qh="ContextMenu",[p5]=Dn(Qh,[lw]),Ms=lw(),[g5,Ew]=p5(Qh),Mw=s=>{const{__scopeContextMenu:a,children:l,onOpenChange:i,dir:c,modal:d=!0}=s,[m,h]=x.useState(!1),p=Ms(a),v=ws(i),g=x.useCallback(j=>{h(j),v(j)},[v]);return e.jsx(g5,{scope:a,open:m,onOpenChange:g,modal:d,children:e.jsx(e5,{...p,dir:c,open:m,onOpenChange:g,modal:d,children:l})})};Mw.displayName=Qh;var Dw="ContextMenuTrigger",Ow=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,disabled:i=!1,...c}=s,d=Ew(Dw,l),m=Ms(l),h=x.useRef({x:0,y:0}),p=x.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...h.current})}),v=x.useRef(0),g=x.useCallback(()=>window.clearTimeout(v.current),[]),j=b=>{h.current={x:b.clientX,y:b.clientY},d.onOpenChange(!0)};return x.useEffect(()=>g,[g]),x.useEffect(()=>void(i&&g()),[i,g]),e.jsxs(e.Fragment,{children:[e.jsx(t5,{...m,virtualRef:p}),e.jsx(dt.span,{"data-state":d.open?"open":"closed","data-disabled":i?"":void 0,...c,ref:a,style:{WebkitTouchCallout:"none",...s.style},onContextMenu:i?s.onContextMenu:be(s.onContextMenu,b=>{g(),j(b),b.preventDefault()}),onPointerDown:i?s.onPointerDown:be(s.onPointerDown,ld(b=>{g(),v.current=window.setTimeout(()=>j(b),700)})),onPointerMove:i?s.onPointerMove:be(s.onPointerMove,ld(g)),onPointerCancel:i?s.onPointerCancel:be(s.onPointerCancel,ld(g)),onPointerUp:i?s.onPointerUp:be(s.onPointerUp,ld(g))})]})});Ow.displayName=Dw;var v5="ContextMenuPortal",Aw=s=>{const{__scopeContextMenu:a,...l}=s,i=Ms(a);return e.jsx(s5,{...i,...l})};Aw.displayName=v5;var Rw="ContextMenuContent",zw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ew(Rw,l),d=Ms(l),m=x.useRef(!1);return e.jsx(n5,{...d,...i,ref:a,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:h=>{s.onCloseAutoFocus?.(h),!h.defaultPrevented&&m.current&&h.preventDefault(),m.current=!1},onInteractOutside:h=>{s.onInteractOutside?.(h),!h.defaultPrevented&&!c.modal&&(m.current=!0)},style:{...s.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});zw.displayName=Rw;var j5="ContextMenuGroup",y5=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(a5,{...c,...i,ref:a})});y5.displayName=j5;var b5="ContextMenuLabel",Pw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(l5,{...c,...i,ref:a})});Pw.displayName=b5;var N5="ContextMenuItem",Lw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(r5,{...c,...i,ref:a})});Lw.displayName=N5;var w5="ContextMenuCheckboxItem",Bw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(i5,{...c,...i,ref:a})});Bw.displayName=w5;var S5="ContextMenuRadioGroup",_5=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(o5,{...c,...i,ref:a})});_5.displayName=S5;var C5="ContextMenuRadioItem",Uw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(c5,{...c,...i,ref:a})});Uw.displayName=C5;var k5="ContextMenuItemIndicator",Hw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(d5,{...c,...i,ref:a})});Hw.displayName=k5;var T5="ContextMenuSeparator",Fw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(u5,{...c,...i,ref:a})});Fw.displayName=T5;var E5="ContextMenuArrow",M5=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(m5,{...c,...i,ref:a})});M5.displayName=E5;var Yw="ContextMenuSub",qw=s=>{const{__scopeContextMenu:a,children:l,onOpenChange:i,open:c,defaultOpen:d}=s,m=Ms(a),[h,p]=Qa({prop:c,defaultProp:d??!1,onChange:i,caller:Yw});return e.jsx(f5,{...m,open:h,onOpenChange:p,children:l})};qw.displayName=Yw;var D5="ContextMenuSubTrigger",Vw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(h5,{...c,...i,ref:a})});Vw.displayName=D5;var O5="ContextMenuSubContent",Gw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(x5,{...c,...i,ref:a,style:{...s.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Gw.displayName=O5;function ld(s){return a=>a.pointerType!=="mouse"?s(a):void 0}var A5=Mw,R5=Ow,z5=Aw,$w=zw,Iw=Pw,Ww=Lw,Xw=Bw,Kw=Uw,Qw=Hw,Zw=Fw,P5=qw,Jw=Vw,e1=Gw;const L5=A5,B5=R5,U5=P5,t1=x.forwardRef(({className:s,inset:a,children:l,...i},c)=>e.jsxs(Jw,{ref:c,className:Z("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",a&&"pl-8",s),...i,children:[l,e.jsx(Al,{className:"ml-auto h-4 w-4"})]}));t1.displayName=Jw.displayName;const s1=x.forwardRef(({className:s,...a},l)=>e.jsx(e1,{ref:l,className:Z("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",s),...a}));s1.displayName=e1.displayName;const n1=x.forwardRef(({className:s,...a},l)=>e.jsx(z5,{children:e.jsx($w,{ref:l,className:Z("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",s),...a})}));n1.displayName=$w.displayName;const kn=x.forwardRef(({className:s,inset:a,...l},i)=>e.jsx(Ww,{ref:i,className:Z("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a&&"pl-8",s),...l}));kn.displayName=Ww.displayName;const H5=x.forwardRef(({className:s,children:a,checked:l,...i},c)=>e.jsxs(Xw,{ref:c,className:Z("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),checked:l,...i,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Qw,{children:e.jsx(Cl,{className:"h-4 w-4"})})}),a]}));H5.displayName=Xw.displayName;const F5=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(Kw,{ref:i,className:Z("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...l,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Qw,{children:e.jsx(G2,{className:"h-2 w-2 fill-current"})})}),a]}));F5.displayName=Kw.displayName;const Y5=x.forwardRef(({className:s,inset:a,...l},i)=>e.jsx(Iw,{ref:i,className:Z("px-2 py-1.5 text-sm font-semibold text-foreground",a&&"pl-8",s),...l}));Y5.displayName=Iw.displayName;const to=x.forwardRef(({className:s,...a},l)=>e.jsx(Zw,{ref:l,className:Z("-mx-1 my-1 h-px bg-border",s),...a}));to.displayName=Zw.displayName;const Pr=({className:s,...a})=>e.jsx("span",{className:Z("ml-auto text-xs tracking-widest text-muted-foreground",s),...a});Pr.displayName="ContextMenuShortcut";var q5=Symbol("radix.slottable");function V5(s){const a=({children:l})=>e.jsx(e.Fragment,{children:l});return a.displayName=`${s}.Slottable`,a.__radixId=q5,a}var[Xd]=Dn("Tooltip",[Wr]),Kd=Wr(),a1="TooltipProvider",G5=700,th="tooltip.open",[$5,Zh]=Xd(a1),l1=s=>{const{__scopeTooltip:a,delayDuration:l=G5,skipDelayDuration:i=300,disableHoverableContent:c=!1,children:d}=s,m=x.useRef(!0),h=x.useRef(!1),p=x.useRef(0);return x.useEffect(()=>{const v=p.current;return()=>window.clearTimeout(v)},[]),e.jsx($5,{scope:a,isOpenDelayedRef:m,delayDuration:l,onOpen:x.useCallback(()=>{window.clearTimeout(p.current),m.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>m.current=!0,i)},[i]),isPointerInTransitRef:h,onPointerInTransitChange:x.useCallback(v=>{h.current=v},[]),disableHoverableContent:c,children:d})};l1.displayName=a1;var ho="Tooltip",[I5,Ro]=Xd(ho),r1=s=>{const{__scopeTooltip:a,children:l,open:i,defaultOpen:c,onOpenChange:d,disableHoverableContent:m,delayDuration:h}=s,p=Zh(ho,s.__scopeTooltip),v=Kd(a),[g,j]=x.useState(null),b=jn(),w=x.useRef(0),S=m??p.disableHoverableContent,C=h??p.delayDuration,N=x.useRef(!1),[T,P]=Qa({prop:i,defaultProp:c??!1,onChange:E=>{E?(p.onOpen(),document.dispatchEvent(new CustomEvent(th))):p.onClose(),d?.(E)},caller:ho}),M=x.useMemo(()=>T?N.current?"delayed-open":"instant-open":"closed",[T]),k=x.useCallback(()=>{window.clearTimeout(w.current),w.current=0,N.current=!1,P(!0)},[P]),D=x.useCallback(()=>{window.clearTimeout(w.current),w.current=0,P(!1)},[P]),A=x.useCallback(()=>{window.clearTimeout(w.current),w.current=window.setTimeout(()=>{N.current=!0,P(!0),w.current=0},C)},[C,P]);return x.useEffect(()=>()=>{w.current&&(window.clearTimeout(w.current),w.current=0)},[]),e.jsx(Ed,{...v,children:e.jsx(I5,{scope:a,contentId:b,open:T,stateAttribute:M,trigger:g,onTriggerChange:j,onTriggerEnter:x.useCallback(()=>{p.isOpenDelayedRef.current?A():k()},[p.isOpenDelayedRef,A,k]),onTriggerLeave:x.useCallback(()=>{S?D():(window.clearTimeout(w.current),w.current=0)},[D,S]),onOpen:k,onClose:D,disableHoverableContent:S,children:l})})};r1.displayName=ho;var sh="TooltipTrigger",i1=x.forwardRef((s,a)=>{const{__scopeTooltip:l,...i}=s,c=Ro(sh,l),d=Zh(sh,l),m=Kd(l),h=x.useRef(null),p=Tt(a,h,c.onTriggerChange),v=x.useRef(!1),g=x.useRef(!1),j=x.useCallback(()=>v.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener("pointerup",j),[j]),e.jsx(Md,{asChild:!0,...m,children:e.jsx(dt.button,{"aria-describedby":c.open?c.contentId:void 0,"data-state":c.stateAttribute,...i,ref:p,onPointerMove:be(s.onPointerMove,b=>{b.pointerType!=="touch"&&!g.current&&!d.isPointerInTransitRef.current&&(c.onTriggerEnter(),g.current=!0)}),onPointerLeave:be(s.onPointerLeave,()=>{c.onTriggerLeave(),g.current=!1}),onPointerDown:be(s.onPointerDown,()=>{c.open&&c.onClose(),v.current=!0,document.addEventListener("pointerup",j,{once:!0})}),onFocus:be(s.onFocus,()=>{v.current||c.onOpen()}),onBlur:be(s.onBlur,c.onClose),onClick:be(s.onClick,c.onClose)})})});i1.displayName=sh;var Jh="TooltipPortal",[W5,X5]=Xd(Jh,{forceMount:void 0}),o1=s=>{const{__scopeTooltip:a,forceMount:l,children:i,container:c}=s,d=Ro(Jh,a);return e.jsx(W5,{scope:a,forceMount:l,children:e.jsx(Is,{present:l||d.open,children:e.jsx(Td,{asChild:!0,container:c,children:i})})})};o1.displayName=Jh;var Ir="TooltipContent",c1=x.forwardRef((s,a)=>{const l=X5(Ir,s.__scopeTooltip),{forceMount:i=l.forceMount,side:c="top",...d}=s,m=Ro(Ir,s.__scopeTooltip);return e.jsx(Is,{present:i||m.open,children:m.disableHoverableContent?e.jsx(d1,{side:c,...d,ref:a}):e.jsx(K5,{side:c,...d,ref:a})})}),K5=x.forwardRef((s,a)=>{const l=Ro(Ir,s.__scopeTooltip),i=Zh(Ir,s.__scopeTooltip),c=x.useRef(null),d=Tt(a,c),[m,h]=x.useState(null),{trigger:p,onClose:v}=l,g=c.current,{onPointerInTransitChange:j}=i,b=x.useCallback(()=>{h(null),j(!1)},[j]),w=x.useCallback((S,C)=>{const N=S.currentTarget,T={x:S.clientX,y:S.clientY},P=tz(T,N.getBoundingClientRect()),M=sz(T,P),k=nz(C.getBoundingClientRect()),D=lz([...M,...k]);h(D),j(!0)},[j]);return x.useEffect(()=>()=>b(),[b]),x.useEffect(()=>{if(p&&g){const S=N=>w(N,g),C=N=>w(N,p);return p.addEventListener("pointerleave",S),g.addEventListener("pointerleave",C),()=>{p.removeEventListener("pointerleave",S),g.removeEventListener("pointerleave",C)}}},[p,g,w,b]),x.useEffect(()=>{if(m){const S=C=>{const N=C.target,T={x:C.clientX,y:C.clientY},P=p?.contains(N)||g?.contains(N),M=!az(T,m);P?b():M&&(b(),v())};return document.addEventListener("pointermove",S),()=>document.removeEventListener("pointermove",S)}},[p,g,m,v,b]),e.jsx(d1,{...s,ref:d})}),[Q5,Z5]=Xd(ho,{isInside:!1}),J5=V5("TooltipContent"),d1=x.forwardRef((s,a)=>{const{__scopeTooltip:l,children:i,"aria-label":c,onEscapeKeyDown:d,onPointerDownOutside:m,...h}=s,p=Ro(Ir,l),v=Kd(l),{onClose:g}=p;return x.useEffect(()=>(document.addEventListener(th,g),()=>document.removeEventListener(th,g)),[g]),x.useEffect(()=>{if(p.trigger){const j=b=>{b.target?.contains(p.trigger)&&g()};return window.addEventListener("scroll",j,{capture:!0}),()=>window.removeEventListener("scroll",j,{capture:!0})}},[p.trigger,g]),e.jsx(fh,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:d,onPointerDownOutside:m,onFocusOutside:j=>j.preventDefault(),onDismiss:g,children:e.jsxs(hh,{"data-state":p.stateAttribute,...v,...h,ref:a,style:{...h.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[e.jsx(J5,{children:i}),e.jsx(Q5,{scope:l,isInside:!0,children:e.jsx(w2,{id:p.contentId,role:"tooltip",children:c||i})})]})})});c1.displayName=Ir;var u1="TooltipArrow",ez=x.forwardRef((s,a)=>{const{__scopeTooltip:l,...i}=s,c=Kd(l);return Z5(u1,l).isInside?null:e.jsx(xh,{...c,...i,ref:a})});ez.displayName=u1;function tz(s,a){const l=Math.abs(a.top-s.y),i=Math.abs(a.bottom-s.y),c=Math.abs(a.right-s.x),d=Math.abs(a.left-s.x);switch(Math.min(l,i,c,d)){case d:return"left";case c:return"right";case l:return"top";case i:return"bottom";default:throw new Error("unreachable")}}function sz(s,a,l=5){const i=[];switch(a){case"top":i.push({x:s.x-l,y:s.y+l},{x:s.x+l,y:s.y+l});break;case"bottom":i.push({x:s.x-l,y:s.y-l},{x:s.x+l,y:s.y-l});break;case"left":i.push({x:s.x+l,y:s.y-l},{x:s.x+l,y:s.y+l});break;case"right":i.push({x:s.x-l,y:s.y-l},{x:s.x-l,y:s.y+l});break}return i}function nz(s){const{top:a,right:l,bottom:i,left:c}=s;return[{x:c,y:a},{x:l,y:a},{x:l,y:i},{x:c,y:i}]}function az(s,a){const{x:l,y:i}=s;let c=!1;for(let d=0,m=a.length-1;di!=b>i&&l<(j-v)*(i-g)/(b-g)+v&&(c=!c)}return c}function lz(s){const a=s.slice();return a.sort((l,i)=>l.xi.x?1:l.yi.y?1:0),rz(a)}function rz(s){if(s.length<=1)return s.slice();const a=[];for(let i=0;i=2;){const d=a[a.length-1],m=a[a.length-2];if((d.x-m.x)*(c.y-m.y)>=(d.y-m.y)*(c.x-m.x))a.pop();else break}a.push(c)}a.pop();const l=[];for(let i=s.length-1;i>=0;i--){const c=s[i];for(;l.length>=2;){const d=l[l.length-1],m=l[l.length-2];if((d.x-m.x)*(c.y-m.y)>=(d.y-m.y)*(c.x-m.x))l.pop();else break}l.push(c)}return l.pop(),a.length===1&&l.length===1&&a[0].x===l[0].x&&a[0].y===l[0].y?a:a.concat(l)}var iz=l1,oz=r1,cz=i1,dz=o1,m1=c1;const uz=iz,mz=oz,fz=cz,f1=x.forwardRef(({className:s,sideOffset:a=4,...l},i)=>e.jsx(dz,{children:e.jsx(m1,{ref:i,sideOffset:a,className:Z("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",s),...l})}));f1.displayName=m1.displayName;function hz({children:s}){VE();const[a,l]=x.useState(!0),[i,c]=x.useState(!1),[d,m]=x.useState(!1),{theme:h,setTheme:p}=Oh(),v=K_(),g=qn();x.useEffect(()=>{const C=N=>{(N.metaKey||N.ctrlKey)&&N.key==="k"&&(N.preventDefault(),m(!0))};return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[]);const j=[{title:"概览",items:[{icon:fd,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:ph,label:"麦麦主程序配置",path:"/config/bot"},{icon:Dy,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:Oy,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:gh,label:"表情包管理",path:"/resource/emoji"},{icon:po,label:"表达方式管理",path:"/resource/expression"},{icon:Ay,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:pd,label:"插件市场",path:"/plugins"},{icon:$2,label:"插件配置",path:"/plugin-config"},{icon:hd,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Tn,label:"系统设置",path:"/settings"}]}],w=h==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":h,S=()=>{localStorage.removeItem("access-token"),g({to:"/auth"})};return e.jsx(uz,{delayDuration:300,children:e.jsxs("div",{className:"flex h-screen overflow-hidden",children:[e.jsxs("aside",{className:Z("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",a?"lg:w-64":"lg:w-16",i?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[e.jsx("div",{className:"flex h-16 items-center border-b px-4",children:e.jsxs("div",{className:Z("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!a&&"lg:flex-none lg:w-8"),children:[e.jsxs("div",{className:Z("flex items-baseline gap-2",!a&&"lg:hidden"),children:[e.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),e.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:yE()})]}),!a&&e.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),e.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:e.jsx("ul",{className:Z("space-y-6",!a&&"lg:space-y-3"),children:j.map((C,N)=>e.jsxs("li",{children:[e.jsx("div",{className:Z("px-3 h-[1.25rem]","mb-2",!a&&"lg:mb-1 lg:invisible"),children:e.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:C.title})}),!a&&N>0&&e.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),e.jsx("ul",{className:"space-y-1",children:C.items.map(T=>{const P=v({to:T.path}),M=T.icon,k=e.jsxs(e.Fragment,{children:[P&&e.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),e.jsxs("div",{className:Z("flex items-center transition-all duration-300",a?"gap-3":"lg:gap-0"),children:[e.jsx(M,{className:Z("h-5 w-5 flex-shrink-0",P&&"text-primary"),strokeWidth:2,fill:"none"}),e.jsx("span",{className:Z("text-sm font-medium whitespace-nowrap transition-all duration-300",P&&"font-semibold",a?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:T.label})]})]});return e.jsx("li",{className:"relative",children:e.jsxs(mz,{children:[e.jsx(fz,{asChild:!0,children:e.jsx(Q_,{to:T.path,className:Z("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",P?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",a?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>c(!1),children:k})}),!a&&e.jsx(f1,{side:"right",className:"hidden lg:block",children:e.jsx("p",{children:T.label})})]})},T.path)})})]},C.title))})})]}),i&&e.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>c(!1)}),e.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[e.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("button",{onClick:()=>c(!i),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:e.jsx(I2,{className:"h-5 w-5"})}),e.jsx("button",{onClick:()=>l(!a),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:a?"收起侧边栏":"展开侧边栏",children:e.jsx(Ol,{className:Z("h-5 w-5 transition-transform",!a&&"rotate-180")})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:()=>m(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),e.jsxs(nw,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[e.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),e.jsx(y3,{open:d,onOpenChange:m}),e.jsxs(q,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[e.jsx(W2,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),e.jsx("button",{onClick:C=>{lE(w==="dark"?"light":"dark",p,C)},className:"rounded-lg p-2 hover:bg-accent",title:w==="dark"?"切换到浅色模式":"切换到深色模式",children:w==="dark"?e.jsx(Rf,{className:"h-5 w-5"}):e.jsx(zf,{className:"h-5 w-5"})}),e.jsx("div",{className:"h-6 w-px bg-border"}),e.jsxs(q,{variant:"ghost",size:"sm",onClick:S,className:"gap-2",title:"登出系统",children:[e.jsx(sj,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),e.jsxs(L5,{children:[e.jsx(B5,{asChild:!0,children:e.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:s})}),e.jsxs(n1,{className:"w-64",children:[e.jsxs(kn,{onClick:()=>g({to:"/"}),children:[e.jsx(fd,{className:"mr-2 h-4 w-4"}),"首页"]}),e.jsxs(kn,{onClick:()=>g({to:"/settings"}),children:[e.jsx(Tn,{className:"mr-2 h-4 w-4"}),"系统设置"]}),e.jsxs(kn,{onClick:()=>g({to:"/logs"}),children:[e.jsx(hd,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),e.jsx(to,{}),e.jsxs(U5,{children:[e.jsxs(t1,{children:[e.jsx(Ty,{className:"mr-2 h-4 w-4"}),"切换主题"]}),e.jsxs(s1,{className:"w-48",children:[e.jsxs(kn,{onClick:()=>p("light"),disabled:h==="light",children:[e.jsx(Rf,{className:"mr-2 h-4 w-4"}),"浅色",h==="light"&&e.jsx(Pr,{children:"✓"})]}),e.jsxs(kn,{onClick:()=>p("dark"),disabled:h==="dark",children:[e.jsx(zf,{className:"mr-2 h-4 w-4"}),"深色",h==="dark"&&e.jsx(Pr,{children:"✓"})]}),e.jsxs(kn,{onClick:()=>p("system"),disabled:h==="system",children:[e.jsx(Tn,{className:"mr-2 h-4 w-4"}),"跟随系统",h==="system"&&e.jsx(Pr,{children:"✓"})]})]})]}),e.jsx(to,{}),e.jsxs(kn,{onClick:()=>window.location.reload(),children:[e.jsx(X2,{className:"mr-2 h-4 w-4"}),"刷新页面",e.jsx(Pr,{children:"⌘R"})]}),e.jsxs(kn,{onClick:()=>m(!0),children:[e.jsx(Gs,{className:"mr-2 h-4 w-4"}),"搜索",e.jsx(Pr,{children:"⌘K"})]}),e.jsx(to,{}),e.jsxs(kn,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[e.jsx(so,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),e.jsx(to,{}),e.jsxs(kn,{onClick:S,className:"text-destructive focus:text-destructive",children:[e.jsx(sj,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const zo=Z_({component:()=>e.jsxs(e.Fragment,{children:[e.jsx(ry,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!L0())throw e2({to:"/auth"})}}),xz=Ts({getParentRoute:()=>zo,path:"/auth",component:GE}),pz=Ts({getParentRoute:()=>zo,path:"/setup",component:d4}),an=Ts({getParentRoute:()=>zo,id:"protected",component:()=>e.jsx(hz,{children:e.jsx(ry,{})})}),gz=Ts({getParentRoute:()=>an,path:"/",component:nE}),vz=Ts({getParentRoute:()=>an,path:"/config/bot",component:tM}),jz=Ts({getParentRoute:()=>an,path:"/config/modelProvider",component:gM}),yz=Ts({getParentRoute:()=>an,path:"/config/model",component:GM}),bz=Ts({getParentRoute:()=>an,path:"/resource/emoji",component:eD}),Nz=Ts({getParentRoute:()=>an,path:"/resource/expression",component:dD}),wz=Ts({getParentRoute:()=>an,path:"/resource/person",component:bD}),Sz=Ts({getParentRoute:()=>an,path:"/logs",component:s3}),_z=Ts({getParentRoute:()=>an,path:"/plugins",component:x3}),Cz=Ts({getParentRoute:()=>an,path:"/plugin-config",component:p3}),kz=Ts({getParentRoute:()=>an,path:"/plugin-mirrors",component:g3}),Tz=Ts({getParentRoute:()=>an,path:"/settings",component:LE}),Ez=Ts({getParentRoute:()=>zo,path:"*",component:H0}),Mz=zo.addChildren([xz,pz,an.addChildren([gz,vz,jz,yz,bz,Nz,wz,_z,Cz,kz,Sz,Tz]),Ez]),Dz=J_({routeTree:Mz,defaultNotFoundComponent:H0});function Oz({children:s,defaultTheme:a="system",storageKey:l="ui-theme",...i}){const[c,d]=x.useState(()=>localStorage.getItem(l)||a);x.useEffect(()=>{const h=window.document.documentElement;if(h.classList.remove("light","dark"),c==="system"){const p=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";h.classList.add(p);return}h.classList.add(c)},[c]),x.useEffect(()=>{const h=localStorage.getItem("accent-color");if(h){const p=document.documentElement,g={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[h];g&&(p.style.setProperty("--primary",g.hsl),g.gradient?(p.style.setProperty("--primary-gradient",g.gradient),p.classList.add("has-gradient")):(p.style.removeProperty("--primary-gradient"),p.classList.remove("has-gradient")))}},[]);const m={theme:c,setTheme:h=>{localStorage.setItem(l,h),d(h)}};return e.jsx(r0.Provider,{...i,value:m,children:s})}function Az({children:s,defaultEnabled:a=!0,defaultWavesEnabled:l=!0,storageKey:i="enable-animations",wavesStorageKey:c="enable-waves-background"}){const[d,m]=x.useState(()=>{const g=localStorage.getItem(i);return g!==null?g==="true":a}),[h,p]=x.useState(()=>{const g=localStorage.getItem(c);return g!==null?g==="true":l});x.useEffect(()=>{const g=document.documentElement;d?g.classList.remove("no-animations"):g.classList.add("no-animations"),localStorage.setItem(i,String(d))},[d,i]),x.useEffect(()=>{localStorage.setItem(c,String(h))},[h,c]);const v={enableAnimations:d,setEnableAnimations:m,enableWavesBackground:h,setEnableWavesBackground:p};return e.jsx(i0.Provider,{value:v,children:s})}var ex="ToastProvider",[tx,Rz,zz]=_d("Toast"),[h1]=Dn("Toast",[zz]),[Pz,Qd]=h1(ex),x1=s=>{const{__scopeToast:a,label:l="Notification",duration:i=5e3,swipeDirection:c="right",swipeThreshold:d=50,children:m}=s,[h,p]=x.useState(null),[v,g]=x.useState(0),j=x.useRef(!1),b=x.useRef(!1);return l.trim()||console.error(`Invalid prop \`label\` supplied to \`${ex}\`. Expected non-empty \`string\`.`),e.jsx(tx.Provider,{scope:a,children:e.jsx(Pz,{scope:a,label:l,duration:i,swipeDirection:c,swipeThreshold:d,toastCount:v,viewport:h,onViewportChange:p,onToastAdd:x.useCallback(()=>g(w=>w+1),[]),onToastRemove:x.useCallback(()=>g(w=>w-1),[]),isFocusedToastEscapeKeyDownRef:j,isClosePausedRef:b,children:m})})};x1.displayName=ex;var p1="ToastViewport",Lz=["F8"],nh="toast.viewportPause",ah="toast.viewportResume",g1=x.forwardRef((s,a)=>{const{__scopeToast:l,hotkey:i=Lz,label:c="Notifications ({hotkey})",...d}=s,m=Qd(p1,l),h=Rz(l),p=x.useRef(null),v=x.useRef(null),g=x.useRef(null),j=x.useRef(null),b=Tt(a,j,m.onViewportChange),w=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),S=m.toastCount>0;x.useEffect(()=>{const N=T=>{i.length!==0&&i.every(M=>T[M]||T.code===M)&&j.current?.focus()};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)},[i]),x.useEffect(()=>{const N=p.current,T=j.current;if(S&&N&&T){const P=()=>{if(!m.isClosePausedRef.current){const A=new CustomEvent(nh);T.dispatchEvent(A),m.isClosePausedRef.current=!0}},M=()=>{if(m.isClosePausedRef.current){const A=new CustomEvent(ah);T.dispatchEvent(A),m.isClosePausedRef.current=!1}},k=A=>{!N.contains(A.relatedTarget)&&M()},D=()=>{N.contains(document.activeElement)||M()};return N.addEventListener("focusin",P),N.addEventListener("focusout",k),N.addEventListener("pointermove",P),N.addEventListener("pointerleave",D),window.addEventListener("blur",P),window.addEventListener("focus",M),()=>{N.removeEventListener("focusin",P),N.removeEventListener("focusout",k),N.removeEventListener("pointermove",P),N.removeEventListener("pointerleave",D),window.removeEventListener("blur",P),window.removeEventListener("focus",M)}}},[S,m.isClosePausedRef]);const C=x.useCallback(({tabbingDirection:N})=>{const P=h().map(M=>{const k=M.ref.current,D=[k,...Kz(k)];return N==="forwards"?D:D.reverse()});return(N==="forwards"?P.reverse():P).flat()},[h]);return x.useEffect(()=>{const N=j.current;if(N){const T=P=>{const M=P.altKey||P.ctrlKey||P.metaKey;if(P.key==="Tab"&&!M){const D=document.activeElement,A=P.shiftKey;if(P.target===N&&A){v.current?.focus();return}const Y=C({tabbingDirection:A?"backwards":"forwards"}),G=Y.findIndex($=>$===D);Mf(Y.slice(G+1))?P.preventDefault():A?v.current?.focus():g.current?.focus()}};return N.addEventListener("keydown",T),()=>N.removeEventListener("keydown",T)}},[h,C]),e.jsxs(S2,{ref:p,role:"region","aria-label":c.replace("{hotkey}",w),tabIndex:-1,style:{pointerEvents:S?void 0:"none"},children:[S&&e.jsx(lh,{ref:v,onFocusFromOutsideViewport:()=>{const N=C({tabbingDirection:"forwards"});Mf(N)}}),e.jsx(tx.Slot,{scope:l,children:e.jsx(dt.ol,{tabIndex:-1,...d,ref:b})}),S&&e.jsx(lh,{ref:g,onFocusFromOutsideViewport:()=>{const N=C({tabbingDirection:"backwards"});Mf(N)}})]})});g1.displayName=p1;var v1="ToastFocusProxy",lh=x.forwardRef((s,a)=>{const{__scopeToast:l,onFocusFromOutsideViewport:i,...c}=s,d=Qd(v1,l);return e.jsx(ky,{tabIndex:0,...c,ref:a,style:{position:"fixed"},onFocus:m=>{const h=m.relatedTarget;!d.viewport?.contains(h)&&i()}})});lh.displayName=v1;var Po="Toast",Bz="toast.swipeStart",Uz="toast.swipeMove",Hz="toast.swipeCancel",Fz="toast.swipeEnd",j1=x.forwardRef((s,a)=>{const{forceMount:l,open:i,defaultOpen:c,onOpenChange:d,...m}=s,[h,p]=Qa({prop:i,defaultProp:c??!0,onChange:d,caller:Po});return e.jsx(Is,{present:l||h,children:e.jsx(Vz,{open:h,...m,ref:a,onClose:()=>p(!1),onPause:ws(s.onPause),onResume:ws(s.onResume),onSwipeStart:be(s.onSwipeStart,v=>{v.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:be(s.onSwipeMove,v=>{const{x:g,y:j}=v.detail.delta;v.currentTarget.setAttribute("data-swipe","move"),v.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${g}px`),v.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${j}px`)}),onSwipeCancel:be(s.onSwipeCancel,v=>{v.currentTarget.setAttribute("data-swipe","cancel"),v.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),v.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),v.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),v.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:be(s.onSwipeEnd,v=>{const{x:g,y:j}=v.detail.delta;v.currentTarget.setAttribute("data-swipe","end"),v.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),v.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),v.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${g}px`),v.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${j}px`),p(!1)})})})});j1.displayName=Po;var[Yz,qz]=h1(Po,{onClose(){}}),Vz=x.forwardRef((s,a)=>{const{__scopeToast:l,type:i="foreground",duration:c,open:d,onClose:m,onEscapeKeyDown:h,onPause:p,onResume:v,onSwipeStart:g,onSwipeMove:j,onSwipeCancel:b,onSwipeEnd:w,...S}=s,C=Qd(Po,l),[N,T]=x.useState(null),P=Tt(a,ae=>T(ae)),M=x.useRef(null),k=x.useRef(null),D=c||C.duration,A=x.useRef(0),E=x.useRef(D),B=x.useRef(0),{onToastAdd:Y,onToastRemove:G}=C,$=ws(()=>{N?.contains(document.activeElement)&&C.viewport?.focus(),m()}),oe=x.useCallback(ae=>{!ae||ae===1/0||(window.clearTimeout(B.current),A.current=new Date().getTime(),B.current=window.setTimeout($,ae))},[$]);x.useEffect(()=>{const ae=C.viewport;if(ae){const me=()=>{oe(E.current),v?.()},R=()=>{const O=new Date().getTime()-A.current;E.current=E.current-O,window.clearTimeout(B.current),p?.()};return ae.addEventListener(nh,R),ae.addEventListener(ah,me),()=>{ae.removeEventListener(nh,R),ae.removeEventListener(ah,me)}}},[C.viewport,D,p,v,oe]),x.useEffect(()=>{d&&!C.isClosePausedRef.current&&oe(D)},[d,D,C.isClosePausedRef,oe]),x.useEffect(()=>(Y(),()=>G()),[Y,G]);const je=x.useMemo(()=>N?C1(N):null,[N]);return C.viewport?e.jsxs(e.Fragment,{children:[je&&e.jsx(Gz,{__scopeToast:l,role:"status","aria-live":i==="foreground"?"assertive":"polite",children:je}),e.jsx(Yz,{scope:l,onClose:$,children:t2.createPortal(e.jsx(tx.ItemSlot,{scope:l,children:e.jsx(_2,{asChild:!0,onEscapeKeyDown:be(h,()=>{C.isFocusedToastEscapeKeyDownRef.current||$(),C.isFocusedToastEscapeKeyDownRef.current=!1}),children:e.jsx(dt.li,{tabIndex:0,"data-state":d?"open":"closed","data-swipe-direction":C.swipeDirection,...S,ref:P,style:{userSelect:"none",touchAction:"none",...s.style},onKeyDown:be(s.onKeyDown,ae=>{ae.key==="Escape"&&(h?.(ae.nativeEvent),ae.nativeEvent.defaultPrevented||(C.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:be(s.onPointerDown,ae=>{ae.button===0&&(M.current={x:ae.clientX,y:ae.clientY})}),onPointerMove:be(s.onPointerMove,ae=>{if(!M.current)return;const me=ae.clientX-M.current.x,R=ae.clientY-M.current.y,O=!!k.current,L=["left","right"].includes(C.swipeDirection),ee=["left","up"].includes(C.swipeDirection)?Math.min:Math.max,le=L?ee(0,me):0,xe=L?0:ee(0,R),F=ae.pointerType==="touch"?10:2,W={x:le,y:xe},fe={originalEvent:ae,delta:W};O?(k.current=W,rd(Uz,j,fe,{discrete:!1})):ly(W,C.swipeDirection,F)?(k.current=W,rd(Bz,g,fe,{discrete:!1}),ae.target.setPointerCapture(ae.pointerId)):(Math.abs(me)>F||Math.abs(R)>F)&&(M.current=null)}),onPointerUp:be(s.onPointerUp,ae=>{const me=k.current,R=ae.target;if(R.hasPointerCapture(ae.pointerId)&&R.releasePointerCapture(ae.pointerId),k.current=null,M.current=null,me){const O=ae.currentTarget,L={originalEvent:ae,delta:me};ly(me,C.swipeDirection,C.swipeThreshold)?rd(Fz,w,L,{discrete:!0}):rd(Hz,b,L,{discrete:!0}),O.addEventListener("click",ee=>ee.preventDefault(),{once:!0})}})})})}),C.viewport)})]}):null}),Gz=s=>{const{__scopeToast:a,children:l,...i}=s,c=Qd(Po,a),[d,m]=x.useState(!1),[h,p]=x.useState(!1);return Wz(()=>m(!0)),x.useEffect(()=>{const v=window.setTimeout(()=>p(!0),1e3);return()=>window.clearTimeout(v)},[]),h?null:e.jsx(Td,{asChild:!0,children:e.jsx(ky,{...i,children:d&&e.jsxs(e.Fragment,{children:[c.label," ",l]})})})},$z="ToastTitle",y1=x.forwardRef((s,a)=>{const{__scopeToast:l,...i}=s;return e.jsx(dt.div,{...i,ref:a})});y1.displayName=$z;var Iz="ToastDescription",b1=x.forwardRef((s,a)=>{const{__scopeToast:l,...i}=s;return e.jsx(dt.div,{...i,ref:a})});b1.displayName=Iz;var N1="ToastAction",w1=x.forwardRef((s,a)=>{const{altText:l,...i}=s;return l.trim()?e.jsx(_1,{altText:l,asChild:!0,children:e.jsx(sx,{...i,ref:a})}):(console.error(`Invalid prop \`altText\` supplied to \`${N1}\`. Expected non-empty \`string\`.`),null)});w1.displayName=N1;var S1="ToastClose",sx=x.forwardRef((s,a)=>{const{__scopeToast:l,...i}=s,c=qz(S1,l);return e.jsx(_1,{asChild:!0,children:e.jsx(dt.button,{type:"button",...i,ref:a,onClick:be(s.onClick,c.onClose)})})});sx.displayName=S1;var _1=x.forwardRef((s,a)=>{const{__scopeToast:l,altText:i,...c}=s;return e.jsx(dt.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":i||void 0,...c,ref:a})});function C1(s){const a=[];return Array.from(s.childNodes).forEach(i=>{if(i.nodeType===i.TEXT_NODE&&i.textContent&&a.push(i.textContent),Xz(i)){const c=i.ariaHidden||i.hidden||i.style.display==="none",d=i.dataset.radixToastAnnounceExclude==="";if(!c)if(d){const m=i.dataset.radixToastAnnounceAlt;m&&a.push(m)}else a.push(...C1(i))}}),a}function rd(s,a,l,{discrete:i}){const c=l.originalEvent.currentTarget,d=new CustomEvent(s,{bubbles:!0,cancelable:!0,detail:l});a&&c.addEventListener(s,a,{once:!0}),i?Cy(c,d):c.dispatchEvent(d)}var ly=(s,a,l=0)=>{const i=Math.abs(s.x),c=Math.abs(s.y),d=i>c;return a==="left"||a==="right"?d&&i>l:!d&&c>l};function Wz(s=()=>{}){const a=ws(s);oy(()=>{let l=0,i=0;return l=window.requestAnimationFrame(()=>i=window.requestAnimationFrame(a)),()=>{window.cancelAnimationFrame(l),window.cancelAnimationFrame(i)}},[a])}function Xz(s){return s.nodeType===s.ELEMENT_NODE}function Kz(s){const a=[],l=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT,{acceptNode:i=>{const c=i.tagName==="INPUT"&&i.type==="hidden";return i.disabled||i.hidden||c?NodeFilter.FILTER_SKIP:i.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;l.nextNode();)a.push(l.currentNode);return a}function Mf(s){const a=document.activeElement;return s.some(l=>l===a?!0:(l.focus(),document.activeElement!==a))}var Qz=x1,k1=g1,T1=j1,E1=y1,M1=b1,D1=w1,O1=sx;const Zz=Qz,A1=x.forwardRef(({className:s,...a},l)=>e.jsx(k1,{ref:l,className:Z("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",s),...a}));A1.displayName=k1.displayName;const Jz=Jr("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),R1=x.forwardRef(({className:s,variant:a,...l},i)=>e.jsx(T1,{ref:i,className:Z(Jz({variant:a}),s),...l}));R1.displayName=T1.displayName;const e6=x.forwardRef(({className:s,...a},l)=>e.jsx(D1,{ref:l,className:Z("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",s),...a}));e6.displayName=D1.displayName;const z1=x.forwardRef(({className:s,...a},l)=>e.jsx(O1,{ref:l,className:Z("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",s),"toast-close":"",...a,children:e.jsx(go,{className:"h-4 w-4"})}));z1.displayName=O1.displayName;const P1=x.forwardRef(({className:s,...a},l)=>e.jsx(E1,{ref:l,className:Z("text-sm font-semibold [&+div]:text-xs",s),...a}));P1.displayName=E1.displayName;const L1=x.forwardRef(({className:s,...a},l)=>e.jsx(M1,{ref:l,className:Z("text-sm opacity-90",s),...a}));L1.displayName=M1.displayName;function t6(){const{toasts:s}=Es();return e.jsxs(Zz,{children:[s.map(function({id:a,title:l,description:i,action:c,...d}){return e.jsxs(R1,{...d,children:[e.jsxs("div",{className:"grid gap-1",children:[l&&e.jsx(P1,{children:l}),i&&e.jsx(L1,{children:i})]}),c,e.jsx(z1,{})]},a)}),e.jsx(A1,{})]})}eC.createRoot(document.getElementById("root")).render(e.jsx(x.StrictMode,{children:e.jsx(Oz,{defaultTheme:"system",children:e.jsxs(Az,{children:[e.jsx(s2,{router:Dz}),e.jsx(t6,{})]})})})); diff --git a/webui/dist/assets/index-_P1Qkw5e.css b/webui/dist/assets/index-_P1Qkw5e.css deleted file mode 100644 index 94c218e4..00000000 --- a/webui/dist/assets/index-_P1Qkw5e.css +++ /dev/null @@ -1 +0,0 @@ -*,: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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-orange-700:hover{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-blue-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 58 138 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-1{margin-left:.25rem}.sm\:mr-1{margin-right:.25rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} diff --git a/webui/dist/assets/react-vendor-Dtc2IqVY.js b/webui/dist/assets/react-vendor-Dtc2IqVY.js new file mode 100644 index 00000000..087b3f14 --- /dev/null +++ b/webui/dist/assets/react-vendor-Dtc2IqVY.js @@ -0,0 +1 @@ +var ce=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ae(_){return _&&_.__esModule&&Object.prototype.hasOwnProperty.call(_,"default")?_.default:_}var $={exports:{}},P={};var W;function oe(){if(W)return P;W=1;var _=Symbol.for("react.transitional.element"),O=Symbol.for("react.fragment");function v(y,E,g){var R=null;if(g!==void 0&&(R=""+g),E.key!==void 0&&(R=""+E.key),"key"in E){g={};for(var m in E)m!=="key"&&(g[m]=E[m])}else g=E;return E=g.ref,{$$typeof:_,type:y,key:R,ref:E!==void 0?E:null,props:g}}return P.Fragment=O,P.jsx=v,P.jsxs=v,P}var X;function le(){return X||(X=1,$.exports=oe()),$.exports}var k={exports:{}},n={};var F;function ie(){if(F)return n;F=1;var _=Symbol.for("react.transitional.element"),O=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),y=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),g=Symbol.for("react.consumer"),R=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),i=Symbol.for("react.suspense"),t=Symbol.for("react.memo"),c=Symbol.for("react.lazy"),S=Symbol.for("react.activity"),h=Symbol.iterator;function w(e){return e===null||typeof e!="object"?null:(e=h&&e[h]||e["@@iterator"],typeof e=="function"?e:null)}var Y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},U=Object.assign,q={};function C(e,r,o){this.props=e,this.context=r,this.refs=q,this.updater=o||Y}C.prototype.isReactComponent={},C.prototype.setState=function(e,r){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,r,"setState")},C.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function b(){}b.prototype=C.prototype;function N(e,r,o){this.props=e,this.context=r,this.refs=q,this.updater=o||Y}var j=N.prototype=new b;j.constructor=N,U(j,C.prototype),j.isPureReactComponent=!0;var G=Array.isArray;function D(){}var a={H:null,A:null,T:null,S:null},z=Object.prototype.hasOwnProperty;function L(e,r,o){var u=o.ref;return{$$typeof:_,type:e,key:r,ref:u!==void 0?u:null,props:o}}function V(e,r){return L(e.type,r,e.props)}function x(e){return typeof e=="object"&&e!==null&&e.$$typeof===_}function ee(e){var r={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(o){return r[o]})}var B=/\/+/g;function M(e,r){return typeof e=="object"&&e!==null&&e.key!=null?ee(""+e.key):r.toString(36)}function te(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(D,D):(e.status="pending",e.then(function(r){e.status==="pending"&&(e.status="fulfilled",e.value=r)},function(r){e.status==="pending"&&(e.status="rejected",e.reason=r)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function A(e,r,o,u,s){var f=typeof e;(f==="undefined"||f==="boolean")&&(e=null);var l=!1;if(e===null)l=!0;else switch(f){case"bigint":case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case _:case O:l=!0;break;case c:return l=e._init,A(l(e._payload),r,o,u,s)}}if(l)return s=s(e),l=u===""?"."+M(e,0):u,G(s)?(o="",l!=null&&(o=l.replace(B,"$&/")+"/"),A(s,r,o,"",function(ue){return ue})):s!=null&&(x(s)&&(s=V(s,o+(s.key==null||e&&e.key===s.key?"":(""+s.key).replace(B,"$&/")+"/")+l)),r.push(s)),1;l=0;var T=u===""?".":u+":";if(G(e))for(var d=0;d"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(_)}catch(O){console.error(O)}}return _(),I.exports=fe(),I.exports}export{se as a,ye as b,ce as c,ae as g,le as r}; diff --git a/webui/dist/assets/router-BWgTyY51.js b/webui/dist/assets/router-BWgTyY51.js new file mode 100644 index 00000000..78a82272 --- /dev/null +++ b/webui/dist/assets/router-BWgTyY51.js @@ -0,0 +1,2 @@ +import{r as fo,a as ee,g as Ne,b as po}from"./react-vendor-Dtc2IqVY.js";function mo(t,o){for(var e=0;es[n]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}var g=fo(),R=ee();const rt=Ne(R),hn=mo({__proto__:null,default:rt},[R]),Yt=new WeakMap,go=new WeakMap,bt={current:[]};let Nt=!1,mt=0;const pt=new Set,Pt=new Map;function Ue(t){for(const o of t){if(bt.current.includes(o))continue;bt.current.push(o),o.recompute();const e=go.get(o);if(e)for(const s of e){const n=Yt.get(s);n?.length&&Ue(n)}}}function yo(t){const o={prevVal:t.prevState,currentVal:t.state};for(const e of t.listeners)e(o)}function vo(t){const o={prevVal:t.prevState,currentVal:t.state};for(const e of t.listeners)e(o)}function Ve(t){if(mt>0&&!Pt.has(t)&&Pt.set(t,t.prevState),pt.add(t),!(mt>0)&&!Nt)try{for(Nt=!0;pt.size>0;){const o=Array.from(pt);pt.clear();for(const e of o){const s=Pt.get(e)??e.prevState;e.prevState=s,yo(e)}for(const e of o){const s=Yt.get(e);s&&(bt.current.push(e),Ue(s))}for(const e of o){const s=Yt.get(e);if(s)for(const n of s)vo(n)}}}finally{Nt=!1,bt.current=[],Pt.clear()}}function gt(t){mt++;try{t()}finally{if(mt--,mt===0){const o=pt.values().next().value;o&&Ve(o)}}}function So(t){return typeof t=="function"}class _o{constructor(o,e){this.listeners=new Set,this.subscribe=s=>{var n,r;this.listeners.add(s);const i=(r=(n=this.options)==null?void 0:n.onSubscribe)==null?void 0:r.call(n,s,this);return()=>{this.listeners.delete(s),i?.()}},this.prevState=o,this.state=o,this.options=e}setState(o){var e,s,n;this.prevState=this.state,(e=this.options)!=null&&e.updateFn?this.state=this.options.updateFn(this.prevState)(o):So(o)?this.state=o(this.prevState):this.state=o,(n=(s=this.options)==null?void 0:s.onUpdate)==null||n.call(s),Ve(this)}}const G="__TSR_index",ve="popstate",Se="beforeunload";function Ro(t){let o=t.getLocation();const e=new Set,s=i=>{o=t.getLocation(),e.forEach(c=>c({location:o,action:i}))},n=i=>{t.notifyOnIndexChange??!0?s(i):o=t.getLocation()},r=async({task:i,navigateOpts:c,...a})=>{if(c?.ignoreBlocker??!1){i();return}const u=t.getBlockers?.()??[],h=a.type==="PUSH"||a.type==="REPLACE";if(typeof document<"u"&&u.length&&h)for(const f of u){const d=Et(a.path,a.state);if(await f.blockerFn({currentLocation:o,nextLocation:d,action:a.type})){t.onBlocked?.();return}}i()};return{get location(){return o},get length(){return t.getLength()},subscribers:e,subscribe:i=>(e.add(i),()=>{e.delete(i)}),push:(i,c,a)=>{const l=o.state[G];c=_e(l+1,c),r({task:()=>{t.pushState(i,c),s({type:"PUSH"})},navigateOpts:a,type:"PUSH",path:i,state:c})},replace:(i,c,a)=>{const l=o.state[G];c=_e(l,c),r({task:()=>{t.replaceState(i,c),s({type:"REPLACE"})},navigateOpts:a,type:"REPLACE",path:i,state:c})},go:(i,c)=>{r({task:()=>{t.go(i),n({type:"GO",index:i})},navigateOpts:c,type:"GO"})},back:i=>{r({task:()=>{t.back(i?.ignoreBlocker??!1),n({type:"BACK"})},navigateOpts:i,type:"BACK"})},forward:i=>{r({task:()=>{t.forward(i?.ignoreBlocker??!1),n({type:"FORWARD"})},navigateOpts:i,type:"FORWARD"})},canGoBack:()=>o.state[G]!==0,createHref:i=>t.createHref(i),block:i=>{if(!t.setBlockers)return()=>{};const c=t.getBlockers?.()??[];return t.setBlockers([...c,i]),()=>{const a=t.getBlockers?.()??[];t.setBlockers?.(a.filter(l=>l!==i))}},flush:()=>t.flush?.(),destroy:()=>t.destroy?.(),notify:s}}function _e(t,o){o||(o={});const e=oe();return{...o,key:e,__TSR_key:e,[G]:t}}function Po(t){const o=typeof document<"u"?window:void 0,e=o.history.pushState,s=o.history.replaceState;let n=[];const r=()=>n,i=v=>n=v,c=(v=>v),a=(()=>Et(`${o.location.pathname}${o.location.search}${o.location.hash}`,o.history.state));if(!o.history.state?.__TSR_key&&!o.history.state?.key){const v=oe();o.history.replaceState({[G]:0,key:v,__TSR_key:v},"")}let l=a(),u,h=!1,f=!1,d=!1,p=!1;const m=()=>l;let y,_;const x=()=>{y&&(S._ignoreSubscribers=!0,(y.isPush?o.history.pushState:o.history.replaceState)(y.state,"",y.href),S._ignoreSubscribers=!1,y=void 0,_=void 0,u=void 0)},P=(v,C,M)=>{const T=c(C);_||(u=l),l=Et(C,M),y={href:T,state:M,isPush:y?.isPush||v==="push"},_||(_=Promise.resolve().then(()=>x()))},L=v=>{l=a(),S.notify({type:v})},E=async()=>{if(f){f=!1;return}const v=a(),C=v.state[G]-l.state[G],M=C===1,T=C===-1,I=!M&&!T||h;h=!1;const Y=I?"GO":T?"BACK":"FORWARD",D=I?{type:"GO",index:C}:{type:T?"BACK":"FORWARD"};if(d)d=!1;else{const X=r();if(typeof document<"u"&&X.length){for(const he of X)if(await he.blockerFn({currentLocation:l,nextLocation:v,action:Y})){f=!0,o.history.go(1),S.notify(D);return}}}l=a(),S.notify(D)},w=v=>{if(p){p=!1;return}let C=!1;const M=r();if(typeof document<"u"&&M.length)for(const T of M){const I=T.enableBeforeUnload??!0;if(I===!0){C=!0;break}if(typeof I=="function"&&I()===!0){C=!0;break}}if(C)return v.preventDefault(),v.returnValue=""},S=Ro({getLocation:m,getLength:()=>o.history.length,pushState:(v,C)=>P("push",v,C),replaceState:(v,C)=>P("replace",v,C),back:v=>(v&&(d=!0),p=!0,o.history.back()),forward:v=>{v&&(d=!0),p=!0,o.history.forward()},go:v=>{h=!0,o.history.go(v)},createHref:v=>c(v),flush:x,destroy:()=>{o.history.pushState=e,o.history.replaceState=s,o.removeEventListener(Se,w,{capture:!0}),o.removeEventListener(ve,E)},onBlocked:()=>{u&&l!==u&&(l=u)},getBlockers:r,setBlockers:i,notifyOnIndexChange:!1});return o.addEventListener(Se,w,{capture:!0}),o.addEventListener(ve,E),o.history.pushState=function(...v){const C=e.apply(o.history,v);return S._ignoreSubscribers||L("PUSH"),C},o.history.replaceState=function(...v){const C=s.apply(o.history,v);return S._ignoreSubscribers||L("REPLACE"),C},S}function Et(t,o){const e=t.indexOf("#"),s=t.indexOf("?"),n=oe();return{href:t,pathname:t.substring(0,e>0?s>0?Math.min(e,s):e:s>0?s:t.length),hash:e>-1?t.substring(e):"",search:s>-1?t.slice(s,e===-1?void 0:e):"",state:o||{[G]:0,key:n,__TSR_key:n}}}function oe(){return(Math.random()+1).toString(36).substring(7)}function Xt(t){return t[t.length-1]}function wo(t){return typeof t=="function"}function Q(t,o){return wo(t)?t(o):t}const xo=Object.prototype.hasOwnProperty;function B(t,o){if(t===o)return t;const e=o,s=we(t)&&we(e);if(!s&&!(Tt(t)&&Tt(e)))return e;const n=s?t:Re(t);if(!n)return e;const r=s?e:Re(e);if(!r)return e;const i=n.length,c=r.length,a=s?new Array(c):{};let l=0;for(let u=0;u"u")return!0;const e=o.prototype;return!(!Pe(e)||!e.hasOwnProperty("isPrototypeOf"))}function Pe(t){return Object.prototype.toString.call(t)==="[object Object]"}function we(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function tt(t,o,e){if(t===o)return!0;if(typeof t!=typeof o)return!1;if(Array.isArray(t)&&Array.isArray(o)){if(t.length!==o.length)return!1;for(let s=0,n=t.length;sn||!tt(t[i],o[i],e)))return!1;return n===r}return!1}function it(t){let o,e;const s=new Promise((n,r)=>{o=n,e=r});return s.status="pending",s.resolve=n=>{s.status="resolved",s.value=n,o(n),t?.(n)},s.reject=n=>{s.status="rejected",e(n)},s}function q(t){return!!(t&&typeof t=="object"&&typeof t.then=="function")}const Lo=Array.from(new Map([["%","%25"],["\\","%5C"]]).values());function xe(t,o=Lo){function e(n,r,i=0){for(let c=i;c{try{return decodeURI(c)}catch{return c}})}}if(t===""||!/%[0-9A-Fa-f]{2}/g.test(t))return t;const s=t.replaceAll(/%[0-9a-f]{2}/g,n=>n.toUpperCase());return e(s,o)}var Co="Invariant failed";function K(t,o){if(!t)throw new Error(Co)}const U=0,ot=1,at=2,ct=3;function z(t){return se(t.filter(o=>o!==void 0).join("/"))}function se(t){return t.replace(/\/{2,}/g,"/")}function ne(t){return t==="/"?t:t.replace(/^\/{1,}/,"")}function J(t){return t==="/"?t:t.replace(/\/{1,}$/,"")}function Ct(t){return J(ne(t))}function It(t,o){return t?.endsWith("/")&&t!=="/"&&t!==`${o}/`?t.slice(0,-1):t}function Mo(t,o,e){return It(t,e)===It(o,e)}function bo(t){const{type:o,value:e}=t;if(o===U)return e;const{prefixSegment:s,suffixSegment:n}=t;if(o===ot){const r=e.substring(1);if(s&&n)return`${s}{$${r}}${n}`;if(s)return`${s}{$${r}}`;if(n)return`{$${r}}${n}`}if(o===ct){const r=e.substring(1);return s&&n?`${s}{-$${r}}${n}`:s?`${s}{-$${r}}`:n?`{-$${r}}${n}`:`{-$${r}}`}if(o===at){if(s&&n)return`${s}{$}${n}`;if(s)return`${s}{$}`;if(n)return`{$}${n}`}return e}function Eo({base:t,to:o,trailingSlash:e="never",parseCache:s}){let n=ut(t,s).slice();const r=ut(o,s);n.length>1&&Xt(n)?.value==="/"&&n.pop();for(let a=0,l=r.length;a1&&(Xt(n).value==="/"?e==="never"&&n.pop():e==="always"&&n.push({type:U,value:"/"}));const i=n.map(bo);return z(i)}const ut=(t,o)=>{if(!t)return[];const e=o?.get(t);if(e)return e;const s=Ao(t);return o?.set(t,s),s},To=/^\$.{1,}$/,Io=/^(.*?)\{(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,ko=/^(.*?)\{-(\$[a-zA-Z_$][a-zA-Z0-9_$]*)\}(.*)$/,Oo=/^\$$/,Fo=/^(.*?)\{\$\}(.*)$/;function Ao(t){t=se(t);const o=[];if(t.slice(0,1)==="/"&&(t=t.substring(1),o.push({type:U,value:"/"})),!t)return o;const e=t.split("/").filter(Boolean);return o.push(...e.map(s=>{const n=s.match(Fo);if(n){const c=n[1],a=n[2];return{type:at,value:"$",prefixSegment:c||void 0,suffixSegment:a||void 0}}const r=s.match(ko);if(r){const c=r[1],a=r[2],l=r[3];return{type:ct,value:a,prefixSegment:c||void 0,suffixSegment:l||void 0}}const i=s.match(Io);if(i){const c=i[1],a=i[2],l=i[3];return{type:ot,value:""+a,prefixSegment:c||void 0,suffixSegment:l||void 0}}if(To.test(s)){const c=s.substring(1);return{type:ot,value:"$"+c,prefixSegment:void 0,suffixSegment:void 0}}return Oo.test(s)?{type:at,value:"$",prefixSegment:void 0,suffixSegment:void 0}:{type:U,value:s}})),t.slice(-1)==="/"&&(t=t.substring(1),o.push({type:U,value:"/"})),o}function Ut({path:t,params:o,decodeCharMap:e,parseCache:s}){const n=ut(t,s);function r(l){const u=o[l],h=typeof u=="string";return l==="*"||l==="_splat"?h?encodeURI(u):u:h?Bo(u,e):u}let i=!1;const c={},a=z(n.map(l=>{if(l.type===U)return l.value;if(l.type===at){c._splat=o._splat,c["*"]=o._splat;const u=l.prefixSegment||"",h=l.suffixSegment||"";if(!o._splat)return i=!0,u||h?`${u}${h}`:void 0;const f=r("_splat");return`${u}${f}${h}`}if(l.type===ot){const u=l.value.substring(1);!i&&!(u in o)&&(i=!0),c[u]=o[u];const h=l.prefixSegment||"",f=l.suffixSegment||"";return`${h}${r(u)??"undefined"}${f}`}if(l.type===ct){const u=l.value.substring(1),h=l.prefixSegment||"",f=l.suffixSegment||"";return!(u in o)||o[u]==null?h||f?`${h}${f}`:void 0:(c[u]=o[u],`${h}${r(u)??""}${f}`)}return l.value}));return{usedParams:c,interpolatedPath:a,isMissingParams:i}}function Bo(t,o){let e=encodeURIComponent(t);if(o)for(const[s,n]of o)e=e.replaceAll(s,n);return e}function Zt(t,o,e){const s=Do(t,o,e);if(!(o.to&&!s))return s??{}}function Do(t,{to:o,fuzzy:e,caseSensitive:s},n){const r=o,i=ut(t.startsWith("/")?t:`/${t}`,n),c=ut(r.startsWith("/")?r:`/${r}`,n),a={};return $o(i,c,a,e,s)?a:void 0}function $o(t,o,e,s,n){let r=0,i=0;for(;rm.value)));h&&p.startsWith(h)&&(p=p.slice(h.length)),f&&p.endsWith(f)&&(p=p.slice(0,p.length-f.length)),u=p}else u=decodeURI(z(l.map(h=>h.value)));return e["*"]=u,e._splat=u,!0}if(a.type===U){if(a.value==="/"&&!c?.value){i++;continue}if(c){if(n){if(a.value!==c.value)return!1}else if(a.value.toLowerCase()!==c.value.toLowerCase())return!1;r++,i++;continue}else return!1}if(a.type===ot){if(!c||c.value==="/")return!1;let l="",u=!1;if(a.prefixSegment||a.suffixSegment){const h=a.prefixSegment||"",f=a.suffixSegment||"",d=c.value;if(h&&!d.startsWith(h)||f&&!d.endsWith(f))return!1;let p=d;h&&p.startsWith(h)&&(p=p.slice(h.length)),f&&p.endsWith(f)&&(p=p.slice(0,p.length-f.length)),l=decodeURIComponent(p),u=!0}else l=decodeURIComponent(c.value),u=!0;u&&(e[a.value.substring(1)]=l,r++),i++;continue}if(a.type===ct){if(!c){i++;continue}if(c.value==="/"){i++;continue}let l="",u=!1;if(a.prefixSegment||a.suffixSegment){const h=a.prefixSegment||"",f=a.suffixSegment||"",d=c.value;if((!h||d.startsWith(h))&&(!f||d.endsWith(f))){let p=d;h&&p.startsWith(h)&&(p=p.slice(h.length)),f&&p.endsWith(f)&&(p=p.slice(0,p.length-f.length)),l=decodeURIComponent(p),u=!0}}else{let h=!0;for(let f=i+1;f=o.length)return e["**"]=z(t.slice(r).map(l=>l.value)),!!s&&o[o.length-1]?.value!=="/";if(i=t.length){for(let l=i;l{if(s.isRoot||!s.path)return;const r=ne(s.fullPath);let i=ut(r),c=0;for(;i.length>c+1&&i[c]?.value==="/";)c++;c>0&&(i=i.slice(c));let a=0,l=!1;const u=i.map((h,f)=>{if(h.value==="/")return jo;if(h.type===U)return No;let d;h.type===ot?d=Uo:h.type===ct?(d=Vo,a++):d=Wo;for(let p=f+1;p{const r=Math.min(s.scores.length,n.scores.length);for(let i=0;in.parsed[i].value?1:-1;return s.index-n.index}).map((s,n)=>(s.child.rank=n,s.child))}function Jo({routeTree:t,initRoute:o}){const e={},s={},n=i=>{i.forEach((c,a)=>{o?.(c,a);const l=e[c.id];if(K(!l,`Duplicate routes found with id: ${String(c.id)}`),e[c.id]=c,!c.isRoot&&c.path){const h=J(c.fullPath);(!s[h]||c.fullPath.endsWith("/"))&&(s[h]=c)}const u=c.children;u?.length&&n(u)})};n([t]);const r=qo(Object.values(e));return{routesById:e,routesByPath:s,flatRoutes:r}}function j(t){return!!t?.isNotFound}function Yo(){try{if(typeof window<"u"&&typeof window.sessionStorage=="object")return window.sessionStorage}catch{}}const kt="tsr-scroll-restoration-v1_3",Xo=(t,o)=>{let e;return(...s)=>{e||(e=setTimeout(()=>{t(...s),e=null},o))}};function Zo(){const t=Yo();if(!t)return null;const o=t.getItem(kt);let e=o?JSON.parse(o):{};return{state:e,set:s=>(e=Q(s,e)||e,t.setItem(kt,JSON.stringify(e)))}}const wt=Zo(),Qt=t=>t.state.__TSR_key||t.href;function Qo(t){const o=[];let e;for(;e=t.parentNode;)o.push(`${t.tagName}:nth-child(${Array.prototype.indexOf.call(e.children,t)+1})`),t=e;return`${o.reverse().join(" > ")}`.toLowerCase()}let Ot=!1;function We({storageKey:t,key:o,behavior:e,shouldScrollRestoration:s,scrollToTopSelectors:n,location:r}){let i;try{i=JSON.parse(sessionStorage.getItem(t)||"{}")}catch(l){console.error(l);return}const c=o||window.history.state?.__TSR_key,a=i[c];Ot=!0;t:{if(s&&a&&Object.keys(a).length>0){for(const h in a){const f=a[h];if(h==="window")window.scrollTo({top:f.scrollY,left:f.scrollX,behavior:e});else if(h){const d=document.querySelector(h);d&&(d.scrollLeft=f.scrollX,d.scrollTop=f.scrollY)}}break t}const l=(r??window.location).hash.split("#",2)[1];if(l){const h=window.history.state?.__hashScrollIntoViewOptions??!0;if(h){const f=document.getElementById(l);f&&f.scrollIntoView(h)}break t}const u={top:0,left:0,behavior:e};if(window.scrollTo(u),n)for(const h of n){if(h==="window")continue;const f=typeof h=="function"?h():document.querySelector(h);f&&f.scrollTo(u)}}Ot=!1}function ts(t,o){if(!wt&&!t.isServer||((t.options.scrollRestoration??!1)&&(t.isScrollRestoring=!0),t.isServer||t.isScrollRestorationSetup||!wt))return;t.isScrollRestorationSetup=!0,Ot=!1;const s=t.options.getScrollRestorationKey||Qt;window.history.scrollRestoration="manual";const n=r=>{if(Ot||!t.isScrollRestoring)return;let i="";if(r.target===document||r.target===window)i="window";else{const a=r.target.getAttribute("data-scroll-restoration-id");a?i=`[data-scroll-restoration-id="${a}"]`:i=Qo(r.target)}const c=s(t.state.location);wt.set(a=>{const l=a[c]||={},u=l[i]||={};if(i==="window")u.scrollX=window.scrollX||0,u.scrollY=window.scrollY||0;else if(i){const h=document.querySelector(i);h&&(u.scrollX=h.scrollLeft||0,u.scrollY=h.scrollTop||0)}return a})};typeof document<"u"&&document.addEventListener("scroll",Xo(n,100),!0),t.subscribe("onRendered",r=>{const i=s(r.toLocation);if(!t.resetNextScroll){t.resetNextScroll=!0;return}typeof t.options.scrollRestoration=="function"&&!t.options.scrollRestoration({location:t.latestLocation})||(We({storageKey:kt,key:i,behavior:t.options.scrollRestorationBehavior,shouldScrollRestoration:t.isScrollRestoring,scrollToTopSelectors:t.options.scrollToTopSelectors,location:t.history.location}),t.isScrollRestoring&&wt.set(c=>(c[i]||={},c)))})}function es(t){if(typeof document<"u"&&document.querySelector){const o=t.state.location.state.__hashScrollIntoViewOptions??!0;if(o&&t.state.location.hash!==""){const e=document.getElementById(t.state.location.hash);e&&e.scrollIntoView(o)}}}function os(t,o=String){const e=new URLSearchParams;for(const s in t){const n=t[s];n!==void 0&&e.set(s,o(n))}return e.toString()}function Vt(t){return t?t==="false"?!1:t==="true"?!0:+t*0===0&&+t+""===t?+t:t:""}function ss(t){const o=new URLSearchParams(t),e={};for(const[s,n]of o.entries()){const r=e[s];r==null?e[s]=Vt(n):Array.isArray(r)?r.push(Vt(n)):e[s]=[r,Vt(n)]}return e}const ns=is(JSON.parse),rs=as(JSON.stringify,JSON.parse);function is(t){return o=>{o[0]==="?"&&(o=o.substring(1));const e=ss(o);for(const s in e){const n=e[s];if(typeof n=="string")try{e[s]=t(n)}catch{}}return e}}function as(t,o){const e=typeof o=="function";function s(n){if(typeof n=="object"&&n!==null)try{return t(n)}catch{}else if(e&&typeof n=="string")try{return o(n),t(n)}catch{}return n}return n=>{const r=os(n,s);return r?`?${r}`:""}}const A="__root__";function cs(t){if(t.statusCode=t.statusCode||t.code||307,!t.reloadDocument&&typeof t.href=="string")try{new URL(t.href),t.reloadDocument=!0}catch{}const o=new Headers(t.headers);t.href&&o.get("Location")===null&&o.set("Location",t.href);const e=new Response(null,{status:t.statusCode,headers:o});if(e.options=t,t.throw)throw e;return e}function N(t){return t instanceof Response&&!!t.options}function us(t){const o=new Map;let e,s;const n=r=>{r.next&&(r.prev?(r.prev.next=r.next,r.next.prev=r.prev,r.next=void 0,s&&(s.next=r,r.prev=s)):(r.next.prev=void 0,e=r.next,r.next=void 0,s&&(r.prev=s,s.next=r)),s=r)};return{get(r){const i=o.get(r);if(i)return n(i),i.value},set(r,i){if(o.size>=t&&e){const a=e;o.delete(a.key),a.next&&(e=a.next,a.next.prev=void 0),a===s&&(s=void 0)}const c=o.get(r);if(c)c.value=i,n(c);else{const a={key:r,value:i,prev:s};s&&(s.next=a),s=a,e||(e=a),o.set(r,a)}}}}const Mt=t=>{if(!t.rendered)return t.rendered=!0,t.onReady?.()},At=(t,o)=>!!(t.preload&&!t.router.state.matches.some(e=>e.id===o)),ze=(t,o)=>{const e=t.router.routesById[o.routeId??""]??t.router.routeTree;!e.options.notFoundComponent&&t.router.options?.defaultNotFoundComponent&&(e.options.notFoundComponent=t.router.options.defaultNotFoundComponent),K(e.options.notFoundComponent);const s=t.matches.find(n=>n.routeId===e.id);K(s,"Could not find match for route: "+e.id),t.updateMatch(s.id,n=>({...n,status:"notFound",error:o,isFetching:!1})),o.routerCode==="BEFORE_LOAD"&&e.parentRoute&&(o.routeId=e.parentRoute.id,ze(t,o))},H=(t,o,e)=>{if(!(!N(e)&&!j(e))){if(N(e)&&e.redirectHandled&&!e.options.reloadDocument)throw e;if(o){o._nonReactive.beforeLoadPromise?.resolve(),o._nonReactive.loaderPromise?.resolve(),o._nonReactive.beforeLoadPromise=void 0,o._nonReactive.loaderPromise=void 0;const s=N(e)?"redirected":"notFound";o._nonReactive.error=e,t.updateMatch(o.id,n=>({...n,status:s,isFetching:!1,error:e})),j(e)&&!e.routeId&&(e.routeId=o.routeId),o._nonReactive.loadPromise?.resolve()}throw N(e)?(t.rendered=!0,e.options._fromLocation=t.location,e.redirectHandled=!0,e=t.router.resolveRedirect(e),e):(ze(t,e),e)}},Ke=(t,o)=>{const e=t.router.getMatch(o);return!!(!t.router.isServer&&e._nonReactive.dehydrated||t.router.isServer&&e.ssr===!1)},ht=(t,o,e,s)=>{const{id:n,routeId:r}=t.matches[o],i=t.router.looseRoutesById[r];if(e instanceof Promise)throw e;e.routerCode=s,t.firstBadMatchIndex??=o,H(t,t.router.getMatch(n),e);try{i.options.onError?.(e)}catch(c){e=c,H(t,t.router.getMatch(n),e)}t.updateMatch(n,c=>(c._nonReactive.beforeLoadPromise?.resolve(),c._nonReactive.beforeLoadPromise=void 0,c._nonReactive.loadPromise?.resolve(),{...c,error:e,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController}))},ls=(t,o,e,s)=>{const n=t.router.getMatch(o),r=t.matches[e-1]?.id,i=r?t.router.getMatch(r):void 0;if(t.router.isShell()){n.ssr=s.id===A;return}if(i?.ssr===!1){n.ssr=!1;return}const c=d=>d===!0&&i?.ssr==="data-only"?"data-only":d,a=t.router.options.defaultSsr??!0;if(s.options.ssr===void 0){n.ssr=c(a);return}if(typeof s.options.ssr!="function"){n.ssr=c(s.options.ssr);return}const{search:l,params:u}=n,h={search:xt(l,n.searchError),params:xt(u,n.paramsError),location:t.location,matches:t.matches.map(d=>({index:d.index,pathname:d.pathname,fullPath:d.fullPath,staticData:d.staticData,id:d.id,routeId:d.routeId,search:xt(d.search,d.searchError),params:xt(d.params,d.paramsError),ssr:d.ssr}))},f=s.options.ssr(h);if(q(f))return f.then(d=>{n.ssr=c(d??a)});n.ssr=c(f??a)},He=(t,o,e,s)=>{if(s._nonReactive.pendingTimeout!==void 0)return;const n=e.options.pendingMs??t.router.options.defaultPendingMs;if(!!(t.onReady&&!t.router.isServer&&!At(t,o)&&(e.options.loader||e.options.beforeLoad||Je(e))&&typeof n=="number"&&n!==1/0&&(e.options.pendingComponent??t.router.options?.defaultPendingComponent))){const i=setTimeout(()=>{Mt(t)},n);s._nonReactive.pendingTimeout=i}},hs=(t,o,e)=>{const s=t.router.getMatch(o);if(!s._nonReactive.beforeLoadPromise&&!s._nonReactive.loaderPromise)return;He(t,o,e,s);const n=()=>{const r=t.router.getMatch(o);r.preload&&(r.status==="redirected"||r.status==="notFound")&&H(t,r,r.error)};return s._nonReactive.beforeLoadPromise?s._nonReactive.beforeLoadPromise.then(n):n()},fs=(t,o,e,s)=>{const n=t.router.getMatch(o),r=n._nonReactive.loadPromise;n._nonReactive.loadPromise=it(()=>{r?.resolve()});const{paramsError:i,searchError:c}=n;i&&ht(t,e,i,"PARSE_PARAMS"),c&&ht(t,e,c,"VALIDATE_SEARCH"),He(t,o,s,n);const a=new AbortController,l=t.matches[e-1]?.id,f={...(l?t.router.getMatch(l):void 0)?.context??t.router.options.context??void 0,...n.__routeContext};let d=!1;const p=()=>{d||(d=!0,t.updateMatch(o,S=>({...S,isFetching:"beforeLoad",fetchCount:S.fetchCount+1,abortController:a,context:f})))},m=()=>{n._nonReactive.beforeLoadPromise?.resolve(),n._nonReactive.beforeLoadPromise=void 0,t.updateMatch(o,S=>({...S,isFetching:!1}))};if(!s.options.beforeLoad){gt(()=>{p(),m()});return}n._nonReactive.beforeLoadPromise=it();const{search:y,params:_,cause:x}=n,P=At(t,o),L={search:y,abortController:a,params:_,preload:P,context:f,location:t.location,navigate:S=>t.router.navigate({...S,_fromLocation:t.location}),buildLocation:t.router.buildLocation,cause:P?"preload":x,matches:t.matches,...t.router.options.additionalContext},E=S=>{if(S===void 0){gt(()=>{p(),m()});return}(N(S)||j(S))&&(p(),ht(t,e,S,"BEFORE_LOAD")),gt(()=>{p(),t.updateMatch(o,v=>({...v,__beforeLoadContext:S,context:{...v.context,...S}})),m()})};let w;try{if(w=s.options.beforeLoad(L),q(w))return p(),w.catch(S=>{ht(t,e,S,"BEFORE_LOAD")}).then(E)}catch(S){p(),ht(t,e,S,"BEFORE_LOAD")}E(w)},ds=(t,o)=>{const{id:e,routeId:s}=t.matches[o],n=t.router.looseRoutesById[s],r=()=>{if(t.router.isServer){const a=ls(t,e,o,n);if(q(a))return a.then(c)}return c()},i=()=>fs(t,e,o,n),c=()=>{if(Ke(t,e))return;const a=hs(t,e,n);return q(a)?a.then(i):i()};return r()},yt=(t,o,e)=>{const s=t.router.getMatch(o);if(!s||!e.options.head&&!e.options.scripts&&!e.options.headers)return;const n={matches:t.matches,match:s,params:s.params,loaderData:s.loaderData};return Promise.all([e.options.head?.(n),e.options.scripts?.(n),e.options.headers?.(n)]).then(([r,i,c])=>{const a=r?.meta,l=r?.links,u=r?.scripts,h=r?.styles;return{meta:a,links:l,headScripts:u,headers:c,scripts:i,styles:h}})},Ge=(t,o,e,s)=>{const n=t.matchPromises[e-1],{params:r,loaderDeps:i,abortController:c,cause:a}=t.router.getMatch(o);let l=t.router.options.context??{};for(let h=0;h<=e;h++){const f=t.matches[h];if(!f)continue;const d=t.router.getMatch(f.id);d&&(l={...l,...d.__routeContext??{},...d.__beforeLoadContext??{}})}const u=At(t,o);return{params:r,deps:i,preload:!!u,parentMatchPromise:n,abortController:c,context:l,location:t.location,navigate:h=>t.router.navigate({...h,_fromLocation:t.location}),cause:u?"preload":a,route:s,...t.router.options.additionalContext}},be=async(t,o,e,s)=>{try{const n=t.router.getMatch(o);try{(!t.router.isServer||n.ssr===!0)&&qe(s);const r=s.options.loader?.(Ge(t,o,e,s)),i=s.options.loader&&q(r);if(!!(i||s._lazyPromise||s._componentsPromise||s.options.head||s.options.scripts||s.options.headers||n._nonReactive.minPendingPromise)&&t.updateMatch(o,h=>({...h,isFetching:"loader"})),s.options.loader){const h=i?await r:r;H(t,t.router.getMatch(o),h),h!==void 0&&t.updateMatch(o,f=>({...f,loaderData:h}))}s._lazyPromise&&await s._lazyPromise;const a=yt(t,o,s),l=a?await a:void 0,u=n._nonReactive.minPendingPromise;u&&await u,s._componentsPromise&&await s._componentsPromise,t.updateMatch(o,h=>({...h,error:void 0,status:"success",isFetching:!1,updatedAt:Date.now(),...l}))}catch(r){let i=r;const c=n._nonReactive.minPendingPromise;c&&await c,j(r)&&await s.options.notFoundComponent?.preload?.(),H(t,t.router.getMatch(o),r);try{s.options.onError?.(r)}catch(u){i=u,H(t,t.router.getMatch(o),u)}const a=yt(t,o,s),l=a?await a:void 0;t.updateMatch(o,u=>({...u,error:i,status:"error",isFetching:!1,...l}))}}catch(n){const r=t.router.getMatch(o);if(r){const i=yt(t,o,s);if(i){const c=await i;t.updateMatch(o,a=>({...a,...c}))}r._nonReactive.loaderPromise=void 0}H(t,r,n)}},ps=async(t,o)=>{const{id:e,routeId:s}=t.matches[o];let n=!1,r=!1;const i=t.router.looseRoutesById[s];if(Ke(t,e)){if(t.router.isServer){const l=yt(t,e,i);if(l){const u=await l;t.updateMatch(e,h=>({...h,...u}))}return t.router.getMatch(e)}}else{const l=t.router.getMatch(e);if(l._nonReactive.loaderPromise){if(l.status==="success"&&!t.sync&&!l.preload)return l;await l._nonReactive.loaderPromise;const u=t.router.getMatch(e),h=u._nonReactive.error||u.error;h&&H(t,u,h)}else{const u=Date.now()-l.updatedAt,h=At(t,e),f=h?i.options.preloadStaleTime??t.router.options.defaultPreloadStaleTime??3e4:i.options.staleTime??t.router.options.defaultStaleTime??0,d=i.options.shouldReload,p=typeof d=="function"?d(Ge(t,e,o,i)):d,m=!!h&&!t.router.state.matches.some(P=>P.id===e),y=t.router.getMatch(e);y._nonReactive.loaderPromise=it(),m!==y.preload&&t.updateMatch(e,P=>({...P,preload:m}));const{status:_,invalid:x}=y;if(n=_==="success"&&(x||(p??u>f)),!(h&&i.options.preload===!1))if(n&&!t.sync)r=!0,(async()=>{try{await be(t,e,o,i);const P=t.router.getMatch(e);P._nonReactive.loaderPromise?.resolve(),P._nonReactive.loadPromise?.resolve(),P._nonReactive.loaderPromise=void 0}catch(P){N(P)&&await t.router.navigate(P.options)}})();else if(_!=="success"||n&&t.sync)await be(t,e,o,i);else{const P=yt(t,e,i);if(P){const L=await P;t.updateMatch(e,E=>({...E,...L}))}}}}const c=t.router.getMatch(e);r||(c._nonReactive.loaderPromise?.resolve(),c._nonReactive.loadPromise?.resolve()),clearTimeout(c._nonReactive.pendingTimeout),c._nonReactive.pendingTimeout=void 0,r||(c._nonReactive.loaderPromise=void 0),c._nonReactive.dehydrated=void 0;const a=r?c.isFetching:!1;return a!==c.isFetching||c.invalid!==!1?(t.updateMatch(e,l=>({...l,isFetching:a,invalid:!1})),t.router.getMatch(e)):c};async function Ee(t){const o=Object.assign(t,{matchPromises:[]});!o.router.isServer&&o.router.state.matches.some(e=>e._forcePending)&&Mt(o);try{for(let n=0;n{const{id:e,...s}=o.options;Object.assign(t.options,s),t._lazyLoaded=!0,t._lazyPromise=void 0}):t._lazyLoaded=!0),!t._componentsLoaded&&t._componentsPromise===void 0){const o=()=>{const e=[];for(const s of Ye){const n=t.options[s]?.preload;n&&e.push(n())}if(e.length)return Promise.all(e).then(()=>{t._componentsLoaded=!0,t._componentsPromise=void 0});t._componentsLoaded=!0,t._componentsPromise=void 0};t._componentsPromise=t._lazyPromise?t._lazyPromise.then(o):o()}return t._componentsPromise}function xt(t,o){return o?{status:"error",error:o}:{status:"success",value:t}}function Je(t){for(const o of Ye)if(t.options[o]?.preload)return!0;return!1}const Ye=["component","errorComponent","pendingComponent","notFoundComponent"];function ms(t){return{input:({url:o})=>{for(const e of t)o=Xe(e,o);return o},output:({url:o})=>{for(let e=t.length-1;e>=0;e--)o=Ze(t[e],o);return o}}}function gs(t){const o=Ct(t.basepath),e=`/${o}`,s=`${e}/`,n=t.caseSensitive?e:e.toLowerCase(),r=t.caseSensitive?s:s.toLowerCase();return{input:({url:i})=>{const c=t.caseSensitive?i.pathname:i.pathname.toLowerCase();return c===n?i.pathname="/":c.startsWith(r)&&(i.pathname=i.pathname.slice(e.length)),i},output:({url:i})=>(i.pathname=z(["/",o,i.pathname]),i)}}function Xe(t,o){const e=t?.input?.({url:o});if(e){if(typeof e=="string")return new URL(e);if(e instanceof URL)return e}return o}function Ze(t,o){const e=t?.output?.({url:o});if(e){if(typeof e=="string")return new URL(e);if(e instanceof URL)return e}return o}function et(t){const o=t.resolvedLocation,e=t.location,s=o?.pathname!==e.pathname,n=o?.href!==e.href,r=o?.hash!==e.hash;return{fromLocation:o,toLocation:e,pathChanged:s,hrefChanged:n,hashChanged:r}}class ys{constructor(o){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this.resetNextScroll=!0,this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.isScrollRestoring=!1,this.isScrollRestorationSetup=!1,this.startTransition=e=>e(),this.update=e=>{e.notFoundRoute&&console.warn("The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.");const s=this.options,n=this.basepath??s?.basepath??"/",r=this.basepath===void 0,i=s?.rewrite;this.options={...s,...e},this.isServer=this.options.isServer??typeof document>"u",this.pathParamsDecodeCharMap=this.options.pathParamsAllowedCharacters?new Map(this.options.pathParamsAllowedCharacters.map(f=>[encodeURIComponent(f),f])):void 0,(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.isServer||(this.history=Po())),this.origin=this.options.origin,this.origin||(!this.isServer&&window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree&&(this.routeTree=this.options.routeTree,this.buildRouteTree()),!this.__store&&this.latestLocation&&(this.__store=new _o(Ss(this.latestLocation),{onUpdate:()=>{this.__store.state={...this.state,cachedMatches:this.state.cachedMatches.filter(f=>!["redirected"].includes(f.status))}}}),ts(this));let c=!1;const a=this.options.basepath??"/",l=this.options.rewrite;if(r||n!==a||i!==l){this.basepath=a;const f=[];Ct(a)!==""&&f.push(gs({basepath:a})),l&&f.push(l),this.rewrite=f.length===0?void 0:f.length===1?f[0]:ms(f),this.history&&this.updateLatestLocation(),c=!0}c&&this.__store&&(this.__store.state={...this.state,location:this.latestLocation}),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a)"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const{routesById:e,routesByPath:s,flatRoutes:n}=Jo({routeTree:this.routeTree,initRoute:(i,c)=>{i.init({originalIndex:c})}});this.routesById=e,this.routesByPath=s,this.flatRoutes=n;const r=this.options.notFoundRoute;r&&(r.init({originalIndex:99999999999}),this.routesById[r.id]=r)},this.subscribe=(e,s)=>{const n={eventType:e,fn:s};return this.subscribers.add(n),()=>{this.subscribers.delete(n)}},this.emit=e=>{this.subscribers.forEach(s=>{s.eventType===e.type&&s.fn(e)})},this.parseLocation=(e,s)=>{const n=({href:a,state:l})=>{const u=new URL(a,this.origin),h=Xe(this.rewrite,u),f=this.options.parseSearch(h.search),d=this.options.stringifySearch(f);h.search=d;const p=h.href.replace(h.origin,""),{pathname:m,hash:y}=h;return{href:p,publicHref:a,url:h.href,pathname:xe(m),searchStr:d,search:B(s?.search,f),hash:y.split("#").reverse()[0]??"",state:B(s?.state,l)}},r=n(e),{__tempLocation:i,__tempKey:c}=r.state;if(i&&(!c||c===this.tempLocationKey)){const a=n(i);return a.state.key=r.state.key,a.state.__TSR_key=r.state.__TSR_key,delete a.state.__tempLocation,{...a,maskedLocation:r}}return r},this.resolvePathWithBase=(e,s)=>Eo({base:e,to:se(s),trailingSlash:this.options.trailingSlash,parseCache:this.parsePathnameCache}),this.matchRoutes=(e,s,n)=>typeof e=="string"?this.matchRoutesInternal({pathname:e,search:s},n):this.matchRoutesInternal(e,s),this.parsePathnameCache=us(1e3),this.getMatchedRoutes=(e,s)=>_s({pathname:e,routePathname:s,caseSensitive:this.options.caseSensitive,routesByPath:this.routesByPath,routesById:this.routesById,flatRoutes:this.flatRoutes,parseCache:this.parsePathnameCache}),this.cancelMatch=e=>{const s=this.getMatch(e);s&&(s.abortController.abort(),clearTimeout(s._nonReactive.pendingTimeout),s._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{const e=this.state.matches.filter(r=>r.status==="pending"),s=this.state.matches.filter(r=>r.isFetching==="loader");new Set([...this.state.pendingMatches??[],...e,...s]).forEach(r=>{this.cancelMatch(r.id)})},this.buildLocation=e=>{const s=(r={})=>{const i=r._fromLocation||this.pendingBuiltLocation||this.latestLocation,c=this.matchRoutes(i,{_buildLocation:!0}),a=Xt(c);r.from;const l=r.unsafeRelative==="path"?i.pathname:r.from??a.fullPath,u=this.resolvePathWithBase(l,"."),h=a.search,f={...a.params},d=r.to?this.resolvePathWithBase(u,`${r.to}`):this.resolvePathWithBase(u,"."),p=r.params===!1||r.params===null?{}:(r.params??!0)===!0?f:Object.assign(f,Q(r.params,f)),m=Ut({path:d,params:p,parseCache:this.parsePathnameCache}).interpolatedPath,y=this.matchRoutes(m,void 0,{_buildLocation:!0}).map(M=>this.looseRoutesById[M.routeId]);if(Object.keys(p).length>0)for(const M of y){const T=M.options.params?.stringify??M.options.stringifyParams;T&&Object.assign(p,T(p))}const _=e.leaveParams?d:xe(Ut({path:d,params:p,decodeCharMap:this.pathParamsDecodeCharMap,parseCache:this.parsePathnameCache}).interpolatedPath);let x=h;if(e._includeValidateSearch&&this.options.search?.strict){const M={};y.forEach(T=>{if(T.options.validateSearch)try{Object.assign(M,te(T.options.validateSearch,{...M,...x}))}catch{}}),x=M}x=Rs({search:x,dest:r,destRoutes:y,_includeValidateSearch:e._includeValidateSearch}),x=B(h,x);const P=this.options.stringifySearch(x),L=r.hash===!0?i.hash:r.hash?Q(r.hash,i.hash):void 0,E=L?`#${L}`:"";let w=r.state===!0?i.state:r.state?Q(r.state,i.state):{};w=B(i.state,w);const S=`${_}${P}${E}`,v=new URL(S,this.origin),C=Ze(this.rewrite,v);return{publicHref:C.pathname+C.search+C.hash,href:S,url:C.href,pathname:_,search:x,searchStr:P,state:w,hash:L??"",unmaskOnReload:r.unmaskOnReload}},n=(r={},i)=>{const c=s(r);let a=i?s(i):void 0;if(!a){let l={};const u=this.options.routeMasks?.find(h=>{const f=Zt(c.pathname,{to:h.from,caseSensitive:!1,fuzzy:!1},this.parsePathnameCache);return f?(l=f,!0):!1});if(u){const{from:h,...f}=u;i={from:e.from,...f,params:l},a=s(i)}}return a&&(c.maskedLocation=a),c};return e.mask?n(e,{from:e.from,...e.mask}):n(e)},this.commitLocation=({viewTransition:e,ignoreBlocker:s,...n})=>{const r=()=>{const a=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];a.forEach(u=>{n.state[u]=this.latestLocation.state[u]});const l=tt(n.state,this.latestLocation.state);return a.forEach(u=>{delete n.state[u]}),l},i=J(this.latestLocation.href)===J(n.href),c=this.commitLocationPromise;if(this.commitLocationPromise=it(()=>{c?.resolve()}),i&&r())this.load();else{let{maskedLocation:a,hashScrollIntoView:l,...u}=n;a&&(u={...a,state:{...a.state,__tempKey:void 0,__tempLocation:{...u,search:u.searchStr,state:{...u.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(u.unmaskOnReload??this.options.unmaskOnReload??!1)&&(u.state.__tempKey=this.tempLocationKey)),u.state.__hashScrollIntoViewOptions=l??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=e,this.history[n.replace?"replace":"push"](u.publicHref,u.state,{ignoreBlocker:s})}return this.resetNextScroll=n.resetScroll??!0,this.history.subscribers.size||this.load(),this.commitLocationPromise},this.buildAndCommitLocation=({replace:e,resetScroll:s,hashScrollIntoView:n,viewTransition:r,ignoreBlocker:i,href:c,...a}={})=>{if(c){const h=this.history.location.state.__TSR_index,f=Et(c,{__TSR_index:e?h:h+1});a.to=f.pathname,a.search=this.options.parseSearch(f.search),a.hash=f.hash.slice(1)}const l=this.buildLocation({...a,_includeValidateSearch:!0});this.pendingBuiltLocation=l;const u=this.commitLocation({...l,viewTransition:r,replace:e,resetScroll:s,hashScrollIntoView:n,ignoreBlocker:i});return Promise.resolve().then(()=>{this.pendingBuiltLocation===l&&(this.pendingBuiltLocation=void 0)}),u},this.navigate=({to:e,reloadDocument:s,href:n,...r})=>{if(!s&&n)try{new URL(`${n}`),s=!0}catch{}return s?(n||(n=this.buildLocation({to:e,...r}).url),r.replace?window.location.replace(n):window.location.href=n,Promise.resolve()):this.buildAndCommitLocation({...r,href:n,to:e,_isNavigate:!0})},this.beforeLoad=()=>{if(this.cancelMatches(),this.updateLatestLocation(),this.isServer){const s=this.buildLocation({to:this.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0}),n=r=>{try{return encodeURI(decodeURI(r))}catch{return r}};if(Ct(n(this.latestLocation.href))!==Ct(n(s.href))){let r=s.url;throw this.origin&&r.startsWith(this.origin)&&(r=r.replace(this.origin,"")||"/"),cs({href:r})}}const e=this.matchRoutes(this.latestLocation);this.__store.setState(s=>({...s,status:"pending",statusCode:200,isLoading:!0,location:this.latestLocation,pendingMatches:e,cachedMatches:s.cachedMatches.filter(n=>!e.some(r=>r.id===n.id))}))},this.load=async e=>{let s,n,r;for(r=new Promise(c=>{this.startTransition(async()=>{try{this.beforeLoad();const a=this.latestLocation,l=this.state.resolvedLocation;this.state.redirect||this.emit({type:"onBeforeNavigate",...et({resolvedLocation:l,location:a})}),this.emit({type:"onBeforeLoad",...et({resolvedLocation:l,location:a})}),await Ee({router:this,sync:e?.sync,matches:this.state.pendingMatches,location:a,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let u=[],h=[],f=[];gt(()=>{this.__store.setState(d=>{const p=d.matches,m=d.pendingMatches||d.matches;return u=p.filter(y=>!m.some(_=>_.id===y.id)),h=m.filter(y=>!p.some(_=>_.id===y.id)),f=m.filter(y=>p.some(_=>_.id===y.id)),{...d,isLoading:!1,loadedAt:Date.now(),matches:m,pendingMatches:void 0,cachedMatches:[...d.cachedMatches,...u.filter(y=>y.status!=="error")]}}),this.clearExpiredCache()}),[[u,"onLeave"],[h,"onEnter"],[f,"onStay"]].forEach(([d,p])=>{d.forEach(m=>{this.looseRoutesById[m.routeId].options[p]?.(m)})})})})}})}catch(a){N(a)?(s=a,this.isServer||this.navigate({...s.options,replace:!0,ignoreBlocker:!0})):j(a)&&(n=a),this.__store.setState(l=>({...l,statusCode:s?s.status:n?404:l.matches.some(u=>u.status==="error")?500:200,redirect:s}))}this.latestLoadPromise===r&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),c()})}),this.latestLoadPromise=r,await r;this.latestLoadPromise&&r!==this.latestLoadPromise;)await this.latestLoadPromise;let i;this.hasNotFoundMatch()?i=404:this.__store.state.matches.some(c=>c.status==="error")&&(i=500),i!==void 0&&this.__store.setState(c=>({...c,statusCode:i}))},this.startViewTransition=e=>{const s=this.shouldViewTransition??this.options.defaultViewTransition;if(delete this.shouldViewTransition,s&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let n;if(typeof s=="object"&&this.isViewTransitionTypesSupported){const r=this.latestLocation,i=this.state.resolvedLocation,c=typeof s.types=="function"?s.types(et({resolvedLocation:i,location:r})):s.types;if(c===!1){e();return}n={update:e,types:c}}else n=e;document.startViewTransition(n)}else e()},this.updateMatch=(e,s)=>{this.startTransition(()=>{const n=this.state.pendingMatches?.some(r=>r.id===e)?"pendingMatches":this.state.matches.some(r=>r.id===e)?"matches":this.state.cachedMatches.some(r=>r.id===e)?"cachedMatches":"";n&&this.__store.setState(r=>({...r,[n]:r[n]?.map(i=>i.id===e?s(i):i)}))})},this.getMatch=e=>{const s=n=>n.id===e;return this.state.cachedMatches.find(s)??this.state.pendingMatches?.find(s)??this.state.matches.find(s)},this.invalidate=e=>{const s=n=>e?.filter?.(n)??!0?{...n,invalid:!0,...e?.forcePending||n.status==="error"?{status:"pending",error:void 0}:void 0}:n;return this.__store.setState(n=>({...n,matches:n.matches.map(s),cachedMatches:n.cachedMatches.map(s),pendingMatches:n.pendingMatches?.map(s)})),this.shouldViewTransition=!1,this.load({sync:e?.sync})},this.resolveRedirect=e=>{if(!e.options.href){const s=this.buildLocation(e.options);let n=s.url;this.origin&&n.startsWith(this.origin)&&(n=n.replace(this.origin,"")||"/"),e.options.href=s.href,e.headers.set("Location",n)}return e.headers.get("Location")||e.headers.set("Location",e.options.href),e},this.clearCache=e=>{const s=e?.filter;s!==void 0?this.__store.setState(n=>({...n,cachedMatches:n.cachedMatches.filter(r=>!s(r))})):this.__store.setState(n=>({...n,cachedMatches:[]}))},this.clearExpiredCache=()=>{const e=s=>{const n=this.looseRoutesById[s.routeId];if(!n.options.loader)return!0;const r=(s.preload?n.options.preloadGcTime??this.options.defaultPreloadGcTime:n.options.gcTime??this.options.defaultGcTime)??300*1e3;return s.status==="error"?!0:Date.now()-s.updatedAt>=r};this.clearCache({filter:e})},this.loadRouteChunk=qe,this.preloadRoute=async e=>{const s=this.buildLocation(e);let n=this.matchRoutes(s,{throwOnError:!0,preload:!0,dest:e});const r=new Set([...this.state.matches,...this.state.pendingMatches??[]].map(c=>c.id)),i=new Set([...r,...this.state.cachedMatches.map(c=>c.id)]);gt(()=>{n.forEach(c=>{i.has(c.id)||this.__store.setState(a=>({...a,cachedMatches:[...a.cachedMatches,c]}))})});try{return n=await Ee({router:this,matches:n,location:s,preload:!0,updateMatch:(c,a)=>{r.has(c)?n=n.map(l=>l.id===c?a(l):l):this.updateMatch(c,a)}}),n}catch(c){if(N(c))return c.options.reloadDocument?void 0:await this.preloadRoute({...c.options,_fromLocation:s});j(c)||console.error(c);return}},this.matchRoute=(e,s)=>{const n={...e,to:e.to?this.resolvePathWithBase(e.from||"",e.to):void 0,params:e.params||{},leaveParams:!0},r=this.buildLocation(n);if(s?.pending&&this.state.status!=="pending")return!1;const c=(s?.pending===void 0?!this.state.isLoading:s.pending)?this.latestLocation:this.state.resolvedLocation||this.state.location,a=Zt(c.pathname,{...s,to:r.pathname},this.parsePathnameCache);return!a||e.params&&!tt(a,e.params,{partial:!0})?!1:a&&(s?.includeSearch??!0)?tt(c.search,r.search,{partial:!0})?a:!1:a},this.hasNotFoundMatch=()=>this.__store.state.matches.some(e=>e.status==="notFound"||e.globalNotFound),this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...o,caseSensitive:o.caseSensitive??!1,notFoundMode:o.notFoundMode??"fuzzy",stringifySearch:o.stringifySearch??rs,parseSearch:o.parseSearch??ns}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.__store.state}get looseRoutesById(){return this.routesById}matchRoutesInternal(o,e){const{foundRoute:s,matchedRoutes:n,routeParams:r}=this.getMatchedRoutes(o.pathname,e?.dest?.to);let i=!1;(s?s.path!=="/"&&r["**"]:J(o.pathname))&&(this.options.notFoundRoute?n.push(this.options.notFoundRoute):i=!0);const c=(()=>{if(i){if(this.options.notFoundMode!=="root")for(let u=n.length-1;u>=0;u--){const h=n[u];if(h.children)return h.id}return A}})(),a=[],l=u=>u?.id?u.context??this.options.context??void 0:this.options.context??void 0;return n.forEach((u,h)=>{const f=a[h-1],[d,p,m]=(()=>{const I=f?.search??o.search,Y=f?._strictSearch??void 0;try{const D=te(u.options.validateSearch,{...I})??void 0;return[{...I,...D},{...Y,...D},void 0]}catch(D){let X=D;if(D instanceof Ft||(X=new Ft(D.message,{cause:D})),e?.throwOnError)throw X;return[I,{},X]}})(),y=u.options.loaderDeps?.({search:d})??"",_=y?JSON.stringify(y):"",{interpolatedPath:x,usedParams:P}=Ut({path:u.fullPath,params:r,decodeCharMap:this.pathParamsDecodeCharMap}),L=u.id+x+_,E=this.getMatch(L),w=this.state.matches.find(I=>I.routeId===u.id),S=E?._strictParams??P;let v;if(!E){const I=u.options.params?.parse??u.options.parseParams;if(I)try{Object.assign(S,I(S))}catch(Y){if(v=new vs(Y.message,{cause:Y}),e?.throwOnError)throw v}}Object.assign(r,S);const C=w?"stay":"enter";let M;if(E)M={...E,cause:C,params:w?B(w.params,r):r,_strictParams:S,search:B(w?w.search:E.search,d),_strictSearch:p};else{const I=u.options.loader||u.options.beforeLoad||u.lazyFn||Je(u)?"pending":"success";M={id:L,index:h,routeId:u.id,params:w?B(w.params,r):r,_strictParams:S,pathname:x,updatedAt:Date.now(),search:w?B(w.search,d):d,_strictSearch:p,searchError:void 0,status:I,isFetching:!1,error:void 0,paramsError:v,__routeContext:void 0,_nonReactive:{loadPromise:it()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:C,loaderDeps:w?B(w.loaderDeps,y):y,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:u.options.staticData||{},fullPath:u.fullPath}}e?.preload||(M.globalNotFound=c===u.id),M.searchError=m;const T=l(f);M.context={...T,...M.__routeContext,...M.__beforeLoadContext},a.push(M)}),a.forEach((u,h)=>{const f=this.looseRoutesById[u.routeId];if(!this.getMatch(u.id)&&e?._buildLocation!==!0){const p=a[h-1],m=l(p);if(f.options.context){const y={deps:u.loaderDeps,params:u.params,context:m??{},location:o,navigate:_=>this.navigate({..._,_fromLocation:o}),buildLocation:this.buildLocation,cause:u.cause,abortController:u.abortController,preload:!!u.preload,matches:a};u.__routeContext=f.options.context(y)??void 0}u.context={...m,...u.__routeContext,...u.__beforeLoadContext}}}),a}}class Ft extends Error{}class vs extends Error{}function Ss(t){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:t,matches:[],pendingMatches:[],cachedMatches:[],statusCode:200}}function te(t,o){if(t==null)return{};if("~standard"in t){const e=t["~standard"].validate(o);if(e instanceof Promise)throw new Ft("Async validation not supported");if(e.issues)throw new Ft(JSON.stringify(e.issues,void 0,2),{cause:e});return e.value}return"parse"in t?t.parse(o):typeof t=="function"?t(o):{}}function _s({pathname:t,routePathname:o,caseSensitive:e,routesByPath:s,routesById:n,flatRoutes:r,parseCache:i}){let c={};const a=J(t),l=d=>Zt(a,{to:d.fullPath,caseSensitive:d.options?.caseSensitive??e,fuzzy:!0},i);let u=o!==void 0?s[o]:void 0;if(u)c=l(u);else{let d;for(const p of r){const m=l(p);if(m)if(p.path!=="/"&&m["**"])d||(d={foundRoute:p,routeParams:m});else{u=p,c=m;break}}!u&&d&&(u=d.foundRoute,c=d.routeParams)}let h=u||n[A];const f=[h];for(;h.parentRoute;)h=h.parentRoute,f.push(h);return f.reverse(),{matchedRoutes:f,routeParams:c,foundRoute:u}}function Rs({search:t,dest:o,destRoutes:e,_includeValidateSearch:s}){const n=e.reduce((c,a)=>{const l=[];if("search"in a.options)a.options.search?.middlewares&&l.push(...a.options.search.middlewares);else if(a.options.preSearchFilters||a.options.postSearchFilters){const u=({search:h,next:f})=>{let d=h;"preSearchFilters"in a.options&&a.options.preSearchFilters&&(d=a.options.preSearchFilters.reduce((m,y)=>y(m),h));const p=f(d);return"postSearchFilters"in a.options&&a.options.postSearchFilters?a.options.postSearchFilters.reduce((m,y)=>y(m),p):p};l.push(u)}if(s&&a.options.validateSearch){const u=({search:h,next:f})=>{const d=f(h);try{return{...d,...te(a.options.validateSearch,d)??void 0}}catch{return d}};l.push(u)}return c.concat(l)},[])??[],r=({search:c})=>o.search?o.search===!0?c:Q(o.search,c):{};n.push(r);const i=(c,a)=>{if(c>=n.length)return a;const l=n[c];return l({search:a,next:h=>i(c+1,h)})};return i(0,t)}const Ps="Error preloading route! ☝️";class Qe{constructor(o){if(this.init=e=>{this.originalIndex=e.originalIndex;const s=this.options,n=!s?.path&&!s?.id;this.parentRoute=this.options.getParentRoute?.(),n?this._path=A:this.parentRoute||K(!1);let r=n?A:s?.path;r&&r!=="/"&&(r=ne(r));const i=s?.id||r;let c=n?A:z([this.parentRoute.id===A?"":this.parentRoute.id,i]);r===A&&(r="/"),c!==A&&(c=z(["/",c]));const a=c===A?"/":z([this.parentRoute.fullPath,r]);this._path=r,this._id=c,this._fullPath=a,this._to=a},this.addChildren=e=>this._addFileChildren(e),this._addFileChildren=e=>(Array.isArray(e)&&(this.children=e),typeof e=="object"&&e!==null&&(this.children=Object.values(e)),this),this._addFileTypes=()=>this,this.updateLoader=e=>(Object.assign(this.options,e),this),this.update=e=>(Object.assign(this.options,e),this),this.lazy=e=>(this.lazyFn=e,this),this.options=o||{},this.isRoot=!o?.getParentRoute,o?.id&&o?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}}class ws extends Qe{constructor(o){super(o)}}function re(t){const o=t.errorComponent??Bt;return g.jsx(xs,{getResetKey:t.getResetKey,onCatch:t.onCatch,children:({error:e,reset:s})=>e?R.createElement(o,{error:e,reset:s}):t.children})}class xs extends R.Component{constructor(){super(...arguments),this.state={error:null}}static getDerivedStateFromProps(o){return{resetKey:o.getResetKey()}}static getDerivedStateFromError(o){return{error:o}}reset(){this.setState({error:null})}componentDidUpdate(o,e){e.error&&e.resetKey!==this.state.resetKey&&this.reset()}componentDidCatch(o,e){this.props.onCatch&&this.props.onCatch(o,e)}render(){return this.props.children({error:this.state.resetKey!==this.props.getResetKey()?null:this.state.error,reset:()=>{this.reset()}})}}function Bt({error:t}){const[o,e]=R.useState(!1);return g.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[g.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[g.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),g.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>e(s=>!s),children:o?"Hide Error":"Show Error"})]}),g.jsx("div",{style:{height:".25rem"}}),o?g.jsx("div",{children:g.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:t.message?g.jsx("code",{children:t.message}):null})}):null]})}function Ls({children:t,fallback:o=null}){return Cs()?g.jsx(rt.Fragment,{children:t}):g.jsx(rt.Fragment,{children:o})}function Cs(){return rt.useSyncExternalStore(Ms,()=>!0,()=>!1)}function Ms(){return()=>{}}var Wt={exports:{}},zt={},Kt={exports:{}},Ht={};var Te;function bs(){if(Te)return Ht;Te=1;var t=ee();function o(h,f){return h===f&&(h!==0||1/h===1/f)||h!==h&&f!==f}var e=typeof Object.is=="function"?Object.is:o,s=t.useState,n=t.useEffect,r=t.useLayoutEffect,i=t.useDebugValue;function c(h,f){var d=f(),p=s({inst:{value:d,getSnapshot:f}}),m=p[0].inst,y=p[1];return r(function(){m.value=d,m.getSnapshot=f,a(m)&&y({inst:m})},[h,d,f]),n(function(){return a(m)&&y({inst:m}),h(function(){a(m)&&y({inst:m})})},[h]),i(d),d}function a(h){var f=h.getSnapshot;h=h.value;try{var d=f();return!e(h,d)}catch{return!0}}function l(h,f){return f()}var u=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?l:c;return Ht.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:u,Ht}var Ie;function Es(){return Ie||(Ie=1,Kt.exports=bs()),Kt.exports}var ke;function Ts(){if(ke)return zt;ke=1;var t=ee(),o=Es();function e(l,u){return l===u&&(l!==0||1/l===1/u)||l!==l&&u!==u}var s=typeof Object.is=="function"?Object.is:e,n=o.useSyncExternalStore,r=t.useRef,i=t.useEffect,c=t.useMemo,a=t.useDebugValue;return zt.useSyncExternalStoreWithSelector=function(l,u,h,f,d){var p=r(null);if(p.current===null){var m={hasValue:!1,value:null};p.current=m}else m=p.current;p=c(function(){function _(w){if(!x){if(x=!0,P=w,w=f(w),d!==void 0&&m.hasValue){var S=m.value;if(d(S,w))return L=S}return L=w}if(S=L,s(P,w))return S;var v=f(w);return d!==void 0&&d(S,v)?(P=w,S):(P=w,L=v)}var x=!1,P,L,E=h===void 0?null:h;return[function(){return _(u())},E===null?void 0:function(){return _(E())}]},[u,h,f,d]);var y=n(l,p[0],p[1]);return i(function(){m.hasValue=!0,m.value=y},[y]),a(y),y},zt}var Oe;function Is(){return Oe||(Oe=1,Wt.exports=Ts()),Wt.exports}var ks=Is();function Os(t,o=s=>s,e={}){const s=e.equal??Fs;return ks.useSyncExternalStoreWithSelector(t.subscribe,()=>t.state,()=>t.state,o,s)}function Fs(t,o){if(Object.is(t,o))return!0;if(typeof t!="object"||t===null||typeof o!="object"||o===null)return!1;if(t instanceof Map&&o instanceof Map){if(t.size!==o.size)return!1;for(const[s,n]of t)if(!o.has(s)||!Object.is(n,o.get(s)))return!1;return!0}if(t instanceof Set&&o instanceof Set){if(t.size!==o.size)return!1;for(const s of t)if(!o.has(s))return!1;return!0}if(t instanceof Date&&o instanceof Date)return t.getTime()===o.getTime();const e=Fe(t);if(e.length!==Fe(o).length)return!1;for(let s=0;s"u"?Gt:window.__TSR_ROUTER_CONTEXT__?window.__TSR_ROUTER_CONTEXT__:(window.__TSR_ROUTER_CONTEXT__=Gt,Gt)}function F(t){const o=R.useContext(to());return t?.warn,o}function O(t){const o=F({warn:t?.router===void 0}),e=t?.router||o,s=R.useRef(void 0);return Os(e.__store,n=>{if(t?.select){if(t.structuralSharing??e.options.defaultStructuralSharing){const r=B(s.current,t.select(n));return s.current=r,r}return t.select(n)}return n})}const Dt=R.createContext(void 0),As=R.createContext(void 0);function V(t){const o=R.useContext(t.from?As:Dt);return O({select:s=>{const n=s.matches.find(r=>t.from?t.from===r.routeId:r.id===o);if(K(!((t.shouldThrow??!0)&&!n),`Could not find ${t.from?`an active match from "${t.from}"`:"a nearest match!"}`),n!==void 0)return t.select?t.select(n):n},structuralSharing:t.structuralSharing})}function ie(t){return V({from:t.from,strict:t.strict,structuralSharing:t.structuralSharing,select:o=>t.select?t.select(o.loaderData):o.loaderData})}function ae(t){const{select:o,...e}=t;return V({...e,select:s=>o?o(s.loaderDeps):s.loaderDeps})}function ce(t){return V({from:t.from,shouldThrow:t.shouldThrow,structuralSharing:t.structuralSharing,strict:t.strict,select:o=>{const e=t.strict===!1?o.params:o._strictParams;return t.select?t.select(e):e}})}function ue(t){return V({from:t.from,strict:t.strict,shouldThrow:t.shouldThrow,structuralSharing:t.structuralSharing,select:o=>t.select?t.select(o.search):o.search})}function le(t){const o=F();return R.useCallback(e=>o.navigate({...e,from:e.from??t?.from}),[t?.from,o])}var eo=po();const fn=Ne(eo),Lt=typeof window<"u"?R.useLayoutEffect:R.useEffect;function qt(t){const o=R.useRef({value:t,prev:null}),e=o.current.value;return t!==e&&(o.current={value:t,prev:e}),o.current.prev}function Bs(t,o,e={},s={}){R.useEffect(()=>{if(!t.current||s.disabled||typeof IntersectionObserver!="function")return;const n=new IntersectionObserver(([r])=>{o(r)},e);return n.observe(t.current),()=>{n.disconnect()}},[o,e,s.disabled,t])}function Ds(t){const o=R.useRef(null);return R.useImperativeHandle(t,()=>o.current,[]),o}function $s(t,o){const e=F(),[s,n]=R.useState(!1),r=R.useRef(!1),i=Ds(o),{activeProps:c,inactiveProps:a,activeOptions:l,to:u,preload:h,preloadDelay:f,hashScrollIntoView:d,replace:p,startTransition:m,resetScroll:y,viewTransition:_,children:x,target:P,disabled:L,style:E,className:w,onClick:S,onFocus:v,onMouseEnter:C,onMouseLeave:M,onTouchStart:T,ignoreBlocker:I,params:Y,search:D,hash:X,state:he,mask:ro,reloadDocument:rn,unsafeRelative:an,from:cn,_fromLocation:un,...fe}=t,io=O({select:b=>b.location.search,structuralSharing:!0}),de=t.from,lt=R.useMemo(()=>({...t,from:de}),[e,io,de,t._fromLocation,t.hash,t.to,t.search,t.params,t.state,t.mask,t.unsafeRelative]),W=R.useMemo(()=>e.buildLocation({...lt}),[e,lt]),vt=R.useMemo(()=>{if(L)return;let b=W.maskedLocation?W.maskedLocation.url:W.url,k=!1;return e.origin&&(b.startsWith(e.origin)?b=e.history.createHref(b.replace(e.origin,""))||"/":k=!0),{href:b,external:k}},[L,W.maskedLocation,W.url,e.origin,e.history]),St=R.useMemo(()=>{if(vt?.external)return vt.href;try{return new URL(u),u}catch{}},[u,vt]),st=t.reloadDocument||St?!1:h??e.options.defaultPreload,$t=f??e.options.defaultPreloadDelay??0,jt=O({select:b=>{if(St)return!1;if(l?.exact){if(!Mo(b.location.pathname,W.pathname,e.basepath))return!1}else{const k=It(b.location.pathname,e.basepath),$=It(W.pathname,e.basepath);if(!(k.startsWith($)&&(k.length===$.length||k[$.length]==="/")))return!1}return(l?.includeSearch??!0)&&!tt(b.location.search,W.search,{partial:!l?.exact,ignoreUndefined:!l?.explicitUndefined})?!1:l?.includeHash?b.location.hash===W.hash:!0}}),Z=R.useCallback(()=>{e.preloadRoute({...lt}).catch(b=>{console.warn(b),console.warn(Ps)})},[e,lt]),ao=R.useCallback(b=>{b?.isIntersecting&&Z()},[Z]);Bs(i,ao,Ws,{disabled:!!L||st!=="viewport"}),R.useEffect(()=>{r.current||!L&&st==="render"&&(Z(),r.current=!0)},[L,Z,st]);const co=b=>{const k=b.currentTarget.getAttribute("target"),$=P!==void 0?P:k;if(!L&&!zs(b)&&!b.defaultPrevented&&(!$||$==="_self")&&b.button===0){b.preventDefault(),eo.flushSync(()=>{n(!0)});const ye=e.subscribe("onResolved",()=>{ye(),n(!1)});e.navigate({...lt,replace:p,resetScroll:y,hashScrollIntoView:d,startTransition:m,viewTransition:_,ignoreBlocker:I})}};if(St)return{...fe,ref:i,href:St,...x&&{children:x},...P&&{target:P},...L&&{disabled:L},...E&&{style:E},...w&&{className:w},...S&&{onClick:S},...v&&{onFocus:v},...C&&{onMouseEnter:C},...M&&{onMouseLeave:M},...T&&{onTouchStart:T}};const pe=b=>{L||st&&Z()},uo=pe,lo=b=>{if(!(L||!st))if(!$t)Z();else{const k=b.target;if(ft.has(k))return;const $=setTimeout(()=>{ft.delete(k),Z()},$t);ft.set(k,$)}},ho=b=>{if(L||!st||!$t)return;const k=b.target,$=ft.get(k);$&&(clearTimeout($),ft.delete(k))},_t=jt?Q(c,{})??js:Jt,Rt=jt?Jt:Q(a,{})??Jt,me=[w,_t.className,Rt.className].filter(Boolean).join(" "),ge=(E||_t.style||Rt.style)&&{...E,..._t.style,...Rt.style};return{...fe,..._t,...Rt,href:vt?.href,ref:i,onClick:dt([S,co]),onFocus:dt([v,pe]),onMouseEnter:dt([C,lo]),onMouseLeave:dt([M,ho]),onTouchStart:dt([T,uo]),disabled:!!L,target:P,...ge&&{style:ge},...me&&{className:me},...L&&Ns,...jt&&Us,...s&&Vs}}const Jt={},js={className:"active"},Ns={role:"link","aria-disabled":!0},Us={"data-status":"active","aria-current":"page"},Vs={"data-transitioning":"transitioning"},ft=new WeakMap,Ws={rootMargin:"100px"},dt=t=>o=>{for(const e of t)if(e){if(o.defaultPrevented)return;e(o)}},oo=R.forwardRef((t,o)=>{const{_asChild:e,...s}=t,{type:n,ref:r,...i}=$s(s,o),c=typeof s.children=="function"?s.children({isActive:i["data-status"]==="active"}):s.children;return e===void 0&&delete i.disabled,R.createElement(e||"a",{...i,ref:r},c)});function zs(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}class Ks extends Qe{constructor(o){super(o),this.useMatch=e=>V({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>V({...e,from:this.id,select:s=>e?.select?e.select(s.context):s.context}),this.useSearch=e=>ue({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ce({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>ae({...e,from:this.id}),this.useLoaderData=e=>ie({...e,from:this.id}),this.useNavigate=()=>le({from:this.fullPath}),this.Link=rt.forwardRef((e,s)=>g.jsx(oo,{ref:s,from:this.fullPath,...e})),this.$$typeof=Symbol.for("react.memo")}}function Hs(t){return new Ks(t)}class Gs extends ws{constructor(o){super(o),this.useMatch=e=>V({select:e?.select,from:this.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>V({...e,from:this.id,select:s=>e?.select?e.select(s.context):s.context}),this.useSearch=e=>ue({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useParams=e=>ce({select:e?.select,structuralSharing:e?.structuralSharing,from:this.id}),this.useLoaderDeps=e=>ae({...e,from:this.id}),this.useLoaderData=e=>ie({...e,from:this.id}),this.useNavigate=()=>le({from:this.fullPath}),this.Link=rt.forwardRef((e,s)=>g.jsx(oo,{ref:s,from:this.fullPath,...e})),this.$$typeof=Symbol.for("react.memo")}}function dn(t){return new Gs(t)}function Ae(t){return typeof t=="object"?new Be(t,{silent:!0}).createRoute(t):new Be(t,{silent:!0}).createRoute}class Be{constructor(o,e){this.path=o,this.createRoute=s=>{this.silent;const n=Hs(s);return n.isRoot=!1,n},this.silent=e?.silent}}class De{constructor(o){this.useMatch=e=>V({select:e?.select,from:this.options.id,structuralSharing:e?.structuralSharing}),this.useRouteContext=e=>V({from:this.options.id,select:s=>e?.select?e.select(s.context):s.context}),this.useSearch=e=>ue({select:e?.select,structuralSharing:e?.structuralSharing,from:this.options.id}),this.useParams=e=>ce({select:e?.select,structuralSharing:e?.structuralSharing,from:this.options.id}),this.useLoaderDeps=e=>ae({...e,from:this.options.id}),this.useLoaderData=e=>ie({...e,from:this.options.id}),this.useNavigate=()=>{const e=F();return le({from:e.routesById[this.options.id].fullPath})},this.options=o,this.$$typeof=Symbol.for("react.memo")}}function $e(t){return typeof t=="object"?new De(t):o=>new De({id:t,...o})}function qs(){const t=F(),o=R.useRef({router:t,mounted:!1}),[e,s]=R.useState(!1),{hasPendingMatches:n,isLoading:r}=O({select:h=>({isLoading:h.isLoading,hasPendingMatches:h.matches.some(f=>f.status==="pending")}),structuralSharing:!0}),i=qt(r),c=r||e||n,a=qt(c),l=r||n,u=qt(l);return t.startTransition=h=>{s(!0),R.startTransition(()=>{h(),s(!1)})},R.useEffect(()=>{const h=t.history.subscribe(t.load),f=t.buildLocation({to:t.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return J(t.latestLocation.href)!==J(f.href)&&t.commitLocation({...f,replace:!0}),()=>{h()}},[t,t.history]),Lt(()=>{if(typeof window<"u"&&t.ssr||o.current.router===t&&o.current.mounted)return;o.current={router:t,mounted:!0},(async()=>{try{await t.load()}catch(f){console.error(f)}})()},[t]),Lt(()=>{i&&!r&&t.emit({type:"onLoad",...et(t.state)})},[i,t,r]),Lt(()=>{u&&!l&&t.emit({type:"onBeforeRouteMount",...et(t.state)})},[l,u,t]),Lt(()=>{a&&!c&&(t.emit({type:"onResolved",...et(t.state)}),t.__store.setState(h=>({...h,status:"idle",resolvedLocation:h.location})),es(t))},[c,a,t]),null}function Js(t){const o=O({select:e=>`not-found-${e.location.pathname}-${e.status}`});return g.jsx(re,{getResetKey:()=>o,onCatch:(e,s)=>{if(j(e))t.onCatch?.(e,s);else throw e},errorComponent:({error:e})=>{if(j(e))return t.fallback?.(e);throw e},children:t.children})}function Ys(){return g.jsx("p",{children:"Not Found"})}function nt(t){return g.jsx(g.Fragment,{children:t.children})}function so(t,o,e){return o.options.notFoundComponent?g.jsx(o.options.notFoundComponent,{data:e}):t.options.defaultNotFoundComponent?g.jsx(t.options.defaultNotFoundComponent,{data:e}):g.jsx(Ys,{})}function Xs({children:t}){const o=F();return o.isServer?g.jsx("script",{nonce:o.options.ssr?.nonce,className:"$tsr",dangerouslySetInnerHTML:{__html:[t].filter(Boolean).join(` +`)+";$_TSR.c()"}}):null}function Zs(){const t=F();if(!t.isScrollRestoring||!t.isServer||typeof t.options.scrollRestoration=="function"&&!t.options.scrollRestoration({location:t.latestLocation}))return null;const e=(t.options.getScrollRestorationKey||Qt)(t.latestLocation),s=e!==Qt(t.latestLocation)?e:void 0,n={storageKey:kt,shouldScrollRestoration:!0};return s&&(n.key=s),g.jsx(Xs,{children:`(${We.toString()})(${JSON.stringify(n)})`})}const no=R.memo(function({matchId:o}){const e=F(),s=O({select:_=>{const x=_.matches.find(P=>P.id===o);return K(x),{routeId:x.routeId,ssr:x.ssr,_displayPending:x._displayPending}},structuralSharing:!0}),n=e.routesById[s.routeId],r=n.options.pendingComponent??e.options.defaultPendingComponent,i=r?g.jsx(r,{}):null,c=n.options.errorComponent??e.options.defaultErrorComponent,a=n.options.onCatch??e.options.defaultOnCatch,l=n.isRoot?n.options.notFoundComponent??e.options.notFoundRoute?.options.component:n.options.notFoundComponent,u=s.ssr===!1||s.ssr==="data-only",h=(!n.isRoot||n.options.wrapInSuspense||u)&&(n.options.wrapInSuspense??r??(n.options.errorComponent?.preload||u))?R.Suspense:nt,f=c?re:nt,d=l?Js:nt,p=O({select:_=>_.loadedAt}),m=O({select:_=>{const x=_.matches.findIndex(P=>P.id===o);return _.matches[x-1]?.routeId}}),y=n.isRoot?n.options.shellComponent??nt:nt;return g.jsxs(y,{children:[g.jsx(Dt.Provider,{value:o,children:g.jsx(h,{fallback:i,children:g.jsx(f,{getResetKey:()=>p,errorComponent:c||Bt,onCatch:(_,x)=>{if(j(_))throw _;a?.(_,x)},children:g.jsx(d,{fallback:_=>{if(!l||_.routeId&&_.routeId!==s.routeId||!_.routeId&&!n.isRoot)throw _;return R.createElement(l,_)},children:u||s._displayPending?g.jsx(Ls,{fallback:i,children:g.jsx(je,{matchId:o})}):g.jsx(je,{matchId:o})})})})}),m===A&&e.options.scrollRestoration?g.jsxs(g.Fragment,{children:[g.jsx(Qs,{}),g.jsx(Zs,{})]}):null]})});function Qs(){const t=F(),o=R.useRef(void 0);return g.jsx("script",{suppressHydrationWarning:!0,ref:e=>{e&&(o.current===void 0||o.current.href!==t.latestLocation.href)&&(t.emit({type:"onRendered",...et(t.state)}),o.current=t.latestLocation)}},t.latestLocation.state.__TSR_key)}const je=R.memo(function({matchId:o}){const e=F(),{match:s,key:n,routeId:r}=O({select:a=>{const l=a.matches.find(p=>p.id===o),u=l.routeId,f=(e.routesById[u].options.remountDeps??e.options.defaultRemountDeps)?.({routeId:u,loaderDeps:l.loaderDeps,params:l._strictParams,search:l._strictSearch});return{key:f?JSON.stringify(f):void 0,routeId:u,match:{id:l.id,status:l.status,error:l.error,_forcePending:l._forcePending,_displayPending:l._displayPending}}},structuralSharing:!0}),i=e.routesById[r],c=R.useMemo(()=>{const a=i.options.component??e.options.defaultComponent;return a?g.jsx(a,{},n):g.jsx(tn,{})},[n,i.options.component,e.options.defaultComponent]);if(s._displayPending)throw e.getMatch(s.id)?._nonReactive.displayPendingPromise;if(s._forcePending)throw e.getMatch(s.id)?._nonReactive.minPendingPromise;if(s.status==="pending"){const a=i.options.pendingMinMs??e.options.defaultPendingMinMs;if(a){const l=e.getMatch(s.id);if(l&&!l._nonReactive.minPendingPromise&&!e.isServer){const u=it();l._nonReactive.minPendingPromise=u,setTimeout(()=>{u.resolve(),l._nonReactive.minPendingPromise=void 0},a)}}throw e.getMatch(s.id)?._nonReactive.loadPromise}if(s.status==="notFound")return K(j(s.error)),so(e,i,s.error);if(s.status==="redirected")throw K(N(s.error)),e.getMatch(s.id)?._nonReactive.loadPromise;if(s.status==="error"){if(e.isServer){const a=(i.options.errorComponent??e.options.defaultErrorComponent)||Bt;return g.jsx(a,{error:s.error,reset:void 0,info:{componentStack:""}})}throw s.error}return c}),tn=R.memo(function(){const o=F(),e=R.useContext(Dt),s=O({select:l=>l.matches.find(u=>u.id===e)?.routeId}),n=o.routesById[s],r=O({select:l=>{const h=l.matches.find(f=>f.id===e);return K(h),h.globalNotFound}}),i=O({select:l=>{const u=l.matches,h=u.findIndex(f=>f.id===e);return u[h+1]?.id}}),c=o.options.defaultPendingComponent?g.jsx(o.options.defaultPendingComponent,{}):null;if(r)return so(o,n,void 0);if(!i)return null;const a=g.jsx(no,{matchId:i});return s===A?g.jsx(R.Suspense,{fallback:c,children:a}):a});function en(){const t=F(),e=t.routesById[A].options.pendingComponent??t.options.defaultPendingComponent,s=e?g.jsx(e,{}):null,n=t.isServer||typeof document<"u"&&t.ssr?nt:R.Suspense,r=g.jsxs(n,{fallback:s,children:[!t.isServer&&g.jsx(qs,{}),g.jsx(on,{})]});return t.options.InnerWrap?g.jsx(t.options.InnerWrap,{children:r}):r}function on(){const t=F(),o=O({select:n=>n.matches[0]?.id}),e=O({select:n=>n.loadedAt}),s=o?g.jsx(no,{matchId:o}):null;return g.jsx(Dt.Provider,{value:o,children:t.options.disableGlobalCatchBoundary?s:g.jsx(re,{getResetKey:()=>e,errorComponent:Bt,onCatch:n=>{n.message||n.toString()},children:s})})}function pn(){const t=F();return O({select:o=>[o.location.href,o.resolvedLocation?.href,o.status],structuralSharing:!0}),R.useCallback(o=>{const{pending:e,caseSensitive:s,fuzzy:n,includeSearch:r,...i}=o;return t.matchRoute(i,{pending:e,caseSensitive:s,fuzzy:n,includeSearch:r})},[t])}const mn=t=>new sn(t);class sn extends ys{constructor(o){super(o)}}typeof globalThis<"u"?(globalThis.createFileRoute=Ae,globalThis.createLazyFileRoute=$e):typeof window<"u"&&(window.createFileRoute=Ae,window.createLazyFileRoute=$e);function nn({router:t,children:o,...e}){Object.keys(e).length>0&&t.update({...t.options,...e,context:{...t.options.context,...e.context}});const s=to(),n=g.jsx(s.Provider,{value:t,children:o});return t.options.Wrap?g.jsx(t.options.Wrap,{children:n}):n}function gn({router:t,...o}){return g.jsx(nn,{router:t,...o,children:g.jsx(en,{})})}export{oo as L,tn as O,rt as R,hn as a,eo as b,fn as c,pn as d,dn as e,Hs as f,mn as g,cs as h,K as i,g as j,gn as k,R as r,le as u}; diff --git a/webui/dist/assets/ui-vendor-nTGLnMlb.js b/webui/dist/assets/ui-vendor-nTGLnMlb.js new file mode 100644 index 00000000..0fcce437 --- /dev/null +++ b/webui/dist/assets/ui-vendor-nTGLnMlb.js @@ -0,0 +1,45 @@ +import{r as a,j as x,R as we,a as Vt,b as at,c as yr}from"./router-BWgTyY51.js";function k(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function wr(e,t){const n=a.createContext(t),o=i=>{const{children:c,...s}=i,l=a.useMemo(()=>s,Object.values(s));return x.jsx(n.Provider,{value:l,children:c})};o.displayName=e+"Provider";function r(i){const c=a.useContext(n);if(c)return c;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[o,r]}function Ve(e,t=[]){let n=[];function o(i,c){const s=a.createContext(c),l=n.length;n=[...n,c];const u=p=>{const{scope:h,children:m,...w}=p,f=h?.[e]?.[l]||s,g=a.useMemo(()=>w,Object.values(w));return x.jsx(f.Provider,{value:g,children:m})};u.displayName=i+"Provider";function d(p,h){const m=h?.[e]?.[l]||s,w=a.useContext(m);if(w)return w;if(c!==void 0)return c;throw new Error(`\`${p}\` must be used within \`${i}\``)}return[u,d]}const r=()=>{const i=n.map(c=>a.createContext(c));return function(s){const l=s?.[e]||i;return a.useMemo(()=>({[`__scope${e}`]:{...s,[e]:l}}),[s,l])}};return r.scopeName=e,[o,xr(r,...t)]}function xr(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(i){const c=o.reduce((s,{useScope:l,scopeName:u})=>{const p=l(i)[`__scope${u}`];return{...s,...p}},{});return a.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return n.scopeName=t.scopeName,n}function sn(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function _e(...e){return t=>{let n=!1;const o=e.map(r=>{const i=sn(r,t);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let r=0;r{const{children:i,...c}=o,s=a.Children.toArray(i),l=s.find(Cr);if(l){const u=l.props.children,d=s.map(p=>p===l?a.Children.count(u)>1?a.Children.only(null):a.isValidElement(u)?u.props.children:null:p);return x.jsx(t,{...c,ref:r,children:a.isValidElement(u)?a.cloneElement(u,void 0,d):null})}return x.jsx(t,{...c,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}function Sr(e){const t=a.forwardRef((n,o)=>{const{children:r,...i}=n;if(a.isValidElement(r)){const c=Rr(r),s=Er(i,r.props);return r.type!==a.Fragment&&(s.ref=o?_e(o,c):c),a.cloneElement(r,s)}return a.Children.count(r)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var br=Symbol("radix.slottable");function Cr(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===br}function Er(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...s)=>{const l=i(...s);return r(...s),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function Rr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Pr(e){const t=e+"CollectionProvider",[n,o]=Ve(t),[r,i]=n(t,{collectionRef:{current:null},itemMap:new Map}),c=f=>{const{scope:g,children:y}=f,v=we.useRef(null),S=we.useRef(new Map).current;return x.jsx(r,{scope:g,itemMap:S,collectionRef:v,children:y})};c.displayName=t;const s=e+"CollectionSlot",l=cn(s),u=we.forwardRef((f,g)=>{const{scope:y,children:v}=f,S=i(s,y),b=H(g,S.collectionRef);return x.jsx(l,{ref:b,children:v})});u.displayName=s;const d=e+"CollectionItemSlot",p="data-radix-collection-item",h=cn(d),m=we.forwardRef((f,g)=>{const{scope:y,children:v,...S}=f,b=we.useRef(null),C=H(g,b),R=i(d,y);return we.useEffect(()=>(R.itemMap.set(b,{ref:b,...S}),()=>void R.itemMap.delete(b))),x.jsx(h,{[p]:"",ref:C,children:v})});m.displayName=d;function w(f){const g=i(e+"CollectionConsumer",f);return we.useCallback(()=>{const v=g.collectionRef.current;if(!v)return[];const S=Array.from(v.querySelectorAll(`[${p}]`));return Array.from(g.itemMap.values()).sort((R,E)=>S.indexOf(R.ref.current)-S.indexOf(E.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:c,Slot:u,ItemSlot:m},w,o]}var K=globalThis?.document?a.useLayoutEffect:()=>{},Ar=Vt[" useId ".trim().toString()]||(()=>{}),Or=0;function Te(e){const[t,n]=a.useState(Ar());return K(()=>{n(o=>o??String(Or++))},[e]),t?`radix-${t}`:""}function Tr(e){const t=Nr(e),n=a.forwardRef((o,r)=>{const{children:i,...c}=o,s=a.Children.toArray(i),l=s.find(Dr);if(l){const u=l.props.children,d=s.map(p=>p===l?a.Children.count(u)>1?a.Children.only(null):a.isValidElement(u)?u.props.children:null:p);return x.jsx(t,{...c,ref:r,children:a.isValidElement(u)?a.cloneElement(u,void 0,d):null})}return x.jsx(t,{...c,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}function Nr(e){const t=a.forwardRef((n,o)=>{const{children:r,...i}=n;if(a.isValidElement(r)){const c=Mr(r),s=_r(i,r.props);return r.type!==a.Fragment&&(s.ref=o?_e(o,c):c),a.cloneElement(r,s)}return a.Children.count(r)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Ir=Symbol("radix.slottable");function Dr(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Ir}function _r(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...s)=>{const l=i(...s);return r(...s),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function Mr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Lr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],M=Lr.reduce((e,t)=>{const n=Tr(`Primitive.${t}`),o=a.forwardRef((r,i)=>{const{asChild:c,...s}=r,l=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),x.jsx(l,{...s,ref:i})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function kr(e,t){e&&at.flushSync(()=>e.dispatchEvent(t))}function xe(e){const t=a.useRef(e);return a.useEffect(()=>{t.current=e}),a.useMemo(()=>(...n)=>t.current?.(...n),[])}var jr=Vt[" useInsertionEffect ".trim().toString()]||K;function et({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[r,i,c]=Fr({defaultProp:t,onChange:n}),s=e!==void 0,l=s?e:r;{const d=a.useRef(e!==void 0);a.useEffect(()=>{const p=d.current;p!==s&&console.warn(`${o} is changing from ${p?"controlled":"uncontrolled"} to ${s?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),d.current=s},[s,o])}const u=a.useCallback(d=>{if(s){const p=Wr(d)?d(e):d;p!==e&&c.current?.(p)}else i(d)},[s,e,i,c]);return[l,u]}function Fr({defaultProp:e,onChange:t}){const[n,o]=a.useState(e),r=a.useRef(n),i=a.useRef(t);return jr(()=>{i.current=t},[t]),a.useEffect(()=>{r.current!==n&&(i.current?.(n),r.current=n)},[n,r]),[n,o,i]}function Wr(e){return typeof e=="function"}var $r=a.createContext(void 0);function Br(e){const t=a.useContext($r);return e||t||"ltr"}function Vr(e,t){return a.useReducer((n,o)=>t[n][o]??n,e)}var He=e=>{const{present:t,children:n}=e,o=Hr(t),r=typeof n=="function"?n({present:o.isPresent}):a.Children.only(n),i=H(o.ref,Ur(r));return typeof n=="function"||o.isPresent?a.cloneElement(r,{ref:i}):null};He.displayName="Presence";function Hr(e){const[t,n]=a.useState(),o=a.useRef(null),r=a.useRef(e),i=a.useRef("none"),c=e?"mounted":"unmounted",[s,l]=Vr(c,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return a.useEffect(()=>{const u=ze(o.current);i.current=s==="mounted"?u:"none"},[s]),K(()=>{const u=o.current,d=r.current;if(d!==e){const h=i.current,m=ze(u);e?l("MOUNT"):m==="none"||u?.display==="none"?l("UNMOUNT"):l(d&&h!==m?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,l]),K(()=>{if(t){let u;const d=t.ownerDocument.defaultView??window,p=m=>{const f=ze(o.current).includes(CSS.escape(m.animationName));if(m.target===t&&f&&(l("ANIMATION_END"),!r.current)){const g=t.style.animationFillMode;t.style.animationFillMode="forwards",u=d.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},h=m=>{m.target===t&&(i.current=ze(o.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{d.clearTimeout(u),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else l("ANIMATION_END")},[t,l]),{isPresent:["mounted","unmountSuspended"].includes(s),ref:a.useCallback(u=>{o.current=u?getComputedStyle(u):null,n(u)},[])}}function ze(e){return e?.animationName||"none"}function Ur(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function an(e,[t,n]){return Math.min(n,Math.max(t,e))}var zr=Symbol.for("react.lazy"),tt=Vt[" use ".trim().toString()];function Kr(e){return typeof e=="object"&&e!==null&&"then"in e}function Dn(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===zr&&"_payload"in e&&Kr(e._payload)}function _n(e){const t=Yr(e),n=a.forwardRef((o,r)=>{let{children:i,...c}=o;Dn(i)&&typeof tt=="function"&&(i=tt(i._payload));const s=a.Children.toArray(i),l=s.find(Gr);if(l){const u=l.props.children,d=s.map(p=>p===l?a.Children.count(u)>1?a.Children.only(null):a.isValidElement(u)?u.props.children:null:p);return x.jsx(t,{...c,ref:r,children:a.isValidElement(u)?a.cloneElement(u,void 0,d):null})}return x.jsx(t,{...c,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}var wa=_n("Slot");function Yr(e){const t=a.forwardRef((n,o)=>{let{children:r,...i}=n;if(Dn(r)&&typeof tt=="function"&&(r=tt(r._payload)),a.isValidElement(r)){const c=Zr(r),s=qr(i,r.props);return r.type!==a.Fragment&&(s.ref=o?_e(o,c):c),a.cloneElement(r,s)}return a.Children.count(r)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Xr=Symbol("radix.slottable");function Gr(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Xr}function qr(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...s)=>{const l=i(...s);return r(...s),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function Zr(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Mn(e){const t=a.useRef({value:e,previous:e});return a.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function Ln(e){const[t,n]=a.useState(void 0);return K(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let c,s;if("borderBoxSize"in i){const l=i.borderBoxSize,u=Array.isArray(l)?l[0]:l;c=u.inlineSize,s=u.blockSize}else c=e.offsetWidth,s=e.offsetHeight;n({width:c,height:s})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}var Qr=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Jr=Qr.reduce((e,t)=>{const n=_n(`Primitive.${t}`),o=a.forwardRef((r,i)=>{const{asChild:c,...s}=r,l=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),x.jsx(l,{...s,ref:i})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{}),ei="Label",kn=a.forwardRef((e,t)=>x.jsx(Jr.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));kn.displayName=ei;var xa=kn;function ti(e,t=globalThis?.document){const n=xe(e);a.useEffect(()=>{const o=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[n,t])}var ni="DismissableLayer",Dt="dismissableLayer.update",oi="dismissableLayer.pointerDownOutside",ri="dismissableLayer.focusOutside",ln,jn=a.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),lt=a.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:i,onInteractOutside:c,onDismiss:s,...l}=e,u=a.useContext(jn),[d,p]=a.useState(null),h=d?.ownerDocument??globalThis?.document,[,m]=a.useState({}),w=H(t,E=>p(E)),f=Array.from(u.layers),[g]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),y=f.indexOf(g),v=d?f.indexOf(d):-1,S=u.layersWithOutsidePointerEventsDisabled.size>0,b=v>=y,C=si(E=>{const O=E.target,_=[...u.branches].some(I=>I.contains(O));!b||_||(r?.(E),c?.(E),E.defaultPrevented||s?.())},h),R=ci(E=>{const O=E.target;[...u.branches].some(I=>I.contains(O))||(i?.(E),c?.(E),E.defaultPrevented||s?.())},h);return ti(E=>{v===u.layers.size-1&&(o?.(E),!E.defaultPrevented&&s&&(E.preventDefault(),s()))},h),a.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(ln=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),un(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=ln)}},[d,h,n,u]),a.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),un())},[d,u]),a.useEffect(()=>{const E=()=>m({});return document.addEventListener(Dt,E),()=>document.removeEventListener(Dt,E)},[]),x.jsx(M.div,{...l,ref:w,style:{pointerEvents:S?b?"auto":"none":void 0,...e.style},onFocusCapture:k(e.onFocusCapture,R.onFocusCapture),onBlurCapture:k(e.onBlurCapture,R.onBlurCapture),onPointerDownCapture:k(e.onPointerDownCapture,C.onPointerDownCapture)})});lt.displayName=ni;var ii="DismissableLayerBranch",Fn=a.forwardRef((e,t)=>{const n=a.useContext(jn),o=a.useRef(null),r=H(t,o);return a.useEffect(()=>{const i=o.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),x.jsx(M.div,{...e,ref:r})});Fn.displayName=ii;function si(e,t=globalThis?.document){const n=xe(e),o=a.useRef(!1),r=a.useRef(()=>{});return a.useEffect(()=>{const i=s=>{if(s.target&&!o.current){let l=function(){Wn(oi,n,u,{discrete:!0})};const u={originalEvent:s};s.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=l,t.addEventListener("click",r.current,{once:!0})):l()}else t.removeEventListener("click",r.current);o.current=!1},c=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(c),t.removeEventListener("pointerdown",i),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function ci(e,t=globalThis?.document){const n=xe(e),o=a.useRef(!1);return a.useEffect(()=>{const r=i=>{i.target&&!o.current&&Wn(ri,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function un(){const e=new CustomEvent(Dt);document.dispatchEvent(e)}function Wn(e,t,n,{discrete:o}){const r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),o?kr(r,i):r.dispatchEvent(i)}var Sa=lt,ba=Fn,Ct="focusScope.autoFocusOnMount",Et="focusScope.autoFocusOnUnmount",fn={bubbles:!1,cancelable:!0},ai="FocusScope",Ht=a.forwardRef((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:i,...c}=e,[s,l]=a.useState(null),u=xe(r),d=xe(i),p=a.useRef(null),h=H(t,f=>l(f)),m=a.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;a.useEffect(()=>{if(o){let f=function(S){if(m.paused||!s)return;const b=S.target;s.contains(b)?p.current=b:ue(p.current,{select:!0})},g=function(S){if(m.paused||!s)return;const b=S.relatedTarget;b!==null&&(s.contains(b)||ue(p.current,{select:!0}))},y=function(S){if(document.activeElement===document.body)for(const C of S)C.removedNodes.length>0&&ue(s)};document.addEventListener("focusin",f),document.addEventListener("focusout",g);const v=new MutationObserver(y);return s&&v.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",f),document.removeEventListener("focusout",g),v.disconnect()}}},[o,s,m.paused]),a.useEffect(()=>{if(s){pn.add(m);const f=document.activeElement;if(!s.contains(f)){const y=new CustomEvent(Ct,fn);s.addEventListener(Ct,u),s.dispatchEvent(y),y.defaultPrevented||(li(mi($n(s)),{select:!0}),document.activeElement===f&&ue(s))}return()=>{s.removeEventListener(Ct,u),setTimeout(()=>{const y=new CustomEvent(Et,fn);s.addEventListener(Et,d),s.dispatchEvent(y),y.defaultPrevented||ue(f??document.body,{select:!0}),s.removeEventListener(Et,d),pn.remove(m)},0)}}},[s,u,d,m]);const w=a.useCallback(f=>{if(!n&&!o||m.paused)return;const g=f.key==="Tab"&&!f.altKey&&!f.ctrlKey&&!f.metaKey,y=document.activeElement;if(g&&y){const v=f.currentTarget,[S,b]=ui(v);S&&b?!f.shiftKey&&y===b?(f.preventDefault(),n&&ue(S,{select:!0})):f.shiftKey&&y===S&&(f.preventDefault(),n&&ue(b,{select:!0})):y===v&&f.preventDefault()}},[n,o,m.paused]);return x.jsx(M.div,{tabIndex:-1,...c,ref:h,onKeyDown:w})});Ht.displayName=ai;function li(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(ue(o,{select:t}),document.activeElement!==n)return}function ui(e){const t=$n(e),n=dn(t,e),o=dn(t.reverse(),e);return[n,o]}function $n(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function dn(e,t){for(const n of e)if(!fi(n,{upTo:t}))return n}function fi(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function di(e){return e instanceof HTMLInputElement&&"select"in e}function ue(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&di(e)&&t&&e.select()}}var pn=pi();function pi(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=mn(e,t),e.unshift(t)},remove(t){e=mn(e,t),e[0]?.resume()}}}function mn(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function mi(e){return e.filter(t=>t.tagName!=="A")}var hi="Portal",Ut=a.forwardRef((e,t)=>{const{container:n,...o}=e,[r,i]=a.useState(!1);K(()=>i(!0),[]);const c=n||r&&globalThis?.document?.body;return c?yr.createPortal(x.jsx(M.div,{...o,ref:t}),c):null});Ut.displayName=hi;var Rt=0;function Bn(){a.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??hn()),document.body.insertAdjacentElement("beforeend",e[1]??hn()),Rt++,()=>{Rt===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Rt--}},[])}function hn(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var ne=function(){return ne=Object.assign||function(t){for(var n,o=1,r=arguments.length;o"u")return Di;var t=_i(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},Li=zn(),Ne="data-scroll-locked",ki=function(e,t,n,o){var r=e.left,i=e.top,c=e.right,s=e.gap;return n===void 0&&(n="margin"),` + .`.concat(vi,` { + overflow: hidden `).concat(o,`; + padding-right: `).concat(s,"px ").concat(o,`; + } + body[`).concat(Ne,`] { + overflow: hidden `).concat(o,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(o,";"),n==="margin"&&` + padding-left: `.concat(r,`px; + padding-top: `).concat(i,`px; + padding-right: `).concat(c,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(s,"px ").concat(o,`; + `),n==="padding"&&"padding-right: ".concat(s,"px ").concat(o,";")].filter(Boolean).join(""),` + } + + .`).concat(Ze,` { + right: `).concat(s,"px ").concat(o,`; + } + + .`).concat(Qe,` { + margin-right: `).concat(s,"px ").concat(o,`; + } + + .`).concat(Ze," .").concat(Ze,` { + right: 0 `).concat(o,`; + } + + .`).concat(Qe," .").concat(Qe,` { + margin-right: 0 `).concat(o,`; + } + + body[`).concat(Ne,`] { + `).concat(yi,": ").concat(s,`px; + } +`)},vn=function(){var e=parseInt(document.body.getAttribute(Ne)||"0",10);return isFinite(e)?e:0},ji=function(){a.useEffect(function(){return document.body.setAttribute(Ne,(vn()+1).toString()),function(){var e=vn()-1;e<=0?document.body.removeAttribute(Ne):document.body.setAttribute(Ne,e.toString())}},[])},Fi=function(e){var t=e.noRelative,n=e.noImportant,o=e.gapMode,r=o===void 0?"margin":o;ji();var i=a.useMemo(function(){return Mi(r)},[r]);return a.createElement(Li,{styles:ki(i,!t,r,n?"":"!important")})},_t=!1;if(typeof window<"u")try{var Ke=Object.defineProperty({},"passive",{get:function(){return _t=!0,!0}});window.addEventListener("test",Ke,Ke),window.removeEventListener("test",Ke,Ke)}catch{_t=!1}var Pe=_t?{passive:!1}:!1,Wi=function(e){return e.tagName==="TEXTAREA"},Kn=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!Wi(e)&&n[t]==="visible")},$i=function(e){return Kn(e,"overflowY")},Bi=function(e){return Kn(e,"overflowX")},yn=function(e,t){var n=t.ownerDocument,o=t;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=Yn(e,o);if(r){var i=Xn(e,o),c=i[1],s=i[2];if(c>s)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},Vi=function(e){var t=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[t,n,o]},Hi=function(e){var t=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[t,n,o]},Yn=function(e,t){return e==="v"?$i(t):Bi(t)},Xn=function(e,t){return e==="v"?Vi(t):Hi(t)},Ui=function(e,t){return e==="h"&&t==="rtl"?-1:1},zi=function(e,t,n,o,r){var i=Ui(e,window.getComputedStyle(t).direction),c=i*o,s=n.target,l=t.contains(s),u=!1,d=c>0,p=0,h=0;do{if(!s)break;var m=Xn(e,s),w=m[0],f=m[1],g=m[2],y=f-g-i*w;(w||y)&&Yn(e,s)&&(p+=y,h+=w);var v=s.parentNode;s=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!l&&s!==document.body||l&&(t.contains(s)||t===s));return(d&&Math.abs(p)<1||!d&&Math.abs(h)<1)&&(u=!0),u},Ye=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},wn=function(e){return[e.deltaX,e.deltaY]},xn=function(e){return e&&"current"in e?e.current:e},Ki=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Yi=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Xi=0,Ae=[];function Gi(e){var t=a.useRef([]),n=a.useRef([0,0]),o=a.useRef(),r=a.useState(Xi++)[0],i=a.useState(zn)[0],c=a.useRef(e);a.useEffect(function(){c.current=e},[e]),a.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var f=gi([e.lockRef.current],(e.shards||[]).map(xn),!0).filter(Boolean);return f.forEach(function(g){return g.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),f.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var s=a.useCallback(function(f,g){if("touches"in f&&f.touches.length===2||f.type==="wheel"&&f.ctrlKey)return!c.current.allowPinchZoom;var y=Ye(f),v=n.current,S="deltaX"in f?f.deltaX:v[0]-y[0],b="deltaY"in f?f.deltaY:v[1]-y[1],C,R=f.target,E=Math.abs(S)>Math.abs(b)?"h":"v";if("touches"in f&&E==="h"&&R.type==="range")return!1;var O=yn(E,R);if(!O)return!0;if(O?C=E:(C=E==="v"?"h":"v",O=yn(E,R)),!O)return!1;if(!o.current&&"changedTouches"in f&&(S||b)&&(o.current=C),!C)return!0;var _=o.current||C;return zi(_,g,f,_==="h"?S:b)},[]),l=a.useCallback(function(f){var g=f;if(!(!Ae.length||Ae[Ae.length-1]!==i)){var y="deltaY"in g?wn(g):Ye(g),v=t.current.filter(function(C){return C.name===g.type&&(C.target===g.target||g.target===C.shadowParent)&&Ki(C.delta,y)})[0];if(v&&v.should){g.cancelable&&g.preventDefault();return}if(!v){var S=(c.current.shards||[]).map(xn).filter(Boolean).filter(function(C){return C.contains(g.target)}),b=S.length>0?s(g,S[0]):!c.current.noIsolation;b&&g.cancelable&&g.preventDefault()}}},[]),u=a.useCallback(function(f,g,y,v){var S={name:f,delta:g,target:y,should:v,shadowParent:qi(y)};t.current.push(S),setTimeout(function(){t.current=t.current.filter(function(b){return b!==S})},1)},[]),d=a.useCallback(function(f){n.current=Ye(f),o.current=void 0},[]),p=a.useCallback(function(f){u(f.type,wn(f),f.target,s(f,e.lockRef.current))},[]),h=a.useCallback(function(f){u(f.type,Ye(f),f.target,s(f,e.lockRef.current))},[]);a.useEffect(function(){return Ae.push(i),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:h}),document.addEventListener("wheel",l,Pe),document.addEventListener("touchmove",l,Pe),document.addEventListener("touchstart",d,Pe),function(){Ae=Ae.filter(function(f){return f!==i}),document.removeEventListener("wheel",l,Pe),document.removeEventListener("touchmove",l,Pe),document.removeEventListener("touchstart",d,Pe)}},[]);var m=e.removeScrollBar,w=e.inert;return a.createElement(a.Fragment,null,w?a.createElement(i,{styles:Yi(r)}):null,m?a.createElement(Fi,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function qi(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Zi=Ri(Un,Gi);var zt=a.forwardRef(function(e,t){return a.createElement(ut,ne({},e,{ref:t,sideCar:Zi}))});zt.classNames=ut.classNames;var Qi=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Oe=new WeakMap,Xe=new WeakMap,Ge={},Tt=0,Gn=function(e){return e&&(e.host||Gn(e.parentNode))},Ji=function(e,t){return t.map(function(n){if(e.contains(n))return n;var o=Gn(n);return o&&e.contains(o)?o:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},es=function(e,t,n,o){var r=Ji(t,Array.isArray(e)?e:[e]);Ge[n]||(Ge[n]=new WeakMap);var i=Ge[n],c=[],s=new Set,l=new Set(r),u=function(p){!p||s.has(p)||(s.add(p),u(p.parentNode))};r.forEach(u);var d=function(p){!p||l.has(p)||Array.prototype.forEach.call(p.children,function(h){if(s.has(h))d(h);else try{var m=h.getAttribute(o),w=m!==null&&m!=="false",f=(Oe.get(h)||0)+1,g=(i.get(h)||0)+1;Oe.set(h,f),i.set(h,g),c.push(h),f===1&&w&&Xe.set(h,!0),g===1&&h.setAttribute(n,"true"),w||h.setAttribute(o,"true")}catch(y){console.error("aria-hidden: cannot operate on ",h,y)}})};return d(t),s.clear(),Tt++,function(){c.forEach(function(p){var h=Oe.get(p)-1,m=i.get(p)-1;Oe.set(p,h),i.set(p,m),h||(Xe.has(p)||p.removeAttribute(o),Xe.delete(p)),m||p.removeAttribute(n)}),Tt--,Tt||(Oe=new WeakMap,Oe=new WeakMap,Xe=new WeakMap,Ge={})}},qn=function(e,t,n){n===void 0&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=Qi(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),es(o,r,n,"aria-hidden")):function(){return null}};function ts(e){const t=ns(e),n=a.forwardRef((o,r)=>{const{children:i,...c}=o,s=a.Children.toArray(i),l=s.find(rs);if(l){const u=l.props.children,d=s.map(p=>p===l?a.Children.count(u)>1?a.Children.only(null):a.isValidElement(u)?u.props.children:null:p);return x.jsx(t,{...c,ref:r,children:a.isValidElement(u)?a.cloneElement(u,void 0,d):null})}return x.jsx(t,{...c,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}function ns(e){const t=a.forwardRef((n,o)=>{const{children:r,...i}=n;if(a.isValidElement(r)){const c=ss(r),s=is(i,r.props);return r.type!==a.Fragment&&(s.ref=o?_e(o,c):c),a.cloneElement(r,s)}return a.Children.count(r)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var os=Symbol("radix.slottable");function rs(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===os}function is(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...s)=>{const l=i(...s);return r(...s),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function ss(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ft="Dialog",[Zn,Ca]=Ve(ft),[cs,te]=Zn(ft),Qn=e=>{const{__scopeDialog:t,children:n,open:o,defaultOpen:r,onOpenChange:i,modal:c=!0}=e,s=a.useRef(null),l=a.useRef(null),[u,d]=et({prop:o,defaultProp:r??!1,onChange:i,caller:ft});return x.jsx(cs,{scope:t,triggerRef:s,contentRef:l,contentId:Te(),titleId:Te(),descriptionId:Te(),open:u,onOpenChange:d,onOpenToggle:a.useCallback(()=>d(p=>!p),[d]),modal:c,children:n})};Qn.displayName=ft;var Jn="DialogTrigger",eo=a.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=te(Jn,n),i=H(t,r.triggerRef);return x.jsx(M.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.contentId,"data-state":Xt(r.open),...o,ref:i,onClick:k(e.onClick,r.onOpenToggle)})});eo.displayName=Jn;var Kt="DialogPortal",[as,to]=Zn(Kt,{forceMount:void 0}),no=e=>{const{__scopeDialog:t,forceMount:n,children:o,container:r}=e,i=te(Kt,t);return x.jsx(as,{scope:t,forceMount:n,children:a.Children.map(o,c=>x.jsx(He,{present:n||i.open,children:x.jsx(Ut,{asChild:!0,container:r,children:c})}))})};no.displayName=Kt;var nt="DialogOverlay",oo=a.forwardRef((e,t)=>{const n=to(nt,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,i=te(nt,e.__scopeDialog);return i.modal?x.jsx(He,{present:o||i.open,children:x.jsx(us,{...r,ref:t})}):null});oo.displayName=nt;var ls=ts("DialogOverlay.RemoveScroll"),us=a.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=te(nt,n);return x.jsx(zt,{as:ls,allowPinchZoom:!0,shards:[r.contentRef],children:x.jsx(M.div,{"data-state":Xt(r.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})}),Se="DialogContent",ro=a.forwardRef((e,t)=>{const n=to(Se,e.__scopeDialog),{forceMount:o=n.forceMount,...r}=e,i=te(Se,e.__scopeDialog);return x.jsx(He,{present:o||i.open,children:i.modal?x.jsx(fs,{...r,ref:t}):x.jsx(ds,{...r,ref:t})})});ro.displayName=Se;var fs=a.forwardRef((e,t)=>{const n=te(Se,e.__scopeDialog),o=a.useRef(null),r=H(t,n.contentRef,o);return a.useEffect(()=>{const i=o.current;if(i)return qn(i)},[]),x.jsx(io,{...e,ref:r,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:k(e.onCloseAutoFocus,i=>{i.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:k(e.onPointerDownOutside,i=>{const c=i.detail.originalEvent,s=c.button===0&&c.ctrlKey===!0;(c.button===2||s)&&i.preventDefault()}),onFocusOutside:k(e.onFocusOutside,i=>i.preventDefault())})}),ds=a.forwardRef((e,t)=>{const n=te(Se,e.__scopeDialog),o=a.useRef(!1),r=a.useRef(!1);return x.jsx(io,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{e.onCloseAutoFocus?.(i),i.defaultPrevented||(o.current||n.triggerRef.current?.focus(),i.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:i=>{e.onInteractOutside?.(i),i.defaultPrevented||(o.current=!0,i.detail.originalEvent.type==="pointerdown"&&(r.current=!0));const c=i.target;n.triggerRef.current?.contains(c)&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&r.current&&i.preventDefault()}})}),io=a.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:i,...c}=e,s=te(Se,n),l=a.useRef(null),u=H(t,l);return Bn(),x.jsxs(x.Fragment,{children:[x.jsx(Ht,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:i,children:x.jsx(lt,{role:"dialog",id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":Xt(s.open),...c,ref:u,onDismiss:()=>s.onOpenChange(!1)})}),x.jsxs(x.Fragment,{children:[x.jsx(ps,{titleId:s.titleId}),x.jsx(hs,{contentRef:l,descriptionId:s.descriptionId})]})]})}),Yt="DialogTitle",so=a.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=te(Yt,n);return x.jsx(M.h2,{id:r.titleId,...o,ref:t})});so.displayName=Yt;var co="DialogDescription",ao=a.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=te(co,n);return x.jsx(M.p,{id:r.descriptionId,...o,ref:t})});ao.displayName=co;var lo="DialogClose",uo=a.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,r=te(lo,n);return x.jsx(M.button,{type:"button",...o,ref:t,onClick:k(e.onClick,()=>r.onOpenChange(!1))})});uo.displayName=lo;function Xt(e){return e?"open":"closed"}var fo="DialogTitleWarning",[Ea,po]=wr(fo,{contentName:Se,titleName:Yt,docsSlug:"dialog"}),ps=({titleId:e})=>{const t=po(fo),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return a.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},ms="DialogDescriptionWarning",hs=({contentRef:e,descriptionId:t})=>{const o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${po(ms).contentName}}.`;return a.useEffect(()=>{const r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},Ra=Qn,Pa=eo,Aa=no,Oa=oo,Ta=ro,Na=so,Ia=ao,Da=uo;const gs=["top","right","bottom","left"],de=Math.min,G=Math.max,ot=Math.round,qe=Math.floor,re=e=>({x:e,y:e}),vs={left:"right",right:"left",bottom:"top",top:"bottom"},ys={start:"end",end:"start"};function Mt(e,t,n){return G(e,de(t,n))}function ce(e,t){return typeof e=="function"?e(t):e}function ae(e){return e.split("-")[0]}function Me(e){return e.split("-")[1]}function Gt(e){return e==="x"?"y":"x"}function qt(e){return e==="y"?"height":"width"}const ws=new Set(["top","bottom"]);function oe(e){return ws.has(ae(e))?"y":"x"}function Zt(e){return Gt(oe(e))}function xs(e,t,n){n===void 0&&(n=!1);const o=Me(e),r=Zt(e),i=qt(r);let c=r==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(c=rt(c)),[c,rt(c)]}function Ss(e){const t=rt(e);return[Lt(e),t,Lt(t)]}function Lt(e){return e.replace(/start|end/g,t=>ys[t])}const Sn=["left","right"],bn=["right","left"],bs=["top","bottom"],Cs=["bottom","top"];function Es(e,t,n){switch(e){case"top":case"bottom":return n?t?bn:Sn:t?Sn:bn;case"left":case"right":return t?bs:Cs;default:return[]}}function Rs(e,t,n,o){const r=Me(e);let i=Es(ae(e),n==="start",o);return r&&(i=i.map(c=>c+"-"+r),t&&(i=i.concat(i.map(Lt)))),i}function rt(e){return e.replace(/left|right|bottom|top/g,t=>vs[t])}function Ps(e){return{top:0,right:0,bottom:0,left:0,...e}}function mo(e){return typeof e!="number"?Ps(e):{top:e,right:e,bottom:e,left:e}}function it(e){const{x:t,y:n,width:o,height:r}=e;return{width:o,height:r,top:n,left:t,right:t+o,bottom:n+r,x:t,y:n}}function Cn(e,t,n){let{reference:o,floating:r}=e;const i=oe(t),c=Zt(t),s=qt(c),l=ae(t),u=i==="y",d=o.x+o.width/2-r.width/2,p=o.y+o.height/2-r.height/2,h=o[s]/2-r[s]/2;let m;switch(l){case"top":m={x:d,y:o.y-r.height};break;case"bottom":m={x:d,y:o.y+o.height};break;case"right":m={x:o.x+o.width,y:p};break;case"left":m={x:o.x-r.width,y:p};break;default:m={x:o.x,y:o.y}}switch(Me(t)){case"start":m[c]-=h*(n&&u?-1:1);break;case"end":m[c]+=h*(n&&u?-1:1);break}return m}const As=async(e,t,n)=>{const{placement:o="bottom",strategy:r="absolute",middleware:i=[],platform:c}=n,s=i.filter(Boolean),l=await(c.isRTL==null?void 0:c.isRTL(t));let u=await c.getElementRects({reference:e,floating:t,strategy:r}),{x:d,y:p}=Cn(u,o,l),h=o,m={},w=0;for(let f=0;f({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:r,rects:i,platform:c,elements:s,middlewareData:l}=t,{element:u,padding:d=0}=ce(e,t)||{};if(u==null)return{};const p=mo(d),h={x:n,y:o},m=Zt(r),w=qt(m),f=await c.getDimensions(u),g=m==="y",y=g?"top":"left",v=g?"bottom":"right",S=g?"clientHeight":"clientWidth",b=i.reference[w]+i.reference[m]-h[m]-i.floating[w],C=h[m]-i.reference[m],R=await(c.getOffsetParent==null?void 0:c.getOffsetParent(u));let E=R?R[S]:0;(!E||!await(c.isElement==null?void 0:c.isElement(R)))&&(E=s.floating[S]||i.floating[w]);const O=b/2-C/2,_=E/2-f[w]/2-1,I=de(p[y],_),j=de(p[v],_),F=I,L=E-f[w]-j,N=E/2-f[w]/2+O,V=Mt(F,N,L),T=!l.arrow&&Me(r)!=null&&N!==V&&i.reference[w]/2-(NN<=0)){var j,F;const N=(((j=i.flip)==null?void 0:j.index)||0)+1,V=E[N];if(V&&(!(p==="alignment"?v!==oe(V):!1)||I.every(A=>oe(A.placement)===v?A.overflows[0]>0:!0)))return{data:{index:N,overflows:I},reset:{placement:V}};let T=(F=I.filter(D=>D.overflows[0]<=0).sort((D,A)=>D.overflows[1]-A.overflows[1])[0])==null?void 0:F.placement;if(!T)switch(m){case"bestFit":{var L;const D=(L=I.filter(A=>{if(R){const W=oe(A.placement);return W===v||W==="y"}return!0}).map(A=>[A.placement,A.overflows.filter(W=>W>0).reduce((W,X)=>W+X,0)]).sort((A,W)=>A[1]-W[1])[0])==null?void 0:L[0];D&&(T=D);break}case"initialPlacement":T=s;break}if(r!==T)return{reset:{placement:T}}}return{}}}};function En(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Rn(e){return gs.some(t=>e[t]>=0)}const Ns=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:o="referenceHidden",...r}=ce(e,t);switch(o){case"referenceHidden":{const i=await $e(t,{...r,elementContext:"reference"}),c=En(i,n.reference);return{data:{referenceHiddenOffsets:c,referenceHidden:Rn(c)}}}case"escaped":{const i=await $e(t,{...r,altBoundary:!0}),c=En(i,n.floating);return{data:{escapedOffsets:c,escaped:Rn(c)}}}default:return{}}}}},ho=new Set(["left","top"]);async function Is(e,t){const{placement:n,platform:o,elements:r}=e,i=await(o.isRTL==null?void 0:o.isRTL(r.floating)),c=ae(n),s=Me(n),l=oe(n)==="y",u=ho.has(c)?-1:1,d=i&&l?-1:1,p=ce(t,e);let{mainAxis:h,crossAxis:m,alignmentAxis:w}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return s&&typeof w=="number"&&(m=s==="end"?w*-1:w),l?{x:m*d,y:h*u}:{x:h*u,y:m*d}}const Ds=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:r,y:i,placement:c,middlewareData:s}=t,l=await Is(t,e);return c===((n=s.offset)==null?void 0:n.placement)&&(o=s.arrow)!=null&&o.alignmentOffset?{}:{x:r+l.x,y:i+l.y,data:{...l,placement:c}}}}},_s=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:r}=t,{mainAxis:i=!0,crossAxis:c=!1,limiter:s={fn:g=>{let{x:y,y:v}=g;return{x:y,y:v}}},...l}=ce(e,t),u={x:n,y:o},d=await $e(t,l),p=oe(ae(r)),h=Gt(p);let m=u[h],w=u[p];if(i){const g=h==="y"?"top":"left",y=h==="y"?"bottom":"right",v=m+d[g],S=m-d[y];m=Mt(v,m,S)}if(c){const g=p==="y"?"top":"left",y=p==="y"?"bottom":"right",v=w+d[g],S=w-d[y];w=Mt(v,w,S)}const f=s.fn({...t,[h]:m,[p]:w});return{...f,data:{x:f.x-n,y:f.y-o,enabled:{[h]:i,[p]:c}}}}}},Ms=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:r,rects:i,middlewareData:c}=t,{offset:s=0,mainAxis:l=!0,crossAxis:u=!0}=ce(e,t),d={x:n,y:o},p=oe(r),h=Gt(p);let m=d[h],w=d[p];const f=ce(s,t),g=typeof f=="number"?{mainAxis:f,crossAxis:0}:{mainAxis:0,crossAxis:0,...f};if(l){const S=h==="y"?"height":"width",b=i.reference[h]-i.floating[S]+g.mainAxis,C=i.reference[h]+i.reference[S]-g.mainAxis;mC&&(m=C)}if(u){var y,v;const S=h==="y"?"width":"height",b=ho.has(ae(r)),C=i.reference[p]-i.floating[S]+(b&&((y=c.offset)==null?void 0:y[p])||0)+(b?0:g.crossAxis),R=i.reference[p]+i.reference[S]+(b?0:((v=c.offset)==null?void 0:v[p])||0)-(b?g.crossAxis:0);wR&&(w=R)}return{[h]:m,[p]:w}}}},Ls=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:r,rects:i,platform:c,elements:s}=t,{apply:l=()=>{},...u}=ce(e,t),d=await $e(t,u),p=ae(r),h=Me(r),m=oe(r)==="y",{width:w,height:f}=i.floating;let g,y;p==="top"||p==="bottom"?(g=p,y=h===(await(c.isRTL==null?void 0:c.isRTL(s.floating))?"start":"end")?"left":"right"):(y=p,g=h==="end"?"top":"bottom");const v=f-d.top-d.bottom,S=w-d.left-d.right,b=de(f-d[g],v),C=de(w-d[y],S),R=!t.middlewareData.shift;let E=b,O=C;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(O=S),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(E=v),R&&!h){const I=G(d.left,0),j=G(d.right,0),F=G(d.top,0),L=G(d.bottom,0);m?O=w-2*(I!==0||j!==0?I+j:G(d.left,d.right)):E=f-2*(F!==0||L!==0?F+L:G(d.top,d.bottom))}await l({...t,availableWidth:O,availableHeight:E});const _=await c.getDimensions(s.floating);return w!==_.width||f!==_.height?{reset:{rects:!0}}:{}}}};function dt(){return typeof window<"u"}function Le(e){return go(e)?(e.nodeName||"").toLowerCase():"#document"}function q(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function se(e){var t;return(t=(go(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function go(e){return dt()?e instanceof Node||e instanceof q(e).Node:!1}function J(e){return dt()?e instanceof Element||e instanceof q(e).Element:!1}function ie(e){return dt()?e instanceof HTMLElement||e instanceof q(e).HTMLElement:!1}function Pn(e){return!dt()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof q(e).ShadowRoot}const ks=new Set(["inline","contents"]);function Ue(e){const{overflow:t,overflowX:n,overflowY:o,display:r}=ee(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!ks.has(r)}const js=new Set(["table","td","th"]);function Fs(e){return js.has(Le(e))}const Ws=[":popover-open",":modal"];function pt(e){return Ws.some(t=>{try{return e.matches(t)}catch{return!1}})}const $s=["transform","translate","scale","rotate","perspective"],Bs=["transform","translate","scale","rotate","perspective","filter"],Vs=["paint","layout","strict","content"];function Qt(e){const t=Jt(),n=J(e)?ee(e):e;return $s.some(o=>n[o]?n[o]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||Bs.some(o=>(n.willChange||"").includes(o))||Vs.some(o=>(n.contain||"").includes(o))}function Hs(e){let t=pe(e);for(;ie(t)&&!De(t);){if(Qt(t))return t;if(pt(t))return null;t=pe(t)}return null}function Jt(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const Us=new Set(["html","body","#document"]);function De(e){return Us.has(Le(e))}function ee(e){return q(e).getComputedStyle(e)}function mt(e){return J(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function pe(e){if(Le(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Pn(e)&&e.host||se(e);return Pn(t)?t.host:t}function vo(e){const t=pe(e);return De(t)?e.ownerDocument?e.ownerDocument.body:e.body:ie(t)&&Ue(t)?t:vo(t)}function Be(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=vo(e),i=r===((o=e.ownerDocument)==null?void 0:o.body),c=q(r);if(i){const s=kt(c);return t.concat(c,c.visualViewport||[],Ue(r)?r:[],s&&n?Be(s):[])}return t.concat(r,Be(r,[],n))}function kt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function yo(e){const t=ee(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const r=ie(e),i=r?e.offsetWidth:n,c=r?e.offsetHeight:o,s=ot(n)!==i||ot(o)!==c;return s&&(n=i,o=c),{width:n,height:o,$:s}}function en(e){return J(e)?e:e.contextElement}function Ie(e){const t=en(e);if(!ie(t))return re(1);const n=t.getBoundingClientRect(),{width:o,height:r,$:i}=yo(t);let c=(i?ot(n.width):n.width)/o,s=(i?ot(n.height):n.height)/r;return(!c||!Number.isFinite(c))&&(c=1),(!s||!Number.isFinite(s))&&(s=1),{x:c,y:s}}const zs=re(0);function wo(e){const t=q(e);return!Jt()||!t.visualViewport?zs:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ks(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==q(e)?!1:t}function be(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),i=en(e);let c=re(1);t&&(o?J(o)&&(c=Ie(o)):c=Ie(e));const s=Ks(i,n,o)?wo(i):re(0);let l=(r.left+s.x)/c.x,u=(r.top+s.y)/c.y,d=r.width/c.x,p=r.height/c.y;if(i){const h=q(i),m=o&&J(o)?q(o):o;let w=h,f=kt(w);for(;f&&o&&m!==w;){const g=Ie(f),y=f.getBoundingClientRect(),v=ee(f),S=y.left+(f.clientLeft+parseFloat(v.paddingLeft))*g.x,b=y.top+(f.clientTop+parseFloat(v.paddingTop))*g.y;l*=g.x,u*=g.y,d*=g.x,p*=g.y,l+=S,u+=b,w=q(f),f=kt(w)}}return it({width:d,height:p,x:l,y:u})}function ht(e,t){const n=mt(e).scrollLeft;return t?t.left+n:be(se(e)).left+n}function xo(e,t){const n=e.getBoundingClientRect(),o=n.left+t.scrollLeft-ht(e,n),r=n.top+t.scrollTop;return{x:o,y:r}}function Ys(e){let{elements:t,rect:n,offsetParent:o,strategy:r}=e;const i=r==="fixed",c=se(o),s=t?pt(t.floating):!1;if(o===c||s&&i)return n;let l={scrollLeft:0,scrollTop:0},u=re(1);const d=re(0),p=ie(o);if((p||!p&&!i)&&((Le(o)!=="body"||Ue(c))&&(l=mt(o)),ie(o))){const m=be(o);u=Ie(o),d.x=m.x+o.clientLeft,d.y=m.y+o.clientTop}const h=c&&!p&&!i?xo(c,l):re(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+d.x+h.x,y:n.y*u.y-l.scrollTop*u.y+d.y+h.y}}function Xs(e){return Array.from(e.getClientRects())}function Gs(e){const t=se(e),n=mt(e),o=e.ownerDocument.body,r=G(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),i=G(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let c=-n.scrollLeft+ht(e);const s=-n.scrollTop;return ee(o).direction==="rtl"&&(c+=G(t.clientWidth,o.clientWidth)-r),{width:r,height:i,x:c,y:s}}const An=25;function qs(e,t){const n=q(e),o=se(e),r=n.visualViewport;let i=o.clientWidth,c=o.clientHeight,s=0,l=0;if(r){i=r.width,c=r.height;const d=Jt();(!d||d&&t==="fixed")&&(s=r.offsetLeft,l=r.offsetTop)}const u=ht(o);if(u<=0){const d=o.ownerDocument,p=d.body,h=getComputedStyle(p),m=d.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,w=Math.abs(o.clientWidth-p.clientWidth-m);w<=An&&(i-=w)}else u<=An&&(i+=u);return{width:i,height:c,x:s,y:l}}const Zs=new Set(["absolute","fixed"]);function Qs(e,t){const n=be(e,!0,t==="fixed"),o=n.top+e.clientTop,r=n.left+e.clientLeft,i=ie(e)?Ie(e):re(1),c=e.clientWidth*i.x,s=e.clientHeight*i.y,l=r*i.x,u=o*i.y;return{width:c,height:s,x:l,y:u}}function On(e,t,n){let o;if(t==="viewport")o=qs(e,n);else if(t==="document")o=Gs(se(e));else if(J(t))o=Qs(t,n);else{const r=wo(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return it(o)}function So(e,t){const n=pe(e);return n===t||!J(n)||De(n)?!1:ee(n).position==="fixed"||So(n,t)}function Js(e,t){const n=t.get(e);if(n)return n;let o=Be(e,[],!1).filter(s=>J(s)&&Le(s)!=="body"),r=null;const i=ee(e).position==="fixed";let c=i?pe(e):e;for(;J(c)&&!De(c);){const s=ee(c),l=Qt(c);!l&&s.position==="fixed"&&(r=null),(i?!l&&!r:!l&&s.position==="static"&&!!r&&Zs.has(r.position)||Ue(c)&&!l&&So(e,c))?o=o.filter(d=>d!==c):r=s,c=pe(c)}return t.set(e,o),o}function ec(e){let{element:t,boundary:n,rootBoundary:o,strategy:r}=e;const c=[...n==="clippingAncestors"?pt(t)?[]:Js(t,this._c):[].concat(n),o],s=c[0],l=c.reduce((u,d)=>{const p=On(t,d,r);return u.top=G(p.top,u.top),u.right=de(p.right,u.right),u.bottom=de(p.bottom,u.bottom),u.left=G(p.left,u.left),u},On(t,s,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function tc(e){const{width:t,height:n}=yo(e);return{width:t,height:n}}function nc(e,t,n){const o=ie(t),r=se(t),i=n==="fixed",c=be(e,!0,i,t);let s={scrollLeft:0,scrollTop:0};const l=re(0);function u(){l.x=ht(r)}if(o||!o&&!i)if((Le(t)!=="body"||Ue(r))&&(s=mt(t)),o){const m=be(t,!0,i,t);l.x=m.x+t.clientLeft,l.y=m.y+t.clientTop}else r&&u();i&&!o&&r&&u();const d=r&&!o&&!i?xo(r,s):re(0),p=c.left+s.scrollLeft-l.x-d.x,h=c.top+s.scrollTop-l.y-d.y;return{x:p,y:h,width:c.width,height:c.height}}function Nt(e){return ee(e).position==="static"}function Tn(e,t){if(!ie(e)||ee(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return se(e)===n&&(n=n.ownerDocument.body),n}function bo(e,t){const n=q(e);if(pt(e))return n;if(!ie(e)){let r=pe(e);for(;r&&!De(r);){if(J(r)&&!Nt(r))return r;r=pe(r)}return n}let o=Tn(e,t);for(;o&&Fs(o)&&Nt(o);)o=Tn(o,t);return o&&De(o)&&Nt(o)&&!Qt(o)?n:o||Hs(e)||n}const oc=async function(e){const t=this.getOffsetParent||bo,n=this.getDimensions,o=await n(e.floating);return{reference:nc(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function rc(e){return ee(e).direction==="rtl"}const ic={convertOffsetParentRelativeRectToViewportRelativeRect:Ys,getDocumentElement:se,getClippingRect:ec,getOffsetParent:bo,getElementRects:oc,getClientRects:Xs,getDimensions:tc,getScale:Ie,isElement:J,isRTL:rc};function Co(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function sc(e,t){let n=null,o;const r=se(e);function i(){var s;clearTimeout(o),(s=n)==null||s.disconnect(),n=null}function c(s,l){s===void 0&&(s=!1),l===void 0&&(l=1),i();const u=e.getBoundingClientRect(),{left:d,top:p,width:h,height:m}=u;if(s||t(),!h||!m)return;const w=qe(p),f=qe(r.clientWidth-(d+h)),g=qe(r.clientHeight-(p+m)),y=qe(d),S={rootMargin:-w+"px "+-f+"px "+-g+"px "+-y+"px",threshold:G(0,de(1,l))||1};let b=!0;function C(R){const E=R[0].intersectionRatio;if(E!==l){if(!b)return c();E?c(!1,E):o=setTimeout(()=>{c(!1,1e-7)},1e3)}E===1&&!Co(u,e.getBoundingClientRect())&&c(),b=!1}try{n=new IntersectionObserver(C,{...S,root:r.ownerDocument})}catch{n=new IntersectionObserver(C,S)}n.observe(e)}return c(!0),i}function cc(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:c=typeof ResizeObserver=="function",layoutShift:s=typeof IntersectionObserver=="function",animationFrame:l=!1}=o,u=en(e),d=r||i?[...u?Be(u):[],...Be(t)]:[];d.forEach(y=>{r&&y.addEventListener("scroll",n,{passive:!0}),i&&y.addEventListener("resize",n)});const p=u&&s?sc(u,n):null;let h=-1,m=null;c&&(m=new ResizeObserver(y=>{let[v]=y;v&&v.target===u&&m&&(m.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var S;(S=m)==null||S.observe(t)})),n()}),u&&!l&&m.observe(u),m.observe(t));let w,f=l?be(e):null;l&&g();function g(){const y=be(e);f&&!Co(f,y)&&n(),f=y,w=requestAnimationFrame(g)}return n(),()=>{var y;d.forEach(v=>{r&&v.removeEventListener("scroll",n),i&&v.removeEventListener("resize",n)}),p?.(),(y=m)==null||y.disconnect(),m=null,l&&cancelAnimationFrame(w)}}const ac=Ds,lc=_s,uc=Ts,fc=Ls,dc=Ns,Nn=Os,pc=Ms,mc=(e,t,n)=>{const o=new Map,r={platform:ic,...n},i={...r.platform,_c:o};return As(e,t,{...r,platform:i})};var hc=typeof document<"u",gc=function(){},Je=hc?a.useLayoutEffect:gc;function st(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(!st(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=n;o--!==0;){const i=r[o];if(!(i==="_owner"&&e.$$typeof)&&!st(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function Eo(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function In(e,t){const n=Eo(e);return Math.round(t*n)/n}function It(e){const t=a.useRef(e);return Je(()=>{t.current=e}),t}function vc(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:r,elements:{reference:i,floating:c}={},transform:s=!0,whileElementsMounted:l,open:u}=e,[d,p]=a.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,m]=a.useState(o);st(h,o)||m(o);const[w,f]=a.useState(null),[g,y]=a.useState(null),v=a.useCallback(A=>{A!==R.current&&(R.current=A,f(A))},[]),S=a.useCallback(A=>{A!==E.current&&(E.current=A,y(A))},[]),b=i||w,C=c||g,R=a.useRef(null),E=a.useRef(null),O=a.useRef(d),_=l!=null,I=It(l),j=It(r),F=It(u),L=a.useCallback(()=>{if(!R.current||!E.current)return;const A={placement:t,strategy:n,middleware:h};j.current&&(A.platform=j.current),mc(R.current,E.current,A).then(W=>{const X={...W,isPositioned:F.current!==!1};N.current&&!st(O.current,X)&&(O.current=X,at.flushSync(()=>{p(X)}))})},[h,t,n,j,F]);Je(()=>{u===!1&&O.current.isPositioned&&(O.current.isPositioned=!1,p(A=>({...A,isPositioned:!1})))},[u]);const N=a.useRef(!1);Je(()=>(N.current=!0,()=>{N.current=!1}),[]),Je(()=>{if(b&&(R.current=b),C&&(E.current=C),b&&C){if(I.current)return I.current(b,C,L);L()}},[b,C,L,I,_]);const V=a.useMemo(()=>({reference:R,floating:E,setReference:v,setFloating:S}),[v,S]),T=a.useMemo(()=>({reference:b,floating:C}),[b,C]),D=a.useMemo(()=>{const A={position:n,left:0,top:0};if(!T.floating)return A;const W=In(T.floating,d.x),X=In(T.floating,d.y);return s?{...A,transform:"translate("+W+"px, "+X+"px)",...Eo(T.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:W,top:X}},[n,s,T.floating,d.x,d.y]);return a.useMemo(()=>({...d,update:L,refs:V,elements:T,floatingStyles:D}),[d,L,V,T,D])}const yc=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:r}=typeof e=="function"?e(n):e;return o&&t(o)?o.current!=null?Nn({element:o.current,padding:r}).fn(n):{}:o?Nn({element:o,padding:r}).fn(n):{}}}},wc=(e,t)=>({...ac(e),options:[e,t]}),xc=(e,t)=>({...lc(e),options:[e,t]}),Sc=(e,t)=>({...pc(e),options:[e,t]}),bc=(e,t)=>({...uc(e),options:[e,t]}),Cc=(e,t)=>({...fc(e),options:[e,t]}),Ec=(e,t)=>({...dc(e),options:[e,t]}),Rc=(e,t)=>({...yc(e),options:[e,t]});var Pc="Arrow",Ro=a.forwardRef((e,t)=>{const{children:n,width:o=10,height:r=5,...i}=e;return x.jsx(M.svg,{...i,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:x.jsx("polygon",{points:"0,0 30,0 15,10"})})});Ro.displayName=Pc;var Ac=Ro,tn="Popper",[Po,Ao]=Ve(tn),[Oc,Oo]=Po(tn),To=e=>{const{__scopePopper:t,children:n}=e,[o,r]=a.useState(null);return x.jsx(Oc,{scope:t,anchor:o,onAnchorChange:r,children:n})};To.displayName=tn;var No="PopperAnchor",Io=a.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...r}=e,i=Oo(No,n),c=a.useRef(null),s=H(t,c),l=a.useRef(null);return a.useEffect(()=>{const u=l.current;l.current=o?.current||c.current,u!==l.current&&i.onAnchorChange(l.current)}),o?null:x.jsx(M.div,{...r,ref:s})});Io.displayName=No;var nn="PopperContent",[Tc,Nc]=Po(nn),Do=a.forwardRef((e,t)=>{const{__scopePopper:n,side:o="bottom",sideOffset:r=0,align:i="center",alignOffset:c=0,arrowPadding:s=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:d=0,sticky:p="partial",hideWhenDetached:h=!1,updatePositionStrategy:m="optimized",onPlaced:w,...f}=e,g=Oo(nn,n),[y,v]=a.useState(null),S=H(t,P=>v(P)),[b,C]=a.useState(null),R=Ln(b),E=R?.width??0,O=R?.height??0,_=o+(i!=="center"?"-"+i:""),I=typeof d=="number"?d:{top:0,right:0,bottom:0,left:0,...d},j=Array.isArray(u)?u:[u],F=j.length>0,L={padding:I,boundary:j.filter(Dc),altBoundary:F},{refs:N,floatingStyles:V,placement:T,isPositioned:D,middlewareData:A}=vc({strategy:"fixed",placement:_,whileElementsMounted:(...P)=>cc(...P,{animationFrame:m==="always"}),elements:{reference:g.anchor},middleware:[wc({mainAxis:r+O,alignmentAxis:c}),l&&xc({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?Sc():void 0,...L}),l&&bc({...L}),Cc({...L,apply:({elements:P,rects:U,availableWidth:Y,availableHeight:$})=>{const{width:B,height:z}=U.reference,Z=P.floating.style;Z.setProperty("--radix-popper-available-width",`${Y}px`),Z.setProperty("--radix-popper-available-height",`${$}px`),Z.setProperty("--radix-popper-anchor-width",`${B}px`),Z.setProperty("--radix-popper-anchor-height",`${z}px`)}}),b&&Rc({element:b,padding:s}),_c({arrowWidth:E,arrowHeight:O}),h&&Ec({strategy:"referenceHidden",...L})]}),[W,X]=Lo(T),ge=xe(w);K(()=>{D&&ge?.()},[D,ge]);const je=A.arrow?.x,Fe=A.arrow?.y,le=A.arrow?.centerOffset!==0,[Re,ve]=a.useState();return K(()=>{y&&ve(window.getComputedStyle(y).zIndex)},[y]),x.jsx("div",{ref:N.setFloating,"data-radix-popper-content-wrapper":"",style:{...V,transform:D?V.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Re,"--radix-popper-transform-origin":[A.transformOrigin?.x,A.transformOrigin?.y].join(" "),...A.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:x.jsx(Tc,{scope:n,placedSide:W,onArrowChange:C,arrowX:je,arrowY:Fe,shouldHideArrow:le,children:x.jsx(M.div,{"data-side":W,"data-align":X,...f,ref:S,style:{...f.style,animation:D?void 0:"none"}})})})});Do.displayName=nn;var _o="PopperArrow",Ic={top:"bottom",right:"left",bottom:"top",left:"right"},Mo=a.forwardRef(function(t,n){const{__scopePopper:o,...r}=t,i=Nc(_o,o),c=Ic[i.placedSide];return x.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[c]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:x.jsx(Ac,{...r,ref:n,style:{...r.style,display:"block"}})})});Mo.displayName=_o;function Dc(e){return e!==null}var _c=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:r}=t,c=r.arrow?.centerOffset!==0,s=c?0:e.arrowWidth,l=c?0:e.arrowHeight,[u,d]=Lo(n),p={start:"0%",center:"50%",end:"100%"}[d],h=(r.arrow?.x??0)+s/2,m=(r.arrow?.y??0)+l/2;let w="",f="";return u==="bottom"?(w=c?p:`${h}px`,f=`${-l}px`):u==="top"?(w=c?p:`${h}px`,f=`${o.floating.height+l}px`):u==="right"?(w=`${-l}px`,f=c?p:`${m}px`):u==="left"&&(w=`${o.floating.width+l}px`,f=c?p:`${m}px`),{data:{x:w,y:f}}}});function Lo(e){const[t,n="center"]=e.split("-");return[t,n]}var Mc=To,Lc=Io,kc=Do,jc=Mo;function Fc(e){const t=Wc(e),n=a.forwardRef((o,r)=>{const{children:i,...c}=o,s=a.Children.toArray(i),l=s.find(Bc);if(l){const u=l.props.children,d=s.map(p=>p===l?a.Children.count(u)>1?a.Children.only(null):a.isValidElement(u)?u.props.children:null:p);return x.jsx(t,{...c,ref:r,children:a.isValidElement(u)?a.cloneElement(u,void 0,d):null})}return x.jsx(t,{...c,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}function Wc(e){const t=a.forwardRef((n,o)=>{const{children:r,...i}=n;if(a.isValidElement(r)){const c=Hc(r),s=Vc(i,r.props);return r.type!==a.Fragment&&(s.ref=o?_e(o,c):c),a.cloneElement(r,s)}return a.Children.count(r)>1?a.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var $c=Symbol("radix.slottable");function Bc(e){return a.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===$c}function Vc(e,t){const n={...t};for(const o in t){const r=e[o],i=t[o];/^on[A-Z]/.test(o)?r&&i?n[o]=(...s)=>{const l=i(...s);return r(...s),l}:r&&(n[o]=r):o==="style"?n[o]={...r,...i}:o==="className"&&(n[o]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function Hc(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var ko=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Uc="VisuallyHidden",jo=a.forwardRef((e,t)=>x.jsx(M.span,{...e,ref:t,style:{...ko,...e.style}}));jo.displayName=Uc;var _a=jo,zc=[" ","Enter","ArrowUp","ArrowDown"],Kc=[" ","Enter"],Ce="Select",[gt,vt,Yc]=Pr(Ce),[ke]=Ve(Ce,[Yc,Ao]),yt=Ao(),[Xc,me]=ke(Ce),[Gc,qc]=ke(Ce),Fo=e=>{const{__scopeSelect:t,children:n,open:o,defaultOpen:r,onOpenChange:i,value:c,defaultValue:s,onValueChange:l,dir:u,name:d,autoComplete:p,disabled:h,required:m,form:w}=e,f=yt(t),[g,y]=a.useState(null),[v,S]=a.useState(null),[b,C]=a.useState(!1),R=Br(u),[E,O]=et({prop:o,defaultProp:r??!1,onChange:i,caller:Ce}),[_,I]=et({prop:c,defaultProp:s,onChange:l,caller:Ce}),j=a.useRef(null),F=g?w||!!g.closest("form"):!0,[L,N]=a.useState(new Set),V=Array.from(L).map(T=>T.props.value).join(";");return x.jsx(Mc,{...f,children:x.jsxs(Xc,{required:m,scope:t,trigger:g,onTriggerChange:y,valueNode:v,onValueNodeChange:S,valueNodeHasChildren:b,onValueNodeHasChildrenChange:C,contentId:Te(),value:_,onValueChange:I,open:E,onOpenChange:O,dir:R,triggerPointerDownPosRef:j,disabled:h,children:[x.jsx(gt.Provider,{scope:t,children:x.jsx(Gc,{scope:e.__scopeSelect,onNativeOptionAdd:a.useCallback(T=>{N(D=>new Set(D).add(T))},[]),onNativeOptionRemove:a.useCallback(T=>{N(D=>{const A=new Set(D);return A.delete(T),A})},[]),children:n})}),F?x.jsxs(ar,{"aria-hidden":!0,required:m,tabIndex:-1,name:d,autoComplete:p,value:_,onChange:T=>I(T.target.value),disabled:h,form:w,children:[_===void 0?x.jsx("option",{value:""}):null,Array.from(L)]},V):null]})})};Fo.displayName=Ce;var Wo="SelectTrigger",$o=a.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:o=!1,...r}=e,i=yt(n),c=me(Wo,n),s=c.disabled||o,l=H(t,c.onTriggerChange),u=vt(n),d=a.useRef("touch"),[p,h,m]=ur(f=>{const g=u().filter(S=>!S.disabled),y=g.find(S=>S.value===c.value),v=fr(g,f,y);v!==void 0&&c.onValueChange(v.value)}),w=f=>{s||(c.onOpenChange(!0),m()),f&&(c.triggerPointerDownPosRef.current={x:Math.round(f.pageX),y:Math.round(f.pageY)})};return x.jsx(Lc,{asChild:!0,...i,children:x.jsx(M.button,{type:"button",role:"combobox","aria-controls":c.contentId,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":"none",dir:c.dir,"data-state":c.open?"open":"closed",disabled:s,"data-disabled":s?"":void 0,"data-placeholder":lr(c.value)?"":void 0,...r,ref:l,onClick:k(r.onClick,f=>{f.currentTarget.focus(),d.current!=="mouse"&&w(f)}),onPointerDown:k(r.onPointerDown,f=>{d.current=f.pointerType;const g=f.target;g.hasPointerCapture(f.pointerId)&&g.releasePointerCapture(f.pointerId),f.button===0&&f.ctrlKey===!1&&f.pointerType==="mouse"&&(w(f),f.preventDefault())}),onKeyDown:k(r.onKeyDown,f=>{const g=p.current!=="";!(f.ctrlKey||f.altKey||f.metaKey)&&f.key.length===1&&h(f.key),!(g&&f.key===" ")&&zc.includes(f.key)&&(w(),f.preventDefault())})})})});$o.displayName=Wo;var Bo="SelectValue",Vo=a.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,children:i,placeholder:c="",...s}=e,l=me(Bo,n),{onValueNodeHasChildrenChange:u}=l,d=i!==void 0,p=H(t,l.onValueNodeChange);return K(()=>{u(d)},[u,d]),x.jsx(M.span,{...s,ref:p,style:{pointerEvents:"none"},children:lr(l.value)?x.jsx(x.Fragment,{children:c}):i})});Vo.displayName=Bo;var Zc="SelectIcon",Ho=a.forwardRef((e,t)=>{const{__scopeSelect:n,children:o,...r}=e;return x.jsx(M.span,{"aria-hidden":!0,...r,ref:t,children:o||"▼"})});Ho.displayName=Zc;var Qc="SelectPortal",Uo=e=>x.jsx(Ut,{asChild:!0,...e});Uo.displayName=Qc;var Ee="SelectContent",zo=a.forwardRef((e,t)=>{const n=me(Ee,e.__scopeSelect),[o,r]=a.useState();if(K(()=>{r(new DocumentFragment)},[]),!n.open){const i=o;return i?at.createPortal(x.jsx(Ko,{scope:e.__scopeSelect,children:x.jsx(gt.Slot,{scope:e.__scopeSelect,children:x.jsx("div",{children:e.children})})}),i):null}return x.jsx(Yo,{...e,ref:t})});zo.displayName=Ee;var Q=10,[Ko,he]=ke(Ee),Jc="SelectContentImpl",ea=Fc("SelectContent.RemoveScroll"),Yo=a.forwardRef((e,t)=>{const{__scopeSelect:n,position:o="item-aligned",onCloseAutoFocus:r,onEscapeKeyDown:i,onPointerDownOutside:c,side:s,sideOffset:l,align:u,alignOffset:d,arrowPadding:p,collisionBoundary:h,collisionPadding:m,sticky:w,hideWhenDetached:f,avoidCollisions:g,...y}=e,v=me(Ee,n),[S,b]=a.useState(null),[C,R]=a.useState(null),E=H(t,P=>b(P)),[O,_]=a.useState(null),[I,j]=a.useState(null),F=vt(n),[L,N]=a.useState(!1),V=a.useRef(!1);a.useEffect(()=>{if(S)return qn(S)},[S]),Bn();const T=a.useCallback(P=>{const[U,...Y]=F().map(z=>z.ref.current),[$]=Y.slice(-1),B=document.activeElement;for(const z of P)if(z===B||(z?.scrollIntoView({block:"nearest"}),z===U&&C&&(C.scrollTop=0),z===$&&C&&(C.scrollTop=C.scrollHeight),z?.focus(),document.activeElement!==B))return},[F,C]),D=a.useCallback(()=>T([O,S]),[T,O,S]);a.useEffect(()=>{L&&D()},[L,D]);const{onOpenChange:A,triggerPointerDownPosRef:W}=v;a.useEffect(()=>{if(S){let P={x:0,y:0};const U=$=>{P={x:Math.abs(Math.round($.pageX)-(W.current?.x??0)),y:Math.abs(Math.round($.pageY)-(W.current?.y??0))}},Y=$=>{P.x<=10&&P.y<=10?$.preventDefault():S.contains($.target)||A(!1),document.removeEventListener("pointermove",U),W.current=null};return W.current!==null&&(document.addEventListener("pointermove",U),document.addEventListener("pointerup",Y,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",U),document.removeEventListener("pointerup",Y,{capture:!0})}}},[S,A,W]),a.useEffect(()=>{const P=()=>A(!1);return window.addEventListener("blur",P),window.addEventListener("resize",P),()=>{window.removeEventListener("blur",P),window.removeEventListener("resize",P)}},[A]);const[X,ge]=ur(P=>{const U=F().filter(B=>!B.disabled),Y=U.find(B=>B.ref.current===document.activeElement),$=fr(U,P,Y);$&&setTimeout(()=>$.ref.current.focus())}),je=a.useCallback((P,U,Y)=>{const $=!V.current&&!Y;(v.value!==void 0&&v.value===U||$)&&(_(P),$&&(V.current=!0))},[v.value]),Fe=a.useCallback(()=>S?.focus(),[S]),le=a.useCallback((P,U,Y)=>{const $=!V.current&&!Y;(v.value!==void 0&&v.value===U||$)&&j(P)},[v.value]),Re=o==="popper"?jt:Xo,ve=Re===jt?{side:s,sideOffset:l,align:u,alignOffset:d,arrowPadding:p,collisionBoundary:h,collisionPadding:m,sticky:w,hideWhenDetached:f,avoidCollisions:g}:{};return x.jsx(Ko,{scope:n,content:S,viewport:C,onViewportChange:R,itemRefCallback:je,selectedItem:O,onItemLeave:Fe,itemTextRefCallback:le,focusSelectedItem:D,selectedItemText:I,position:o,isPositioned:L,searchRef:X,children:x.jsx(zt,{as:ea,allowPinchZoom:!0,children:x.jsx(Ht,{asChild:!0,trapped:v.open,onMountAutoFocus:P=>{P.preventDefault()},onUnmountAutoFocus:k(r,P=>{v.trigger?.focus({preventScroll:!0}),P.preventDefault()}),children:x.jsx(lt,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:i,onPointerDownOutside:c,onFocusOutside:P=>P.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:x.jsx(Re,{role:"listbox",id:v.contentId,"data-state":v.open?"open":"closed",dir:v.dir,onContextMenu:P=>P.preventDefault(),...y,...ve,onPlaced:()=>N(!0),ref:E,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:k(y.onKeyDown,P=>{const U=P.ctrlKey||P.altKey||P.metaKey;if(P.key==="Tab"&&P.preventDefault(),!U&&P.key.length===1&&ge(P.key),["ArrowUp","ArrowDown","Home","End"].includes(P.key)){let $=F().filter(B=>!B.disabled).map(B=>B.ref.current);if(["ArrowUp","End"].includes(P.key)&&($=$.slice().reverse()),["ArrowUp","ArrowDown"].includes(P.key)){const B=P.target,z=$.indexOf(B);$=$.slice(z+1)}setTimeout(()=>T($)),P.preventDefault()}})})})})})})});Yo.displayName=Jc;var ta="SelectItemAlignedPosition",Xo=a.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:o,...r}=e,i=me(Ee,n),c=he(Ee,n),[s,l]=a.useState(null),[u,d]=a.useState(null),p=H(t,E=>d(E)),h=vt(n),m=a.useRef(!1),w=a.useRef(!0),{viewport:f,selectedItem:g,selectedItemText:y,focusSelectedItem:v}=c,S=a.useCallback(()=>{if(i.trigger&&i.valueNode&&s&&u&&f&&g&&y){const E=i.trigger.getBoundingClientRect(),O=u.getBoundingClientRect(),_=i.valueNode.getBoundingClientRect(),I=y.getBoundingClientRect();if(i.dir!=="rtl"){const B=I.left-O.left,z=_.left-B,Z=E.left-z,ye=E.width+Z,xt=Math.max(ye,O.width),St=window.innerWidth-Q,bt=an(z,[Q,Math.max(Q,St-xt)]);s.style.minWidth=ye+"px",s.style.left=bt+"px"}else{const B=O.right-I.right,z=window.innerWidth-_.right-B,Z=window.innerWidth-E.right-z,ye=E.width+Z,xt=Math.max(ye,O.width),St=window.innerWidth-Q,bt=an(z,[Q,Math.max(Q,St-xt)]);s.style.minWidth=ye+"px",s.style.right=bt+"px"}const j=h(),F=window.innerHeight-Q*2,L=f.scrollHeight,N=window.getComputedStyle(u),V=parseInt(N.borderTopWidth,10),T=parseInt(N.paddingTop,10),D=parseInt(N.borderBottomWidth,10),A=parseInt(N.paddingBottom,10),W=V+T+L+A+D,X=Math.min(g.offsetHeight*5,W),ge=window.getComputedStyle(f),je=parseInt(ge.paddingTop,10),Fe=parseInt(ge.paddingBottom,10),le=E.top+E.height/2-Q,Re=F-le,ve=g.offsetHeight/2,P=g.offsetTop+ve,U=V+T+P,Y=W-U;if(U<=le){const B=j.length>0&&g===j[j.length-1].ref.current;s.style.bottom="0px";const z=u.clientHeight-f.offsetTop-f.offsetHeight,Z=Math.max(Re,ve+(B?Fe:0)+z+D),ye=U+Z;s.style.height=ye+"px"}else{const B=j.length>0&&g===j[0].ref.current;s.style.top="0px";const Z=Math.max(le,V+f.offsetTop+(B?je:0)+ve)+Y;s.style.height=Z+"px",f.scrollTop=U-le+f.offsetTop}s.style.margin=`${Q}px 0`,s.style.minHeight=X+"px",s.style.maxHeight=F+"px",o?.(),requestAnimationFrame(()=>m.current=!0)}},[h,i.trigger,i.valueNode,s,u,f,g,y,i.dir,o]);K(()=>S(),[S]);const[b,C]=a.useState();K(()=>{u&&C(window.getComputedStyle(u).zIndex)},[u]);const R=a.useCallback(E=>{E&&w.current===!0&&(S(),v?.(),w.current=!1)},[S,v]);return x.jsx(oa,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:m,onScrollButtonChange:R,children:x.jsx("div",{ref:l,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:b},children:x.jsx(M.div,{...r,ref:p,style:{boxSizing:"border-box",maxHeight:"100%",...r.style}})})})});Xo.displayName=ta;var na="SelectPopperPosition",jt=a.forwardRef((e,t)=>{const{__scopeSelect:n,align:o="start",collisionPadding:r=Q,...i}=e,c=yt(n);return x.jsx(kc,{...c,...i,ref:t,align:o,collisionPadding:r,style:{boxSizing:"border-box",...i.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)"}})});jt.displayName=na;var[oa,on]=ke(Ee,{}),Ft="SelectViewport",Go=a.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:o,...r}=e,i=he(Ft,n),c=on(Ft,n),s=H(t,i.onViewportChange),l=a.useRef(0);return x.jsxs(x.Fragment,{children:[x.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:o}),x.jsx(gt.Slot,{scope:n,children:x.jsx(M.div,{"data-radix-select-viewport":"",role:"presentation",...r,ref:s,style:{position:"relative",flex:1,overflow:"hidden auto",...r.style},onScroll:k(r.onScroll,u=>{const d=u.currentTarget,{contentWrapper:p,shouldExpandOnScrollRef:h}=c;if(h?.current&&p){const m=Math.abs(l.current-d.scrollTop);if(m>0){const w=window.innerHeight-Q*2,f=parseFloat(p.style.minHeight),g=parseFloat(p.style.height),y=Math.max(f,g);if(y0?b:0,p.style.justifyContent="flex-end")}}}l.current=d.scrollTop})})})]})});Go.displayName=Ft;var qo="SelectGroup",[ra,ia]=ke(qo),sa=a.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=Te();return x.jsx(ra,{scope:n,id:r,children:x.jsx(M.div,{role:"group","aria-labelledby":r,...o,ref:t})})});sa.displayName=qo;var Zo="SelectLabel",Qo=a.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=ia(Zo,n);return x.jsx(M.div,{id:r.id,...o,ref:t})});Qo.displayName=Zo;var ct="SelectItem",[ca,Jo]=ke(ct),er=a.forwardRef((e,t)=>{const{__scopeSelect:n,value:o,disabled:r=!1,textValue:i,...c}=e,s=me(ct,n),l=he(ct,n),u=s.value===o,[d,p]=a.useState(i??""),[h,m]=a.useState(!1),w=H(t,v=>l.itemRefCallback?.(v,o,r)),f=Te(),g=a.useRef("touch"),y=()=>{r||(s.onValueChange(o),s.onOpenChange(!1))};if(o==="")throw new Error("A 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 x.jsx(ca,{scope:n,value:o,disabled:r,textId:f,isSelected:u,onItemTextChange:a.useCallback(v=>{p(S=>S||(v?.textContent??"").trim())},[]),children:x.jsx(gt.ItemSlot,{scope:n,value:o,disabled:r,textValue:d,children:x.jsx(M.div,{role:"option","aria-labelledby":f,"data-highlighted":h?"":void 0,"aria-selected":u&&h,"data-state":u?"checked":"unchecked","aria-disabled":r||void 0,"data-disabled":r?"":void 0,tabIndex:r?void 0:-1,...c,ref:w,onFocus:k(c.onFocus,()=>m(!0)),onBlur:k(c.onBlur,()=>m(!1)),onClick:k(c.onClick,()=>{g.current!=="mouse"&&y()}),onPointerUp:k(c.onPointerUp,()=>{g.current==="mouse"&&y()}),onPointerDown:k(c.onPointerDown,v=>{g.current=v.pointerType}),onPointerMove:k(c.onPointerMove,v=>{g.current=v.pointerType,r?l.onItemLeave?.():g.current==="mouse"&&v.currentTarget.focus({preventScroll:!0})}),onPointerLeave:k(c.onPointerLeave,v=>{v.currentTarget===document.activeElement&&l.onItemLeave?.()}),onKeyDown:k(c.onKeyDown,v=>{l.searchRef?.current!==""&&v.key===" "||(Kc.includes(v.key)&&y(),v.key===" "&&v.preventDefault())})})})})});er.displayName=ct;var We="SelectItemText",tr=a.forwardRef((e,t)=>{const{__scopeSelect:n,className:o,style:r,...i}=e,c=me(We,n),s=he(We,n),l=Jo(We,n),u=qc(We,n),[d,p]=a.useState(null),h=H(t,y=>p(y),l.onItemTextChange,y=>s.itemTextRefCallback?.(y,l.value,l.disabled)),m=d?.textContent,w=a.useMemo(()=>x.jsx("option",{value:l.value,disabled:l.disabled,children:m},l.value),[l.disabled,l.value,m]),{onNativeOptionAdd:f,onNativeOptionRemove:g}=u;return K(()=>(f(w),()=>g(w)),[f,g,w]),x.jsxs(x.Fragment,{children:[x.jsx(M.span,{id:l.textId,...i,ref:h}),l.isSelected&&c.valueNode&&!c.valueNodeHasChildren?at.createPortal(i.children,c.valueNode):null]})});tr.displayName=We;var nr="SelectItemIndicator",or=a.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return Jo(nr,n).isSelected?x.jsx(M.span,{"aria-hidden":!0,...o,ref:t}):null});or.displayName=nr;var Wt="SelectScrollUpButton",rr=a.forwardRef((e,t)=>{const n=he(Wt,e.__scopeSelect),o=on(Wt,e.__scopeSelect),[r,i]=a.useState(!1),c=H(t,o.onScrollButtonChange);return K(()=>{if(n.viewport&&n.isPositioned){let s=function(){const u=l.scrollTop>0;i(u)};const l=n.viewport;return s(),l.addEventListener("scroll",s),()=>l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),r?x.jsx(sr,{...e,ref:c,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop-l.offsetHeight)}}):null});rr.displayName=Wt;var $t="SelectScrollDownButton",ir=a.forwardRef((e,t)=>{const n=he($t,e.__scopeSelect),o=on($t,e.__scopeSelect),[r,i]=a.useState(!1),c=H(t,o.onScrollButtonChange);return K(()=>{if(n.viewport&&n.isPositioned){let s=function(){const u=l.scrollHeight-l.clientHeight,d=Math.ceil(l.scrollTop)l.removeEventListener("scroll",s)}},[n.viewport,n.isPositioned]),r?x.jsx(sr,{...e,ref:c,onAutoScroll:()=>{const{viewport:s,selectedItem:l}=n;s&&l&&(s.scrollTop=s.scrollTop+l.offsetHeight)}}):null});ir.displayName=$t;var sr=a.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:o,...r}=e,i=he("SelectScrollButton",n),c=a.useRef(null),s=vt(n),l=a.useCallback(()=>{c.current!==null&&(window.clearInterval(c.current),c.current=null)},[]);return a.useEffect(()=>()=>l(),[l]),K(()=>{s().find(d=>d.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[s]),x.jsx(M.div,{"aria-hidden":!0,...r,ref:t,style:{flexShrink:0,...r.style},onPointerDown:k(r.onPointerDown,()=>{c.current===null&&(c.current=window.setInterval(o,50))}),onPointerMove:k(r.onPointerMove,()=>{i.onItemLeave?.(),c.current===null&&(c.current=window.setInterval(o,50))}),onPointerLeave:k(r.onPointerLeave,()=>{l()})})}),aa="SelectSeparator",cr=a.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e;return x.jsx(M.div,{"aria-hidden":!0,...o,ref:t})});cr.displayName=aa;var Bt="SelectArrow",la=a.forwardRef((e,t)=>{const{__scopeSelect:n,...o}=e,r=yt(n),i=me(Bt,n),c=he(Bt,n);return i.open&&c.position==="popper"?x.jsx(jc,{...r,...o,ref:t}):null});la.displayName=Bt;var ua="SelectBubbleInput",ar=a.forwardRef(({__scopeSelect:e,value:t,...n},o)=>{const r=a.useRef(null),i=H(o,r),c=Mn(t);return a.useEffect(()=>{const s=r.current;if(!s)return;const l=window.HTMLSelectElement.prototype,d=Object.getOwnPropertyDescriptor(l,"value").set;if(c!==t&&d){const p=new Event("change",{bubbles:!0});d.call(s,t),s.dispatchEvent(p)}},[c,t]),x.jsx(M.select,{...n,style:{...ko,...n.style},ref:i,defaultValue:t})});ar.displayName=ua;function lr(e){return e===""||e===void 0}function ur(e){const t=xe(e),n=a.useRef(""),o=a.useRef(0),r=a.useCallback(c=>{const s=n.current+c;t(s),(function l(u){n.current=u,window.clearTimeout(o.current),u!==""&&(o.current=window.setTimeout(()=>l(""),1e3))})(s)},[t]),i=a.useCallback(()=>{n.current="",window.clearTimeout(o.current)},[]);return a.useEffect(()=>()=>window.clearTimeout(o.current),[]),[n,r,i]}function fr(e,t,n){const r=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,i=n?e.indexOf(n):-1;let c=fa(e,Math.max(i,0));r.length===1&&(c=c.filter(u=>u!==n));const l=c.find(u=>u.textValue.toLowerCase().startsWith(r.toLowerCase()));return l!==n?l:void 0}function fa(e,t){return e.map((n,o)=>e[(t+o)%e.length])}var Ma=Fo,La=$o,ka=Vo,ja=Ho,Fa=Uo,Wa=zo,$a=Go,Ba=Qo,Va=er,Ha=tr,Ua=or,za=rr,Ka=ir,Ya=cr,wt="Checkbox",[da]=Ve(wt),[pa,rn]=da(wt);function ma(e){const{__scopeCheckbox:t,checked:n,children:o,defaultChecked:r,disabled:i,form:c,name:s,onCheckedChange:l,required:u,value:d="on",internal_do_not_use_render:p}=e,[h,m]=et({prop:n,defaultProp:r??!1,onChange:l,caller:wt}),[w,f]=a.useState(null),[g,y]=a.useState(null),v=a.useRef(!1),S=w?!!c||!!w.closest("form"):!0,b={checked:h,disabled:i,setChecked:m,control:w,setControl:f,name:s,form:c,value:d,hasConsumerStoppedPropagationRef:v,required:u,defaultChecked:fe(r)?!1:r,isFormControl:S,bubbleInput:g,setBubbleInput:y};return x.jsx(pa,{scope:t,...b,children:va(p)?p(b):o})}var dr="CheckboxTrigger",pr=a.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...o},r)=>{const{control:i,value:c,disabled:s,checked:l,required:u,setControl:d,setChecked:p,hasConsumerStoppedPropagationRef:h,isFormControl:m,bubbleInput:w}=rn(dr,e),f=H(r,d),g=a.useRef(l);return a.useEffect(()=>{const y=i?.form;if(y){const v=()=>p(g.current);return y.addEventListener("reset",v),()=>y.removeEventListener("reset",v)}},[i,p]),x.jsx(M.button,{type:"button",role:"checkbox","aria-checked":fe(l)?"mixed":l,"aria-required":u,"data-state":vr(l),"data-disabled":s?"":void 0,disabled:s,value:c,...o,ref:f,onKeyDown:k(t,y=>{y.key==="Enter"&&y.preventDefault()}),onClick:k(n,y=>{p(v=>fe(v)?!0:!v),w&&m&&(h.current=y.isPropagationStopped(),h.current||y.stopPropagation())})})});pr.displayName=dr;var ha=a.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:o,checked:r,defaultChecked:i,required:c,disabled:s,value:l,onCheckedChange:u,form:d,...p}=e;return x.jsx(ma,{__scopeCheckbox:n,checked:r,defaultChecked:i,disabled:s,required:c,onCheckedChange:u,name:o,form:d,value:l,internal_do_not_use_render:({isFormControl:h})=>x.jsxs(x.Fragment,{children:[x.jsx(pr,{...p,ref:t,__scopeCheckbox:n}),h&&x.jsx(gr,{__scopeCheckbox:n})]})})});ha.displayName=wt;var mr="CheckboxIndicator",ga=a.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:o,...r}=e,i=rn(mr,n);return x.jsx(He,{present:o||fe(i.checked)||i.checked===!0,children:x.jsx(M.span,{"data-state":vr(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t,style:{pointerEvents:"none",...e.style}})})});ga.displayName=mr;var hr="CheckboxBubbleInput",gr=a.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:o,hasConsumerStoppedPropagationRef:r,checked:i,defaultChecked:c,required:s,disabled:l,name:u,value:d,form:p,bubbleInput:h,setBubbleInput:m}=rn(hr,e),w=H(n,m),f=Mn(i),g=Ln(o);a.useEffect(()=>{const v=h;if(!v)return;const S=window.HTMLInputElement.prototype,C=Object.getOwnPropertyDescriptor(S,"checked").set,R=!r.current;if(f!==i&&C){const E=new Event("click",{bubbles:R});v.indeterminate=fe(i),C.call(v,fe(i)?!1:i),v.dispatchEvent(E)}},[h,f,i,r]);const y=a.useRef(fe(i)?!1:i);return x.jsx(M.input,{type:"checkbox","aria-hidden":!0,defaultChecked:c??y.current,required:s,disabled:l,name:u,value:d,form:p,...t,tabIndex:-1,ref:w,style:{...t.style,...g,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});gr.displayName=hr;function va(e){return typeof e=="function"}function fe(e){return e==="indeterminate"}function vr(e){return fe(e)?"indeterminate":e?"checked":"unchecked"}export{ha as $,Ha as A,Ya as B,Ta as C,Ia as D,Ma as E,ka as F,_e as G,Ut as H,ja as I,Ao as J,qn as K,Ba as L,zt as M,Bn as N,Oa as O,M as P,Ht as Q,xa as R,wa as S,Na as T,lt as U,$a as V,Ea as W,kc as X,Mc as Y,Lc as Z,jc as _,Pr as a,ga as a0,kr as a1,_a as a2,ba as a3,jo as a4,Sa as a5,k as b,Ve as c,H as d,Br as e,et as f,xe as g,He as h,K as i,an as j,_n as k,Mn as l,Ln as m,Aa as n,Da as o,Ra as p,Pa as q,Ca as r,La as s,za as t,Te as u,Ka as v,Fa as w,Wa as x,Va as y,Ua as z}; diff --git a/webui/dist/index.html b/webui/dist/index.html index 24c2fbec..cbf594de 100644 --- a/webui/dist/index.html +++ b/webui/dist/index.html @@ -5,8 +5,13 @@ MaiBot Dashboard - - + + + + + + +
From a74d20edf14b5770960eb0dced086926974a6244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A2=A8=E6=A2=93=E6=9F=92?= <1787882683@qq.com> Date: Thu, 20 Nov 2025 13:48:44 +0800 Subject: [PATCH 12/12] upload WebUI 0.11.5 Beta.001c229 DashBoard after Build Files commit hash : 001c229d6ceaeb474eee32572b77b8477c44d3fd --- .../assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 | Bin 0 -> 28076 bytes .../assets/KaTeX_AMS-Regular-DMm9YOAa.woff | Bin 0 -> 33516 bytes .../assets/KaTeX_AMS-Regular-DRggAlZN.ttf | Bin 0 -> 63632 bytes .../KaTeX_Caligraphic-Bold-ATXxdsX0.ttf | Bin 0 -> 12368 bytes .../KaTeX_Caligraphic-Bold-BEiXGLvX.woff | Bin 0 -> 7716 bytes .../KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 | Bin 0 -> 6912 bytes .../KaTeX_Caligraphic-Regular-CTRA-rTL.woff | Bin 0 -> 7656 bytes .../KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 | Bin 0 -> 6908 bytes .../KaTeX_Caligraphic-Regular-wX97UBjC.ttf | Bin 0 -> 12344 bytes .../assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf | Bin 0 -> 19584 bytes .../assets/KaTeX_Fraktur-Bold-BsDP51OF.woff | Bin 0 -> 13296 bytes .../assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 | Bin 0 -> 11348 bytes .../assets/KaTeX_Fraktur-Regular-CB_wures.ttf | Bin 0 -> 19572 bytes .../KaTeX_Fraktur-Regular-CTYiF6lA.woff2 | Bin 0 -> 11316 bytes .../KaTeX_Fraktur-Regular-Dxdc4cR9.woff | Bin 0 -> 13208 bytes .../assets/KaTeX_Main-Bold-Cx986IdX.woff2 | Bin 0 -> 25324 bytes .../dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff | Bin 0 -> 29912 bytes .../dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf | Bin 0 -> 51336 bytes .../KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 | Bin 0 -> 16780 bytes .../assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf | Bin 0 -> 32968 bytes .../KaTeX_Main-BoldItalic-SpSLRI95.woff | Bin 0 -> 19412 bytes .../assets/KaTeX_Main-Italic-3WenGoN9.ttf | Bin 0 -> 33580 bytes .../assets/KaTeX_Main-Italic-BMLOBm91.woff | Bin 0 -> 19676 bytes .../assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 | Bin 0 -> 16988 bytes .../assets/KaTeX_Main-Regular-B22Nviop.woff2 | Bin 0 -> 26272 bytes .../assets/KaTeX_Main-Regular-Dr94JaBh.woff | Bin 0 -> 30772 bytes .../assets/KaTeX_Main-Regular-ypZvNtVU.ttf | Bin 0 -> 53580 bytes .../assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf | Bin 0 -> 31196 bytes .../KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 | Bin 0 -> 16400 bytes .../KaTeX_Math-BoldItalic-iY-2wyZ7.woff | Bin 0 -> 18668 bytes .../assets/KaTeX_Math-Italic-DA0__PXp.woff | Bin 0 -> 18748 bytes .../assets/KaTeX_Math-Italic-flOr_0UB.ttf | Bin 0 -> 31308 bytes .../assets/KaTeX_Math-Italic-t53AETM-.woff2 | Bin 0 -> 16440 bytes .../assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf | Bin 0 -> 24504 bytes .../KaTeX_SansSerif-Bold-D1sUS0GD.woff2 | Bin 0 -> 12216 bytes .../assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff | Bin 0 -> 14408 bytes .../KaTeX_SansSerif-Italic-C3H0VqGB.woff2 | Bin 0 -> 12028 bytes .../KaTeX_SansSerif-Italic-DN2j7dab.woff | Bin 0 -> 14112 bytes .../KaTeX_SansSerif-Italic-YYjJ1zSn.ttf | Bin 0 -> 22364 bytes .../KaTeX_SansSerif-Regular-BNo7hRIc.ttf | Bin 0 -> 19436 bytes .../KaTeX_SansSerif-Regular-CS6fqUqJ.woff | Bin 0 -> 12316 bytes .../KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 | Bin 0 -> 10344 bytes .../assets/KaTeX_Script-Regular-C5JkGWo-.ttf | Bin 0 -> 16648 bytes .../KaTeX_Script-Regular-D3wIWfF6.woff2 | Bin 0 -> 9644 bytes .../assets/KaTeX_Script-Regular-D5yQViql.woff | Bin 0 -> 10588 bytes .../assets/KaTeX_Size1-Regular-C195tn64.woff | Bin 0 -> 6496 bytes .../assets/KaTeX_Size1-Regular-Dbsnue_I.ttf | Bin 0 -> 12228 bytes .../assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 | Bin 0 -> 5468 bytes .../assets/KaTeX_Size2-Regular-B7gKUWhC.ttf | Bin 0 -> 11508 bytes .../assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 | Bin 0 -> 5208 bytes .../assets/KaTeX_Size2-Regular-oD1tc_U0.woff | Bin 0 -> 6188 bytes .../assets/KaTeX_Size3-Regular-CTq5MqoE.woff | Bin 0 -> 4420 bytes .../assets/KaTeX_Size3-Regular-DgpXs0kz.ttf | Bin 0 -> 7588 bytes .../assets/KaTeX_Size4-Regular-BF-4gkZK.woff | Bin 0 -> 5980 bytes .../assets/KaTeX_Size4-Regular-DWFBv043.ttf | Bin 0 -> 10364 bytes .../assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 | Bin 0 -> 4928 bytes .../KaTeX_Typewriter-Regular-C0xS9mPB.woff | Bin 0 -> 16028 bytes .../KaTeX_Typewriter-Regular-CO6r4hn1.woff2 | Bin 0 -> 13568 bytes .../KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf | Bin 0 -> 27556 bytes .../{icons-DnP4c9nr.js => icons-BdGv2zEo.js} | 2 +- webui/dist/assets/index-C_Xpfn5c.css | 1 + webui/dist/assets/index-D2uz_15W.css | 1 - webui/dist/assets/index-DgvN-P_n.js | 48 --- webui/dist/assets/index-pMcRRAxj.js | 344 ++++++++++++++++++ webui/dist/index.html | 6 +- 65 files changed, 349 insertions(+), 53 deletions(-) create mode 100644 webui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 create mode 100644 webui/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff create mode 100644 webui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf create mode 100644 webui/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf create mode 100644 webui/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff create mode 100644 webui/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 create mode 100644 webui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff create mode 100644 webui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 create mode 100644 webui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf create mode 100644 webui/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf create mode 100644 webui/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff create mode 100644 webui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 create mode 100644 webui/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf create mode 100644 webui/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 create mode 100644 webui/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff create mode 100644 webui/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 create mode 100644 webui/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff create mode 100644 webui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf create mode 100644 webui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 create mode 100644 webui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf create mode 100644 webui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff create mode 100644 webui/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf create mode 100644 webui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff create mode 100644 webui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 create mode 100644 webui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 create mode 100644 webui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff create mode 100644 webui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf create mode 100644 webui/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf create mode 100644 webui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 create mode 100644 webui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff create mode 100644 webui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff create mode 100644 webui/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf create mode 100644 webui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 create mode 100644 webui/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf create mode 100644 webui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 create mode 100644 webui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff create mode 100644 webui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 create mode 100644 webui/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff create mode 100644 webui/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf create mode 100644 webui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf create mode 100644 webui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff create mode 100644 webui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 create mode 100644 webui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf create mode 100644 webui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 create mode 100644 webui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff create mode 100644 webui/dist/assets/KaTeX_Size1-Regular-C195tn64.woff create mode 100644 webui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf create mode 100644 webui/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 create mode 100644 webui/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf create mode 100644 webui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 create mode 100644 webui/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff create mode 100644 webui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff create mode 100644 webui/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf create mode 100644 webui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff create mode 100644 webui/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf create mode 100644 webui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 create mode 100644 webui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff create mode 100644 webui/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 create mode 100644 webui/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf rename webui/dist/assets/{icons-DnP4c9nr.js => icons-BdGv2zEo.js} (63%) create mode 100644 webui/dist/assets/index-C_Xpfn5c.css delete mode 100644 webui/dist/assets/index-D2uz_15W.css delete mode 100644 webui/dist/assets/index-DgvN-P_n.js create mode 100644 webui/dist/assets/index-pMcRRAxj.js diff --git a/webui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 b/webui/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0acaaff03d4bb7606de02a827aeee338e5a86910 GIT binary patch literal 28076 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf b/webui/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c6f9a5e7c03f9e64e9c7b4773a8e37ade8eaf406 GIT binary patch literal 63632 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 G2<`xUL{2yW literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff b/webui/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff new file mode 100644 index 0000000000000000000000000000000000000000..9bdd534fd2beb9b878f0219da9d63ffba56677e2 GIT binary patch literal 7656 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 Mepdy)y#Y}F4=Hd9=l}o! literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 b/webui/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..75344a1f98e37e2c631e178065854c3a81fb842f GIT binary patch literal 6908 zcmV8Fb8N1fhQaGDMf{_aR5Q!Ty=u~ zF9)2+5IRGd_aY*eXu*h4iwC8kb*{C_QN)VA7RMQTu+u)>xr{eg*P|+Ht6ytXr+d(m zZ~p#e2L!$$0|$%oOtI@cwhS2;jT&TD-BQw*ROSFERP599O_J6$GcUwoCkE!d0F$=B3ebZj) z%u2tl(MPUHcVnr%0uq2j$ZD?mW>&vQa*^&_boaZ?MJ~Oeyzo++dtr6}Y?ubX02szi zP*4Emv9VMKu55x7Pupj&vGqTAnT&D>y#d1ekyijf!(aEQSqT*TC&1j-cL)Ens*}5? zPXgozu7BUTz|2A2s#l8S0Ji^=-i#RP8zmtu&neZRA0(Ii3yrZrSlxAws(Hqkb;`{* z>R>b_>h+hM-@KF)45>S=iBNAa{5HRC7)rg~bN2%<09URSqJ=Y{XKexK#T$p9aTxCW zfMVV)pb*Y6X;Za6?`mTJ+yNk09iWQdW&i=IJjein4Vw%ws6B*-E-71rPx9U-XsEPF zmm?rfMCvR9vKSm8 zq$9HmqSC~h)zlKsuL8;5bO!Ba-LHXeIRiMz`dc@Z)3MNyNr{1@gs@BI+wX*usD~DY zPbI0rltnBWa6U%^ibIti;Oq^dR0Nl(5D1CA$jm7K1rY25IClUJc5L*Dj!LVl}LP@DA-7)NFisBt(l7XuEUU)kCh);s~U%Lr_B4Qz@mcgX6JTs?GR zquI!~$-qH^+!ku^dIm1q5=7u|ekQMzc`M*b@!WE016~Afc1}oVh}5E{0vI?n|P+~7zu3sKt42i}YK>7#Vt>J#blPO4(ls}XZP(i&kVgM|renp|k zuM`>VpVR@eKX-~SBuLUgIrRYeMKe4Xhju*60=Zq?eJ{e>&aRqV9M2FA0O^;w21s}o zrk^+wvH>P1_M*uX718dVBO;=F7ZXsUtW_mc_Lfy0XYLTOG1DT;#>T{U+$K(n8qJs+ zU-rnl72oxW-<-Y!p>G*9hITXEAZQZb@wTX&1g52vWZZ;F&A{0J3h#omqk38k3uZt( zDz8rq0W{-PAelERFf2+PbrY9^k|7cjCUXWY6EPQ)BW+O;aJ5R~$vTnQ9j#J`stC9- z9&_n(D%j|02cht~kcj~r)ZONOgejuA)uJzvCZ7Ad#st(&+{AyUv&GoUSZ59}Y&6;o81%yY-c{dOdBeheh9b>eAvKUb2uq;Ac z1f*r^X9Ua-AiT{1F?D&Sf^wd8lg16fMcJUlf|?X09Th4*1zTb#{KHfWPChmR8h8S^Gvowg;Kj&N zTItVfHH&h zW_Ap`=D)vMNyU&NtN8i8u+ph1Skh8vN>25-WSLmb-Yig5!|r3;N1#VyI(RIHaSl&T zY9ANFc=#kzy0jQ_vQGnx_H_Z>A{Q`*c+`~DD+HpXV5k{)PzEl`d$y8APY7^BV#VMQ z6h*7EkJDIp(Z}kalQaqY0q=*kT5XnG!}6?e7;%Xd%wU%If-(((YL;F(pi2FYn^kmV zxL(1?J<4{rGQc9rxeu5R1*pg_G26GfcdBkhCgET zp9UC%7m?xl_tP5bzwmNbW%45qd)}WEv9qs3l*ydrJc`Gt7oz9kC_Ur5VS1c_TosFI zRa#C`^HAmhax4J*Cyv@yi3G6!r{qQ^DKONVhTH0R3s*)1%}1T%rpH<(feTxr#D;^qxpXBbQBfwRvHVap_k85D>8&}5 z;ytfkPFGl*3S%|*rwrT2i3s`3QZ8QO)?50ExWZgf zD-Kx7%J%~*G;oh99SgpoZJT*=mzq$~DRK#88K${>f;yfWY$A{+wldpf?clzq;M;gJ zp+s+yPOC*Ls1Ih<^ieJG}N z@t~-V_`hb}7Nbro+N!urzqw#1ZoWj)?T4lo%giLb>9Dd zg=pkByj>PpRO_J`BuCq<+>_T_dYlZ)$lmT&YE4;J-ecRcC~Bh}m3ngK>eyA*@?3hO zDAS5xPV`Kc_+cl~XGc%gx&ejoHnH}UFornXV1Squ7B6b*E=~_6Qs*5Dia(xHWOz%i zLtW6!ZZ6aVCF4@_CXCXRCI@_NSxBtjpQVh%?|^He!sZW?!?rv`UT0}2qsPKH4G!u+ zKIN;B54kRF+VO$SH{#0=Iq;_b5{ZUIzxt{==TT0C)?0ySR?e$}L_3IatmN6Ksa9U5Du$7~ErjlW#IaM76x> z9le1qqFy*M!Hd-wM_lqfX1(r=!sorLFGFuunypI9cGptzpmq; z6{iqo^uO?SQfdc=Kd0JiJ75D|%0FY_YQY>K! z9j4kSPT0~}NvP$iyfTb(O26P=%?gw6=( z#_Cs;R>aM4xzS7pSCj%pBdSJy!u8`bf1xu&`P;@mcd*4%Wai5$`rv+3b8Sghdq%P? z_0o5!_9bHl4TOb|(7ms|302$|d0NTns;EKrEY;9Z{j9p3qE8EeG;1}={LeOXOLzGX z5(tF!Fi`xGsJ;P)f%~qPQJnlG**z?X!!B3fOuO_z*AG>gmZiy;B?viQ*xSZ*AGhtF z_}OWRC`{1`3@vO~&z?VdTqeD70^68Vta4qGTXqkAlo0rLZw_Xj&QNOdA4p88VNqGZ zX&V#*E))CB=31AN7Uzk#>r(uyJ6$MI+evYmNXq|NJ{r)=-x2Tq6sTADdL5T?Irt)^ z9;kxBiDa6h^avLkJ9av3Shx}A6XAz-@%z@dx&ri>!i>>SI%DL0Hq({Nmww7Xf@8Hg z*~d*MyjB%M@#uo6%!HZ*y=a+thJCZ6N5W>}(sJLG#uRsFhkUtDGIaWH1i$m04codW z0TY8ERE`XFx)K7j2p*YmYDSasqP%y<-af@Gi(h45VFHZFLWM(8g$cQ_Z&Dhe|5$G0VP4veZ?b=0ZxD9Bl_bS#@gyi3QPI8G5 zO_^>&9R!-R=Y#kVelpB(zavI7geJM004o57IA!%~CrQwJHf4tU2UTtZE>hKW=I!C% z`N<%^-@o5`hOjU~QCz5Tuqrd*!$nK_(?@Ow@|kqIIJwSeM;QzSrUSYa%jm2RLeKk{ zk2Njw9(mUnioCT0X#B9Xt#=jz^E=Z;{MQ-QrSd%0`0oDb$6Na2ht0o#iGbmSCsDYSF!@(Bg6KbXaBEkPXcO7M4G}Bnlt^GLXgoJ;~T%V2F1@Vg1Br| z0kh7l-fx3>sv-^SNE6Uk3cxkCDSoRo;|ULu8Dih_V-@}%>)IaXN{qw$pFpXTn;S-5 zmkF&XUR7POId&`Iw|PP4?|hPj*?lIYX0oUlQ_4Wb^+cEsX@1}GVp_6dzv=>8?)3)y z9i>HJ@uBk9Um4n@@$wF?i&5TGxG=O>Tq6F!zTMlmDM8A{A=zkS-sz8GWw*9aRDSXO z%26rFVX(gs)aDB^jeGqID97&nygCfpk3`wZc!aF}7VzV8&~;}u+0O8E?~{QC?thj@ zgVIv9W2XEde?+-xgqTdf*AjqEPsobI(e4T_Ho=O$S?s*xz`ee|?W2&SbF$(i)DHqcN-t^IFaoXDbJ$m;g z$9~Cyid7_ff$Efy@>6|uB+s39zb1|HWPUDr8xuOdpU!@)}e3lsV2%0cZk z;}+A@`oKI4`VnRgvi;A@BD1Y~?1>_ui6IYy@3TOl0IHfrc<%vYlCjdK+1Rfe>;cJi zYG>GX>w<4*qWR|wiw0{_#7W*Q`wn*)T#~r3E8oVAFQzbNy(u$c!cfjew*}=fX}U@0 zv&^mAnDrPnH_su6w-@cM9w$l?xZFjFEvdq>z(`io)RAvN0giSmlMERp%{*(L`?EmG zjrxsBsE>ZL&`MWe&LGFQX^+-Lr9+}%K7{Y;oRmZBah=q9TP)XRE4-xN75r}K+PC3` zqjDQcJKsinv(aFGkW00|zbJI`22b^vlG4;vw_98~PLpvvH^%sD(|rL8J9TEVJ}6+c zGGJ_PetSs5hN?`~W0lKU;aEg5i01JJ3nLuO~JGjek7<2W!ey6w$yR45g{R{W8lyrez_-r28_YB5LT|I+*NTuf1bl@;e4xt&82kTjAbdG{)gR2NGU z9V|cRaATskab66|c#=Q7uqknJUvyToHtN)fTEt|yKU?kes}N&8L9w-y^;y?dq)62m znBeU})(ZKgc;>;hF^+he75!}FCodj@{makaAJ)_XRZz!SX{k0@7rTYUVbaEHviJ$& zu&?YNLV0s})vcF44dv7HEq8-2V;rt_+c%xDb(_9HB`zKzajG{&1_x=p;=WL4M9%(d zq1s=g6$=y02fv6OS9D396|~{Gm0_#Snee-9F!C2+HtgnvbT56w;j+_9b-|=)rYONQ z3~KT_7B#uuezSjK^E$)YOx`=m*yshuhVSPIxFZ}<NKwTQdr#D@u>5alBOER& z86Y_dk6)KGqpOBD7UUKV?JaCsSh(8JhQT^9l5tx==;DRR?)U7UK+S`Y)UHil<&j*) zr!vBp`ehc%JrbHrsw7*^fvt-td{u@(3G~nGPkBkOE_jvxBT+nwE#_nm5arx~aywC` z$k|}vpsrd`C!au|;~s0c(ww=X85_?KpfvE-qSBLm7B!VaaEBGrjWVUrZ_I@7Svm7* zAibC|5PQvs*8jbg*@ta~1W}w!cYjx-KNLXM30~$B9*0f*~*9!c`VoQa(BUyB6 z>cM#BL|OB~ubY}v(iYV9S}>7NW^owABN83kl}Ou|Ih+~$H5x~8zzqK9{jPUX~H|{Bqt*km+SQFYc4+C#AnixIm(Igk3ouVbmK0} z;W&JsPbL<(RM)Km*&mJwVQx5p&z7RJ#X#SL!A_5himYSg(A7fb%Ix>cvj{c=l8OI_ zPA?`GsY7cS^|)ENDg^}|fO&K_oCxhYk{TB+hHUrAqXX)&bXpPHmGB?IuF!-fMx(Xj1@Z7LYtX7*GKa~9YoWe#0HD$rG`)06%$wu&iQ#MvU0`5~0RX^efNUa2 zZSzD3+vSO{Y!4?QY^R+_OTUV|PKgKEAqv9YjP z7^8%(Woe3At!^D|%a~&V)^fGr0K+B?$7$kVv{ew=IR&*I;~1NG)Rd7{gHklieW*|c zm$aDmVy8z3H=aqhT7!E5_T;7GwQJM!%3a>py0xYxUTHYW>>iA}9j(dvs_lZyX-}+7 zoFf$OIk*nx-eB8}bhQCw`;`)c-JI(#jK(22GL&^dfZskZ8U{ zZpm?1v+{19?dAb+K&ka>49`*k+iqC7Pt2=95j`a(ok#2TlS`#p!{thM?>5Fc3f6J| zfn7eOSP-@vO6|dYa~gM8mbvObT)Ued#WJ}*oFe}O#yD*{RqXQ&)dcl z>#WkUD+QDFIIhLYl4U)@;goriI|7?oty?vf+>uSRrXYG+fdBZLWr&xm8$s?~a&)S) z=~n$m^kvi1(eq*8%a6YRMkeMG`n7EW1ql`+lwFu`5h6t$MDMK{E%#qrRLTpuzU~fy z;QaCn{F{BFJ^;}F?i%uYGyh5;Aifzzx)E&ofgNMaOcjRa0;hZ<7~no@b=K~7zvI17 z4mHY9J&pkzn%F31$=u~mVv~R^d}j6K1iCxXAvOZC{a$!SER?`981pokH CFgb+) literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf b/webui/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f522294ff0f3f8c52dfdaef7ebfaa06ebfcfaabf GIT binary patch literal 12344 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 b/webui/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..395f28beac23c7b0f7f3a1e714bd8dac253dd3bc GIT binary patch literal 11348 zcmV-aEUVLZPew8T0RR9104!7h4gdfE08HQj04x0f0RR9100000000000000000000 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 bnfbLfgSm6Day;iB;wah|00962|Nj6Fv8wea literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf b/webui/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4060e627dc341c1854260cbc3f7386e222a4d297 GIT binary patch literal 51336 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 Y{My=5Zj3WbM|mX<0#Lulu=APmKiR?A3IG5A literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 b/webui/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5931794de4a2a485fa70099bf2659b145976d043 GIT binary patch literal 16780 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf b/webui/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dc007977ee709a236d9e82719cf7d4e5577a81b9 GIT binary patch literal 32968 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff b/webui/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff new file mode 100644 index 0000000000000000000000000000000000000000..67807b0bd4f867853271f5917fb3adf377f93f53 GIT binary patch literal 19412 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff b/webui/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff new file mode 100644 index 0000000000000000000000000000000000000000..6f43b594b6c1d863a0e3f93b001f8dd503316464 GIT binary patch literal 19676 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 b/webui/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b50920e138807f385d0b0359f4f0f09891f18406 GIT binary patch literal 16988 zcmV(>K-j-`Pew8T0RR91076^<4gdfE0E4su073x(0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 b/webui/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..eb24a7ba282b03d830fa6c63ee897d92a5188736 GIT binary patch literal 26272 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�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 bkH82T%!~T~dOL3iZSfI!+IWoKhyte*`46Vs literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff b/webui/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff new file mode 100644 index 0000000000000000000000000000000000000000..21f5812968c42392a3eaea9b0c6320870b6b8b38 GIT binary patch literal 30772 zcmY&;Q;;r9tnD|p_t>^=+qP}nwr$(?9^1C|*tX7p>YkU|Rjay_TB|yF>U1UU@?v5D zAi#gig9QNpzx#sB|Fi%1{Qoa`WqKw6z~bmXukwE|5bcxVG`2N#001mG003Yt002aV zZ0}US*v*9i0C1}KkHhsJw190f+07ixZ2@XBpBBLOzc5i3*0K1{`Clx<|JelpfdmQz z0^Y*b#p6F-%zv@`#{+elC*ydxu{ZvYXM*vckNZFH^=qeE+ZuZOcdzl=|7i(;=HTb; z3~f#Si}}CYfb##-dgxdCCOFtTy8r+#A^+u71^_^asJbaN9Tqy4u;eOgen$MYFMjKr&ti>na+jqz-Ybx;jUT7rpi=M zufa(yA-TkdCn1q)EGvM2_hiax`gmi(0EflrdclzrY4)wlE?XoOGM65Zbzu31KryOv zDKlP~=VUIvYc(&_n4V2Nx|(ZkU{Ya`SLxl|_7eInvM;JKdC-~hF59%J{8gZ8s*xA(-Zy@VkPzVn;oDCiUoZ~y zd`=a4_!T~VIKf`-zr{LHRR`Z6oArG{z)^ZL&nGLA+uSoxbS8Ol`V7aokBT3Xo(hP( z+9AA$K0@4d8K?G(+Z{kE=#z$hPB}TJAG|HIE* zTQ)h#44y8HVIs_R_t=|UHjp!==565A(?KYTQlro?#(5^lyUz(WLb73Dy7B!}-xD1P zBH1c+Te}vNYtBs%bFya8%x)LtSejr>!emav;;Tc**d7miFAk0r&T!Ij7OY$jnucxy z%HMehZ4oCYujr8myR;h2H!=^$hH>=^?wg_l19r=c?+gwXnd~g$Cboc^n#T;Gt@e15 zn;uQUSO<7RPYBQesCs?#bF7jh#u$!u`;-2GfOQ>eAgjw|dNTNpOt#&dof28b+4b-D z1fmEtM39qlX9b~H_kRdEv@cz%FS=d&YVOA|qbvJy8))2-CdMgS5Wl}~c^%9v&l3l- zS+#zbDbs7Mcu{2*_CV!qJn2B{UA9m%FVT}&&KZ`nx4;WB%$(@KPfUVSfPtjFo-EwJfkt27^E z8Z)JXmXhG|m;gy3`tV#s08jr&+bll_DV@5LksaIScMWbwYM|7_m z*q7eiB(rN%wd`+50sA4=p8%zW24;l;l4=}Qre-<E_K3s81mK+|tN8@qM z@~FGC@FbM5wrjISp(V$f=I=6`o)0`4&8lfVAS#R~s{pImvBny$#a@WXCicNcM3rwr z`-uMJHht8Q6Am=sG#SWExcG^#6K@)Ywm`%UXh>yIZIxgkcN<5=Rp4C$Hy4XsKO|q6 z8Ah@dL1L9~vD(b4?ty|*nqYZL65V+vT2wCqWK=vUKmSi}pA38d*ZRRP<9Ny^nKR_g zJ!Mr2PCX~Dn0GYi;7d{_r@d3urdBG|ab=$i%To_h)LHWcu9_x}06{$Beo8A2s6@(^4B_=o#4

Yqh7OdB% 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�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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf b/webui/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dd45e1ed2e18b32c516d9b481ebed3cb8bffa711 GIT binary patch literal 53580 zcmd442bd&Rc`n@NRIci-?&_|t>YUT0p3ptrljF|J##wFDMrl{lYJ<`$AR#0nAqkX0 zB*_AcWPEL|Ot6Fyw%{5tV8CQ!urb%h27>@|eYu1m8*T6Zo>M&=KoUHD{`)-t&g@Kg zRdv<(edo*JjF0$yKGS!HPw*Yux?^x;=`S{p`+QG+5JwMPdez~Rm4EvFoX_`^?ehsc zFTL@G9K9;u_W3?l!})!epFDciCG}Ic`g|WchMV}09=`r0j)#1{udKsw_2`v1U;ang zqqx`bO~kGc*cp6`!wRHLPmGDvmsI z*~kcup8C-U`BPl8>Lb3tqM!E#eQBTiv=h=P9qEfSTa6JXYEwln7OE8*aqz}_J=$!o z7UQvUjZiC0No_WsO9mo67A?{@M+#7xRgd8%o*f;Adap z7`erk{R?~jMllgDR&oQ=t)6u71r7nWvC}hx2H1A^4g$7)yG9gFg?0n5F_>%`Rl2Vk zS@6aqNKsMjF33eiW)uPv;nDW_Z*UBE0+PjwgdglPjrN%N)7~CY^oQv-@=?5!bvbYW zc`~TW7hP;eZ@5m@gX{wD@HrQlp^w#qxue_+?)KiMBp9)GK>h2_pSM9N-iiqZLd zfhqyNBy8S71ljPe(3JowQ+`SJr4k5AxI&T%er^Wa``V{JLq0-j#9Xz|4Rs5=j&G^x88+PKDM3+Xqqt5z`Sj zn{mbT9x>RH=o#8Lp45f9d{HGU5Gmc8nWti;Sa0+SGNqH6K>DW}&pJ7wIwBGhC6p3- zXK&xk0oPFLbrP8D8@Hs0lXaaeq3aCtpMnui9U5IZ5!DCl;feZOSc

viU|OFj=e4 z`Uxek5bnO)*l=hG;s=iTjG%%}ZQlmpKHt^8z?^>c!0y$B@v7KFUtox@44PgPo6#*c!mgM)V7_u8yDJFU<+E>Q< z=VsLG1*xEJrDJ6OkpnxLJ%YBWktwz|1P8s9o5mnqXSf9d&j~U83151~XwRJqpdeN^bFejq6nT zsi2R%ls>)jjD{=~pf!U@XwCCAWM*)-2@UDPeJ?sKlP%!xm`{GnB)G3+LwQvz7E{(O z$UL(SiX3tsvLzf)q907xk1Jsz;FpcJzSa1NCWqfm#$Ivc@k4S@kOk3r_o;{9ZQ#Cb z+_!@JCUM^&yKkgD(r94mEZhw%p)duCCxn=$m=Yz)f9BqPze4o4zEvmm#{{?UeCC!* z-^Ok)s>J_Jdc!;YL}ifAkvZ}do-l(aG@~9x7$da-J^RfVrP=~tIj%B8*?S-Y-s1Q$ zF?3z7#j0(_SeFH(M&yQ93%X+(;C9#X!*uj}_tp*XjG~Z;8H{+RWb&9B zG&QX~E2tsIkY&1qJYs|`|0AKgOJvz_Lh3?~tC^7yKeuUfeK^!w;n>54B3 z94r|)w3_YwC>I7R@7PM-k_%NUKW36XqH6(#^ag{SuPX_q^S3`vD33f6z&kajcD`GdK<3QzYtp9#SknMHu(BNAppG=ud6fz@7^4@}t7Bacb} z)lWKqD9Jj0AE4jWiC>YPU($6$)rF73o>x!*kbIuL#b^75Vb4oWfG~Rwq?zJe!<#GT zas_zHip>;+r$gG{Z)k}Mw8NpX!yDSkNVzZ7>g~IJv@cFbdS}K7Q9{L#lkDwDIw28n zLUhBnkwou~*S~f9L?U{8`&$p*Je$k83)|!c=TK#N+R0>`>E+5HXF=Y!z$mu^Kb`=5 zdEgjhw8=Bg4zd@rG}_nACE+Kj)eo%R!DFp zpMWyKYEelDle$pU1A^T7+s@a5b@nWHf#lVU=~S{;o`6ryE>J-YV+=E1GJdhRhpaJ{J1X4qFzgN9-?H&RoTU*nTZk=1u34* zllPVq>yIAX6b?=_dN*XJ$B0C1V_XoP5hAug58hnezj(=B!n-ciI2Pd1mW5uz-=vc9obPEz47|pMukip|iPq>SlX%E{!?j@NxToYcqE$<9$rsJ*Uv6sI zK3x?_=hUN*Q5p%$2M!QP9Zo;_4_AR1hzJAS9I1c*IYQ-5v)<@2C56=ghOBm&r20lc zZN?Kzp!QS&)Nb>@5qSH$v# zs3HVsdRMZMWTLWK6BWaP=LL@}Jil&bUX|2sw`Sw|_*BGM+;#iG+5U)G&3!!|cXLv% zcdESqXeqx=5oGa+%ywgp%88U14jh*0pVTGm#;yDBF8ZT`(+DRh=atTGOmpJ{|16=ic1jS((~)(xL)1dLNg^ zxA-c)acFY=nT=DUeMyD;Wgs1>#VjZ&$@BvgLH3$c*#i+F9av(GzOKu3Dq&t1ely9$ zYEKl)T8fvX$q5pZTb*C- z9`9MStfIQf%xkKD)>g^Z-12x|dZ4{BCWjq$VF=6*Cu3^ww(Iwm8m_vzC7Mt5O{t{h z=KA7Nxk7?+U+0^XTMEfUx-YK|Yf(sP&t&2ZSH0CYq zdGIOhjYB`AnVoOG?qNlx)25;+WP9hI-c4glL=N7+Zb{M&iG+i)DwFDctEXk)Hs*UZ z{VKV}r{mtBUqJOTB<(!oekosx!a2(bc%83|ne?`x+4)506QK~jl_-J`Jaw1J0(2!{ zs6=`yC=p3eM7%#2X6Ba#m|qrVG!k7GKAtQ|MJ{M%c&?@DPEA%w<>A*U3hn%3=i72v z5J~QrC-3ci8_aG7805A@@4J_VC0V-n#?kqECARi$A0h9cABTRK1MK6CxCVX>v(*Ou zM_^pQyWW~WdOfxtWun@K{bYewp)1)Drsuooo2|R+*{SLP9wolI7HnUH2aAG%bs$08 zNr&~mp|NsA5PN3MriN(RU0+N{WNSJz+q-xmR!R9Ok!b(aTu*NtCZ`WXy8P49dT-w{CNPm4*bB2mb34(vAc27P%xv^ZoP>$?r3$Zv0gC#W_ z)GNiIeN)p@Q(G<$xVP=L^V1IxE0emcY`poETh?v9+)tjoU9~o|SG4ojMi7~cR z_?vlI&Xa>fE9*)l1UE~i{q9v;R+}3vvI9 zoGa*(mh3N7-f&pYzu~X^1g{P`?|>V4VsXbvQ!vN$&+B900hWCG0wU~&ZweHgXq!y_ z8w^j+#|(#oJ&VD@jBxNVirsS~AYK)jEYCtVq7kODS?=m|`0!r85?pVSV@HV)(rl4@ zEQTnrnbCqLUlr5?%dyxGY+I14j`VwJ#~x`Mxtw{ZRb&T9gQ!F%r#`&`-x1ELP!H4f zE0dG5BnGTH*?-~OB)cgvw>D&!u4-o(3g)O zS_oXS6!`kr^F0xr+&bDz;t;_E4G6-How}gN)se*1;E~IaQ<5(l?hW@f=+!X0bwV{8 zEY~}?M7l!{FP6Y;xR~^pfEFS_PMu>m}L=_g5GjG?S!F3P{`X*Vra#y-k zPMmx!Oo;WCleq}>3o(5|E09TwL7#Z zw`zsF{)+dwGRQLOua@zt&U1)jx4%51EN}gzo0lio9bbt@6vTuSHpWLkiB(JZM!{`; z87K#MHGqw+7-){~^VjL@B3Vc$FsbE`1DQMd!aPxPE_t;HdcF3_z-K?pS45+3K9hIY zdJw9s7tU`gt@e-gcNc+3(f@X}UAM1!C+r9#J)Pxr?>yJ}9+JG&PR~Di$p=o-0?ap&{Z;vXG*WAN6hbRN}@>Cq@KB4m~?)vL%m|X(Q7Jym%H!!P9 z;1#CnIASw`hZZEXh@>rBgtJ=U3@QUaMU?$PH}51a9_o{!@0-1qyuq+B@|E5uQ9~)C zob)Fiygg$48W!0?J)R6nk|c=qRkst-E*GMm=c0u&bjKZc02!_duvnfH{E+?=q+l;# z?@ci&U|fN3=&2|N+Y3P;$^Qk}@ED9OF7k-va)gwEmjG6i$^a<0^joIQX%EHNznU#e|1Z5K_6)vMBouSW#ixX9l%3vIN=DiX< z^CqHqzC+G??}?VjU9Wh>&lq!hZ%%#b>}wLd=iamLAYD-`<__S|13YXm%aLR1nY+;z z%kg=s+#ExTGh*#k|lpInjSLTf$Zjz2ACVmXme(-yRe z9+DlI+FXc_*82+yRY7h6sT;72Njr`@yPaw?{gR$7t;z7W0sCPF`)}|8qZkWy@zq2{ zrkfN$BPNgx**;^^QL(`#oH>|ThvXo=scqK!}k-R3_@yb!tjc z9Y2xHP5si7{~+sTxHqcOVAd{auZW_kA{eU|N@gNZ7u3l$zJe;_rV&_L^!MNT+SiGK z>L3%rQ5H+mpU}=TT2O^202&DOge-?%ewS#*{R0u!tV_ z$coT4AZ%5es3t*M$mi>0BYel3!v190NQIa&7UboX#N?PE2)0dQ^whs|t+fU)bL?O= zo)egTwpKStaT^)7&S^nnRs}G@ga|hQCT2an%$g^Z@Iu2;tP8%G!h*p5hICHR(JEDt z#ucKnZAT;L`d#o-?q;HS;YLmj&Mt0?agvYk4-^qd$mm!S#YG?yDkU2~|YS0wwA*$u9}?iCw!Qi`I z(yXiYIhlnZJ>65Ol}DF!>FDsRBd=>NNKvxu(XWZtJFkuR-gBZ9n$gI5tGNA!FiC{N zi7Pgx#{Xt}4>9NV{Ly&ou{AH~BsinOeePyY>Krc!Fae}9-s*42AgO@HXZ=>DqY#R5 zXXx3FDO+v|Q0hN4>m0f0JTW7C678vkKOQEgAgpYW7u$iZKP2y4RGp|gz9S%!m)~?& zsA$$Pm_Pc^LquNKFxX%|_t@!K`gfq~sBgFLGWgsFF5I@#??={0>c)&H;fk0@gk8~OBAQPo z4cqzJqj~M*?sFDxD1772;k--|>PWQ^kisj6bsA4hP6erdUwK4}jQiEZu6Mm|=dJ)5 zFr7V*e{y$Npj4U5MxrTQ6ZFUs^K-$0-@*!C06M8pAJ{Q+&I*Gb-WLz5VXpaG{J=Ml zIiQ_*N`lb}Hidl;QqT2b+St?6P#=sH3UW7qVSX{F$Qj}Ne;yI^f#Ss`*)@SuFBR1F z7O`QoEioVk3|m0$UoFN%i8s4QzG^)QePO|~=%H8M-qjz+^b7X}D+EsT#HRI0%jmKT zTxu;cv_mq+b|NB&judJO;;mw-AXCGx8H%KrCQ;HlVcZ%`R#i&wy6ddXC;vEAVJvm` z-GQXlTgyR5vJB_Xz){)*?S~WUFci!mx+C3aq1%1F6fc05|R+@{8*N)SN4P!M+@U2 z$&OIx_{#QcgLDGPoGeO0^2=_b$hHtfsy_N&Wc8=71^>l zFJQ6Hctp%0Vv_F(6*9Xe5~i1uFyaR#ZdIaVN!JjFYL!}u!bhU2}rBg8R2qTGp~NRV?^tQ_(AeSFDm}l zCA$rzY@B~4sN7Nk&OE&m2|-3V0#A*0Z1QC#5@qju$f9Kop)rto>I*dH%Ilr%A>EPp>cyg z!Pvl2Wu^1Q&ey1$h9X=y zJ}ywxExMOMa!iNTvFZkB@Gqdj+zZfP6p6$0XaExM1!jiuEKf2Lcy2h0xv3nwP@mn@Z(;Ep7@_y85m;GhHOi6I?3@!t0dCg;;2 zefV{E+=W(@G+#(@fV|@^$Bv5(X~2wrMmhwT>wq~aKp&&YXq2b2WuH94YR>rfG8s@> zEPp=Q3Wr&90AGyal0p6!eA0Q4rpEVb^Xme#QX`?C`~<@B(LaAUuz8aq+T>a7^GPfT z5l+1iL4-Cop4_0R6zK_-Q1lasWB{s)NXzSEHU&&KBF}yr6@LXV@je1x@)LSGuuzOG zS@kAA*;Zi?K}Mm^3&7b zKiex2g<&8+ohg^GAil!spOYVxk0I~372d?g`6}x_?B?lPa1|gSOc0n-f&N8U12C9{ z9A&G*O{JFrM>8I@MWtAX;(C`i*>Mr#?%4zNj2c)STR4m=1X}*gfGoqdXhZpURT0AC z@O*Q-saD;>x)Y|XkCYdkH=zV`U&R=Z)ziW*Ei@0uXmdOKdI4;4`n^4ZAc>!527x^vX0n|(H~q#(0{ zdMD#NwwQpM;|5BbG)RlwDnekI1Xw{-m@B}j;5n3z_$DgAMQLvj2Ujkpf$Mi|X)8Ka zV3}>32yQ-1+A(FhSC%q^f$&^eRsH@beZqM3_b4RYym?O~wC$Qn*14ona8xfD5F-KV zx}EO}6Y5WtA*`<96z4XUXW1IEReC#CiB)U+v)~_}=M`6~3^u00yPyFhj)!LwS+&%2 zYjBWU-=6{fwS?P94`zFo;*nnTa|BE|KC*vg;8GijgX3FBNPd+A;mkO0P@+W44PL!{ za9WR!tD-DKYU|y`O>$FNJ*ks*n(2D{LtRj|hH91ibfY)O;~_>_mQi6E6i!F6Te##& z4A7dh3M1_~^-9JlZPM?N738CDM)TnKhUM0bNp9V}ae~uy)4;mnO5Ezr4i@JkBFNeK za_5VJ9iVlcw3VU3_Fgr4_|D(Hy8|=&hX6)fW0(psFi8jdFmCpC<(w@GwZ3uF}79u;QBJuHk5&xB2MScIp z+qHScZ02qGi$7PC;Ks_voSiddUDTS3lCgcFR6cOKPOezE$`!~^Zk*TS5?JIL;H!>d zeb4L4@x%^Vd$iqMOU9?XiJ)DqfM21-qp)BMetaSLwZd0jVj>gNtCE!!Gze{AT)pUs%-J>rnshEx4(a8+IradouQ>h59?*#k(!* z&>iX1BjjJnr;u^j>${G1OCH#{d59oBLywf#!2x=;o9$5s5f99|WjoHC3^shNNf@Uq zB&p4+XY79qH$emkCWd%Hk8n>FxqI%EuHAvrf=eIS&_5o}*rA+6B_c{O8->w)a`4bl z!$@e>?9SM=kZ<#qtJ|k%OqvZ^Mk(E&jBXxm^najG&($PB@Gqo$CE*87yOCZD*sh?C zmBaa5xI7M@&8;e;2puN{3Xo@(>BvB8c4EEZU&0=6 ziD6U#kzCex)lH~2Mn<`7#^qeGS+|(&*wN^Dm$Z>ZY$1!-Y_eP;*cPIdl%Pasw%_6> zMC~;~YT(lWHKdLLd?lM3KyB*W+E1o>_k{r+UUqTT28pd15A* z`DtfDbkEwtBlvZ8L7Q^3g(M%#D|cDJvsF`5q8yd9zzN0mqqryqmIgQ8u9(HFA^SI7 z5>S$p^h^vl0VZToExa6DAN6Uz#W_L z_~r%KgD~zO3h?d&-l)T`@jWaB=XlSL2Q&O84k_u4u(uqt@Bu)}72FzVolkZC@+F@O zc@rAs&wa1Nb5m!Y3)>If?zk?r%5RlC*^Z_t!s+t_?{|_-tOrCB?rc{u#n%H9(z^7p zLt{c?-EF^%c2fA6fD&bXT{B6c#KNsbvblH2eKDe(3EcjlfFi{~$N-PIKRMhU%d03?^UHrx#~)XMIzI<%};qyUE<`YV~&zcd4L6 z0U`5KVQ4+!SEsi)`tn6o-!h%at!t|1*o3o`Os_P1R(cDqnLZIzO(c|lYQEyaNND~d zSMOJLUAQJGkQHxFIv-i42?E<+0>S?eevA#Xm2H>EcVD~JS_hj20~_? z;HOhP>9Ic93d&3Q;i;+qvHPz~*d)+atJTiGbiUn%pYA8S_M+);ad>&*3TUCw#;!)b z5-_vMXYW}K=Z*>J?|EFX#LT-E-^HcGgwnnhZo=%9RYe?4(nUWuR^+t4d{0wVDc~ov83vU889<=dF_jNV`wY{>#+`Kq(dvD zIyQWOYW?-`=xmtm+C0^-YG}e>`AdKO)U{=V`vooS`Jz6e;s)9`K-7?D& zh9RL_=uzZ2<)_?k?95$Wh8bsbgr#2S1|&vD;VeUXAFADR4-%wiv0o=O$r$Zx&7lcQ zD<|r7Pw>O_hi}UVt1BuTj=EhNnQSNz-B%XUL(DeE5i4fE2~&7p&sk2u!}!yn8(0aA zFE6}RJerZX8|HvHIG3~2+?h#=k1}O170_iip?7^OL^ht~dV{F+RwISEWt_o9`iKD* zc>2R~GOVSxk=$_qa3};FjNsjY&5!{E zS-cb=%lZ|nv|6X|2^$OnejH8`QY}13Nw!OUrSTZD?qPZtMUq*1kcdHlEGFw0UK~`- zs?ca;rxGEk1SIE#ve$X&)0=_pR?xLpICugh9Q(05q$hUMj$#0TYH< zei6#(EC{@|ATZb})hef2Rp2B&10(3_VoavZ`SQ#M$tQ>Q(VpJ4ttx@->(D(*3}G;I zqZp2eWT?JNm+<0FC6shzW7|GJU+M2BMp!G#nxGYIS>Jd7e*LRL>S>>J(<@{v0*sKw zQu;dYR~2&aYo4nrD!IO!ccnpc$1BC`Na}JcA!-~~#vd&A24eUw0)|mW?{hlZy5JT( zOgXi=?*?IF**D;N1``&y192H65R8w{x^^rJS!JhqwIUk*Y;fmBLpE3P;$VGZl49C2 zlTu2H{iCv4npNXTh!7P;NeS%Uj8@IzT+oRrX&RcDr@=`})^{HWYl7iyBh!Ky)X}U{ zm-6Dw)ao{5;wj6wN`|mUEfhpW3$c)g5yVoQtX>hKyY^5oNr{+|Y-huKXLzp3d2Svw zm~ue_hsS`dw}DAy3v@Uy1zCtjn(Z#bompX|S)h%Wz>GGBdQ%}o6fqTQW=auj{U&8V z3o6F0i!4qi^^7j0qh>-xxGMX{8hy_^%Yn5{`^a_I zX`u*5u1Np>N6wU=3|C#O9h-i5J=Sg*aA$a(1op^FLV8QV%nhLDjquR(JPiqj=xclV zbR6l0tnQSFWi96J8k&jq*-?esc8I+H{j4Vpt)&x-R@{ssH>uFK3aYI8Nz6Ua_Z0H_ ziPQxlq`E)C(%o>xarNbxAC-gd1sY(RM~?AHw!)+de-?7#Sp5-`u9>-wq=2u zV`W>Gh<^1o8kEqw9+L{+56F#{a(^_p7nR!VfSiyAvi`)4_bIt(KhpJn)b50IFcP@u zPID9W9vP4mVbgV(y{U5Q%!|5q!3h%zS6}XD$X1si z%N*I(wP<84jlvzd>SEO<8+cV6pTb=+bBD=P(V;I*?CXzM`{Onoo4| z<>!ePJP14t+46{ln1*o#)Jjn?F@GT=zG3=>OJxgCu9?b8wb})9E&l>y!*a5;5-WY; zW#yC~E<{ACAI&>sQ*#y6?d1)%~(M(-mi;NFh;`{ zO~;3mX}3PFMFx>c)HaPEuY`_qnvBlLZKn_&EGEh3uuZmaHD6vfHcuTd#tM`uN7fA~ zPqVQdAxnfERxKC}A*(LQNep3Pe!&n`s*djr1;c@QfTsPbpqCnKiBIg3f1a>H!l1?| zw{*HmZloVWPWuojxBG%Vfm4pTG$01Z!sL%$vGo zava8Z0vMl(LUj}~qtsN?fTC-pW01v!BIrK}1g^LOP`wfU)*<@WKFe1CRLQWn69i*c zwkAxLKy6G-am$D$!#Ah=o784$Ga9!NE7g`tj+PTyDJBI-+%f$0o^-Vx2uA|#N(Rk7 zbCC?|jB}G|9p;O&XLW4;XJ*HyZ(GC2St5aWBJuKXu9iO72cuN3JXC=WjI%6?+L z0%Ne9za?`C<;`yvb-jG!8`&i6zheLvzlnwCw9(bFjC@B0&x!EaLPlS-__5hzjv6wG zP>=j4L>NL0zQZ!SWikr3a$*J%;WT@!WEH}35jV|Ntdur=;s$spn`Xy?-H!jq5Zs{e{FUU3MSkxqO@eQ zo&(H+!oPtJ6J_?Q+q#Us7$7f98L|0iuhhqzmYHeW;YDS&=FFj721jLR>()oS_F;1 zgK_EiG*=?SLyPO+-Bi#z7_N&jLE^&V5X^v%Bxi1pbp_AmZoUPHk)XG zJ`ryR%`l>eD@`IjcrRhq!#DagdL#J}?+i>bj)xg#yoypCXIjQko<|6k!I;^FAIw;c z>t`4@dZS;H3R{jHKY>m^H9%2&J$6)}eihBYCypQ6Qjj#icntraPZUyr!&^UV+amw zRW8C%ac7%dg)auL0!j0dk8p{?p=z~&iYH&dR+|nyu({Y0I|v?7DK`R7dD+C1ab74hy4{_;49( zfeIhyTD{KgGMm0{^On;tXQ6(A#!Qd+3~L!qH~-~jq&+RqjGkvExjyG9VSI#(33EUM zt5{^stat7Ad+Ep3RRq9+0~6yH+Qxic8{crr%7P=uBjI>dz{H|kR^-Wi4Y96&s15EZ z51{oKeiPaPz=gc>vSHOA(%@vHCy{P$2}`+~w{AWzjs{IT5sM@-Or{VC)rg)~PUP8E zDl!q)jqPxxzM|6kR_A{*m5%i;!%KJu8LSHsk(|VOUv*^P_8t@KeYT2=rS|yFmDfsL ze2v)>vq*z!Xqo+lmi5-2Azk4f3@~TJVpQ`+lo&%aQ05?BNDHRB5p?uYW@` zYj5g{ZRy{-AAOdce?6E@<(i04goGf={_#>Gwtr4Z9GcuU5SyI7B9=kiTT3f$QkIY) z1ARz{yw{nm6mkkZdbIN#cBn9BFEPdbLUX-W2##kl43e&0xhqUX|9w6FdKFc6L9(h7 zesx7H^^K%U6Ft3}7%i%~LDX|twi@N+pzDasg(5-$Drf$?T1FSKNyNdLVP=P>y$-~0 zL2lx(Ur|g)>(69kc1WXKZn!XXy#kS0HB<~;Po%p?$xJ2Fw1i4-I4pGj)1%vFZeZzL30h)SeK zDk&_Shu6o#0={A#KFBr8_jwZQw%Zi-G%OpJ0IViCFh@f{s#!`_aK)KB4z_#NiGrpH z!h$4K`>VM_t$L3j6T522@ztVT*mvWfQY|3aspD}aE|T|LO{t=Zp_Dm_n)~vBi(eJJ z0bvYUjL3CVl(GjK8zzQZ5h7IB{tYX&U6=JfeplynaOGs8T$XF^@8i2<@cIz4E6nm@ zKxwT407%b9z-u70YEbS)YCuSoyinc8w~T(MzlZ0yA5}{A>0<|D%x8u>iO3Cn%2^#m z>gqU_;R1>9Xl}IN-{Bl++U`Y`gbnc3JzO!-xhR6Y*g;j(!>yy|!%T2B#Hc?%=z-N^(Zi!SIOnVA@2a zn#D`9F=W$qddtmJ>KSJ9JHtH^z2{zLx*@E^V2k0rkpM2dICBN>Cq+ z)Siz3bwYovbiRA58itt{n5K}d3nr891^x2;Wiz8YEI@m7tABOe^`qb`&h6j6w{xI8 zSeptMk#xRqs5C&z%8VEcn{$?Y?C394#sAI(-RbFt#=IO^)OHrzC)8L*-*Q|XutSO{ zZ#`Knj+FE37B(g_rJ<{?ZeE3*nj~kdW3s+FuYL$VWm(5__>?I-U_c_m1iJ%B~@0G zYNdg32n^sKgx(<7QOG2XmKdhbB2+WU%mh^M;);wcn(qYeQN=xY=hIpi0NbBsDC_Lz zx2jf7q^zJ(>4i^- z6W+qqRRfhOOB_3Qs&n$HHhHm? zmVKY*b!GV}WCHk|y%>cDh7X-77oS%VMz}#jh;shtuSYqA*=5fUd$A~oSpT&!2U!X_ ziW%(R|NkOOL0|i#S&CPX4tY2I2zEE*`}hUD34D(O&~my~X<$TJd;6tGN<;FG}CliO6t^h-?*BDxZf&QRn?J3r|B@VqHO3M=gs!kB9|;VGz3quS)nHIFuZ zp4$v3S*bP!Fs+N+#127>xspJ3NRR$vY~3xtU|sVc78ON2wH`0`3*;BqKJYyE+) z9i)#}j)ZhH=#A%cjRTqCWOUzu)P7Z~{p!U=Px>+HedCV7rTOZXD_sBh$c|SZ-aNUh zbJN=k1$;A&!6v`oOuv8~Jdh)2I)`-$!3?-gIGhnj9E87TS{X)0D;TK17aaRW#&~m{fx&&^#SjPu@VB<(Nz5YD`kCOSTzuU@=HOMn8!ViFQ8T z`5&@`@d=*MMtR`t-?{EOK@5ahf?GoS;Zf+bUch-0ee*6nzG+arT8blt1jQrF@6Sb9 zkWk=hpB%UsuURCGDO(UV9~Izyv3we*d#=s&9CoW|;JQKNe*1}1Qx&tbimXTNK#eqO zwa({XMHJgs1X)j!`%^kbpwTO+kW-P@!t-T6Xk=VKz&akGzx=aC1K*wJ?Z*^4kn+P$ zW2(TP8lX7Pm4~lE9#}W6b*?8`7GC0 z&yHKrY1C8y`RseP<}J|jEyxbAHFsEUy$ndA`CQdOK7&yQIWv|F&397-qddT1`~G0t z3GDB}3CQwKqYd0AMmzu9`A1~b1tAogOW*R!Td;ox$&qZTX3p-a-gW#~tc8AF;peBK z(=)LOvedQzNBFTIiYNw1k?{KbgHOEAM2n#33mw{~iLc9Vj)WDl^BfVvvDyLbp~$k; ztSgz#bFBx|4Q?rT3=cTDVs>4uswZwNUW9+cwj}Cm8Z?7AT}`t#O9AL1d&~=$kLUqY zBg)2c+rF*>MB?qi`D`LTq=X{ajiA`fj$q?BZ*Do#`Fe!U2AYN#zFZC$M`=kFrLZ!+ zDrKGy67#zDV8B|%v;f*mNv2Y0-X8vgcb?Hom==7~`*I%&lM0VxfYD=EhYjd1yBIuu zaM#u?H6M67e`ewXP!<6s`&v^d=-)+WI;&YWoVBS~EFW7PAg(YAyoN1y({bSuL)pqM z6BBlyqD9Sc=bPSyqlw5hxPE3g5&+ijne{wVt1>K5l zdb{&5wh|F^du;UQON&#}0ZcriGzZ-FqF7NF+K5?KdE-z4RmZ)UsJ<6Q04D@;mm4#bFEu5%zC4wvbNN~6kje{J6?bi zY`0a$37i{{OG8={wuXOosl-*+Iefs#Qd!a@A_R(kO3{yPWm?IsMqY>(K-1X|2g6@f z`umaBkzFHz&kejOu*M?i5clsC5-`Xq*}+6R)p}zSx3?0S@QrVrPnBej$y?+MO{vFmNv0>`Q&85sxwH?FZNVA>yV(kb_x98I}veyd_WAfh=GT$`E4w z!UV#LoET^DFGNZnZAMXGmcc7sZ>Dh;YRHoMTLDqPRmkfFLkBjxKv~V^bmeGo@8zwmtmiO(q5L`By$i$I zk~x4{11O#xaR-jJ%DGH((^V?jGP01&4*8AlP33RJv+W8bDm^@v!H66PZ#2qXo&g;kkB@C|GY>-cA`K&94}R~0}*rc zc!r7wY!lyCnDvnU-`Rna`tHDP$zKK3-aZ;VX_NIM`CbC@7e7VhB9ID_bC9wkiGP2g zgXAkCCCt(#l=BhA{*Nzk6uIdC|L*C`vi>#lYSsQH;LI19Yv6j>zZMg*3YHUqvLl=Za`CtshRe(U+k6T-Y-7eo=FuIE#QW&m|vq( zdTxEm&VaV<(+v*)lJ5@qx0f!Ln137Ql|z;y``o{h$_# z-1!F<8QQ=>=#CJ-2O8F)N`He2-B15I1(0fFYUkLMVydQF@v<6)6Yn>i z3hF)lR5@m)Vv+Db_r!L;g8BI_Q8>Ls#gD6B=rH~GV5&WB5kaCT-!WpdJuR_+%4|FB z#N$r7J;hHNW+LJ+(}W#qX4|RG(ZTd&Ey0M$shg-xdY5+(g0i4FJIX9G_Cphw_`ak` zOrq$|6jN+ZG+5?FH`na)q;&oz-ksgEjQr8rEz-`uJa>1r7kdrek@58)CpN?*cJv;= z4tnt#Rb-~(!|m3m6BSC{OT}2?8VNH+C0Ejw&IJ@*B4}RvgboLvbb6?C`a7skmw+5T zg&jk?+MU@1Q(%+ioFj_tp6yFx0VrMUFk#3>Uk+MWpfF&nfAEPX0s(qUC93)*F^J@n zf$lN~@FBUbYmpj3QY!$MhmeozLri~>&&O)u-0>(@u$>z?lDXm7ER@&OiYOd0?(%FC zoE9GV;|TX+JlSGqiLt372PxxJ24v!jJ`9cXpL=8>PXy{ItMJr8;egkH5iuF3LB@dRL(QTY_)K*%Df)* zUSg>@MV$t6FVI^|+&!lj%gE##cXOfh+c)oA-PD>4nMQV4g@c7UhoHm{_1AjGn#pJ^ zW%o{~WPD^!!Qklahg2Ndklj(tIqEJFW&Pg>Uob5=O0MhnH5WvWYg ztJ!B@qMG`Y)Bi>u0=3yL>%I~+HYZUPxn8gcYXAVz88Pt1*sp8KnValI;@n&GHk)VU zjoOTiNQCWGL)Nb8JyC&7izs{PJ$d3*whUo6a60IxH2o)P1pQ1@ibgAStq^x*F_z8t zhl93qMN&Ez(L-Bb6P)y`s$RuLuZA$O_ifk1(;ZOb3Ga+nvJxxclSUep01&(C)PP_xw;fZzGsnQt67a+74=8cJ=MLlxpG|z z9$BqniazCU>+!_Il`6Sp^_W#2+xLDyRRexe=t&=`R^HQ&s>PEh_VroXKy~u8FO{Um zR4(AB7g9l)n#8V8)K|k4`d=fT^N{atK3|*l&Ol~hqRxbJ-58&>GB9E=-NI|wJk;aL zjq5&M)%Lg{%&j_VHlQOujk+(B8tf&_saj=a8+Q9Dax*x>cnh-WDPP7}U?{frbi{G7 zeVi9#@uKqWkdZ)sRh3X6cKb7>ToV1Y;^tHq6{WBdL>7T6<$^{VvCZYYE0_Us!>vLD z#RK{fl^#HvpXStDQIKQEi|iJN*~&R-)NrmMnl)Ug_00y+m~5z)jZ6!w(ZNq!blbMj zp6N`+KU?g*0zQT)xr5uPfAxV}uYY|bkIm2qGHT)tgE!4?cc2isZ6l7-7IRVH>-4mJzz9xS%5 ziK;A$wu#Ce`PB5rJ|a~V;rjL%HDhsD0~WXU(Pw-&K^KlNH;TBBuu)XTm{j7un-Sr7 zc+0?u3xxHbeYGYgyrO8ks zqbQM>>>n~nXeh__Jfa^84EGz@V>9-Qr7PiJ$(i+IFQCAbihV!=Vo1;0VJCppmtk9B zMf1PMvJolHq~fVTSHnkzTi%$G#EGjzqFXA~Lg^ylL9H5lF;IUb91a!xi*{yaXPAb@ zs#(cQ2U!ihefsCZ2gqsk?fZPJ!pX_RIkQ?}xP!3X-;v;^Rmlq<2%Zv!qd7V1SFmK^ zBP&56ymBOr^~UD-*qI@7T%gYrIi?C*Z*c?zE`+|}x|A#h#ME^g1V1LjsUbKw?GRWj zWu2ZS-$4ZcyM{-Qb3@$#k_N?t?{>>YEi=kAlLJ-kU;xhMX0FP+XP5vbQPGm1M7Nv_ z5IF$%%(`+D-eQJTm$e(_6|~PN_09!sg-J6B{t}S zU8gQzr)ldhcNCE-{-~V2@|1wh@<%s8>5CYk*X-!xaTi5X_xNHog1>$tIJaHE=`jv^ zd6Z{=Q3-O;^I=31}Y( zoZNCQO)&lI2UWHX?LI@4$n~r60Z9-khHW?7=Me=hz}H|8AM;d!6XqO#S-|qKbXk`z z0M$#9=Y{#I1#2dQJd9`Fc7?}NFGRabUWnnyPju1aqzi6ijP`;weIX{~`%YP%|4qIl zh}iAy1vn3MeKFo+L}pn3`qFULe4)iTmr*xeW1{It#CSWkuG)C+val6#&s{p~;Eqd! zSD(+&jGO=M?84o!8Wsheb2D~_I**%?AFH@$uk@B!7sSYx8_wr@+UfFq`t-E$0s3Xu zC+B6zc=*Th)T&`nbQq(8j(&)hZgmaIz`b+E5afWNt&wS~rF)j%_XN zutO!6KGY!(V*4

BY{=wtTlfAdMMhvn`ujFIpPcu`>wC2}V)FW-5a~_rT`xNgLaRaH3Q6 zozG0?gG*!II!i?Ipa^Y*bWZ1GBd_1OvxHrf^~~`LtuEaSGy^2iPRpQ81KJM&+8L(v zIBa~mZS2>{Yg~Nw;eoTvl_$~%c3D9pg-|< z9CWq>9*sRs-2~S%3bIa4EHF>mzl6GmizZ{2!qMh9cG860efK4GcZ%p?w1K|I(Cz6> zFRjEkP20L&x&MhSY+@a@722HT(tf*f1%L3=I#Z=$edqY^U}>ik!O7l4Vw^m5+2RW+ zyK^nBlnXnBnn1&B6q#9m4jr~)<2!+S!p*uheis53+PlW%3I6ooX86WQ&t;2tn06ok z()8ny`M$@kFOt-#AF)7$_3^cNcL@}b!g{grw_-&7-YGNyXcG2Ll8257LLeCYo~&Z8 zp>1y@0(xK&f!}q305|!J-7-=21D|-^T+EKMX1FzPr;Q!FE)52s|EZK!HkU9X5yBtT zn0+-WUOqT-F;z+`tA{Q86%zAJ7hwBg)=})i=>X_8-@t{VqU2Fv$TMR=pR#d}sT<*_ z3Ci=2qi@%2Y)4n>&kQN>&}Ki8Bs3Z%l*)B8EZgCE9VVL;XI@8F-Et{w!zF@`AzZ2$ z4@^n2pP}q-Z#@5h;8iGS`rq}2fCO}BudVQ`0c3){-RH2X^@~78UW5oQ0`aN4UyL~P zO}~jt=b9HH7{~BAKo(%0JnJYr&ntjm!8^^Zxkil zP{fU|>#d`URKNW3I{eG9RBY(mh+M2e{H@sln$kpL&s|AotdR(ll6UPfLf9zbR>z45f*(MxFw}p##YX88$|;2m$@F-1p8)5d@+RW?lNuK9&nn)ZDPq`BLYL z0gFE9A6^ip@gaZb!{<<%dDh@1fCFX6^dqDBn*Rz&x%UcY#qT_1jH%8l|I-4OGAc(E zxYHN>VJ>A^ATma-Y)0f$kDDR-&>D$PT_0k9a{vTp{+OV=eaTd$kd(N4za}8i=j07a zYt+Sbkk6y+hZz?T_7{inTxL^v`T<0P=>r&SD=2PgZ~@L^`K<^b$4hJs+9I#_YsBB2 z^9Z{4RVh3%^{TxdEoWQU?h_3>sGe(OM$U?c4G03*f$U4haLyxT|Kpc4occW~W-*01 zOh!ZnGj$^P=g$Je^PuIhpFV`YP=?CG>F*1lrY0)Jdjazqzt?V{k)cakmN@HD7VBdq9U7q09YPIz0T2X+&y2N5XDwe zJGD>izM}sP^zb2z)X#g)Kpv}`pT&ZrP4xfm?#tubDz5$STwh)`-nfkcEq^vevrte9gAf;urf> zhN>=DrLm3})xFDXHY+=sZPlA_>7a^b+_-bay2sXa7ne$2olA1=Y+Y$mY8n1xmOJexY*+nA}>-P8bbqLl}%cRr4B3o{aoe-0S=g)Tb0nS4a$Iyrai zv4QZTmmx)XD0vuv4P;Fk8uOPQ9*jz4Y%Z%1wu@iFWIqPi!!&SNEC7wK(-?Aw* zY(RX%RG5LC486tUH|F{`-TS$Xk4fA+|l(N?ow+&VN+CjKDsx1 zrRMq?R?vLAclO!b!u<1wH7m2L4%ZnCups$s>a~?~$057+5SMc2qXFukqD&PDJi&G) zE_(chD)}&sO@kmG7H>>y#lNxl#V>Ar%G+2I^;tdnXwPty^l$?&fyHxu06Tk7g(Vjiwgx?)z%BUTzhtz zGUB_P=ig{my?@E)j7(#K>KIem;%!b7v{zyF&e=L*!37eyV^*1Q5NDokHL=s1wW0%u@NyE`r#a(sEHbmxRT$uK3$s1cE^ZjN1VeXN!gAzyE@ql>Uv6T zyk25pfgv@7h znClFf#WpAiJc$XLJR_~2+l-rj-V+K_)Q&jveT#e?qy=CKTq1ki^n+^_Q;KLRwHEv5 z$)5r~(nb3T&oTK9fVk!2VioRDz3n#Y0=TT1=9KCC4KZ$Ed-)%^*-%bR_w$+ww}jdc zZT+xW@L~${GM%LGyH&A8E^myZ@1%MmI=6j(69F3tv~EY=3)P|N_^iAZd^FV|IUoCt z$q9u-lg*@Rbh*@O6V8IKR#$G;;V?(3m@?6omu4aXk{9Zh8mTCL%bB7)WJTmP-h z&?&yzqO!KMLAXw%dYJv-hYF2CGHBGv{3O&e*?r40)ymo$9H}P{u`jWN3VMFD9sz}Z z4ZE}Lyq6OJU@W2BWl2uz=zM1#6^95A(d;tlACv0~FPt->tNHjQLH)?O(SZ!7rhI&b z)~nQ7torpUb5~Rba$MP>BG=jx@dhB{rP6G?(&MgPRouEFTf4Clwz8Yd5R$80@ygH* zBQ~G0t5fBNt+(M4oocWd2lF-R+T191-L=L~WH=`~x^|0}IDOlI14?}y54xXh*> zc3TXNi+k4W&(*lYx?T1s3Al@lHM$*!>rsAX5 z{DuwYp-hF#YwpOHeaeCj$9gqcAyBgR8(NZoW_lQ*&7$kVM73VL5fZ*ym;~ti-0I|u zoQo}J^$Ta!=NEE_sI|>e;F<|+rxf^nG<};Pb70O%!0uwzDK+b*1pAI zaU)3{ldLfb8uQ~iked(Ij}@4O1B6L6l%Y}!rJ>K!P7~^5bznxpmw>Q6$Y*+@ z7*=H%bss2zVWLOHw_2@+ZzYq9a!>voN_{Aud0FY=Qt$$t*VWQ2nI4n~8st-Js*_0T z4&JF~tQ`cmS2A6p@6yh7*ST@g5{;XpzOe9u|_`-Q5u%UzvT38gpbvUL>XLeqfN*8dL z=08}h2A#!OZS}Z{{DF(?Q2nsx;$%qA^jfvk^W{Sq-Lvgr2CK-=U;Ig@EBAbQ_RpLB zE=416qtqRJ*g0eT00ba-iRsagX4&-4mw$j9Fw09rLK#Mfkoax0Qd?JCkf+VFSN4RQ zW&Vn&MTavwGt;hFp*Pr!xgn{5!UGg?jAZLZK)ec$jUaSFD zLd)`>X|FV(OD|vi2U~IW($iknDE5BH#!Y@6dp$<%QqAA$NY#_)CBXl$q4|xItTg^p zq$rQNOK6cZF5U_>iq(eHGX18B_nawE?Ugkym%F&I-D|EW(b$6iYHBQ{uAw|DQ#2~e zgW^X5rD}v%Vk!pzVklyxt z$zrKreTGQ6T8czifs`At@+Rii*uArb<}1v_I505q4l4IonU~9aMee`!mHG)S7b8Z? zWrvM94)gVw87(lYfgyDB*3OlyI=5~%h`JxNE$?jKx;evOF-Iq6n5%VnaLOI_QFmWOEc;zigo)!6j_=dcYum_^E*I!PnLVi zQUb&cjMS}AH)4r=h48_+c|r7+dO_~ZI@sla8X)Z)5)X0vvd9OI zW7cAbcR_F}!y{UT-GYL1;sgoy?Ge9TK5(Bf(W{6SngePIIK{R3c zg?m)#I#RXDDjvQ8S9y_*cFiofzRVCn8)+yUxDOpQM2}FSctEmn2Wqizq2}v#Fb`JD z3NT17z6^EtP27c^E_zIDy5R;I;}`Bkozu*gr3J)9EJ9_meIta! zc6q;>368UT60b69VT290Yb41?g;)fU28CIzn4KeIbK$dmEP<6R)u(S#;zD2*D~EiF z%8Vn#K(m`|bu@#iKJ?wadD{zD4cu z9gsAcPUpeKYA`wM7&47>=dz{@qau54{rP^UsL5>HjiWr;sgX;jiLN|1A@M9uN$B+a z>;Y4flvoQ2#xEEW@4>jI^xqcyn_Xqel8ems9B^x`N-SEm{tbWXZq?hF*`SAM97R^` zLr$k$tS)24geSwUP}!Q6?Q~*>&Fe1T+nnCDTCmDPaDW-fQzc%u{R6vJwnBf{ z^ABV)P5%TGtMxr$cYapUk(VT#q%<-vf|rTOn>zj z974+bR*zxds)F-bzM$Z2h!8?j^z-{xz)gC`3foq+X_YFAHm$UG-JSwSlEU4vqNMK* zd-FI*v}MKgS8Z9mWd)eD=Dh7IEmoUlWeO^+^+ZsG%$qAorw?3lvBjcu;f8P4VsN0H zy$^#U+^1ZPt*{@m%?o>cXF*o7UEVTF@$Sbkg6tIboC#|ymSe6-lzb}M(omiTeduE; z9*|}QX?OlZx*INh;2{@6)Aa+0hl)C{pSbIT4S+qv51@axP_7_xTzN%Xf|Dlnkq@~B zW1L!O*P2riOjuwzgV_q|S?Eu7=U$^FH&`t9h%_!J**)9~Jxhp-o^$1vd|qeJ8T!{@ zsjkXy>DSqH{ryUVLD}D*qN(qpwdA=(>cAO$oP0*%S19HO`K{1L?gd4>DAr;uKZbpL zy+zyz@BL~M*k7<>_e-te77Z~ip;HO? z-J=jZ*VC*3wmit2tb(Nj3j{s$AjYbheE~0G0s8r(Txxu2tBCGQNDm_;RWB?vl6gej z^n^WRLvl`Oq%2Gsv%kVM1{t$202yG^m_a;@IbjFRMhYRTSuHFF{qyFgW+s+_mIm_# z4X83@q1WtU3h;U}-3-^W+QHLmSe-kQFGD}Q^O}#3#zf}g*(4_4O}@Y^+{?6D92c5yrg`N&^j^MCe+I}oz$8rs9pY^0+;O03*?c;9#W-NI z6y!P1zt$jj&3?u3$sL+pmuAN&PY2``1e?lsWdT;)sXph{>y2ZZxOF|AZn+Z75Lm{KPRMDeEu zmlMUVXmd{9-uAqeF8Fk|Q0wcyTxL|dOUpe$Tt|EwIz9pgjP+}Gt*UR{44ozN78R{- z=t};fAb_38GB@m>;}`@xRp1JwlLWy4nJWMuhkSCgjrf2bHu~7pIIf8jKM+40G0 z?P9gGunU}$%<Q-K5y$4pzyUQ4UyQug#-?YNE?7n9_8XT>@F-s6dI*T zlROGet`~4l!G15;Xdjza?BG|t3v#vw7U1w>J{tP7PNST``bV6BR+{RUr2GHN7oUE5 zODx8I3;&E#tHpN;#qNXZmv24&bZpBOs>K@N8R2=>fb$z6ykzCPpk4ROlEpC6D1;35 zC)oPKY>{R}wKV`Mn-1GiS!^O`pb>@HGe0t*Wvh>-(wM#0{J4NA4a$ONaq-eBr3&Uv zhR)Y(+{Nwf#cn7xomW!58G=WQ<%-{gZk_SlOfsqpA&9OND~>@h-R*C0_q(y5tb8Qf zSpi`mBlYdvxxXvM*xv*-=TkzF#iPtpIvm9JAy$$a0HENXi4G#q101B90$!%VcaNne zRHSGTlMk>>VktDY)Z!Pvo6nwl8JhL5)}?|?ZFsaVf3C3bJNMzEQJbu(PV9n8smL}3 z+0p04=U55!7Pd`gvWWu_UNW#514KLzoNu#E#$Y?~-Mk%5y5wH=9KpI~?hWC2#r427 z={yRKCHPjH3qio~t&0$#D=KmLM%OzB@xYWgd zg5aPqqPzmKvnecaX$>$kP&W2!mhRpxef#Eo-A}LYDL%EhsN{d1`3*Gu2u^11opO8%T>A?3f8@v9+w?EQ(JjX_^V9 z#Y~hY7E>6FiizEN#eX9Wb_>)np9}@9r6oIvE{W06&`RY$18F31x>$@#AAetIRJ;Iw zb8;;&erd@z&L45IN&FHeXNLZcg`Q#epi6I5#A15!Z6pj~mV_;QNP{U71bJAv6cVJ@ z(X5cSJdGe>0DvEmPt|Zs8g-A>q%ZG0cyHC^Q)A6~lU8RulzcDwmqW%&O=_Jf5*}8o znww%Ko!Vr5`e{r8Dc?iL_i{S3=Q~GeOo_K?Y8EEX!(^7F*BSLqKW6%un~Vl4Q#Lqu z+*H%t61;hbqXC_Iht`= z^<){GaKL|bzYKrF5MIOOuQcj+81q&3>I~QrQfwxLM{wAIW=N=L2W=v|ax70Y?wRV0 z^!P;Ri8Hox(tOn4RKWC8*Q$D_iWCYQ3^q>5V;nF4Es|Uh6UOKo95pm>2!C`vgv{w+ zjF7Gz3elxQ#QEq)CVz-L5D(zspJj_yku_N1!~#!#)!>c`rKnp|;hP0@ttoMq=i;1Q zDSmX7(xg*V3{?fyqy9-zdxf)1{&00OM7Y47^uF$n)+vk?fJ)H_OG6ft6k2@d8FJWd zHh(RH$x=n5c{ZOU0LQSus!@LRiMr%tEcrN2J9P#~(!oqSOjwJ_FC`y>P49 zcr1GrJk|-D#ME2TjFc8E3mmpM%};aFT=OMb13aJRrReKM(FhrkOfHwq*F)LZV}3(S?uN4^3rgBNEn zV5>#8n!TaJVnvNge2Ioc7GWDqS~Huy3q$@wZLIucn1~*Ih_4We__zQSG#WzKt27+2 z7r&>};SBaDj5`{&CGtR_&k!%3QmE`I#qXezm+X|s0oq@$2iytBq2+U#EqU2VT}!iQ zDMAzx4&j^!h4Rz?`3aqTcnF1z@krA^;}!R1ica7CdzaOh=WV*ZCX&G%-rK~F{^)jH z>9W%O_hqY$&a2PsSYx-`dtonb8hp%dFMIiByQ_QkzPs~`s*K_8_(u%BH60h+k=%Lz z+cst>c;X6gX+!n)J0MAGJs7(d_r+peeWmyl@fD(+l)YXoi?KqMVFtDdR31Xi5%2gB z@YL0K?TB+=C+sIJt+nmAEfY54lo6#te0f4Rdf;AT6dNeUsRTvn@NULGt2tQ+OGTgop#EUM^Z7*u5w88XiWkXSW?&TMWHuaiu zB)5IBr>%Ly@AMSGaA<+k-y7O;-qWQe4Nil(x(CV?yyja`^PhveE(5cro%sRRshO~vpoE2-X4Fu`~rJ7TTl()z4Sr5j42U&Zt zVZVa-2HJzOLySg#1vC#y-yKZ>DFie`k3p*|sjtDcz0Cf7iwWw7OgSCOsRC!|F3lC+ zRwuuwc140}XRhv!n<3qC8M|E6BnP(HGqq*cexdukMwHqz=Vqb&Eo&)+K*aR;r#Y zHfdg5zq^Cof1lq*(oJEM(<}Z&*dkzoRE)hgq9=@X8Z|mfU7cD(0o+dosmb^*ils{z zmb?*gn9`y4Bp!i1W1t5o+#riohIr9nx}|~8daI~`R!N4Eq!-yh83b-%!-bkTgRUxu zMUh3`bR=d1(?cYvbjzvXTb1uwHLy)JfSVH4t*wwTRfw52%~Hk@C>20ZCbM>xh-;)u zJVqQ8sqVjT(aR2)5J&8sHQS|(T{|)KIoEF2$Qj*#pT@z~7)*}jF%qZ|CNTT!MeAo{ z4uCf2G%u2wkZ>4dJe2J|v-v!wRi{>bu=rx2JyOnN7M`PB8|FDpaTA!&*=aKa2lOBy;&f($Ie2C60mP|i5lb)Xd z;SL-wj+V_v7v>y`ra&|q`BQp|vG3H0&&}7B+|sY2X$XheD7-7aMN$p6rPCT19ijV< zi8#;)`t&etwpNC6v;QX&DA??GWyGPtAhF*U~eZ;`%&=W$(4BRpA~VwBd}( zrhVBrTzks=htEFe{;K+`tgCI~r?C#+898hB6LUXBTl-#BOGd`~Uq7Al?1Hv7Gh?IR z9GYXm$H3fQ)tM+8C$}F`BYMEBikwZW?)_&zj7BtM_cR8Siw!Q@htW$rCrbWyR+u#B zLe|-}*UpW{`nfmNnb3funMi8eWC_Svw4lEhf|v_=hlb9Ns+7(h1MsiD`mYcsNyXs3i&-=NF`wMbZ!NsdW*`ipfZF` zko;Ein-;V3S7+8U`g@`I_65x$EM_v!u4W|9Oy9(n+$M}3n+U_`nA9))ZVoAWEP9ON z+|Zt*NtjiYzqBq-&LcRa{LWcwwBpR|^>A86Y98@lJBv=$+1f9~D|mnXzv;!Q+RoZr zp8V(ZVsRrEtnNR=b%-$FV!{mzzPJw-J8Saf0tQ6+j2r>s5Z%en=j51f)!6yaO6%cN zvP^gCyRS*48Ka$sUVFCqvNkKb9Ge2V@@yx@KQZ}m@)0$Jeqt)Ed+_sb4T8 z&{7pUzNy3ca@ zk91d@u=yhh1!iok@_$y$OX$}j+{SWY^L(B7Cq=%ZOL3XvmoPtErCg;vPx%q$_hD;q zqw4!=lX^n^vZg?DI~MeH+KaVc(Edorbldd`{WkrphUJD&7?Q^GjlVQCo31gPFz+xY zGF%zEGoH5OSRToYWIkcdvhKD%W~;O%vh-O4S-Y|hXWfgn)i6#Z2m<4y9GT3cN8QG?S*>_zfkxE zsabkSdLO2F`rOyKzwZ8T&pyvH-UjdEMVpI0Q*0`3Dt^Nk_ub`t&i6at|N3+M&Hml~ zBmQss|EHw1WKYSRr9$aI>2&G)WgE(#DeozNH86V0Zz^zY;8J>K-z%HEYv zt$b@`a#h2sy{o>k>Q~K$&HJ0b+5GpG?v^Jb?U8#UZ$vYr1JRqJZ?*nsTV~t3w$HR3 zZx6QL)1m8F-Z9qkv5qfynmadlexu9UHP!XWuIa8HcKu;>;p(-k$5wy2Th-mseYpF@ z?zeihJ-(jyp2?p3dVbqm*BkG>qxXg0|5>wU%@^0Y*X~*SR$o!yVBeelrvA$Qo&D4O z@2o3dcgwoB*GJbsKaf4}v4LM~DBA#eQlc+%n5mwK`dIdu& z4aN84S&t`(rwmWtB0r@o=iyWa9^|o}@*$VKg0kSp>|7GRE#!$mhX17C5+4+D#E%O( zicJ13hm8r@qKJ1r!Y_h*n~;w*^j?p+F7BQ{x_}Ty9!2yGk4>o*tZ*H84B{~AU>7b1 zEK~Jh9&I2fm@tTMZFt`%-pO%)3$F{o`jl`5 zT1~<`4?~5MNOIZh=mO`#~@Ctmk+Wh}w{UGajO!tML&22==h@ zR)pDL_fde=M(D>Ozc9O7(171Z;V+@~KzgE&Ot@4ha?|hm3u!HM)~2L%1xI)?^3?0Z_V&G(SvtNzvLmjaonZL8s;>m zPql$UfpZ7)6aH1Aa1d?r2p)Ud7s|X;Sb;j{!lk|7Tn=YCZ`sY`{r@27 zmiWLyVS>AN2@g|xbr+r;!hj~q{q^wIYa#-yz&an>Ep7>D)6K z1Ls~Kru09ShdV3&ogJmoQapnD9R%THvdc~g)m-y49aXqm5Z)zbU?;xKHt* zq?YtjmXssqOK!<01*M<6Gu)YOo7?HmbJw|Vci-p!lKW}*H{36|f9e6N^{6~rkHKT} z>Q_LO@XJGkw^;+|2@g`Uej*Ltq^+~m34bFb$C&vTv^Jnwk^ zl8=H-}nDkjtmq+>hEMQnmRx zug(9WHtSHE=fv-duZX`?+_I=P_bMKcL`f&vB&U=oNvEmJQPk!^_fzg?QJWv3HX>@H zL2ay_Y)^iwHvSLPX2f%W=Q7VVoZ_IsT?(1_;&3$$5@wsDj({o>(yLIlSxx;e@=9=fEWYg@IXCIlpXZG%s ze>nNp$={v)&B^~d`Nqj#ojh^k@QFhwt~_!1iAzsha$?_!UB|zD{Nu+zcKpWU*B`&` z`1o<_arJTK%wJ~yH1oTe|C;&Q%vWcgnEA@gV>4f#d1U6_XC9h)aOQ!T`)58qbL-3} zXFf4=^URGiH_Ti*bIHuUnbDbTGh1dh&1{(Io#~#bnprlZpV7Vkm)Bo^z5lho*ScTp zd@cH#^A`{N;`6WiU-iCP@M`|gUi;a&G|TA@jr0G?^uiO3k0g|R2abuNh-?z> z(L6VW9y4dNNS*|*H*(CzZ20C)2z`U2L&xllVpb%SfrO$wksTeR@)GuFG!?-mjYx@S z`w~ju=3^zy6m1)BOQ_oh-3dkU(7N*m5!rQQP)hXmA*gxCB_-;~S3fi)P0O(XQ3--l zZ&IR)zE@GqXZr>vVB<(!O6dCrV+fJxo1T0j@`Ylq*wE0B3)o5+qr(Yd-C#oKrpRu* zySftvvP4|4GnsS+(S~LdHo>1xd<;QP%09dKtdNSKZa>1$GR4;-iR0E;*G=;;`SX0 zHVi-#nzD+7E+7%KW>iZlY)2Hp+Z-FBD6v)!tv+x}XBMJukuvu@;TQr-3CSqu!pZ?c z6jhH&ZAZLuYE+JF!9@*{kX!&V4JDe^8*i11Fr6WJ0<-Z16337`s+l*ov#rkcTn7D`y?Z5`e$yuC7!k%c2g0uF`& zcp@_zla9osL?+Nyk+2532L`8=BdtS43DcTPTYA2B)bX0$q_KXkipa*#x-HX`!WX!Tuk7v~6AKt)H%C*;LmM@PP`PHcbqjC0<{V2nQ-1jTMRd zb43MV4_#D>&TG~ZwFY=AO=2gU5rTejAds5!^^?D>;1bMDl8cnK{^Gm3`k#uY+5hI?`+&}oJQc_8-N0mNR?ofm{ ztsYDp9+i~Q*oZfw!k`Lfr;Ns3@W+P0A5KjZ2Wa5`-u8IC z%Zn1)QBOF$6y$fBLI4P{WHp!w8bbww!w7N;B*-yNqZI+6z~2-nT__90(wN2tCZ!3L zFNF(lBhb_||0$sdGm)frZwD1ht++D%jaNp-bV3*ytdtrtpcC|>9EeQknr+opy14r>2Mo63fdMM@T117uXs|tSCPM@*^5Mf}VaR*wCPr zi7J5D#;Z(Z?2|Dc#{?}RSDnb&i=I}Ao+nqRJut1uSVPp$DgPfM>5kJ8*gr$Xgm24ay5;*e*Q;*e(t#Uam54p%FDyEt6r z8{=@1?*a}N`7Y#ek#C&CMZVn}F7i!qxX8B$IBuM8z`gt}(Tool$=()tCkg2kEfK-n zK8&^SQk*H-OL6w|IP`(yT#Up`^SNHa-*}1xvX@d^DtjsVWyq&V&hm2EOA)S+y%gai zh`Vw=zbpA0&+jVPOVO{Ey%hbUNV!tZ?;6=l5w4ZJ6yZ9=T{WNILH@?`J0yE4`t`Dx zq8~=eRdRke$X<$YMD|jI8w1A-d}f??YD6uxw(?oQnf^F&T7w_%JQPI8p@`prejHrfWU(ER2tL|X zf}O1|!w%m{{{3-$f1Eu#_t&`^9*^?X;Z|tuG%0oP--Ac?Z32UH>qLlR!X zo_`g74bb@{Uo{>H<&6sac-#rRtw+o;giOF4g$$qsi$&zGgoebqa;_F?=X0({%5Ib% zM`}rEK@M@qIgJXt0a-Wv1Mm-GudNsUF~nJi_npFiVI1$1LObd(0m#XnMEEH32m%Iz zcRA1bgE>^3lE>*vIW^8kj1F-Cey9f0k7-dXe%wyFfW({z9 zE}SgIHsSNb;+tBn5qC|{uM&8Rqx@aM1#l1GUB=5wK=7|?m!&0Mm}1lyrTYzk7xwN->F`h9_ zwcGKRN?pK6oR`=l^uwjrTaLV_KTZLj<&ZI52Iz+Y@fhBx;IG6(d8Ki@43M{@2LDVN zkysD-(zWO}r}>97X$|-752R~*qqY=K7(L{#)ug@UKT9Atyq3%K>`nU7r+N| zpwHlf^^AO+=@g<)Zpf*7A)8qYUg!t4mf{@096X}}HCV>^OAvje7BXzGG66~L2Gn{5 zXu3&Q2~EdlaD@nZLmTSY0e#~xVKu0u2OMDy>fHydtwReA2piBco4_lEgw4Wv!ugPw z+zP%C6XG}zI4B$vZW6vITr1on92RDTqr$twCxjcYRX7f#3R>tu!2lUEG7~dH{nWxTnU&dC7RzS1*@ZcUW5T20%U==xLwHQM zM);=i5X->{y^G~RL$-hwGKsmFhk02M>~r{-pOwH=R~aj30an2(*)mo|HhozQt7Ua8 z#KNqeH3*+!%h?Ln$eP$n;T^V$HM17T%|}_Qa4%~UKFQiy2kT^A5U%fLJ;GhAm#txI zS)Xt}>u2lOdf`?`2@J3eY$Mym2H6nX%+6!yvn^~Z+s0xn&bG5*Ho`{P4z`o+Vq@$A zb|D*QyV(THnC)d3u}QX%O|kv#Vs;5Tz%C^TSat>b2)mM9#ja)_W!JE4*>&t7JH)PM zhuID62)hyYCVZUTglox;vQOap<6GFRn*9@FRaGrj+zr-*WjET8a$8bvMAZ@By*tj| zY8q-)1G`42;_9CG?(HLSad1rR8&j+czdBXyMrftEz(Z z4!0)d)~4LLlp9L9>G&<`-D4B`r$*)ARt{aTx~g5v3}tmo>U*k|)h!%p!RkmM|ba?x^&;@ zly>K2d}IuPn$hvm-Eg)0_7Crx+7+MT83e24<_K2H%@C{(8RN)ga%|s)yW^=+g4J@Z zgVhbjy_0+P?wOn#+cOa#SH&lGj?3*645so4*6GLh>>L}8kH;rQbSdwiN#ocAGTk>i zOes|WdC!Dq-`MW4@wnWK!CDzX&;r#B@0r*+xt~BLf(h2jC=AwB8AdPKKXx%1c49bH zYDh+RFcgvFhEwn12nQ4;?%xh1mvqg1rY}_G=!3j>=89-gEMvGjn;2|C!?s z|Lds}tH+Q1(bV7K*6jO@Q#c`ipC7~XzJbr#Q@35XI~;J%bKI(zt)Ut9PFx5&I|cnSDQbX7#octG)L>%W-#X<~ZT8b7$|k@E4!>v(IweU3flu z;oR*f&fWWU`-idKF3f+5qg)NguTdYMl{v2Ns=EqxSElyn#T91&<5A-*hje5Nn@cVsUKA%a;k|cX2pEuwS_-jpE9O%yvH6b>F;m!H)@S$9nWJc@%gO3UMZ8#r`ex@ zfqu5if&PpnrzI(q$>$e|Kx7)ce~TeI1v)w^XtLdZe*d|EUDo;05u)XIXHdy$Jb6fx zC0-CnUebgwet}9J$z@P#xFnxI-|}XjCqz)Ot~$q25g3}mx{4CkKP(NCEHA7Tu!f@(4ejpVh_1wDk}2Z zMTw`B*Ia%o+xQrS_zDpP9rgaJ+UN}1Y#xx% zTwvUQYxr!ZvJ?pT8ATX03?5u%z_nQ-lfK+nm?;SMQ(L#+;y04<5yP>sD_BaN*|hIL zofPxgQjCZqkp-hLFzZnQwve+oFUUkqrj2fwk}8(TJ)UZ&t1Int3{3ZxL$SVMcUTa7 zqv_t6dbWFEO475Ha=PdvAdvvFjRu+v370NX(d(ALdCtK=S8o@1J9%ZC#>scMA#NPJ zJu)0-yd3~R+FZldZoRld<^CWH$&v(ict-xJH#<% z)|_C%+pw;XuiGgNZoSRv$+>wV*QUmgMRIRCe{if)$V^cqE>d0<^3}~jhvDwsS5Q<( z0GK62^vv(wxx-Gr8Fo-Hywy&HyTo|4t2uk(j*;qUs!JIM@l?w53Lol??OO@vhICQq zKYC~%CA<`g3J@c3-%qHWJ^@`b28uMw2|p-8@)@uZ15a*R(qjsh1sd4O6ncwC<$Qrn zWLn4q6AI`}UcsxEW?X(CHBc|Ej112VROU7hp5L_jHLj7wOm;M@_;NwNtt83S%#>Y* zdf252#boJ}gT`YM!zZ^N5BswV-+z4Rq~T01#dU5K$S^Q zr9!^P4TCC;Ad?(#poUchm}X++F)4IaWK4<3Krxv=44MMdsV0}bx2~i`@}@_qjnZAa z1~q|DF&hYGMItUm#?rzqkBf>b3Zj>3f-HpD>4VICU4~#28g*0Q#={E_b&b^&Z!G4Q z18;n7X)Z^2VJOIhR*LW=K>@2l?_2nO6PM-sxp_|ey-fpsg@}#E+B<5A=`sArAdneW zfqJ%7Q)%V;^KAL1&JSSee60b|0UY4)0t|xB>whxc7dJvZgLZ+srNd_y6{Ual(ObLA z^V?k!GCVza$So$Eqw`KFf5+ICZf&!(ThrulX&c!RSS$}#-M)lO$=>UFrVs_Vv@UO^^BXWS1dj){d5Y<$Opfr~y$5m&Qh6Mj1C%C>W9}adS+*E9oGU zZ;%97ZVq69ro40@wJ7Ccf^C{N2D1l@Cqs2J7~{0g)VHPBem9UG&Ii3b5yJ&f;w&mBi@jn)QG@8W@JNKcRJ;aO&U$kHxD)Q zJ};5VYd`t%?#RTZcrF*qk)H-Uws1n*x}fFbx~3;*w9-T*0*J~S$IsKRa+|pu0MYV3 z7t>hvG?QNt35%<_-E7E2!s7|l{XVQ7;6Qvb<}6SW7h#$U11VVogSL5-DQYQKQThjf z7dcSd`_lZRb>*;qq>7!;c}T?r=qH& zobqlBPmv#pDl?u0|Mu>?>6F{$mML^G86ZQvBIx|um)5>S4AJRTDRp_=a0$elMLN_J zpfokFTVzOkE;m&vggm-}ljNa?3HY@K@b9A^ht1u@?FPRt%#Ad=8NW6gZg;;aLX1Ln zrshnUgEq*d8I;y%M)3^f%$!8}3xy1jU{RH4jEj%5x84K_n~nF9x!EOA<^@R>{^2Xt z&?AoWy-;3Mg6u5j{I29HZ&3gFhq}P7_t71rM~}u6d-v)GvwHuCcQL|X3$x1J#ku+Zlm4yEO25ahYcHmna(Y!w z`sCmKZV1M%L#%hs%)ql+`_bBuDAh8Fy>pdjKipIkh9UYv?i8qW*bXW+``yic%VL4G znklT^MEyFQ3KFzEmig?u7=t^5!(WN2BKbnT!Cr+B$9KWgvRcSHWl{x`2k znyf{fF9Q@ejHrYuCrutk>80#OVN zCeuUuElgz!U<(JeE&)HLZUgQuslNtElj}&Ln*)b;lSDjIah6e%K(@#WMol$vd`k_l7ftUoZe9~W07wcmAMLL1s z6YjqC?Ok0i@!aaZg6=TJ$3>?7Yss@+2ZmY6A4) zM(rR8VnDbjZyesecsA$Xzq{8lSi5Qh+OmXueVlt4FtK1`vh*Td4*=l*0=G=L!%L|{ zfwyhJIJkfTSid^K)D4#G{1R(4J^i=?4=KC;gpHcSQ$HU&T2Wxt#J;{*?1?90G1FQI zysGt1`2@}blX$%7Mk=S715OiN-{ z5I(n0TMDQxp0J!28(}^b*4EbLcKrgwY85mCUWu(lzr%}q_-2L%Iuh&9LqGBZjuW8Yo}vwP5uSTj?OZbbW; z_7y+%B@TNeMHEFnS{|Js&KpL{jbd`Aixe}GJ&{THtG4b;$U$E=I%WqTz6Sj$Rb-D( ze(o2fHfJ|f&xq*msw*@biB>gUj)w{|`3DMpXM)n!U_ZucUys!mHm=q#GOr7Hhm0hc z@v`Zb$#wx+9p@Pqo8uy5&St&oZ>cSF*h18yA|mB~yS*qWQZcV;TdR@C5!8 zu+pcJZ$LZLqdbda6HOb>t;4oUWpkDjK6zpn)HlXN+~#oL(#K zcg1fH2Ng<0VPax-K0D`rY+O;jPDmj+LSZcbx@{~wyx#Wqto0%;v$#F*ai7e~qA09E z-(F({g)d>SF?#MUG3jv165SzF}|pUVy;WoBnK&G;q2DBGNi!%#?GB%g?vxXs*?Y33xJf8jrc zbo!nd*ho%V)A6r8N(s9io1n{5-5F_-`&vRa`8y<8jpt2}Y zv|LGWj>YRNBO!SZ!Lx*k8LPK_%LZ9`&2JIg-to`hb@7c}IoNo^El=;-Ts@K=O{I2h zo*Um=iWsu%RS$TiOK0~UKXEV@o1Xv3{%P`yg}ue>#2xo++P>T~{NVO&MXaO*Uw)@4 zkK3`5P2(l|24CKcT3N8hqBE#)whS5i9Zu~!bDG!&hj!)?c=uA<`Lnz|OG-6xn#BKK zfA6C5?7q^}BdL=s5eW`ksVYi{WG%z%gUm^MANjewYkN<0`~F}p;B(oWo{q>08gF+Z zAceXj+P0}pBL{*aIU5?W+gTLja!V{KMU>0t&?+GxJWoU;8k}whf({R&(}64FCf-Yk z&Xy3J?phe?4J(LFb7uYo;F*FvUkU9&;bEEnN7 z0|oHr7ZlCVyd#S{90Jjby^p?q1L3B>DLK7{XSX4R7q=eYzO~y^hwf=)C6`~SL}htv zSGPgd{vlYkDd|K~CDd?hikyz64(Z#DBJ13#xp^LH>B>frYIf*gmjSl(b}7 zL1fyri}e%7&MRvliu!B{7Qzd9nMHEo!#hCzqugDf{@Ig**NNl+G!r_L_Mm*ml)$!| z3ecHkGQ$t9U^d+%Ig8Vo!N02gOb2&e-I4x$zK6vGjFHTnTpP`Q{f{z-YB}DuD_y2A zMAEq17q$tmxQw{h?MKM3SN!?R=N*o`;U1nM;~Pxjsr)fdTi?;~o_aYmo{(LFFt;Gr zQ)#!};iOKeFB;Wc)o*O=^CJsSg!F{;kQ|RuDeKpe4N=ru+Nle-xJE{8eJ&YcCH>iT z3?TV&A}QS$pLD{66WJe_EyB`Gz(@Kz;)A2mcFP6kBbiAnWOht}HZ!0BOR742XCeeF zi0nYK$r1o&Lv6?3T=)~$HL--LGp3RuBvhTg2JblY5Gr%s#V>$JWJ*>~@f zExCWh7D>u(QKY&o6Cn~8sv^Yk#NyZvgT%Dx#Js*OtjV6fxl`__5 zTIy0zoSGS|N{)UfO;P88;c#rx{4QZ^3IZvh|Wm>-p#EZ8<)(!z;4};j!_v3V<^8o$Q zp(b>Y=}I#{pxGRkOs5&VQvmRm*kSTjgJ{`9;EZg(_(qDH)4G=cFED!Ck5~tuQLV4P z$@BMraZnWO9=F>L&?%%Tj?&wU%%PN;5>L^@8&0Us)gunK_RX)X=f~DPra$?<*Xdk& zzuVoI-@19Yz%pl4R$gogg|(Z6hM1k+nA6AIr!PG=3!Fl~m-!=wNPO#8HFFCh{=j=X~4-{2*&4;wW+EHGxhr`IV z*b_#htIIU=-tx)4`IN(uiur=qyRhvoq!N@w5fK3WI0Jxb29F{O{0r~kQPqOmv;8Ae zq}eg-%qe!l>hOPa_RQI{KOm;R?Bzv3H+JPG!lwb0oD{~3TuiNb1<}QaKJCjMn-firV94!;@U$Z zQDw&U{P1gED^l1;AFmU*P1&5Fs*>a^9t*7mU_1n&5OnodhfhmVHf!clvi`%F6)TbK z*Sq^)IW?^fp_V5q8Gk1Zqq6wIJ4Ax=83N!h@;~^#NMVNsXqo{sAegBF=x}Of9H_B& zLfCfbL!}BNr;}7M^UJt$jPT#Sr(GZwkWti25)U@;S2D z)uj|1W)?ml+_%RSMi{Q>`e0s{_&?dU%?juQhi4_9JLU}{{759p5#qk7zaIrh-flTK zZ4R{2pJ_JXb*}`1C4)y<7re`Saj#7F>><0lyWyx`4c*P5f`mW)HlgqPK!=;Do47ql zmy$mPuF-YCp8>9K0Ip*!PUaXdT2Vb%cSHPZaq_hR3_|4Vu`xrd*Ifs1UuDsHjefT= zX~V3SRngwR&BKl>z_6wJ5Ec1}y zWDyGBp9cJSz`q&rR}{u;?R>qQN*0*Cfg0vbK-$)cX)Mb+!5}m1m3u>sSC@#?lFtW3T zoZaM@I_DoYT(zLX>rKUaGg=^_?Aw*fZaEurreI1P5x;uxV?N0dt7IkKhsu;9#BR0G zh_6a+s)???^tQdDsi^FiUIv)TfQisgBBwtIm6HNXI+)dtXij@6yhIcV%`TS)S<9U6Z$Z70+zS z*PU!`XZ}#vm7kLr$d^z*l%AHadIy%9=eK0gf+z!pw_&N48YKMjyY}vW$eEYA24v`- zo^&vgKti)SKjlT%|L}v84kc!6Q4TDfx?xcxaxQFlq)IV=w;#4PI&vZw**Wgu{RrOC znq+awabR=|Jw3`ZTP6}4Fv@rY{C!=#@)pA|JpUK@CGggp2NOsjg?<^&Zy+vb7|F^1 z66dTu7!-~jy9Vnod_r)<(uwe|W*HY1S~P909XP73Z|xF z_%WRZL>K(u?K{T19zQMk2J@^GN(s|i!F1X%Jhk~d?@rk(nNXbfsH63)Pa!s)8090G z*hr6}cWXkRo=v2JFeb`@onFt0N0D?u^9^Vg@r%bFeN}IzFILPt!s%)}91N4J$H!O8 zM0DR4jrS_u@9UO|fzTFdGKuyyV(PGmAaVOZ;S9_6BSdcdBhX9?Vvpy#nhcpQOKo>T zbgM?WQ36d8TMSGtdqa($jF%s$YN3>z-~7vBH=_=2%XyAbz2fAF&F_snMA<1pce_2a zIYZ6G2OOj1a5$Jtq{W{}e)LTsh9vQ8L{D1#clgCUf^XUF9KP7&7G<4y;=N7@irkeh z3`^7zu6eTWWV$8@={pO^ZHNk#XNq>Sf68S&;@wGW34gRG(^xRs zd!|}aH2OU8Y7VCqtuj!Y;re_op*nE>1>!dB8_xr>E6-hNkgowU9i9bxrC>q8y`Z&PnFl;}+blK=t+r@_~~K_|?wW-CmF^##f4_`|P>jd>lOgTYLz`yZk}XR1*Zl$f zK<9w}EKoWf45nwz05!{;W=v~poR?x~@H6`{eGnNl$%nQ}ycUVYW2_EBUe(2` zO2&({Auk*05tmbG?huF3Na+nIfxItuJ-%M$qxGqDcOjGA#Rn6lf69S~#bF-}#)&N2 zqyDt5uEu!Rc7^~&P3#TIjb14!7hTHk1GeP#x%>gRH@%}Ce_!Fa5(SPT;N>phs1G;_ zGAmAMsPUT-JRo|pO+*{xFUvIXxcN80DR-laZCO6vn@e@qW;FWXi-eVa((%G4BzrXJ z%Ud>1-I7lh(~`@9zQzsy2csUOjQ)qU++uiJZ|dB1_c$AL$_Z~Jlj2O z7ZkD7>(87?AxzaDeUK1(l+ zr2d9K^)lbDMols%Cld5mph7O|qPX~La1iLxUh#6N3hi8gZ#@Z^eTWW~XVL*}gC_{K zXx1z-Wm>6VdQ2w8+xAsjJ9c4d)A5i8(c8*Bs_&HtQ+MBROEF*&#R%6HdO{wTa>Ie! z_Dv!LUD_8h)t#bJ4+NT-_d%(S6qHaVx}_8k-4@2sa{UxNq3uFrynKO5W72 z@5^QmMEyx_`*5$_&TsThZ?Ut`X8$f*{N~>v2V+)bb1wp&T5|gyP$3Ttjoy2EBVO%Hdu-D>%j;oiBF%k7W;==ImA7m~ z*h4PlHmA35PfsMg;&ZBC$q{)D(2PQkpfx+X$W#_>pU1L%>l8ETcGaIwO%9`_|- zNeNoJ!yeJ1iYq%N>e*SlS{v&fE#-rWu+48b;LC(!xjYR(PiT+6*(n)G-oDk;oR0hr z28sCO?%`6Q84YHFr~pc$uIJzMX1*6I9)e!~9-^~pthmW~eVQh}K)2-!6`HXcR2eUt z+-T}PpxcrHmgu)GFi-ocYx=hEP$N-}rDKX8UG=qi`D~ZG&7*Y3d{Lhgl0w_j+j9$m24<34BA}&qAQ@Xo+Z7R@2PAiM$zd?^n`p7Gy+PbqH2g%Rl}1R?(Nw( z?D1!7@o+aF@Ll;2@-TfE{3AW>>)?C6wqzfM!lKyv-s><#c&mL*|OH?25iuPFPU}2UfB#cS}E5P7;0() z`IlTt3q2A>iKttLpB%2*+8(9m-P~;`eVgqyX`t34&r=`y9AeNnZ=Q!?vU!KEhNEFG zx>Z!V&lT4_$=t0GL2R~&P2ZzSsDao`+39_@SH$h#aeK9>}@#H{^;PKO_q3 ztzi8z57wV+Ta9J|^0E#9lcP4(puX1~jAo;dXQ!{#=$*+X<$wV2Xj@^hx#Y@BGVFE) zd;*WUKm2U;bvM<%)3Mx%dZd!QwVI-0U1wc5fr`KFZn%4P7{)|4U=Qh@?ZpJLrUR7u z8_@_AZl4c36Qz9)yX1D+?7BTUK>hQvuD@^C>ycnzVn}lrABlLKf~0!qO#i~3J>a6* zK*E`yNDt<>_NRyz)&5L@i=mxA?POcWP>20FJpin*TH#E9@pLDUxe7bfi>c}vvs>O3 zq_?fk0j9;amJC}6VR$RFk!P7a33d*OiwQ9dU80UX7syF^VaJ5ffu8iav{vlf8C5IU zU?S-kf=)w9+4+8maUtF9Y|pd@k5BHYDm^1he!iSDC(?-K&nRpnxive~jhzI{`7(AD z-F2-v?hY5~(O{^A{Q(Ab6y-m%c^uhbv|>%Og=^D2YJIz5D>STGl9mgwNfx&>=mPM< z@*d-H;AOo>!nE!iWf%}$CAt}fu)v>*vB~JrU_g?EP3w$h^6{ks#w5XQ%e>roEx$YD z%7UTR<{UMVG|~yLv6V0;I4<~4Ojb)L;%YgAESnMbOT{S{a@k3FVk+q9e&`zhm%5C- z2Ca8Fy6zvMDxC^AorDxeu+n>c zcMdy8jtolHOk)fA60$m>u%g5@!O+v;OnK*I1}PMDcKa#1i9|>5HneGofuKMMnjJ1`pP>DWepp9`S3XBT>0hU>Yo z#-YchEjx@$)?F1-L3Xr=W#l0?m?HN#5vf}O!$gP$_HZE)!FK#Dq>k)!U;nb=2r*3R@ zvL{`S+#gpDyld#RLHuthS5JOsXnW8g|FrjTJT@}>$n3zLgVpZ4k8OK5b?8oXFX%1J z#e#?*9BvLtLWl(h- ze~zJFqQvdz9spJETAC=wJ)kP`Ndp6@31Isy)@tX|QksdiS?t)*F~QD>OkuF*YtR=V zJ_8MB^Y8)9ZXJ`@)($t>Bs1d&A2bd)!ouG=?O8$0GPFoIiJo8lwH*{iFQQqglHtb; zP_$UoNKMevC_p*UtG|{{@b7*PgqqJI;PUZO5!Eo^-R~i)z$4|M&@LE_j|(ogA3`O< zKm8&o$T|{-f*W5(&w{e{?Ao(}?r})uZx;|f6(mkFI-peu(~odt)*?QVuvYRhRwFRv9^}{nn@dWhVa48whkzxmuT{R4MA)A zOI@A1W;aN?iFKonLKM592OT>{Ug9FtzO&%GSD`A(c25uIP2a@K*(*8wjaLskzvL;)ma-!O272Soi_<^#Z0OU`nI^l2y9v8*Qr(jk`?Ubv&qE zIslimZ9-AoZHLzYuaNI34fcilIE5p@P-5kuGi~wsQ^^)^-4M~`bnk)Fiz!1#&jTD$ zw8>1wJv$mfjb<`K<7NkBU;KYZi;yEUK%(Z7%@LJIzO9vtBxnM52@39G*t;coZ!YxM zY*Y0klfgtjEsRA{mXH z&?zw_SN;Z+J&dkqrc*ASzhz}HW$x7*=x3V20)pX#)$duN&{C&3<8Sw=FiJxJ(0zpM zmmNnOc`Tp&QsQtm1pz&b1X813$e?V_Gz|VjNd0di#lH78r&QSS3?vvenb7bMQ@z;5 z=WE`dI?tNCLEP~Pr|KS9nv;p$*VzB4-DbnyAFE-vH-1;?c0bfKzB2J7`X7Uv!|<=- zXrdTLM*z_ZblQRbG8ec)ksSfuzy}jinFN!xOppdWW496yoImED1bSN+C;dm)C zq?1}d>kzXxTdhkHd4kBEfl4Kw&?NF4|MH&U03pisgyK)9z;mqQ%@1r}1kc@&X8s)T zX<3~%yRoLG4G}rxD+|qSykhH&C1uy}C?f!??ENa% zL#IVXd%{M(lF{WT%6;l^EZm5d>$b0cjm7j<-!7CaV^5iW<*QnJN2r+$R5b((Hq9+8?!S~#!B-2=b>z+3iAhaJJ_ z%y2N67;-3GB21UW7yWqkgm`>0gbf7#`L1|3PZp={e^5pLg>@FV5LK5G8JxS&3=$6y z?8pQHj=9Ml`^M`B2Kti8+{|b=24%IEr>aE6!{~is9Ua({=3aRD+~Aptq>l`L`0?O7 zLc;?P4_tBZk&Vr6 zq=~p-G>#teXD2EFpWSuCk>eWVu{z|kyI33wDuLy6!YgTwJiah8mPzNt?d%0uKScmtI_l1~mYj)~@sth(O z9Si_i+R98M7FZa_$j{fz&YX5l0*rwfEU{&A2RH~m6ok_9p3DHT$#x)^)|`BE*AdY< zs@Y<1yWsYZ*Y%K*bP-uIyu3u;C5CR^lnoCQ`UFk)W#Wc3b27wFQ99LJD0u=l2T`e1 z98Gp*0X3ch;tyPzL?)LI9|W z&Nsa|Y~Or((&q`dyhF>gUi+R=x3fQ~yHRB@xtP%JVE-G-d5;g6JL%h1s|K3QOx4Lm znn8k>OB9&BVyk7KvHzGP10JjD&&=1lb^edT7pAHMQ<7Bbb*Bu%zf}x(m*PU2_xYoC zUbZ!rf>bPoTw}Se*Y#IIUQetSa@*xjdZNm~eG_+Qx}3VPG}O%66|_UE@o+xGCj?ti zazvU+UdkrOV0G1<&s`3da3YVKl1wS115D) zUg%C>D$LSWaG2O>6ENtY8aTC0E=H*WxEGLG8NdR%Ma|qmAy3|;*lnYaKN%!dRaB{# z+VSx0K!~J0c4r`wcsPxXt-RPf)?HTZWjQm@hc2|4u~Kipp}eis?GFuq2lau$DFo+O5BMqT@KiJx68PICN^fV8KhP8Zm5XJ zwjg3rp4qc7#@-Zy&2-F5!hango1KayI+1+L323J^pq)+fnE)~h;}ckueXY@i-txfz zV$zynFq1hqwyr9{;mz{>B=G9mD6eXM4T%;73(}47AxB^)8Fy)Y`@HV$((9EOqEGfF z4=931lf9vjIN}C{$s)mk^DTzcZYZkTC-l7`p?=`iwOn|}?=>_jjV>k1SA4D@Z@85F z-DCB>LrK0w<8vOlGUeAr8P7xF;%nyn0|YC3Ri;bO!}H9`j6n)5?gfm@l>%!rklI8y z0rv+2I9h}Uz^49UE&{YyTVQ-oC`5J7bV{jc;NYd9e!<%ph~4?38Y!!N z80yB(I+UL}MN+hE1f0GfeN*X)`c?AB%Ek&P&$`rT5xIpR`f?l4zqRgcL}&W9ZC$W< zE4R^>J=R(W*0n$db;-J}1qP5`_|EQwJ%#C=hoHj7DpOQnXl^;;{8lWI9`;~=x9f|^ zwSSGol8JaJD6g!Nm~zLBr(S-`mfbqZH}Ca%PkwfMuanZ@LTx19HD-*_`_`T)HWRTU z%V@}xFG3HZ+mSp33KT#AtyA?dWov^NF{#;zcBVAmQ{U{)BvmC?2qdIJw_R;4+1m+F z!?#c=DAls9dgT7BEfe-@p|_n*1neV4!%Tb{!NQPDXY^-%iR|et%D{W5I`p@)C?-ey zyi5UGBxg#@)V-$01??f{tXIo)?AVlbYt5L3iGiu03v8o}bkvtD`~6BT~ z9|;Ogw512U{%9ysjRh2sJ*9eW0#Q%dYHC9B%(h!4_JrhSRn7<*H(rAykl!Iy27ULH zf2WV37ora6lRUFQ{mhjL_&L+|K%O&*l2AS?*afD`Or@8tBizCdY;OKNhBI()Kp;Ba zMgsqTpl*akF*p#epC}jIvd!U7dIgdpbbL_q#(8vT(%(`YLRx&`N!gEAm>>_pE4tRW zcewvlZ;wO3#^9h|_#u7GgGPZ;2`fy)N`4shnZpV_%u43447?YIF@U)q<~6Kq+qQCT z;G}uZ3BjgmWKXyhr#7{gU<>r^}a2Xls4&$c1Z!Qx-g4Y(f(j@;k zEWsJXJ`Y1{+;`U&iK0+OUTd`j{yaQW%1njUp@xt1q%wSes?2fJOOA58`bBo)>hPGM$T zUD$b2@h2t3Nor(IR{_12-bpM)bVs{&!{@YXWC!sLX<~jzr4bZqU?#qWo^Xj@`!_6> zZ7J`>0RR8?Z4l7?=k&egbEbUtG5v=Ov?=B7j3d&O6!>Y2K2ve5OVh!&^mZH|lbR4m z8ODOq7wV8a8%^tmO{n$}*)Hh;jmljCe@dYCEg{Diy&lp1eqPqF2jVY3HlX+;eqr+* zC4G9oQXR_=j?SSoh(rg2#iee^7mxaMRSvxx4eQtzhZn^lJ!n6NcO3~fyig3pH`LV4 z3od6IsX%J#i-Yj0<7S_5Ddi_Dn{RR$TbLz7>1)ik*vYM%t2e!~#sHx++q=}+-TNn} z7KgLgE#ARO+Czpzp@T(qw7ESx-i#Ej_w7Y{h2P0bz-b0N@;>lLlIw++Sj^}f z`itO9;Kd=V!^o0p>~(67I$njPlN*1#|FjZ(%}L@(cK3%K>Q?-D`}hE|Y>T_QihTov z&d9F41udrR+7XSdJY-Q97KBP6$$xQiH;HFF-PP^2EsMT0z+eD&>nK)K0tWGJr%v6? z(kf`1-pI4;l|gWC)>-zeE2nHUeN@bq1jM32ki&0 zbkWblUX1`k<(c{MMh5Z}V4)rU>wv}Bl>uuqDFRmZQ-|uuDF&|D#_nq?5wmBSon_E6 zYxk*!C`=zQs2p#i-0Wi|g<>S6#%{A2vG9RAsAp!D$ll*N7A}N{YKX;HAWFV6(34*X z+H4D{eR` zm=T@jHv%wUCK77E3qUmm*=%uz_p>lbjIh_ZFtk3-Oh}qK4%oLk*wX=fDd{ zC?tHamc?EGO5*+T^VqE9#CCM$-uqrXvEUK%22Tw=)}zqj=B=Kc`y&Z>+~_-P(C@(u zWStFry8t(Ql6Lg7fl)1;)FCsH&CJQdN%o4Z_6Bj&*=_ShXF7u(hQY!Cv>WRE3>$aN zzo>I`A|0@o1v(W*zWldQ0&<{e{o6$CE^M!+43nL^eF2X-1w7_1tPYV2CY%fdS4G3p1Xc#i z45aZD@~)gWo-S>5+KE(*)#vgtTXat~7+vg^@TQW%#;hUPfeZia~Q8~B+nf0X0u{ad;7JGw2 zv=I(OutSLT7}MWGcJ3s159ImITi}~p_R-RvKBm2~LrydclycPs%rZEDh*7V@8MyMI zxVYW>ZYlwAKbs0nSX!bHU?u+!^H}0R-X0Ge*kiz;%T5h%GGdM$yi{ZfsCTi_y|r&) z8SDx|UmHcE)jC=1o7HF_g!-5xl}khlzM!Jd_B0G*=r_DB)muykh`PC`Q@cT**3Pe1 zMo`j(|I2IORTQ1@k5{%_>PjcN`t)GP5RR|Ut zlr|?)iN@JPSwa@MnCQ{Pp{#de5U>m=5{JK+HxMWdzd{!H!M3|tp@E5@A11Oa>3mb3fk8GYVBRfwZ*GT zj!-ca$7>h8)ALKk5H>eg;cNC9rL3SIx7v zNt4CdqLqkX9A~~~lUWQ?uL3P5LS>0R3Egvg659^)E>t1O+;SjXPL^gwU%A(_?qiah z$tfvSOs%y_NwAYK@tb zF~3(96vhs$-i4qj97}Xf@3Bk4fMfF0t}b1@BMu?5JA#+1giI@kJxr!2!+HK+>{a^ge|Lit`SO2vR}#Ulq$W}{UxEyA z%wIB*)mFE_tQ8(u8;uxqzzSJO0?X-uT_)X%t+273x3SB>4x?J1;Cb2hogo?fkrDxv z^m+ntqj_>CwiR7%;hlD{T}97+1zD$x&6TLf0+E>LnU=__R0r_LAxH2V(01$}cK;#I z_&WTJ+6{IB|J?1L1Kg8DBM*@8(Jk}?=-@cV|AnwD{H3@ceoUH@z9sLG*OYC_lj>>p z54D@Lf7bi-4;oeD`?lL`KeV5+|GDEqXVdw6u5Q;GT|ae?x}Ww4o(DWX_1^CNfp5<@CAbMMamAb&XjyM;jESQlDjyS~~T>OSB7neHpav&DbtS?&38 z=|EX5KU&c$_gB8%TkO3X&@uS&tKPILcf>LJQ_jKvhylIvANE3Y;XP#E!8ygm5WDyb z^ZygT5o{#Jn4=S11;2~d?f-z0vA+T+RgvC5y|%KTBThwtN>{D*NYay|4ij(2f` z{Qu&5@Xp{ky^AaI{}bn*<9dXPxQ1QU{46&>|BNf)`vd$bTziI_ps(Qkd=kg^bK}A+ zH^x8B<>`}L7n+x*={*>$Tp4A7E_xK>B3Gn?+$2q5t?%H<`aS^;A zCP<&f?-s5=m#_RIjpI8meD-idj86JAI9-GmnI+NQmE-?0AB#O3etZ9ZoY-*{BMlEh2Kx$_iJ38 z|08q$0{J_xL@oi|-@Ec0qc#1`l`ifE;Uef-6~1J00HbK<-x&_x1pOR`7BG4VM~-{U zI+DNU`UsPd^?wg=+)td`KmWLMV)5kcac+`J{%w;_UK!+W0MC3k$#Jhg%+f<%bTx5Y z(tIAf3zIl6{$fQq3f!k~EaJMrY4|&Y4ED>ock@s1Z{^?4|2F?_{z?A*{D=5w`9IQTFRs{sd9@iC67PNdwty0bjvfHTv?gAOuf@nmvj7di%##oJJ~Wa7)-Ao zZwZTcKLzIxw`rwLL{seSQ+6MjiY774Og-fx9$d?`xW%Ot%TFP9WIj+RwfLTvZ+eM6 zujQYfZcm6Lk0)DSSZoRT8=mSSw&~epvn^?MDb?b0%exOQVRGcsQnIzUh*Oixkz{L- zjRu#Olb5a8SWy>FwLc|WRd&6~W`1FDDG6*`T1~dJ#ibRTNwRAi8#UOdu@YHXUS5s> zTP8`g5~6Kz>}F; zF1N%|ayHo#a;tzzo?cvP$(gB^l9>Vp@RgNvOES?7OeBwAmXA&)*+m9!#9BW4+oCJ8 z$B=JI;o@}iQt}d>b-60$fT3MWD~plU-OEdv<{JFNJ}o3TWTrER%-`X0(TTsu-?g)Wj1AH#$2sddP=o( z)3Z~>)H>tnrE3|yOu6MO0fc0-<(S^eAj1F@ zYB|}b-T34*>E*(WoF-C|z`-#ryyco+NnTn>wp>74x#cb`>|MGn9G_XvwrnRdcb8k9 z(!#E#g+12ENDAjY=6P@FGUuM&w{+Rav6VapF&l_(2Okx43kf z$sy1+bqN&4W1YoR24Cxp!4K>@`wAqPU0ntw^H~2p&R$EbmmuL~j`L)I$N?R zG}zk@7=1nER-km5uwxMTX2($JGS80T(q(}iBc;nCJ4Q>FC3cLJF3ao~FI`sHF;Tj# zvSUvP*s$>5l2(A}OcJ|sZe-F@Zk0A%^siq$Z(S^JxR_tRc)N8mS>jrbo|l9ZKs{rD z%HZ4xUkdOgv92`WW5*2OW5+DuW5*oeW5+z;W5)vEW5+JQ$Bx~Aj~$DEj~y$eyC?OtJsU8DPh9tJWd$ zWxF)XIIh)Kyetym>=KkBqhfsndR}TyeD;IEqs#y*DWLm(07&m}9#d8QJ8+AWtZ z&1dGJf|g+Tpmkx91_|+bf#G53E`KY4X#&(~&YX7H;HFyobkB)Pl}s`@dI|R&xprEz zV%@JLWu`i_ldTn|QzmyUJuM`~WaMcfFNT+=n5NaBwDEkbATzhpl0fZi#TAl8dMv9X zOs^czv_u$HC_7<#HG=WVGW5fXzq5*^LH}pwRtF;)JYf!S;$S`n_q)zRun?w_B`6UP zLj=RYg1l%YxZ^6bR%{VG{1E&@{Gwsii@gB$IQQdG=67 z#qrKH6BrBAEpG2pB{>R%&Q?#YlepmqhH%)O~Jhpz>Kx3LpJ?oxX+k%%X_UMoA7dL$R@l3bH~^3 zcc1ymyx;xSkWGKU8nWpR;+x~v{T{N0Y{J9VkWF|c=1#2N?-BEpdB0a#LpJ@@){sqq z6yKb%?)MsN$R=E}hHS!XOHZNM44!REiadqxo>>GX;noILe(HHsI0vC%Ub1%+wN8kbQEHplAJXH|r~2o!W&(WgGkP2z`r z`ZSA@XD(;Sqq`6gJi5d_AD_A0#Xf&Z;j9zf%yQ&%ft~t{@&HGK$w!avHD}@i`}a&v z!OPI?#ZQqdkF!AQ?MEgqM+nHke7c&R@Rqi?34>!-hu3d>i?=dS!5)c~~o(9h!? z!(Sy|#^*Boj9J#ak7M2^&GX~tyia1D_1XNM`52YEokjfkKO}P8d+}?H3F80vw#V=w zxKFmnJa*Q7qdgY5BJsD!A~!`?eS+Ob+Hl@RkCTVm=j~iS|3hvXyG+iZGITq48t)J~ z#a%$QpbK5x-8j~eH>e`dP&P+>7$>pc=mg$Y!{(mBr#+Z?8fVVncmlQgB>GC(xPlDD zue);}aM!u>AilYPr>~lK-Gn==Vi&;)?l!D!0pq?HFIcyeX{uR?J|}yMS}I zVim`@Ih;L%&+K?RR(Jx}Ygh|g_ptedU%pd${azdIbiHR@f98HX<#rPz?Ab}YW2l1P z5sWV2=Oos4Cyr;a=F{fd7 z&N4pvWhyd$)4(MR%XeJ!y*+^QB<_C~zID6#eQSorF^qHB6WO!w#F+8i?HIH5uxIT7 ze{I8YCuD@p-MFG{CeL;5!02*)USMmxy0UAZo5ZRv;`cN-coo(7Tg|6l#mK7p#7)>S z%w}Ey7i(A<pFFNvGO@U@PG0hYU(5I%EOSM>-{@} zlLR`LM-cACUTSoZqB0QT!d!%l;;oH2bR!qQf!)Yi_CPn3v8rCkVju2ThwKlaSGkEQ z(hwjS0iTY6uV=B^dDK$3K(8%e-P=L;ov5ho0&naA7WV%D#&PV zWv^(J@sd^*^#^Qd`G0DwH{y)h;P6Ay`pHilq_MuWqS0}U=5DghE#Z>w5s zO%tuHg!n7`**Pg3BFC})*-|c1&R{+hSlR-kC0mKyA>XHW+7}di2AB&VS{bl{)J#UgcUDlh0$4#(u1pr1xor8)#1MU(?`cI T)YS6}E-Q5R&CfXgJ?`xQe`ny2 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 b/webui/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..29657023adc09956249f6295746c8ce4469b50d3 GIT binary patch literal 16400 zcmV+rK<~eIPew8T0RR9106-7`4gdfE0D43K06(+<0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff b/webui/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff new file mode 100644 index 0000000000000000000000000000000000000000..0ae390d74c9f665cf8b1e5ea5483395da7513444 GIT binary patch literal 18668 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�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 J00IC101u*7EU^Fp literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff b/webui/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff new file mode 100644 index 0000000000000000000000000000000000000000..eb5159d4c1ca83fb92b3190223698427df0e010c GIT binary patch literal 18748 zcmY(KV{~sl(CGiQZQHhOoZ7bCp4zr;+qP}@)a|L=Q@d}Ud*2WDPS$THGixT<$;#Rv zGCOYa;^F`xz>i4r0^t9vJ!Su|{$Kn57kOm{W&nV%`^T#MgMnCtOo_3rp#uQGkNBe} z{xA(n^1^29>Ou$rh<*I%fH;6L&3utxNs-sXnRKe1A*KR%HE z3!=G=hZz6>Bnkj<%>n@WuAwnb85X97CIA30>W>fme;8v3|FQTn{=7@}k52FdDFi-n zsfDeJ`;VXOPrSkp?GF<0G&c6eKYl#_jj{6|tRy&!wubIMs@uCFQ%mqlgW|L&R{miT3OGXxosjhEk7N2MOo3FTxj0^^rd!OlPSx3D& zi)_yKqvM{0hOWnoi)`hxN*@0JPeQ~O$PFN5!~j8(jc_%b1*Ol6xwQ)m{kJOak7OO? zo{zL!s24#&I2Dk|xg*&C4T4M7%^1(ER%tPdRmlnsDzuJxhRxQ$a@~q~*>iw8qN zo`isapt~`IAqWr=pf48ous4J1ZOdk!yC%F%r$Y*lti8MYsOz}YuBzB<`<8Y}RRkqj zoo=ZjS)s|ICa4f_V{l~*Su5%O&E$CElN%odXcJy+q;O*7qiCm(R{Ir& z_IJ!gfgPIXhF{l3f!F-qFLtqgL%}jwtV&dz+H~yQ4#RO1y<)wzpMd}6KNlVgb2`3`UJK|*zEshFwUNS5 zC6%-UB-j+9Nv*j1g*bCdw689CnRMq$o=Dt_>RN~ny=N{hY$b+L-VSgYoh}Oxdm1q7 zA(jN|8VDLqLu1Uvp-G?}4p2hx?XSFb5GBZRzvh}~+z=onD(%|XJ93W+@~^N&;;EM+ zoVGX3XU)hQnbFG+rR}o>H1s#CTo1eR#W0`C73tZpm06Z8IZ;(MYvtG(z)@_3^R%kO z*3mr+C^}ivsPZUc{qyoj4GkUzHHAE!h|(1Gu{?v5He&J(M;1l^0-w=KLPo;X=f#1$ zi+Y^s>dgr9Moj31gf(tBU2h^N9bcPMrX|kV45d~Oz6VbDCX1fE`4(4q{5`SiwKo(X zHnD0_HY_XZuez&U1H{mO>ieByK<|AESpF(|A z8|i?G#EEiGvsnf!?#j!998j!Ti+dJ*ymUe_CXVjTo^p!iv{*hXzwBv+!s6dFmA zMGW;4>e3l&@yhyJH(!_b-}P|jtRxbpu`EWXlbZw@&E_wT$=YW|3DJqW?TrmVsdB>)ugcV!5AlK6OhU zN&e^H;ERPm@B~}$h}Z`;82z3qfzuiow-|!u*qK(^Vd%0?P`OIgh@HW|5N$P#S?qX8 zxpQ&-iRi|0-7eQ1O9TCag3zUc2W-}EbTRRIUeK~z5>BzzC21p)Azdi>; z$LOq}6sNkv(#R1j)i_b}=bIeWzfCPxp_U5@_dziO-qLvVQG*Vww$v$fX}#u_&05P6 z%bdn$-zL1gtu%XQ)d>911j*Uek~uRi)?yEMvmv`2?P_U}=c)|WYX@)$piwY=fy2B5 z9{c)_BVona!r1CdAe*6;-VR>F=@lyn`>vgfFrj99PeVez%slMu9aSgFY83)W^8uoZ zGgh9%uyzycu}FUtIwHzKxZ~bl4htssZN}<>n$6{&*z8_w2kt~^)U7U#q#rdBlkTwC>v0R@8#85t!F?eq0cq#~ALE5(LZ zI5iJC+uns#YVyE36F7*I9Jz+gPRQhIu(vF=lAh_r6IWDomoLOiYyDX1JWwrz136>u zIkQ7BU|u7u64Se5p2bTp8g7&8yX^>ymykxQg~}mk6&Te;WB~uC=ksr|q^y z&i@aI7?V+sHJ2VUx*Nxi&U6IGni7?na`tk)=($eA)vI{gjTf?{JVS$%_?Uk0QxE_Y zpHLs+uT`>0iS~9JD5`r!J6B!lznm-$L?~LKq32MA2XMICrNlm(eA9=GVF7sCIwk=7 zx1Xwp_6_@uJ%gtfzegVpjEpJUr0MB5ZHpgDTkg<$MCc;0pR=6K7FD6jlfK+ddRxE6 zR>T5HJVz;*y8msK(i|Th#*vUI$8xsZx$XHUGTJI&`O1{KV~6cgVyXqNymL=|`e@mZ}+ z@;n|7F^_)U_5qDoFnlfcJ((4gP4<+Af@JcZ$=EE)$)s6(V|Pa#4)6G2ykBQ|T=0tB zH6mf0&=3Co>Sg?x4*-Pdy+IZL_B-y*?A>U@<*eTO{y~7aNzcyGd1b$fZ573AI#O-4 zcImH{KO>IeB`bRE9HjA8thlDBx0O%53O6{x0XM2wsdT;S-F{Z94Co)P?+gw>loK)@ zk*;(!K&lU*74JnW6Dm+5CK6{uO>J!-vdn%=R9vQZM2_MO+MAku%J(*25*H8a1mBug z!k*|5>~Rt*`Ipk~`D_$3t0;p3kPdH<3XcqO%k4h)3hzH)Bq1A=8>$Qcq$$F)&^5km zWD}!Zzy{dujn&6N2WDfDBPIJ_f$jER+mpJsNnX;I_E>HHdcu*Q&*|R2yS*1e7w*h| zw&EyjxK_1#NYxwAytTWEg`v;6Ph*y#&C%g_dJw-9w0`;p;ie2$5Pu_kC;W%K{}FN4 zg(=7hPJ%k|cvX&n?y;o!`N={6_@7xiu!@3ri!(+%JLY0@W!D!^0?cZk*6vlSq$=N*K1Cs5y=($$Jfb^Ge8UJ^Oht;(?e_R>TSb*&mRHDJKL>DJ|hrZmRM|rGEYLx3B4jgQWNI=8k)nprL8c3v#>>;>F0^pTe5!Fnj z;&oRGn3os4CRVtR1)@~~i~={DcHj;JfeRubAH9;}9N*Rt4B;+T4q*9O{nD zBsEoM-Zo@Q>}7-%O2gd!Vh~9$BthS`_>n*e0sR@#@Ti?fH^)2lX;l8`Zm!c>k+2Ut zWu!pvwkWuO=Vg&4<~s?~LyxvtG##P#kg_VKUCF4%Yqx^aT&rK3na6k>=W@^IL7Uz~ z8TPdFO(S6YPLNd=_RRp?z)@jOu1rE5fYy}a8!pg1cp^5ildqk6V!u;i9~=M9`Py%T ze)&A|7njTTFcMMq$@aM6VzB_X}_X z1F;K)Op2?Gz~=>2fDSI0-D^4>?4;UmwRF_QfTZ#O5yYuAHzD9-Z#rMtwlUa3+}n`* zalq2cVkz=4Z#&+#tT%{HW@NgTCyhM&{~Oh1;A?DS66kw#m-1Tkd7b`OXD3iKCIoM;`;SaA^6N1>_@S_j?GE_+-Be5dSy9|(e3ATVEbo8`xZxLO90*rf)pgA zWdY8foA7n;D@GsT*X1J61YdQ&5&h3Va)o>BhD}lq(>;o@h2FEtT(W z4MYaZXIR@)R7SDy$@@i~an{&+BBZ5&UMW9XFt$0YQyz@^k}FMYHjJyW{@`)a-+;qk zuk*K&iJSP*kZpFR*2l_|VhpzGgm;Q5$G&Z;g{w3VkDxpp@3ax2^jElTp@>vaO6>hc zu2r?$+r5_HN+T5cqJyUV&;Ow-EKK zgqps&Lf`~0?x{Wn)e`G{M3oNuLn&QhP2f~88XD~LdakupFmNWk&WGyj-Wb z^4l29OF_ThS+2~}D4gsX&R_aNb%z@0Yqu(0_2$nmYXYn9$*!o%`sVv(|{qzf+ zak2>*L|1Z_rMZiL&Ukc5`^2oVrP26Ue9fg;B-YsMulFY9Y^!S;rNr)2{i5E{VYGzh z({=bcvv5=zg$V;7##dv^f1r+?REYd$$kGaombM1<0FjyhjZ zYMmybnYFYhulQbk0-BgN5~^DM*lS(vTz{f>YjzqX-_^xL(+=Z}Io&U?lwzx8*}bqS z(dki5+eILOGYq;F=TY)0LwivSPZ#5<0@BqY!7-XTY@ZBxb1--%g}W*6kAZt{fd!!` zL)!(RMOTJaWP4LhZl%Z5sYBOY7zAl7(r3*qs ze$WUa0%1Z{<+ykfLj&(SoZT;HnGX{NGTvI97OM<&PWO`_rvXjX6r`T89>+`;2V`Au zlqu5pEbK4oe#R(sT=@`txH=cW)|D#XH!39lNt6neu$*hlTX$ARM8we^wR2Gkc7^zt zGP`VReVgc-V^s06>@_H{A~ z@u8c8Q;g$}BSIKm%cWkgg*9Aj_F-z5f6YAA{dZKavbh0Wmjy$1pr>1W)PpCE8nN>W z+`LqZQd5W@H`+5s$id)PNc)~!m8aHZg0s51JH&=l9CD1{UpNJHfnZ}fP+6L9FrtIv zK$vBGME!0&4s1r~1(Ew+Kwk;AbGnVj{@9Dq$4bzcji({mZvjhUmZ6VvM-{LUhR{T5R&w-hvD#rbmpCY$Zn>(XMZx8W6 zQublwiKZ>+Fx1~WCbhnjEfobTz_3K1h@_sGRd4Wwm)4K~gaL(hC;W$2&AZz^z8IJT zw>$q>o;Wc5^~a-Nweet)thD7_Rn(*63R#+U zpAC_}WJZ}e#>U%}3>O733cu9sv~eFjQJsnF|H>|j&SW9Vam$S+y|-)BbocLQd@!J^ zf)8xLM3$V|+p3LLA^Y))K>W>im48D%ZU)>BR)5gkG85As6K6k8ihXC(D2GOe#(I_* z3TVqBDME)7RQi33sYdT{$WKdeaWLp?aT1Q-uOK2HxHmYk*OrxAb**mS;)Z*~3yq`; zgLcvba#OyM`zfTOnc^g=#6i*YeC>YsYN*kMikcgZwUYsf5Ar<^rg@hT29&#ly2qFz z0>}&dzC1`L;lVN{u%Qy@Wr6UL*_l(g9pM9tJr9hOizVV@HhSGO&Nnk_Dyla^}<=8~1ftJZZq{1cdl4@#S!A$|@; zoN2`&_gaPpgdF^T_sDUKiMm&Ks>^Ar&=4iPaPwud(_<#AwLQAmYi6EXw` zp4Wmg{&*4YtYg++=i_1NlLfvV&A{(#`vm`v$4$uu4m*rEeMul;K*7pEqJ&U8)r9bLPsw1-pY&Hl$|ew{65 z$EyD3&D*=pn}nTXx&TFmxs*W7n4n-!=IBms@@;S38V+qnH@}kAUlF>B?s_Vpvue-F z9yX!Kt+k&t-fVBz6;I1*l>1t1V%eIAVv6+S7)*Ac$OY(w6M{wDSSDOBQkkZ9m)8;b zY5PO@_=PF0nTi;zeW$bD$D}z~5~)+5aY1qazV$?qX{QOJtHMjCRXP&swbr@*RSCrP;QuBCF zFnA9dDwxtO0fcgnV9Y~<9!gWF0`r@sv1*rmiowv)ZQF6Hz&0{ipS%*$7BzdDffEfU zTjAoGvL#O3yIn*1s$xaqEu?n13}WDsZ|b)%m?;|jSvxs&)GOG>zdu|2ULURtUTZl9 zdry_1<6W#?z3`HjZTcRhihtHkJN0VjN>SUgwRIiS@AfLhKM$u&%hN!&&BA=(5X+lJ zzD~WXoABJ724?Co7zq<6v6!q)@!1Bq=M&}!*)q0s7ufTXMyM_su+^-2?#pU#Hwuq$yVYBp)u&3t|REymN-{|D+Ju_;@xfQ)844 z?cP#S=x2oqK>lXp_)WQimUE>#G-#U=U?CSM~9~`?V$}TDSYM^necCKEEoL^Y{;-+OmNbKe3$o zE>~f`m2HzSj54)aD3FmmT27R)j9rw+Q7!D}%myW6Y=F0;v)r|{`zkuZY?E|^g&5n5 z`(H+4x8@?7$Jssj5)$BWbRa-|A2 z5^Gsftg7Is#N_RUCOC|~wuIKDn&ccM+T=SKa9~l;$|zEnG`d!F$Oq5i#S}a2B;3Mb zE?$di;`X3?86gtW_nKw-vcNlRM8QJGg1De`fb~MR>f@SzwVaCvu{qpgxjt zS*6AE4+0i7$fQ(chNUTs6N>+_@Jx2vCJ(2Vb>#4+KUTdf)o2xHQE{J1_p7upAF!H# z1aL8uky+zdVytr)l5WbCnTaP`wKRsRkg1rADg=={ayRNkgR;tv^LER0)gj7uHO`H< zPPXLQmsMd_pcSn*p`It(%5PG%Mn6y?L9ODEd9jkPiT?U^F)4c^r05K*8hR}ukV$HF z9T9^_#3gFMBudE#CY9`ljswFYY^o$VT+YNHJ)5*V_A3zN-o+ki2VSyYB|bb_8ThvK zVo2i?6IhoqB%7dw4M#ThVsg@3o($5E+5i-4R}?9wN+6#E?nDf9yn7EAF(798llkv` zhV^$OLm1O7+rIYksC|cl^ZAfo+(weK$jZO(A&R#)cnqo8Ue!OA>_r_TJ7MzY*HGE1 zM=DmAzAA3Y6(8bSK&Dp@KJ?*_>qcjx^};Ud<2LJO;_M}Es`v@;GmSqv-H_yPn!=Jx zk77)$bkk5R^JXXy|P0Dd$_72}i zKnDxo+?7d6K7*w8cfVwS!f0V;mpagL92fAnE%r(52D^);Krv75c~`P!sr{ytyn@Pe z-4>tgUNQ^=1aTP2MT;BztE6O2@56n@k;YiZpa<$i;?+imYx@MUOqcCb(QP*ylE4Ap zkt4^_y?C(V&2!C8M`#FFkb2J!Npg@pOq5FzaEIn;zwkdM+sZ2Z7tFpH$ zhI@om4C{vG#I^zEK6Z7q>>|UG%wh6s+(jYU%{B>K#Qfdqw12a;mseP|W}&7pX_nmr zRJFZ2TaTaU-JjoU;4a}K_B4dX z_Q3aYCEL?IbWRUn=&>4wv^pw_OWz@xHpJ!3QljvkHH>Ci<`E5_gPgCLS9(zN9A4xq z(~mp#BJ-?vZsS@TR*Q@^QiU%uH(Qs)+RtHU;vN@GS_=@Gdhlb0@;#~t+xrlEUx*-K zn9^t1&G(q>AH(ibN9^)>92CbyH4eY%Umx21eU#fv$2I`{GyWWh5!1-}i?@_1LQZ}z zyJt=;r1=b8v|qS#O^5aH46DbUxZZ5{Su}Q~Z@H}|Q4-)EK5DZ;lc53%3`{QU+rF&* zhuE{$D$7)a(6`O%B9WBEKD9IDZRjFY+s66KJ;oKahudi50heAk`>(wa8D1y?$_6xn zjU0Dqx@SBl{@ToYWAyZ|DdNIP8p@_K&n|X`0xPuRla4$fW^R$OAuBOwT%iGrSb@>Y z2rWE=D!4_%r6LVcC(FL1Dh$!FuYL$1#ew;N{xcRrf-#(eTP z&hAihMYwI*9beo690olHr5jIDT!GP~R`xT?{Vs%JsvK=h{A55wsXQsNJDIgoKkmiyHZ;Up3%!zhzdI zC{lMD{D#;e5MXUsVy@na6{nSd)oC}8s`*VZTK}FtlRvz)Q)T-Y)llArpA*|G(W3Tn zs}0K1kDNm}&>xAEee>70cCO#Za9KNF{(BNssFu{?mM*mRGoz&V8253qmy37~jdiRppmE{z z&)y6)C(0PGyqPe-V`NQB@1CjzMG(kC`6w6Z5W!$ zl$LOpK2@ua*C?=b0vE+sw;5)|)_!cXSp1s#ISwDlFKwX$JoaZr(&A$CK4uN-z3R+K z+h@_94-AG|XBxEd9K$P_|>j~*tF>%$unchjAgnf`5 zaU2y^7Ef^Ute7q`cv5rRS7>5oxgyl^8v%}kt>_Pt_vN3F8*v5cLpE~eA2tJT-*(6# z4^BDdrb1@u{n(q+N8CypYP5ny{Z?;DjP^Mg_{yss9=GsZNDEIf#iYSb+0wb`U3#4_ ztGbu77C|mQCq7t?r&goCnkd|OD!cfbDx(cQk^-P|y3BgwjSUn?>M;FmUGCt!=SA_1QZVZe1jz$*!p3kmN9%~plY12zx zKr-F;*>xT>FpWMcnGG!0xFHctU_s<kjqaq8EuAq&_S zEKI*Ba3onj6LC4aczWZmXs{bm2cw!d`BwWDQ^f&w44)5?vqS^s#~3BkSSym3W_IXP zIe&(y1R#3UrKi~QA_CQ1?Iv^XS_D$2V#fKXk|b?2`VYQKluXZ1jIq~joL-V2s{$q1 z#Ac%yd8p8ekSx?H4i0lFDk^~7?q)~jJLWeK%<@f7V>PkmYxSU@aAiErQ!9V(dl$2q zi?HM^DUc#5dX(FivsPX%ercMvSca_O?4jTdY>TG^=evh3rlH=`FrOQJ#LH+`m_l*Z z>qU}de5?lKn2ce=cm^v}5p^(XSW@sGAL2X*N}M$B+r1-|VJv1jJsloe{jxR`C?vu2 zGaB)??UQhHNnm%cJx|r^0zQX{%yl}x0us{g`{Q3zUc|Dh70N5(HS_PSAA-G2JYAuB z6(c6b$&9-#m6wW<#rIhugSXval7RhYPneHXB-Jwcio|MqolKO4qwOR>Q+9N#w*mi^ zqDK22t`dg2Je-;Ed!vX=AIO%+LOB zf2N7m`z`m=Cy6MLB27GFueYtY*lOAO6>brQ_n9MFlzZo5T_vc|;L`4XNxt75)W(N> zl#2sv)XfG+vf8$WT57jS#}K|(YnUT1;x1C(IDTUDI8|{b+bGbIm9ipA<2m+^VlF_t zgW?Q(%O@P>AYBapG|Gr;$u7q8+<8kPqVi!(*Xt~QduGlKI0mbk{bVhi_nl;8=?~K5FlS^M37QeT>29amZe$m|c4?J4R z!GCCYKzp$_;$`4gmA=RB+SJL+Ju)F7{bwd~@UF9K^mw*MOaNq3V@2>_P|r71LSpQi z*U^X|=jU8r2cxg~v6a>7r}fM=iwV$C7Bd$K);eB{)d~uAbMj~a|MA_^LoqFO@>P#~ z?VSh1*hxr`#TQdx$f!do>5_#FBm{jXsu{}%tL8X?A^<1-oNDkyM#a+nkD7nj!)e11 z#(~G z<5o&{PFDySNUB;R?p3416uZn3=dd0WpVf;l{yMoVNBJ%-AN2xQIHp;BO3xO@QhyA_ z&77ndsi@Mq^FTHM} zH?QxQ)$!g(W<-DWeOu&GQi*{z74ns@V_iV(tM7fw8>5>nXOg3snBi)lz>pZ+6%BnU(v(MXsk?+W8bBl{ zPvxFT@lI`_iQz{)iCx8(Y?mw0$AG&qT-o_772>!s#m=;xa#PcNpehRw&mq~Pl76nZ zo<03?9*gX}!p)m1A>dYf0FBDQMK<*$CAkIrcW(cX);(=JG-=gDp1gzX6GV#RtA2zt zRQGy`z}B=H5MhJT;Vw%}NUvLxVKaY1p&yjteSXkcyN9EkS-f&QJC{lqAw9yi31u?Z z*+p#Md$M9$eH!R@bG)usQ(R)obj$oqkG07H#B2Ma)Ov}ICnKx@QAyQHYgygoZ9*Uh zj?#7CGpSQ%?IA0TL6dRrj|%rCR^pKMb#WS2s5w%IsOojGVCZxRvh&v)SAztrZ~;Vu zU+T<@>gnKJG7ln!ly*!w276vuC54s{5>Xg-0oC~b=J6VK1WyS?q?{Mxqf?&P#L*z*Lcq8A-1tsJiiT`tK;Di@Nw~ zy3(wa)tYd@Nem4Kda_Fur>mFs{Z+Cy)LThuX`|$eUIEDn9V{z7G z=%sKoF2<$NNVINDOR8FHnK;Cw}%&_vxd{r)jv96hwrxjE6 z@iBKxc7Ox!1%;N>2NgQ8BzuML@_m!yD_vwVO*6(8Y0>)8~q{Jzi>+ zv#Oh`1Hr-r(5oV4DQefsRS^O3qOK38b?-?_7{T-7-^DEOp*+vc0XN>Qb@%O1V8K}2 z*WXb+9=0?^*SoQt@ZaEL`|GFghG4mKIXxs_|4?1%#h*vp;NeaoVAZYG(1@2-)|;aP zkQIw67Rxous(NYFxtWPA-B(vFA8GI@-%6SDXu^So3bpg5xcPROozr@2rA?yVFKp6@ zHV5yHY3}%IMa_V zYV=?sA^et_?FdtQb9#oSinyZuc=w-y(3k?}@pfm;QT6E|00hvxn8dj=(1N~uA>oXz9DQrIIFWqMeJ5qHB{)%f zG6ES56aBS0*j(sQXtB`=LokMW@jDn^>q$0b*(y*CGVRj=rn0cR9CUksy}DdGGuqVx z9`@HKhKN*7!7B0lZCJ5Q_gY6p7A4FbaaxI+Eyj8QEy!%>?$EL!ZEWI%G$B%4SX}x= z=5n?K*O{4_Ka$zY00W%`+zd&Lz^jYJ3i-SoM``P5+WakDq-5SZ5CC@O#&5lUQS5oU zPsLax|5UqI)m){1^b(UHdsqNN{C12p53vw3clf41E6zwAx#J9uN=m|U1cMKE4bs>- zw#LT^kIiv3-f6}!HbXN1n2u1e>8Ul)gO=gN%vcj$6tkp;utvC7D}BOZ(*w$K=_Tye zrDKauZ_iJ3DTNouhXA*pQS!=LVvvw=x&1RfaskJUHV{M}3G@5y zF;ueWkvb{GrSb4|q<1DPp!-PZM%TAAx6ATXy8*jXsF72rHf2SlYg=a>>oEwG2^|3{ ztkO{)`q2-}jTB~2$gCNWv;^vxbBFs$GIjMzIDss5F_i1-o^)=PfZb1A z(ehIQcpLq&B!zYKhi2DHMcsN-T_%4p42i&Q1;LYqO!_ujAYzEgikkPOpdk|XrVc<3r1{Y?U53L9U|rwpJjBp>+=%-qk$zyThUa!Y|6$Rq z{ubvxz}$H=omv&J14g%I(7-6gXgoRt0xsIUao0O(r$BcR3V*tIG_J~NLp!Ykqf_vD z-l<39Rd+Vm@}_xd&A1k9&gD&P;o(v>Nz{*H*ugpdS1uqh*j1qF482XMJaTY4x+L{g z+u$$tX8f=1Ht|f1(Xspx^=miviRj{GVd_<>G}yV;F2khz&Q6t=w7_PRCfc-WvWQLET#qA;=#0Ye zSh&PUaaAI#bAy7l?KHA={4cVwqzU!*Mmf?pxR#eJB@0b|PJz}_W4QQldZ<%tdR}Vq zE(x(2b102`gE*aS1TGEQ9=>M1`lh(!zw7BfLlY+1o%`#>EO|WHb!K28N1Vbxc^;jz z-$*djDB-ucZYOzMyj6&_>KZm__ovbt>f3nI9VXLwrRnGi0S%8AET&2r{G68`(IYM@&iL%a5 z2)Q@Wc~Y+S8&bC8=YT(GIc8l|`m5zyQ0m_51+=Ph);&r1ZNzy99vrq6*@=x{5n zL06TffsH7E>%tNBOQP!_iV}N8zDJg*y$1n9FEUsNM{OfzhS5F^HHafs#3?`(?S18V z&*S8F(H1WST?NJ61MN)7SJPHO6B0^}0}Z(OnDf1Bv6<)iogSnA{sZF+$nKodfN)M4~+vMYY#+=00%hsF3*Az=#+|5w4koFRU8D z;nTpEH8M%ghv>MOg`<_?g}1k9qb-%^=Y)qpw<%b`s=9*@>CEJcJ*Kz`p#~uebk+6S z!Dsx9Mbg`3VP+uZs2ASdjIg<>ZW{5SW^42t9<|1CQBL=ZH*d$8L0I+$zds*Wub#Q7 z3C5gHrr*!+aSnrH!n~It!~7oOI#U~C!8uPz@Sy`i{8I0IqiVR=RWNlrs z&Cda1%BB(L<;dXbC-Mi?rY^BH{HDdSd2Bl71vePr>M)=L?KOsFD2Gm}q0;NTyIH&- znFdwBoPwlisEW8=ofGm{8qD>tD80|>9A8HsQ6wTVrk*Xo$Ds=4=YaKvB40bIE|*>1 zY`GL%le@DJru-N=3#mYb>A@8{g7322-3F_gU{e#}e8f5s12iWy;mF8=Rogj>lK>@-R>g#T z6;$brYnft}{!JQzwnR;6fQ^bR{nFOW*Ua66+|DrT5G=@4c7?mg!D8<6F=9s`(NKZ&Uo(kexI`D(1ScV9`0nkQ|oXxPF5(J5BO$& z*}xPO+(fQP_AKQy(K*!dfv55`FF>$ZYq>Pgf95S~|45YyQfz~{12W`m)lNhodTqAb zXy^xRYKaF~xY@L&pVA{K*?C|rK|r)lGrR0br^=ixxgWm)J;e8~KesynyANvzCLn?0<$ILH^&O07wQr0oeo105bt+0bhccf-HcFgKmI{f;EFHfuBOS zLMlRbKtVyxLCZpaz<9w-!K%P+!)3uE!{;L4BP1ZoA^{;qB3&WtA&;Qopk$&vp&Fo0 zqOqc-p?#spq5s7Qz_`O?!JNk8#Y)2l$F{*fz!Ack!qvn*!87?O^Z1bX83X`=Izn;6 zIwB^bUE**OQj$VaL{eMQZ8AQxPI63g2l5sQS_)f=B}#nC7Ro0o4XSdgFKP+uXzB+V zQ<^`tI<$*)W_0`X2K2KGI1JVdT|cw?Z~i}kX7poYGi1`s1>|Kxx>v_yWs7v$xL;aM? z9romI6oVdaU-=OVrU8wm4TTJIPwAbW3k=VrHP|n@NV!zyyBYk`-(Rh%rR$ruv@P1 zb%$3r?B>T73B*Y1DtFj7-YqsZe`CAj{KGYmzbPpp zQ0z^5~0tKJ=S#M(lqpcy%fPj>MfQl$f1P~ArgkUr8euMGxVSi9;Ow1h^#%>Ro z1Bl{|QbtZjN?vAjwHNyV#1WU&{ZwEO5kFiOg=e|a6+tp+*k}Ol8&dsGpR$o9Sik_( zV1!svGXOIbG_q#UD0Xx}SJzTHz-?+A*urZ!Z1djj8AJh?5C8``;#@TknjiG!TXC}l zjDs7#^h-b_nt2wriMD=>t(s0aJ?<=vQ`+uF!)cU%1= zrL@T8VnUAzY4Js5q`LOQ)=2@=yHzJMK@21~fDR2m$$$H*T5Zj9Qx+bt^5;{5TI!!M ze!&(NxwH*4*37>B_!Om^b?Og-1{gQalh_HF?apXl|PrOFt@+|SiNFI)f^>Ae91 z*!zYrTybb@d{)KH$!5b3#v$Ikr&mb`yo>c&v>XOlYElBDYT3C26S2{1&cNPLj9sff6l~maUl5P4<>#Se2K3A;Cf62);n%UqZ+YMgLGdP+d@< zW~ew95Qr$~@<3reVp$*0sWJXDqdu1k5L9Gt4e2v-^8B0!y!L+aP;0ZJdyZq_x{wj9 zsAz1Xa4L0X?P?T}P2YA?ah?DM5E_8a=HrAJGDD9N?xiwk{#ER_sqJ-HjSE?Ryj^fd zP@F|`IpSrOqk|xjI*)Wc^k2XWs16K>D-_3~6@;p}fr`akPD3oXxnvH0@%|<1P--#7 zDUo|abpAG(cKQ|~D9TzaWYOxR1&IuklN2X^F{O|q23Snx{{)T*arYF^=aFHN_b7`g ztzd?RcuXa^oQLgb!@+Syt^hcuU-JR9pbp_U?{;W6p7v`((JCbch=Ueo#t9ul90E=d zZ4OSVH+z0kXm11$apX{baukZk!0(?@vSI0jBTK4VD=>#fbqP9gM3H31=MQvFTRo^IA9Elh+cOX5qT zSm_vsk#?)9L?UwDo{y8#1rJB1izAXo&V}&%&6|dp5M|-IE;CRen-L|IejER5n-7St z8ey#34&G3S!SW{Y&GME?@+@zwq`=ZtNs;9pm6TZCRY@Pqdn)N?d0!<1ENvxw{9`F3 zrX@7c_y^w>2h|B_+;dou(rX{))VB(cFWJFD=K zjgRO)K2`utxTKphnv?usztY2G^iO&%PDV=}PaHm;Ns30*^Jjw;<KY7k)4Mn>Gr$2pLAzqA_?R@B{!+Zk}_-(P7-OB5H3n0Ig2DqND_z==xRLc00)^8QglX%B0dPFyD z#xm-$^7EZ&+nn<576^Roih%epa;*;gBNX^lI6WJ^85{Y{ti9= z&^hDa6MFCkJ@}3amG)(uE2%2{`}4O$f130$m};%bm8ElktA{hcFYDSLV@v@@c-ms{ z-obDJP@^;)Rt$jQFSc&gsdl?TI6#eaGC((|-M(33?)DJ<{B&^_5ya#^Bq|;}{D%mf zlbo)R*l$s`!D~Dz_V|chW;-l6jQ|=TAuX8XG_V%kvI-R7MVrLe`CVvz-L*XMqTQC4 zJX)a*+^Q)2QZDZUC6t@Gb+xGtzkiQGa zHwN(m%-0`Oc-mrMVBlmZVqj)qWZ?v|7XdMZ&B!1E3_J|mAZ#G%#Bd18W?@ib zWP!3-8Jrl^plmiIabBhr#tbN%kHLib44_rAKyft)g7Ak!PBG~7`15slH*|@+5YO$m zsC8F*qzEPRcZYdev>7Y4LWwdx0-wq8MR$_8>MuWx654?U3UtkF64)mvToBIb{7zui zI7;MM=LG31=RXA2#mU%pmYh(Y0uAZcg%5;JIAv3~C*CSOp}L%NEGef+&v!>j1^Y++ z+JD*)>3`gEc%E@YLEidqX9W^Owf_tCR7EoMb+@Fe(7gE4fmwgFQ+#=4pTEDn)ApHQ z=!&Xiem_;+Bcc~Qnc~X_PULoC4YRawaBd}kCn9FW?+WbsyVOqxI`f392?n;vNL_ej zYEdGp19!Q5OSdmn6dIDDW4#%8dhVJMoz)l4J3ZL5VD%~+y0>YYd((O2mV^5K$bTVv z>t(ld0~rR|75$zet5d(-=t#ziv+Nr8_$Mz-N7WXNsk-DmwKhHBsJ6VWdK_b0`i-|} z&Hym&uH^s#c-mrMVgQ5x%?w5i*gzhDAh!O_Xt z#nsK-!_&*#=SvVg7%&U~003KN+gojX+-IAZnweWzT3OrJ+SxleIyt+zy19FJdU^Z! z`uR@=flwrtNM&+`Ql-{tb^6s<<22}45JS6l)N!$E{Yv34uW39vc&52r=-u5VkCk1oCcjlMqM(2}y2%Nz0r*N zbk(V<^WWD~BQQY_+`?-GQCL54xUaGB=<=@%!l`?4bp6!L8@EaM{}{ygZ{hn_Pu+cI zMp{k%vmo4Y8sBd?d)u`)pX|NxfFPXyHQdCwcH@rQaNH{h_s`=~yY{C0&OY*{+uwun zKMKN$yRSR5ar#tv7Wdkq>xZtx0X4-xg!>=C_ri5I-+Awk7Tpz`|0O|S&)#(Fsf~er z{2-R{FwXzw%^UaL#^UZT;X7TQxn<+#GbeuKfe_a7hk_v8e%q~g-1+T~f8$eva4(+E zF5GtencH6ZW%q9i!tHI$e@fs&1D{{wK|retLetmum7BhNR5@={S_4DPMkpA_=h#56n9r5+IYq@!Fc=7hL(RsdI5=27eeEl* z|Ko4413g!rlIKwi-70pWODE`|kb$(~8wb)W;G5U!T6aK0D`A1M$&X z#lVt&nf7TS3-5`k>ijqnmy)PRchlgcDK3Yj zT`{(QbYfycF@uUPX@;GK=unt6$+fXZXsv*TcnERE%0*y_KSK{%8y^^jz#> zUjiME0ET^ofFVo-R8-Zb7_G2eDwpzkT5@Bk1w`Ty)*P~zOn}&^C#Z2;+0!^xRin{xCKdG<-J?!1-!)y# zO{QgrKjjTA7}6$>8hn4Yn9P846Bj4hpRqp_MubUl?$~G}4$cj?nvKR#V^V6h28l$a z!NHadSTpQvhQdK`PKUSXo0=!G<;yJ}ApWe9lw7JVtCGx_`0BGs&W**zw@RYluUr8( zlCEIfX%@VngDE26FOcv>$J24?54}h9TGMb0 zX1fzXH#=SGibf7KjIWVWbA)8s>>dw! zMh*xTpLMa{hlU;yc7xAmhI(@(>!jfb{kCun4%(!!0R=T6OpQ>}LIR|VZ~zYUmx$qP z@GVXwy?77U$)zifc+Xt5tW@@T-BZ1dkY^}fDl)h3=6hG2%I@irk?{kmuLttoiHN~O zZ+xH}?=zkK>0sFHQoJ)`uT>rM+!!6dV!W1Yxr2=9ue+wJdEKv63S)!O6#I-P7Moct z8)LDaMBmv{xhUYu1GqosUlnGBWx%y(As_&*CfQqPrV^2h?4i(tM1l4ECP5kwVf_H+ zvN`2ENfDT{K`2rDyo~Q^xbdI9J^sajrht36OrMfSaCtl^GEtPB=Hciy zNyDBK7}AX&<_b*e^^2l%F(}8qeaEl87TQbpx*Z|L7eRy%IY=URW!^pwHTP#Za z*vy29ZwU<5vQ7jU$ym#>wN2XxFy(;~SQ(CiC2@2R*NSuyi0K$UI><6yk~BqE4JiV1 zB+3$d9TVLP!ngNpY57)ijF<4rKvp*cmO6i1+ptT zBwkn`YX@VYh%a!pStxD(Lv<9!jlX%L->7-{hK3;e^v&7j$-C5vXzro@ThT#z6Li$R9H zH7Pe6DKSh3iJvW%3;u=NhQc&~{zAUtq$pWXbteYktCh;OPRIgFm;u7_=aghId+$+6 z71=~M>X;evDh{lW%c>$PFmf!L6~&kc`yVh@29&Ar{52EF{+W`lghl0gS={{Yx0VP) znx8PlACt6Nn)HCed(;@?rlGRW>El|p*8#vqRs0vud<7?5Jc1vrFSCbV&!H89F@I9i zf)`=Kn5=tOt_(rlsGIPkum~G}GVj7Np+?-M2oLMez?)mR`zPS;I^gbX+_JW|uy51; zB_W3AazOXZ*xD*%R@ujwj25r+Vzu(wSXbMB<%4m*r5f3 z!^c*@=q#IQjVoCXoD0$+3at7R2YwWQ88v5HnT%pAMlIC&x`CIM2U_B?E+>;qeg|+R zD(u16K_Pg|AyE?{XtFF`6eLwv-HAX-RbKOe!4=ZH3g4j{P6JmV0l1RMq*-i3X5l3T zzY~~%Uo5xR;zNr$ZC+|ZkZe`rmh+ZnR2AT~Jb()nHhcGbf4*8ErE>ZnlLz`9P==2C z#7MliXd|KPbZp7vhEfDKX^NvPu>qjXk(MPXdsFBguX=ff5rL-Z`TV11aHQu-wYQ+1 zkTr=Zk`FjwnuwqXcw%n$bqKqh*P&X|C0ho?`=Dcf1-Mx^Eg5{VU9mwW^NHw9>By!U zXf_e<4i5Bk%LoxZ5#te3wr5&OM^&J9;P^pLS^Pt{$dOBXnN@&HbdMo;oO!ABva-iqo!D&OaVv!6EuYQ zJr|d7Pd(_6Iq#g*u+j_PfLh?HXp@JLXKmX%8Mk0>cti#}TsrN9j@~whpjr$n;HRM4 zJg7FC-;#bCQ}BHnR+tK*HW6tm^qV8h1^;i6=IQ8_0RRE%aw`)a zAi}5^$}X-?1R$=WB)XUOw5A=pL&i9e&bkzFDVJ0ATE;@4w+KFyb+}6~$&B|rS&Oj< z6dRPN%OfGsb9nI~LWymD@A1bpC|MhN(q&SzOpzbw|)_=Z#j)Az(1w z;2>}s>2p#}WCTq1dsj!XP$V_FuaEEdIxQ3Caa0w4pBQ}Lz{I}pTusi#G&R;=+U=F@ z;jb`c)kET8sU5ex8CND&C;IcvYO+h_qMDqm8|;5}w5@nA*7q3JcZKgVDcQ2ZTl#>I zi+`%vfcpsrYVkUW1~IT@r|C3YH2e#b?Y4flNB{`8sMQ!85IuZLCTx$rWJwP_5_cq} zZSIhVjv=?j!3Qyy5Y&v^IN|(~zW{C33i_4N zCkh1^H9ZvGHyzO6^4|U$5CEBxolYQ=Bc>ZD@Vo4TZkNxK67agk18;uKpD`#cR?d1&kg+D6Z1N=r3tkU^V2b9L z56F-3!K49A1rPkhzAzX6P-H`c(?Ng&aKHkhdv`oG=W?q&uxP%6``z$!ytjAIqqx!# zIj)P669%Z@;0au02URdqn|?+5lW(|VvMRbn4XETm2V_tzUU*97{P@`Bke0PIAVdne zweR!4<-tSWzVL9{pH;xTW7(L+mTQl78~;D@G1p zf5VN7dzpDMk-3#s7AD-jpm(wr&h$=?G-Kh3v3puc{ycNP^_Dl>cc?i(zvqFx{^%W< z#8uzkd(r?rHM2PO$>U3>eOhV%QzvMBh=%w-gF3Uql~~{5rQXY3#`@<%O|QUW2}1n)2pHpgWmf zitp;Cd{*P)q(!j-VMVwKxq)K`_s;bDksFZVn02x`9iIRN0-KOff{2<3OW;#tOE+xM_CAZ=A9@9OPL4#nH0e-O z2UojyMWelifkL0`+IPak=F0>1#_@YSY$zfxs=ZalV+lFYwc>25lH|NZeJ63mBmXdf ziU`=Yoa)QC9ZLAVymO4@2I`K%Pv5I&?`ou?)jxXBnYwN;sMV$)4eI%9IhM0{5JUdA+*27? zx)g2O%mjq);HHj2;UD{$`^vte6n>zpsB^OHj<}_gS5}NbB-Nz_uR{hEvaE4W#S@rV z$Yd{hp@kEXW8|h?a#PQ-#o+vu5%YuF*zCgo*i7CV+G4dWeZXD)UHy7st>u$TOU6Jw zolkPlfLk%la@EPFyb-6%tHtyYZzG~|_Ta-PE$nbWFZrji!p@Kj+$e7TCrGY1>*3{8 z8rpLJ`s4Nde+Y-5Jr{$Pk3_hj7#+-Z3E{aia%@m0R>WYLlprxooeZcgrd4exe4gGEM2jzyZe@PKA=1-RtHDA znoE-Eysl>~G@`fyfJvL*b9^#g)p%a=R*sGgy)waD&U9MR#J@+%-V=?@OmpY{rWT$K zvpjb#4>WE}R-J5mS~1k`D#-B5SwI^EyFJf;T{sD7`!3nyyya@!zFCtXf(wq&W=m0G zWJR7ho(+Y=0ZK@K`|`P7UWNyPXi7wC4ov^AZS28^ptc2njRdI?gB^C0(B!BbujOCfcU5X0tTXYznaw5|kmD%Gi_e9PGM+~|I zrW%<|D>;d91CC$*vH1$~Bm3cqrLGET3RjLVbo=QJ@aDb+w1L(#Qv*ZMaLS9g9#;0k zHze!4EV>cP0QY1=$H4`gkia$Ir6)i(lyXiM8eZN^T9rbe#;?RB;tOVZ z{>0~Q(T<)82EoJ0n!>RvRk+PFBm=gGl_&QsU~X$;OH_ti>$|y9bNZ|h$k{V>caXezNk;iEDUPz;yMKYpHA+tNk6MIB;sorGga@uj z7d|SIzah%}Udd^>1eQY%?;8Q#ri=mfH9)mdy#X$`^n*v=H)4gbOcGl*m$RE3qEfd-kB z#YJ=3H|vM1g}kX_Di{0hw{pewNMhCq-H=``FeTvUus7ax#F8JQXH>5`UBv+JpeO0~ z@GSeK16)*!**aPgtF$>^saB!tKyhN8M z8JlBViK6Tiwpak-;|Y~0z7 zkAjK-*s0^JqRz7i%`o`GEpfjB~Y6Ae2zAG9X02~!a4 zmLp@$bk^xpx#kD%DX>Ikq6?D3r4#Gy{l6wTnC3*VOM#^aAF9TG@CRJe{R-%&yJTQG zB`{9;l@q{pneq|EfYsPROl>t)bOJ6?@GYn+#07*WaxE@NaV|(QOdf=dcQSZGml6RT zo<@kz%JV)4rKpZfAF`M(UyjOREZTj@;m>CfD?oD@^@;oa7RM^a@M#?K#!8VJRR?MU zs6@GUMVc`b)*1IN)f^AKE*2kgiYjtWfR0#;DY|^^wRinJa;J8rZlT4cxa7_6;9mY@ zE%7Sd?y4N|)$|_7D?7E9y7JhEo6-ZV!)K z_$`D{%rU>)n~LhTfA|yjQ}#*ZnfAaxoE@qL$v+HGhSFM^<#Jr||AHl3Fh~k4>fwAN zOf+P6C551|-DQA|>KXg&a>C(+RhPIX`NdEsoSlN@#cJz)ihs6}V(LPDbh^>yO}PS_ z&!khytkEs;rZd#tHQ_}d$j-Sozisv~EwDF06%*q~CfpBi3!z|5XRYeISDC)6Q0q^5 zH@{h^MzpFXeO)s`mHFy{qoNm4QrE>Fvk&o42tCLRYR^nm1Jsw~x3wt1B>Z;*feugu zt=14E-4=9&xX2$^x)#a+Fj)bB?VGK!w=iRulIt;I#=zt+UzLpQR~k+33#bxeZYWLh zrxUP8NC=ClS}754B%6z-eJ1~?)1htt0P>kY9nm;4ecRKn{40_P_SLV#Sj&Dl(k1U* zVa^G}`|M46I$Do-GvT?#C2(C1&^*bW6NbTc1Kq@RohAr?(QK5lZsNG@Ra)e+@|!ke zUZPoueYBMHhXP(0J*Pj{s>L#1=alC2c&`~pQO1FgGd6i5=8;KxuQA9i)Ke*eyhhC-~3jwfV`tAb3({gYeRmXcR*s zAv9?7Svoa1syPavjiz2Wuj@aDgl;{_ZGnpjVP1(Vt>RL$R@@{{i^fyfl_h*EjlYA^JuDz2vayS`qO=_ zqc+W!*i8e0g6#^3g zzG_*#2O;U$1ysyzT|pq@3Mi4g<2>v$CK9Z#57|H{CwIASiou?)N}<0HujU=5k#uOL zt5rkypr>~@Ty*3{ic57m_d%s6%jVuiHp}$D@n(EoKT*u0ha}n6Q}oG7DRpKRZXDUM z`+u+NT|=3!Y^ob)NXzLLo9wS3H4Uq~XlAIAAX?a6AC`f#LM$ z=nGf@EV(f7rr%d?=zT7+-_+)sYAz$Y(nk1+ErHQU(DtZfi>+DF(QCqSNc6i!1d@`` zpYiK`MQ`H1c~5wZyAQeE@SqX*MEKq~`IxhhD#AM)D`*t zNH{wIuH%~LST5LGcKP^y_l5MR58)kU(SMp zkqm@Tp8<;j3R_Jp=<)18(Slwig#cH%#k>Y=rN}eZ~B-7 z2imPEsd_HY-14%Y^*2TDzP@OrT<)u|8}W1pRs=jpPdDtjaxmfTej1R=Itfgf)NjUWYSodZGbtx*9tJgp7HN@a|#}<`^o2cMLMAcgN!Q^CCBLo^lQDqCaZ}UE^ApCwc(Qz`iRpW~KU5m%mB6N#v?eJN!bvy;fukSzf>y~+RUWMk zvDYGs5*5iI>tY1{JUocEh{i8)=9autB4oKxCiAL^s_tyo43v;C8LlZ@TC3m0sW~rv z#*LsUiF5?_9)rImOKQtIqf^a4c=5;L8g$?tSY@KK$^nyFA1sn>Nfdbqr1*$>O>1C< zNiU-=E_oF%Qafd2Z^+%V&JavJpUscYiu_nOc$E z0Vy_bMoaOCyK0a|+SRXSv$87{(ZrnQbM83g^u$=d>M;tc|00{!&2lk_9FwAmlJ9QBm=^2=^~l}zaBQhhb30xVX41XnS^iH%0)C+c zt(6JsmsdNKPBLm}NbK}XZ36(4k#=Xasik!B(Z`RWk;3!V<-U?>?kgb|R&a8yu9Eh@ zgjGVB?W%V)WVuY0mK5^z4eHaeQ!S){@>T-LYI(dwBb&opWbw$Q!Od(6*v@@YartAB zfYVvE`O&LGLVzSyEuy)+7@5`Zal6k zp>k%(H2vmQ0Kh_usFg=!k!eSd6Hfo(>Au$NDO2f|*~bvTTS6>(4V7CNNaUUny8f|S zc64{Rxq9P`O2pY+E9CYs2b6;W|cQoVgnB@|$4zH3L+HjJ6mOOCm*T`vrOZ`LEpp=#cAI~=+i>{kN0;@L@0Al*aIk&m{A-)?o< z)cl}H%L-5k@mRW*2BYPc0NNn&9`vH+roq-(#IcK~lv=YzR<*)}H^f!B(XC?-hY^sR z{n27iq3PiHJZm;7dB#xo8T1E5Bj@t_C8vnKJRBC)8w*9o=6jf9(Hn$-aXmBRPZU#{ z-+cT{l(O--0p7|%CBeKdW4Etc*Gaw%^=6-bwB&WY*bMi1A}vj+0=4KcF5r%a#UL$XrL!w>}idF!%D$1;%}klz`l-68Au6PT7R)_?HC9OH#9=FEG86O+bzgJ)tPvf7Trs<2+`D z7kk1QD|m}xIFdajf8&tis?EDYwZhy%uKX-Xbw_a&Emw83DwPVAEE;wa8Og<-^tfH$ z^Eo38zj6O~L)IH9mp@cs&Z+7z)F1G&bRwCWo{BrVuD^`FDRbGw`wD@+yZc>TwFyTU z>5IExrJ|A|oY-NY{LSc&q2@f`HL9lI2Xu*l|+dK;8Vj;^Ss>Qf& zp5LbSB)2g~wn52{A`jZP=vMP%E|*xWcQ>IjBMqmH%yP*T2e_CB_skmz2>skQ*f+4N zkgPd;qY=H3s2~RhuhwI@3o&OxajQ&@g=@1eF1ukJ;lVFD5!v{pp1xeVCuH{e;Ky)p zL;C}l#}i2`R*?2*`ebi$s^;O{zHq7s!M&vkk(D)X3lFEnxDiP#)EuJ4FHQC@z|AS( zW|{WhfY+@^eoK{hB$NP!inW?4fs(<24%hq_;tyFM{<1N-#V=oX2TrQq#lE4wy>Z@Ec`Q{B?hbm3T_SN!Z1Zk^|KUii?vCaB z{tnQ1ICriLXGsgjUrI0RDrb7T{ah*DIzXBs5)QC;yjQX86ZnRG6Sz4F-1IWy8*l=3 zK-j|Fq^QIK4b!YZuWqDjvWM`^UziL;)>vZ}(8a3gS zhrt!7%JV-$k2vK_a-;#RdJ#kfF{d5(*eDpML0tcOnbjNbT13nyB zFXXSlmP!;Ow;K_5^ue=>b}u;UHFCNVUt6SB`^Oby7aFsE_9^(xyf z?$~i!3D>*Oz)aoq7rudBMf3_%8<-3~u#P%d0K0zzLIR$1JYrDZq^PLb4AeBbE?cdJ zwbGD@0wm7~fsBYKVe^U2x1(NwFjG?%pCq#ny@pMU^Ua6Zf4~l-GnGFFc}1pO;$c@cy)=3q~L%0cq zRI zJ4)!QdL{a*t~gjP8}>fIRu+4#$V63y>~ES=9T^E_Lbe)Mz`}c;yS~p>p!^2jxeY z5}qDiYUYoBB6L+@0GrZvF?fvec=o%S-vuj-{<7uYiY&nrA}Yd?$I#dp^@_GXtfQi# zZ+=&V$Z=PoGJL!RJD=#j(o~)7d(_*2z{}~A*fMJJCKy3czm2Y3&_4lP@o7|Ct^`E3 zAD5$sFVcIIg;N9Y%WX9n4q1lTitZ7aP-sgbd|d1A%g-8~o`=}PM|Gz>a9psGI#9NZw>2@P}ejVG=e)~sEfP$EPx)M)@x2T;({ z`b!%I?2r>3Q$WYh!^M!@NkiCyOG{fkO;ofb>AE6S#c_xV;DbwZ}#Jg}{U#^Kyt)iFG`4{w<|{`mvm&g(91zv2V9jw zX7rUu;;NQx$UPZYYiR07Fzkukx0c6t_t48?I{aa$lJd!-($yn%>rQbv_L)EZQ&*Vh|o1b1_d+@0XM`HVI)r_GoE(&)D#_ySn>^!~13u zet*EoGrv=IM&SWrr)IGrife0l`-d}T_I1UYD|5@cPWYjk$RLH5&RT{!08%ed%anbx&84T2&;6X9)2Oy1!NqU;&z^t6ADN*I3^_ zyRW(H38Slb;ZPx1>e6MrFo#o)nO}*>V;FB2(Vp2q*1O#i0PY9}0W;K=1t$a>YK?Hy zIRd=o%4LfI;euPp-cCeA&y@#CgT1niES45M((Dy*g8E~$HCamTb|UV?Ca#D~`6b2K z6I18I;-Io;dGQK6U)|ds%M1^yF4Xh!M>T@k(855}M~Um*Gs#kN&sA<&W!_si+>wKj zX}?RwJ5`KOdP&WTJv(#Sn!8Izoab=leWjj>Y|gX0IK7)-52H7I0$M(Y=tFyEwC1w< z0RV~F5j85SSuPPNeGAYs`ht-^4ATTlV8IJG!7a}Sywk!#2qYmRsk~o`*JGjDF!xAP z2Zrme=9@S4_*zMt<|b>E3d$ft6Zd4$Gq4(yXBiu796u}PdnyM+_vgqFx!-+cJm)EC zYWr(oa_yTvd_lRO(5A5Rh9hFiP04-hVejTo9kO?L<}KGLqj`5)RZ&Y4oEN)z z8npw;(^g2sux%!{SlU|R6t{o?M-y`8PLmfrs!pKD?1I)|9hmB}~zO+9#Isy;s0 z<3RV3Z{|2Wl4GmmQOW5&akh+bh6@GcYCq4vhT7dCs4_RwA4TM3_0&*>5;_tnCw13> zhnNsvIS`H?4De&StQ05!+n*ikioF)-X4Jt6q%h=2i3LTgLHTm5~g$Xnp!nt&nj=buAo>tq*$^dc*8dPskC^2GV|?16%8u;&O&`hfA%D>>gJ* zw)t0^wOpf8^#xT&G@Xm(>vGzI^;c0#|1)S>%2f4 zepE?DERznJ*hR!Lf5>C{9k4^upzNj&SExs*M32+0 zA(dq)rMK-J8Mrzp_xSq_Z!FXA;hHa?8KTF@lYzVmZRY5GpwYVe(^c6A$b)!$%)did zQnnTwNB^tZ2Pj9Rv;c;JumWj6ASFUutspO5{jjR9R*8|{ExIyplil~Cn(EI~KQ2`j zjm?S@_qkN|y`9BUcyoD3)z_ixVnR10OaGllrI0|p4DN%H+olT0WXThe0j?tT58i#LSa>ETz_2fy^1x!0YoOx-o*M9{W-_n-OH2PWoY#>@h6UB`O& z0@w8ZFm$>iBes!$s~^eZEjA>t{jiWdSPAVJQD`OT zB_IpYBn#;y85c0dDONOKw2a55bUPl@Ih1S-s6KAaqcHhMx z@j5yuN`N+Gzb_3QK5Zk!FN8DDI|LkH=!h!CZUE>*KL7Cu`#SR)nm!+OTr)mCK4F*z zO@7nD{AnqWR(1X>E=}y?7e3GHF3sWgUE~W33%iVr+fW~!h4~9PYv?#)u*zLlU7zwa zUg~QOTe)x>Z{qOm1Remzi?Q{h-&1<>?>O;u-mJZSbsy1-sWZZ`bJdP}5B>@_vX6Ktpy(b zXPet?rwB~aF;nCQB66m07?zlkgi2>h++0Ax5V|}S@|H$)Nn@?3FB~;kGN0;=xfYTR z?&=nw7rV3BYWf&Gq8xApP5wzXi`tBwk1PbPyNG*>Y-BA)~*#aWk;4g>AWIW5zb4#Brn3@>^f7G~8y|9}+8C{xp- zkyeYolx9@t3dX|80779;(%8HhPWWV}Gx5GVB8t}&(~zPvuZR1i2GdUNTk2a|GA&=b zi)}&@($>!1O3vE33(4;I+T>}6ErkkVgQ0AfL7-rZI8hCSER{c+?+UsjKCPN56-vQxrF8aor8RI2X-MPP%-To7awLA+Moe?F zAMfcM>rJ1U&vzH{OC%HNi|=6X!1_iY6MeK}KWx7>ZJU=ZB|}J5NC{fYA}I)ktz#W2 zu%P%WU&!R=_!zxN?9~T@k$N@+9p}tsm+sJ6g}+-e!q`LN3--BGMGGy4P58|FS#AL@ zKyWQz=azg zyNmhG#!+-GZ&`BKPN>Y*(6b9iqOoHGkraFETp+ECjmzfI;oaf)UoqBQ4r-P1P^~-U zbRM4{92v$28Ic)gTE{!E`ffWqjCV$5S1R4>#Yj(oUuCV2u;;z_Z^*+uDO7;HPFD!= zAsDgqU{Vs6x+6`}!B`IZ1T6Yow&6s3PH(^5D#6GZc*9mRkWVQe{D2%l3G?GDo#Ara zmDN93SPkIKYuXUrrla|1d~vFjgj_L7?|tyYvIj{Os!F579aU+1$Cggkdb^@-G1j)s zfV0RCQ@5JzY#|}NcgbP{PqtqQ?Zv(ojrl#n$u*zpe!|N{t?)B_1JQwaw!4mUVP9V* z7_96KYALrQS@ree@>u0HDdl#_6*g+?msOLG6au|nR26(pZ?&%ZZrU9;D+vReNJ2%@ zK8=edegpV&7~S89hQ`p%dO1uvxD;SXi}<8>tpU7m+s(G#onpIh1Y!7+K-ql2elk4H zeS7z;B{Q*%m+lUsLbuKbCO29d6~7NBRuT zp4&g^_nz6mgx9b9hA)IZIoEHJn;lqR3M5`Tqe=Sk)rnBl(@OZ5KXj~hW3}{amHNtJ zZn?&f^o>wAYxLp(Uj>A;8?j0qAAZZVunh__4piyvfMcg1tkNf#2yl03S}t2dJIxA{ z12m9`g1pLnKub*T%{g7sIIQIVLLZ*V`Th4fvgKUJ9YcdkkY3J|^LstcL+NC~hGy#%H0y4wD4XI{+cptc9P>nh0S3h>~t<+H=7P!Z)4k<4~2w*(U6c*%vf zs!rSN0HSZVL|l?oj*`8e7(Q->SFp*dcQD|+#TguM>nirm`F1&3PnV(83us)>OuHR%o*)3=aE*;;tfWS*aJ>;@5+0V>OQWv4EdeazEk@{vgC5;;f?)@r#a5BsmWjN zsk+31Zd9via}s55DP27f4)&$Ic#9Q;ms5W)A4JS`5d9$9GbfJJXs7>nZM)DgTxxB1(ZtQbSp3mheA}A8yxufTrv@kB%)zsA~m)$ zA~}7|dKGVL1sGxiJ?ISFI^5OsCW(imKhuJjuC{oS#l;ZP8fk7^t6-yB_~cSD zTpK*HCPkz5g}ECjfp^Qk(Gdgtml3B+3G7w8`s2m;okqfU^vsJJ^ag9;=h@e~i{a3G zRyB6@VAGrKyk;_hv@PCw+T?SPjRtn^9YAcldwygn!YDSiEt!?6-ZHb0fewqnv_Q=9 z*N#LWK z))kdEOP_rGDtEA<1iQld=q0y~UC*3SAmoggik4f=_Gn1 z?LZKApaQWk5WbkXW!EqR76T~z+OGMkcZa9=$hs0dh&R>2WnhZK=pDJ&@8rloW9gc% zn@eA`d`I2qEoX|QQt-EXhHHNYe(Jc6*R(xsk3-iJYF8+(yR?8aXcz`IdN@$5{|fn% zk+GRVSA(2MX6)ZF zK;*x@O-EqZr_*G&VSVUsP_5lLVD^x05KYo+TVkD~}8hRhtgPt-yodN=QtM-C*Sc%voxmx6GM@ImM-`h!*hR7u~2-w8KDMeC1=+8+I^2yYjD z!fs_>>`9F$h#6OaDNq;WS%O6(`DSxlttsT@p>2NsyK;Nss;C!X?E5;GyFI>Oq zHr?;@q&#o)?)5R>Ip05-*O*`M$Nlg1|0J*;_;PR{_^#k)=q;hY3BNA%ZKY?*)$+~dZ*--)p6U8Y_iFctyEl6ldmiukQRPhKTh*(oe_T6T`|IBI-mmw? z`)=&R|3+ZJ4;)DEeg41+&-jl8kNEc;xVJyBXP|^PfPD=IC|0rm{1mc)KWra<{S==+ z63X~@4F9V5*Molv{A+Z^EqqpJ%zr54`M(Pp{uQAijtg1-H$s{}B&0^N%6}83k`P42b(}8>O|gxC<3fZl2q_#J z;XWbDeoN@W|C*5F8peN&^?hGxvA+;>J}uPQn&4-@gv^)&;~t?T-hz9r3PJW=A;-|XEWzcm|q8``F|J)*Q_G$K3LB`B;{L?u3xc$lgO6X@>^tY~g ztswlfSNO+&+PcBY*@e@{rDy)8C1x%T3&+7Tf1VM9w_HO>s!xJ0f{?MEM|UBK3*a|B zKOjiLv-s@6c}dXmdqg;nH_m-Pe7pE=@fXGSi60PuRs4|n5%KrMKN9~`{8#bEf8GB# zt&10NO$Pag8Fa{fKzw4y++PD9p~a{d1Z1_1W`0FgJU?D9*L{+>v`TZ6lAt+{Wp)v~urLu)?@a zJ9{RPrK3;bUFNfi42JpHr~J&1bNRNgvU+CisSu-?wYF4kicXMUw@kZE=j$}{`IXfSuyJl9)7Dp3*Ks66=X4qk(P(HrzP`4$76-Q4#@wm4aA>tH zEYsvHzQ>o_DH^4gH=gwhr)b8rvT$;3?exZ4n^o4{_iYS2GKlwp82z zOzPaqYFo|Ewzd2$D1b}WYi-3sH!zVoeO^5|o1v2gZrolz{ciL1g;Q<0CySGFnRA(Q zc-Hy4Tm*&=uCA}dHx8|>=GU@onfCPIRh)|xUOG#uwbg3dF;}7g+Qq`UhOhbAJlG{a zyV2$+&$ihqETpaW)Y^_}hF0qaSdwrOQ?TCY^);HZK5wm7uRi5)3v&yzJ=tx>aaJ#9 zB*VT7t6&Lp0DV2Pa4x?=M75AD#EBs7OdN~cS|v!E-1Bd6Ap= zKR^4l%Mio`kSLzduJwS4J=OD^FSJi@%-7o9DnQ6&+Mc;R1Q`aPP}@u24&j^EqL&Xh z@>)pA00*bA@V0MmJ#%h7)Aj*vwYFJZKC*gVIz7KuXuHnj@2$1{)#Zb$%ZKfQ@hpz} zt>b~}dBL1Jx_aI;=h|#zw(YBs$bq$H&wJ>X7r)vp1X_s2mDTekhd|ftIZzmn_4Z`* zxNK_-exUPo2_%`$t^txotbY+lFDKT^knlX5vpkSI*A^z9VvJe*5UdLLFMSq{thUYk zY-XYD2K%`n*z2>I_1}p^nBc=U!P(ha!axA$*v9#QR%t(0iRZxHA;1`{)Y{?dc}AZR z;F~_9)$<~K#;WHf`ixi4%k-J3o>%BISv{}PXR3N$qtA5pyn{X~Rba!$e_L4xrt_KJ zHoKanrPi+QI2qbL`3n1FZO6&d_Q~7rlbNc}_EcULP5||c4JyI86TU3q%V1qOz(=2X zz(=12z(=1&z(=1Yz(=2Dz(=25fR8@A0Uv$#06zNct!Bn8LF%h!*4vTw43r*QC!W~A zXS(4Nf6sYz8Z4|r zDH0W%JJ9oTa|WuJL2KoMxSM^Sg`ZUu&^|A@S~@O-K5p5v`N{n7`2iLrSciZQ0PvF6 ztV38fhHLFswKqIoYY+cdQ^DA$Fnt6h5<^S3?H;EEYdJz z!2mEk3f&cIhcQipIxSk$&KtsP+c{S`bFMd^$&8=FJ;yGemg%+c*H-egTeCCmb>dV5fDQL!@+{QXeGGg23adw zgoxiAO?v5BV3zSMTx75Uxzxc$ejI3;*gnzoCQjp?>2=lx!M#ay*LTG=^a>!Pg( z&R5%Gm2+S};<0m(^p{&32-@4OV~GnE$i&7a8}l1*&}MDWiJkM1v|dP_4bZOYc^$Tf zxZmRZ|1*|ed?^O|f5XLuZ_;Dq`QdnW2ft+3I_q470v@ewVPy&5#wuB&8R4Y^%{B^l z0|h}_?BSh2!u`GNAxQb2mpQ(S+p&PZ-NKx`)%FNJ_7N5rfbPsL7~w5!?XMC;xAy_f z2dYmA!Y&L}Fkmz|Sbd6FM-E|N9XU*M7IEqb&7r|jnnQzQG=~OPRG)@6oWp1pBiMF~ z)~Zh<4586+jO=4q(mY1TuA+I?=xUm0jjo}2*60L1a{<%V>6tXxpl8zHBt4S`r)bU+ z2B&Eb4bIRU8l0s$G`QAU*E~koS?i+F_13y*bc3}n8r^8Ei$*tD>!Q)k*1BkPi?uEq z-3lC!Zxiq~>sxyoCthI>XE3~-kWSOuv-oxgY%PW~=T3V_bMCU{&!_K+sL3Uep7@Aqo!n{~g}*h8BBT6;*-UxzCv z?fX4w4{5?f_K+q#jJZ?W_j|qd&AQ(s_K>E(!5-4|H{!}E`+kqwLz-~T9@2!zs!w6l z6+GLv5`PNYwH6RG!IrJfR@&N`wpduXcgvvH1O$LzIs|u;y&1O74*707FQ~Im*Aw{9 z*J$)iUh`lBwLPvW_>TiKSmdi_5NABYxT42Q(NCL%bxd9%=-lUB#uv7 z^FD!jpJ317dy~Ffe;mT?6!A-F3qsC~asV`Di2py>8FRr9KG7MAc&pjxI%5fW8L2at zg;`eWjFlb7UHmk=u5;Wi42WM9=I~DD+l2e@)a!+7@xRvGiEKd^_N#W|vw^%p9eIYD zHR{JWgPmk&@a`6xdkelD#?0$+n*#>$p4K7#Qo-uk!?<2x~LH-2vjH{sc*gk6B(7JR4A+p(@QxK{%!pw*6A z_x;)HYnR>OrJiv4jAOX#?H1hhtc=i)`}gCGY8gEDPP~(7L%0i{w_;`2TWcX4-fhhq z#>^(L`CnnX6vz~{aAZsTMUEBOD8B9}k$#tz*!E~DDc zCs*<8dw?0DTn0Ub#6g75yYc%pj%-mdWBp%hH{&RA!_QKUxJm~v5SH(_?7G8%^DORv z53ai1y562)a|rP#J&~Su7skX{w_{A}p=TWiH|)jd0Z0PP-MON@7LRS+f#~wmyg+Na zw6e>eo58B?#=q;qu^Ylk{QiGByRx2yfgs$WwDpR3AOSI60g<4AT8SaX2Q)y88Zk)J zs1FM?u(4NYn;2jH8U9%Pwitc!$u`a2Gqbxhn{;P(R$%=d5f)*rLuV>#2H@HmP$oFb zL%fXF$Jh!9^^oUdR)qvwKeJl~|gqA$>aF8IbWRY;TXC^QxgQ$KccxaCQUqwr~RB z9Gb8TP=1A(zlQ$c2HerXICe40caZo8>~TIyPtr5gt+0L*c67MIW{Rfab#|8KaPDND z60|^zv_#94q!mixxL%qvv`Sf8lRj{KZ=E)1leTCZ-nVmN=M#qN2m&6N%xqC(g6x#c=?d&K3o&nFG)HHBH;h{bzo zr3?imWnfwX)67Zr_!|mjQ5Xooaqc4e!aR?uR)k{$=kzS*gt1qyxi;^Qfn_{$RbSxM zl_-z{7HZ))2_8u3<3mz$ZF9)f2)G_cfv!e5`UEb#Rf%pI&8i3+x)G%t2L@DPVr~h$ G#ECDig^RoZ literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 b/webui/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..215c143fd7805a5c2b222bd7892a1a2b09610020 GIT binary patch literal 16440 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 b/webui/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..cfaa3bda59246b49e94298478d6de3b3208066c8 GIT binary patch literal 12216 zcmV;pFGtXKPew8T0RR91057-z4gdfE0AMHp054wv0RR9100000000000000000000 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 G>;nKVNojrn literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff b/webui/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff new file mode 100644 index 0000000000000000000000000000000000000000..8d47c02d9408d34b2a9d566c0fe0d42bf82fb735 GIT binary patch literal 14408 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 b/webui/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..349c06dc609f896392fd5bc8b364d3bc3efc9330 GIT binary patch literal 12028 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 ZM6wWJqL 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf b/webui/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf new file mode 100644 index 0000000000000000000000000000000000000000..537279f6bd2184ed32f1a5168850609147d58ee6 GIT binary patch literal 19436 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff b/webui/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff new file mode 100644 index 0000000000000000000000000000000000000000..31b84829b42edae20d0148eeec0d922dad2108c4 GIT binary patch literal 12316 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 DqysK0 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 b/webui/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..a90eea85f6f7bded69ff5d40114447a6d8b48cfe GIT binary patch literal 10344 zcmV-uD3{lFPew8T0RR9104Qhx4gdfE08C&204NXu0RR9100000000000000000000 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 GG{*pT{>~Tx literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf b/webui/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fd679bf374af72f2a183b97b40c9c7e9e51fbe5e GIT binary patch literal 16648 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 b/webui/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3048fc115681ee6c1bc86b0aa158cfbbf59daa3 GIT binary patch literal 9644 zcmV;dB~#jWPew8T0RR91041yd4gdfE06`=G03}%f0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff b/webui/dist/assets/KaTeX_Script-Regular-D5yQViql.woff new file mode 100644 index 0000000000000000000000000000000000000000..0e7da821eee0dd05a0a6f0b16c2c1345dc573a84 GIT binary patch literal 10588 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf b/webui/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf new file mode 100644 index 0000000000000000000000000000000000000000..871fd7d19d8658f64d8696ed9cdfc82c821ed76d GIT binary patch literal 12228 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 a^|k5z`r34UeQg~YeP3G~_EX$#+W!Ytlnjvo literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 b/webui/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..e1bccfe2403a4ed770c1697ae7c15b9e1cd9bc4e GIT binary patch literal 5208 zcmV-e6sPNVPew8T0RR9102EjN4gdfE04)>%02BcL0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff b/webui/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff new file mode 100644 index 0000000000000000000000000000000000000000..e6e9b658dcf1cd031ac82b6b8f312444c55d4fc0 GIT binary patch literal 4420 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 CPy?p` literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff b/webui/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff new file mode 100644 index 0000000000000000000000000000000000000000..e1ec5457664f438ce5a1cc6dd8409bf60ca7804b GIT binary patch literal 5980 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 b/webui/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..680c13085076a2f6c5a7e695935ec3f21cddb65f GIT binary patch literal 4928 zcmV-G6Tj?tPew8T0RR91024p}4gdfE04S^g021l|0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/webui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff b/webui/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff new file mode 100644 index 0000000000000000000000000000000000000000..2432419f28936aff53ddfa2a732d027e6a6648fd GIT binary patch literal 16028 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 G0ssIW}E$%rmP@UWH#*azT!5^S^@#OiXi?5ka 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 MzaRX}iWL5T03x1QQ2+n{ literal 0 HcmV?d00001 diff --git a/webui/dist/assets/icons-DnP4c9nr.js b/webui/dist/assets/icons-BdGv2zEo.js similarity index 63% rename from webui/dist/assets/icons-DnP4c9nr.js rename to webui/dist/assets/icons-BdGv2zEo.js index ad71fb7e..8b732ced 100644 --- a/webui/dist/assets/icons-DnP4c9nr.js +++ b/webui/dist/assets/icons-BdGv2zEo.js @@ -1 +1 @@ -import{r as n}from"./router-BWgTyY51.js";const _=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),M=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,c,o)=>o?o.toUpperCase():c.toLowerCase()),d=t=>{const a=M(t);return a.charAt(0).toUpperCase()+a.slice(1)},r=(...t)=>t.filter((a,c,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===c).join(" ").trim(),m=t=>{for(const a in t)if(a.startsWith("aria-")||a==="role"||a==="title")return!0};var v={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const x=n.forwardRef(({color:t="currentColor",size:a=24,strokeWidth:c=2,absoluteStrokeWidth:o,className:y="",children:s,iconNode:k,...h},i)=>n.createElement("svg",{ref:i,...v,width:a,height:a,stroke:t,strokeWidth:o?Number(c)*24/Number(a):c,className:r("lucide",y),...!s&&!m(h)&&{"aria-hidden":"true"},...h},[...k.map(([l,p])=>n.createElement(l,p)),...Array.isArray(s)?s:[s]]));const e=(t,a)=>{const c=n.forwardRef(({className:o,...y},s)=>n.createElement(x,{ref:s,iconNode:a,className:r(`lucide-${_(d(t))}`,`lucide-${t}`,o),...y}));return c.displayName=d(t),c};const u=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],D1=e("activity",u);const g=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],T1=e("arrow-left",g);const $=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],F1=e("arrow-right",$);const N=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],O1=e("ban",N);const f=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],I1=e("book-open",f);const w=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],K1=e("bot",w);const z=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],W1=e("boxes",z);const C=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],Q1=e("calendar",C);const q=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],X1=e("chart-column",q);const b=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],G1=e("check",b);const A=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],J1=e("chevron-down",A);const j=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Y1=e("chevron-left",j);const V=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],e2=e("chevron-right",V);const H=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],a2=e("chevron-up",H);const L=[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]],t2=e("chevrons-left",L);const S=[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]],c2=e("chevrons-right",S);const P=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],o2=e("chevrons-up-down",P);const R=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],s2=e("circle-alert",R);const U=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],n2=e("circle-check",U);const E=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],y2=e("circle-question-mark",E);const B=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],h2=e("circle-user",B);const Z=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],d2=e("circle-x",Z);const D=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],r2=e("circle",D);const T=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],k2=e("clock",T);const F=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],i2=e("copy",F);const O=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],l2=e("database",O);const I=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],p2=e("dollar-sign",I);const K=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],_2=e("download",K);const W=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],M2=e("external-link",W);const Q=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],m2=e("eye-off",Q);const X=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],v2=e("eye",X);const G=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],x2=e("file-search",G);const J=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],u2=e("file-text",J);const Y=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],g2=e("funnel",Y);const e1=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],$2=e("hash",e1);const a1=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],N2=e("house",a1);const t1=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],f2=e("info",t1);const c1=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],w2=e("key",c1);const o1=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],z2=e("loader-circle",o1);const s1=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],C2=e("lock",s1);const n1=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],q2=e("log-out",n1);const y1=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],b2=e("menu",y1);const h1=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],A2=e("message-square",h1);const d1=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],j2=e("moon",d1);const r1=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],V2=e("package",r1);const k1=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],H2=e("palette",k1);const i1=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],L2=e("pause",i1);const l1=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],S2=e("pencil",l1);const p1=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],P2=e("play",p1);const _1=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],R2=e("plus",_1);const M1=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],U2=e("power",M1);const m1=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],E2=e("refresh-cw",m1);const v1=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],B2=e("rotate-ccw",v1);const x1=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],Z2=e("rotate-cw",x1);const u1=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],D2=e("save",u1);const g1=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],T2=e("search",g1);const $1=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],F2=e("server",$1);const N1=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],O2=e("settings-2",N1);const f1=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],I2=e("settings",f1);const w1=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],K2=e("shield",w1);const z1=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],W2=e("skip-forward",z1);const C1=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],Q2=e("sliders-vertical",C1);const q1=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],X2=e("smile",q1);const b1=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],G2=e("sparkles",b1);const A1=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],J2=e("square-pen",A1);const j1=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],Y2=e("star",j1);const V1=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],e0=e("sun",V1);const H1=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],a0=e("terminal",H1);const L1=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],t0=e("trash-2",L1);const S1=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],c0=e("trending-up",S1);const P1=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],o0=e("triangle-alert",P1);const R1=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],s0=e("user",R1);const U1=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],n0=e("users",U1);const E1=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],y0=e("x",E1);const B1=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],h0=e("zap",B1);export{J2 as $,D1 as A,K1 as B,k2 as C,p2 as D,m2 as E,u2 as F,t0 as G,N2 as H,f2 as I,x2 as J,w2 as K,C2 as L,A2 as M,S2 as N,t2 as O,H2 as P,Y1 as Q,E2 as R,K2 as S,c0 as T,s0 as U,e2 as V,c2 as W,y0 as X,o2 as Y,h0 as Z,g2 as _,l2 as a,O1 as a0,$2 as a1,n0 as a2,Q1 as a3,L2 as a4,P2 as a5,_2 as a6,O2 as a7,Y2 as a8,M2 as a9,V2 as aa,F2 as ab,W1 as ac,h2 as ad,X1 as ae,r2 as af,Q2 as ag,b2 as ah,I1 as ai,q2 as aj,Z2 as ak,I2 as b,o0 as c,G1 as d,i2 as e,v2 as f,n2 as g,d2 as h,B2 as i,e0 as j,j2 as k,s2 as l,y2 as m,a0 as n,G2 as o,X2 as p,W2 as q,F1 as r,T2 as s,T1 as t,J1 as u,a2 as v,z2 as w,D2 as x,U2 as y,R2 as z}; +import{r as n}from"./router-BWgTyY51.js";const _=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),M=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,c,o)=>o?o.toUpperCase():c.toLowerCase()),d=t=>{const a=M(t);return a.charAt(0).toUpperCase()+a.slice(1)},r=(...t)=>t.filter((a,c,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===c).join(" ").trim(),v=t=>{for(const a in t)if(a.startsWith("aria-")||a==="role"||a==="title")return!0};var m={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const x=n.forwardRef(({color:t="currentColor",size:a=24,strokeWidth:c=2,absoluteStrokeWidth:o,className:y="",children:s,iconNode:k,...h},i)=>n.createElement("svg",{ref:i,...m,width:a,height:a,stroke:t,strokeWidth:o?Number(c)*24/Number(a):c,className:r("lucide",y),...!s&&!v(h)&&{"aria-hidden":"true"},...h},[...k.map(([l,p])=>n.createElement(l,p)),...Array.isArray(s)?s:[s]]));const e=(t,a)=>{const c=n.forwardRef(({className:o,...y},s)=>n.createElement(x,{ref:s,iconNode:a,className:r(`lucide-${_(d(t))}`,`lucide-${t}`,o),...y}));return c.displayName=d(t),c};const u=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],T1=e("activity",u);const g=[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]],F1=e("arrow-left",g);const $=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],O1=e("arrow-right",$);const N=[["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],I1=e("ban",N);const f=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],K1=e("book-open",f);const w=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],W1=e("bot",w);const z=[["path",{d:"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z",key:"lc1i9w"}],["path",{d:"m7 16.5-4.74-2.85",key:"1o9zyk"}],["path",{d:"m7 16.5 5-3",key:"va8pkn"}],["path",{d:"M7 16.5v5.17",key:"jnp8gn"}],["path",{d:"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z",key:"8zsnat"}],["path",{d:"m17 16.5-5-3",key:"8arw3v"}],["path",{d:"m17 16.5 4.74-2.85",key:"8rfmw"}],["path",{d:"M17 16.5v5.17",key:"k6z78m"}],["path",{d:"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z",key:"1xygjf"}],["path",{d:"M12 8 7.26 5.15",key:"1vbdud"}],["path",{d:"m12 8 4.74-2.85",key:"3rx089"}],["path",{d:"M12 13.5V8",key:"1io7kd"}]],Q1=e("boxes",z);const C=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],X1=e("calendar",C);const q=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],G1=e("chart-column",q);const b=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],J1=e("check",b);const j=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Y1=e("chevron-down",j);const A=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],e2=e("chevron-left",A);const V=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],a2=e("chevron-right",V);const H=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],t2=e("chevron-up",H);const L=[["path",{d:"m11 17-5-5 5-5",key:"13zhaf"}],["path",{d:"m18 17-5-5 5-5",key:"h8a8et"}]],c2=e("chevrons-left",L);const S=[["path",{d:"m6 17 5-5-5-5",key:"xnjwq"}],["path",{d:"m13 17 5-5-5-5",key:"17xmmf"}]],o2=e("chevrons-right",S);const P=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],s2=e("chevrons-up-down",P);const U=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],n2=e("circle-alert",U);const R=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],y2=e("circle-check",R);const E=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],h2=e("circle-question-mark",E);const B=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]],d2=e("circle-user",B);const Z=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],r2=e("circle-x",Z);const D=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],k2=e("circle",D);const T=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],i2=e("clock",T);const F=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],l2=e("copy",F);const O=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],p2=e("database",O);const I=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],_2=e("dollar-sign",I);const K=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],M2=e("download",K);const W=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],v2=e("external-link",W);const Q=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],m2=e("eye-off",Q);const X=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],x2=e("eye",X);const G=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]],u2=e("file-search",G);const J=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],g2=e("file-text",J);const Y=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],$2=e("funnel",Y);const e1=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],N2=e("hash",e1);const a1=[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"r6nss1"}]],f2=e("house",a1);const t1=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],w2=e("info",t1);const c1=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],z2=e("key",c1);const o1=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],C2=e("loader-circle",o1);const s1=[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]],q2=e("lock",s1);const n1=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],b2=e("log-out",n1);const y1=[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]],j2=e("menu",y1);const h1=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],A2=e("message-square",h1);const d1=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],V2=e("moon",d1);const r1=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],H2=e("package",r1);const k1=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],L2=e("palette",k1);const i1=[["rect",{x:"14",y:"3",width:"5",height:"18",rx:"1",key:"kaeet6"}],["rect",{x:"5",y:"3",width:"5",height:"18",rx:"1",key:"1wsw3u"}]],S2=e("pause",i1);const l1=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],P2=e("pencil",l1);const p1=[["path",{d:"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z",key:"10ikf1"}]],U2=e("play",p1);const _1=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],R2=e("plus",_1);const M1=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],E2=e("power",M1);const v1=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],B2=e("refresh-cw",v1);const m1=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],Z2=e("rotate-ccw",m1);const x1=[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]],D2=e("rotate-cw",x1);const u1=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],T2=e("save",u1);const g1=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],F2=e("search",g1);const $1=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],O2=e("server",$1);const N1=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],I2=e("settings-2",N1);const f1=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],K2=e("settings",f1);const w1=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]],W2=e("shield",w1);const z1=[["path",{d:"M21 4v16",key:"7j8fe9"}],["path",{d:"M6.029 4.285A2 2 0 0 0 3 6v12a2 2 0 0 0 3.029 1.715l9.997-5.998a2 2 0 0 0 .003-3.432z",key:"zs4d6"}]],Q2=e("skip-forward",z1);const C1=[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]],X2=e("sliders-vertical",C1);const q1=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],G2=e("smile",q1);const b1=[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]],J2=e("sparkles",b1);const j1=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Y2=e("square-pen",j1);const A1=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],e0=e("star",A1);const V1=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],a0=e("sun",V1);const H1=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],t0=e("terminal",H1);const L1=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],c0=e("trash-2",L1);const S1=[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]],o0=e("trending-up",S1);const P1=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],s0=e("triangle-alert",P1);const U1=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],n0=e("upload",U1);const R1=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],y0=e("user",R1);const E1=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],h0=e("users",E1);const B1=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],d0=e("x",B1);const Z1=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],r0=e("zap",Z1);export{M2 as $,T1 as A,W1 as B,i2 as C,_2 as D,m2 as E,g2 as F,c0 as G,f2 as H,w2 as I,u2 as J,z2 as K,q2 as L,A2 as M,P2 as N,c2 as O,L2 as P,e2 as Q,B2 as R,W2 as S,o0 as T,y0 as U,a2 as V,o2 as W,d0 as X,s2 as Y,r0 as Z,n0 as _,p2 as a,$2 as a0,Y2 as a1,I1 as a2,N2 as a3,h0 as a4,X1 as a5,S2 as a6,U2 as a7,I2 as a8,e0 as a9,v2 as aa,H2 as ab,O2 as ac,Q1 as ad,d2 as ae,G1 as af,k2 as ag,X2 as ah,j2 as ai,K1 as aj,b2 as ak,D2 as al,K2 as b,s0 as c,J1 as d,l2 as e,x2 as f,y2 as g,r2 as h,Z2 as i,a0 as j,V2 as k,n2 as l,h2 as m,t0 as n,J2 as o,G2 as p,Q2 as q,O1 as r,F2 as s,F1 as t,Y1 as u,t2 as v,C2 as w,T2 as x,E2 as y,R2 as z}; diff --git a/webui/dist/assets/index-C_Xpfn5c.css b/webui/dist/assets/index-C_Xpfn5c.css new file mode 100644 index 00000000..c53a20a4 --- /dev/null +++ b/webui/dist/assets/index-C_Xpfn5c.css @@ -0,0 +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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-\[calc\(90vh-8rem\)\]{max-height:calc(90vh - 8rem)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-4{padding-left:1rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-orange-700:hover{--tw-bg-opacity: 1;background-color:rgb(194 65 12 / var(--tw-bg-opacity, 1))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-blue-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 58 138 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-1{margin-left:.25rem}.sm\:mr-1{margin-right:.25rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2) format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff) format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2) format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff) format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff) format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2) format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff) format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2) format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff) format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2) format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff) format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2) format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff) format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2) format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff) format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2) format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff) format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2) format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff) format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff) format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff) format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2) format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff) format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2) format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff) format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2) format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff) format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2) format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff) format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff) format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2) format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff) format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2) format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff) format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf) format("truetype")}.katex{font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.25"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo} diff --git a/webui/dist/assets/index-D2uz_15W.css b/webui/dist/assets/index-D2uz_15W.css deleted file mode 100644 index 33288344..00000000 --- a/webui/dist/assets/index-D2uz_15W.css +++ /dev/null @@ -1 +0,0 @@ -*,: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:#e5e7eb}: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:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";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:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}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{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 221.2 83.2% 53.3%;--primary-foreground: 210 40% 98%;--primary-gradient: none;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 221.2 83.2% 53.3%;--radius: .5rem;--chart-1: 221.2 83.2% 53.3%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 217.2 91.2% 59.8%;--primary-foreground: 222.2 47.4% 11.2%;--primary-gradient: none;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 224.3 76.3% 48%;--chart-1: 217.2 91.2% 59.8%;--chart-2: 160 60% 50%;--chart-3: 30 80% 60%;--chart-4: 280 65% 65%;--chart-5: 340 75% 60%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.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}.pointer-events-auto{pointer-events:auto}.invisible{visibility:hidden}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-1\/4{bottom:25%}.bottom-4{bottom:1rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-1\/4{right:25%}.right-2{right:.5rem}.right-4{right:1rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2{top:.5rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-4{top:1rem}.top-\[50\%\]{top:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.order-1{order:1}.order-2{order:2}.col-span-2{grid-column:span 2 / span 2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-mt-2{margin-top:-.5rem}.mb-1{margin-bottom:.25rem}.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-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.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}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-auto{aspect-ratio:auto}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.size-\[--cell-size\]{width:var(--cell-size);height:var(--cell-size)}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-32{height:8rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-60{height:15rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[--cell-size\]{height:var(--cell-size)}.h-\[1\.25rem\]{height:1.25rem}.h-\[1px\]{height:1px}.h-\[250px\]{height:250px}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[calc\(100vh-200px\)\]{height:calc(100vh - 200px)}.h-\[calc\(100vh-240px\)\]{height:calc(100vh - 240px)}.h-\[calc\(100vh-260px\)\]{height:calc(100vh - 260px)}.h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.h-\[calc\(100vh-4rem\)\]{height:calc(100vh - 4rem)}.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-\[--radix-context-menu-content-available-height\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[--radix-select-content-available-height\]{max-height:var(--radix-select-content-available-height)}.max-h-\[300px\]{max-height:300px}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(90vh-120px\)\]{max-height:calc(90vh - 120px)}.max-h-\[calc\(90vh-8rem\)\]{max-height:calc(90vh - 8rem)}.max-h-screen{max-height:100vh}.min-h-10{min-height:2.5rem}.min-h-\[100px\]{min-height:100px}.min-h-\[300px\]{min-height:300px}.min-h-\[60px\]{min-height:60px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-1\/4{width:25%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[--cell-size\]{width:var(--cell-size)}.w-\[120px\]{width:120px}.w-\[140px\]{width:140px}.w-\[1px\]{width:1px}.w-\[70px\]{width:70px}.w-\[95vw\]{width:95vw}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-\[--cell-size\]{min-width:var(--cell-size)}.min-w-\[80px\]{min-width:80px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-4xl{max-width:56rem}.max-w-\[200px\]{max-width:200px}.max-w-\[60px\]{max-width:60px}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[--radix-context-menu-content-transform-origin\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[--radix-popover-content-transform-origin\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[--radix-select-content-transform-origin\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-full{--tw-translate-x: -100%;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-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-\[-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-180{--tw-rotate: 180deg;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))}.transform{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 pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize{resize:both}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.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-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-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))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.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-line{white-space:pre-line}.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:1rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-full{border-top-right-radius:9999px;border-bottom-right-radius:9999px}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-\[--color-border\]{border-color:var(--color-border)}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-gray-800{--tw-border-opacity: 1;border-color:rgb(31 41 55 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-600{--tw-border-opacity: 1;border-color:rgb(234 88 12 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-900\/20{background-color:#1e3a8a33}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-400{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.bg-gray-800\/20{background-color:#1f293733}.bg-gray-800\/30{background-color:#1f29374d}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-orange-600{--tw-bg-opacity: 1;background-color:rgb(234 88 12 / var(--tw-bg-opacity, 1))}.bg-pink-500{--tw-bg-opacity: 1;background-color:rgb(236 72 153 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-red-900\/20{background-color:#7f1d1d33}.bg-red-900\/30{background-color:#7f1d1d4d}.bg-secondary{background-color:hsl(var(--secondary))}.bg-secondary\/5{background-color:hsl(var(--secondary) / .05)}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-900\/20{background-color:#713f1233}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-primary\/5{--tw-gradient-from: hsl(var(--primary) / .05) var(--tw-gradient-from-position);--tw-gradient-to: hsl(var(--primary) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-200{--tw-gradient-from: #e2e8f0 var(--tw-gradient-from-position);--tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-300{--tw-gradient-from: #cbd5e1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(203 213 225 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-background{--tw-gradient-to: hsl(var(--background) / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), hsl(var(--background)) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-500{--tw-gradient-to: #06b6d4 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-secondary\/5{--tw-gradient-to: hsl(var(--secondary) / .05) var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-slate-800{--tw-gradient-to: #1e293b var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-yellow-400{fill:#facc15}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[--cell-size\]{padding-left:var(--cell-size);padding-right:var(--cell-size)}.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-12{padding-top:3rem;padding-bottom:3rem}.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-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-0{padding-bottom:0}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-16{padding-right:4rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pr-6{padding-right:1.5rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[150px\]{font-size:150px}.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-black{font-weight:900}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-cyan-400{--tw-text-opacity: 1;color:rgb(34 211 238 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-primary\/10{color:hsl(var(--primary) / .1)}.text-primary\/30{color:hsl(var(--primary) / .3)}.text-primary\/60{color:hsl(var(--primary) / .6)}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.text-yellow-900{--tw-text-opacity: 1;color:rgb(113 63 18 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.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-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)}.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))}.blur-3xl{--tw-blur: blur(64px);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)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.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-shadow{transition-property:box-shadow;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{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.text-primary-gradient{color:hsl(var(--primary))}.has-gradient .text-primary-gradient{background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.\[--cell-size\:2rem\]{--cell-size: 2rem}.no-animations *,.no-animations *:before,.no-animations *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.no-animations *:hover{transition-duration:.01ms!important}::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:999}.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}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.hover\:border-primary\/50:hover{border-color:hsl(var(--primary) / .5)}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-orange-700:hover{--tw-bg-opacity: 1;background-color:rgb(194 65 12 / var(--tw-bg-opacity, 1))}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-primary\/80:hover{color:hsl(var(--primary) / .8)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--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)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-gray-100:focus{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-0: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(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-visible\:ring-1: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(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-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-red-500:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.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-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.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\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;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\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--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))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);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-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);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-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow[data-state=active]{--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)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=active\]\:duration-300[data-state=active]{transition-duration:.3s}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.dark\:border-blue-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 64 175 / var(--tw-border-opacity, 1))}.dark\:border-blue-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 58 138 / var(--tw-border-opacity, 1))}.dark\:border-gray-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity, 1))}.dark\:border-yellow-900:is(.dark *){--tw-border-opacity: 1;border-color:rgb(113 63 18 / var(--tw-border-opacity, 1))}.dark\:bg-blue-500\/20:is(.dark *){background-color:#3b82f633}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-blue-950\/20:is(.dark *){background-color:#17255433}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1725544d}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/30:is(.dark *){background-color:#1f29374d}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(3 7 18 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-950\/20:is(.dark *){background-color:#43140733}.dark\:bg-red-500\/20:is(.dark *){background-color:#ef444433}.dark\:bg-red-600\/30:is(.dark *){background-color:#dc26264d}.dark\:bg-red-950\/50:is(.dark *){background-color:#450a0a80}.dark\:bg-yellow-500\/20:is(.dark *){background-color:#eab30833}.dark\:bg-yellow-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(113 63 18 / var(--tw-bg-opacity, 1))}.dark\:bg-yellow-950\/30:is(.dark *){background-color:#4220064d}.dark\:text-blue-100:is(.dark *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is(.dark *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-cyan-500:is(.dark *){--tw-text-opacity: 1;color:rgb(6 182 212 / var(--tw-text-opacity, 1))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-600:is(.dark *){--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-100:is(.dark *){--tw-text-opacity: 1;color:rgb(255 237 213 / var(--tw-text-opacity, 1))}.dark\:text-orange-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 215 170 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-red-500:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-500:is(.dark *){--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:focus\:bg-gray-800:focus:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:right-2{right:.5rem}.sm\:right-3{right:.75rem}.sm\:top-2{top:.5rem}.sm\:top-3{top:.75rem}.sm\:top-auto{top:auto}.sm\:order-1{order:1}.sm\:order-2{order:2}.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:mb-3{margin-bottom:.75rem}.sm\:mb-4{margin-bottom:1rem}.sm\:mb-6{margin-bottom:1.5rem}.sm\:ml-1{margin-left:.25rem}.sm\:mr-1{margin-right:.25rem}.sm\:mr-2{margin-right:.5rem}.sm\:mt-0{margin-top:0}.sm\:mt-2{margin-top:.5rem}.sm\:mt-3{margin-top:.75rem}.sm\:mt-6{margin-top:1.5rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-10{height:2.5rem}.sm\:h-12{height:3rem}.sm\:h-2{height:.5rem}.sm\:h-24{height:6rem}.sm\:h-3{height:.75rem}.sm\:h-4{height:1rem}.sm\:h-\[300px\]{height:300px}.sm\:h-\[400px\]{height:400px}.sm\:h-\[500px\]{height:500px}.sm\:h-\[calc\(100vh-280px\)\]{height:calc(100vh - 280px)}.sm\:h-\[calc\(100vh-320px\)\]{height:calc(100vh - 320px)}.sm\:w-10{width:2.5rem}.sm\:w-2{width:.5rem}.sm\:w-24{width:6rem}.sm\:w-3{width:.75rem}.sm\:w-4{width:1rem}.sm\:w-\[140px\]{width:140px}.sm\:w-\[160px\]{width:160px}.sm\:w-\[200px\]{width:200px}.sm\:w-\[500px\]{width:500px}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-2xl{max-width:42rem}.sm\:max-w-\[900px\]{max-width:900px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-1{flex:1 1 0%}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:flex-wrap{flex-wrap:wrap}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-0{gap:0px}.sm\:gap-1{gap:.25rem}.sm\:gap-2{gap:.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\: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))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-3{padding-left:.75rem;padding-right:.75rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-\[200px\]{font-size:200px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:768px){.md\:top-4{top:1rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-8{margin-top:2rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-4{height:1rem}.md\:h-8{height:2rem}.md\:h-96{height:24rem}.md\:h-\[500px\]{height:500px}.md\:min-h-\[400px\]{min-height:400px}.md\:w-16{width:4rem}.md\:w-4{width:1rem}.md\:w-8{width:2rem}.md\:w-96{width:24rem}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-2{gap:.5rem}.md\:whitespace-normal{white-space:normal}.md\:p-6{padding:1.5rem}.md\:p-8{padding:2rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xs{font-size:.75rem;line-height:1rem}}@media(min-width:1024px){.lg\:invisible{visibility:hidden}.lg\:relative{position:relative}.lg\:z-0{z-index:0}.lg\:mb-1{margin-bottom:.25rem}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:h-\[calc\(100vh-400px\)\]{height:calc(100vh - 400px)}.lg\:w-16{width:4rem}.lg\:w-64{width:16rem}.lg\:w-8{width:2rem}.lg\:w-\[150px\]{width:150px}.lg\:w-\[180px\]{width:180px}.lg\:w-\[200px\]{width:200px}.lg\:w-\[240px\]{width:240px}.lg\:w-\[80px\]{width:80px}.lg\:w-auto{width:auto}.lg\:max-w-0{max-width:0px}.lg\:flex-1{flex:1 1 0%}.lg\:flex-none{flex:none}.lg\: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))}.lg\:grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:justify-center{justify-content:center}.lg\:gap-0{gap:0px}.lg\: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))}.lg\:overflow-hidden{overflow:hidden}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:px-0{padding-left:0;padding-right:0}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-sm{font-size:.875rem;line-height:1.25rem}.lg\:opacity-0{opacity:0}}.\[\&\+div\]\:text-xs+div{font-size:.75rem;line-height:1rem}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;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))}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;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))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:invisible svg{visibility:hidden}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent} diff --git a/webui/dist/assets/index-DgvN-P_n.js b/webui/dist/assets/index-DgvN-P_n.js deleted file mode 100644 index c055516c..00000000 --- a/webui/dist/assets/index-DgvN-P_n.js +++ /dev/null @@ -1,48 +0,0 @@ -import{r as x,j as e,u as qn,R as Ne,d as K_,L as Q_,e as Z_,f as Ts,g as J_,h as e2,O as ry,b as t2,k as s2}from"./router-BWgTyY51.js";import{a as n2,b as a2}from"./react-vendor-Dtc2IqVY.js";import{c as iy,R as l2,T as r2,L as i2,a as o2,C as Xc,X as Kc,Y as Ii,b as c2,B as uf,d as Qc,P as d2,e as u2,f as m2}from"./charts-DU5SeejN.js";import{c as Dn,a as _d,u as jn,P as dt,b as be,d as Tt,e as xo,f as Qa,g as ws,h as Is,i as oy,j as rh,k as ih,S as f2,l as cy,m as dy,R as uy,O as Cd,n as oh,C as kd,o as ch,T as dh,D as uh,p as mh,q as my,r as fy,W as h2,s as hy,I as x2,t as xy,v as py,w as p2,x as gy,V as g2,L as vy,y as jy,z as v2,A as j2,B as yy,E as y2,F as b2,G as Ga,H as Td,J as Wr,K as by,M as Ny,N as wy,Q as Sy,U as fh,X as hh,Y as Ed,Z as Md,_ as xh,$ as _y,a0 as N2,a1 as Cy,a2 as w2,a3 as S2,a4 as ky,a5 as _2}from"./ui-vendor-nTGLnMlb.js";import{R as xa,A as C2,D as k2,a as T2,Z as ao,C as _l,M as po,T as E2,X as go,P as Ty,S as M2,b as Tn,I as Fr,c as Lr,d as Cl,e as Df,E as Of,f as Mn,g as Ys,h as Af,i as D2,j as Rf,k as zf,L as Zv,K as O2,l as Tl,m as A2,n as R2,F as ph,o as z2,B as P2,U as Ey,p as gh,q as L2,r as B2,s as Gs,H as fd,t as My,u as lo,v as Pf,w as ro,x as vh,y as jh,z as ys,G as ft,J as hd,N as Yr,O as vo,Q as Ol,V as Al,W as jo,Y as U2,_ as Lf,$ as qr,a0 as Jv,a1 as xd,a2 as H2,a3 as ej,a4 as F2,a5 as Y2,a6 as Bf,a7 as q2,a8 as tj,a9 as so,aa as pd,ab as Dy,ac as Oy,ad as Ay,ae as V2,af as G2,ag as $2,ah as I2,ai as W2,aj as sj,ak as X2}from"./icons-DnP4c9nr.js";(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))i(c);new MutationObserver(c=>{for(const d of c)if(d.type==="childList")for(const m of d.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&i(m)}).observe(document,{childList:!0,subtree:!0});function l(c){const d={};return c.integrity&&(d.integrity=c.integrity),c.referrerPolicy&&(d.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?d.credentials="include":c.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function i(c){if(c.ep)return;c.ep=!0;const d=l(c);fetch(c.href,d)}})();var mf={exports:{}},Wi={},ff={exports:{}},hf={};var nj;function K2(){return nj||(nj=1,(function(s){function a(R,O){var L=R.length;R.push(O);e:for(;0>>1,le=R[ee];if(0>>1;eec(W,L))fec(I,W)?(R[ee]=I,R[fe]=L,ee=fe):(R[ee]=W,R[F]=L,ee=F);else if(fec(I,L))R[ee]=I,R[fe]=L,ee=fe;else break e}}return O}function c(R,O){var L=R.sortIndex-O.sortIndex;return L!==0?L:R.id-O.id}if(s.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var d=performance;s.unstable_now=function(){return d.now()}}else{var m=Date,h=m.now();s.unstable_now=function(){return m.now()-h}}var p=[],v=[],g=1,j=null,b=3,w=!1,S=!1,C=!1,N=!1,T=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,M=typeof setImmediate<"u"?setImmediate:null;function k(R){for(var O=l(v);O!==null;){if(O.callback===null)i(v);else if(O.startTime<=R)i(v),O.sortIndex=O.expirationTime,a(p,O);else break;O=l(v)}}function D(R){if(C=!1,k(R),!S)if(l(p)!==null)S=!0,A||(A=!0,oe());else{var O=l(v);O!==null&&me(D,O.startTime-R)}}var A=!1,E=-1,B=5,Y=-1;function G(){return N?!0:!(s.unstable_now()-YR&&G());){var ee=j.callback;if(typeof ee=="function"){j.callback=null,b=j.priorityLevel;var le=ee(j.expirationTime<=R);if(R=s.unstable_now(),typeof le=="function"){j.callback=le,k(R),O=!0;break t}j===l(p)&&i(p),k(R)}else i(p);j=l(p)}if(j!==null)O=!0;else{var xe=l(v);xe!==null&&me(D,xe.startTime-R),O=!1}}break e}finally{j=null,b=L,w=!1}O=void 0}}finally{O?oe():A=!1}}}var oe;if(typeof M=="function")oe=function(){M($)};else if(typeof MessageChannel<"u"){var je=new MessageChannel,ae=je.port2;je.port1.onmessage=$,oe=function(){ae.postMessage(null)}}else oe=function(){T($,0)};function me(R,O){E=T(function(){R(s.unstable_now())},O)}s.unstable_IdlePriority=5,s.unstable_ImmediatePriority=1,s.unstable_LowPriority=4,s.unstable_NormalPriority=3,s.unstable_Profiling=null,s.unstable_UserBlockingPriority=2,s.unstable_cancelCallback=function(R){R.callback=null},s.unstable_forceFrameRate=function(R){0>R||125ee?(R.sortIndex=L,a(v,R),l(p)===null&&R===l(v)&&(C?(P(E),E=-1):C=!0,me(D,L-ee))):(R.sortIndex=le,a(p,R),S||w||(S=!0,A||(A=!0,oe()))),R},s.unstable_shouldYield=G,s.unstable_wrapCallback=function(R){var O=b;return function(){var L=b;b=O;try{return R.apply(this,arguments)}finally{b=L}}}})(hf)),hf}var aj;function Q2(){return aj||(aj=1,ff.exports=K2()),ff.exports}var lj;function Z2(){if(lj)return Wi;lj=1;var s=Q2(),a=n2(),l=a2();function i(t){var n="https://react.dev/errors/"+t;if(1le||(t.current=ee[le],ee[le]=null,le--)}function W(t,n){le++,ee[le]=t.current,t.current=n}var fe=xe(null),I=xe(null),ve=xe(null),de=xe(null);function Ce(t,n){switch(W(ve,n),W(I,t),W(fe,null),n.nodeType){case 9:case 11:t=(t=n.documentElement)&&(t=t.namespaceURI)?bv(t):0;break;default:if(t=n.tagName,n=n.namespaceURI)n=bv(n),t=Nv(n,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}F(fe),W(fe,t)}function Q(){F(fe),F(I),F(ve)}function Oe(t){t.memoizedState!==null&&W(de,t);var n=fe.current,r=Nv(n,t.type);n!==r&&(W(I,t),W(fe,r))}function $e(t){I.current===t&&(F(fe),F(I)),de.current===t&&(F(de),qi._currentValue=L)}var re,Pe;function ze(t){if(re===void 0)try{throw Error()}catch(r){var n=r.stack.trim().match(/\n( *(at )?)/);re=n&&n[1]||"",Pe=-1)":-1u||z[o]!==K[u]){var ie=` -`+z[o].replace(" at new "," at ");return t.displayName&&ie.includes("")&&(ie=ie.replace("",t.displayName)),ie}while(1<=o&&0<=u);break}}}finally{Zt=!1,Error.prepareStackTrace=r}return(r=t?t.displayName||t.name:"")?ze(r):""}function An(t,n){switch(t.tag){case 26:case 27:case 5:return ze(t.type);case 16:return ze("Lazy");case 13:return t.child!==n&&n!==null?ze("Suspense Fallback"):ze("Suspense");case 19:return ze("SuspenseList");case 0:case 15:return Rs(t.type,!1);case 11:return Rs(t.type.render,!1);case 1:return Rs(t.type,!0);case 31:return ze("Activity");default:return""}}function Le(t){try{var n="",r=null;do n+=An(t,r),r=t,t=t.return;while(t);return n}catch(o){return` -Error generating stack: `+o.message+` -`+o.stack}}var Nn=Object.prototype.hasOwnProperty,ln=s.unstable_scheduleCallback,rn=s.unstable_cancelCallback,Xt=s.unstable_shouldYield,Ds=s.unstable_requestPaint,ke=s.unstable_now,is=s.unstable_getCurrentPriorityLevel,he=s.unstable_ImmediatePriority,Ee=s.unstable_UserBlockingPriority,Ve=s.unstable_NormalPriority,Os=s.unstable_LowPriority,$n=s.unstable_IdlePriority,Hl=s.log,Fl=s.unstable_setDisableYieldValue,se=null,ge=null;function Qe(t){if(typeof Hl=="function"&&Fl(t),ge&&typeof ge.setStrictMode=="function")try{ge.setStrictMode(se,t)}catch{}}var pt=Math.clz32?Math.clz32:Mt,tl=Math.log,We=Math.LN2;function Mt(t){return t>>>=0,t===0?32:31-(tl(t)/We|0)|0}var Be=256,ht=262144,os=4194304;function Xe(t){var n=t&42;if(n!==0)return n;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Yl(t,n,r){var o=t.pendingLanes;if(o===0)return 0;var u=0,f=t.suspendedLanes,y=t.pingedLanes;t=t.warmLanes;var _=o&134217727;return _!==0?(o=_&~f,o!==0?u=Xe(o):(y&=_,y!==0?u=Xe(y):r||(r=_&~t,r!==0&&(u=Xe(r))))):(_=o&~f,_!==0?u=Xe(_):y!==0?u=Xe(y):r||(r=o&~t,r!==0&&(u=Xe(r)))),u===0?0:n!==0&&n!==u&&(n&f)===0&&(f=u&-u,r=n&-n,f>=r||f===32&&(r&4194048)!==0)?n:u}function sl(t,n){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&n)===0}function Zd(t,n){switch(t){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function ql(){var t=os;return os<<=1,(os&62914560)===0&&(os=4194304),t}function nl(t){for(var n=[],r=0;31>r;r++)n.push(t);return n}function ni(t,n){t.pendingLanes|=n,n!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function B1(t,n,r,o,u,f){var y=t.pendingLanes;t.pendingLanes=r,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=r,t.entangledLanes&=r,t.errorRecoveryDisabledLanes&=r,t.shellSuspendCounter=0;var _=t.entanglements,z=t.expirationTimes,K=t.hiddenUpdates;for(r=y&~r;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var V1=/[\n"\\]/g;function cn(t){return t.replace(V1,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function au(t,n,r,o,u,f,y,_){t.name="",y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"?t.type=y:t.removeAttribute("type"),n!=null?y==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+on(n)):t.value!==""+on(n)&&(t.value=""+on(n)):y!=="submit"&&y!=="reset"||t.removeAttribute("value"),n!=null?lu(t,y,on(n)):r!=null?lu(t,y,on(r)):o!=null&&t.removeAttribute("value"),u==null&&f!=null&&(t.defaultChecked=!!f),u!=null&&(t.checked=u&&typeof u!="function"&&typeof u!="symbol"),_!=null&&typeof _!="function"&&typeof _!="symbol"&&typeof _!="boolean"?t.name=""+on(_):t.removeAttribute("name")}function xx(t,n,r,o,u,f,y,_){if(f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"&&(t.type=f),n!=null||r!=null){if(!(f!=="submit"&&f!=="reset"||n!=null)){nu(t);return}r=r!=null?""+on(r):"",n=n!=null?""+on(n):r,_||n===t.value||(t.value=n),t.defaultValue=n}o=o??u,o=typeof o!="function"&&typeof o!="symbol"&&!!o,t.checked=_?t.checked:!!o,t.defaultChecked=!!o,y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"&&(t.name=y),nu(t)}function lu(t,n,r){n==="number"&&Uo(t.ownerDocument)===t||t.defaultValue===""+r||(t.defaultValue=""+r)}function Xl(t,n,r,o){if(t=t.options,n){n={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),du=!1;if(Xn)try{var ii={};Object.defineProperty(ii,"passive",{get:function(){du=!0}}),window.addEventListener("test",ii,ii),window.removeEventListener("test",ii,ii)}catch{du=!1}var ya=null,uu=null,Fo=null;function Nx(){if(Fo)return Fo;var t,n=uu,r=n.length,o,u="value"in ya?ya.value:ya.textContent,f=u.length;for(t=0;t=di),Tx=" ",Ex=!1;function Mx(t,n){switch(t){case"keyup":return vS.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Dx(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Jl=!1;function yS(t,n){switch(t){case"compositionend":return Dx(n);case"keypress":return n.which!==32?null:(Ex=!0,Tx);case"textInput":return t=n.data,t===Tx&&Ex?null:t;default:return null}}function bS(t,n){if(Jl)return t==="compositionend"||!pu&&Mx(t,n)?(t=Nx(),Fo=uu=ya=null,Jl=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:r,offset:n-t};t=o}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Ux(r)}}function Fx(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?Fx(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function Yx(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var n=Uo(t.document);n instanceof t.HTMLIFrameElement;){try{var r=typeof n.contentWindow.location.href=="string"}catch{r=!1}if(r)t=n.contentWindow;else break;n=Uo(t.document)}return n}function ju(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}var ES=Xn&&"documentMode"in document&&11>=document.documentMode,er=null,yu=null,hi=null,bu=!1;function qx(t,n,r){var o=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;bu||er==null||er!==Uo(o)||(o=er,"selectionStart"in o&&ju(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),hi&&fi(hi,o)||(hi=o,o=Rc(yu,"onSelect"),0>=y,u-=y,Rn=1<<32-pt(n)+u|r<Ge?(st=Te,Te=null):st=Te.sibling;var mt=J(V,Te,X[Ge],ce);if(mt===null){Te===null&&(Te=st);break}t&&Te&&mt.alternate===null&&n(V,Te),H=f(mt,H,Ge),ut===null?De=mt:ut.sibling=mt,ut=mt,Te=st}if(Ge===X.length)return r(V,Te),nt&&Qn(V,Ge),De;if(Te===null){for(;GeGe?(st=Te,Te=null):st=Te.sibling;var Ya=J(V,Te,mt.value,ce);if(Ya===null){Te===null&&(Te=st);break}t&&Te&&Ya.alternate===null&&n(V,Te),H=f(Ya,H,Ge),ut===null?De=Ya:ut.sibling=Ya,ut=Ya,Te=st}if(mt.done)return r(V,Te),nt&&Qn(V,Ge),De;if(Te===null){for(;!mt.done;Ge++,mt=X.next())mt=ue(V,mt.value,ce),mt!==null&&(H=f(mt,H,Ge),ut===null?De=mt:ut.sibling=mt,ut=mt);return nt&&Qn(V,Ge),De}for(Te=o(Te);!mt.done;Ge++,mt=X.next())mt=ne(Te,V,Ge,mt.value,ce),mt!==null&&(t&&mt.alternate!==null&&Te.delete(mt.key===null?Ge:mt.key),H=f(mt,H,Ge),ut===null?De=mt:ut.sibling=mt,ut=mt);return t&&Te.forEach(function(X_){return n(V,X_)}),nt&&Qn(V,Ge),De}function St(V,H,X,ce){if(typeof X=="object"&&X!==null&&X.type===C&&X.key===null&&(X=X.props.children),typeof X=="object"&&X!==null){switch(X.$$typeof){case w:e:{for(var De=X.key;H!==null;){if(H.key===De){if(De=X.type,De===C){if(H.tag===7){r(V,H.sibling),ce=u(H,X.props.children),ce.return=V,V=ce;break e}}else if(H.elementType===De||typeof De=="object"&&De!==null&&De.$$typeof===B&&hl(De)===H.type){r(V,H.sibling),ce=u(H,X.props),yi(ce,X),ce.return=V,V=ce;break e}r(V,H);break}else n(V,H);H=H.sibling}X.type===C?(ce=cl(X.props.children,V.mode,ce,X.key),ce.return=V,V=ce):(ce=Qo(X.type,X.key,X.props,null,V.mode,ce),yi(ce,X),ce.return=V,V=ce)}return y(V);case S:e:{for(De=X.key;H!==null;){if(H.key===De)if(H.tag===4&&H.stateNode.containerInfo===X.containerInfo&&H.stateNode.implementation===X.implementation){r(V,H.sibling),ce=u(H,X.children||[]),ce.return=V,V=ce;break e}else{r(V,H);break}else n(V,H);H=H.sibling}ce=Tu(X,V.mode,ce),ce.return=V,V=ce}return y(V);case B:return X=hl(X),St(V,H,X,ce)}if(me(X))return we(V,H,X,ce);if(oe(X)){if(De=oe(X),typeof De!="function")throw Error(i(150));return X=De.call(X),Re(V,H,X,ce)}if(typeof X.then=="function")return St(V,H,ac(X),ce);if(X.$$typeof===M)return St(V,H,ec(V,X),ce);lc(V,X)}return typeof X=="string"&&X!==""||typeof X=="number"||typeof X=="bigint"?(X=""+X,H!==null&&H.tag===6?(r(V,H.sibling),ce=u(H,X),ce.return=V,V=ce):(r(V,H),ce=ku(X,V.mode,ce),ce.return=V,V=ce),y(V)):r(V,H)}return function(V,H,X,ce){try{ji=0;var De=St(V,H,X,ce);return ur=null,De}catch(Te){if(Te===dr||Te===sc)throw Te;var ut=Ks(29,Te,null,V.mode);return ut.lanes=ce,ut.return=V,ut}finally{}}}var pl=mp(!0),fp=mp(!1),_a=!1;function Hu(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Fu(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Ca(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function ka(t,n,r){var o=t.updateQueue;if(o===null)return null;if(o=o.shared,(xt&2)!==0){var u=o.pending;return u===null?n.next=n:(n.next=u.next,u.next=n),o.pending=n,n=Ko(t),Kx(t,null,r),n}return Xo(t,o,n,r),Ko(t)}function bi(t,n,r){if(n=n.updateQueue,n!==null&&(n=n.shared,(r&4194048)!==0)){var o=n.lanes;o&=t.pendingLanes,r|=o,n.lanes=r,ax(t,r)}}function Yu(t,n){var r=t.updateQueue,o=t.alternate;if(o!==null&&(o=o.updateQueue,r===o)){var u=null,f=null;if(r=r.firstBaseUpdate,r!==null){do{var y={lane:r.lane,tag:r.tag,payload:r.payload,callback:null,next:null};f===null?u=f=y:f=f.next=y,r=r.next}while(r!==null);f===null?u=f=n:f=f.next=n}else u=f=n;r={baseState:o.baseState,firstBaseUpdate:u,lastBaseUpdate:f,shared:o.shared,callbacks:o.callbacks},t.updateQueue=r;return}t=r.lastBaseUpdate,t===null?r.firstBaseUpdate=n:t.next=n,r.lastBaseUpdate=n}var qu=!1;function Ni(){if(qu){var t=cr;if(t!==null)throw t}}function wi(t,n,r,o){qu=!1;var u=t.updateQueue;_a=!1;var f=u.firstBaseUpdate,y=u.lastBaseUpdate,_=u.shared.pending;if(_!==null){u.shared.pending=null;var z=_,K=z.next;z.next=null,y===null?f=K:y.next=K,y=z;var ie=t.alternate;ie!==null&&(ie=ie.updateQueue,_=ie.lastBaseUpdate,_!==y&&(_===null?ie.firstBaseUpdate=K:_.next=K,ie.lastBaseUpdate=z))}if(f!==null){var ue=u.baseState;y=0,ie=K=z=null,_=f;do{var J=_.lane&-536870913,ne=J!==_.lane;if(ne?(tt&J)===J:(o&J)===J){J!==0&&J===or&&(qu=!0),ie!==null&&(ie=ie.next={lane:0,tag:_.tag,payload:_.payload,callback:null,next:null});e:{var we=t,Re=_;J=n;var St=r;switch(Re.tag){case 1:if(we=Re.payload,typeof we=="function"){ue=we.call(St,ue,J);break e}ue=we;break e;case 3:we.flags=we.flags&-65537|128;case 0:if(we=Re.payload,J=typeof we=="function"?we.call(St,ue,J):we,J==null)break e;ue=j({},ue,J);break e;case 2:_a=!0}}J=_.callback,J!==null&&(t.flags|=64,ne&&(t.flags|=8192),ne=u.callbacks,ne===null?u.callbacks=[J]:ne.push(J))}else ne={lane:J,tag:_.tag,payload:_.payload,callback:_.callback,next:null},ie===null?(K=ie=ne,z=ue):ie=ie.next=ne,y|=J;if(_=_.next,_===null){if(_=u.shared.pending,_===null)break;ne=_,_=ne.next,ne.next=null,u.lastBaseUpdate=ne,u.shared.pending=null}}while(!0);ie===null&&(z=ue),u.baseState=z,u.firstBaseUpdate=K,u.lastBaseUpdate=ie,f===null&&(u.shared.lanes=0),Oa|=y,t.lanes=y,t.memoizedState=ue}}function hp(t,n){if(typeof t!="function")throw Error(i(191,t));t.call(n)}function xp(t,n){var r=t.callbacks;if(r!==null)for(t.callbacks=null,t=0;tf?f:8;var y=R.T,_={};R.T=_,om(t,!1,n,r);try{var z=u(),K=R.S;if(K!==null&&K(_,z),z!==null&&typeof z=="object"&&typeof z.then=="function"){var ie=BS(z,o);Ci(t,n,ie,tn(t))}else Ci(t,n,o,tn(t))}catch(ue){Ci(t,n,{then:function(){},status:"rejected",reason:ue},tn())}finally{O.p=f,y!==null&&_.types!==null&&(y.types=_.types),R.T=y}}function VS(){}function rm(t,n,r,o){if(t.tag!==5)throw Error(i(476));var u=Ip(t).queue;$p(t,u,n,L,r===null?VS:function(){return Wp(t),r(o)})}function Ip(t){var n=t.memoizedState;if(n!==null)return n;n={memoizedState:L,baseState:L,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ta,lastRenderedState:L},next:null};var r={};return n.next={memoizedState:r,baseState:r,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ta,lastRenderedState:r},next:null},t.memoizedState=n,t=t.alternate,t!==null&&(t.memoizedState=n),n}function Wp(t){var n=Ip(t);n.next===null&&(n=t.alternate.memoizedState),Ci(t,n.next.queue,{},tn())}function im(){return gs(qi)}function Xp(){return Qt().memoizedState}function Kp(){return Qt().memoizedState}function GS(t){for(var n=t.return;n!==null;){switch(n.tag){case 24:case 3:var r=tn();t=Ca(r);var o=ka(n,t,r);o!==null&&(Fs(o,n,r),bi(o,n,r)),n={cache:Pu()},t.payload=n;return}n=n.return}}function $S(t,n,r){var o=tn();r={lane:o,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},xc(t)?Zp(n,r):(r=_u(t,n,r,o),r!==null&&(Fs(r,t,o),Jp(r,n,o)))}function Qp(t,n,r){var o=tn();Ci(t,n,r,o)}function Ci(t,n,r,o){var u={lane:o,revertLane:0,gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null};if(xc(t))Zp(n,u);else{var f=t.alternate;if(t.lanes===0&&(f===null||f.lanes===0)&&(f=n.lastRenderedReducer,f!==null))try{var y=n.lastRenderedState,_=f(y,r);if(u.hasEagerState=!0,u.eagerState=_,Xs(_,y))return Xo(t,n,u,0),Et===null&&Wo(),!1}catch{}finally{}if(r=_u(t,n,u,o),r!==null)return Fs(r,t,o),Jp(r,n,o),!0}return!1}function om(t,n,r,o){if(o={lane:2,revertLane:Hm(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},xc(t)){if(n)throw Error(i(479))}else n=_u(t,r,o,2),n!==null&&Fs(n,t,2)}function xc(t){var n=t.alternate;return t===Ye||n!==null&&n===Ye}function Zp(t,n){fr=oc=!0;var r=t.pending;r===null?n.next=n:(n.next=r.next,r.next=n),t.pending=n}function Jp(t,n,r){if((r&4194048)!==0){var o=n.lanes;o&=t.pendingLanes,r|=o,n.lanes=r,ax(t,r)}}var ki={readContext:gs,use:uc,useCallback:It,useContext:It,useEffect:It,useImperativeHandle:It,useLayoutEffect:It,useInsertionEffect:It,useMemo:It,useReducer:It,useRef:It,useState:It,useDebugValue:It,useDeferredValue:It,useTransition:It,useSyncExternalStore:It,useId:It,useHostTransitionStatus:It,useFormState:It,useActionState:It,useOptimistic:It,useMemoCache:It,useCacheRefresh:It};ki.useEffectEvent=It;var eg={readContext:gs,use:uc,useCallback:function(t,n){return As().memoizedState=[t,n===void 0?null:n],t},useContext:gs,useEffect:Lp,useImperativeHandle:function(t,n,r){r=r!=null?r.concat([t]):null,fc(4194308,4,Fp.bind(null,n,t),r)},useLayoutEffect:function(t,n){return fc(4194308,4,t,n)},useInsertionEffect:function(t,n){fc(4,2,t,n)},useMemo:function(t,n){var r=As();n=n===void 0?null:n;var o=t();if(gl){Qe(!0);try{t()}finally{Qe(!1)}}return r.memoizedState=[o,n],o},useReducer:function(t,n,r){var o=As();if(r!==void 0){var u=r(n);if(gl){Qe(!0);try{r(n)}finally{Qe(!1)}}}else u=n;return o.memoizedState=o.baseState=u,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:u},o.queue=t,t=t.dispatch=$S.bind(null,Ye,t),[o.memoizedState,t]},useRef:function(t){var n=As();return t={current:t},n.memoizedState=t},useState:function(t){t=tm(t);var n=t.queue,r=Qp.bind(null,Ye,n);return n.dispatch=r,[t.memoizedState,r]},useDebugValue:am,useDeferredValue:function(t,n){var r=As();return lm(r,t,n)},useTransition:function(){var t=tm(!1);return t=$p.bind(null,Ye,t.queue,!0,!1),As().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,n,r){var o=Ye,u=As();if(nt){if(r===void 0)throw Error(i(407));r=r()}else{if(r=n(),Et===null)throw Error(i(349));(tt&127)!==0||bp(o,n,r)}u.memoizedState=r;var f={value:r,getSnapshot:n};return u.queue=f,Lp(wp.bind(null,o,f,t),[t]),o.flags|=2048,xr(9,{destroy:void 0},Np.bind(null,o,f,r,n),null),r},useId:function(){var t=As(),n=Et.identifierPrefix;if(nt){var r=zn,o=Rn;r=(o&~(1<<32-pt(o)-1)).toString(32)+r,n="_"+n+"R_"+r,r=cc++,0<\/script>",f=f.removeChild(f.firstChild);break;case"select":f=typeof o.is=="string"?y.createElement("select",{is:o.is}):y.createElement("select"),o.multiple?f.multiple=!0:o.size&&(f.size=o.size);break;default:f=typeof o.is=="string"?y.createElement(u,{is:o.is}):y.createElement(u)}}f[xs]=n,f[zs]=o;e:for(y=n.child;y!==null;){if(y.tag===5||y.tag===6)f.appendChild(y.stateNode);else if(y.tag!==4&&y.tag!==27&&y.child!==null){y.child.return=y,y=y.child;continue}if(y===n)break e;for(;y.sibling===null;){if(y.return===null||y.return===n)break e;y=y.return}y.sibling.return=y.return,y=y.sibling}n.stateNode=f;e:switch(js(f,u,o),u){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}o&&na(n)}}return Ht(n),Nm(n,n.type,t===null?null:t.memoizedProps,n.pendingProps,r),null;case 6:if(t&&n.stateNode!=null)t.memoizedProps!==o&&na(n);else{if(typeof o!="string"&&n.stateNode===null)throw Error(i(166));if(t=ve.current,rr(n)){if(t=n.stateNode,r=n.memoizedProps,o=null,u=ps,u!==null)switch(u.tag){case 27:case 5:o=u.memoizedProps}t[xs]=n,t=!!(t.nodeValue===r||o!==null&&o.suppressHydrationWarning===!0||jv(t.nodeValue,r)),t||wa(n,!0)}else t=zc(t).createTextNode(o),t[xs]=n,n.stateNode=t}return Ht(n),null;case 31:if(r=n.memoizedState,t===null||t.memoizedState!==null){if(o=rr(n),r!==null){if(t===null){if(!o)throw Error(i(318));if(t=n.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(i(557));t[xs]=n}else dl(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Ht(n),t=!1}else r=Ou(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=r),t=!0;if(!t)return n.flags&256?(Zs(n),n):(Zs(n),null);if((n.flags&128)!==0)throw Error(i(558))}return Ht(n),null;case 13:if(o=n.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(u=rr(n),o!==null&&o.dehydrated!==null){if(t===null){if(!u)throw Error(i(318));if(u=n.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));u[xs]=n}else dl(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Ht(n),u=!1}else u=Ou(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=u),u=!0;if(!u)return n.flags&256?(Zs(n),n):(Zs(n),null)}return Zs(n),(n.flags&128)!==0?(n.lanes=r,n):(r=o!==null,t=t!==null&&t.memoizedState!==null,r&&(o=n.child,u=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(u=o.alternate.memoizedState.cachePool.pool),f=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(f=o.memoizedState.cachePool.pool),f!==u&&(o.flags|=2048)),r!==t&&r&&(n.child.flags|=8192),yc(n,n.updateQueue),Ht(n),null);case 4:return Q(),t===null&&Vm(n.stateNode.containerInfo),Ht(n),null;case 10:return Jn(n.type),Ht(n),null;case 19:if(F(Kt),o=n.memoizedState,o===null)return Ht(n),null;if(u=(n.flags&128)!==0,f=o.rendering,f===null)if(u)Ei(o,!1);else{if(Wt!==0||t!==null&&(t.flags&128)!==0)for(t=n.child;t!==null;){if(f=ic(t),f!==null){for(n.flags|=128,Ei(o,!1),t=f.updateQueue,n.updateQueue=t,yc(n,t),n.subtreeFlags=0,t=r,r=n.child;r!==null;)Qx(r,t),r=r.sibling;return W(Kt,Kt.current&1|2),nt&&Qn(n,o.treeForkCount),n.child}t=t.sibling}o.tail!==null&&ke()>_c&&(n.flags|=128,u=!0,Ei(o,!1),n.lanes=4194304)}else{if(!u)if(t=ic(f),t!==null){if(n.flags|=128,u=!0,t=t.updateQueue,n.updateQueue=t,yc(n,t),Ei(o,!0),o.tail===null&&o.tailMode==="hidden"&&!f.alternate&&!nt)return Ht(n),null}else 2*ke()-o.renderingStartTime>_c&&r!==536870912&&(n.flags|=128,u=!0,Ei(o,!1),n.lanes=4194304);o.isBackwards?(f.sibling=n.child,n.child=f):(t=o.last,t!==null?t.sibling=f:n.child=f,o.last=f)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=ke(),t.sibling=null,r=Kt.current,W(Kt,u?r&1|2:r&1),nt&&Qn(n,o.treeForkCount),t):(Ht(n),null);case 22:case 23:return Zs(n),Gu(),o=n.memoizedState!==null,t!==null?t.memoizedState!==null!==o&&(n.flags|=8192):o&&(n.flags|=8192),o?(r&536870912)!==0&&(n.flags&128)===0&&(Ht(n),n.subtreeFlags&6&&(n.flags|=8192)):Ht(n),r=n.updateQueue,r!==null&&yc(n,r.retryQueue),r=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),o=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(o=n.memoizedState.cachePool.pool),o!==r&&(n.flags|=2048),t!==null&&F(fl),null;case 24:return r=null,t!==null&&(r=t.memoizedState.cache),n.memoizedState.cache!==r&&(n.flags|=2048),Jn(Jt),Ht(n),null;case 25:return null;case 30:return null}throw Error(i(156,n.tag))}function QS(t,n){switch(Mu(n),n.tag){case 1:return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return Jn(Jt),Q(),t=n.flags,(t&65536)!==0&&(t&128)===0?(n.flags=t&-65537|128,n):null;case 26:case 27:case 5:return $e(n),null;case 31:if(n.memoizedState!==null){if(Zs(n),n.alternate===null)throw Error(i(340));dl()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 13:if(Zs(n),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(i(340));dl()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return F(Kt),null;case 4:return Q(),null;case 10:return Jn(n.type),null;case 22:case 23:return Zs(n),Gu(),t!==null&&F(fl),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 24:return Jn(Jt),null;case 25:return null;default:return null}}function Sg(t,n){switch(Mu(n),n.tag){case 3:Jn(Jt),Q();break;case 26:case 27:case 5:$e(n);break;case 4:Q();break;case 31:n.memoizedState!==null&&Zs(n);break;case 13:Zs(n);break;case 19:F(Kt);break;case 10:Jn(n.type);break;case 22:case 23:Zs(n),Gu(),t!==null&&F(fl);break;case 24:Jn(Jt)}}function Mi(t,n){try{var r=n.updateQueue,o=r!==null?r.lastEffect:null;if(o!==null){var u=o.next;r=u;do{if((r.tag&t)===t){o=void 0;var f=r.create,y=r.inst;o=f(),y.destroy=o}r=r.next}while(r!==u)}}catch(_){jt(n,n.return,_)}}function Ma(t,n,r){try{var o=n.updateQueue,u=o!==null?o.lastEffect:null;if(u!==null){var f=u.next;o=f;do{if((o.tag&t)===t){var y=o.inst,_=y.destroy;if(_!==void 0){y.destroy=void 0,u=n;var z=r,K=_;try{K()}catch(ie){jt(u,z,ie)}}}o=o.next}while(o!==f)}}catch(ie){jt(n,n.return,ie)}}function _g(t){var n=t.updateQueue;if(n!==null){var r=t.stateNode;try{xp(n,r)}catch(o){jt(t,t.return,o)}}}function Cg(t,n,r){r.props=vl(t.type,t.memoizedProps),r.state=t.memoizedState;try{r.componentWillUnmount()}catch(o){jt(t,n,o)}}function Di(t,n){try{var r=t.ref;if(r!==null){switch(t.tag){case 26:case 27:case 5:var o=t.stateNode;break;case 30:o=t.stateNode;break;default:o=t.stateNode}typeof r=="function"?t.refCleanup=r(o):r.current=o}}catch(u){jt(t,n,u)}}function Pn(t,n){var r=t.ref,o=t.refCleanup;if(r!==null)if(typeof o=="function")try{o()}catch(u){jt(t,n,u)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof r=="function")try{r(null)}catch(u){jt(t,n,u)}else r.current=null}function kg(t){var n=t.type,r=t.memoizedProps,o=t.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":r.autoFocus&&o.focus();break e;case"img":r.src?o.src=r.src:r.srcSet&&(o.srcset=r.srcSet)}}catch(u){jt(t,t.return,u)}}function wm(t,n,r){try{var o=t.stateNode;j_(o,t.type,r,n),o[zs]=n}catch(u){jt(t,t.return,u)}}function Tg(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&La(t.type)||t.tag===4}function Sm(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Tg(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&La(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function _m(t,n,r){var o=t.tag;if(o===5||o===6)t=t.stateNode,n?(r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r).insertBefore(t,n):(n=r.nodeType===9?r.body:r.nodeName==="HTML"?r.ownerDocument.body:r,n.appendChild(t),r=r._reactRootContainer,r!=null||n.onclick!==null||(n.onclick=Wn));else if(o!==4&&(o===27&&La(t.type)&&(r=t.stateNode,n=null),t=t.child,t!==null))for(_m(t,n,r),t=t.sibling;t!==null;)_m(t,n,r),t=t.sibling}function bc(t,n,r){var o=t.tag;if(o===5||o===6)t=t.stateNode,n?r.insertBefore(t,n):r.appendChild(t);else if(o!==4&&(o===27&&La(t.type)&&(r=t.stateNode),t=t.child,t!==null))for(bc(t,n,r),t=t.sibling;t!==null;)bc(t,n,r),t=t.sibling}function Eg(t){var n=t.stateNode,r=t.memoizedProps;try{for(var o=t.type,u=n.attributes;u.length;)n.removeAttributeNode(u[0]);js(n,o,r),n[xs]=t,n[zs]=r}catch(f){jt(t,t.return,f)}}var aa=!1,ss=!1,Cm=!1,Mg=typeof WeakSet=="function"?WeakSet:Set,ds=null;function ZS(t,n){if(t=t.containerInfo,Im=Yc,t=Yx(t),ju(t)){if("selectionStart"in t)var r={start:t.selectionStart,end:t.selectionEnd};else e:{r=(r=t.ownerDocument)&&r.defaultView||window;var o=r.getSelection&&r.getSelection();if(o&&o.rangeCount!==0){r=o.anchorNode;var u=o.anchorOffset,f=o.focusNode;o=o.focusOffset;try{r.nodeType,f.nodeType}catch{r=null;break e}var y=0,_=-1,z=-1,K=0,ie=0,ue=t,J=null;t:for(;;){for(var ne;ue!==r||u!==0&&ue.nodeType!==3||(_=y+u),ue!==f||o!==0&&ue.nodeType!==3||(z=y+o),ue.nodeType===3&&(y+=ue.nodeValue.length),(ne=ue.firstChild)!==null;)J=ue,ue=ne;for(;;){if(ue===t)break t;if(J===r&&++K===u&&(_=y),J===f&&++ie===o&&(z=y),(ne=ue.nextSibling)!==null)break;ue=J,J=ue.parentNode}ue=ne}r=_===-1||z===-1?null:{start:_,end:z}}else r=null}r=r||{start:0,end:0}}else r=null;for(Wm={focusedElem:t,selectionRange:r},Yc=!1,ds=n;ds!==null;)if(n=ds,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,ds=t;else for(;ds!==null;){switch(n=ds,f=n.alternate,t=n.flags,n.tag){case 0:if((t&4)!==0&&(t=n.updateQueue,t=t!==null?t.events:null,t!==null))for(r=0;r title"))),js(f,o,r),f[xs]=t,cs(f),o=f;break e;case"link":var y=Pv("link","href",u).get(o+(r.href||""));if(y){for(var _=0;_St&&(y=St,St=Re,Re=y);var V=Hx(_,Re),H=Hx(_,St);if(V&&H&&(ne.rangeCount!==1||ne.anchorNode!==V.node||ne.anchorOffset!==V.offset||ne.focusNode!==H.node||ne.focusOffset!==H.offset)){var X=ue.createRange();X.setStart(V.node,V.offset),ne.removeAllRanges(),Re>St?(ne.addRange(X),ne.extend(H.node,H.offset)):(X.setEnd(H.node,H.offset),ne.addRange(X))}}}}for(ue=[],ne=_;ne=ne.parentNode;)ne.nodeType===1&&ue.push({element:ne,left:ne.scrollLeft,top:ne.scrollTop});for(typeof _.focus=="function"&&_.focus(),_=0;_r?32:r,R.T=null,r=Am,Am=null;var f=Ra,y=ca;if(ls=0,yr=Ra=null,ca=0,(xt&6)!==0)throw Error(i(331));var _=xt;if(xt|=4,Fg(f.current),Bg(f,f.current,y,r),xt=_,Li(0,!1),ge&&typeof ge.onPostCommitFiberRoot=="function")try{ge.onPostCommitFiberRoot(se,f)}catch{}return!0}finally{O.p=u,R.T=o,lv(t,n)}}function iv(t,n,r){n=un(r,n),n=mm(t.stateNode,n,2),t=ka(t,n,2),t!==null&&(ni(t,2),Ln(t))}function jt(t,n,r){if(t.tag===3)iv(t,t,r);else for(;n!==null;){if(n.tag===3){iv(n,t,r);break}else if(n.tag===1){var o=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(Aa===null||!Aa.has(o))){t=un(r,t),r=og(2),o=ka(n,r,2),o!==null&&(cg(r,o,n,t),ni(o,2),Ln(o));break}}n=n.return}}function Lm(t,n,r){var o=t.pingCache;if(o===null){o=t.pingCache=new t_;var u=new Set;o.set(n,u)}else u=o.get(n),u===void 0&&(u=new Set,o.set(n,u));u.has(r)||(Em=!0,u.add(r),t=r_.bind(null,t,n,r),n.then(t,t))}function r_(t,n,r){var o=t.pingCache;o!==null&&o.delete(n),t.pingedLanes|=t.suspendedLanes&r,t.warmLanes&=~r,Et===t&&(tt&r)===r&&(Wt===4||Wt===3&&(tt&62914560)===tt&&300>ke()-Sc?(xt&2)===0&&br(t,0):Mm|=r,jr===tt&&(jr=0)),Ln(t)}function ov(t,n){n===0&&(n=ql()),t=ol(t,n),t!==null&&(ni(t,n),Ln(t))}function i_(t){var n=t.memoizedState,r=0;n!==null&&(r=n.retryLane),ov(t,r)}function o_(t,n){var r=0;switch(t.tag){case 31:case 13:var o=t.stateNode,u=t.memoizedState;u!==null&&(r=u.retryLane);break;case 19:o=t.stateNode;break;case 22:o=t.stateNode._retryCache;break;default:throw Error(i(314))}o!==null&&o.delete(n),ov(t,r)}function c_(t,n){return ln(t,n)}var Dc=null,wr=null,Bm=!1,Oc=!1,Um=!1,Pa=0;function Ln(t){t!==wr&&t.next===null&&(wr===null?Dc=wr=t:wr=wr.next=t),Oc=!0,Bm||(Bm=!0,u_())}function Li(t,n){if(!Um&&Oc){Um=!0;do for(var r=!1,o=Dc;o!==null;){if(t!==0){var u=o.pendingLanes;if(u===0)var f=0;else{var y=o.suspendedLanes,_=o.pingedLanes;f=(1<<31-pt(42|t)+1)-1,f&=u&~(y&~_),f=f&201326741?f&201326741|1:f?f|2:0}f!==0&&(r=!0,mv(o,f))}else f=tt,f=Yl(o,o===Et?f:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(f&3)===0||sl(o,f)||(r=!0,mv(o,f));o=o.next}while(r);Um=!1}}function d_(){cv()}function cv(){Oc=Bm=!1;var t=0;Pa!==0&&b_()&&(t=Pa);for(var n=ke(),r=null,o=Dc;o!==null;){var u=o.next,f=dv(o,n);f===0?(o.next=null,r===null?Dc=u:r.next=u,u===null&&(wr=r)):(r=o,(t!==0||(f&3)!==0)&&(Oc=!0)),o=u}ls!==0&&ls!==5||Li(t),Pa!==0&&(Pa=0)}function dv(t,n){for(var r=t.suspendedLanes,o=t.pingedLanes,u=t.expirationTimes,f=t.pendingLanes&-62914561;0_)break;var ie=z.transferSize,ue=z.initiatorType;ie&&yv(ue)&&(z=z.responseEnd,y+=ie*(z<_?1:(_-K)/(z-K)))}if(--o,n+=8*(f+y)/(u.duration/1e3),t++,10"u"?null:document;function Ov(t,n,r){var o=Sr;if(o&&typeof n=="string"&&n){var u=cn(n);u='link[rel="'+t+'"][href="'+u+'"]',typeof r=="string"&&(u+='[crossorigin="'+r+'"]'),Dv.has(u)||(Dv.add(u),t={rel:t,crossOrigin:r,href:n},o.querySelector(u)===null&&(n=o.createElement("link"),js(n,"link",t),cs(n),o.head.appendChild(n)))}}function M_(t){da.D(t),Ov("dns-prefetch",t,null)}function D_(t,n){da.C(t,n),Ov("preconnect",t,n)}function O_(t,n,r){da.L(t,n,r);var o=Sr;if(o&&t&&n){var u='link[rel="preload"][as="'+cn(n)+'"]';n==="image"&&r&&r.imageSrcSet?(u+='[imagesrcset="'+cn(r.imageSrcSet)+'"]',typeof r.imageSizes=="string"&&(u+='[imagesizes="'+cn(r.imageSizes)+'"]')):u+='[href="'+cn(t)+'"]';var f=u;switch(n){case"style":f=_r(t);break;case"script":f=Cr(t)}gn.has(f)||(t=j({rel:"preload",href:n==="image"&&r&&r.imageSrcSet?void 0:t,as:n},r),gn.set(f,t),o.querySelector(u)!==null||n==="style"&&o.querySelector(Fi(f))||n==="script"&&o.querySelector(Yi(f))||(n=o.createElement("link"),js(n,"link",t),cs(n),o.head.appendChild(n)))}}function A_(t,n){da.m(t,n);var r=Sr;if(r&&t){var o=n&&typeof n.as=="string"?n.as:"script",u='link[rel="modulepreload"][as="'+cn(o)+'"][href="'+cn(t)+'"]',f=u;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":f=Cr(t)}if(!gn.has(f)&&(t=j({rel:"modulepreload",href:t},n),gn.set(f,t),r.querySelector(u)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(r.querySelector(Yi(f)))return}o=r.createElement("link"),js(o,"link",t),cs(o),r.head.appendChild(o)}}}function R_(t,n,r){da.S(t,n,r);var o=Sr;if(o&&t){var u=Il(o).hoistableStyles,f=_r(t);n=n||"default";var y=u.get(f);if(!y){var _={loading:0,preload:null};if(y=o.querySelector(Fi(f)))_.loading=5;else{t=j({rel:"stylesheet",href:t,"data-precedence":n},r),(r=gn.get(f))&&tf(t,r);var z=y=o.createElement("link");cs(z),js(z,"link",t),z._p=new Promise(function(K,ie){z.onload=K,z.onerror=ie}),z.addEventListener("load",function(){_.loading|=1}),z.addEventListener("error",function(){_.loading|=2}),_.loading|=4,Lc(y,n,o)}y={type:"stylesheet",instance:y,count:1,state:_},u.set(f,y)}}}function z_(t,n){da.X(t,n);var r=Sr;if(r&&t){var o=Il(r).hoistableScripts,u=Cr(t),f=o.get(u);f||(f=r.querySelector(Yi(u)),f||(t=j({src:t,async:!0},n),(n=gn.get(u))&&sf(t,n),f=r.createElement("script"),cs(f),js(f,"link",t),r.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},o.set(u,f))}}function P_(t,n){da.M(t,n);var r=Sr;if(r&&t){var o=Il(r).hoistableScripts,u=Cr(t),f=o.get(u);f||(f=r.querySelector(Yi(u)),f||(t=j({src:t,async:!0,type:"module"},n),(n=gn.get(u))&&sf(t,n),f=r.createElement("script"),cs(f),js(f,"link",t),r.head.appendChild(f)),f={type:"script",instance:f,count:1,state:null},o.set(u,f))}}function Av(t,n,r,o){var u=(u=ve.current)?Pc(u):null;if(!u)throw Error(i(446));switch(t){case"meta":case"title":return null;case"style":return typeof r.precedence=="string"&&typeof r.href=="string"?(n=_r(r.href),r=Il(u).hoistableStyles,o=r.get(n),o||(o={type:"style",instance:null,count:0,state:null},r.set(n,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(r.rel==="stylesheet"&&typeof r.href=="string"&&typeof r.precedence=="string"){t=_r(r.href);var f=Il(u).hoistableStyles,y=f.get(t);if(y||(u=u.ownerDocument||u,y={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},f.set(t,y),(f=u.querySelector(Fi(t)))&&!f._p&&(y.instance=f,y.state.loading=5),gn.has(t)||(r={rel:"preload",as:"style",href:r.href,crossOrigin:r.crossOrigin,integrity:r.integrity,media:r.media,hrefLang:r.hrefLang,referrerPolicy:r.referrerPolicy},gn.set(t,r),f||L_(u,t,r,y.state))),n&&o===null)throw Error(i(528,""));return y}if(n&&o!==null)throw Error(i(529,""));return null;case"script":return n=r.async,r=r.src,typeof r=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=Cr(r),r=Il(u).hoistableScripts,o=r.get(n),o||(o={type:"script",instance:null,count:0,state:null},r.set(n,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,t))}}function _r(t){return'href="'+cn(t)+'"'}function Fi(t){return'link[rel="stylesheet"]['+t+"]"}function Rv(t){return j({},t,{"data-precedence":t.precedence,precedence:null})}function L_(t,n,r,o){t.querySelector('link[rel="preload"][as="style"]['+n+"]")?o.loading=1:(n=t.createElement("link"),o.preload=n,n.addEventListener("load",function(){return o.loading|=1}),n.addEventListener("error",function(){return o.loading|=2}),js(n,"link",r),cs(n),t.head.appendChild(n))}function Cr(t){return'[src="'+cn(t)+'"]'}function Yi(t){return"script[async]"+t}function zv(t,n,r){if(n.count++,n.instance===null)switch(n.type){case"style":var o=t.querySelector('style[data-href~="'+cn(r.href)+'"]');if(o)return n.instance=o,cs(o),o;var u=j({},r,{"data-href":r.href,"data-precedence":r.precedence,href:null,precedence:null});return o=(t.ownerDocument||t).createElement("style"),cs(o),js(o,"style",u),Lc(o,r.precedence,t),n.instance=o;case"stylesheet":u=_r(r.href);var f=t.querySelector(Fi(u));if(f)return n.state.loading|=4,n.instance=f,cs(f),f;o=Rv(r),(u=gn.get(u))&&tf(o,u),f=(t.ownerDocument||t).createElement("link"),cs(f);var y=f;return y._p=new Promise(function(_,z){y.onload=_,y.onerror=z}),js(f,"link",o),n.state.loading|=4,Lc(f,r.precedence,t),n.instance=f;case"script":return f=Cr(r.src),(u=t.querySelector(Yi(f)))?(n.instance=u,cs(u),u):(o=r,(u=gn.get(f))&&(o=j({},r),sf(o,u)),t=t.ownerDocument||t,u=t.createElement("script"),cs(u),js(u,"link",o),t.head.appendChild(u),n.instance=u);case"void":return null;default:throw Error(i(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(o=n.instance,n.state.loading|=4,Lc(o,r.precedence,t));return n.instance}function Lc(t,n,r){for(var o=r.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=o.length?o[o.length-1]:null,f=u,y=0;y title"):null)}function B_(t,n,r){if(r===1||n.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;switch(n.rel){case"stylesheet":return t=n.disabled,typeof n.precedence=="string"&&t==null;default:return!0}case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function Bv(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function U_(t,n,r,o){if(r.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(r.state.loading&4)===0){if(r.instance===null){var u=_r(o.href),f=n.querySelector(Fi(u));if(f){n=f._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(t.count++,t=Uc.bind(t),n.then(t,t)),r.state.loading|=4,r.instance=f,cs(f);return}f=n.ownerDocument||n,o=Rv(o),(u=gn.get(u))&&tf(o,u),f=f.createElement("link"),cs(f);var y=f;y._p=new Promise(function(_,z){y.onload=_,y.onerror=z}),js(f,"link",o),r.instance=f}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(r,n),(n=r.state.preload)&&(r.state.loading&3)===0&&(t.count++,r=Uc.bind(t),n.addEventListener("load",r),n.addEventListener("error",r))}}var nf=0;function H_(t,n){return t.stylesheets&&t.count===0&&Fc(t,t.stylesheets),0nf?50:800)+n);return t.unsuspend=r,function(){t.unsuspend=null,clearTimeout(o),clearTimeout(u)}}:null}function Uc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Fc(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var Hc=null;function Fc(t,n){t.stylesheets=null,t.unsuspend!==null&&(t.count++,Hc=new Map,n.forEach(F_,t),Hc=null,Uc.call(t))}function F_(t,n){if(!(n.state.loading&4)){var r=Hc.get(t);if(r)var o=r.get(null);else{r=new Map,Hc.set(t,r);for(var u=t.querySelectorAll("link[data-precedence],style[data-precedence]"),f=0;f"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(s)}catch(a){console.error(a)}}return s(),mf.exports=Z2(),mf.exports}var eC=J2();function Ry(s,a){return function(){return s.apply(a,arguments)}}const{toString:tC}=Object.prototype,{getPrototypeOf:yh}=Object,{iterator:Dd,toStringTag:zy}=Symbol,Od=(s=>a=>{const l=tC.call(a);return s[l]||(s[l]=l.slice(8,-1).toLowerCase())})(Object.create(null)),On=s=>(s=s.toLowerCase(),a=>Od(a)===s),Ad=s=>a=>typeof a===s,{isArray:Xr}=Array,Vr=Ad("undefined");function yo(s){return s!==null&&!Vr(s)&&s.constructor!==null&&!Vr(s.constructor)&&qs(s.constructor.isBuffer)&&s.constructor.isBuffer(s)}const Py=On("ArrayBuffer");function sC(s){let a;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?a=ArrayBuffer.isView(s):a=s&&s.buffer&&Py(s.buffer),a}const nC=Ad("string"),qs=Ad("function"),Ly=Ad("number"),bo=s=>s!==null&&typeof s=="object",aC=s=>s===!0||s===!1,id=s=>{if(Od(s)!=="object")return!1;const a=yh(s);return(a===null||a===Object.prototype||Object.getPrototypeOf(a)===null)&&!(zy in s)&&!(Dd in s)},lC=s=>{if(!bo(s)||yo(s))return!1;try{return Object.keys(s).length===0&&Object.getPrototypeOf(s)===Object.prototype}catch{return!1}},rC=On("Date"),iC=On("File"),oC=On("Blob"),cC=On("FileList"),dC=s=>bo(s)&&qs(s.pipe),uC=s=>{let a;return s&&(typeof FormData=="function"&&s instanceof FormData||qs(s.append)&&((a=Od(s))==="formdata"||a==="object"&&qs(s.toString)&&s.toString()==="[object FormData]"))},mC=On("URLSearchParams"),[fC,hC,xC,pC]=["ReadableStream","Request","Response","Headers"].map(On),gC=s=>s.trim?s.trim():s.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function No(s,a,{allOwnKeys:l=!1}={}){if(s===null||typeof s>"u")return;let i,c;if(typeof s!="object"&&(s=[s]),Xr(s))for(i=0,c=s.length;i0;)if(c=l[i],a===c.toLowerCase())return c;return null}const wl=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,Uy=s=>!Vr(s)&&s!==wl;function Uf(){const{caseless:s,skipUndefined:a}=Uy(this)&&this||{},l={},i=(c,d)=>{const m=s&&By(l,d)||d;id(l[m])&&id(c)?l[m]=Uf(l[m],c):id(c)?l[m]=Uf({},c):Xr(c)?l[m]=c.slice():(!a||!Vr(c))&&(l[m]=c)};for(let c=0,d=arguments.length;c(No(a,(c,d)=>{l&&qs(c)?s[d]=Ry(c,l):s[d]=c},{allOwnKeys:i}),s),jC=s=>(s.charCodeAt(0)===65279&&(s=s.slice(1)),s),yC=(s,a,l,i)=>{s.prototype=Object.create(a.prototype,i),s.prototype.constructor=s,Object.defineProperty(s,"super",{value:a.prototype}),l&&Object.assign(s.prototype,l)},bC=(s,a,l,i)=>{let c,d,m;const h={};if(a=a||{},s==null)return a;do{for(c=Object.getOwnPropertyNames(s),d=c.length;d-- >0;)m=c[d],(!i||i(m,s,a))&&!h[m]&&(a[m]=s[m],h[m]=!0);s=l!==!1&&yh(s)}while(s&&(!l||l(s,a))&&s!==Object.prototype);return a},NC=(s,a,l)=>{s=String(s),(l===void 0||l>s.length)&&(l=s.length),l-=a.length;const i=s.indexOf(a,l);return i!==-1&&i===l},wC=s=>{if(!s)return null;if(Xr(s))return s;let a=s.length;if(!Ly(a))return null;const l=new Array(a);for(;a-- >0;)l[a]=s[a];return l},SC=(s=>a=>s&&a instanceof s)(typeof Uint8Array<"u"&&yh(Uint8Array)),_C=(s,a)=>{const i=(s&&s[Dd]).call(s);let c;for(;(c=i.next())&&!c.done;){const d=c.value;a.call(s,d[0],d[1])}},CC=(s,a)=>{let l;const i=[];for(;(l=s.exec(a))!==null;)i.push(l);return i},kC=On("HTMLFormElement"),TC=s=>s.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(l,i,c){return i.toUpperCase()+c}),ij=(({hasOwnProperty:s})=>(a,l)=>s.call(a,l))(Object.prototype),EC=On("RegExp"),Hy=(s,a)=>{const l=Object.getOwnPropertyDescriptors(s),i={};No(l,(c,d)=>{let m;(m=a(c,d,s))!==!1&&(i[d]=m||c)}),Object.defineProperties(s,i)},MC=s=>{Hy(s,(a,l)=>{if(qs(s)&&["arguments","caller","callee"].indexOf(l)!==-1)return!1;const i=s[l];if(qs(i)){if(a.enumerable=!1,"writable"in a){a.writable=!1;return}a.set||(a.set=()=>{throw Error("Can not rewrite read-only method '"+l+"'")})}})},DC=(s,a)=>{const l={},i=c=>{c.forEach(d=>{l[d]=!0})};return Xr(s)?i(s):i(String(s).split(a)),l},OC=()=>{},AC=(s,a)=>s!=null&&Number.isFinite(s=+s)?s:a;function RC(s){return!!(s&&qs(s.append)&&s[zy]==="FormData"&&s[Dd])}const zC=s=>{const a=new Array(10),l=(i,c)=>{if(bo(i)){if(a.indexOf(i)>=0)return;if(yo(i))return i;if(!("toJSON"in i)){a[c]=i;const d=Xr(i)?[]:{};return No(i,(m,h)=>{const p=l(m,c+1);!Vr(p)&&(d[h]=p)}),a[c]=void 0,d}}return i};return l(s,0)},PC=On("AsyncFunction"),LC=s=>s&&(bo(s)||qs(s))&&qs(s.then)&&qs(s.catch),Fy=((s,a)=>s?setImmediate:a?((l,i)=>(wl.addEventListener("message",({source:c,data:d})=>{c===wl&&d===l&&i.length&&i.shift()()},!1),c=>{i.push(c),wl.postMessage(l,"*")}))(`axios@${Math.random()}`,[]):l=>setTimeout(l))(typeof setImmediate=="function",qs(wl.postMessage)),BC=typeof queueMicrotask<"u"?queueMicrotask.bind(wl):typeof process<"u"&&process.nextTick||Fy,UC=s=>s!=null&&qs(s[Dd]),te={isArray:Xr,isArrayBuffer:Py,isBuffer:yo,isFormData:uC,isArrayBufferView:sC,isString:nC,isNumber:Ly,isBoolean:aC,isObject:bo,isPlainObject:id,isEmptyObject:lC,isReadableStream:fC,isRequest:hC,isResponse:xC,isHeaders:pC,isUndefined:Vr,isDate:rC,isFile:iC,isBlob:oC,isRegExp:EC,isFunction:qs,isStream:dC,isURLSearchParams:mC,isTypedArray:SC,isFileList:cC,forEach:No,merge:Uf,extend:vC,trim:gC,stripBOM:jC,inherits:yC,toFlatObject:bC,kindOf:Od,kindOfTest:On,endsWith:NC,toArray:wC,forEachEntry:_C,matchAll:CC,isHTMLForm:kC,hasOwnProperty:ij,hasOwnProp:ij,reduceDescriptors:Hy,freezeMethods:MC,toObjectSet:DC,toCamelCase:TC,noop:OC,toFiniteNumber:AC,findKey:By,global:wl,isContextDefined:Uy,isSpecCompliantForm:RC,toJSONObject:zC,isAsyncFn:PC,isThenable:LC,setImmediate:Fy,asap:BC,isIterable:UC};function qe(s,a,l,i,c){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=s,this.name="AxiosError",a&&(this.code=a),l&&(this.config=l),i&&(this.request=i),c&&(this.response=c,this.status=c.status?c.status:null)}te.inherits(qe,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:te.toJSONObject(this.config),code:this.code,status:this.status}}});const Yy=qe.prototype,qy={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(s=>{qy[s]={value:s}});Object.defineProperties(qe,qy);Object.defineProperty(Yy,"isAxiosError",{value:!0});qe.from=(s,a,l,i,c,d)=>{const m=Object.create(Yy);te.toFlatObject(s,m,function(g){return g!==Error.prototype},v=>v!=="isAxiosError");const h=s&&s.message?s.message:"Error",p=a==null&&s?s.code:a;return qe.call(m,h,p,l,i,c),s&&m.cause==null&&Object.defineProperty(m,"cause",{value:s,configurable:!0}),m.name=s&&s.name||"Error",d&&Object.assign(m,d),m};const HC=null;function Hf(s){return te.isPlainObject(s)||te.isArray(s)}function Vy(s){return te.endsWith(s,"[]")?s.slice(0,-2):s}function oj(s,a,l){return s?s.concat(a).map(function(c,d){return c=Vy(c),!l&&d?"["+c+"]":c}).join(l?".":""):a}function FC(s){return te.isArray(s)&&!s.some(Hf)}const YC=te.toFlatObject(te,{},null,function(a){return/^is[A-Z]/.test(a)});function Rd(s,a,l){if(!te.isObject(s))throw new TypeError("target must be an object");a=a||new FormData,l=te.toFlatObject(l,{metaTokens:!0,dots:!1,indexes:!1},!1,function(C,N){return!te.isUndefined(N[C])});const i=l.metaTokens,c=l.visitor||g,d=l.dots,m=l.indexes,p=(l.Blob||typeof Blob<"u"&&Blob)&&te.isSpecCompliantForm(a);if(!te.isFunction(c))throw new TypeError("visitor must be a function");function v(S){if(S===null)return"";if(te.isDate(S))return S.toISOString();if(te.isBoolean(S))return S.toString();if(!p&&te.isBlob(S))throw new qe("Blob is not supported. Use a Buffer instead.");return te.isArrayBuffer(S)||te.isTypedArray(S)?p&&typeof Blob=="function"?new Blob([S]):Buffer.from(S):S}function g(S,C,N){let T=S;if(S&&!N&&typeof S=="object"){if(te.endsWith(C,"{}"))C=i?C:C.slice(0,-2),S=JSON.stringify(S);else if(te.isArray(S)&&FC(S)||(te.isFileList(S)||te.endsWith(C,"[]"))&&(T=te.toArray(S)))return C=Vy(C),T.forEach(function(M,k){!(te.isUndefined(M)||M===null)&&a.append(m===!0?oj([C],k,d):m===null?C:C+"[]",v(M))}),!1}return Hf(S)?!0:(a.append(oj(N,C,d),v(S)),!1)}const j=[],b=Object.assign(YC,{defaultVisitor:g,convertValue:v,isVisitable:Hf});function w(S,C){if(!te.isUndefined(S)){if(j.indexOf(S)!==-1)throw Error("Circular reference detected in "+C.join("."));j.push(S),te.forEach(S,function(T,P){(!(te.isUndefined(T)||T===null)&&c.call(a,T,te.isString(P)?P.trim():P,C,b))===!0&&w(T,C?C.concat(P):[P])}),j.pop()}}if(!te.isObject(s))throw new TypeError("data must be an object");return w(s),a}function cj(s){const a={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(s).replace(/[!'()~]|%20|%00/g,function(i){return a[i]})}function bh(s,a){this._pairs=[],s&&Rd(s,this,a)}const Gy=bh.prototype;Gy.append=function(a,l){this._pairs.push([a,l])};Gy.toString=function(a){const l=a?function(i){return a.call(this,i,cj)}:cj;return this._pairs.map(function(c){return l(c[0])+"="+l(c[1])},"").join("&")};function qC(s){return encodeURIComponent(s).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function $y(s,a,l){if(!a)return s;const i=l&&l.encode||qC;te.isFunction(l)&&(l={serialize:l});const c=l&&l.serialize;let d;if(c?d=c(a,l):d=te.isURLSearchParams(a)?a.toString():new bh(a,l).toString(i),d){const m=s.indexOf("#");m!==-1&&(s=s.slice(0,m)),s+=(s.indexOf("?")===-1?"?":"&")+d}return s}class dj{constructor(){this.handlers=[]}use(a,l,i){return this.handlers.push({fulfilled:a,rejected:l,synchronous:i?i.synchronous:!1,runWhen:i?i.runWhen:null}),this.handlers.length-1}eject(a){this.handlers[a]&&(this.handlers[a]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(a){te.forEach(this.handlers,function(i){i!==null&&a(i)})}}const Iy={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},VC=typeof URLSearchParams<"u"?URLSearchParams:bh,GC=typeof FormData<"u"?FormData:null,$C=typeof Blob<"u"?Blob:null,IC={isBrowser:!0,classes:{URLSearchParams:VC,FormData:GC,Blob:$C},protocols:["http","https","file","blob","url","data"]},Nh=typeof window<"u"&&typeof document<"u",Ff=typeof navigator=="object"&&navigator||void 0,WC=Nh&&(!Ff||["ReactNative","NativeScript","NS"].indexOf(Ff.product)<0),XC=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",KC=Nh&&window.location.href||"http://localhost",QC=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Nh,hasStandardBrowserEnv:WC,hasStandardBrowserWebWorkerEnv:XC,navigator:Ff,origin:KC},Symbol.toStringTag,{value:"Module"})),Ss={...QC,...IC};function ZC(s,a){return Rd(s,new Ss.classes.URLSearchParams,{visitor:function(l,i,c,d){return Ss.isNode&&te.isBuffer(l)?(this.append(i,l.toString("base64")),!1):d.defaultVisitor.apply(this,arguments)},...a})}function JC(s){return te.matchAll(/\w+|\[(\w*)]/g,s).map(a=>a[0]==="[]"?"":a[1]||a[0])}function ek(s){const a={},l=Object.keys(s);let i;const c=l.length;let d;for(i=0;i=l.length;return m=!m&&te.isArray(c)?c.length:m,p?(te.hasOwnProp(c,m)?c[m]=[c[m],i]:c[m]=i,!h):((!c[m]||!te.isObject(c[m]))&&(c[m]=[]),a(l,i,c[m],d)&&te.isArray(c[m])&&(c[m]=ek(c[m])),!h)}if(te.isFormData(s)&&te.isFunction(s.entries)){const l={};return te.forEachEntry(s,(i,c)=>{a(JC(i),c,l,0)}),l}return null}function tk(s,a,l){if(te.isString(s))try{return(a||JSON.parse)(s),te.trim(s)}catch(i){if(i.name!=="SyntaxError")throw i}return(l||JSON.stringify)(s)}const wo={transitional:Iy,adapter:["xhr","http","fetch"],transformRequest:[function(a,l){const i=l.getContentType()||"",c=i.indexOf("application/json")>-1,d=te.isObject(a);if(d&&te.isHTMLForm(a)&&(a=new FormData(a)),te.isFormData(a))return c?JSON.stringify(Wy(a)):a;if(te.isArrayBuffer(a)||te.isBuffer(a)||te.isStream(a)||te.isFile(a)||te.isBlob(a)||te.isReadableStream(a))return a;if(te.isArrayBufferView(a))return a.buffer;if(te.isURLSearchParams(a))return l.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),a.toString();let h;if(d){if(i.indexOf("application/x-www-form-urlencoded")>-1)return ZC(a,this.formSerializer).toString();if((h=te.isFileList(a))||i.indexOf("multipart/form-data")>-1){const p=this.env&&this.env.FormData;return Rd(h?{"files[]":a}:a,p&&new p,this.formSerializer)}}return d||c?(l.setContentType("application/json",!1),tk(a)):a}],transformResponse:[function(a){const l=this.transitional||wo.transitional,i=l&&l.forcedJSONParsing,c=this.responseType==="json";if(te.isResponse(a)||te.isReadableStream(a))return a;if(a&&te.isString(a)&&(i&&!this.responseType||c)){const m=!(l&&l.silentJSONParsing)&&c;try{return JSON.parse(a,this.parseReviver)}catch(h){if(m)throw h.name==="SyntaxError"?qe.from(h,qe.ERR_BAD_RESPONSE,this,null,this.response):h}}return a}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Ss.classes.FormData,Blob:Ss.classes.Blob},validateStatus:function(a){return a>=200&&a<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};te.forEach(["delete","get","head","post","put","patch"],s=>{wo.headers[s]={}});const sk=te.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),nk=s=>{const a={};let l,i,c;return s&&s.split(` -`).forEach(function(m){c=m.indexOf(":"),l=m.substring(0,c).trim().toLowerCase(),i=m.substring(c+1).trim(),!(!l||a[l]&&sk[l])&&(l==="set-cookie"?a[l]?a[l].push(i):a[l]=[i]:a[l]=a[l]?a[l]+", "+i:i)}),a},uj=Symbol("internals");function Xi(s){return s&&String(s).trim().toLowerCase()}function od(s){return s===!1||s==null?s:te.isArray(s)?s.map(od):String(s)}function ak(s){const a=Object.create(null),l=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=l.exec(s);)a[i[1]]=i[2];return a}const lk=s=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(s.trim());function xf(s,a,l,i,c){if(te.isFunction(i))return i.call(this,a,l);if(c&&(a=l),!!te.isString(a)){if(te.isString(i))return a.indexOf(i)!==-1;if(te.isRegExp(i))return i.test(a)}}function rk(s){return s.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(a,l,i)=>l.toUpperCase()+i)}function ik(s,a){const l=te.toCamelCase(" "+a);["get","set","has"].forEach(i=>{Object.defineProperty(s,i+l,{value:function(c,d,m){return this[i].call(this,a,c,d,m)},configurable:!0})})}let Vs=class{constructor(a){a&&this.set(a)}set(a,l,i){const c=this;function d(h,p,v){const g=Xi(p);if(!g)throw new Error("header name must be a non-empty string");const j=te.findKey(c,g);(!j||c[j]===void 0||v===!0||v===void 0&&c[j]!==!1)&&(c[j||p]=od(h))}const m=(h,p)=>te.forEach(h,(v,g)=>d(v,g,p));if(te.isPlainObject(a)||a instanceof this.constructor)m(a,l);else if(te.isString(a)&&(a=a.trim())&&!lk(a))m(nk(a),l);else if(te.isObject(a)&&te.isIterable(a)){let h={},p,v;for(const g of a){if(!te.isArray(g))throw TypeError("Object iterator must return a key-value pair");h[v=g[0]]=(p=h[v])?te.isArray(p)?[...p,g[1]]:[p,g[1]]:g[1]}m(h,l)}else a!=null&&d(l,a,i);return this}get(a,l){if(a=Xi(a),a){const i=te.findKey(this,a);if(i){const c=this[i];if(!l)return c;if(l===!0)return ak(c);if(te.isFunction(l))return l.call(this,c,i);if(te.isRegExp(l))return l.exec(c);throw new TypeError("parser must be boolean|regexp|function")}}}has(a,l){if(a=Xi(a),a){const i=te.findKey(this,a);return!!(i&&this[i]!==void 0&&(!l||xf(this,this[i],i,l)))}return!1}delete(a,l){const i=this;let c=!1;function d(m){if(m=Xi(m),m){const h=te.findKey(i,m);h&&(!l||xf(i,i[h],h,l))&&(delete i[h],c=!0)}}return te.isArray(a)?a.forEach(d):d(a),c}clear(a){const l=Object.keys(this);let i=l.length,c=!1;for(;i--;){const d=l[i];(!a||xf(this,this[d],d,a,!0))&&(delete this[d],c=!0)}return c}normalize(a){const l=this,i={};return te.forEach(this,(c,d)=>{const m=te.findKey(i,d);if(m){l[m]=od(c),delete l[d];return}const h=a?rk(d):String(d).trim();h!==d&&delete l[d],l[h]=od(c),i[h]=!0}),this}concat(...a){return this.constructor.concat(this,...a)}toJSON(a){const l=Object.create(null);return te.forEach(this,(i,c)=>{i!=null&&i!==!1&&(l[c]=a&&te.isArray(i)?i.join(", "):i)}),l}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([a,l])=>a+": "+l).join(` -`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(a){return a instanceof this?a:new this(a)}static concat(a,...l){const i=new this(a);return l.forEach(c=>i.set(c)),i}static accessor(a){const i=(this[uj]=this[uj]={accessors:{}}).accessors,c=this.prototype;function d(m){const h=Xi(m);i[h]||(ik(c,m),i[h]=!0)}return te.isArray(a)?a.forEach(d):d(a),this}};Vs.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);te.reduceDescriptors(Vs.prototype,({value:s},a)=>{let l=a[0].toUpperCase()+a.slice(1);return{get:()=>s,set(i){this[l]=i}}});te.freezeMethods(Vs);function pf(s,a){const l=this||wo,i=a||l,c=Vs.from(i.headers);let d=i.data;return te.forEach(s,function(h){d=h.call(l,d,c.normalize(),a?a.status:void 0)}),c.normalize(),d}function Xy(s){return!!(s&&s.__CANCEL__)}function Kr(s,a,l){qe.call(this,s??"canceled",qe.ERR_CANCELED,a,l),this.name="CanceledError"}te.inherits(Kr,qe,{__CANCEL__:!0});function Ky(s,a,l){const i=l.config.validateStatus;!l.status||!i||i(l.status)?s(l):a(new qe("Request failed with status code "+l.status,[qe.ERR_BAD_REQUEST,qe.ERR_BAD_RESPONSE][Math.floor(l.status/100)-4],l.config,l.request,l))}function ok(s){const a=/^([-+\w]{1,25})(:?\/\/|:)/.exec(s);return a&&a[1]||""}function ck(s,a){s=s||10;const l=new Array(s),i=new Array(s);let c=0,d=0,m;return a=a!==void 0?a:1e3,function(p){const v=Date.now(),g=i[d];m||(m=v),l[c]=p,i[c]=v;let j=d,b=0;for(;j!==c;)b+=l[j++],j=j%s;if(c=(c+1)%s,c===d&&(d=(d+1)%s),v-m{l=g,c=null,d&&(clearTimeout(d),d=null),s(...v)};return[(...v)=>{const g=Date.now(),j=g-l;j>=i?m(v,g):(c=v,d||(d=setTimeout(()=>{d=null,m(c)},i-j)))},()=>c&&m(c)]}const gd=(s,a,l=3)=>{let i=0;const c=ck(50,250);return dk(d=>{const m=d.loaded,h=d.lengthComputable?d.total:void 0,p=m-i,v=c(p),g=m<=h;i=m;const j={loaded:m,total:h,progress:h?m/h:void 0,bytes:p,rate:v||void 0,estimated:v&&h&&g?(h-m)/v:void 0,event:d,lengthComputable:h!=null,[a?"download":"upload"]:!0};s(j)},l)},mj=(s,a)=>{const l=s!=null;return[i=>a[0]({lengthComputable:l,total:s,loaded:i}),a[1]]},fj=s=>(...a)=>te.asap(()=>s(...a)),uk=Ss.hasStandardBrowserEnv?((s,a)=>l=>(l=new URL(l,Ss.origin),s.protocol===l.protocol&&s.host===l.host&&(a||s.port===l.port)))(new URL(Ss.origin),Ss.navigator&&/(msie|trident)/i.test(Ss.navigator.userAgent)):()=>!0,mk=Ss.hasStandardBrowserEnv?{write(s,a,l,i,c,d,m){if(typeof document>"u")return;const h=[`${s}=${encodeURIComponent(a)}`];te.isNumber(l)&&h.push(`expires=${new Date(l).toUTCString()}`),te.isString(i)&&h.push(`path=${i}`),te.isString(c)&&h.push(`domain=${c}`),d===!0&&h.push("secure"),te.isString(m)&&h.push(`SameSite=${m}`),document.cookie=h.join("; ")},read(s){if(typeof document>"u")return null;const a=document.cookie.match(new RegExp("(?:^|; )"+s+"=([^;]*)"));return a?decodeURIComponent(a[1]):null},remove(s){this.write(s,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function fk(s){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(s)}function hk(s,a){return a?s.replace(/\/?\/$/,"")+"/"+a.replace(/^\/+/,""):s}function Qy(s,a,l){let i=!fk(a);return s&&(i||l==!1)?hk(s,a):a}const hj=s=>s instanceof Vs?{...s}:s;function El(s,a){a=a||{};const l={};function i(v,g,j,b){return te.isPlainObject(v)&&te.isPlainObject(g)?te.merge.call({caseless:b},v,g):te.isPlainObject(g)?te.merge({},g):te.isArray(g)?g.slice():g}function c(v,g,j,b){if(te.isUndefined(g)){if(!te.isUndefined(v))return i(void 0,v,j,b)}else return i(v,g,j,b)}function d(v,g){if(!te.isUndefined(g))return i(void 0,g)}function m(v,g){if(te.isUndefined(g)){if(!te.isUndefined(v))return i(void 0,v)}else return i(void 0,g)}function h(v,g,j){if(j in a)return i(v,g);if(j in s)return i(void 0,v)}const p={url:d,method:d,data:d,baseURL:m,transformRequest:m,transformResponse:m,paramsSerializer:m,timeout:m,timeoutMessage:m,withCredentials:m,withXSRFToken:m,adapter:m,responseType:m,xsrfCookieName:m,xsrfHeaderName:m,onUploadProgress:m,onDownloadProgress:m,decompress:m,maxContentLength:m,maxBodyLength:m,beforeRedirect:m,transport:m,httpAgent:m,httpsAgent:m,cancelToken:m,socketPath:m,responseEncoding:m,validateStatus:h,headers:(v,g,j)=>c(hj(v),hj(g),j,!0)};return te.forEach(Object.keys({...s,...a}),function(g){const j=p[g]||c,b=j(s[g],a[g],g);te.isUndefined(b)&&j!==h||(l[g]=b)}),l}const Zy=s=>{const a=El({},s);let{data:l,withXSRFToken:i,xsrfHeaderName:c,xsrfCookieName:d,headers:m,auth:h}=a;if(a.headers=m=Vs.from(m),a.url=$y(Qy(a.baseURL,a.url,a.allowAbsoluteUrls),s.params,s.paramsSerializer),h&&m.set("Authorization","Basic "+btoa((h.username||"")+":"+(h.password?unescape(encodeURIComponent(h.password)):""))),te.isFormData(l)){if(Ss.hasStandardBrowserEnv||Ss.hasStandardBrowserWebWorkerEnv)m.setContentType(void 0);else if(te.isFunction(l.getHeaders)){const p=l.getHeaders(),v=["content-type","content-length"];Object.entries(p).forEach(([g,j])=>{v.includes(g.toLowerCase())&&m.set(g,j)})}}if(Ss.hasStandardBrowserEnv&&(i&&te.isFunction(i)&&(i=i(a)),i||i!==!1&&uk(a.url))){const p=c&&d&&mk.read(d);p&&m.set(c,p)}return a},xk=typeof XMLHttpRequest<"u",pk=xk&&function(s){return new Promise(function(l,i){const c=Zy(s);let d=c.data;const m=Vs.from(c.headers).normalize();let{responseType:h,onUploadProgress:p,onDownloadProgress:v}=c,g,j,b,w,S;function C(){w&&w(),S&&S(),c.cancelToken&&c.cancelToken.unsubscribe(g),c.signal&&c.signal.removeEventListener("abort",g)}let N=new XMLHttpRequest;N.open(c.method.toUpperCase(),c.url,!0),N.timeout=c.timeout;function T(){if(!N)return;const M=Vs.from("getAllResponseHeaders"in N&&N.getAllResponseHeaders()),D={data:!h||h==="text"||h==="json"?N.responseText:N.response,status:N.status,statusText:N.statusText,headers:M,config:s,request:N};Ky(function(E){l(E),C()},function(E){i(E),C()},D),N=null}"onloadend"in N?N.onloadend=T:N.onreadystatechange=function(){!N||N.readyState!==4||N.status===0&&!(N.responseURL&&N.responseURL.indexOf("file:")===0)||setTimeout(T)},N.onabort=function(){N&&(i(new qe("Request aborted",qe.ECONNABORTED,s,N)),N=null)},N.onerror=function(k){const D=k&&k.message?k.message:"Network Error",A=new qe(D,qe.ERR_NETWORK,s,N);A.event=k||null,i(A),N=null},N.ontimeout=function(){let k=c.timeout?"timeout of "+c.timeout+"ms exceeded":"timeout exceeded";const D=c.transitional||Iy;c.timeoutErrorMessage&&(k=c.timeoutErrorMessage),i(new qe(k,D.clarifyTimeoutError?qe.ETIMEDOUT:qe.ECONNABORTED,s,N)),N=null},d===void 0&&m.setContentType(null),"setRequestHeader"in N&&te.forEach(m.toJSON(),function(k,D){N.setRequestHeader(D,k)}),te.isUndefined(c.withCredentials)||(N.withCredentials=!!c.withCredentials),h&&h!=="json"&&(N.responseType=c.responseType),v&&([b,S]=gd(v,!0),N.addEventListener("progress",b)),p&&N.upload&&([j,w]=gd(p),N.upload.addEventListener("progress",j),N.upload.addEventListener("loadend",w)),(c.cancelToken||c.signal)&&(g=M=>{N&&(i(!M||M.type?new Kr(null,s,N):M),N.abort(),N=null)},c.cancelToken&&c.cancelToken.subscribe(g),c.signal&&(c.signal.aborted?g():c.signal.addEventListener("abort",g)));const P=ok(c.url);if(P&&Ss.protocols.indexOf(P)===-1){i(new qe("Unsupported protocol "+P+":",qe.ERR_BAD_REQUEST,s));return}N.send(d||null)})},gk=(s,a)=>{const{length:l}=s=s?s.filter(Boolean):[];if(a||l){let i=new AbortController,c;const d=function(v){if(!c){c=!0,h();const g=v instanceof Error?v:this.reason;i.abort(g instanceof qe?g:new Kr(g instanceof Error?g.message:g))}};let m=a&&setTimeout(()=>{m=null,d(new qe(`timeout ${a} of ms exceeded`,qe.ETIMEDOUT))},a);const h=()=>{s&&(m&&clearTimeout(m),m=null,s.forEach(v=>{v.unsubscribe?v.unsubscribe(d):v.removeEventListener("abort",d)}),s=null)};s.forEach(v=>v.addEventListener("abort",d));const{signal:p}=i;return p.unsubscribe=()=>te.asap(h),p}},vk=function*(s,a){let l=s.byteLength;if(l{const c=jk(s,a);let d=0,m,h=p=>{m||(m=!0,i&&i(p))};return new ReadableStream({async pull(p){try{const{done:v,value:g}=await c.next();if(v){h(),p.close();return}let j=g.byteLength;if(l){let b=d+=j;l(b)}p.enqueue(new Uint8Array(g))}catch(v){throw h(v),v}},cancel(p){return h(p),c.return()}},{highWaterMark:2})},pj=64*1024,{isFunction:Zc}=te,bk=(({Request:s,Response:a})=>({Request:s,Response:a}))(te.global),{ReadableStream:gj,TextEncoder:vj}=te.global,jj=(s,...a)=>{try{return!!s(...a)}catch{return!1}},Nk=s=>{s=te.merge.call({skipUndefined:!0},bk,s);const{fetch:a,Request:l,Response:i}=s,c=a?Zc(a):typeof fetch=="function",d=Zc(l),m=Zc(i);if(!c)return!1;const h=c&&Zc(gj),p=c&&(typeof vj=="function"?(S=>C=>S.encode(C))(new vj):async S=>new Uint8Array(await new l(S).arrayBuffer())),v=d&&h&&jj(()=>{let S=!1;const C=new l(Ss.origin,{body:new gj,method:"POST",get duplex(){return S=!0,"half"}}).headers.has("Content-Type");return S&&!C}),g=m&&h&&jj(()=>te.isReadableStream(new i("").body)),j={stream:g&&(S=>S.body)};c&&["text","arrayBuffer","blob","formData","stream"].forEach(S=>{!j[S]&&(j[S]=(C,N)=>{let T=C&&C[S];if(T)return T.call(C);throw new qe(`Response type '${S}' is not supported`,qe.ERR_NOT_SUPPORT,N)})});const b=async S=>{if(S==null)return 0;if(te.isBlob(S))return S.size;if(te.isSpecCompliantForm(S))return(await new l(Ss.origin,{method:"POST",body:S}).arrayBuffer()).byteLength;if(te.isArrayBufferView(S)||te.isArrayBuffer(S))return S.byteLength;if(te.isURLSearchParams(S)&&(S=S+""),te.isString(S))return(await p(S)).byteLength},w=async(S,C)=>{const N=te.toFiniteNumber(S.getContentLength());return N??b(C)};return async S=>{let{url:C,method:N,data:T,signal:P,cancelToken:M,timeout:k,onDownloadProgress:D,onUploadProgress:A,responseType:E,headers:B,withCredentials:Y="same-origin",fetchOptions:G}=Zy(S),$=a||fetch;E=E?(E+"").toLowerCase():"text";let oe=gk([P,M&&M.toAbortSignal()],k),je=null;const ae=oe&&oe.unsubscribe&&(()=>{oe.unsubscribe()});let me;try{if(A&&v&&N!=="get"&&N!=="head"&&(me=await w(B,T))!==0){let xe=new l(C,{method:"POST",body:T,duplex:"half"}),F;if(te.isFormData(T)&&(F=xe.headers.get("content-type"))&&B.setContentType(F),xe.body){const[W,fe]=mj(me,gd(fj(A)));T=xj(xe.body,pj,W,fe)}}te.isString(Y)||(Y=Y?"include":"omit");const R=d&&"credentials"in l.prototype,O={...G,signal:oe,method:N.toUpperCase(),headers:B.normalize().toJSON(),body:T,duplex:"half",credentials:R?Y:void 0};je=d&&new l(C,O);let L=await(d?$(je,G):$(C,O));const ee=g&&(E==="stream"||E==="response");if(g&&(D||ee&&ae)){const xe={};["status","statusText","headers"].forEach(I=>{xe[I]=L[I]});const F=te.toFiniteNumber(L.headers.get("content-length")),[W,fe]=D&&mj(F,gd(fj(D),!0))||[];L=new i(xj(L.body,pj,W,()=>{fe&&fe(),ae&&ae()}),xe)}E=E||"text";let le=await j[te.findKey(j,E)||"text"](L,S);return!ee&&ae&&ae(),await new Promise((xe,F)=>{Ky(xe,F,{data:le,headers:Vs.from(L.headers),status:L.status,statusText:L.statusText,config:S,request:je})})}catch(R){throw ae&&ae(),R&&R.name==="TypeError"&&/Load failed|fetch/i.test(R.message)?Object.assign(new qe("Network Error",qe.ERR_NETWORK,S,je),{cause:R.cause||R}):qe.from(R,R&&R.code,S,je)}}},wk=new Map,Jy=s=>{let a=s&&s.env||{};const{fetch:l,Request:i,Response:c}=a,d=[i,c,l];let m=d.length,h=m,p,v,g=wk;for(;h--;)p=d[h],v=g.get(p),v===void 0&&g.set(p,v=h?new Map:Nk(a)),g=v;return v};Jy();const wh={http:HC,xhr:pk,fetch:{get:Jy}};te.forEach(wh,(s,a)=>{if(s){try{Object.defineProperty(s,"name",{value:a})}catch{}Object.defineProperty(s,"adapterName",{value:a})}});const yj=s=>`- ${s}`,Sk=s=>te.isFunction(s)||s===null||s===!1;function _k(s,a){s=te.isArray(s)?s:[s];const{length:l}=s;let i,c;const d={};for(let m=0;m`adapter ${p} `+(v===!1?"is not supported by the environment":"is not available in the build"));let h=l?m.length>1?`since : -`+m.map(yj).join(` -`):" "+yj(m[0]):"as no adapter specified";throw new qe("There is no suitable adapter to dispatch the request "+h,"ERR_NOT_SUPPORT")}return c}const eb={getAdapter:_k,adapters:wh};function gf(s){if(s.cancelToken&&s.cancelToken.throwIfRequested(),s.signal&&s.signal.aborted)throw new Kr(null,s)}function bj(s){return gf(s),s.headers=Vs.from(s.headers),s.data=pf.call(s,s.transformRequest),["post","put","patch"].indexOf(s.method)!==-1&&s.headers.setContentType("application/x-www-form-urlencoded",!1),eb.getAdapter(s.adapter||wo.adapter,s)(s).then(function(i){return gf(s),i.data=pf.call(s,s.transformResponse,i),i.headers=Vs.from(i.headers),i},function(i){return Xy(i)||(gf(s),i&&i.response&&(i.response.data=pf.call(s,s.transformResponse,i.response),i.response.headers=Vs.from(i.response.headers))),Promise.reject(i)})}const tb="1.13.2",zd={};["object","boolean","number","function","string","symbol"].forEach((s,a)=>{zd[s]=function(i){return typeof i===s||"a"+(a<1?"n ":" ")+s}});const Nj={};zd.transitional=function(a,l,i){function c(d,m){return"[Axios v"+tb+"] Transitional option '"+d+"'"+m+(i?". "+i:"")}return(d,m,h)=>{if(a===!1)throw new qe(c(m," has been removed"+(l?" in "+l:"")),qe.ERR_DEPRECATED);return l&&!Nj[m]&&(Nj[m]=!0,console.warn(c(m," has been deprecated since v"+l+" and will be removed in the near future"))),a?a(d,m,h):!0}};zd.spelling=function(a){return(l,i)=>(console.warn(`${i} is likely a misspelling of ${a}`),!0)};function Ck(s,a,l){if(typeof s!="object")throw new qe("options must be an object",qe.ERR_BAD_OPTION_VALUE);const i=Object.keys(s);let c=i.length;for(;c-- >0;){const d=i[c],m=a[d];if(m){const h=s[d],p=h===void 0||m(h,d,s);if(p!==!0)throw new qe("option "+d+" must be "+p,qe.ERR_BAD_OPTION_VALUE);continue}if(l!==!0)throw new qe("Unknown option "+d,qe.ERR_BAD_OPTION)}}const cd={assertOptions:Ck,validators:zd},Bn=cd.validators;let kl=class{constructor(a){this.defaults=a||{},this.interceptors={request:new dj,response:new dj}}async request(a,l){try{return await this._request(a,l)}catch(i){if(i instanceof Error){let c={};Error.captureStackTrace?Error.captureStackTrace(c):c=new Error;const d=c.stack?c.stack.replace(/^.+\n/,""):"";try{i.stack?d&&!String(i.stack).endsWith(d.replace(/^.+\n.+\n/,""))&&(i.stack+=` -`+d):i.stack=d}catch{}}throw i}}_request(a,l){typeof a=="string"?(l=l||{},l.url=a):l=a||{},l=El(this.defaults,l);const{transitional:i,paramsSerializer:c,headers:d}=l;i!==void 0&&cd.assertOptions(i,{silentJSONParsing:Bn.transitional(Bn.boolean),forcedJSONParsing:Bn.transitional(Bn.boolean),clarifyTimeoutError:Bn.transitional(Bn.boolean)},!1),c!=null&&(te.isFunction(c)?l.paramsSerializer={serialize:c}:cd.assertOptions(c,{encode:Bn.function,serialize:Bn.function},!0)),l.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?l.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:l.allowAbsoluteUrls=!0),cd.assertOptions(l,{baseUrl:Bn.spelling("baseURL"),withXsrfToken:Bn.spelling("withXSRFToken")},!0),l.method=(l.method||this.defaults.method||"get").toLowerCase();let m=d&&te.merge(d.common,d[l.method]);d&&te.forEach(["delete","get","head","post","put","patch","common"],S=>{delete d[S]}),l.headers=Vs.concat(m,d);const h=[];let p=!0;this.interceptors.request.forEach(function(C){typeof C.runWhen=="function"&&C.runWhen(l)===!1||(p=p&&C.synchronous,h.unshift(C.fulfilled,C.rejected))});const v=[];this.interceptors.response.forEach(function(C){v.push(C.fulfilled,C.rejected)});let g,j=0,b;if(!p){const S=[bj.bind(this),void 0];for(S.unshift(...h),S.push(...v),b=S.length,g=Promise.resolve(l);j{if(!i._listeners)return;let d=i._listeners.length;for(;d-- >0;)i._listeners[d](c);i._listeners=null}),this.promise.then=c=>{let d;const m=new Promise(h=>{i.subscribe(h),d=h}).then(c);return m.cancel=function(){i.unsubscribe(d)},m},a(function(d,m,h){i.reason||(i.reason=new Kr(d,m,h),l(i.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(a){if(this.reason){a(this.reason);return}this._listeners?this._listeners.push(a):this._listeners=[a]}unsubscribe(a){if(!this._listeners)return;const l=this._listeners.indexOf(a);l!==-1&&this._listeners.splice(l,1)}toAbortSignal(){const a=new AbortController,l=i=>{a.abort(i)};return this.subscribe(l),a.signal.unsubscribe=()=>this.unsubscribe(l),a.signal}static source(){let a;return{token:new sb(function(c){a=c}),cancel:a}}};function Tk(s){return function(l){return s.apply(null,l)}}function Ek(s){return te.isObject(s)&&s.isAxiosError===!0}const Yf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Yf).forEach(([s,a])=>{Yf[a]=s});function nb(s){const a=new kl(s),l=Ry(kl.prototype.request,a);return te.extend(l,kl.prototype,a,{allOwnKeys:!0}),te.extend(l,a,null,{allOwnKeys:!0}),l.create=function(c){return nb(El(s,c))},l}const $t=nb(wo);$t.Axios=kl;$t.CanceledError=Kr;$t.CancelToken=kk;$t.isCancel=Xy;$t.VERSION=tb;$t.toFormData=Rd;$t.AxiosError=qe;$t.Cancel=$t.CanceledError;$t.all=function(a){return Promise.all(a)};$t.spread=Tk;$t.isAxiosError=Ek;$t.mergeConfig=El;$t.AxiosHeaders=Vs;$t.formToJSON=s=>Wy(te.isHTMLForm(s)?new FormData(s):s);$t.getAdapter=eb.getAdapter;$t.HttpStatusCode=Yf;$t.default=$t;const{Axios:c6,AxiosError:d6,CanceledError:u6,isCancel:m6,CancelToken:f6,VERSION:h6,all:x6,Cancel:p6,isAxiosError:g6,spread:v6,toFormData:j6,AxiosHeaders:y6,HttpStatusCode:b6,formToJSON:N6,getAdapter:w6,mergeConfig:S6}=$t,Mk=(s,a)=>{const l=new Array(s.length+a.length);for(let i=0;i({classGroupId:s,validator:a}),ab=(s=new Map,a=null,l)=>({nextPart:s,validators:a,classGroupId:l}),vd="-",wj=[],Ok="arbitrary..",Ak=s=>{const a=zk(s),{conflictingClassGroups:l,conflictingClassGroupModifiers:i}=s;return{getClassGroupId:m=>{if(m.startsWith("[")&&m.endsWith("]"))return Rk(m);const h=m.split(vd),p=h[0]===""&&h.length>1?1:0;return lb(h,p,a)},getConflictingClassGroupIds:(m,h)=>{if(h){const p=i[m],v=l[m];return p?v?Mk(v,p):p:v||wj}return l[m]||wj}}},lb=(s,a,l)=>{if(s.length-a===0)return l.classGroupId;const c=s[a],d=l.nextPart.get(c);if(d){const v=lb(s,a+1,d);if(v)return v}const m=l.validators;if(m===null)return;const h=a===0?s.join(vd):s.slice(a).join(vd),p=m.length;for(let v=0;vs.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const a=s.slice(1,-1),l=a.indexOf(":"),i=a.slice(0,l);return i?Ok+i:void 0})(),zk=s=>{const{theme:a,classGroups:l}=s;return Pk(l,a)},Pk=(s,a)=>{const l=ab();for(const i in s){const c=s[i];Sh(c,l,i,a)}return l},Sh=(s,a,l,i)=>{const c=s.length;for(let d=0;d{if(typeof s=="string"){Bk(s,a,l);return}if(typeof s=="function"){Uk(s,a,l,i);return}Hk(s,a,l,i)},Bk=(s,a,l)=>{const i=s===""?a:rb(a,s);i.classGroupId=l},Uk=(s,a,l,i)=>{if(Fk(s)){Sh(s(i),a,l,i);return}a.validators===null&&(a.validators=[]),a.validators.push(Dk(l,s))},Hk=(s,a,l,i)=>{const c=Object.entries(s),d=c.length;for(let m=0;m{let l=s;const i=a.split(vd),c=i.length;for(let d=0;d"isThemeGetter"in s&&s.isThemeGetter===!0,Yk=s=>{if(s<1)return{get:()=>{},set:()=>{}};let a=0,l=Object.create(null),i=Object.create(null);const c=(d,m)=>{l[d]=m,a++,a>s&&(a=0,i=l,l=Object.create(null))};return{get(d){let m=l[d];if(m!==void 0)return m;if((m=i[d])!==void 0)return c(d,m),m},set(d,m){d in l?l[d]=m:c(d,m)}}},qf="!",Sj=":",qk=[],_j=(s,a,l,i,c)=>({modifiers:s,hasImportantModifier:a,baseClassName:l,maybePostfixModifierPosition:i,isExternal:c}),Vk=s=>{const{prefix:a,experimentalParseClassName:l}=s;let i=c=>{const d=[];let m=0,h=0,p=0,v;const g=c.length;for(let C=0;Cp?v-p:void 0;return _j(d,w,b,S)};if(a){const c=a+Sj,d=i;i=m=>m.startsWith(c)?d(m.slice(c.length)):_j(qk,!1,m,void 0,!0)}if(l){const c=i;i=d=>l({className:d,parseClassName:c})}return i},Gk=s=>{const a=new Map;return s.orderSensitiveModifiers.forEach((l,i)=>{a.set(l,1e6+i)}),l=>{const i=[];let c=[];for(let d=0;d0&&(c.sort(),i.push(...c),c=[]),i.push(m)):c.push(m)}return c.length>0&&(c.sort(),i.push(...c)),i}},$k=s=>({cache:Yk(s.cacheSize),parseClassName:Vk(s),sortModifiers:Gk(s),...Ak(s)}),Ik=/\s+/,Wk=(s,a)=>{const{parseClassName:l,getClassGroupId:i,getConflictingClassGroupIds:c,sortModifiers:d}=a,m=[],h=s.trim().split(Ik);let p="";for(let v=h.length-1;v>=0;v-=1){const g=h[v],{isExternal:j,modifiers:b,hasImportantModifier:w,baseClassName:S,maybePostfixModifierPosition:C}=l(g);if(j){p=g+(p.length>0?" "+p:p);continue}let N=!!C,T=i(N?S.substring(0,C):S);if(!T){if(!N){p=g+(p.length>0?" "+p:p);continue}if(T=i(S),!T){p=g+(p.length>0?" "+p:p);continue}N=!1}const P=b.length===0?"":b.length===1?b[0]:d(b).join(":"),M=w?P+qf:P,k=M+T;if(m.indexOf(k)>-1)continue;m.push(k);const D=c(T,N);for(let A=0;A0?" "+p:p)}return p},Xk=(...s)=>{let a=0,l,i,c="";for(;a{if(typeof s=="string")return s;let a,l="";for(let i=0;i{let l,i,c,d;const m=p=>{const v=a.reduce((g,j)=>j(g),s());return l=$k(v),i=l.cache.get,c=l.cache.set,d=h,h(p)},h=p=>{const v=i(p);if(v)return v;const g=Wk(p,l);return c(p,g),g};return d=m,(...p)=>d(Xk(...p))},Qk=[],rs=s=>{const a=l=>l[s]||Qk;return a.isThemeGetter=!0,a},ob=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,cb=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Zk=/^\d+\/\d+$/,Jk=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,eT=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,tT=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,sT=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,nT=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Tr=s=>Zk.test(s),Ke=s=>!!s&&!Number.isNaN(Number(s)),qa=s=>!!s&&Number.isInteger(Number(s)),vf=s=>s.endsWith("%")&&Ke(s.slice(0,-1)),ua=s=>Jk.test(s),aT=()=>!0,lT=s=>eT.test(s)&&!tT.test(s),db=()=>!1,rT=s=>sT.test(s),iT=s=>nT.test(s),oT=s=>!Se(s)&&!_e(s),cT=s=>Qr(s,fb,db),Se=s=>ob.test(s),bl=s=>Qr(s,hb,lT),jf=s=>Qr(s,hT,Ke),Cj=s=>Qr(s,ub,db),dT=s=>Qr(s,mb,iT),Jc=s=>Qr(s,xb,rT),_e=s=>cb.test(s),Ki=s=>Zr(s,hb),uT=s=>Zr(s,xT),kj=s=>Zr(s,ub),mT=s=>Zr(s,fb),fT=s=>Zr(s,mb),ed=s=>Zr(s,xb,!0),Qr=(s,a,l)=>{const i=ob.exec(s);return i?i[1]?a(i[1]):l(i[2]):!1},Zr=(s,a,l=!1)=>{const i=cb.exec(s);return i?i[1]?a(i[1]):l:!1},ub=s=>s==="position"||s==="percentage",mb=s=>s==="image"||s==="url",fb=s=>s==="length"||s==="size"||s==="bg-size",hb=s=>s==="length",hT=s=>s==="number",xT=s=>s==="family-name",xb=s=>s==="shadow",pT=()=>{const s=rs("color"),a=rs("font"),l=rs("text"),i=rs("font-weight"),c=rs("tracking"),d=rs("leading"),m=rs("breakpoint"),h=rs("container"),p=rs("spacing"),v=rs("radius"),g=rs("shadow"),j=rs("inset-shadow"),b=rs("text-shadow"),w=rs("drop-shadow"),S=rs("blur"),C=rs("perspective"),N=rs("aspect"),T=rs("ease"),P=rs("animate"),M=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],D=()=>[...k(),_e,Se],A=()=>["auto","hidden","clip","visible","scroll"],E=()=>["auto","contain","none"],B=()=>[_e,Se,p],Y=()=>[Tr,"full","auto",...B()],G=()=>[qa,"none","subgrid",_e,Se],$=()=>["auto",{span:["full",qa,_e,Se]},qa,_e,Se],oe=()=>[qa,"auto",_e,Se],je=()=>["auto","min","max","fr",_e,Se],ae=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],me=()=>["start","end","center","stretch","center-safe","end-safe"],R=()=>["auto",...B()],O=()=>[Tr,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...B()],L=()=>[s,_e,Se],ee=()=>[...k(),kj,Cj,{position:[_e,Se]}],le=()=>["no-repeat",{repeat:["","x","y","space","round"]}],xe=()=>["auto","cover","contain",mT,cT,{size:[_e,Se]}],F=()=>[vf,Ki,bl],W=()=>["","none","full",v,_e,Se],fe=()=>["",Ke,Ki,bl],I=()=>["solid","dashed","dotted","double"],ve=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],de=()=>[Ke,vf,kj,Cj],Ce=()=>["","none",S,_e,Se],Q=()=>["none",Ke,_e,Se],Oe=()=>["none",Ke,_e,Se],$e=()=>[Ke,_e,Se],re=()=>[Tr,"full",...B()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ua],breakpoint:[ua],color:[aT],container:[ua],"drop-shadow":[ua],ease:["in","out","in-out"],font:[oT],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ua],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ua],shadow:[ua],spacing:["px",Ke],text:[ua],"text-shadow":[ua],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Tr,Se,_e,N]}],container:["container"],columns:[{columns:[Ke,Se,_e,h]}],"break-after":[{"break-after":M()}],"break-before":[{"break-before":M()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:D()}],overflow:[{overflow:A()}],"overflow-x":[{"overflow-x":A()}],"overflow-y":[{"overflow-y":A()}],overscroll:[{overscroll:E()}],"overscroll-x":[{"overscroll-x":E()}],"overscroll-y":[{"overscroll-y":E()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:Y()}],"inset-x":[{"inset-x":Y()}],"inset-y":[{"inset-y":Y()}],start:[{start:Y()}],end:[{end:Y()}],top:[{top:Y()}],right:[{right:Y()}],bottom:[{bottom:Y()}],left:[{left:Y()}],visibility:["visible","invisible","collapse"],z:[{z:[qa,"auto",_e,Se]}],basis:[{basis:[Tr,"full","auto",h,...B()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[Ke,Tr,"auto","initial","none",Se]}],grow:[{grow:["",Ke,_e,Se]}],shrink:[{shrink:["",Ke,_e,Se]}],order:[{order:[qa,"first","last","none",_e,Se]}],"grid-cols":[{"grid-cols":G()}],"col-start-end":[{col:$()}],"col-start":[{"col-start":oe()}],"col-end":[{"col-end":oe()}],"grid-rows":[{"grid-rows":G()}],"row-start-end":[{row:$()}],"row-start":[{"row-start":oe()}],"row-end":[{"row-end":oe()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":je()}],"auto-rows":[{"auto-rows":je()}],gap:[{gap:B()}],"gap-x":[{"gap-x":B()}],"gap-y":[{"gap-y":B()}],"justify-content":[{justify:[...ae(),"normal"]}],"justify-items":[{"justify-items":[...me(),"normal"]}],"justify-self":[{"justify-self":["auto",...me()]}],"align-content":[{content:["normal",...ae()]}],"align-items":[{items:[...me(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...me(),{baseline:["","last"]}]}],"place-content":[{"place-content":ae()}],"place-items":[{"place-items":[...me(),"baseline"]}],"place-self":[{"place-self":["auto",...me()]}],p:[{p:B()}],px:[{px:B()}],py:[{py:B()}],ps:[{ps:B()}],pe:[{pe:B()}],pt:[{pt:B()}],pr:[{pr:B()}],pb:[{pb:B()}],pl:[{pl:B()}],m:[{m:R()}],mx:[{mx:R()}],my:[{my:R()}],ms:[{ms:R()}],me:[{me:R()}],mt:[{mt:R()}],mr:[{mr:R()}],mb:[{mb:R()}],ml:[{ml:R()}],"space-x":[{"space-x":B()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":B()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],w:[{w:[h,"screen",...O()]}],"min-w":[{"min-w":[h,"screen","none",...O()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[m]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",l,Ki,bl]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[i,_e,jf]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",vf,Se]}],"font-family":[{font:[uT,Se,a]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[c,_e,Se]}],"line-clamp":[{"line-clamp":[Ke,"none",_e,jf]}],leading:[{leading:[d,...B()]}],"list-image":[{"list-image":["none",_e,Se]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",_e,Se]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:L()}],"text-color":[{text:L()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...I(),"wavy"]}],"text-decoration-thickness":[{decoration:[Ke,"from-font","auto",_e,bl]}],"text-decoration-color":[{decoration:L()}],"underline-offset":[{"underline-offset":[Ke,"auto",_e,Se]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:B()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",_e,Se]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",_e,Se]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ee()}],"bg-repeat":[{bg:le()}],"bg-size":[{bg:xe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},qa,_e,Se],radial:["",_e,Se],conic:[qa,_e,Se]},fT,dT]}],"bg-color":[{bg:L()}],"gradient-from-pos":[{from:F()}],"gradient-via-pos":[{via:F()}],"gradient-to-pos":[{to:F()}],"gradient-from":[{from:L()}],"gradient-via":[{via:L()}],"gradient-to":[{to:L()}],rounded:[{rounded:W()}],"rounded-s":[{"rounded-s":W()}],"rounded-e":[{"rounded-e":W()}],"rounded-t":[{"rounded-t":W()}],"rounded-r":[{"rounded-r":W()}],"rounded-b":[{"rounded-b":W()}],"rounded-l":[{"rounded-l":W()}],"rounded-ss":[{"rounded-ss":W()}],"rounded-se":[{"rounded-se":W()}],"rounded-ee":[{"rounded-ee":W()}],"rounded-es":[{"rounded-es":W()}],"rounded-tl":[{"rounded-tl":W()}],"rounded-tr":[{"rounded-tr":W()}],"rounded-br":[{"rounded-br":W()}],"rounded-bl":[{"rounded-bl":W()}],"border-w":[{border:fe()}],"border-w-x":[{"border-x":fe()}],"border-w-y":[{"border-y":fe()}],"border-w-s":[{"border-s":fe()}],"border-w-e":[{"border-e":fe()}],"border-w-t":[{"border-t":fe()}],"border-w-r":[{"border-r":fe()}],"border-w-b":[{"border-b":fe()}],"border-w-l":[{"border-l":fe()}],"divide-x":[{"divide-x":fe()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":fe()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...I(),"hidden","none"]}],"divide-style":[{divide:[...I(),"hidden","none"]}],"border-color":[{border:L()}],"border-color-x":[{"border-x":L()}],"border-color-y":[{"border-y":L()}],"border-color-s":[{"border-s":L()}],"border-color-e":[{"border-e":L()}],"border-color-t":[{"border-t":L()}],"border-color-r":[{"border-r":L()}],"border-color-b":[{"border-b":L()}],"border-color-l":[{"border-l":L()}],"divide-color":[{divide:L()}],"outline-style":[{outline:[...I(),"none","hidden"]}],"outline-offset":[{"outline-offset":[Ke,_e,Se]}],"outline-w":[{outline:["",Ke,Ki,bl]}],"outline-color":[{outline:L()}],shadow:[{shadow:["","none",g,ed,Jc]}],"shadow-color":[{shadow:L()}],"inset-shadow":[{"inset-shadow":["none",j,ed,Jc]}],"inset-shadow-color":[{"inset-shadow":L()}],"ring-w":[{ring:fe()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:L()}],"ring-offset-w":[{"ring-offset":[Ke,bl]}],"ring-offset-color":[{"ring-offset":L()}],"inset-ring-w":[{"inset-ring":fe()}],"inset-ring-color":[{"inset-ring":L()}],"text-shadow":[{"text-shadow":["none",b,ed,Jc]}],"text-shadow-color":[{"text-shadow":L()}],opacity:[{opacity:[Ke,_e,Se]}],"mix-blend":[{"mix-blend":[...ve(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ve()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[Ke]}],"mask-image-linear-from-pos":[{"mask-linear-from":de()}],"mask-image-linear-to-pos":[{"mask-linear-to":de()}],"mask-image-linear-from-color":[{"mask-linear-from":L()}],"mask-image-linear-to-color":[{"mask-linear-to":L()}],"mask-image-t-from-pos":[{"mask-t-from":de()}],"mask-image-t-to-pos":[{"mask-t-to":de()}],"mask-image-t-from-color":[{"mask-t-from":L()}],"mask-image-t-to-color":[{"mask-t-to":L()}],"mask-image-r-from-pos":[{"mask-r-from":de()}],"mask-image-r-to-pos":[{"mask-r-to":de()}],"mask-image-r-from-color":[{"mask-r-from":L()}],"mask-image-r-to-color":[{"mask-r-to":L()}],"mask-image-b-from-pos":[{"mask-b-from":de()}],"mask-image-b-to-pos":[{"mask-b-to":de()}],"mask-image-b-from-color":[{"mask-b-from":L()}],"mask-image-b-to-color":[{"mask-b-to":L()}],"mask-image-l-from-pos":[{"mask-l-from":de()}],"mask-image-l-to-pos":[{"mask-l-to":de()}],"mask-image-l-from-color":[{"mask-l-from":L()}],"mask-image-l-to-color":[{"mask-l-to":L()}],"mask-image-x-from-pos":[{"mask-x-from":de()}],"mask-image-x-to-pos":[{"mask-x-to":de()}],"mask-image-x-from-color":[{"mask-x-from":L()}],"mask-image-x-to-color":[{"mask-x-to":L()}],"mask-image-y-from-pos":[{"mask-y-from":de()}],"mask-image-y-to-pos":[{"mask-y-to":de()}],"mask-image-y-from-color":[{"mask-y-from":L()}],"mask-image-y-to-color":[{"mask-y-to":L()}],"mask-image-radial":[{"mask-radial":[_e,Se]}],"mask-image-radial-from-pos":[{"mask-radial-from":de()}],"mask-image-radial-to-pos":[{"mask-radial-to":de()}],"mask-image-radial-from-color":[{"mask-radial-from":L()}],"mask-image-radial-to-color":[{"mask-radial-to":L()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":k()}],"mask-image-conic-pos":[{"mask-conic":[Ke]}],"mask-image-conic-from-pos":[{"mask-conic-from":de()}],"mask-image-conic-to-pos":[{"mask-conic-to":de()}],"mask-image-conic-from-color":[{"mask-conic-from":L()}],"mask-image-conic-to-color":[{"mask-conic-to":L()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ee()}],"mask-repeat":[{mask:le()}],"mask-size":[{mask:xe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",_e,Se]}],filter:[{filter:["","none",_e,Se]}],blur:[{blur:Ce()}],brightness:[{brightness:[Ke,_e,Se]}],contrast:[{contrast:[Ke,_e,Se]}],"drop-shadow":[{"drop-shadow":["","none",w,ed,Jc]}],"drop-shadow-color":[{"drop-shadow":L()}],grayscale:[{grayscale:["",Ke,_e,Se]}],"hue-rotate":[{"hue-rotate":[Ke,_e,Se]}],invert:[{invert:["",Ke,_e,Se]}],saturate:[{saturate:[Ke,_e,Se]}],sepia:[{sepia:["",Ke,_e,Se]}],"backdrop-filter":[{"backdrop-filter":["","none",_e,Se]}],"backdrop-blur":[{"backdrop-blur":Ce()}],"backdrop-brightness":[{"backdrop-brightness":[Ke,_e,Se]}],"backdrop-contrast":[{"backdrop-contrast":[Ke,_e,Se]}],"backdrop-grayscale":[{"backdrop-grayscale":["",Ke,_e,Se]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[Ke,_e,Se]}],"backdrop-invert":[{"backdrop-invert":["",Ke,_e,Se]}],"backdrop-opacity":[{"backdrop-opacity":[Ke,_e,Se]}],"backdrop-saturate":[{"backdrop-saturate":[Ke,_e,Se]}],"backdrop-sepia":[{"backdrop-sepia":["",Ke,_e,Se]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":B()}],"border-spacing-x":[{"border-spacing-x":B()}],"border-spacing-y":[{"border-spacing-y":B()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",_e,Se]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[Ke,"initial",_e,Se]}],ease:[{ease:["linear","initial",T,_e,Se]}],delay:[{delay:[Ke,_e,Se]}],animate:[{animate:["none",P,_e,Se]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,_e,Se]}],"perspective-origin":[{"perspective-origin":D()}],rotate:[{rotate:Q()}],"rotate-x":[{"rotate-x":Q()}],"rotate-y":[{"rotate-y":Q()}],"rotate-z":[{"rotate-z":Q()}],scale:[{scale:Oe()}],"scale-x":[{"scale-x":Oe()}],"scale-y":[{"scale-y":Oe()}],"scale-z":[{"scale-z":Oe()}],"scale-3d":["scale-3d"],skew:[{skew:$e()}],"skew-x":[{"skew-x":$e()}],"skew-y":[{"skew-y":$e()}],transform:[{transform:[_e,Se,"","none","gpu","cpu"]}],"transform-origin":[{origin:D()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:re()}],"translate-x":[{"translate-x":re()}],"translate-y":[{"translate-y":re()}],"translate-z":[{"translate-z":re()}],"translate-none":["translate-none"],accent:[{accent:L()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:L()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",_e,Se]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":B()}],"scroll-mx":[{"scroll-mx":B()}],"scroll-my":[{"scroll-my":B()}],"scroll-ms":[{"scroll-ms":B()}],"scroll-me":[{"scroll-me":B()}],"scroll-mt":[{"scroll-mt":B()}],"scroll-mr":[{"scroll-mr":B()}],"scroll-mb":[{"scroll-mb":B()}],"scroll-ml":[{"scroll-ml":B()}],"scroll-p":[{"scroll-p":B()}],"scroll-px":[{"scroll-px":B()}],"scroll-py":[{"scroll-py":B()}],"scroll-ps":[{"scroll-ps":B()}],"scroll-pe":[{"scroll-pe":B()}],"scroll-pt":[{"scroll-pt":B()}],"scroll-pr":[{"scroll-pr":B()}],"scroll-pb":[{"scroll-pb":B()}],"scroll-pl":[{"scroll-pl":B()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",_e,Se]}],fill:[{fill:["none",...L()]}],"stroke-w":[{stroke:[Ke,Ki,bl,jf]}],stroke:[{stroke:["none",...L()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},gT=Kk(pT);function Z(...s){return gT(iy(s))}const Ue=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("rounded-xl border bg-card text-card-foreground shadow",s),...a}));Ue.displayName="Card";const ot=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("flex flex-col space-y-1.5 p-6",s),...a}));ot.displayName="CardHeader";const ct=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("font-semibold leading-none tracking-tight",s),...a}));ct.displayName="CardTitle";const us=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("text-sm text-muted-foreground",s),...a}));us.displayName="CardDescription";const gt=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("p-6 pt-0",s),...a}));gt.displayName="CardContent";const pb=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("flex items-center p-6 pt-0",s),...a}));pb.displayName="CardFooter";var yf="rovingFocusGroup.onEntryFocus",vT={bubbles:!1,cancelable:!0},So="RovingFocusGroup",[Vf,gb,jT]=_d(So),[yT,Pd]=Dn(So,[jT]),[bT,NT]=yT(So),vb=x.forwardRef((s,a)=>e.jsx(Vf.Provider,{scope:s.__scopeRovingFocusGroup,children:e.jsx(Vf.Slot,{scope:s.__scopeRovingFocusGroup,children:e.jsx(wT,{...s,ref:a})})}));vb.displayName=So;var wT=x.forwardRef((s,a)=>{const{__scopeRovingFocusGroup:l,orientation:i,loop:c=!1,dir:d,currentTabStopId:m,defaultCurrentTabStopId:h,onCurrentTabStopIdChange:p,onEntryFocus:v,preventScrollOnEntryFocus:g=!1,...j}=s,b=x.useRef(null),w=Tt(a,b),S=xo(d),[C,N]=Qa({prop:m,defaultProp:h??null,onChange:p,caller:So}),[T,P]=x.useState(!1),M=ws(v),k=gb(l),D=x.useRef(!1),[A,E]=x.useState(0);return x.useEffect(()=>{const B=b.current;if(B)return B.addEventListener(yf,M),()=>B.removeEventListener(yf,M)},[M]),e.jsx(bT,{scope:l,orientation:i,dir:S,loop:c,currentTabStopId:C,onItemFocus:x.useCallback(B=>N(B),[N]),onItemShiftTab:x.useCallback(()=>P(!0),[]),onFocusableItemAdd:x.useCallback(()=>E(B=>B+1),[]),onFocusableItemRemove:x.useCallback(()=>E(B=>B-1),[]),children:e.jsx(dt.div,{tabIndex:T||A===0?-1:0,"data-orientation":i,...j,ref:w,style:{outline:"none",...s.style},onMouseDown:be(s.onMouseDown,()=>{D.current=!0}),onFocus:be(s.onFocus,B=>{const Y=!D.current;if(B.target===B.currentTarget&&Y&&!T){const G=new CustomEvent(yf,vT);if(B.currentTarget.dispatchEvent(G),!G.defaultPrevented){const $=k().filter(R=>R.focusable),oe=$.find(R=>R.active),je=$.find(R=>R.id===C),me=[oe,je,...$].filter(Boolean).map(R=>R.ref.current);bb(me,g)}}D.current=!1}),onBlur:be(s.onBlur,()=>P(!1))})})}),jb="RovingFocusGroupItem",yb=x.forwardRef((s,a)=>{const{__scopeRovingFocusGroup:l,focusable:i=!0,active:c=!1,tabStopId:d,children:m,...h}=s,p=jn(),v=d||p,g=NT(jb,l),j=g.currentTabStopId===v,b=gb(l),{onFocusableItemAdd:w,onFocusableItemRemove:S,currentTabStopId:C}=g;return x.useEffect(()=>{if(i)return w(),()=>S()},[i,w,S]),e.jsx(Vf.ItemSlot,{scope:l,id:v,focusable:i,active:c,children:e.jsx(dt.span,{tabIndex:j?0:-1,"data-orientation":g.orientation,...h,ref:a,onMouseDown:be(s.onMouseDown,N=>{i?g.onItemFocus(v):N.preventDefault()}),onFocus:be(s.onFocus,()=>g.onItemFocus(v)),onKeyDown:be(s.onKeyDown,N=>{if(N.key==="Tab"&&N.shiftKey){g.onItemShiftTab();return}if(N.target!==N.currentTarget)return;const T=CT(N,g.orientation,g.dir);if(T!==void 0){if(N.metaKey||N.ctrlKey||N.altKey||N.shiftKey)return;N.preventDefault();let M=b().filter(k=>k.focusable).map(k=>k.ref.current);if(T==="last")M.reverse();else if(T==="prev"||T==="next"){T==="prev"&&M.reverse();const k=M.indexOf(N.currentTarget);M=g.loop?kT(M,k+1):M.slice(k+1)}setTimeout(()=>bb(M))}}),children:typeof m=="function"?m({isCurrentTabStop:j,hasTabStop:C!=null}):m})})});yb.displayName=jb;var ST={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function _T(s,a){return a!=="rtl"?s:s==="ArrowLeft"?"ArrowRight":s==="ArrowRight"?"ArrowLeft":s}function CT(s,a,l){const i=_T(s.key,l);if(!(a==="vertical"&&["ArrowLeft","ArrowRight"].includes(i))&&!(a==="horizontal"&&["ArrowUp","ArrowDown"].includes(i)))return ST[i]}function bb(s,a=!1){const l=document.activeElement;for(const i of s)if(i===l||(i.focus({preventScroll:a}),document.activeElement!==l))return}function kT(s,a){return s.map((l,i)=>s[(a+i)%s.length])}var Nb=vb,wb=yb,Ld="Tabs",[TT]=Dn(Ld,[Pd]),Sb=Pd(),[ET,_h]=TT(Ld),_b=x.forwardRef((s,a)=>{const{__scopeTabs:l,value:i,onValueChange:c,defaultValue:d,orientation:m="horizontal",dir:h,activationMode:p="automatic",...v}=s,g=xo(h),[j,b]=Qa({prop:i,onChange:c,defaultProp:d??"",caller:Ld});return e.jsx(ET,{scope:l,baseId:jn(),value:j,onValueChange:b,orientation:m,dir:g,activationMode:p,children:e.jsx(dt.div,{dir:g,"data-orientation":m,...v,ref:a})})});_b.displayName=Ld;var Cb="TabsList",kb=x.forwardRef((s,a)=>{const{__scopeTabs:l,loop:i=!0,...c}=s,d=_h(Cb,l),m=Sb(l);return e.jsx(Nb,{asChild:!0,...m,orientation:d.orientation,dir:d.dir,loop:i,children:e.jsx(dt.div,{role:"tablist","aria-orientation":d.orientation,...c,ref:a})})});kb.displayName=Cb;var Tb="TabsTrigger",Eb=x.forwardRef((s,a)=>{const{__scopeTabs:l,value:i,disabled:c=!1,...d}=s,m=_h(Tb,l),h=Sb(l),p=Ob(m.baseId,i),v=Ab(m.baseId,i),g=i===m.value;return e.jsx(wb,{asChild:!0,...h,focusable:!c,active:g,children:e.jsx(dt.button,{type:"button",role:"tab","aria-selected":g,"aria-controls":v,"data-state":g?"active":"inactive","data-disabled":c?"":void 0,disabled:c,id:p,...d,ref:a,onMouseDown:be(s.onMouseDown,j=>{!c&&j.button===0&&j.ctrlKey===!1?m.onValueChange(i):j.preventDefault()}),onKeyDown:be(s.onKeyDown,j=>{[" ","Enter"].includes(j.key)&&m.onValueChange(i)}),onFocus:be(s.onFocus,()=>{const j=m.activationMode!=="manual";!g&&!c&&j&&m.onValueChange(i)})})})});Eb.displayName=Tb;var Mb="TabsContent",Db=x.forwardRef((s,a)=>{const{__scopeTabs:l,value:i,forceMount:c,children:d,...m}=s,h=_h(Mb,l),p=Ob(h.baseId,i),v=Ab(h.baseId,i),g=i===h.value,j=x.useRef(g);return x.useEffect(()=>{const b=requestAnimationFrame(()=>j.current=!1);return()=>cancelAnimationFrame(b)},[]),e.jsx(Is,{present:c||g,children:({present:b})=>e.jsx(dt.div,{"data-state":g?"active":"inactive","data-orientation":h.orientation,role:"tabpanel","aria-labelledby":p,hidden:!b,id:v,tabIndex:0,...m,ref:a,style:{...s.style,animationDuration:j.current?"0s":void 0},children:b&&d})})});Db.displayName=Mb;function Ob(s,a){return`${s}-trigger-${a}`}function Ab(s,a){return`${s}-content-${a}`}var MT=_b,Rb=kb,zb=Eb,Pb=Db;const Ml=MT,$a=x.forwardRef(({className:s,...a},l)=>e.jsx(Rb,{ref:l,className:Z("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",s),...a}));$a.displayName=Rb.displayName;const bt=x.forwardRef(({className:s,...a},l)=>e.jsx(zb,{ref:l,className:Z("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",s),...a}));bt.displayName=zb.displayName;const Vt=x.forwardRef(({className:s,...a},l)=>e.jsx(Pb,{ref:l,className:Z("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",s),...a}));Vt.displayName=Pb.displayName;function DT(s,a){return x.useReducer((l,i)=>a[l][i]??l,s)}var Ch="ScrollArea",[Lb]=Dn(Ch),[OT,bn]=Lb(Ch),Bb=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,type:i="hover",dir:c,scrollHideDelay:d=600,...m}=s,[h,p]=x.useState(null),[v,g]=x.useState(null),[j,b]=x.useState(null),[w,S]=x.useState(null),[C,N]=x.useState(null),[T,P]=x.useState(0),[M,k]=x.useState(0),[D,A]=x.useState(!1),[E,B]=x.useState(!1),Y=Tt(a,$=>p($)),G=xo(c);return e.jsx(OT,{scope:l,type:i,dir:G,scrollHideDelay:d,scrollArea:h,viewport:v,onViewportChange:g,content:j,onContentChange:b,scrollbarX:w,onScrollbarXChange:S,scrollbarXEnabled:D,onScrollbarXEnabledChange:A,scrollbarY:C,onScrollbarYChange:N,scrollbarYEnabled:E,onScrollbarYEnabledChange:B,onCornerWidthChange:P,onCornerHeightChange:k,children:e.jsx(dt.div,{dir:G,...m,ref:Y,style:{position:"relative","--radix-scroll-area-corner-width":T+"px","--radix-scroll-area-corner-height":M+"px",...s.style}})})});Bb.displayName=Ch;var Ub="ScrollAreaViewport",Hb=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,children:i,nonce:c,...d}=s,m=bn(Ub,l),h=x.useRef(null),p=Tt(a,h,m.onViewportChange);return e.jsxs(e.Fragment,{children:[e.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:c}),e.jsx(dt.div,{"data-radix-scroll-area-viewport":"",...d,ref:p,style:{overflowX:m.scrollbarXEnabled?"scroll":"hidden",overflowY:m.scrollbarYEnabled?"scroll":"hidden",...s.style},children:e.jsx("div",{ref:m.onContentChange,style:{minWidth:"100%",display:"table"},children:i})})]})});Hb.displayName=Ub;var Vn="ScrollAreaScrollbar",kh=x.forwardRef((s,a)=>{const{forceMount:l,...i}=s,c=bn(Vn,s.__scopeScrollArea),{onScrollbarXEnabledChange:d,onScrollbarYEnabledChange:m}=c,h=s.orientation==="horizontal";return x.useEffect(()=>(h?d(!0):m(!0),()=>{h?d(!1):m(!1)}),[h,d,m]),c.type==="hover"?e.jsx(AT,{...i,ref:a,forceMount:l}):c.type==="scroll"?e.jsx(RT,{...i,ref:a,forceMount:l}):c.type==="auto"?e.jsx(Fb,{...i,ref:a,forceMount:l}):c.type==="always"?e.jsx(Th,{...i,ref:a}):null});kh.displayName=Vn;var AT=x.forwardRef((s,a)=>{const{forceMount:l,...i}=s,c=bn(Vn,s.__scopeScrollArea),[d,m]=x.useState(!1);return x.useEffect(()=>{const h=c.scrollArea;let p=0;if(h){const v=()=>{window.clearTimeout(p),m(!0)},g=()=>{p=window.setTimeout(()=>m(!1),c.scrollHideDelay)};return h.addEventListener("pointerenter",v),h.addEventListener("pointerleave",g),()=>{window.clearTimeout(p),h.removeEventListener("pointerenter",v),h.removeEventListener("pointerleave",g)}}},[c.scrollArea,c.scrollHideDelay]),e.jsx(Is,{present:l||d,children:e.jsx(Fb,{"data-state":d?"visible":"hidden",...i,ref:a})})}),RT=x.forwardRef((s,a)=>{const{forceMount:l,...i}=s,c=bn(Vn,s.__scopeScrollArea),d=s.orientation==="horizontal",m=Ud(()=>p("SCROLL_END"),100),[h,p]=DT("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return x.useEffect(()=>{if(h==="idle"){const v=window.setTimeout(()=>p("HIDE"),c.scrollHideDelay);return()=>window.clearTimeout(v)}},[h,c.scrollHideDelay,p]),x.useEffect(()=>{const v=c.viewport,g=d?"scrollLeft":"scrollTop";if(v){let j=v[g];const b=()=>{const w=v[g];j!==w&&(p("SCROLL"),m()),j=w};return v.addEventListener("scroll",b),()=>v.removeEventListener("scroll",b)}},[c.viewport,d,p,m]),e.jsx(Is,{present:l||h!=="hidden",children:e.jsx(Th,{"data-state":h==="hidden"?"hidden":"visible",...i,ref:a,onPointerEnter:be(s.onPointerEnter,()=>p("POINTER_ENTER")),onPointerLeave:be(s.onPointerLeave,()=>p("POINTER_LEAVE"))})})}),Fb=x.forwardRef((s,a)=>{const l=bn(Vn,s.__scopeScrollArea),{forceMount:i,...c}=s,[d,m]=x.useState(!1),h=s.orientation==="horizontal",p=Ud(()=>{if(l.viewport){const v=l.viewport.offsetWidth{const{orientation:l="vertical",...i}=s,c=bn(Vn,s.__scopeScrollArea),d=x.useRef(null),m=x.useRef(0),[h,p]=x.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),v=$b(h.viewport,h.content),g={...i,sizes:h,onSizesChange:p,hasThumb:v>0&&v<1,onThumbChange:b=>d.current=b,onThumbPointerUp:()=>m.current=0,onThumbPointerDown:b=>m.current=b};function j(b,w){return HT(b,m.current,h,w)}return l==="horizontal"?e.jsx(zT,{...g,ref:a,onThumbPositionChange:()=>{if(c.viewport&&d.current){const b=c.viewport.scrollLeft,w=Tj(b,h,c.dir);d.current.style.transform=`translate3d(${w}px, 0, 0)`}},onWheelScroll:b=>{c.viewport&&(c.viewport.scrollLeft=b)},onDragScroll:b=>{c.viewport&&(c.viewport.scrollLeft=j(b,c.dir))}}):l==="vertical"?e.jsx(PT,{...g,ref:a,onThumbPositionChange:()=>{if(c.viewport&&d.current){const b=c.viewport.scrollTop,w=Tj(b,h);d.current.style.transform=`translate3d(0, ${w}px, 0)`}},onWheelScroll:b=>{c.viewport&&(c.viewport.scrollTop=b)},onDragScroll:b=>{c.viewport&&(c.viewport.scrollTop=j(b))}}):null}),zT=x.forwardRef((s,a)=>{const{sizes:l,onSizesChange:i,...c}=s,d=bn(Vn,s.__scopeScrollArea),[m,h]=x.useState(),p=x.useRef(null),v=Tt(a,p,d.onScrollbarXChange);return x.useEffect(()=>{p.current&&h(getComputedStyle(p.current))},[p]),e.jsx(qb,{"data-orientation":"horizontal",...c,ref:v,sizes:l,style:{bottom:0,left:d.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:d.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Bd(l)+"px",...s.style},onThumbPointerDown:g=>s.onThumbPointerDown(g.x),onDragScroll:g=>s.onDragScroll(g.x),onWheelScroll:(g,j)=>{if(d.viewport){const b=d.viewport.scrollLeft+g.deltaX;s.onWheelScroll(b),Wb(b,j)&&g.preventDefault()}},onResize:()=>{p.current&&d.viewport&&m&&i({content:d.viewport.scrollWidth,viewport:d.viewport.offsetWidth,scrollbar:{size:p.current.clientWidth,paddingStart:yd(m.paddingLeft),paddingEnd:yd(m.paddingRight)}})}})}),PT=x.forwardRef((s,a)=>{const{sizes:l,onSizesChange:i,...c}=s,d=bn(Vn,s.__scopeScrollArea),[m,h]=x.useState(),p=x.useRef(null),v=Tt(a,p,d.onScrollbarYChange);return x.useEffect(()=>{p.current&&h(getComputedStyle(p.current))},[p]),e.jsx(qb,{"data-orientation":"vertical",...c,ref:v,sizes:l,style:{top:0,right:d.dir==="ltr"?0:void 0,left:d.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Bd(l)+"px",...s.style},onThumbPointerDown:g=>s.onThumbPointerDown(g.y),onDragScroll:g=>s.onDragScroll(g.y),onWheelScroll:(g,j)=>{if(d.viewport){const b=d.viewport.scrollTop+g.deltaY;s.onWheelScroll(b),Wb(b,j)&&g.preventDefault()}},onResize:()=>{p.current&&d.viewport&&m&&i({content:d.viewport.scrollHeight,viewport:d.viewport.offsetHeight,scrollbar:{size:p.current.clientHeight,paddingStart:yd(m.paddingTop),paddingEnd:yd(m.paddingBottom)}})}})}),[LT,Yb]=Lb(Vn),qb=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,sizes:i,hasThumb:c,onThumbChange:d,onThumbPointerUp:m,onThumbPointerDown:h,onThumbPositionChange:p,onDragScroll:v,onWheelScroll:g,onResize:j,...b}=s,w=bn(Vn,l),[S,C]=x.useState(null),N=Tt(a,Y=>C(Y)),T=x.useRef(null),P=x.useRef(""),M=w.viewport,k=i.content-i.viewport,D=ws(g),A=ws(p),E=Ud(j,10);function B(Y){if(T.current){const G=Y.clientX-T.current.left,$=Y.clientY-T.current.top;v({x:G,y:$})}}return x.useEffect(()=>{const Y=G=>{const $=G.target;S?.contains($)&&D(G,k)};return document.addEventListener("wheel",Y,{passive:!1}),()=>document.removeEventListener("wheel",Y,{passive:!1})},[M,S,k,D]),x.useEffect(A,[i,A]),Gr(S,E),Gr(w.content,E),e.jsx(LT,{scope:l,scrollbar:S,hasThumb:c,onThumbChange:ws(d),onThumbPointerUp:ws(m),onThumbPositionChange:A,onThumbPointerDown:ws(h),children:e.jsx(dt.div,{...b,ref:N,style:{position:"absolute",...b.style},onPointerDown:be(s.onPointerDown,Y=>{Y.button===0&&(Y.target.setPointerCapture(Y.pointerId),T.current=S.getBoundingClientRect(),P.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",w.viewport&&(w.viewport.style.scrollBehavior="auto"),B(Y))}),onPointerMove:be(s.onPointerMove,B),onPointerUp:be(s.onPointerUp,Y=>{const G=Y.target;G.hasPointerCapture(Y.pointerId)&&G.releasePointerCapture(Y.pointerId),document.body.style.webkitUserSelect=P.current,w.viewport&&(w.viewport.style.scrollBehavior=""),T.current=null})})})}),jd="ScrollAreaThumb",Vb=x.forwardRef((s,a)=>{const{forceMount:l,...i}=s,c=Yb(jd,s.__scopeScrollArea);return e.jsx(Is,{present:l||c.hasThumb,children:e.jsx(BT,{ref:a,...i})})}),BT=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,style:i,...c}=s,d=bn(jd,l),m=Yb(jd,l),{onThumbPositionChange:h}=m,p=Tt(a,j=>m.onThumbChange(j)),v=x.useRef(void 0),g=Ud(()=>{v.current&&(v.current(),v.current=void 0)},100);return x.useEffect(()=>{const j=d.viewport;if(j){const b=()=>{if(g(),!v.current){const w=FT(j,h);v.current=w,h()}};return h(),j.addEventListener("scroll",b),()=>j.removeEventListener("scroll",b)}},[d.viewport,g,h]),e.jsx(dt.div,{"data-state":m.hasThumb?"visible":"hidden",...c,ref:p,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...i},onPointerDownCapture:be(s.onPointerDownCapture,j=>{const w=j.target.getBoundingClientRect(),S=j.clientX-w.left,C=j.clientY-w.top;m.onThumbPointerDown({x:S,y:C})}),onPointerUp:be(s.onPointerUp,m.onThumbPointerUp)})});Vb.displayName=jd;var Eh="ScrollAreaCorner",Gb=x.forwardRef((s,a)=>{const l=bn(Eh,s.__scopeScrollArea),i=!!(l.scrollbarX&&l.scrollbarY);return l.type!=="scroll"&&i?e.jsx(UT,{...s,ref:a}):null});Gb.displayName=Eh;var UT=x.forwardRef((s,a)=>{const{__scopeScrollArea:l,...i}=s,c=bn(Eh,l),[d,m]=x.useState(0),[h,p]=x.useState(0),v=!!(d&&h);return Gr(c.scrollbarX,()=>{const g=c.scrollbarX?.offsetHeight||0;c.onCornerHeightChange(g),p(g)}),Gr(c.scrollbarY,()=>{const g=c.scrollbarY?.offsetWidth||0;c.onCornerWidthChange(g),m(g)}),v?e.jsx(dt.div,{...i,ref:a,style:{width:d,height:h,position:"absolute",right:c.dir==="ltr"?0:void 0,left:c.dir==="rtl"?0:void 0,bottom:0,...s.style}}):null});function yd(s){return s?parseInt(s,10):0}function $b(s,a){const l=s/a;return isNaN(l)?0:l}function Bd(s){const a=$b(s.viewport,s.content),l=s.scrollbar.paddingStart+s.scrollbar.paddingEnd,i=(s.scrollbar.size-l)*a;return Math.max(i,18)}function HT(s,a,l,i="ltr"){const c=Bd(l),d=c/2,m=a||d,h=c-m,p=l.scrollbar.paddingStart+m,v=l.scrollbar.size-l.scrollbar.paddingEnd-h,g=l.content-l.viewport,j=i==="ltr"?[0,g]:[g*-1,0];return Ib([p,v],j)(s)}function Tj(s,a,l="ltr"){const i=Bd(a),c=a.scrollbar.paddingStart+a.scrollbar.paddingEnd,d=a.scrollbar.size-c,m=a.content-a.viewport,h=d-i,p=l==="ltr"?[0,m]:[m*-1,0],v=rh(s,p);return Ib([0,m],[0,h])(v)}function Ib(s,a){return l=>{if(s[0]===s[1]||a[0]===a[1])return a[0];const i=(a[1]-a[0])/(s[1]-s[0]);return a[0]+i*(l-s[0])}}function Wb(s,a){return s>0&&s{})=>{let l={left:s.scrollLeft,top:s.scrollTop},i=0;return(function c(){const d={left:s.scrollLeft,top:s.scrollTop},m=l.left!==d.left,h=l.top!==d.top;(m||h)&&a(),l=d,i=window.requestAnimationFrame(c)})(),()=>window.cancelAnimationFrame(i)};function Ud(s,a){const l=ws(s),i=x.useRef(0);return x.useEffect(()=>()=>window.clearTimeout(i.current),[]),x.useCallback(()=>{window.clearTimeout(i.current),i.current=window.setTimeout(l,a)},[l,a])}function Gr(s,a){const l=ws(a);oy(()=>{let i=0;if(s){const c=new ResizeObserver(()=>{cancelAnimationFrame(i),i=window.requestAnimationFrame(l)});return c.observe(s),()=>{window.cancelAnimationFrame(i),c.unobserve(s)}}},[s,l])}var Xb=Bb,YT=Hb,qT=Gb;const Ct=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(Xb,{ref:i,className:Z("relative overflow-hidden",s),...l,children:[e.jsx(YT,{className:"h-full w-full rounded-[inherit]",children:a}),e.jsx(Kb,{}),e.jsx(qT,{})]}));Ct.displayName=Xb.displayName;const Kb=x.forwardRef(({className:s,orientation:a="vertical",...l},i)=>e.jsx(kh,{ref:i,orientation:a,className:Z("flex touch-none select-none transition-colors",a==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",a==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",s),...l,children:e.jsx(Vb,{className:"relative flex-1 rounded-full bg-border"})}));Kb.displayName=kh.displayName;function Ej({className:s,...a}){return e.jsx("div",{className:Z("animate-pulse rounded-md bg-primary/10",s),...a})}function VT(s,a=[]){let l=[];function i(d,m){const h=x.createContext(m);h.displayName=d+"Context";const p=l.length;l=[...l,m];const v=j=>{const{scope:b,children:w,...S}=j,C=b?.[s]?.[p]||h,N=x.useMemo(()=>S,Object.values(S));return e.jsx(C.Provider,{value:N,children:w})};v.displayName=d+"Provider";function g(j,b){const w=b?.[s]?.[p]||h,S=x.useContext(w);if(S)return S;if(m!==void 0)return m;throw new Error(`\`${j}\` must be used within \`${d}\``)}return[v,g]}const c=()=>{const d=l.map(m=>x.createContext(m));return function(h){const p=h?.[s]||d;return x.useMemo(()=>({[`__scope${s}`]:{...h,[s]:p}}),[h,p])}};return c.scopeName=s,[i,GT(c,...a)]}function GT(...s){const a=s[0];if(s.length===1)return a;const l=()=>{const i=s.map(c=>({useScope:c(),scopeName:c.scopeName}));return function(d){const m=i.reduce((h,{useScope:p,scopeName:v})=>{const j=p(d)[`__scope${v}`];return{...h,...j}},{});return x.useMemo(()=>({[`__scope${a.scopeName}`]:m}),[m])}};return l.scopeName=a.scopeName,l}var $T=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Qb=$T.reduce((s,a)=>{const l=ih(`Primitive.${a}`),i=x.forwardRef((c,d)=>{const{asChild:m,...h}=c,p=m?l:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(p,{...h,ref:d})});return i.displayName=`Primitive.${a}`,{...s,[a]:i}},{}),Mh="Progress",Dh=100,[IT]=VT(Mh),[WT,XT]=IT(Mh),Zb=x.forwardRef((s,a)=>{const{__scopeProgress:l,value:i=null,max:c,getValueLabel:d=KT,...m}=s;(c||c===0)&&!Mj(c)&&console.error(QT(`${c}`,"Progress"));const h=Mj(c)?c:Dh;i!==null&&!Dj(i,h)&&console.error(ZT(`${i}`,"Progress"));const p=Dj(i,h)?i:null,v=bd(p)?d(p,h):void 0;return e.jsx(WT,{scope:l,value:p,max:h,children:e.jsx(Qb.div,{"aria-valuemax":h,"aria-valuemin":0,"aria-valuenow":bd(p)?p:void 0,"aria-valuetext":v,role:"progressbar","data-state":t0(p,h),"data-value":p??void 0,"data-max":h,...m,ref:a})})});Zb.displayName=Mh;var Jb="ProgressIndicator",e0=x.forwardRef((s,a)=>{const{__scopeProgress:l,...i}=s,c=XT(Jb,l);return e.jsx(Qb.div,{"data-state":t0(c.value,c.max),"data-value":c.value??void 0,"data-max":c.max,...i,ref:a})});e0.displayName=Jb;function KT(s,a){return`${Math.round(s/a*100)}%`}function t0(s,a){return s==null?"indeterminate":s===a?"complete":"loading"}function bd(s){return typeof s=="number"}function Mj(s){return bd(s)&&!isNaN(s)&&s>0}function Dj(s,a){return bd(s)&&!isNaN(s)&&s<=a&&s>=0}function QT(s,a){return`Invalid prop \`max\` of value \`${s}\` supplied to \`${a}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Dh}\`.`}function ZT(s,a){return`Invalid prop \`value\` of value \`${s}\` supplied to \`${a}\`. The \`value\` prop must be: - - a positive number - - less than the value passed to \`max\` (or ${Dh} if no \`max\` prop is set) - - \`null\` or \`undefined\` if the progress is indeterminate. - -Defaulting to \`null\`.`}var s0=Zb,JT=e0;const _o=x.forwardRef(({className:s,value:a,...l},i)=>e.jsx(s0,{ref:i,className:Z("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",s),...l,children:e.jsx(JT,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(a||0)}%)`}})}));_o.displayName=s0.displayName;const eE={light:"",dark:".dark"},n0=x.createContext(null);function a0(){const s=x.useContext(n0);if(!s)throw new Error("useChart must be used within a ");return s}const Dr=x.forwardRef(({id:s,className:a,children:l,config:i,...c},d)=>{const m=x.useId(),h=`chart-${s||m.replace(/:/g,"")}`;return e.jsx(n0.Provider,{value:{config:i},children:e.jsxs("div",{"data-chart":h,ref:d,className:Z("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",a),...c,children:[e.jsx(tE,{id:h,config:i}),e.jsx(l2,{children:l})]})})});Dr.displayName="Chart";const tE=({id:s,config:a})=>{const l=Object.entries(a).filter(([,i])=>i.theme||i.color);return l.length?e.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(eE).map(([i,c])=>` -${c} [data-chart=${s}] { -${l.map(([d,m])=>{const h=m.theme?.[i]||m.color;return h?` --color-${d}: ${h};`:null}).join(` -`)} -} -`).join(` -`)}}):null},Qi=r2,Or=x.forwardRef(({active:s,payload:a,className:l,indicator:i="dot",hideLabel:c=!1,hideIndicator:d=!1,label:m,labelFormatter:h,labelClassName:p,formatter:v,color:g,nameKey:j,labelKey:b},w)=>{const{config:S}=a0(),C=x.useMemo(()=>{if(c||!a?.length)return null;const[T]=a,P=`${b||T?.dataKey||T?.name||"value"}`,M=Gf(S,T,P),k=!b&&typeof m=="string"?S[m]?.label||m:M?.label;return h?e.jsx("div",{className:Z("font-medium",p),children:h(k,a)}):k?e.jsx("div",{className:Z("font-medium",p),children:k}):null},[m,h,a,c,p,S,b]);if(!s||!a?.length)return null;const N=a.length===1&&i!=="dot";return e.jsxs("div",{ref:w,className:Z("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",l),children:[N?null:C,e.jsx("div",{className:"grid gap-1.5",children:a.filter(T=>T.type!=="none").map((T,P)=>{const M=`${j||T.name||T.dataKey||"value"}`,k=Gf(S,T,M),D=g||T.payload.fill||T.color;return e.jsx("div",{className:Z("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",i==="dot"&&"items-center"),children:v&&T?.value!==void 0&&T.name?v(T.value,T.name,T,P,T.payload):e.jsxs(e.Fragment,{children:[k?.icon?e.jsx(k.icon,{}):!d&&e.jsx("div",{className:Z("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":i==="dot","w-1":i==="line","w-0 border-[1.5px] border-dashed bg-transparent":i==="dashed","my-0.5":N&&i==="dashed"}),style:{"--color-bg":D,"--color-border":D}}),e.jsxs("div",{className:Z("flex flex-1 justify-between leading-none",N?"items-end":"items-center"),children:[e.jsxs("div",{className:"grid gap-1.5",children:[N?C:null,e.jsx("span",{className:"text-muted-foreground",children:k?.label||T.name})]}),T.value&&e.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:T.value.toLocaleString()})]})]})},T.dataKey)})})]})});Or.displayName="ChartTooltip";const sE=i2,l0=x.forwardRef(({className:s,hideIcon:a=!1,payload:l,verticalAlign:i="bottom",nameKey:c},d)=>{const{config:m}=a0();return l?.length?e.jsx("div",{ref:d,className:Z("flex items-center justify-center gap-4",i==="top"?"pb-3":"pt-3",s),children:l.filter(h=>h.type!=="none").map(h=>{const p=`${c||h.dataKey||"value"}`,v=Gf(m,h,p);return e.jsxs("div",{className:Z("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[v?.icon&&!a?e.jsx(v.icon,{}):e.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:h.color}}),v?.label]},h.value)})}):null});l0.displayName="ChartLegend";function Gf(s,a,l){if(typeof a!="object"||a===null)return;const i="payload"in a&&typeof a.payload=="object"&&a.payload!==null?a.payload:void 0;let c=l;return l in a&&typeof a[l]=="string"?c=a[l]:i&&l in i&&typeof i[l]=="string"&&(c=i[l]),c in s?s[c]:s[l]}const Oj=s=>typeof s=="boolean"?`${s}`:s===0?"0":s,Aj=iy,Jr=(s,a)=>l=>{var i;if(a?.variants==null)return Aj(s,l?.class,l?.className);const{variants:c,defaultVariants:d}=a,m=Object.keys(c).map(v=>{const g=l?.[v],j=d?.[v];if(g===null)return null;const b=Oj(g)||Oj(j);return c[v][b]}),h=l&&Object.entries(l).reduce((v,g)=>{let[j,b]=g;return b===void 0||(v[j]=b),v},{}),p=a==null||(i=a.compoundVariants)===null||i===void 0?void 0:i.reduce((v,g)=>{let{class:j,className:b,...w}=g;return Object.entries(w).every(S=>{let[C,N]=S;return Array.isArray(N)?N.includes({...d,...h}[C]):{...d,...h}[C]===N})?[...v,j,b]:v},[]);return Aj(s,m,p,l?.class,l?.className)},io=Jr("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),q=x.forwardRef(({className:s,variant:a,size:l,asChild:i=!1,...c},d)=>{const m=i?f2:"button";return e.jsx(m,{className:Z(io({variant:a,size:l,className:s})),ref:d,...c})});q.displayName="Button";function nE(){const[s,a]=x.useState(null),[l,i]=x.useState(!0),[c,d]=x.useState(0),[m,h]=x.useState(24),[p,v]=x.useState(!0),[g,j]=x.useState(null),[b,w]=x.useState(!0),S=x.useCallback(async()=>{try{w(!0);const Y=await $t.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");j({hitokoto:Y.data.hitokoto,from:Y.data.from||Y.data.from_who||"未知"})}catch(Y){console.error("获取一言失败:",Y),j({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{w(!1)}},[]),C=x.useCallback(async()=>{try{const Y=localStorage.getItem("access-token"),G=await $t.get(`/api/webui/statistics/dashboard?hours=${m}`,{headers:{Authorization:`Bearer ${Y}`}});a(G.data),i(!1),d(100)}catch(Y){console.error("Failed to fetch dashboard data:",Y),i(!1),d(100)}},[m]);if(x.useEffect(()=>{if(!l)return;d(0);const Y=setTimeout(()=>d(15),200),G=setTimeout(()=>d(30),800),$=setTimeout(()=>d(45),2e3),oe=setTimeout(()=>d(60),4e3),je=setTimeout(()=>d(75),6500),ae=setTimeout(()=>d(85),9e3),me=setTimeout(()=>d(92),11e3);return()=>{clearTimeout(Y),clearTimeout(G),clearTimeout($),clearTimeout(oe),clearTimeout(je),clearTimeout(ae),clearTimeout(me)}},[l]),x.useEffect(()=>{C(),S()},[C,S]),x.useEffect(()=>{if(!p)return;const Y=setInterval(()=>{C()},3e4);return()=>clearInterval(Y)},[p,C]),l||!s)return e.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:e.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[e.jsx(xa,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(_o,{value:c,className:"h-2"}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:[c,"%"]})]})]})});const{summary:N,model_stats:T,hourly_data:P,daily_data:M,recent_activity:k}=s,D=Y=>{const G=Math.floor(Y/3600),$=Math.floor(Y%3600/60);return`${G}小时${$}分钟`},A=Y=>new Date(Y).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),E=T.slice(0,6).map(Y=>({name:Y.model_name,value:Y.request_count,fill:`hsl(var(--chart-${T.indexOf(Y)%5+1}))`})),B={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx(Ml,{value:m.toString(),onValueChange:Y=>h(Number(Y)),children:e.jsxs($a,{className:"grid grid-cols-3 w-full sm:w-auto",children:[e.jsx(bt,{value:"24",children:"24小时"}),e.jsx(bt,{value:"168",children:"7天"}),e.jsx(bt,{value:"720",children:"30天"})]})}),e.jsxs(q,{variant:p?"default":"outline",size:"sm",onClick:()=>v(!p),className:"gap-2",children:[e.jsx(xa,{className:`h-4 w-4 ${p?"animate-spin":""}`}),e.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:C,children:e.jsx(xa,{className:"h-4 w-4"})})]})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"总请求数"}),e.jsx(C2,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:N.total_requests.toLocaleString()}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",m<48?m+"小时":Math.floor(m/24)+"天"]})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"总花费"}),e.jsx(k2,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsxs("div",{className:"text-2xl font-bold",children:["¥",N.total_cost.toFixed(2)]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:N.cost_per_hour>0?`¥${N.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"Token消耗"}),e.jsx(T2,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsxs("div",{className:"text-2xl font-bold",children:[(N.total_tokens/1e3).toFixed(1),"K"]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:N.tokens_per_hour>0?`${(N.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"平均响应"}),e.jsx(ao,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsxs("div",{className:"text-2xl font-bold",children:[N.avg_response_time.toFixed(2),"s"]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"在线时长"}),e.jsx(_l,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsx(gt,{children:e.jsx("div",{className:"text-xl font-bold",children:D(N.online_time)})})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"消息处理"}),e.jsx(po,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-xl font-bold",children:N.total_messages.toLocaleString()}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",N.total_replies.toLocaleString()," 条"]})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"成本效率"}),e.jsx(E2,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-xl font-bold",children:N.total_messages>0?`¥${(N.total_cost/N.total_messages*100).toFixed(2)}`:"¥0.00"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),e.jsxs(Ml,{defaultValue:"trends",className:"space-y-4",children:[e.jsxs($a,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[e.jsx(bt,{value:"trends",children:"趋势"}),e.jsx(bt,{value:"models",children:"模型"}),e.jsx(bt,{value:"activity",children:"活动"}),e.jsx(bt,{value:"daily",children:"日统计"})]}),e.jsxs(Vt,{value:"trends",className:"space-y-4",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"请求趋势"}),e.jsxs(us,{children:["最近",m,"小时的请求量变化"]})]}),e.jsx(gt,{children:e.jsx(Dr,{config:B,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:e.jsxs(o2,{data:P,children:[e.jsx(Xc,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),e.jsx(Kc,{dataKey:"timestamp",tickFormatter:Y=>A(Y),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Qi,{content:e.jsx(Or,{labelFormatter:Y=>A(Y)})}),e.jsx(c2,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"花费趋势"}),e.jsx(us,{children:"API调用成本变化"})]}),e.jsx(gt,{children:e.jsx(Dr,{config:B,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:e.jsxs(uf,{data:P,children:[e.jsx(Xc,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),e.jsx(Kc,{dataKey:"timestamp",tickFormatter:Y=>A(Y),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Qi,{content:e.jsx(Or,{labelFormatter:Y=>A(Y)})}),e.jsx(Qc,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"Token消耗"}),e.jsx(us,{children:"Token使用量变化"})]}),e.jsx(gt,{children:e.jsx(Dr,{config:B,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:e.jsxs(uf,{data:P,children:[e.jsx(Xc,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),e.jsx(Kc,{dataKey:"timestamp",tickFormatter:Y=>A(Y),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Qi,{content:e.jsx(Or,{labelFormatter:Y=>A(Y)})}),e.jsx(Qc,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),e.jsx(Vt,{value:"models",className:"space-y-4",children:e.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"模型请求分布"}),e.jsx(us,{children:"各模型使用占比"})]}),e.jsx(gt,{children:e.jsx(Dr,{config:Object.fromEntries(T.slice(0,6).map((Y,G)=>[Y.model_name,{label:Y.model_name,color:`hsl(var(--chart-${G%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:e.jsxs(d2,{children:[e.jsx(Qi,{content:e.jsx(Or,{})}),e.jsx(u2,{data:E,cx:"50%",cy:"50%",labelLine:!1,label:({name:Y,percent:G})=>`${Y} ${G?(G*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:E.map((Y,G)=>e.jsx(m2,{fill:Y.fill},`cell-${G}`))})]})})})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"模型详细统计"}),e.jsx(us,{children:"请求数、花费和性能"})]}),e.jsx(gt,{children:e.jsx(Ct,{className:"h-[300px] sm:h-[400px]",children:e.jsx("div",{className:"space-y-3",children:T.map((Y,G)=>e.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:Y.model_name}),e.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${G%5+1}))`}})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),e.jsx("span",{className:"ml-1 font-medium",children:Y.request_count.toLocaleString()})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"花费:"}),e.jsxs("span",{className:"ml-1 font-medium",children:["¥",Y.total_cost.toFixed(2)]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),e.jsxs("span",{className:"ml-1 font-medium",children:[(Y.total_tokens/1e3).toFixed(1),"K"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),e.jsxs("span",{className:"ml-1 font-medium",children:[Y.avg_response_time.toFixed(2),"s"]})]})]})]},G))})})})]})]})}),e.jsx(Vt,{value:"activity",children:e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"最近活动"}),e.jsx(us,{children:"最新的API调用记录"})]}),e.jsx(gt,{children:e.jsx(Ct,{className:"h-[400px] sm:h-[500px]",children:e.jsx("div",{className:"space-y-2",children:k.map((Y,G)=>e.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"font-medium text-sm truncate",children:Y.model}),e.jsx("div",{className:"text-xs text-muted-foreground",children:Y.request_type})]}),e.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:A(Y.timestamp)})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),e.jsx("span",{className:"ml-1",children:Y.tokens})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"花费:"}),e.jsxs("span",{className:"ml-1",children:["¥",Y.cost.toFixed(4)]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),e.jsxs("span",{className:"ml-1",children:[Y.time_cost.toFixed(2),"s"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground",children:"状态:"}),e.jsx("span",{className:`ml-1 ${Y.status==="success"?"text-green-600":"text-red-600"}`,children:Y.status})]})]})]},G))})})})]})}),e.jsx(Vt,{value:"daily",children:e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"每日统计"}),e.jsx(us,{children:"最近7天的数据汇总"})]}),e.jsx(gt,{children:e.jsx(Dr,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:e.jsxs(uf,{data:M,children:[e.jsx(Xc,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),e.jsx(Kc,{dataKey:"timestamp",tickFormatter:Y=>{const G=new Date(Y);return`${G.getMonth()+1}/${G.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Ii,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),e.jsx(Qi,{content:e.jsx(Or,{labelFormatter:Y=>new Date(Y).toLocaleDateString("zh-CN")})}),e.jsx(sE,{content:e.jsx(l0,{})}),e.jsx(Qc,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),e.jsx(Qc,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),e.jsxs(Ue,{className:"border-2 border-primary/20",children:[e.jsx(ot,{className:"pb-3",children:e.jsx(ct,{className:"text-lg",children:"每日一言"})}),e.jsx(gt,{children:b?e.jsxs("div",{className:"space-y-2",children:[e.jsx(Ej,{className:"h-6 w-3/4"}),e.jsx(Ej,{className:"h-4 w-1/4"})]}):g?e.jsxs("div",{className:"space-y-2",children:[e.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',g.hitokoto,'"']}),e.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",g.from]})]}):null})]})]})})}const aE={theme:"system",setTheme:()=>null},r0=x.createContext(aE),Oh=()=>{const s=x.useContext(r0);if(s===void 0)throw new Error("useTheme must be used within a ThemeProvider");return s},lE=(s,a,l)=>{const i=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||i){a(s);return}const c=l.clientX,d=l.clientY,m=Math.hypot(Math.max(c,innerWidth-c),Math.max(d,innerHeight-d));document.startViewTransition(()=>{a(s)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${c}px ${d}px)`,`circle(${m}px at ${c}px ${d}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},i0=x.createContext(void 0),o0=()=>{const s=x.useContext(i0);if(s===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return s};var Hd="Switch",[rE]=Dn(Hd),[iE,oE]=rE(Hd),c0=x.forwardRef((s,a)=>{const{__scopeSwitch:l,name:i,checked:c,defaultChecked:d,required:m,disabled:h,value:p="on",onCheckedChange:v,form:g,...j}=s,[b,w]=x.useState(null),S=Tt(a,M=>w(M)),C=x.useRef(!1),N=b?g||!!b.closest("form"):!0,[T,P]=Qa({prop:c,defaultProp:d??!1,onChange:v,caller:Hd});return e.jsxs(iE,{scope:l,checked:T,disabled:h,children:[e.jsx(dt.button,{type:"button",role:"switch","aria-checked":T,"aria-required":m,"data-state":f0(T),"data-disabled":h?"":void 0,disabled:h,value:p,...j,ref:S,onClick:be(s.onClick,M=>{P(k=>!k),N&&(C.current=M.isPropagationStopped(),C.current||M.stopPropagation())})}),N&&e.jsx(m0,{control:b,bubbles:!C.current,name:i,value:p,checked:T,required:m,disabled:h,form:g,style:{transform:"translateX(-100%)"}})]})});c0.displayName=Hd;var d0="SwitchThumb",u0=x.forwardRef((s,a)=>{const{__scopeSwitch:l,...i}=s,c=oE(d0,l);return e.jsx(dt.span,{"data-state":f0(c.checked),"data-disabled":c.disabled?"":void 0,...i,ref:a})});u0.displayName=d0;var cE="SwitchBubbleInput",m0=x.forwardRef(({__scopeSwitch:s,control:a,checked:l,bubbles:i=!0,...c},d)=>{const m=x.useRef(null),h=Tt(m,d),p=cy(l),v=dy(a);return x.useEffect(()=>{const g=m.current;if(!g)return;const j=window.HTMLInputElement.prototype,w=Object.getOwnPropertyDescriptor(j,"checked").set;if(p!==l&&w){const S=new Event("click",{bubbles:i});w.call(g,l),g.dispatchEvent(S)}},[p,l,i]),e.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:l,...c,tabIndex:-1,ref:h,style:{...c.style,...v,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});m0.displayName=cE;function f0(s){return s?"checked":"unchecked"}var h0=c0,dE=u0;const Ze=x.forwardRef(({className:s,...a},l)=>e.jsx(h0,{className:Z("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",s),...a,ref:l,children:e.jsx(dE,{className:Z("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));Ze.displayName=h0.displayName;const uE=Jr("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),U=x.forwardRef(({className:s,...a},l)=>e.jsx(uy,{ref:l,className:Z(uE(),s),...a}));U.displayName=uy.displayName;const pe=x.forwardRef(({className:s,type:a,...l},i)=>e.jsx("input",{type:a,className:Z("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",s),ref:i,...l}));pe.displayName="Input";const mE=1,fE=1e6;let bf=0;function hE(){return bf=(bf+1)%Number.MAX_SAFE_INTEGER,bf.toString()}const Nf=new Map,Rj=s=>{if(Nf.has(s))return;const a=setTimeout(()=>{Nf.delete(s),no({type:"REMOVE_TOAST",toastId:s})},fE);Nf.set(s,a)},xE=(s,a)=>{switch(a.type){case"ADD_TOAST":return{...s,toasts:[a.toast,...s.toasts].slice(0,mE)};case"UPDATE_TOAST":return{...s,toasts:s.toasts.map(l=>l.id===a.toast.id?{...l,...a.toast}:l)};case"DISMISS_TOAST":{const{toastId:l}=a;return l?Rj(l):s.toasts.forEach(i=>{Rj(i.id)}),{...s,toasts:s.toasts.map(i=>i.id===l||l===void 0?{...i,open:!1}:i)}}case"REMOVE_TOAST":return a.toastId===void 0?{...s,toasts:[]}:{...s,toasts:s.toasts.filter(l=>l.id!==a.toastId)}}},dd=[];let ud={toasts:[]};function no(s){ud=xE(ud,s),dd.forEach(a=>{a(ud)})}function pE({...s}){const a=hE(),l=c=>no({type:"UPDATE_TOAST",toast:{...c,id:a}}),i=()=>no({type:"DISMISS_TOAST",toastId:a});return no({type:"ADD_TOAST",toast:{...s,id:a,open:!0,onOpenChange:c=>{c||i()}}}),{id:a,dismiss:i,update:l}}function Es(){const[s,a]=x.useState(ud);return x.useEffect(()=>(dd.push(a),()=>{const l=dd.indexOf(a);l>-1&&dd.splice(l,1)}),[s]),{...s,toast:pE,dismiss:l=>no({type:"DISMISS_TOAST",toastId:l})}}const gE=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:s=>s.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:s=>/[A-Z]/.test(s)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:s=>/[a-z]/.test(s)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:s=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(s)}];function vE(s){const a=gE.map(i=>({id:i.id,label:i.label,description:i.description,passed:i.validate(s)}));return{isValid:a.every(i=>i.passed),rules:a}}const Ah="0.11.5 Beta",Rh="MaiBot Dashboard",jE=`${Rh} v${Ah}`,yE=(s="v")=>`${s}${Ah}`,bs=mh,x0=my,bE=oh,p0=x.forwardRef(({className:s,...a},l)=>e.jsx(Cd,{ref:l,className:Z("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...a}));p0.displayName=Cd.displayName;const ms=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(bE,{children:[e.jsx(p0,{}),e.jsxs(kd,{ref:i,className:Z("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...l,children:[a,e.jsxs(ch,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[e.jsx(go,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));ms.displayName=kd.displayName;const fs=({className:s,...a})=>e.jsx("div",{className:Z("flex flex-col space-y-1.5 text-center sm:text-left",s),...a});fs.displayName="DialogHeader";const $s=({className:s,...a})=>e.jsx("div",{className:Z("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...a});$s.displayName="DialogFooter";const hs=x.forwardRef(({className:s,...a},l)=>e.jsx(dh,{ref:l,className:Z("text-lg font-semibold leading-none tracking-tight",s),...a}));hs.displayName=dh.displayName;const ks=x.forwardRef(({className:s,...a},l)=>e.jsx(uh,{ref:l,className:Z("text-sm text-muted-foreground",s),...a}));ks.displayName=uh.displayName;var NE=Symbol("radix.slottable");function wE(s){const a=({children:l})=>e.jsx(e.Fragment,{children:l});return a.displayName=`${s}.Slottable`,a.__radixId=NE,a}var g0="AlertDialog",[SE]=Dn(g0,[fy]),ga=fy(),v0=s=>{const{__scopeAlertDialog:a,...l}=s,i=ga(a);return e.jsx(mh,{...i,...l,modal:!0})};v0.displayName=g0;var _E="AlertDialogTrigger",j0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(my,{...c,...i,ref:a})});j0.displayName=_E;var CE="AlertDialogPortal",y0=s=>{const{__scopeAlertDialog:a,...l}=s,i=ga(a);return e.jsx(oh,{...i,...l})};y0.displayName=CE;var kE="AlertDialogOverlay",b0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(Cd,{...c,...i,ref:a})});b0.displayName=kE;var Br="AlertDialogContent",[TE,EE]=SE(Br),ME=wE("AlertDialogContent"),N0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,children:i,...c}=s,d=ga(l),m=x.useRef(null),h=Tt(a,m),p=x.useRef(null);return e.jsx(h2,{contentName:Br,titleName:w0,docsSlug:"alert-dialog",children:e.jsx(TE,{scope:l,cancelRef:p,children:e.jsxs(kd,{role:"alertdialog",...d,...c,ref:h,onOpenAutoFocus:be(c.onOpenAutoFocus,v=>{v.preventDefault(),p.current?.focus({preventScroll:!0})}),onPointerDownOutside:v=>v.preventDefault(),onInteractOutside:v=>v.preventDefault(),children:[e.jsx(ME,{children:i}),e.jsx(OE,{contentRef:m})]})})})});N0.displayName=Br;var w0="AlertDialogTitle",S0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(dh,{...c,...i,ref:a})});S0.displayName=w0;var _0="AlertDialogDescription",C0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(uh,{...c,...i,ref:a})});C0.displayName=_0;var DE="AlertDialogAction",k0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,c=ga(l);return e.jsx(ch,{...c,...i,ref:a})});k0.displayName=DE;var T0="AlertDialogCancel",E0=x.forwardRef((s,a)=>{const{__scopeAlertDialog:l,...i}=s,{cancelRef:c}=EE(T0,l),d=ga(l),m=Tt(a,c);return e.jsx(ch,{...d,...i,ref:m})});E0.displayName=T0;var OE=({contentRef:s})=>{const a=`\`${Br}\` requires a description for the component to be accessible for screen reader users. - -You can add a description to the \`${Br}\` by passing a \`${_0}\` component as a child, which also benefits sighted users by adding visible context to the dialog. - -Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Br}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. - -For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return x.useEffect(()=>{document.getElementById(s.current?.getAttribute("aria-describedby"))||console.warn(a)},[a,s]),null},AE=v0,RE=j0,zE=y0,M0=b0,D0=N0,O0=k0,A0=E0,R0=S0,z0=C0;const Ft=AE,_s=RE,PE=zE,P0=x.forwardRef(({className:s,...a},l)=>e.jsx(M0,{className:Z("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",s),...a,ref:l}));P0.displayName=M0.displayName;const Ot=x.forwardRef(({className:s,...a},l)=>e.jsxs(PE,{children:[e.jsx(P0,{}),e.jsx(D0,{ref:l,className:Z("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",s),...a})]}));Ot.displayName=D0.displayName;const At=({className:s,...a})=>e.jsx("div",{className:Z("flex flex-col space-y-2 text-center sm:text-left",s),...a});At.displayName="AlertDialogHeader";const Rt=({className:s,...a})=>e.jsx("div",{className:Z("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",s),...a});Rt.displayName="AlertDialogFooter";const zt=x.forwardRef(({className:s,...a},l)=>e.jsx(R0,{ref:l,className:Z("text-lg font-semibold",s),...a}));zt.displayName=R0.displayName;const Pt=x.forwardRef(({className:s,...a},l)=>e.jsx(z0,{ref:l,className:Z("text-sm text-muted-foreground",s),...a}));Pt.displayName=z0.displayName;const Lt=x.forwardRef(({className:s,...a},l)=>e.jsx(O0,{ref:l,className:Z(io(),s),...a}));Lt.displayName=O0.displayName;const Bt=x.forwardRef(({className:s,...a},l)=>e.jsx(A0,{ref:l,className:Z(io({variant:"outline"}),"mt-2 sm:mt-0",s),...a}));Bt.displayName=A0.displayName;function LE(){return e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),e.jsxs(Ml,{defaultValue:"appearance",className:"w-full",children:[e.jsxs($a,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[e.jsxs(bt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[e.jsx(Ty,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),e.jsx("span",{children:"外观"})]}),e.jsxs(bt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[e.jsx(M2,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),e.jsx("span",{children:"安全"})]}),e.jsxs(bt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[e.jsx(Tn,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),e.jsx("span",{children:"其他"})]}),e.jsxs(bt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[e.jsx(Fr,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),e.jsx("span",{children:"关于"})]})]}),e.jsxs(Ct,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[e.jsx(Vt,{value:"appearance",className:"mt-0",children:e.jsx(BE,{})}),e.jsx(Vt,{value:"security",className:"mt-0",children:e.jsx(UE,{})}),e.jsx(Vt,{value:"other",className:"mt-0",children:e.jsx(HE,{})}),e.jsx(Vt,{value:"about",className:"mt-0",children:e.jsx(FE,{})})]})]})]})}function zj(s){const a=document.documentElement,i={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[s];if(i)a.style.setProperty("--primary",i.hsl),i.gradient?(a.style.setProperty("--primary-gradient",i.gradient),a.classList.add("has-gradient")):(a.style.removeProperty("--primary-gradient"),a.classList.remove("has-gradient"));else if(s.startsWith("#")){const c=d=>{d=d.replace("#","");const m=parseInt(d.substring(0,2),16)/255,h=parseInt(d.substring(2,4),16)/255,p=parseInt(d.substring(4,6),16)/255,v=Math.max(m,h,p),g=Math.min(m,h,p);let j=0,b=0;const w=(v+g)/2;if(v!==g){const S=v-g;switch(b=w>.5?S/(2-v-g):S/(v+g),v){case m:j=((h-p)/S+(hlocalStorage.getItem("accent-color")||"blue");x.useEffect(()=>{const v=localStorage.getItem("accent-color")||"blue";zj(v)},[]);const p=v=>{h(v),localStorage.setItem("accent-color",v),zj(v)};return e.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[e.jsx(wf,{value:"light",current:s,onChange:a,label:"浅色",description:"始终使用浅色主题"}),e.jsx(wf,{value:"dark",current:s,onChange:a,label:"深色",description:"始终使用深色主题"}),e.jsx(wf,{value:"system",current:s,onChange:a,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),e.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[e.jsx(vn,{value:"blue",current:m,onChange:p,label:"蓝色",colorClass:"bg-blue-500"}),e.jsx(vn,{value:"purple",current:m,onChange:p,label:"紫色",colorClass:"bg-purple-500"}),e.jsx(vn,{value:"green",current:m,onChange:p,label:"绿色",colorClass:"bg-green-500"}),e.jsx(vn,{value:"orange",current:m,onChange:p,label:"橙色",colorClass:"bg-orange-500"}),e.jsx(vn,{value:"pink",current:m,onChange:p,label:"粉色",colorClass:"bg-pink-500"}),e.jsx(vn,{value:"red",current:m,onChange:p,label:"红色",colorClass:"bg-red-500"})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),e.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[e.jsx(vn,{value:"gradient-sunset",current:m,onChange:p,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),e.jsx(vn,{value:"gradient-ocean",current:m,onChange:p,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),e.jsx(vn,{value:"gradient-forest",current:m,onChange:p,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),e.jsx(vn,{value:"gradient-aurora",current:m,onChange:p,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),e.jsx(vn,{value:"gradient-fire",current:m,onChange:p,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),e.jsx(vn,{value:"gradient-twilight",current:m,onChange:p,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[e.jsx("div",{className:"flex-1",children:e.jsx("input",{type:"color",value:m.startsWith("#")?m:"#3b82f6",onChange:v=>p(v.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),e.jsx("div",{className:"flex-1",children:e.jsx(pe,{type:"text",value:m,onChange:v=>p(v.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),e.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),e.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[e.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5 flex-1",children:[e.jsx(U,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),e.jsx(Ze,{id:"animations",checked:l,onCheckedChange:i})]})}),e.jsx("div",{className:"rounded-lg border bg-card p-4",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5 flex-1",children:[e.jsx(U,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),e.jsx(Ze,{id:"waves-background",checked:c,onCheckedChange:d})]})})]})]})]})}function UE(){const s=qn(),[a,l]=x.useState(""),[i,c]=x.useState(""),[d,m]=x.useState(!1),[h,p]=x.useState(!1),[v,g]=x.useState(!1),[j,b]=x.useState(!1),[w,S]=x.useState(!1),[C,N]=x.useState(!1),[T,P]=x.useState(""),[M,k]=x.useState(!1),{toast:D}=Es(),A=x.useMemo(()=>vE(i),[i]),E=()=>localStorage.getItem("access-token")||"",B=async ae=>{try{await navigator.clipboard.writeText(ae),S(!0),D({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>S(!1),2e3)}catch{D({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},Y=async()=>{if(!i.trim()){D({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!A.isValid){const ae=A.rules.filter(me=>!me.passed).map(me=>me.label).join(", ");D({title:"格式错误",description:`Token 不符合要求: ${ae}`,variant:"destructive"});return}g(!0);try{const ae=E(),me=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${ae}`},body:JSON.stringify({new_token:i.trim()})}),R=await me.json();me.ok&&R.success?(localStorage.setItem("access-token",i.trim()),c(""),a&&l(i.trim()),D({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),s({to:"/auth"})},1500)):D({title:"更新失败",description:R.message||"无法更新 Token",variant:"destructive"})}catch(ae){console.error("更新 Token 错误:",ae),D({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{g(!1)}},G=async()=>{b(!0);try{const ae=E(),me=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${ae}`}}),R=await me.json();me.ok&&R.success?(localStorage.setItem("access-token",R.token),l(R.token),P(R.token),N(!0),k(!1),D({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):D({title:"生成失败",description:R.message||"无法生成新 Token",variant:"destructive"})}catch(ae){console.error("生成 Token 错误:",ae),D({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{b(!1)}},$=async()=>{try{await navigator.clipboard.writeText(T),k(!0),D({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{D({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},oe=()=>{N(!1),setTimeout(()=>{P(""),k(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),s({to:"/auth"})},500)},je=ae=>{ae||oe()};return e.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[e.jsx(bs,{open:C,onOpenChange:je,children:e.jsxs(ms,{className:"sm:max-w-md",children:[e.jsxs(fs,{children:[e.jsxs(hs,{className:"flex items-center gap-2",children:[e.jsx(Lr,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),e.jsx(ks,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[e.jsx(U,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),e.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:T})]}),e.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(Lr,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),e.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[e.jsx("p",{className:"font-semibold",children:"重要提示"}),e.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[e.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),e.jsx("li",{children:"请立即复制并保存到安全的位置"}),e.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),e.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),e.jsxs($s,{className:"gap-2 sm:gap-0",children:[e.jsx(q,{variant:"outline",onClick:$,className:"gap-2",children:M?e.jsxs(e.Fragment,{children:[e.jsx(Cl,{className:"h-4 w-4 text-green-500"}),"已复制"]}):e.jsxs(e.Fragment,{children:[e.jsx(Df,{className:"h-4 w-4"}),"复制 Token"]})}),e.jsx(q,{onClick:oe,children:"我已保存,关闭"})]})]})}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),e.jsx("div",{className:"space-y-3 sm:space-y-4",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(pe,{id:"current-token",type:d?"text":"password",value:a||E(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),e.jsx("button",{onClick:()=>{a||l(E()),m(!d)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:d?"隐藏":"显示",children:d?e.jsx(Of,{className:"h-4 w-4 text-muted-foreground"}):e.jsx(Mn,{className:"h-4 w-4 text-muted-foreground"})})]}),e.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[e.jsx(q,{variant:"outline",size:"icon",onClick:()=>B(E()),title:"复制到剪贴板",className:"flex-shrink-0",children:w?e.jsx(Cl,{className:"h-4 w-4 text-green-500"}):e.jsx(Df,{className:"h-4 w-4"})}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{variant:"outline",disabled:j,className:"gap-2 flex-1 sm:flex-none",children:[e.jsx(xa,{className:Z("h-4 w-4",j&&"animate-spin")}),e.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),e.jsx("span",{className:"sm:hidden",children:"生成"})]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重新生成 Token"}),e.jsx(Pt,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:G,children:"确认生成"})]})]})]})]})]}),e.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),e.jsxs("div",{className:"relative",children:[e.jsx(pe,{id:"new-token",type:h?"text":"password",value:i,onChange:ae=>c(ae.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),e.jsx("button",{onClick:()=>p(!h),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:h?"隐藏":"显示",children:h?e.jsx(Of,{className:"h-4 w-4 text-muted-foreground"}):e.jsx(Mn,{className:"h-4 w-4 text-muted-foreground"})})]}),i&&e.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),e.jsx("div",{className:"space-y-1.5",children:A.rules.map(ae=>e.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[ae.passed?e.jsx(Ys,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):e.jsx(Af,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),e.jsx("span",{className:Z(ae.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:ae.label})]},ae.id))}),A.isValid&&e.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:e.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[e.jsx(Cl,{className:"h-4 w-4"}),e.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),e.jsx(q,{onClick:Y,disabled:v||!A.isValid||!i,className:"w-full sm:w-auto",children:v?"更新中...":"更新自定义 Token"})]})]}),e.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[e.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),e.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),e.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),e.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),e.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),e.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),e.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function HE(){const s=qn(),{toast:a}=Es(),[l,i]=x.useState(!1),c=async()=>{i(!0);try{const d=localStorage.getItem("access-token"),m=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${d}`}}),h=await m.json();m.ok&&h.success?(a({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{s({to:"/setup"})},1e3)):a({title:"重置失败",description:h.message||"无法重置配置状态",variant:"destructive"})}catch(d){console.error("重置配置状态错误:",d),a({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{i(!1)}};return e.jsx("div",{className:"space-y-4 sm:space-y-6",children:e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),e.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[e.jsx("div",{className:"space-y-2",children:e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{variant:"outline",disabled:l,className:"gap-2",children:[e.jsx(D2,{className:Z("h-4 w-4",l&&"animate-spin")}),"重新进行初次配置"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重新配置"}),e.jsx(Pt,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:c,children:"确认重置"})]})]})]})]})]})})}function FE(){return e.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",Rh]}),e.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[e.jsxs("p",{children:["版本: ",Ah]}),e.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),e.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",e.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),e.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{children:"React 19.2.0"}),e.jsx("li",{children:"TypeScript 5.7.2"}),e.jsx("li",{children:"Vite 6.0.7"}),e.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),e.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{children:"shadcn/ui"}),e.jsx("li",{children:"Radix UI"}),e.jsx("li",{children:"Tailwind CSS 3.4.17"}),e.jsx("li",{children:"Lucide Icons"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"font-medium text-foreground",children:"后端"}),e.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{children:"Python 3.12+"}),e.jsx("li",{children:"FastAPI"}),e.jsx("li",{children:"Uvicorn"}),e.jsx("li",{children:"WebSocket"})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),e.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[e.jsx("li",{children:"Bun / npm"}),e.jsx("li",{children:"ESLint 9.17.0"}),e.jsx("li",{children:"PostCSS"})]})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),e.jsx(Ct,{className:"h-[300px] sm:h-[400px]",children:e.jsxs("div",{className:"space-y-4 pr-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"React",description:"用户界面构建库",license:"MIT"}),e.jsx(qt,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),e.jsx(qt,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),e.jsx(qt,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),e.jsx(qt,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),e.jsx(qt,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),e.jsx(qt,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),e.jsx(qt,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),e.jsx(qt,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),e.jsx(qt,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),e.jsx(qt,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),e.jsx(qt,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),e.jsx(qt,{name:"Pydantic",description:"数据验证库",license:"MIT"}),e.jsx(qt,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),e.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[e.jsx(qt,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),e.jsx(qt,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),e.jsx(qt,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),e.jsx(qt,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[e.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:e.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[e.jsx("div",{className:"flex-shrink-0 mt-0.5",children:e.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:e.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function qt({name:s,description:a,license:l}){return e.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-foreground truncate",children:s}),e.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:a})]}),e.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:l})]})}function wf({value:s,current:a,onChange:l,label:i,description:c}){const d=a===s;return e.jsxs("button",{onClick:()=>l(s),className:Z("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",d?"border-primary bg-accent":"border-border"),children:[d&&e.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm sm:text-base font-medium",children:i}),e.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:c})]}),e.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[s==="light"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),s==="dark"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),s==="system"&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),e.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function vn({value:s,current:a,onChange:l,label:i,colorClass:c}){const d=a===s;return e.jsxs("button",{onClick:()=>l(s),className:Z("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",d?"border-primary bg-accent":"border-border"),children:[d&&e.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),e.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[e.jsx("div",{className:Z("h-8 w-8 sm:h-10 sm:w-10 rounded-full",c)}),e.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:i})]})]})}class YE{grad3;p;perm;constructor(a=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let l=0;l<256;l++)this.p[l]=Math.floor(Math.random()*256);this.perm=[];for(let l=0;l<512;l++)this.perm[l]=this.p[l&255]}dot(a,l,i){return a[0]*l+a[1]*i}mix(a,l,i){return(1-i)*a+i*l}fade(a){return a*a*a*(a*(a*6-15)+10)}perlin2(a,l){const i=Math.floor(a)&255,c=Math.floor(l)&255;a-=Math.floor(a),l-=Math.floor(l);const d=this.fade(a),m=this.fade(l),h=this.perm[i]+c,p=this.perm[h],v=this.perm[h+1],g=this.perm[i+1]+c,j=this.perm[g],b=this.perm[g+1];return this.mix(this.mix(this.dot(this.grad3[p%12],a,l),this.dot(this.grad3[j%12],a-1,l),d),this.mix(this.dot(this.grad3[v%12],a,l-1),this.dot(this.grad3[b%12],a-1,l-1),d),m)}}function qE(){const s=x.useRef(null),a=x.useRef(null),l=x.useRef(void 0),i=x.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new YE(Math.random()),bounding:null});return x.useEffect(()=>{const c=a.current,d=s.current;if(!c||!d)return;const m=i.current,h=()=>{const C=c.getBoundingClientRect();m.bounding=C,d.style.width=`${C.width}px`,d.style.height=`${C.height}px`},p=()=>{if(!m.bounding)return;const{width:C,height:N}=m.bounding;m.lines=[],m.paths.forEach(Y=>Y.remove()),m.paths=[];const T=10,P=32,M=C+200,k=N+30,D=Math.ceil(M/T),A=Math.ceil(k/P),E=(C-T*D)/2,B=(N-P*A)/2;for(let Y=0;Y<=D;Y++){const G=[];for(let oe=0;oe<=A;oe++){const je={x:E+T*Y,y:B+P*oe,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};G.push(je)}const $=document.createElementNS("http://www.w3.org/2000/svg","path");d.appendChild($),m.paths.push($),m.lines.push(G)}},v=C=>{const{lines:N,mouse:T,noise:P}=m;N.forEach(M=>{M.forEach(k=>{const D=P.perlin2((k.x+C*.0125)*.002,(k.y+C*.005)*.0015)*12;k.wave.x=Math.cos(D)*32,k.wave.y=Math.sin(D)*16;const A=k.x-T.sx,E=k.y-T.sy,B=Math.hypot(A,E),Y=Math.max(175,T.vs);if(B{const T={x:C.x+C.wave.x+(N?C.cursor.x:0),y:C.y+C.wave.y+(N?C.cursor.y:0)};return T.x=Math.round(T.x*10)/10,T.y=Math.round(T.y*10)/10,T},j=()=>{const{lines:C,paths:N}=m;C.forEach((T,P)=>{let M=g(T[0],!1),k=`M ${M.x} ${M.y}`;T.forEach((D,A)=>{const E=A===T.length-1;M=g(D,!E),k+=`L ${M.x} ${M.y}`}),N[P].setAttribute("d",k)})},b=C=>{const{mouse:N}=m;N.sx+=(N.x-N.sx)*.1,N.sy+=(N.y-N.sy)*.1;const T=N.x-N.lx,P=N.y-N.ly,M=Math.hypot(T,P);N.v=M,N.vs+=(M-N.vs)*.1,N.vs=Math.min(100,N.vs),N.lx=N.x,N.ly=N.y,N.a=Math.atan2(P,T),c&&(c.style.setProperty("--x",`${N.sx}px`),c.style.setProperty("--y",`${N.sy}px`)),v(C),j(),l.current=requestAnimationFrame(b)},w=C=>{if(!m.bounding)return;const{mouse:N}=m;N.x=C.pageX-m.bounding.left,N.y=C.pageY-m.bounding.top+window.scrollY,N.set||(N.sx=N.x,N.sy=N.y,N.lx=N.x,N.ly=N.y,N.set=!0)},S=()=>{h(),p()};return h(),p(),window.addEventListener("resize",S),window.addEventListener("mousemove",w),l.current=requestAnimationFrame(b),()=>{window.removeEventListener("resize",S),window.removeEventListener("mousemove",w),l.current&&cancelAnimationFrame(l.current)}},[]),e.jsxs("div",{ref:a,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[e.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),e.jsx("svg",{ref:s,style:{display:"block",width:"100%",height:"100%"},children:e.jsx("style",{children:` - path { - fill: none; - stroke: hsl(var(--primary) / 0.20); - stroke-width: 1px; - } - `})})]})}function VE(){const s=qn();x.useEffect(()=>{localStorage.getItem("access-token")||s({to:"/auth"})},[s])}function L0(){return!!localStorage.getItem("access-token")}function GE(){const[s,a]=x.useState(""),[l,i]=x.useState(!1),[c,d]=x.useState(""),m=qn(),{enableWavesBackground:h,setEnableWavesBackground:p}=o0(),{theme:v,setTheme:g}=Oh();x.useEffect(()=>{L0()&&m({to:"/"})},[m]);const b=v==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":v,w=()=>{g(b==="dark"?"light":"dark")},S=async C=>{if(C.preventDefault(),d(""),!s.trim()){d("请输入 Access Token");return}i(!0);try{const N=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:s.trim()})}),T=await N.json();if(N.ok&&T.valid){localStorage.setItem("access-token",s.trim());const P=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${s.trim()}`}}),M=await P.json();P.ok&&M.is_first_setup?m({to:"/setup"}):m({to:"/"})}else d(T.message||"Token 验证失败,请检查后重试")}catch(N){console.error("Token 验证错误:",N),d("连接服务器失败,请检查网络连接")}finally{i(!1)}};return e.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[h&&e.jsx(qE,{}),e.jsxs(Ue,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[e.jsx("button",{onClick:w,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:b==="dark"?"切换到浅色模式":"切换到深色模式",children:b==="dark"?e.jsx(Rf,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):e.jsx(zf,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),e.jsxs(ot,{className:"space-y-4 text-center",children:[e.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:e.jsx(Zv,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(ct,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),e.jsx(us,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),e.jsx(gt,{children:e.jsxs("form",{onSubmit:S,className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),e.jsxs("div",{className:"relative",children:[e.jsx(O2,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),e.jsx(pe,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:s,onChange:C=>a(C.target.value),className:Z("pl-10",c&&"border-red-500 focus-visible:ring-red-500"),disabled:l,autoFocus:!0,autoComplete:"off"})]})]}),c&&e.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[e.jsx(Tl,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),e.jsx("span",{children:c})]}),e.jsx(q,{type:"submit",className:"w-full",disabled:l,children:l?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),e.jsxs(bs,{children:[e.jsx(x0,{asChild:!0,children:e.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[e.jsx(A2,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),e.jsxs(ms,{className:"sm:max-w-md",children:[e.jsxs(fs,{children:[e.jsxs(hs,{className:"flex items-center gap-2",children:[e.jsx(Zv,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),e.jsx(ks,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(R2,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),e.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[e.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),e.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(ph,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),e.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:e.jsx("code",{className:"text-primary",children:"data/webui.json"})}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",e.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),e.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:e.jsxs("div",{className:"flex gap-2",children:[e.jsx(Tl,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),e.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[e.jsx("p",{className:"font-semibold",children:"安全提示"}),e.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[e.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),e.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[e.jsx(ao,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsxs(zt,{className:"flex items-center gap-2",children:[e.jsx(ao,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),e.jsx(Pt,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),e.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>p(!1),children:"关闭动画"})]})]})]})]})})]}),e.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:e.jsx("p",{children:jE})})]})}const Dt=x.forwardRef(({className:s,...a},l)=>e.jsx("textarea",{className:Z("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",s),ref:l,...a}));Dt.displayName="Textarea";var $E=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],IE=$E.reduce((s,a)=>{const l=ih(`Primitive.${a}`),i=x.forwardRef((c,d)=>{const{asChild:m,...h}=c,p=m?l:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(p,{...h,ref:d})});return i.displayName=`Primitive.${a}`,{...s,[a]:i}},{}),WE="Separator",Pj="horizontal",XE=["horizontal","vertical"],B0=x.forwardRef((s,a)=>{const{decorative:l,orientation:i=Pj,...c}=s,d=KE(i)?i:Pj,h=l?{role:"none"}:{"aria-orientation":d==="vertical"?d:void 0,role:"separator"};return e.jsx(IE.div,{"data-orientation":d,...h,...c,ref:a})});B0.displayName=WE;function KE(s){return XE.includes(s)}var U0=B0;const oo=x.forwardRef(({className:s,orientation:a="horizontal",decorative:l=!0,...i},c)=>e.jsx(U0,{ref:c,decorative:l,orientation:a,className:Z("shrink-0 bg-border",a==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",s),...i}));oo.displayName=U0.displayName;const QE=Jr("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function _t({className:s,variant:a,...l}){return e.jsx("div",{className:Z(QE({variant:a}),s),...l})}function ZE({config:s,onChange:a}){const l=c=>{c.trim()&&!s.alias_names.includes(c.trim())&&a({...s,alias_names:[...s.alias_names,c.trim()]})},i=c=>{a({...s,alias_names:s.alias_names.filter((d,m)=>m!==c)})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"qq_account",children:"QQ账号 *"}),e.jsx(pe,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:s.qq_account||"",onChange:c=>a({...s,qq_account:Number(c.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"nickname",children:"昵称 *"}),e.jsx(pe,{id:"nickname",placeholder:"请输入机器人的昵称",value:s.nickname,onChange:c=>a({...s,nickname:c.target.value})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{children:"别名"}),e.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:s.alias_names.map((c,d)=>e.jsxs(_t,{variant:"secondary",className:"gap-1",children:[c,e.jsx("button",{type:"button",onClick:()=>i(d),className:"ml-1 hover:text-destructive",children:e.jsx(go,{className:"h-3 w-3"})})]},d))}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(pe,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:c=>{c.key==="Enter"&&(l(c.target.value),c.target.value="")}}),e.jsx(q,{type:"button",variant:"outline",onClick:()=>{const c=document.getElementById("alias_input");c&&(l(c.value),c.value="")},children:"添加"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function JE({config:s,onChange:a}){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"personality",children:"人格特征 *"}),e.jsx(Dt,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:s.personality,onChange:l=>a({...s,personality:l.target.value}),rows:3}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"reply_style",children:"表达风格 *"}),e.jsx(Dt,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:s.reply_style,onChange:l=>a({...s,reply_style:l.target.value}),rows:3}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"interest",children:"兴趣 *"}),e.jsx(Dt,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:s.interest,onChange:l=>a({...s,interest:l.target.value}),rows:2}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),e.jsx(oo,{}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"plan_style",children:"群聊说话规则 *"}),e.jsx(Dt,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:s.plan_style,onChange:l=>a({...s,plan_style:l.target.value}),rows:4}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),e.jsx(Dt,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:s.private_plan_style,onChange:l=>a({...s,private_plan_style:l.target.value}),rows:3}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function e4({config:s,onChange:a}){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{htmlFor:"emoji_chance",children:"表情包激活概率"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[(s.emoji_chance*100).toFixed(0),"%"]})]}),e.jsx(pe,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:s.emoji_chance,onChange:l=>a({...s,emoji_chance:Number(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"max_reg_num",children:"最大表情包数量"}),e.jsx(pe,{id:"max_reg_num",type:"number",min:"1",max:"200",value:s.max_reg_num,onChange:l=>a({...s,max_reg_num:Number(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"do_replace",children:"达到最大数量时替换"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),e.jsx(Ze,{id:"do_replace",checked:s.do_replace,onCheckedChange:l=>a({...s,do_replace:l})})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),e.jsx(pe,{id:"check_interval",type:"number",min:"1",max:"120",value:s.check_interval,onChange:l=>a({...s,check_interval:Number(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),e.jsx(oo,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"steal_emoji",children:"偷取表情包"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),e.jsx(Ze,{id:"steal_emoji",checked:s.steal_emoji,onCheckedChange:l=>a({...s,steal_emoji:l})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"content_filtration",children:"启用表情包过滤"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),e.jsx(Ze,{id:"content_filtration",checked:s.content_filtration,onCheckedChange:l=>a({...s,content_filtration:l})})]}),s.content_filtration&&e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"filtration_prompt",children:"过滤要求"}),e.jsx(pe,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:s.filtration_prompt,onChange:l=>a({...s,filtration_prompt:l.target.value})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function t4({config:s,onChange:a}){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"enable_tool",children:"启用工具系统"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),e.jsx(Ze,{id:"enable_tool",checked:s.enable_tool,onCheckedChange:l=>a({...s,enable_tool:l})})]}),e.jsx(oo,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"enable_mood",children:"启用情绪系统"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),e.jsx(Ze,{id:"enable_mood",checked:s.enable_mood,onCheckedChange:l=>a({...s,enable_mood:l})})]}),s.enable_mood&&e.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),e.jsx(pe,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:s.mood_update_threshold||1,onChange:l=>a({...s,mood_update_threshold:Number(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(U,{htmlFor:"emotion_style",children:"情感特征"}),e.jsx(Dt,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:s.emotion_style||"",onChange:l=>a({...s,emotion_style:l.target.value}),rows:2}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),e.jsx(oo,{}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx(U,{htmlFor:"all_global",children:"启用全局黑话模式"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),e.jsx(Ze,{id:"all_global",checked:s.all_global,onCheckedChange:l=>a({...s,all_global:l})})]})]})}async function Fe(s,a){const l=await fetch(s,a);if(l.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return l}function Ie(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function s4(){const s=await Fe("/api/webui/config/bot",{method:"GET",headers:Ie()});if(!s.ok)throw new Error("读取Bot配置失败");const l=(await s.json()).config.bot||{};return{qq_account:l.qq_account||0,nickname:l.nickname||"",alias_names:l.alias_names||[]}}async function n4(){const s=await Fe("/api/webui/config/bot",{method:"GET",headers:Ie()});if(!s.ok)throw new Error("读取人格配置失败");const l=(await s.json()).config.personality||{};return{personality:l.personality||"",reply_style:l.reply_style||"",interest:l.interest||"",plan_style:l.plan_style||"",private_plan_style:l.private_plan_style||""}}async function a4(){const s=await Fe("/api/webui/config/bot",{method:"GET",headers:Ie()});if(!s.ok)throw new Error("读取表情包配置失败");const l=(await s.json()).config.emoji||{};return{emoji_chance:l.emoji_chance??.4,max_reg_num:l.max_reg_num??40,do_replace:l.do_replace??!0,check_interval:l.check_interval??10,steal_emoji:l.steal_emoji??!0,content_filtration:l.content_filtration??!1,filtration_prompt:l.filtration_prompt||""}}async function l4(){const s=await Fe("/api/webui/config/bot",{method:"GET",headers:Ie()});if(!s.ok)throw new Error("读取其他配置失败");const l=(await s.json()).config,i=l.tool||{},c=l.mood||{},d=l.jargon||{};return{enable_tool:i.enable_tool??!0,enable_mood:c.enable_mood??!1,mood_update_threshold:c.mood_update_threshold,emotion_style:c.emotion_style,all_global:d.all_global??!0}}async function r4(s){const a=await Fe("/api/webui/config/bot/section/bot",{method:"POST",headers:Ie(),body:JSON.stringify(s)});if(!a.ok){const l=await a.json();throw new Error(l.detail||"保存Bot基础配置失败")}return await a.json()}async function i4(s){const a=await Fe("/api/webui/config/bot/section/personality",{method:"POST",headers:Ie(),body:JSON.stringify(s)});if(!a.ok){const l=await a.json();throw new Error(l.detail||"保存人格配置失败")}return await a.json()}async function o4(s){const a=await Fe("/api/webui/config/bot/section/emoji",{method:"POST",headers:Ie(),body:JSON.stringify(s)});if(!a.ok){const l=await a.json();throw new Error(l.detail||"保存表情包配置失败")}return await a.json()}async function c4(s){const a=[];a.push(Fe("/api/webui/config/bot/section/tool",{method:"POST",headers:Ie(),body:JSON.stringify({enable_tool:s.enable_tool})})),a.push(Fe("/api/webui/config/bot/section/jargon",{method:"POST",headers:Ie(),body:JSON.stringify({all_global:s.all_global})}));const l={enable_mood:s.enable_mood};s.enable_mood&&(l.mood_update_threshold=s.mood_update_threshold||1,l.emotion_style=s.emotion_style||""),a.push(Fe("/api/webui/config/bot/section/mood",{method:"POST",headers:Ie(),body:JSON.stringify(l)}));const i=await Promise.all(a);for(const c of i)if(!c.ok){const d=await c.json();throw new Error(d.detail||"保存其他配置失败")}return{success:!0}}async function Lj(){const s=localStorage.getItem("access-token"),a=await Fe("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${s}`}});if(!a.ok){const l=await a.json();throw new Error(l.message||"标记配置完成失败")}return await a.json()}function d4(){const s=qn(),{toast:a}=Es(),[l,i]=x.useState(0),[c,d]=x.useState(!1),[m,h]=x.useState(!1),[p,v]=x.useState(!0),[g,j]=x.useState({qq_account:0,nickname:"",alias_names:[]}),[b,w]=x.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.请控制你的发言频率,不要太过频繁的发言 -4.如果有人对你感到厌烦,请减少回复 -5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 -2.如果相同的内容已经被执行,请不要重复执行 -3.某句话如果已经被回复过,不要重复回复`}),[S,C]=x.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[N,T]=x.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),P=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:P2},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:Ey},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:gh},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Tn},{id:"complete",title:"完成设置",description:"后续配置提示",icon:ao}],M=(l+1)/P.length*100;x.useEffect(()=>{(async()=>{try{v(!0);const[$,oe,je,ae]=await Promise.all([s4(),n4(),a4(),l4()]);j($),w(oe),C(je),T(ae)}catch($){a({title:"加载配置失败",description:$ instanceof Error?$.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{v(!1)}})()},[a]);const k=async()=>{h(!0);try{switch(l){case 0:await r4(g);break;case 1:await i4(b);break;case 2:await o4(S);break;case 3:await c4(N);break}return a({title:"保存成功",description:`${P[l].title}配置已保存`}),!0}catch(G){return a({title:"保存失败",description:G instanceof Error?G.message:"未知错误",variant:"destructive"}),!1}finally{h(!1)}},D=async()=>{await k()&&l{l>0&&i(l-1)},E=async()=>{d(!0);try{if(!await k()){d(!1);return}await Lj(),a({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{s({to:"/"})},500)}catch(G){a({title:"完成失败",description:G instanceof Error?G.message:"未知错误",variant:"destructive"})}finally{d(!1)}},B=async()=>{try{await Lj(),s({to:"/"})}catch(G){a({title:"跳过失败",description:G instanceof Error?G.message:"未知错误",variant:"destructive"})}},Y=()=>{switch(l){case 0:return e.jsx(ZE,{config:g,onChange:j});case 1:return e.jsx(JE,{config:b,onChange:w});case 2:return e.jsx(e4,{config:S,onChange:C});case 3:return e.jsx(t4,{config:N,onChange:T});case 4:return e.jsxs("div",{className:"space-y-6 text-center py-8",children:[e.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:e.jsx(ao,{className:"h-8 w-8 text-primary",strokeWidth:2})}),e.jsxs("div",{className:"space-y-3",children:[e.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),e.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5",children:e.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5",children:e.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"添加模型"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"mt-0.5",children:e.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium",children:"配置模型任务"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return e.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[e.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[e.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),e.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),p?e.jsxs("div",{className:"relative z-10 text-center",children:[e.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:e.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),e.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),e.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[e.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[e.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:e.jsx(z2,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),e.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),e.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",Rh," 的初始配置"]})]}),e.jsxs("div",{className:"mb-6 md:mb-8",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[e.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",l+1," / ",P.length]}),e.jsxs("span",{className:"font-medium text-primary",children:[Math.round(M),"%"]})]}),e.jsx(_o,{value:M,className:"h-2"})]}),e.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:P.map((G,$)=>{const oe=G.icon;return e.jsxs("div",{className:Z("flex flex-1 flex-col items-center gap-1 md:gap-2",$s({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[e.jsx(fd,{className:"h-4 w-4"}),"返回首页"]}),e.jsxs(q,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[e.jsx(My,{className:"h-4 w-4"}),"返回上一页"]})]}),e.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:e.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var F0=["PageUp","PageDown"],Y0=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],q0={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},ei="Slider",[$f,u4,m4]=_d(ei),[V0]=Dn(ei,[m4]),[f4,Fd]=V0(ei),G0=x.forwardRef((s,a)=>{const{name:l,min:i=0,max:c=100,step:d=1,orientation:m="horizontal",disabled:h=!1,minStepsBetweenThumbs:p=0,defaultValue:v=[i],value:g,onValueChange:j=()=>{},onValueCommit:b=()=>{},inverted:w=!1,form:S,...C}=s,N=x.useRef(new Set),T=x.useRef(0),M=m==="horizontal"?h4:x4,[k=[],D]=Qa({prop:g,defaultProp:v,onChange:$=>{[...N.current][T.current]?.focus(),j($)}}),A=x.useRef(k);function E($){const oe=y4(k,$);G($,oe)}function B($){G($,T.current)}function Y(){const $=A.current[T.current];k[T.current]!==$&&b(k)}function G($,oe,{commit:je}={commit:!1}){const ae=S4(d),me=_4(Math.round(($-i)/d)*d+i,ae),R=rh(me,[i,c]);D((O=[])=>{const L=v4(O,R,oe);if(w4(L,p*d)){T.current=L.indexOf(R);const ee=String(L)!==String(O);return ee&&je&&b(L),ee?L:O}else return O})}return e.jsx(f4,{scope:s.__scopeSlider,name:l,disabled:h,min:i,max:c,valueIndexToChangeRef:T,thumbs:N.current,values:k,orientation:m,form:S,children:e.jsx($f.Provider,{scope:s.__scopeSlider,children:e.jsx($f.Slot,{scope:s.__scopeSlider,children:e.jsx(M,{"aria-disabled":h,"data-disabled":h?"":void 0,...C,ref:a,onPointerDown:be(C.onPointerDown,()=>{h||(A.current=k)}),min:i,max:c,inverted:w,onSlideStart:h?void 0:E,onSlideMove:h?void 0:B,onSlideEnd:h?void 0:Y,onHomeKeyDown:()=>!h&&G(i,0,{commit:!0}),onEndKeyDown:()=>!h&&G(c,k.length-1,{commit:!0}),onStepKeyDown:({event:$,direction:oe})=>{if(!h){const me=F0.includes($.key)||$.shiftKey&&Y0.includes($.key)?10:1,R=T.current,O=k[R],L=d*me*oe;G(O+L,R,{commit:!0})}}})})})})});G0.displayName=ei;var[$0,I0]=V0(ei,{startEdge:"left",endEdge:"right",size:"width",direction:1}),h4=x.forwardRef((s,a)=>{const{min:l,max:i,dir:c,inverted:d,onSlideStart:m,onSlideMove:h,onSlideEnd:p,onStepKeyDown:v,...g}=s,[j,b]=x.useState(null),w=Tt(a,M=>b(M)),S=x.useRef(void 0),C=xo(c),N=C==="ltr",T=N&&!d||!N&&d;function P(M){const k=S.current||j.getBoundingClientRect(),D=[0,k.width],E=zh(D,T?[l,i]:[i,l]);return S.current=k,E(M-k.left)}return e.jsx($0,{scope:s.__scopeSlider,startEdge:T?"left":"right",endEdge:T?"right":"left",direction:T?1:-1,size:"width",children:e.jsx(W0,{dir:C,"data-orientation":"horizontal",...g,ref:w,style:{...g.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:M=>{const k=P(M.clientX);m?.(k)},onSlideMove:M=>{const k=P(M.clientX);h?.(k)},onSlideEnd:()=>{S.current=void 0,p?.()},onStepKeyDown:M=>{const D=q0[T?"from-left":"from-right"].includes(M.key);v?.({event:M,direction:D?-1:1})}})})}),x4=x.forwardRef((s,a)=>{const{min:l,max:i,inverted:c,onSlideStart:d,onSlideMove:m,onSlideEnd:h,onStepKeyDown:p,...v}=s,g=x.useRef(null),j=Tt(a,g),b=x.useRef(void 0),w=!c;function S(C){const N=b.current||g.current.getBoundingClientRect(),T=[0,N.height],M=zh(T,w?[i,l]:[l,i]);return b.current=N,M(C-N.top)}return e.jsx($0,{scope:s.__scopeSlider,startEdge:w?"bottom":"top",endEdge:w?"top":"bottom",size:"height",direction:w?1:-1,children:e.jsx(W0,{"data-orientation":"vertical",...v,ref:j,style:{...v.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:C=>{const N=S(C.clientY);d?.(N)},onSlideMove:C=>{const N=S(C.clientY);m?.(N)},onSlideEnd:()=>{b.current=void 0,h?.()},onStepKeyDown:C=>{const T=q0[w?"from-bottom":"from-top"].includes(C.key);p?.({event:C,direction:T?-1:1})}})})}),W0=x.forwardRef((s,a)=>{const{__scopeSlider:l,onSlideStart:i,onSlideMove:c,onSlideEnd:d,onHomeKeyDown:m,onEndKeyDown:h,onStepKeyDown:p,...v}=s,g=Fd(ei,l);return e.jsx(dt.span,{...v,ref:a,onKeyDown:be(s.onKeyDown,j=>{j.key==="Home"?(m(j),j.preventDefault()):j.key==="End"?(h(j),j.preventDefault()):F0.concat(Y0).includes(j.key)&&(p(j),j.preventDefault())}),onPointerDown:be(s.onPointerDown,j=>{const b=j.target;b.setPointerCapture(j.pointerId),j.preventDefault(),g.thumbs.has(b)?b.focus():i(j)}),onPointerMove:be(s.onPointerMove,j=>{j.target.hasPointerCapture(j.pointerId)&&c(j)}),onPointerUp:be(s.onPointerUp,j=>{const b=j.target;b.hasPointerCapture(j.pointerId)&&(b.releasePointerCapture(j.pointerId),d(j))})})}),X0="SliderTrack",K0=x.forwardRef((s,a)=>{const{__scopeSlider:l,...i}=s,c=Fd(X0,l);return e.jsx(dt.span,{"data-disabled":c.disabled?"":void 0,"data-orientation":c.orientation,...i,ref:a})});K0.displayName=X0;var If="SliderRange",Q0=x.forwardRef((s,a)=>{const{__scopeSlider:l,...i}=s,c=Fd(If,l),d=I0(If,l),m=x.useRef(null),h=Tt(a,m),p=c.values.length,v=c.values.map(b=>eN(b,c.min,c.max)),g=p>1?Math.min(...v):0,j=100-Math.max(...v);return e.jsx(dt.span,{"data-orientation":c.orientation,"data-disabled":c.disabled?"":void 0,...i,ref:h,style:{...s.style,[d.startEdge]:g+"%",[d.endEdge]:j+"%"}})});Q0.displayName=If;var Wf="SliderThumb",Z0=x.forwardRef((s,a)=>{const l=u4(s.__scopeSlider),[i,c]=x.useState(null),d=Tt(a,h=>c(h)),m=x.useMemo(()=>i?l().findIndex(h=>h.ref.current===i):-1,[l,i]);return e.jsx(p4,{...s,ref:d,index:m})}),p4=x.forwardRef((s,a)=>{const{__scopeSlider:l,index:i,name:c,...d}=s,m=Fd(Wf,l),h=I0(Wf,l),[p,v]=x.useState(null),g=Tt(a,P=>v(P)),j=p?m.form||!!p.closest("form"):!0,b=dy(p),w=m.values[i],S=w===void 0?0:eN(w,m.min,m.max),C=j4(i,m.values.length),N=b?.[h.size],T=N?b4(N,S,h.direction):0;return x.useEffect(()=>{if(p)return m.thumbs.add(p),()=>{m.thumbs.delete(p)}},[p,m.thumbs]),e.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[h.startEdge]:`calc(${S}% + ${T}px)`},children:[e.jsx($f.ItemSlot,{scope:s.__scopeSlider,children:e.jsx(dt.span,{role:"slider","aria-label":s["aria-label"]||C,"aria-valuemin":m.min,"aria-valuenow":w,"aria-valuemax":m.max,"aria-orientation":m.orientation,"data-orientation":m.orientation,"data-disabled":m.disabled?"":void 0,tabIndex:m.disabled?void 0:0,...d,ref:g,style:w===void 0?{display:"none"}:s.style,onFocus:be(s.onFocus,()=>{m.valueIndexToChangeRef.current=i})})}),j&&e.jsx(J0,{name:c??(m.name?m.name+(m.values.length>1?"[]":""):void 0),form:m.form,value:w},i)]})});Z0.displayName=Wf;var g4="RadioBubbleInput",J0=x.forwardRef(({__scopeSlider:s,value:a,...l},i)=>{const c=x.useRef(null),d=Tt(c,i),m=cy(a);return x.useEffect(()=>{const h=c.current;if(!h)return;const p=window.HTMLInputElement.prototype,g=Object.getOwnPropertyDescriptor(p,"value").set;if(m!==a&&g){const j=new Event("input",{bubbles:!0});g.call(h,a),h.dispatchEvent(j)}},[m,a]),e.jsx(dt.input,{style:{display:"none"},...l,ref:d,defaultValue:a})});J0.displayName=g4;function v4(s=[],a,l){const i=[...s];return i[l]=a,i.sort((c,d)=>c-d)}function eN(s,a,l){const d=100/(l-a)*(s-a);return rh(d,[0,100])}function j4(s,a){return a>2?`Value ${s+1} of ${a}`:a===2?["Minimum","Maximum"][s]:void 0}function y4(s,a){if(s.length===1)return 0;const l=s.map(c=>Math.abs(c-a)),i=Math.min(...l);return l.indexOf(i)}function b4(s,a,l){const i=s/2,d=zh([0,50],[0,i]);return(i-d(a)*l)*l}function N4(s){return s.slice(0,-1).map((a,l)=>s[l+1]-a)}function w4(s,a){if(a>0){const l=N4(s);return Math.min(...l)>=a}return!0}function zh(s,a){return l=>{if(s[0]===s[1]||a[0]===a[1])return a[0];const i=(a[1]-a[0])/(s[1]-s[0]);return a[0]+i*(l-s[0])}}function S4(s){return(String(s).split(".")[1]||"").length}function _4(s,a){const l=Math.pow(10,a);return Math.round(s*l)/l}var tN=G0,C4=K0,k4=Q0,T4=Z0;const Yd=x.forwardRef(({className:s,...a},l)=>e.jsxs(tN,{ref:l,className:Z("relative flex w-full touch-none select-none items-center",s),...a,children:[e.jsx(C4,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:e.jsx(k4,{className:"absolute h-full bg-primary"})}),e.jsx(T4,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));Yd.displayName=tN.displayName;const rt=y2,it=b2,at=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(hy,{ref:i,className:Z("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",s),...l,children:[a,e.jsx(x2,{asChild:!0,children:e.jsx(lo,{className:"h-4 w-4 opacity-50"})})]}));at.displayName=hy.displayName;const sN=x.forwardRef(({className:s,...a},l)=>e.jsx(xy,{ref:l,className:Z("flex cursor-default items-center justify-center py-1",s),...a,children:e.jsx(Pf,{className:"h-4 w-4"})}));sN.displayName=xy.displayName;const nN=x.forwardRef(({className:s,...a},l)=>e.jsx(py,{ref:l,className:Z("flex cursor-default items-center justify-center py-1",s),...a,children:e.jsx(lo,{className:"h-4 w-4"})}));nN.displayName=py.displayName;const lt=x.forwardRef(({className:s,children:a,position:l="popper",...i},c)=>e.jsx(p2,{children:e.jsxs(gy,{ref:c,className:Z("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",l==="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",s),position:l,...i,children:[e.jsx(sN,{}),e.jsx(g2,{className:Z("p-1",l==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:a}),e.jsx(nN,{})]})}));lt.displayName=gy.displayName;const E4=x.forwardRef(({className:s,...a},l)=>e.jsx(vy,{ref:l,className:Z("px-2 py-1.5 text-sm font-semibold",s),...a}));E4.displayName=vy.displayName;const ye=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(jy,{ref:i,className:Z("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...l,children:[e.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(v2,{children:e.jsx(Cl,{className:"h-4 w-4"})})}),e.jsx(j2,{children:a})]}));ye.displayName=jy.displayName;const M4=x.forwardRef(({className:s,...a},l)=>e.jsx(yy,{ref:l,className:Z("-mx-1 my-1 h-px bg-muted",s),...a}));M4.displayName=yy.displayName;function D4(s){const a=O4(s),l=x.forwardRef((i,c)=>{const{children:d,...m}=i,h=x.Children.toArray(d),p=h.find(R4);if(p){const v=p.props.children,g=h.map(j=>j===p?x.Children.count(v)>1?x.Children.only(null):x.isValidElement(v)?v.props.children:null:j);return e.jsx(a,{...m,ref:c,children:x.isValidElement(v)?x.cloneElement(v,void 0,g):null})}return e.jsx(a,{...m,ref:c,children:d})});return l.displayName=`${s}.Slot`,l}function O4(s){const a=x.forwardRef((l,i)=>{const{children:c,...d}=l;if(x.isValidElement(c)){const m=P4(c),h=z4(d,c.props);return c.type!==x.Fragment&&(h.ref=i?Ga(i,m):m),x.cloneElement(c,h)}return x.Children.count(c)>1?x.Children.only(null):null});return a.displayName=`${s}.SlotClone`,a}var A4=Symbol("radix.slottable");function R4(s){return x.isValidElement(s)&&typeof s.type=="function"&&"__radixId"in s.type&&s.type.__radixId===A4}function z4(s,a){const l={...a};for(const i in a){const c=s[i],d=a[i];/^on[A-Z]/.test(i)?c&&d?l[i]=(...h)=>{const p=d(...h);return c(...h),p}:c&&(l[i]=c):i==="style"?l[i]={...c,...d}:i==="className"&&(l[i]=[c,d].filter(Boolean).join(" "))}return{...s,...l}}function P4(s){let a=Object.getOwnPropertyDescriptor(s.props,"ref")?.get,l=a&&"isReactWarning"in a&&a.isReactWarning;return l?s.ref:(a=Object.getOwnPropertyDescriptor(s,"ref")?.get,l=a&&"isReactWarning"in a&&a.isReactWarning,l?s.props.ref:s.props.ref||s.ref)}var qd="Popover",[aN]=Dn(qd,[Wr]),Co=Wr(),[L4,Za]=aN(qd),lN=s=>{const{__scopePopover:a,children:l,open:i,defaultOpen:c,onOpenChange:d,modal:m=!1}=s,h=Co(a),p=x.useRef(null),[v,g]=x.useState(!1),[j,b]=Qa({prop:i,defaultProp:c??!1,onChange:d,caller:qd});return e.jsx(Ed,{...h,children:e.jsx(L4,{scope:a,contentId:jn(),triggerRef:p,open:j,onOpenChange:b,onOpenToggle:x.useCallback(()=>b(w=>!w),[b]),hasCustomAnchor:v,onCustomAnchorAdd:x.useCallback(()=>g(!0),[]),onCustomAnchorRemove:x.useCallback(()=>g(!1),[]),modal:m,children:l})})};lN.displayName=qd;var rN="PopoverAnchor",B4=x.forwardRef((s,a)=>{const{__scopePopover:l,...i}=s,c=Za(rN,l),d=Co(l),{onCustomAnchorAdd:m,onCustomAnchorRemove:h}=c;return x.useEffect(()=>(m(),()=>h()),[m,h]),e.jsx(Md,{...d,...i,ref:a})});B4.displayName=rN;var iN="PopoverTrigger",oN=x.forwardRef((s,a)=>{const{__scopePopover:l,...i}=s,c=Za(iN,l),d=Co(l),m=Tt(a,c.triggerRef),h=e.jsx(dt.button,{type:"button","aria-haspopup":"dialog","aria-expanded":c.open,"aria-controls":c.contentId,"data-state":fN(c.open),...i,ref:m,onClick:be(s.onClick,c.onOpenToggle)});return c.hasCustomAnchor?h:e.jsx(Md,{asChild:!0,...d,children:h})});oN.displayName=iN;var Ph="PopoverPortal",[U4,H4]=aN(Ph,{forceMount:void 0}),cN=s=>{const{__scopePopover:a,forceMount:l,children:i,container:c}=s,d=Za(Ph,a);return e.jsx(U4,{scope:a,forceMount:l,children:e.jsx(Is,{present:l||d.open,children:e.jsx(Td,{asChild:!0,container:c,children:i})})})};cN.displayName=Ph;var $r="PopoverContent",dN=x.forwardRef((s,a)=>{const l=H4($r,s.__scopePopover),{forceMount:i=l.forceMount,...c}=s,d=Za($r,s.__scopePopover);return e.jsx(Is,{present:i||d.open,children:d.modal?e.jsx(Y4,{...c,ref:a}):e.jsx(q4,{...c,ref:a})})});dN.displayName=$r;var F4=D4("PopoverContent.RemoveScroll"),Y4=x.forwardRef((s,a)=>{const l=Za($r,s.__scopePopover),i=x.useRef(null),c=Tt(a,i),d=x.useRef(!1);return x.useEffect(()=>{const m=i.current;if(m)return by(m)},[]),e.jsx(Ny,{as:F4,allowPinchZoom:!0,children:e.jsx(uN,{...s,ref:c,trapFocus:l.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:be(s.onCloseAutoFocus,m=>{m.preventDefault(),d.current||l.triggerRef.current?.focus()}),onPointerDownOutside:be(s.onPointerDownOutside,m=>{const h=m.detail.originalEvent,p=h.button===0&&h.ctrlKey===!0,v=h.button===2||p;d.current=v},{checkForDefaultPrevented:!1}),onFocusOutside:be(s.onFocusOutside,m=>m.preventDefault(),{checkForDefaultPrevented:!1})})})}),q4=x.forwardRef((s,a)=>{const l=Za($r,s.__scopePopover),i=x.useRef(!1),c=x.useRef(!1);return e.jsx(uN,{...s,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:d=>{s.onCloseAutoFocus?.(d),d.defaultPrevented||(i.current||l.triggerRef.current?.focus(),d.preventDefault()),i.current=!1,c.current=!1},onInteractOutside:d=>{s.onInteractOutside?.(d),d.defaultPrevented||(i.current=!0,d.detail.originalEvent.type==="pointerdown"&&(c.current=!0));const m=d.target;l.triggerRef.current?.contains(m)&&d.preventDefault(),d.detail.originalEvent.type==="focusin"&&c.current&&d.preventDefault()}})}),uN=x.forwardRef((s,a)=>{const{__scopePopover:l,trapFocus:i,onOpenAutoFocus:c,onCloseAutoFocus:d,disableOutsidePointerEvents:m,onEscapeKeyDown:h,onPointerDownOutside:p,onFocusOutside:v,onInteractOutside:g,...j}=s,b=Za($r,l),w=Co(l);return wy(),e.jsx(Sy,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:c,onUnmountAutoFocus:d,children:e.jsx(fh,{asChild:!0,disableOutsidePointerEvents:m,onInteractOutside:g,onEscapeKeyDown:h,onPointerDownOutside:p,onFocusOutside:v,onDismiss:()=>b.onOpenChange(!1),children:e.jsx(hh,{"data-state":fN(b.open),role:"dialog",id:b.contentId,...w,...j,ref:a,style:{...j.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),mN="PopoverClose",V4=x.forwardRef((s,a)=>{const{__scopePopover:l,...i}=s,c=Za(mN,l);return e.jsx(dt.button,{type:"button",...i,ref:a,onClick:be(s.onClick,()=>c.onOpenChange(!1))})});V4.displayName=mN;var G4="PopoverArrow",$4=x.forwardRef((s,a)=>{const{__scopePopover:l,...i}=s,c=Co(l);return e.jsx(xh,{...c,...i,ref:a})});$4.displayName=G4;function fN(s){return s?"open":"closed"}var I4=lN,W4=oN,X4=cN,hN=dN;const Ia=I4,Wa=W4,pa=x.forwardRef(({className:s,align:a="center",sideOffset:l=4,...i},c)=>e.jsx(X4,{children:e.jsx(hN,{ref:c,align:a,sideOffset:l,className:Z("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",s),...i})}));pa.displayName=hN.displayName;const ti="/api/webui/config";async function K4(){const a=await(await Fe(`${ti}/bot`)).json();if(!a.success)throw new Error("获取配置数据失败");return a.config}async function Ur(){const a=await(await Fe(`${ti}/model`)).json();if(!a.success)throw new Error("获取模型配置数据失败");return a.config}async function Bj(s){const l=await(await Fe(`${ti}/bot`,{method:"POST",headers:Ie(),body:JSON.stringify(s)})).json();if(!l.success)throw new Error(l.message||"保存配置失败")}async function Nd(s){const l=await(await Fe(`${ti}/model`,{method:"POST",headers:Ie(),body:JSON.stringify(s)})).json();if(!l.success)throw new Error(l.message||"保存配置失败")}async function Q4(s,a){const i=await(await Fe(`${ti}/bot/section/${s}`,{method:"POST",headers:Ie(),body:JSON.stringify(a)})).json();if(!i.success)throw new Error(i.message||`保存配置节 ${s} 失败`)}async function Xf(s,a){const i=await(await Fe(`${ti}/model/section/${s}`,{method:"POST",headers:Ie(),body:JSON.stringify(a)})).json();if(!i.success)throw new Error(i.message||`保存配置节 ${s} 失败`)}const Z4=$t.create({baseURL:"",timeout:1e4});async function Lh(){try{return(await Z4.post("/api/webui/system/restart")).data}catch(s){throw console.error("重启麦麦失败:",s),s}}const J4=Jr("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),Vd=x.forwardRef(({className:s,variant:a,...l},i)=>e.jsx("div",{ref:i,role:"alert",className:Z(J4({variant:a}),s),...l}));Vd.displayName="Alert";const eM=x.forwardRef(({className:s,...a},l)=>e.jsx("h5",{ref:l,className:Z("mb-1 font-medium leading-none tracking-tight",s),...a}));eM.displayName="AlertTitle";const Gd=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{ref:l,className:Z("text-sm [&_p]:leading-relaxed",s),...a}));Gd.displayName="AlertDescription";function Bh({onRestartComplete:s,onRestartFailed:a}){const[l,i]=x.useState(0),[c,d]=x.useState("restarting"),[m,h]=x.useState(0),[p,v]=x.useState(0);x.useEffect(()=>{const b=setInterval(()=>{i(C=>C>=90?C:C+1)},200),w=setInterval(()=>{h(C=>C+1)},1e3),S=setTimeout(()=>{d("checking"),g()},3e3);return()=>{clearInterval(b),clearInterval(w),clearTimeout(S)}},[]);const g=()=>{const w=async()=>{try{if(v(C=>C+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)i(100),d("success"),setTimeout(()=>{s?.()},1500);else throw new Error("Status check failed")}catch{p<60?setTimeout(w,2e3):(d("failed"),a?.())}};w()},j=b=>{const w=Math.floor(b/60),S=b%60;return`${w}:${S.toString().padStart(2,"0")}`};return e.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:e.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[e.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[c==="restarting"&&e.jsxs(e.Fragment,{children:[e.jsx(ro,{className:"h-16 w-16 text-primary animate-spin"}),e.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),e.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),c==="checking"&&e.jsxs(e.Fragment,{children:[e.jsx(ro,{className:"h-16 w-16 text-primary animate-spin"}),e.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),e.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",p,"/60)"]})]}),c==="success"&&e.jsxs(e.Fragment,{children:[e.jsx(Ys,{className:"h-16 w-16 text-green-500"}),e.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),e.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),c==="failed"&&e.jsxs(e.Fragment,{children:[e.jsx(Tl,{className:"h-16 w-16 text-destructive"}),e.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),e.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),c!=="failed"&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(_o,{value:l,className:"h-2"}),e.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[e.jsxs("span",{children:[l,"%"]}),e.jsxs("span",{children:["已用时: ",j(m)]})]})]}),e.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:e.jsxs("p",{className:"text-sm text-muted-foreground",children:[c==="restarting"&&"🔄 配置已保存,正在重启主程序...",c==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",c==="success"&&"✅ 配置已生效,服务运行正常",c==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),c==="failed"&&e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),e.jsx("button",{onClick:()=>{d("checking"),v(0),g()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function tM(){const[s,a]=x.useState(!0),[l,i]=x.useState(!1),[c,d]=x.useState(!1),[m,h]=x.useState(!1),[p,v]=x.useState(!1),[g,j]=x.useState(!1),{toast:b}=Es(),[w,S]=x.useState(null),[C,N]=x.useState(null),[T,P]=x.useState(null),[M,k]=x.useState(null),[D,A]=x.useState(null),[E,B]=x.useState(null),[Y,G]=x.useState(null),[$,oe]=x.useState(null),[je,ae]=x.useState(null),[me,R]=x.useState(null),[O,L]=x.useState(null),[ee,le]=x.useState(null),[xe,F]=x.useState(null),[W,fe]=x.useState(null),[I,ve]=x.useState(null),[de,Ce]=x.useState(null),[Q,Oe]=x.useState(null),[$e,re]=x.useState(null),Pe=x.useRef(null),ze=x.useRef(!0),Zt=x.useRef({}),Rs=x.useCallback(async()=>{try{a(!0);const ke=await K4();Zt.current=ke,S(ke.bot),N(ke.personality);const is=ke.chat;is.talk_value_rules||(is.talk_value_rules=[]),P(is),k(ke.expression),A(ke.emoji),B(ke.memory),G(ke.tool),oe(ke.mood),ae(ke.voice),R(ke.lpmm_knowledge),L(ke.keyword_reaction),le(ke.response_post_process),F(ke.chinese_typo),fe(ke.response_splitter),ve(ke.log),Ce(ke.debug),Oe(ke.maim_message),re(ke.telemetry),h(!1),ze.current=!1}catch(ke){console.error("加载配置失败:",ke),b({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{a(!1)}},[b]);x.useEffect(()=>{Rs()},[Rs]);const An=x.useCallback(async(ke,is)=>{if(!ze.current)try{d(!0),await Q4(ke,is),h(!1)}catch(he){console.error(`自动保存 ${ke} 失败:`,he),h(!0)}finally{d(!1)}},[]),Le=x.useCallback((ke,is)=>{ze.current||(h(!0),Pe.current&&clearTimeout(Pe.current),Pe.current=setTimeout(()=>{An(ke,is)},2e3))},[An]);x.useEffect(()=>{w&&!ze.current&&Le("bot",w)},[w,Le]),x.useEffect(()=>{C&&!ze.current&&Le("personality",C)},[C,Le]),x.useEffect(()=>{T&&!ze.current&&Le("chat",T)},[T,Le]),x.useEffect(()=>{M&&!ze.current&&Le("expression",M)},[M,Le]),x.useEffect(()=>{D&&!ze.current&&Le("emoji",D)},[D,Le]),x.useEffect(()=>{E&&!ze.current&&Le("memory",E)},[E,Le]),x.useEffect(()=>{Y&&!ze.current&&Le("tool",Y)},[Y,Le]),x.useEffect(()=>{$&&!ze.current&&Le("mood",$)},[$,Le]),x.useEffect(()=>{je&&!ze.current&&Le("voice",je)},[je,Le]),x.useEffect(()=>{me&&!ze.current&&Le("lpmm_knowledge",me)},[me,Le]),x.useEffect(()=>{O&&!ze.current&&Le("keyword_reaction",O)},[O,Le]),x.useEffect(()=>{ee&&!ze.current&&Le("response_post_process",ee)},[ee,Le]),x.useEffect(()=>{xe&&!ze.current&&Le("chinese_typo",xe)},[xe,Le]),x.useEffect(()=>{W&&!ze.current&&Le("response_splitter",W)},[W,Le]),x.useEffect(()=>{I&&!ze.current&&Le("log",I)},[I,Le]),x.useEffect(()=>{de&&!ze.current&&Le("debug",de)},[de,Le]),x.useEffect(()=>{Q&&!ze.current&&Le("maim_message",Q)},[Q,Le]),x.useEffect(()=>{$e&&!ze.current&&Le("telemetry",$e)},[$e,Le]);const Nn=async()=>{try{i(!0),Pe.current&&clearTimeout(Pe.current);const ke={...Zt.current,bot:w,personality:C,chat:T,expression:M,emoji:D,memory:E,tool:Y,mood:$,voice:je,lpmm_knowledge:me,keyword_reaction:O,response_post_process:ee,chinese_typo:xe,response_splitter:W,log:I,debug:de,maim_message:Q,telemetry:$e};await Bj(ke),h(!1),b({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(ke){console.error("保存配置失败:",ke),b({title:"保存失败",description:ke.message,variant:"destructive"})}finally{i(!1)}},ln=async()=>{try{v(!0),Lh().catch(()=>{}),j(!0)}catch(ke){console.error("重启失败:",ke),j(!1),b({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),v(!1)}},rn=async()=>{try{i(!0),Pe.current&&clearTimeout(Pe.current);const ke={...Zt.current,bot:w,personality:C,chat:T,expression:M,emoji:D,memory:E,tool:Y,mood:$,voice:je,lpmm_knowledge:me,keyword_reaction:O,response_post_process:ee,chinese_typo:xe,response_splitter:W,log:I,debug:de,maim_message:Q,telemetry:$e};await Bj(ke),h(!1),b({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(is=>setTimeout(is,500)),await ln()}catch(ke){console.error("保存失败:",ke),b({title:"保存失败",description:ke.message,variant:"destructive"})}finally{i(!1)}},Xt=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Ds=()=>{j(!1),v(!1),b({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return s?e.jsx(Ct,{className:"h-full",children:e.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),e.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[e.jsxs(q,{onClick:Nn,disabled:l||c||!m||p,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[e.jsx(vh,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),l?"保存中...":c?"自动保存中...":m?"保存配置":"已保存"]}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{disabled:l||c||p,size:"sm",className:"flex-1 sm:flex-none",children:[e.jsx(jh,{className:"mr-2 h-4 w-4"}),p?"重启中...":m?"保存并重启":"重启麦麦"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重启麦麦?"}),e.jsx(Pt,{children:m?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:m?rn:ln,children:m?"保存并重启":"确认重启"})]})]})]})]})]}),e.jsxs(Vd,{children:[e.jsx(Fr,{className:"h-4 w-4"}),e.jsxs(Gd,{children:["配置更新后需要",e.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),e.jsxs(Ml,{defaultValue:"bot",className:"w-full",children:[e.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:e.jsxs($a,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[e.jsx(bt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),e.jsx(bt,{value:"personality",className:"flex-shrink-0",children:"人格"}),e.jsx(bt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),e.jsx(bt,{value:"expression",className:"flex-shrink-0",children:"表达"}),e.jsx(bt,{value:"features",className:"flex-shrink-0",children:"功能"}),e.jsx(bt,{value:"processing",className:"flex-shrink-0",children:"处理"}),e.jsx(bt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),e.jsx(bt,{value:"voice",className:"flex-shrink-0",children:"语音"}),e.jsx(bt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),e.jsx(bt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),e.jsx(Vt,{value:"bot",className:"space-y-4",children:w&&e.jsx(sM,{config:w,onChange:S})}),e.jsx(Vt,{value:"personality",className:"space-y-4",children:C&&e.jsx(nM,{config:C,onChange:N})}),e.jsx(Vt,{value:"chat",className:"space-y-4",children:T&&e.jsx(aM,{config:T,onChange:P})}),e.jsx(Vt,{value:"expression",className:"space-y-4",children:M&&e.jsx(lM,{config:M,onChange:k})}),e.jsx(Vt,{value:"features",className:"space-y-4",children:D&&E&&Y&&e.jsx(rM,{emojiConfig:D,memoryConfig:E,toolConfig:Y,onEmojiChange:A,onMemoryChange:B,onToolChange:G})}),e.jsx(Vt,{value:"processing",className:"space-y-4",children:O&&ee&&xe&&W&&e.jsx(iM,{keywordReactionConfig:O,responsePostProcessConfig:ee,chineseTypoConfig:xe,responseSplitterConfig:W,onKeywordReactionChange:L,onResponsePostProcessChange:le,onChineseTypoChange:F,onResponseSplitterChange:fe})}),e.jsx(Vt,{value:"mood",className:"space-y-4",children:$&&e.jsx(oM,{config:$,onChange:oe})}),e.jsx(Vt,{value:"voice",className:"space-y-4",children:je&&e.jsx(cM,{config:je,onChange:ae})}),e.jsx(Vt,{value:"lpmm",className:"space-y-4",children:me&&e.jsx(dM,{config:me,onChange:R})}),e.jsxs(Vt,{value:"other",className:"space-y-4",children:[I&&e.jsx(uM,{config:I,onChange:ve}),de&&e.jsx(mM,{config:de,onChange:Ce}),Q&&e.jsx(fM,{config:Q,onChange:Oe}),$e&&e.jsx(hM,{config:$e,onChange:re})]})]}),g&&e.jsx(Bh,{onRestartComplete:Xt,onRestartFailed:Ds})]})})}function sM({config:s,onChange:a}){const l=()=>{a({...s,platforms:[...s.platforms,""]})},i=p=>{a({...s,platforms:s.platforms.filter((v,g)=>g!==p)})},c=(p,v)=>{const g=[...s.platforms];g[p]=v,a({...s,platforms:g})},d=()=>{a({...s,alias_names:[...s.alias_names,""]})},m=p=>{a({...s,alias_names:s.alias_names.filter((v,g)=>g!==p)})},h=(p,v)=>{const g=[...s.alias_names];g[p]=v,a({...s,alias_names:g})};return e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"platform",children:"平台"}),e.jsx(pe,{id:"platform",value:s.platform,onChange:p=>a({...s,platform:p.target.value}),placeholder:"qq"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"qq_account",children:"QQ账号"}),e.jsx(pe,{id:"qq_account",value:s.qq_account,onChange:p=>a({...s,qq_account:p.target.value}),placeholder:"123456789"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"nickname",children:"昵称"}),e.jsx(pe,{id:"nickname",value:s.nickname,onChange:p=>a({...s,nickname:p.target.value}),placeholder:"麦麦"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{children:"其他平台账号"}),e.jsxs(q,{onClick:l,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加"]})]}),e.jsxs("div",{className:"space-y-2",children:[s.platforms.map((p,v)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx(pe,{value:p,onChange:g=>c(v,g.target.value),placeholder:"wx:114514"}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"icon",variant:"outline",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除平台账号 "',p||"(空)",'" 吗?此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>i(v),children:"删除"})]})]})]})]},v)),s.platforms.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{children:"别名"}),e.jsxs(q,{onClick:d,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加"]})]}),e.jsxs("div",{className:"space-y-2",children:[s.alias_names.map((p,v)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx(pe,{value:p,onChange:g=>h(v,g.target.value),placeholder:"小麦"}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"icon",variant:"outline",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除别名 "',p||"(空)",'" 吗?此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>m(v),children:"删除"})]})]})]})]},v)),s.alias_names.length===0&&e.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function nM({config:s,onChange:a}){const l=()=>{a({...s,states:[...s.states,""]})},i=d=>{a({...s,states:s.states.filter((m,h)=>h!==d)})},c=(d,m)=>{const h=[...s.states];h[d]=m,a({...s,states:h})};return e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"personality",children:"人格特质"}),e.jsx(Dt,{id:"personality",value:s.personality,onChange:d=>a({...s,personality:d.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"reply_style",children:"表达风格"}),e.jsx(Dt,{id:"reply_style",value:s.reply_style,onChange:d=>a({...s,reply_style:d.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"interest",children:"兴趣"}),e.jsx(Dt,{id:"interest",value:s.interest,onChange:d=>a({...s,interest:d.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"plan_style",children:"说话规则与行为风格"}),e.jsx(Dt,{id:"plan_style",value:s.plan_style,onChange:d=>a({...s,plan_style:d.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"visual_style",children:"识图规则"}),e.jsx(Dt,{id:"visual_style",value:s.visual_style,onChange:d=>a({...s,visual_style:d.target.value}),placeholder:"识图时的处理规则",rows:3})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"private_plan_style",children:"私聊规则"}),e.jsx(Dt,{id:"private_plan_style",value:s.private_plan_style,onChange:d=>a({...s,private_plan_style:d.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{children:"状态列表(人格多样性)"}),e.jsxs(q,{onClick:l,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),e.jsx("div",{className:"space-y-2",children:s.states.map((d,m)=>e.jsxs("div",{className:"flex gap-2",children:[e.jsx(Dt,{value:d,onChange:h=>c(m,h.target.value),placeholder:"描述一个人格状态",rows:2}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"icon",variant:"outline",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsx(Pt,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>i(m),children:"删除"})]})]})]})]},m))})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"state_probability",children:"状态替换概率"}),e.jsx(pe,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:s.state_probability,onChange:d=>a({...s,state_probability:parseFloat(d.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function aM({config:s,onChange:a}){const l=()=>{a({...s,talk_value_rules:[...s.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},i=h=>{a({...s,talk_value_rules:s.talk_value_rules.filter((p,v)=>v!==h)})},c=(h,p,v)=>{const g=[...s.talk_value_rules];g[h]={...g[h],[p]:v},a({...s,talk_value_rules:g})},d=({value:h,onChange:p})=>{const[v,g]=x.useState("00"),[j,b]=x.useState("00"),[w,S]=x.useState("23"),[C,N]=x.useState("59");x.useEffect(()=>{const P=h.split("-");if(P.length===2){const[M,k]=P,[D,A]=M.split(":"),[E,B]=k.split(":");D&&g(D.padStart(2,"0")),A&&b(A.padStart(2,"0")),E&&S(E.padStart(2,"0")),B&&N(B.padStart(2,"0"))}},[h]);const T=(P,M,k,D)=>{const A=`${P}:${M}-${k}:${D}`;p(A)};return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[e.jsx(_l,{className:"h-4 w-4 mr-2"}),h||"选择时间段"]})}),e.jsx(pa,{className:"w-80",children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-xs",children:"小时"}),e.jsxs(rt,{value:v,onValueChange:P=>{g(P),T(P,j,w,C)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:Array.from({length:24},(P,M)=>M).map(P=>e.jsx(ye,{value:P.toString().padStart(2,"0"),children:P.toString().padStart(2,"0")},P))})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-xs",children:"分钟"}),e.jsxs(rt,{value:j,onValueChange:P=>{b(P),T(v,P,w,C)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:Array.from({length:60},(P,M)=>M).map(P=>e.jsx(ye,{value:P.toString().padStart(2,"0"),children:P.toString().padStart(2,"0")},P))})]})]})]})]}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-xs",children:"小时"}),e.jsxs(rt,{value:w,onValueChange:P=>{S(P),T(v,j,P,C)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:Array.from({length:24},(P,M)=>M).map(P=>e.jsx(ye,{value:P.toString().padStart(2,"0"),children:P.toString().padStart(2,"0")},P))})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-xs",children:"分钟"}),e.jsxs(rt,{value:C,onValueChange:P=>{N(P),T(v,j,w,P)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:Array.from({length:60},(P,M)=>M).map(P=>e.jsx(ye,{value:P.toString().padStart(2,"0"),children:P.toString().padStart(2,"0")},P))})]})]})]})]})]})})]})},m=({rule:h})=>{const p=`{ target = "${h.target}", time = "${h.time}", value = ${h.value.toFixed(1)} }`;return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"预览"]})}),e.jsx(pa,{className:"w-96",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),e.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:p}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),e.jsx(pe,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:s.talk_value,onChange:h=>a({...s,talk_value:parseFloat(h.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),e.jsx(pe,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:s.mentioned_bot_reply,onChange:h=>a({...s,mentioned_bot_reply:parseFloat(h.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_context_size",children:"上下文长度"}),e.jsx(pe,{id:"max_context_size",type:"number",min:"1",value:s.max_context_size,onChange:h=>a({...s,max_context_size:parseInt(h.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"planner_smooth",children:"规划器平滑"}),e.jsx(pe,{id:"planner_smooth",type:"number",step:"1",min:"0",value:s.planner_smooth,onChange:h=>a({...s,planner_smooth:parseFloat(h.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_talk_value_rules",checked:s.enable_talk_value_rules,onCheckedChange:h=>a({...s,enable_talk_value_rules:h})}),e.jsx(U,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"include_planner_reasoning",checked:s.include_planner_reasoning,onCheckedChange:h=>a({...s,include_planner_reasoning:h})}),e.jsx(U,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),s.enable_talk_value_rules&&e.jsxs("div",{className:"border-t pt-6",children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),e.jsxs(q,{onClick:l,size:"sm",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),s.talk_value_rules&&s.talk_value_rules.length>0?e.jsx("div",{className:"space-y-4",children:s.talk_value_rules.map((h,p)=>e.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",p+1]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(m,{rule:h}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{variant:"ghost",size:"sm",children:e.jsx(ft,{className:"h-4 w-4 text-destructive"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除规则 #",p+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>i(p),children:"删除"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"配置类型"}),e.jsxs(rt,{value:h.target===""?"global":"specific",onValueChange:v=>{v==="global"?c(p,"target",""):c(p,"target","qq::group")},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"global",children:"全局配置"}),e.jsx(ye,{value:"specific",children:"详细配置"})]})]})]}),h.target!==""&&(()=>{const v=h.target.split(":"),g=v[0]||"qq",j=v[1]||"",b=v[2]||"group";return e.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"平台"}),e.jsxs(rt,{value:g,onValueChange:w=>{c(p,"target",`${w}:${j}:${b}`)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"qq",children:"QQ"}),e.jsx(ye,{value:"wx",children:"微信"})]})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"群 ID"}),e.jsx(pe,{value:j,onChange:w=>{c(p,"target",`${g}:${w.target.value}:${b}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"类型"}),e.jsxs(rt,{value:b,onValueChange:w=>{c(p,"target",`${g}:${j}:${w}`)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"group",children:"群组(group)"}),e.jsx(ye,{value:"private",children:"私聊(private)"})]})]})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",h.target||"(未设置)"]})]})})(),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"时间段 (Time)"}),e.jsx(d,{value:h.time,onChange:v=>c(p,"time",v)}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),e.jsxs("div",{className:"grid gap-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{htmlFor:`rule-value-${p}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),e.jsx(pe,{id:`rule-value-${p}`,type:"number",step:"0.01",min:"0",max:"1",value:h.value,onChange:v=>{const g=parseFloat(v.target.value);isNaN(g)||c(p,"value",Math.max(0,Math.min(1,g)))},className:"w-20 h-8 text-xs"})]}),e.jsx(Yd,{value:[h.value],onValueChange:v=>c(p,"value",v[0]),min:0,max:1,step:.01,className:"w-full"}),e.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[e.jsx("span",{children:"0 (完全沉默)"}),e.jsx("span",{children:"0.5"}),e.jsx("span",{children:"1.0 (正常)"})]})]})]})]},p))}):e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:e.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),e.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[e.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),e.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[e.jsxs("li",{children:["• ",e.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),e.jsxs("li",{children:["• ",e.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),e.jsxs("li",{children:["• ",e.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),e.jsxs("li",{children:["• ",e.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),e.jsxs("li",{children:["• ",e.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function lM({config:s,onChange:a}){const l=()=>{a({...s,learning_list:[...s.learning_list,["","enable","enable","1.0"]]})},i=b=>{a({...s,learning_list:s.learning_list.filter((w,S)=>S!==b)})},c=(b,w,S)=>{const C=[...s.learning_list];C[b][w]=S,a({...s,learning_list:C})},d=({rule:b})=>{const w=`["${b[0]}", "${b[1]}", "${b[2]}", "${b[3]}"]`;return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"预览"]})}),e.jsx(pa,{className:"w-96",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),e.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:w}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},m=({member:b,groupIndex:w,memberIndex:S,availableChatIds:C})=>{const N=C.includes(b)||b==="*",[T,P]=x.useState(!N);return e.jsxs("div",{className:"flex gap-2",children:[e.jsx("div",{className:"flex-1 flex gap-2",children:T?e.jsxs(e.Fragment,{children:[e.jsx(pe,{value:b,onChange:M=>j(w,S,M.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),C.length>0&&e.jsx(q,{size:"sm",variant:"outline",onClick:()=>P(!1),title:"切换到下拉选择",children:"下拉"})]}):e.jsxs(e.Fragment,{children:[e.jsxs(rt,{value:b,onValueChange:M=>j(w,S,M),children:[e.jsx(at,{className:"flex-1",children:e.jsx(it,{placeholder:"选择聊天流"})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"*",children:"* (全局共享)"}),C.map((M,k)=>e.jsx(ye,{value:M,children:M},k))]})]}),e.jsx(q,{size:"sm",variant:"outline",onClick:()=>P(!0),title:"切换到手动输入",children:"输入"})]})}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"icon",variant:"outline",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除组成员 "',b||"(空)",'" 吗?此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>g(w,S),children:"删除"})]})]})]})]})},h=()=>{a({...s,expression_groups:[...s.expression_groups,[]]})},p=b=>{a({...s,expression_groups:s.expression_groups.filter((w,S)=>S!==b)})},v=b=>{const w=[...s.expression_groups];w[b]=[...w[b],""],a({...s,expression_groups:w})},g=(b,w)=>{const S=[...s.expression_groups];S[b]=S[b].filter((C,N)=>N!==w),a({...s,expression_groups:S})},j=(b,w,S)=>{const C=[...s.expression_groups];C[b][w]=S,a({...s,expression_groups:C})};return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),e.jsxs(q,{onClick:l,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.jsxs("div",{className:"space-y-4",children:[s.learning_list.map((b,w)=>{const S=s.learning_list.some((k,D)=>D!==w&&k[0]===""),C=b[0]==="",N=b[0].split(":"),T=N[0]||"qq",P=N[1]||"",M=N[2]||"group";return e.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium",children:["规则 ",w+1," ",C&&"(全局配置)"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(d,{rule:b}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除学习规则 ",w+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>i(w),children:"删除"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"配置类型"}),e.jsxs(rt,{value:C?"global":"specific",onValueChange:k=>{k==="global"?c(w,0,""):c(w,0,"qq::group")},disabled:S&&!C,children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"global",children:"全局配置"}),e.jsx(ye,{value:"specific",disabled:S&&!C,children:"详细配置"})]})]}),S&&!C&&e.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!C&&e.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[e.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"平台"}),e.jsxs(rt,{value:T,onValueChange:k=>{c(w,0,`${k}:${P}:${M}`)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"qq",children:"QQ"}),e.jsx(ye,{value:"wx",children:"微信"})]})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"群 ID"}),e.jsx(pe,{value:P,onChange:k=>{c(w,0,`${T}:${k.target.value}:${M}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"类型"}),e.jsxs(rt,{value:M,onValueChange:k=>{c(w,0,`${T}:${P}:${k}`)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"group",children:"群组(group)"}),e.jsx(ye,{value:"private",children:"私聊(private)"})]})]})]})]}),e.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",b[0]||"(未设置)"]})]}),e.jsx("div",{className:"grid gap-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-xs font-medium",children:"使用学到的表达"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),e.jsx(Ze,{checked:b[1]==="enable",onCheckedChange:k=>c(w,1,k?"enable":"disable")})]})}),e.jsx("div",{className:"grid gap-2",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-xs font-medium",children:"学习表达"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),e.jsx(Ze,{checked:b[2]==="enable",onCheckedChange:k=>c(w,2,k?"enable":"disable")})]})}),e.jsxs("div",{className:"grid gap-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{className:"text-xs font-medium",children:"学习强度"}),e.jsx(pe,{type:"number",step:"0.1",min:"0",max:"5",value:b[3],onChange:k=>{const D=parseFloat(k.target.value);isNaN(D)||c(w,3,Math.max(0,Math.min(5,D)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),e.jsx(Yd,{value:[parseFloat(b[3])||1],onValueChange:k=>c(w,3,k[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),e.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[e.jsx("span",{children:"0 (不学习)"}),e.jsx("span",{children:"2.5"}),e.jsx("span",{children:"5.0 (快速学习)"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},w)}),s.learning_list.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center justify-between mb-4",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),e.jsxs(q,{onClick:h,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),e.jsxs("div",{className:"space-y-4",children:[s.expression_groups.map((b,w)=>{const S=s.learning_list.map(C=>C[0]).filter(C=>C!=="");return e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",w+1,b.length===1&&b[0]==="*"&&"(全局共享)"]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(q,{onClick:()=>v(w),size:"sm",variant:"outline",children:e.jsx(ys,{className:"h-4 w-4"})}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除共享组 ",w+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>p(w),children:"删除"})]})]})]})]})]}),e.jsx("div",{className:"space-y-2",children:b.map((C,N)=>e.jsx(m,{member:C,groupIndex:w,memberIndex:N,availableChatIds:S},N))}),e.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},w)}),s.expression_groups.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function rM({emojiConfig:s,memoryConfig:a,toolConfig:l,onEmojiChange:i,onMemoryChange:c,onToolChange:d}){return e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_tool",checked:l.enable_tool,onCheckedChange:m=>d({...l,enable_tool:m})}),e.jsx(U,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),e.jsx(pe,{id:"max_agent_iterations",type:"number",min:"1",value:a.max_agent_iterations,onChange:m=>c({...a,max_agent_iterations:parseInt(m.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),e.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"emoji_chance",children:"表情包激活概率"}),e.jsx(pe,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:s.emoji_chance,onChange:m=>i({...s,emoji_chance:parseFloat(m.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_reg_num",children:"最大注册数量"}),e.jsx(pe,{id:"max_reg_num",type:"number",min:"1",value:s.max_reg_num,onChange:m=>i({...s,max_reg_num:parseInt(m.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),e.jsx(pe,{id:"check_interval",type:"number",min:"1",value:s.check_interval,onChange:m=>i({...s,check_interval:parseInt(m.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"do_replace",checked:s.do_replace,onCheckedChange:m=>i({...s,do_replace:m})}),e.jsx(U,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"steal_emoji",checked:s.steal_emoji,onCheckedChange:m=>i({...s,steal_emoji:m})}),e.jsx(U,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),e.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"content_filtration",checked:s.content_filtration,onCheckedChange:m=>i({...s,content_filtration:m})}),e.jsx(U,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),s.content_filtration&&e.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[e.jsx(U,{htmlFor:"filtration_prompt",children:"过滤要求"}),e.jsx(pe,{id:"filtration_prompt",value:s.filtration_prompt,onChange:m=>i({...s,filtration_prompt:m.target.value}),placeholder:"符合公序良俗"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function iM({keywordReactionConfig:s,responsePostProcessConfig:a,chineseTypoConfig:l,responseSplitterConfig:i,onKeywordReactionChange:c,onResponsePostProcessChange:d,onChineseTypoChange:m,onResponseSplitterChange:h}){const p=()=>{c({...s,regex_rules:[...s.regex_rules,{regex:[""],reaction:""}]})},v=k=>{c({...s,regex_rules:s.regex_rules.filter((D,A)=>A!==k)})},g=(k,D,A)=>{const E=[...s.regex_rules];D==="regex"&&typeof A=="string"?E[k]={...E[k],regex:[A]}:D==="reaction"&&typeof A=="string"&&(E[k]={...E[k],reaction:A}),c({...s,regex_rules:E})},j=({regex:k,reaction:D,onRegexChange:A,onReactionChange:E})=>{const[B,Y]=x.useState(!1),[G,$]=x.useState(""),[oe,je]=x.useState(null),[ae,me]=x.useState(""),[R,O]=x.useState({}),[L,ee]=x.useState(""),le=x.useRef(null),[xe,F]=x.useState("build"),W=de=>de.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),fe=(de,Ce=0)=>{const Q=le.current;if(!Q)return;const Oe=Q.selectionStart||0,$e=Q.selectionEnd||0,re=k.substring(0,Oe)+de+k.substring($e);A(re),setTimeout(()=>{const Pe=Oe+de.length+Ce;Q.setSelectionRange(Pe,Pe),Q.focus()},0)};x.useEffect(()=>{if(!k||!G){je(null),O({}),ee(D),me("");return}try{const de=W(k),Ce=new RegExp(de,"g"),Q=G.match(Ce);je(Q),me("");const $e=new RegExp(de).exec(G);if($e&&$e.groups){O($e.groups);let re=D;Object.entries($e.groups).forEach(([Pe,ze])=>{re=re.replace(new RegExp(`\\[${Pe}\\]`,"g"),ze||"")}),ee(re)}else O({}),ee(D)}catch(de){me(de.message),je(null),O({}),ee(D)}},[k,G,D]);const I=()=>{if(!G||!oe||oe.length===0)return e.jsx("span",{className:"text-muted-foreground",children:G||"请输入测试文本"});try{const de=W(k),Ce=new RegExp(de,"g");let Q=0;const Oe=[];let $e;for(;($e=Ce.exec(G))!==null;)$e.index>Q&&Oe.push(e.jsx("span",{children:G.substring(Q,$e.index)},`text-${Q}`)),Oe.push(e.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:$e[0]},`match-${$e.index}`)),Q=$e.index+$e[0].length;return Q)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return e.jsxs(bs,{open:B,onOpenChange:Y,children:[e.jsx(x0,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(hd,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),e.jsxs(ms,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"正则表达式编辑器"}),e.jsx(ks,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),e.jsx(Ct,{className:"max-h-[calc(90vh-120px)]",children:e.jsxs(Ml,{value:xe,onValueChange:de=>F(de),className:"w-full",children:[e.jsxs($a,{className:"grid w-full grid-cols-2",children:[e.jsx(bt,{value:"build",children:"🔧 构建器"}),e.jsx(bt,{value:"test",children:"🧪 测试器"})]}),e.jsxs(Vt,{value:"build",className:"space-y-4 mt-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"正则表达式"}),e.jsx(pe,{ref:le,value:k,onChange:de=>A(de.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"Reaction 内容"}),e.jsx(Dt,{value:D,onChange:de=>E(de.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),e.jsxs("div",{className:"space-y-4 border-t pt-4",children:[ve.map(de=>e.jsxs("div",{className:"space-y-2",children:[e.jsx("h5",{className:"text-xs font-semibold text-primary",children:de.category}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:de.items.map(Ce=>e.jsx(q,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>fe(Ce.pattern,Ce.moveCursor||0),children:e.jsxs("div",{className:"flex flex-col items-start w-full",children:[e.jsxs("div",{className:"flex items-center gap-2 w-full",children:[e.jsx("span",{className:"text-xs font-medium",children:Ce.label}),e.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:Ce.pattern})]}),e.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:Ce.desc})]})},Ce.label))})]},de.category)),e.jsxs("div",{className:"space-y-2 border-t pt-4",children:[e.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(q,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>A("^(?P\\S{1,20})是这样的$"),children:e.jsxs("div",{className:"flex flex-col items-start w-full",children:[e.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),e.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),e.jsx(q,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>A("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:e.jsxs("div",{className:"flex flex-col items-start w-full",children:[e.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),e.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),e.jsx(q,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>A("(?P.+?)(?:是|为什么|怎么)"),children:e.jsxs("div",{className:"flex flex-col items-start w-full",children:[e.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),e.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),e.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[e.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),e.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),e.jsxs("li",{children:["命名捕获组格式:",e.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),e.jsxs("li",{children:["在 reaction 中使用 ",e.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),e.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),e.jsxs(Vt,{value:"test",className:"space-y-4 mt-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"当前正则表达式"}),e.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:k||"(未设置)"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),e.jsx(Dt,{id:"test-text",value:G,onChange:de=>$(de.target.value),placeholder:`在此输入要测试的文本... -例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),ae&&e.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[e.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),e.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:ae})]}),!ae&&G&&e.jsxs("div",{className:"space-y-3",children:[e.jsx("div",{className:"flex items-center gap-2",children:oe&&oe.length>0?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),e.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",oe.length," 处)"]})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),e.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"匹配高亮"}),e.jsx(Ct,{className:"h-40 rounded-md bg-muted p-3",children:e.jsx("div",{className:"text-sm break-words",children:I()})})]}),Object.keys(R).length>0&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"命名捕获组"}),e.jsx(Ct,{className:"h-32 rounded-md border p-3",children:e.jsx("div",{className:"space-y-2",children:Object.entries(R).map(([de,Ce])=>e.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[e.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",de,"]"]}),e.jsx("span",{className:"text-muted-foreground",children:"="}),e.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:Ce})]},de))})})]}),Object.keys(R).length>0&&D&&e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{className:"text-sm font-medium",children:"Reaction 替换预览"}),e.jsx(Ct,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:e.jsx("div",{className:"text-sm break-words",children:L})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),e.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[e.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),e.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[e.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),e.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),e.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),e.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},b=()=>{c({...s,keyword_rules:[...s.keyword_rules,{keywords:[],reaction:""}]})},w=k=>{c({...s,keyword_rules:s.keyword_rules.filter((D,A)=>A!==k)})},S=(k,D,A)=>{const E=[...s.keyword_rules];typeof A=="string"&&(E[k]={...E[k],reaction:A}),c({...s,keyword_rules:E})},C=k=>{const D=[...s.keyword_rules];D[k]={...D[k],keywords:[...D[k].keywords||[],""]},c({...s,keyword_rules:D})},N=(k,D)=>{const A=[...s.keyword_rules];A[k]={...A[k],keywords:(A[k].keywords||[]).filter((E,B)=>B!==D)},c({...s,keyword_rules:A})},T=(k,D,A)=>{const E=[...s.keyword_rules],B=[...E[k].keywords||[]];B[D]=A,E[k]={...E[k],keywords:B},c({...s,keyword_rules:E})},P=({rule:k})=>{const D=`{ regex = [${(k.regex||[]).map(A=>`"${A}"`).join(", ")}], reaction = "${k.reaction}" }`;return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"预览"]})}),e.jsx(pa,{className:"w-[95vw] sm:w-[500px]",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),e.jsx(Ct,{className:"h-60 rounded-md bg-muted p-3",children:e.jsx("pre",{className:"font-mono text-xs break-all",children:D})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},M=({rule:k})=>{const D=`[[keyword_reaction.keyword_rules]] -keywords = [${(k.keywords||[]).map(A=>`"${A}"`).join(", ")}] -reaction = "${k.reaction}"`;return e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"预览"]})}),e.jsx(pa,{className:"w-[95vw] sm:w-[500px]",children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),e.jsx(Ct,{className:"h-60 rounded-md bg-muted p-3",children:e.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:D})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),e.jsxs(q,{onClick:p,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),e.jsxs("div",{className:"space-y-3",children:[s.regex_rules.map((k,D)=>e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",D+1]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{regex:k.regex&&k.regex[0]||"",reaction:k.reaction,onRegexChange:A=>g(D,"regex",A),onReactionChange:A=>g(D,"reaction",A)}),e.jsx(P,{rule:k}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除正则规则 ",D+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>v(D),children:"删除"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),e.jsx(pe,{value:k.regex&&k.regex[0]||"",onChange:A=>g(D,"regex",A.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"反应内容"}),e.jsx(Dt,{value:k.reaction,onChange:A=>g(D,"reaction",A.target.value),placeholder:`触发后麦麦的反应... -可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},D)),s.regex_rules.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),e.jsxs("div",{className:"space-y-4 border-t pt-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),e.jsxs(q,{onClick:b,size:"sm",variant:"outline",children:[e.jsx(ys,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),e.jsxs("div",{className:"space-y-3",children:[s.keyword_rules.map((k,D)=>e.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",D+1]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(M,{rule:k}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(q,{size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:["确定要删除关键词规则 ",D+1," 吗?此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>w(D),children:"删除"})]})]})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{className:"text-xs font-medium",children:"关键词列表"}),e.jsxs(q,{onClick:()=>C(D),size:"sm",variant:"ghost",children:[e.jsx(ys,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),e.jsxs("div",{className:"space-y-2",children:[(k.keywords||[]).map((A,E)=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{value:A,onChange:B=>T(D,E,B.target.value),placeholder:"关键词",className:"flex-1"}),e.jsx(q,{onClick:()=>N(D,E),size:"sm",variant:"ghost",children:e.jsx(ft,{className:"h-4 w-4"})})]},E)),(!k.keywords||k.keywords.length===0)&&e.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{className:"text-xs font-medium",children:"反应内容"}),e.jsx(Dt,{value:k.reaction,onChange:A=>S(D,"reaction",A.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},D)),s.keyword_rules.length===0&&e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_response_post_process",checked:a.enable_response_post_process,onCheckedChange:k=>d({...a,enable_response_post_process:k})}),e.jsx(U,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),a.enable_response_post_process&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"border-t pt-6 space-y-4",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[e.jsx(Ze,{id:"enable_chinese_typo",checked:l.enable,onCheckedChange:k=>m({...l,enable:k})}),e.jsx(U,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),l.enable&&e.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),e.jsx(pe,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:l.error_rate,onChange:k=>m({...l,error_rate:parseFloat(k.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),e.jsx(pe,{id:"min_freq",type:"number",min:"0",value:l.min_freq,onChange:k=>m({...l,min_freq:parseInt(k.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),e.jsx(pe,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:l.tone_error_rate,onChange:k=>m({...l,tone_error_rate:parseFloat(k.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),e.jsx(pe,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:l.word_replace_rate,onChange:k=>m({...l,word_replace_rate:parseFloat(k.target.value)})})]})]})]})}),e.jsx("div",{className:"border-t pt-6 space-y-4",children:e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[e.jsx(Ze,{id:"enable_response_splitter",checked:i.enable,onCheckedChange:k=>h({...i,enable:k})}),e.jsx(U,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),e.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),i.enable&&e.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),e.jsx(pe,{id:"max_length",type:"number",min:"1",value:i.max_length,onChange:k=>h({...i,max_length:parseInt(k.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),e.jsx(pe,{id:"max_sentence_num",type:"number",min:"1",value:i.max_sentence_num,onChange:k=>h({...i,max_sentence_num:parseInt(k.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_kaomoji_protection",checked:i.enable_kaomoji_protection,onCheckedChange:k=>h({...i,enable_kaomoji_protection:k})}),e.jsx(U,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"enable_overflow_return_all",checked:i.enable_overflow_return_all,onCheckedChange:k=>h({...i,enable_overflow_return_all:k})}),e.jsx(U,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),e.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function oM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{checked:s.enable_mood,onCheckedChange:l=>a({...s,enable_mood:l})}),e.jsx(U,{className:"cursor-pointer",children:"启用情绪系统"})]}),s.enable_mood&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"情绪更新阈值"}),e.jsx(pe,{type:"number",min:"1",value:s.mood_update_threshold,onChange:l=>a({...s,mood_update_threshold:parseInt(l.target.value)})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"情感特征"}),e.jsx(Dt,{value:s.emotion_style,onChange:l=>a({...s,emotion_style:l.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function cM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{checked:s.enable_asr,onCheckedChange:l=>a({...s,enable_asr:l})}),e.jsx(U,{className:"cursor-pointer",children:"启用语音识别"})]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function dM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{checked:s.enable,onCheckedChange:l=>a({...s,enable:l})}),e.jsx(U,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),s.enable&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"LPMM 模式"}),e.jsxs(rt,{value:s.lpmm_mode,onValueChange:l=>a({...s,lpmm_mode:l}),children:[e.jsx(at,{children:e.jsx(it,{placeholder:"选择 LPMM 模式"})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"classic",children:"经典模式"}),e.jsx(ye,{value:"agent",children:"Agent 模式"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"同义词搜索 TopK"}),e.jsx(pe,{type:"number",min:"1",value:s.rag_synonym_search_top_k,onChange:l=>a({...s,rag_synonym_search_top_k:parseInt(l.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"同义词阈值"}),e.jsx(pe,{type:"number",step:"0.1",min:"0",max:"1",value:s.rag_synonym_threshold,onChange:l=>a({...s,rag_synonym_threshold:parseFloat(l.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"实体提取线程数"}),e.jsx(pe,{type:"number",min:"1",value:s.info_extraction_workers,onChange:l=>a({...s,info_extraction_workers:parseInt(l.target.value)})})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"嵌入向量维度"}),e.jsx(pe,{type:"number",min:"1",value:s.embedding_dimension,onChange:l=>a({...s,embedding_dimension:parseInt(l.target.value)})})]})]})]})]})]})}function uM({config:s,onChange:a}){const[l,i]=x.useState(""),[c,d]=x.useState("WARNING"),m=()=>{l&&!s.suppress_libraries.includes(l)&&(a({...s,suppress_libraries:[...s.suppress_libraries,l]}),i(""))},h=w=>{a({...s,suppress_libraries:s.suppress_libraries.filter(S=>S!==w)})},p=()=>{l&&!s.library_log_levels[l]&&(a({...s,library_log_levels:{...s.library_log_levels,[l]:c}}),i(""),d("WARNING"))},v=w=>{const S={...s.library_log_levels};delete S[w],a({...s,library_log_levels:S})},g=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],j=["FULL","compact","lite"],b=["none","title","full"];return e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"日期格式"}),e.jsx(pe,{value:s.date_style,onChange:w=>a({...s,date_style:w.target.value}),placeholder:"例如: m-d H:i:s"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"日志级别样式"}),e.jsxs(rt,{value:s.log_level_style,onValueChange:w=>a({...s,log_level_style:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:j.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"日志文本颜色"}),e.jsxs(rt,{value:s.color_text,onValueChange:w=>a({...s,color_text:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:b.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"全局日志级别"}),e.jsxs(rt,{value:s.log_level,onValueChange:w=>a({...s,log_level:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:g.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"控制台日志级别"}),e.jsxs(rt,{value:s.console_log_level,onValueChange:w=>a({...s,console_log_level:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:g.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"文件日志级别"}),e.jsxs(rt,{value:s.file_log_level,onValueChange:w=>a({...s,file_log_level:w}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsx(lt,{children:g.map(w=>e.jsx(ye,{value:w,children:w},w))})]})]})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"mb-2 block",children:"完全屏蔽的库"}),e.jsxs("div",{className:"flex gap-2 mb-2",children:[e.jsx(pe,{value:l,onChange:w=>i(w.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:w=>{w.key==="Enter"&&(w.preventDefault(),m())}}),e.jsx(q,{onClick:m,size:"sm",className:"flex-shrink-0",children:e.jsx(ys,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:s.suppress_libraries.map(w=>e.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[e.jsx("span",{className:"text-sm",children:w}),e.jsx(q,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>h(w),children:e.jsx(ft,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},w))})]}),e.jsxs("div",{children:[e.jsx(U,{className:"mb-2 block",children:"特定库的日志级别"}),e.jsxs("div",{className:"flex gap-2 mb-2",children:[e.jsx(pe,{value:l,onChange:w=>i(w.target.value),placeholder:"输入库名",className:"flex-1"}),e.jsxs(rt,{value:c,onValueChange:d,children:[e.jsx(at,{className:"w-32",children:e.jsx(it,{})}),e.jsx(lt,{children:g.map(w=>e.jsx(ye,{value:w,children:w},w))})]}),e.jsx(q,{onClick:p,size:"sm",children:e.jsx(ys,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),e.jsx("div",{className:"space-y-2",children:Object.entries(s.library_log_levels).map(([w,S])=>e.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[e.jsx("span",{className:"text-sm font-medium",children:w}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-sm text-muted-foreground",children:S}),e.jsx(q,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>v(w),children:e.jsx(ft,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},w))})]})]})}function mM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"显示 Prompt"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),e.jsx(Ze,{checked:s.show_prompt,onCheckedChange:l=>a({...s,show_prompt:l})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"显示回复器 Prompt"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),e.jsx(Ze,{checked:s.show_replyer_prompt,onCheckedChange:l=>a({...s,show_replyer_prompt:l})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"显示回复器推理"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),e.jsx(Ze,{checked:s.show_replyer_reasoning,onCheckedChange:l=>a({...s,show_replyer_reasoning:l})})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"显示 Jargon Prompt"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),e.jsx(Ze,{checked:s.show_jargon_prompt,onCheckedChange:l=>a({...s,show_jargon_prompt:l})})]})]})]})}function fM({config:s,onChange:a}){const[l,i]=x.useState(""),c=()=>{l&&!s.auth_token.includes(l)&&(a({...s,auth_token:[...s.auth_token,l]}),i(""))},d=m=>{a({...s,auth_token:s.auth_token.filter((h,p)=>p!==m)})};return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[e.jsxs("div",{children:[e.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"启用自定义服务器"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),e.jsx(Ze,{checked:s.use_custom,onCheckedChange:m=>a({...s,use_custom:m})})]}),s.use_custom&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"主机地址"}),e.jsx(pe,{value:s.host,onChange:m=>a({...s,host:m.target.value}),placeholder:"127.0.0.1"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"端口号"}),e.jsx(pe,{type:"number",value:s.port,onChange:m=>a({...s,port:parseInt(m.target.value)}),placeholder:"8090"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"连接模式"}),e.jsxs(rt,{value:s.mode,onValueChange:m=>a({...s,mode:m}),children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"ws",children:"WebSocket (ws)"}),e.jsx(ye,{value:"tcp",children:"TCP"})]})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{checked:s.use_wss,onCheckedChange:m=>a({...s,use_wss:m}),disabled:s.mode!=="ws"}),e.jsx(U,{children:"使用 WSS 安全连接"})]})]}),s.use_wss&&s.mode==="ws"&&e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"SSL 证书文件路径"}),e.jsx(pe,{value:s.cert_file,onChange:m=>a({...s,cert_file:m.target.value}),placeholder:"cert.pem"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"SSL 密钥文件路径"}),e.jsx(pe,{value:s.key_file,onChange:m=>a({...s,key_file:m.target.value}),placeholder:"key.pem"})]})]})]})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"mb-2 block",children:"认证令牌"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),e.jsxs("div",{className:"flex gap-2 mb-2",children:[e.jsx(pe,{value:l,onChange:m=>i(m.target.value),placeholder:"输入认证令牌",onKeyDown:m=>{m.key==="Enter"&&(m.preventDefault(),c())}}),e.jsx(q,{onClick:c,size:"sm",children:e.jsx(ys,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),e.jsx("div",{className:"space-y-2",children:s.auth_token.map((m,h)=>e.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[e.jsx("span",{className:"text-sm font-mono",children:m}),e.jsx(q,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>d(h),children:e.jsx(ft,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},h))})]})]})}function hM({config:s,onChange:a}){return e.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"space-y-0.5",children:[e.jsx(U,{children:"启用统计信息发送"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),e.jsx(Ze,{checked:s.enable,onCheckedChange:l=>a({...s,enable:l})})]})]})}const Rl=x.forwardRef(({className:s,...a},l)=>e.jsx("div",{className:"relative w-full overflow-auto",children:e.jsx("table",{ref:l,className:Z("w-full caption-bottom text-sm",s),...a})}));Rl.displayName="Table";const zl=x.forwardRef(({className:s,...a},l)=>e.jsx("thead",{ref:l,className:Z("[&_tr]:border-b",s),...a}));zl.displayName="TableHeader";const Pl=x.forwardRef(({className:s,...a},l)=>e.jsx("tbody",{ref:l,className:Z("[&_tr:last-child]:border-0",s),...a}));Pl.displayName="TableBody";const xM=x.forwardRef(({className:s,...a},l)=>e.jsx("tfoot",{ref:l,className:Z("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",s),...a}));xM.displayName="TableFooter";const ns=x.forwardRef(({className:s,...a},l)=>e.jsx("tr",{ref:l,className:Z("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",s),...a}));ns.displayName="TableRow";const He=x.forwardRef(({className:s,...a},l)=>e.jsx("th",{ref:l,className:Z("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",s),...a}));He.displayName="TableHead";const Ae=x.forwardRef(({className:s,...a},l)=>e.jsx("td",{ref:l,className:Z("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",s),...a}));Ae.displayName="TableCell";const pM=x.forwardRef(({className:s,...a},l)=>e.jsx("caption",{ref:l,className:Z("mt-4 text-sm text-muted-foreground",s),...a}));pM.displayName="TableCaption";const Cs=x.forwardRef(({className:s,...a},l)=>e.jsx(_y,{ref:l,className:Z("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",s),...a,children:e.jsx(N2,{className:Z("grid place-content-center text-current"),children:e.jsx(Cl,{className:"h-4 w-4"})})}));Cs.displayName=_y.displayName;function gM(){const[s,a]=x.useState([]),[l,i]=x.useState(!0),[c,d]=x.useState(!1),[m,h]=x.useState(!1),[p,v]=x.useState(!1),[g,j]=x.useState(!1),[b,w]=x.useState(!1),[S,C]=x.useState(!1),[N,T]=x.useState(null),[P,M]=x.useState(null),[k,D]=x.useState(!1),[A,E]=x.useState(null),[B,Y]=x.useState(!1),[G,$]=x.useState(""),[oe,je]=x.useState(new Set),[ae,me]=x.useState(!1),[R,O]=x.useState(1),[L,ee]=x.useState(20),[le,xe]=x.useState(""),{toast:F}=Es(),W=x.useRef(null),fe=x.useRef(!0);x.useEffect(()=>{I()},[]);const I=async()=>{try{i(!0);const he=await Ur();a(he.api_providers||[]),v(!1),fe.current=!1}catch(he){console.error("加载配置失败:",he)}finally{i(!1)}},ve=async()=>{try{j(!0),Lh().catch(()=>{}),w(!0)}catch(he){console.error("重启失败:",he),w(!1),F({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),j(!1)}},de=async()=>{try{d(!0),W.current&&clearTimeout(W.current);const he=await Ur();he.api_providers=s,await Nd(he),v(!1),F({title:"保存成功",description:"正在重启麦麦..."}),await ve()}catch(he){console.error("保存配置失败:",he),F({title:"保存失败",description:he.message,variant:"destructive"}),d(!1)}},Ce=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},Q=()=>{w(!1),j(!1),F({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},Oe=x.useCallback(async he=>{if(!fe.current)try{h(!0),await Xf("api_providers",he),v(!1)}catch(Ee){console.error("自动保存失败:",Ee),v(!0)}finally{h(!1)}},[]);x.useEffect(()=>{if(!fe.current)return v(!0),W.current&&clearTimeout(W.current),W.current=setTimeout(()=>{Oe(s)},2e3),()=>{W.current&&clearTimeout(W.current)}},[s,Oe]);const $e=async()=>{try{d(!0),W.current&&clearTimeout(W.current);const he=await Ur();he.api_providers=s,await Nd(he),v(!1),F({title:"保存成功",description:"模型提供商配置已保存"})}catch(he){console.error("保存配置失败:",he),F({title:"保存失败",description:he.message,variant:"destructive"})}finally{d(!1)}},re=(he,Ee)=>{T(he||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),M(Ee),Y(!1),C(!0)},Pe=async()=>{if(N?.api_key)try{await navigator.clipboard.writeText(N.api_key),F({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{F({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},ze=()=>{if(!N)return;const he={...N,max_retry:N.max_retry??2,timeout:N.timeout??30,retry_interval:N.retry_interval??10};if(P!==null){const Ee=[...s];Ee[P]=he,a(Ee)}else a([...s,he]);C(!1),T(null),M(null)},Zt=he=>{if(!he&&N){const Ee={...N,max_retry:N.max_retry??2,timeout:N.timeout??30,retry_interval:N.retry_interval??10};T(Ee)}C(he)},Rs=he=>{E(he),D(!0)},An=()=>{if(A!==null){const he=s.filter((Ee,Ve)=>Ve!==A);a(he),F({title:"删除成功",description:"提供商已从列表中移除"})}D(!1),E(null)},Le=he=>{const Ee=new Set(oe);Ee.has(he)?Ee.delete(he):Ee.add(he),je(Ee)},Nn=()=>{if(oe.size===Xt.length)je(new Set);else{const he=Xt.map((Ee,Ve)=>s.findIndex(Os=>Os===Xt[Ve]));je(new Set(he))}},ln=()=>{if(oe.size===0){F({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}me(!0)},rn=()=>{const he=s.filter((Ee,Ve)=>!oe.has(Ve));a(he),je(new Set),me(!1),F({title:"批量删除成功",description:`已删除 ${oe.size} 个提供商`})},Xt=s.filter(he=>{if(!G)return!0;const Ee=G.toLowerCase();return he.name.toLowerCase().includes(Ee)||he.base_url.toLowerCase().includes(Ee)||he.client_type.toLowerCase().includes(Ee)}),Ds=Math.ceil(Xt.length/L),ke=Xt.slice((R-1)*L,R*L),is=()=>{const he=parseInt(le);he>=1&&he<=Ds&&(O(he),xe(""))};return l?e.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[oe.size>0&&e.jsxs(q,{onClick:ln,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[e.jsx(ft,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",oe.size,")"]}),e.jsxs(q,{onClick:()=>re(null,null),size:"sm",className:"w-full sm:w-auto",children:[e.jsx(ys,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),e.jsxs(q,{onClick:$e,disabled:c||m||!p||g,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[e.jsx(vh,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),c?"保存中...":m?"自动保存中...":p?"保存配置":"已保存"]}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{disabled:c||m||g,size:"sm",className:"w-full sm:w-auto",children:[e.jsx(jh,{className:"mr-2 h-4 w-4"}),g?"重启中...":p?"保存并重启":"重启麦麦"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重启麦麦?"}),e.jsx(Pt,{children:p?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:p?de:ve,children:p?"保存并重启":"确认重启"})]})]})]})]})]}),e.jsxs(Vd,{children:[e.jsx(Fr,{className:"h-4 w-4"}),e.jsxs(Gd,{children:["配置更新后需要",e.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),e.jsxs(Ct,{className:"h-[calc(100vh-260px)]",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[e.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"搜索提供商名称、URL 或类型...",value:G,onChange:he=>$(he.target.value),className:"pl-9"})]}),G&&e.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Xt.length," 个结果"]})]}),e.jsx("div",{className:"md:hidden space-y-3",children:Xt.length===0?e.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:G?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):ke.map((he,Ee)=>{const Ve=s.findIndex(Os=>Os===he);return e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:"font-semibold text-base truncate",children:he.name}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:he.base_url})]}),e.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>re(he,Ve),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>Rs(Ve),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),e.jsx("p",{className:"font-medium",children:he.client_type})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),e.jsx("p",{className:"font-medium",children:he.max_retry})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),e.jsx("p",{className:"font-medium",children:he.timeout})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),e.jsx("p",{className:"font-medium",children:he.retry_interval})]})]})]},Ee)})}),e.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:oe.size===Xt.length&&Xt.length>0,onCheckedChange:Nn})}),e.jsx(He,{children:"名称"}),e.jsx(He,{children:"基础URL"}),e.jsx(He,{children:"客户端类型"}),e.jsx(He,{className:"text-right",children:"最大重试"}),e.jsx(He,{className:"text-right",children:"超时(秒)"}),e.jsx(He,{className:"text-right",children:"重试间隔(秒)"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:ke.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:8,className:"text-center text-muted-foreground py-8",children:G?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):ke.map((he,Ee)=>{const Ve=s.findIndex(Os=>Os===he);return e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:oe.has(Ve),onCheckedChange:()=>Le(Ve)})}),e.jsx(Ae,{className:"font-medium",children:he.name}),e.jsx(Ae,{className:"max-w-xs truncate",title:he.base_url,children:he.base_url}),e.jsx(Ae,{children:he.client_type}),e.jsx(Ae,{className:"text-right",children:he.max_retry}),e.jsx(Ae,{className:"text-right",children:he.timeout}),e.jsx(Ae,{className:"text-right",children:he.retry_interval}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>re(he,Ve),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>Rs(Ve),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})})]},Ee)})})]})}),Xt.length>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"page-size-provider",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:L.toString(),onValueChange:he=>{ee(parseInt(he)),O(1),je(new Set)},children:[e.jsx(at,{id:"page-size-provider",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["显示 ",(R-1)*L+1," 到"," ",Math.min(R*L,Xt.length)," 条,共 ",Xt.length," 条"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>O(1),disabled:R===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>O(he=>Math.max(1,he-1)),disabled:R===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:le,onChange:he=>xe(he.target.value),onKeyDown:he=>he.key==="Enter"&&is(),placeholder:R.toString(),className:"w-16 h-8 text-center",min:1,max:Ds}),e.jsx(q,{variant:"outline",size:"sm",onClick:is,disabled:!le,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>O(he=>he+1),disabled:R>=Ds,children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>O(Ds),disabled:R>=Ds,className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]}),e.jsx(bs,{open:S,onOpenChange:Zt,children:e.jsxs(ms,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:P!==null?"编辑提供商":"添加提供商"}),e.jsx(ks,{children:"配置 API 提供商的连接信息和参数"})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"name",children:"名称 *"}),e.jsx(pe,{id:"name",value:N?.name||"",onChange:he=>T(Ee=>Ee?{...Ee,name:he.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"base_url",children:"基础 URL *"}),e.jsx(pe,{id:"base_url",value:N?.base_url||"",onChange:he=>T(Ee=>Ee?{...Ee,base_url:he.target.value}:null),placeholder:"https://api.example.com/v1"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"api_key",children:"API Key *"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(pe,{id:"api_key",type:B?"text":"password",value:N?.api_key||"",onChange:he=>T(Ee=>Ee?{...Ee,api_key:he.target.value}:null),placeholder:"sk-...",className:"flex-1"}),e.jsx(q,{type:"button",variant:"outline",size:"icon",onClick:()=>Y(!B),title:B?"隐藏密钥":"显示密钥",children:B?e.jsx(Of,{className:"h-4 w-4"}):e.jsx(Mn,{className:"h-4 w-4"})}),e.jsx(q,{type:"button",variant:"outline",size:"icon",onClick:Pe,title:"复制密钥",children:e.jsx(Df,{className:"h-4 w-4"})})]})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"client_type",children:"客户端类型"}),e.jsxs(rt,{value:N?.client_type||"openai",onValueChange:he=>T(Ee=>Ee?{...Ee,client_type:he}:null),children:[e.jsx(at,{id:"client_type",children:e.jsx(it,{placeholder:"选择客户端类型"})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"openai",children:"OpenAI"}),e.jsx(ye,{value:"gemini",children:"Gemini"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"max_retry",children:"最大重试"}),e.jsx(pe,{id:"max_retry",type:"number",min:"0",value:N?.max_retry??"",onChange:he=>{const Ee=he.target.value===""?null:parseInt(he.target.value);T(Ve=>Ve?{...Ve,max_retry:Ee}:null)},placeholder:"默认: 2"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"timeout",children:"超时(秒)"}),e.jsx(pe,{id:"timeout",type:"number",min:"1",value:N?.timeout??"",onChange:he=>{const Ee=he.target.value===""?null:parseInt(he.target.value);T(Ve=>Ve?{...Ve,timeout:Ee}:null)},placeholder:"默认: 30"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),e.jsx(pe,{id:"retry_interval",type:"number",min:"1",value:N?.retry_interval??"",onChange:he=>{const Ee=he.target.value===""?null:parseInt(he.target.value);T(Ve=>Ve?{...Ve,retry_interval:Ee}:null)},placeholder:"默认: 10"})]})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>C(!1),children:"取消"}),e.jsx(q,{onClick:ze,children:"保存"})]})]})}),e.jsx(Ft,{open:k,onOpenChange:D,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除提供商 "',A!==null?s[A]?.name:"",'" 吗? 此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:An,children:"删除"})]})]})}),e.jsx(Ft,{open:ae,onOpenChange:me,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["确定要删除选中的 ",oe.size," 个提供商吗? 此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:rn,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),b&&e.jsx(Bh,{onRestartComplete:Ce,onRestartFailed:Q})]})}var Uj=1,vM=.9,jM=.8,yM=.17,Sf=.1,_f=.999,bM=.9999,NM=.99,wM=/[\\\/_+.#"@\[\(\{&]/,SM=/[\\\/_+.#"@\[\(\{&]/g,_M=/[\s-]/,xN=/[\s-]/g;function Kf(s,a,l,i,c,d,m){if(d===a.length)return c===s.length?Uj:NM;var h=`${c},${d}`;if(m[h]!==void 0)return m[h];for(var p=i.charAt(d),v=l.indexOf(p,c),g=0,j,b,w,S;v>=0;)j=Kf(s,a,l,i,v+1,d+1,m),j>g&&(v===c?j*=Uj:wM.test(s.charAt(v-1))?(j*=jM,w=s.slice(c,v-1).match(SM),w&&c>0&&(j*=Math.pow(_f,w.length))):_M.test(s.charAt(v-1))?(j*=vM,S=s.slice(c,v-1).match(xN),S&&c>0&&(j*=Math.pow(_f,S.length))):(j*=yM,c>0&&(j*=Math.pow(_f,v-c))),s.charAt(v)!==a.charAt(d)&&(j*=bM)),(jj&&(j=b*Sf)),j>g&&(g=j),v=l.indexOf(p,v+1);return m[h]=g,g}function Hj(s){return s.toLowerCase().replace(xN," ")}function CM(s,a,l){return s=l&&l.length>0?`${s+" "+l.join(" ")}`:s,Kf(s,a,Hj(s),Hj(a),0,0,{})}var kM=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ja=kM.reduce((s,a)=>{const l=ih(`Primitive.${a}`),i=x.forwardRef((c,d)=>{const{asChild:m,...h}=c,p=m?l:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),e.jsx(p,{...h,ref:d})});return i.displayName=`Primitive.${a}`,{...s,[a]:i}},{}),Zi='[cmdk-group=""]',Cf='[cmdk-group-items=""]',TM='[cmdk-group-heading=""]',pN='[cmdk-item=""]',Fj=`${pN}:not([aria-disabled="true"])`,Qf="cmdk-item-select",Ar="data-value",EM=(s,a,l)=>CM(s,a,l),gN=x.createContext(void 0),ko=()=>x.useContext(gN),vN=x.createContext(void 0),Uh=()=>x.useContext(vN),jN=x.createContext(void 0),yN=x.forwardRef((s,a)=>{let l=Rr(()=>{var F,W;return{search:"",value:(W=(F=s.value)!=null?F:s.defaultValue)!=null?W:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),i=Rr(()=>new Set),c=Rr(()=>new Map),d=Rr(()=>new Map),m=Rr(()=>new Set),h=bN(s),{label:p,children:v,value:g,onValueChange:j,filter:b,shouldFilter:w,loop:S,disablePointerSelection:C=!1,vimBindings:N=!0,...T}=s,P=jn(),M=jn(),k=jn(),D=x.useRef(null),A=HM();Dl(()=>{if(g!==void 0){let F=g.trim();l.current.value=F,E.emit()}},[g]),Dl(()=>{A(6,je)},[]);let E=x.useMemo(()=>({subscribe:F=>(m.current.add(F),()=>m.current.delete(F)),snapshot:()=>l.current,setState:(F,W,fe)=>{var I,ve,de,Ce;if(!Object.is(l.current[F],W)){if(l.current[F]=W,F==="search")oe(),G(),A(1,$);else if(F==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let Q=document.getElementById(k);Q?Q.focus():(I=document.getElementById(P))==null||I.focus()}if(A(7,()=>{var Q;l.current.selectedItemId=(Q=ae())==null?void 0:Q.id,E.emit()}),fe||A(5,je),((ve=h.current)==null?void 0:ve.value)!==void 0){let Q=W??"";(Ce=(de=h.current).onValueChange)==null||Ce.call(de,Q);return}}E.emit()}},emit:()=>{m.current.forEach(F=>F())}}),[]),B=x.useMemo(()=>({value:(F,W,fe)=>{var I;W!==((I=d.current.get(F))==null?void 0:I.value)&&(d.current.set(F,{value:W,keywords:fe}),l.current.filtered.items.set(F,Y(W,fe)),A(2,()=>{G(),E.emit()}))},item:(F,W)=>(i.current.add(F),W&&(c.current.has(W)?c.current.get(W).add(F):c.current.set(W,new Set([F]))),A(3,()=>{oe(),G(),l.current.value||$(),E.emit()}),()=>{d.current.delete(F),i.current.delete(F),l.current.filtered.items.delete(F);let fe=ae();A(4,()=>{oe(),fe?.getAttribute("id")===F&&$(),E.emit()})}),group:F=>(c.current.has(F)||c.current.set(F,new Set),()=>{d.current.delete(F),c.current.delete(F)}),filter:()=>h.current.shouldFilter,label:p||s["aria-label"],getDisablePointerSelection:()=>h.current.disablePointerSelection,listId:P,inputId:k,labelId:M,listInnerRef:D}),[]);function Y(F,W){var fe,I;let ve=(I=(fe=h.current)==null?void 0:fe.filter)!=null?I:EM;return F?ve(F,l.current.search,W):0}function G(){if(!l.current.search||h.current.shouldFilter===!1)return;let F=l.current.filtered.items,W=[];l.current.filtered.groups.forEach(I=>{let ve=c.current.get(I),de=0;ve.forEach(Ce=>{let Q=F.get(Ce);de=Math.max(Q,de)}),W.push([I,de])});let fe=D.current;me().sort((I,ve)=>{var de,Ce;let Q=I.getAttribute("id"),Oe=ve.getAttribute("id");return((de=F.get(Oe))!=null?de:0)-((Ce=F.get(Q))!=null?Ce:0)}).forEach(I=>{let ve=I.closest(Cf);ve?ve.appendChild(I.parentElement===ve?I:I.closest(`${Cf} > *`)):fe.appendChild(I.parentElement===fe?I:I.closest(`${Cf} > *`))}),W.sort((I,ve)=>ve[1]-I[1]).forEach(I=>{var ve;let de=(ve=D.current)==null?void 0:ve.querySelector(`${Zi}[${Ar}="${encodeURIComponent(I[0])}"]`);de?.parentElement.appendChild(de)})}function $(){let F=me().find(fe=>fe.getAttribute("aria-disabled")!=="true"),W=F?.getAttribute(Ar);E.setState("value",W||void 0)}function oe(){var F,W,fe,I;if(!l.current.search||h.current.shouldFilter===!1){l.current.filtered.count=i.current.size;return}l.current.filtered.groups=new Set;let ve=0;for(let de of i.current){let Ce=(W=(F=d.current.get(de))==null?void 0:F.value)!=null?W:"",Q=(I=(fe=d.current.get(de))==null?void 0:fe.keywords)!=null?I:[],Oe=Y(Ce,Q);l.current.filtered.items.set(de,Oe),Oe>0&&ve++}for(let[de,Ce]of c.current)for(let Q of Ce)if(l.current.filtered.items.get(Q)>0){l.current.filtered.groups.add(de);break}l.current.filtered.count=ve}function je(){var F,W,fe;let I=ae();I&&(((F=I.parentElement)==null?void 0:F.firstChild)===I&&((fe=(W=I.closest(Zi))==null?void 0:W.querySelector(TM))==null||fe.scrollIntoView({block:"nearest"})),I.scrollIntoView({block:"nearest"}))}function ae(){var F;return(F=D.current)==null?void 0:F.querySelector(`${pN}[aria-selected="true"]`)}function me(){var F;return Array.from(((F=D.current)==null?void 0:F.querySelectorAll(Fj))||[])}function R(F){let W=me()[F];W&&E.setState("value",W.getAttribute(Ar))}function O(F){var W;let fe=ae(),I=me(),ve=I.findIndex(Ce=>Ce===fe),de=I[ve+F];(W=h.current)!=null&&W.loop&&(de=ve+F<0?I[I.length-1]:ve+F===I.length?I[0]:I[ve+F]),de&&E.setState("value",de.getAttribute(Ar))}function L(F){let W=ae(),fe=W?.closest(Zi),I;for(;fe&&!I;)fe=F>0?BM(fe,Zi):UM(fe,Zi),I=fe?.querySelector(Fj);I?E.setState("value",I.getAttribute(Ar)):O(F)}let ee=()=>R(me().length-1),le=F=>{F.preventDefault(),F.metaKey?ee():F.altKey?L(1):O(1)},xe=F=>{F.preventDefault(),F.metaKey?R(0):F.altKey?L(-1):O(-1)};return x.createElement(Ja.div,{ref:a,tabIndex:-1,...T,"cmdk-root":"",onKeyDown:F=>{var W;(W=T.onKeyDown)==null||W.call(T,F);let fe=F.nativeEvent.isComposing||F.keyCode===229;if(!(F.defaultPrevented||fe))switch(F.key){case"n":case"j":{N&&F.ctrlKey&&le(F);break}case"ArrowDown":{le(F);break}case"p":case"k":{N&&F.ctrlKey&&xe(F);break}case"ArrowUp":{xe(F);break}case"Home":{F.preventDefault(),R(0);break}case"End":{F.preventDefault(),ee();break}case"Enter":{F.preventDefault();let I=ae();if(I){let ve=new Event(Qf);I.dispatchEvent(ve)}}}}},x.createElement("label",{"cmdk-label":"",htmlFor:B.inputId,id:B.labelId,style:YM},p),$d(s,F=>x.createElement(vN.Provider,{value:E},x.createElement(gN.Provider,{value:B},F))))}),MM=x.forwardRef((s,a)=>{var l,i;let c=jn(),d=x.useRef(null),m=x.useContext(jN),h=ko(),p=bN(s),v=(i=(l=p.current)==null?void 0:l.forceMount)!=null?i:m?.forceMount;Dl(()=>{if(!v)return h.item(c,m?.id)},[v]);let g=NN(c,d,[s.value,s.children,d],s.keywords),j=Uh(),b=Xa(A=>A.value&&A.value===g.current),w=Xa(A=>v||h.filter()===!1?!0:A.search?A.filtered.items.get(c)>0:!0);x.useEffect(()=>{let A=d.current;if(!(!A||s.disabled))return A.addEventListener(Qf,S),()=>A.removeEventListener(Qf,S)},[w,s.onSelect,s.disabled]);function S(){var A,E;C(),(E=(A=p.current).onSelect)==null||E.call(A,g.current)}function C(){j.setState("value",g.current,!0)}if(!w)return null;let{disabled:N,value:T,onSelect:P,forceMount:M,keywords:k,...D}=s;return x.createElement(Ja.div,{ref:Ga(d,a),...D,id:c,"cmdk-item":"",role:"option","aria-disabled":!!N,"aria-selected":!!b,"data-disabled":!!N,"data-selected":!!b,onPointerMove:N||h.getDisablePointerSelection()?void 0:C,onClick:N?void 0:S},s.children)}),DM=x.forwardRef((s,a)=>{let{heading:l,children:i,forceMount:c,...d}=s,m=jn(),h=x.useRef(null),p=x.useRef(null),v=jn(),g=ko(),j=Xa(w=>c||g.filter()===!1?!0:w.search?w.filtered.groups.has(m):!0);Dl(()=>g.group(m),[]),NN(m,h,[s.value,s.heading,p]);let b=x.useMemo(()=>({id:m,forceMount:c}),[c]);return x.createElement(Ja.div,{ref:Ga(h,a),...d,"cmdk-group":"",role:"presentation",hidden:j?void 0:!0},l&&x.createElement("div",{ref:p,"cmdk-group-heading":"","aria-hidden":!0,id:v},l),$d(s,w=>x.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":l?v:void 0},x.createElement(jN.Provider,{value:b},w))))}),OM=x.forwardRef((s,a)=>{let{alwaysRender:l,...i}=s,c=x.useRef(null),d=Xa(m=>!m.search);return!l&&!d?null:x.createElement(Ja.div,{ref:Ga(c,a),...i,"cmdk-separator":"",role:"separator"})}),AM=x.forwardRef((s,a)=>{let{onValueChange:l,...i}=s,c=s.value!=null,d=Uh(),m=Xa(v=>v.search),h=Xa(v=>v.selectedItemId),p=ko();return x.useEffect(()=>{s.value!=null&&d.setState("search",s.value)},[s.value]),x.createElement(Ja.input,{ref:a,...i,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":p.listId,"aria-labelledby":p.labelId,"aria-activedescendant":h,id:p.inputId,type:"text",value:c?s.value:m,onChange:v=>{c||d.setState("search",v.target.value),l?.(v.target.value)}})}),RM=x.forwardRef((s,a)=>{let{children:l,label:i="Suggestions",...c}=s,d=x.useRef(null),m=x.useRef(null),h=Xa(v=>v.selectedItemId),p=ko();return x.useEffect(()=>{if(m.current&&d.current){let v=m.current,g=d.current,j,b=new ResizeObserver(()=>{j=requestAnimationFrame(()=>{let w=v.offsetHeight;g.style.setProperty("--cmdk-list-height",w.toFixed(1)+"px")})});return b.observe(v),()=>{cancelAnimationFrame(j),b.unobserve(v)}}},[]),x.createElement(Ja.div,{ref:Ga(d,a),...c,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":h,"aria-label":i,id:p.listId},$d(s,v=>x.createElement("div",{ref:Ga(m,p.listInnerRef),"cmdk-list-sizer":""},v)))}),zM=x.forwardRef((s,a)=>{let{open:l,onOpenChange:i,overlayClassName:c,contentClassName:d,container:m,...h}=s;return x.createElement(mh,{open:l,onOpenChange:i},x.createElement(oh,{container:m},x.createElement(Cd,{"cmdk-overlay":"",className:c}),x.createElement(kd,{"aria-label":s.label,"cmdk-dialog":"",className:d},x.createElement(yN,{ref:a,...h}))))}),PM=x.forwardRef((s,a)=>Xa(l=>l.filtered.count===0)?x.createElement(Ja.div,{ref:a,...s,"cmdk-empty":"",role:"presentation"}):null),LM=x.forwardRef((s,a)=>{let{progress:l,children:i,label:c="Loading...",...d}=s;return x.createElement(Ja.div,{ref:a,...d,"cmdk-loading":"",role:"progressbar","aria-valuenow":l,"aria-valuemin":0,"aria-valuemax":100,"aria-label":c},$d(s,m=>x.createElement("div",{"aria-hidden":!0},m)))}),Ws=Object.assign(yN,{List:RM,Item:MM,Input:AM,Group:DM,Separator:OM,Dialog:zM,Empty:PM,Loading:LM});function BM(s,a){let l=s.nextElementSibling;for(;l;){if(l.matches(a))return l;l=l.nextElementSibling}}function UM(s,a){let l=s.previousElementSibling;for(;l;){if(l.matches(a))return l;l=l.previousElementSibling}}function bN(s){let a=x.useRef(s);return Dl(()=>{a.current=s}),a}var Dl=typeof window>"u"?x.useEffect:x.useLayoutEffect;function Rr(s){let a=x.useRef();return a.current===void 0&&(a.current=s()),a}function Xa(s){let a=Uh(),l=()=>s(a.snapshot());return x.useSyncExternalStore(a.subscribe,l,l)}function NN(s,a,l,i=[]){let c=x.useRef(),d=ko();return Dl(()=>{var m;let h=(()=>{var v;for(let g of l){if(typeof g=="string")return g.trim();if(typeof g=="object"&&"current"in g)return g.current?(v=g.current.textContent)==null?void 0:v.trim():c.current}})(),p=i.map(v=>v.trim());d.value(s,h,p),(m=a.current)==null||m.setAttribute(Ar,h),c.current=h}),c}var HM=()=>{let[s,a]=x.useState(),l=Rr(()=>new Map);return Dl(()=>{l.current.forEach(i=>i()),l.current=new Map},[s]),(i,c)=>{l.current.set(i,c),a({})}};function FM(s){let a=s.type;return typeof a=="function"?a(s.props):"render"in a?a.render(s.props):s}function $d({asChild:s,children:a},l){return s&&x.isValidElement(a)?x.cloneElement(FM(a),{ref:a.ref},l(a.props.children)):l(a)}var YM={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const wN=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws,{ref:l,className:Z("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",s),...a}));wN.displayName=Ws.displayName;const SN=x.forwardRef(({className:s,...a},l)=>e.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[e.jsx(Gs,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),e.jsx(Ws.Input,{ref:l,className:Z("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",s),...a})]}));SN.displayName=Ws.Input.displayName;const _N=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws.List,{ref:l,className:Z("max-h-[300px] overflow-y-auto overflow-x-hidden",s),...a}));_N.displayName=Ws.List.displayName;const CN=x.forwardRef((s,a)=>e.jsx(Ws.Empty,{ref:a,className:"py-6 text-center text-sm",...s}));CN.displayName=Ws.Empty.displayName;const kN=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws.Group,{ref:l,className:Z("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",s),...a}));kN.displayName=Ws.Group.displayName;const qM=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws.Separator,{ref:l,className:Z("-mx-1 h-px bg-border",s),...a}));qM.displayName=Ws.Separator.displayName;const TN=x.forwardRef(({className:s,...a},l)=>e.jsx(Ws.Item,{ref:l,className:Z("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",s),...a}));TN.displayName=Ws.Item.displayName;function VM({options:s,selected:a,onChange:l,placeholder:i="选择选项...",emptyText:c="未找到选项",className:d}){const[m,h]=x.useState(!1),p=g=>{a.includes(g)?l(a.filter(j=>j!==g)):l([...a,g])},v=g=>{l(a.filter(j=>j!==g))};return e.jsxs(Ia,{open:m,onOpenChange:h,children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",role:"combobox","aria-expanded":m,className:Z("w-full justify-between min-h-10 h-auto",d),children:[e.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:a.length===0?e.jsx("span",{className:"text-muted-foreground",children:i}):a.map(g=>{const j=s.find(b=>b.value===g);return e.jsxs(_t,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:b=>{b.stopPropagation(),v(g)},children:[j?.label||g,e.jsx(go,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},g)})}),e.jsx(U2,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),e.jsx(pa,{className:"w-full p-0",align:"start",children:e.jsxs(wN,{children:[e.jsx(SN,{placeholder:"搜索...",className:"h-9"}),e.jsxs(_N,{children:[e.jsx(CN,{children:c}),e.jsx(kN,{children:s.map(g=>{const j=a.includes(g.value);return e.jsxs(TN,{value:g.value,onSelect:()=>p(g.value),children:[e.jsx("div",{className:Z("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",j?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:e.jsx(Cl,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),e.jsx("span",{children:g.label})]},g.value)})})]})]})})]})}function GM(){const[s,a]=x.useState([]),[l,i]=x.useState([]),[c,d]=x.useState([]),[m,h]=x.useState(null),[p,v]=x.useState(!0),[g,j]=x.useState(!1),[b,w]=x.useState(!1),[S,C]=x.useState(!1),[N,T]=x.useState(!1),[P,M]=x.useState(!1),[k,D]=x.useState(!1),[A,E]=x.useState(null),[B,Y]=x.useState(null),[G,$]=x.useState(!1),[oe,je]=x.useState(null),[ae,me]=x.useState(""),[R,O]=x.useState(new Set),[L,ee]=x.useState(!1),[le,xe]=x.useState(1),[F,W]=x.useState(20),[fe,I]=x.useState(""),{toast:ve}=Es(),de=x.useRef(null),Ce=x.useRef(null),Q=x.useRef(!0);x.useEffect(()=>{Oe()},[]);const Oe=async()=>{try{v(!0);const se=await Ur(),ge=se.models||[];a(ge),d(ge.map(pt=>pt.name));const Qe=se.api_providers||[];i(Qe.map(pt=>pt.name)),h(se.model_task_config||null),C(!1),Q.current=!1}catch(se){console.error("加载配置失败:",se)}finally{v(!1)}},$e=async()=>{try{T(!0),Lh().catch(()=>{}),M(!0)}catch(se){console.error("重启失败:",se),M(!1),ve({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),T(!1)}},re=async()=>{try{j(!0),de.current&&clearTimeout(de.current),Ce.current&&clearTimeout(Ce.current);const se=await Ur();se.models=s,se.model_task_config=m,await Nd(se),C(!1),ve({title:"保存成功",description:"正在重启麦麦..."}),await $e()}catch(se){console.error("保存配置失败:",se),ve({title:"保存失败",description:se.message,variant:"destructive"}),j(!1)}},Pe=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},ze=()=>{M(!1),T(!1),ve({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},Zt=x.useCallback(async se=>{if(!Q.current)try{w(!0),await Xf("models",se),C(!1)}catch(ge){console.error("自动保存模型列表失败:",ge),C(!0)}finally{w(!1)}},[]),Rs=x.useCallback(async se=>{if(!Q.current)try{w(!0),await Xf("model_task_config",se),C(!1)}catch(ge){console.error("自动保存任务配置失败:",ge),C(!0)}finally{w(!1)}},[]);x.useEffect(()=>{if(!Q.current)return C(!0),de.current&&clearTimeout(de.current),de.current=setTimeout(()=>{Zt(s)},2e3),()=>{de.current&&clearTimeout(de.current)}},[s,Zt]),x.useEffect(()=>{if(!(Q.current||!m))return C(!0),Ce.current&&clearTimeout(Ce.current),Ce.current=setTimeout(()=>{Rs(m)},2e3),()=>{Ce.current&&clearTimeout(Ce.current)}},[m,Rs]);const An=async()=>{try{j(!0),de.current&&clearTimeout(de.current),Ce.current&&clearTimeout(Ce.current);const se=await Ur();se.models=s,se.model_task_config=m,await Nd(se),C(!1),ve({title:"保存成功",description:"模型配置已保存"}),await Oe()}catch(se){console.error("保存配置失败:",se),ve({title:"保存失败",description:se.message,variant:"destructive"})}finally{j(!1)}},Le=(se,ge)=>{E(se||{model_identifier:"",name:"",api_provider:l[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),Y(ge),D(!0)},Nn=()=>{if(!A)return;const se={...A,price_in:A.price_in??0,price_out:A.price_out??0};let ge;B!==null?(ge=[...s],ge[B]=se):ge=[...s,se],a(ge),d(ge.map(Qe=>Qe.name)),D(!1),E(null),Y(null)},ln=se=>{if(!se&&A){const ge={...A,price_in:A.price_in??0,price_out:A.price_out??0};E(ge)}D(se)},rn=se=>{je(se),$(!0)},Xt=()=>{if(oe!==null){const se=s.filter((ge,Qe)=>Qe!==oe);a(se),d(se.map(ge=>ge.name)),ve({title:"删除成功",description:"模型已从列表中移除"})}$(!1),je(null)},Ds=se=>{const ge=new Set(R);ge.has(se)?ge.delete(se):ge.add(se),O(ge)},ke=()=>{if(R.size===Ve.length)O(new Set);else{const se=Ve.map((ge,Qe)=>s.findIndex(pt=>pt===Ve[Qe]));O(new Set(se))}},is=()=>{if(R.size===0){ve({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}ee(!0)},he=()=>{const se=s.filter((ge,Qe)=>!R.has(Qe));a(se),d(se.map(ge=>ge.name)),O(new Set),ee(!1),ve({title:"批量删除成功",description:`已删除 ${R.size} 个模型`})},Ee=(se,ge,Qe)=>{m&&h({...m,[se]:{...m[se],[ge]:Qe}})},Ve=s.filter(se=>{if(!ae)return!0;const ge=ae.toLowerCase();return se.name.toLowerCase().includes(ge)||se.model_identifier.toLowerCase().includes(ge)||se.api_provider.toLowerCase().includes(ge)}),Os=Math.ceil(Ve.length/F),$n=Ve.slice((le-1)*F,le*F),Hl=()=>{const se=parseInt(fe);se>=1&&se<=Os&&(xe(se),I(""))},Fl=se=>m?[m.utils?.model_list||[],m.utils_small?.model_list||[],m.tool_use?.model_list||[],m.replyer?.model_list||[],m.planner?.model_list||[],m.vlm?.model_list||[],m.voice?.model_list||[],m.embedding?.model_list||[],m.lpmm_entity_extract?.model_list||[],m.lpmm_rdf_build?.model_list||[],m.lpmm_qa?.model_list||[]].some(Qe=>Qe.includes(se)):!1;return p?e.jsx(Ct,{className:"h-full",children:e.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:e.jsx("div",{className:"flex items-center justify-center h-64",children:e.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),e.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[e.jsxs(q,{onClick:An,disabled:g||b||!S||N,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[e.jsx(vh,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),g?"保存中...":b?"自动保存中...":S?"保存配置":"已保存"]}),e.jsxs(Ft,{children:[e.jsx(_s,{asChild:!0,children:e.jsxs(q,{disabled:g||b||N,size:"sm",className:"flex-1 sm:flex-none",children:[e.jsx(jh,{className:"mr-2 h-4 w-4"}),N?"重启中...":S?"保存并重启":"重启麦麦"]})}),e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认重启麦麦?"}),e.jsx(Pt,{children:S?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:S?re:$e,children:S?"保存并重启":"确认重启"})]})]})]})]})]}),e.jsxs(Vd,{children:[e.jsx(Fr,{className:"h-4 w-4"}),e.jsxs(Gd,{children:["配置更新后需要",e.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),e.jsxs(Ml,{defaultValue:"models",className:"w-full",children:[e.jsxs($a,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[e.jsx(bt,{value:"models",children:"模型配置"}),e.jsx(bt,{value:"tasks",children:"模型任务配置"})]}),e.jsxs(Vt,{value:"models",className:"space-y-4 mt-0",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),e.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[R.size>0&&e.jsxs(q,{onClick:is,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[e.jsx(ft,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",R.size,")"]}),e.jsxs(q,{onClick:()=>Le(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[e.jsx(ys,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[e.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"搜索模型名称、标识符或提供商...",value:ae,onChange:se=>me(se.target.value),className:"pl-9"})]}),ae&&e.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Ve.length," 个结果"]})]}),e.jsx("div",{className:"md:hidden space-y-3",children:$n.length===0?e.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:ae?"未找到匹配的模型":"暂无模型配置"}):$n.map((se,ge)=>{const Qe=s.findIndex(tl=>tl===se),pt=Fl(se.name);return e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h3",{className:"font-semibold text-base",children:se.name}),e.jsx(_t,{variant:pt?"default":"secondary",className:pt?"bg-green-600 hover:bg-green-700":"",children:pt?"已使用":"未使用"})]}),e.jsx("p",{className:"text-xs text-muted-foreground break-all",title:se.model_identifier,children:se.model_identifier})]}),e.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>Le(se,Qe),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>rn(Qe),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),e.jsx("p",{className:"font-medium",children:se.api_provider})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),e.jsx("p",{className:"font-medium",children:se.force_stream_mode?"是":"否"})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),e.jsxs("p",{className:"font-medium",children:["¥",se.price_in,"/M"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),e.jsxs("p",{className:"font-medium",children:["¥",se.price_out,"/M"]})]})]})]},ge)})}),e.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:R.size===Ve.length&&Ve.length>0,onCheckedChange:ke})}),e.jsx(He,{className:"w-24",children:"使用状态"}),e.jsx(He,{children:"模型名称"}),e.jsx(He,{children:"模型标识符"}),e.jsx(He,{children:"提供商"}),e.jsx(He,{className:"text-right",children:"输入价格"}),e.jsx(He,{className:"text-right",children:"输出价格"}),e.jsx(He,{className:"text-center",children:"强制流式"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:$n.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:9,className:"text-center text-muted-foreground py-8",children:ae?"未找到匹配的模型":"暂无模型配置"})}):$n.map((se,ge)=>{const Qe=s.findIndex(tl=>tl===se),pt=Fl(se.name);return e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:R.has(Qe),onCheckedChange:()=>Ds(Qe)})}),e.jsx(Ae,{children:e.jsx(_t,{variant:pt?"default":"secondary",className:pt?"bg-green-600 hover:bg-green-700":"",children:pt?"已使用":"未使用"})}),e.jsx(Ae,{className:"font-medium",children:se.name}),e.jsx(Ae,{className:"max-w-xs truncate",title:se.model_identifier,children:se.model_identifier}),e.jsx(Ae,{children:se.api_provider}),e.jsxs(Ae,{className:"text-right",children:["¥",se.price_in,"/M"]}),e.jsxs(Ae,{className:"text-right",children:["¥",se.price_out,"/M"]}),e.jsx(Ae,{className:"text-center",children:se.force_stream_mode?"是":"否"}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>Le(se,Qe),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>rn(Qe),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})})]},ge)})})]})}),Ve.length>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"page-size-model",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:F.toString(),onValueChange:se=>{W(parseInt(se)),xe(1),O(new Set)},children:[e.jsx(at,{id:"page-size-model",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["显示 ",(le-1)*F+1," 到"," ",Math.min(le*F,Ve.length)," 条,共 ",Ve.length," 条"]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>xe(1),disabled:le===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>xe(se=>Math.max(1,se-1)),disabled:le===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:fe,onChange:se=>I(se.target.value),onKeyDown:se=>se.key==="Enter"&&Hl(),placeholder:le.toString(),className:"w-16 h-8 text-center",min:1,max:Os}),e.jsx(q,{variant:"outline",size:"sm",onClick:Hl,disabled:!fe,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>xe(se=>se+1),disabled:le>=Os,children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>xe(Os),disabled:le>=Os,className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]}),e.jsxs(Vt,{value:"tasks",className:"space-y-6 mt-0",children:[e.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),m&&e.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[e.jsx(Cn,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:m.utils,modelNames:c,onChange:(se,ge)=>Ee("utils",se,ge)}),e.jsx(Cn,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:m.utils_small,modelNames:c,onChange:(se,ge)=>Ee("utils_small",se,ge)}),e.jsx(Cn,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:m.tool_use,modelNames:c,onChange:(se,ge)=>Ee("tool_use",se,ge)}),e.jsx(Cn,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:m.replyer,modelNames:c,onChange:(se,ge)=>Ee("replyer",se,ge)}),e.jsx(Cn,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:m.planner,modelNames:c,onChange:(se,ge)=>Ee("planner",se,ge)}),e.jsx(Cn,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:m.vlm,modelNames:c,onChange:(se,ge)=>Ee("vlm",se,ge),hideTemperature:!0}),e.jsx(Cn,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:m.voice,modelNames:c,onChange:(se,ge)=>Ee("voice",se,ge),hideTemperature:!0,hideMaxTokens:!0}),e.jsx(Cn,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:m.embedding,modelNames:c,onChange:(se,ge)=>Ee("embedding",se,ge),hideTemperature:!0,hideMaxTokens:!0}),e.jsxs("div",{className:"space-y-4",children:[e.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),e.jsx(Cn,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:m.lpmm_entity_extract,modelNames:c,onChange:(se,ge)=>Ee("lpmm_entity_extract",se,ge)}),e.jsx(Cn,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:m.lpmm_rdf_build,modelNames:c,onChange:(se,ge)=>Ee("lpmm_rdf_build",se,ge)}),e.jsx(Cn,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:m.lpmm_qa,modelNames:c,onChange:(se,ge)=>Ee("lpmm_qa",se,ge)})]})]})]})]}),e.jsx(bs,{open:k,onOpenChange:ln,children:e.jsxs(ms,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:B!==null?"编辑模型":"添加模型"}),e.jsx(ks,{children:"配置模型的基本信息和参数"})]}),e.jsxs("div",{className:"grid gap-4 py-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"model_name",children:"模型名称 *"}),e.jsx(pe,{id:"model_name",value:A?.name||"",onChange:se=>E(ge=>ge?{...ge,name:se.target.value}:null),placeholder:"例如: qwen3-30b"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"model_identifier",children:"模型标识符 *"}),e.jsx(pe,{id:"model_identifier",value:A?.model_identifier||"",onChange:se=>E(ge=>ge?{...ge,model_identifier:se.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"api_provider",children:"API 提供商 *"}),e.jsxs(rt,{value:A?.api_provider||"",onValueChange:se=>E(ge=>ge?{...ge,api_provider:se}:null),children:[e.jsx(at,{id:"api_provider",children:e.jsx(it,{placeholder:"选择提供商"})}),e.jsx(lt,{children:l.map(se=>e.jsx(ye,{value:se,children:se},se))})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),e.jsx(pe,{id:"price_in",type:"number",step:"0.1",min:"0",value:A?.price_in??"",onChange:se=>{const ge=se.target.value===""?null:parseFloat(se.target.value);E(Qe=>Qe?{...Qe,price_in:ge}:null)},placeholder:"默认: 0"})]}),e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),e.jsx(pe,{id:"price_out",type:"number",step:"0.1",min:"0",value:A?.price_out??"",onChange:se=>{const ge=se.target.value===""?null:parseFloat(se.target.value);E(Qe=>Qe?{...Qe,price_out:ge}:null)},placeholder:"默认: 0"})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"force_stream_mode",checked:A?.force_stream_mode||!1,onCheckedChange:se=>E(ge=>ge?{...ge,force_stream_mode:se}:null)}),e.jsx(U,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>D(!1),children:"取消"}),e.jsx(q,{onClick:Nn,children:"保存"})]})]})}),e.jsx(Ft,{open:G,onOpenChange:$,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除模型 "',oe!==null?s[oe]?.name:"",'" 吗? 此操作无法撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:Xt,children:"删除"})]})]})}),e.jsx(Ft,{open:L,onOpenChange:ee,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["确定要删除选中的 ",R.size," 个模型吗? 此操作无法撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:he,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),P&&e.jsx(Bh,{onRestartComplete:Pe,onRestartFailed:ze})]})})}function Cn({title:s,description:a,taskConfig:l,modelNames:i,onChange:c,hideTemperature:d=!1,hideMaxTokens:m=!1}){const h=p=>{c("model_list",p)};return e.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:s}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:a})]}),e.jsxs("div",{className:"grid gap-4",children:[e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"模型列表"}),e.jsx(VM,{options:i.map(p=>({label:p,value:p})),selected:l.model_list||[],onChange:h,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!d&&e.jsxs("div",{className:"grid gap-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(U,{children:"温度"}),e.jsx(pe,{type:"number",step:"0.1",min:"0",max:"1",value:l.temperature??.3,onChange:p=>{const v=parseFloat(p.target.value);!isNaN(v)&&v>=0&&v<=1&&c("temperature",v)},className:"w-20 h-8 text-sm"})]}),e.jsx(Yd,{value:[l.temperature??.3],onValueChange:p=>c("temperature",p[0]),min:0,max:1,step:.1,className:"w-full"})]}),!m&&e.jsxs("div",{className:"grid gap-2",children:[e.jsx(U,{children:"最大 Token"}),e.jsx(pe,{type:"number",step:"1",min:"1",value:l.max_tokens??1024,onChange:p=>c("max_tokens",parseInt(p.target.value))})]})]})]})]})}const va="/api/webui/emoji";async function $M(s){const a=new URLSearchParams;s.page&&a.append("page",s.page.toString()),s.page_size&&a.append("page_size",s.page_size.toString()),s.search&&a.append("search",s.search),s.is_registered!==void 0&&a.append("is_registered",s.is_registered.toString()),s.is_banned!==void 0&&a.append("is_banned",s.is_banned.toString()),s.format&&a.append("format",s.format),s.sort_by&&a.append("sort_by",s.sort_by),s.sort_order&&a.append("sort_order",s.sort_order);const l=await Fe(`${va}/list?${a}`,{headers:Ie()});if(!l.ok)throw new Error(`获取表情包列表失败: ${l.statusText}`);return l.json()}async function IM(s){const a=await Fe(`${va}/${s}`,{headers:Ie()});if(!a.ok)throw new Error(`获取表情包详情失败: ${a.statusText}`);return a.json()}async function WM(s,a){const l=await Fe(`${va}/${s}`,{method:"PATCH",headers:Ie(),body:JSON.stringify(a)});if(!l.ok)throw new Error(`更新表情包失败: ${l.statusText}`);return l.json()}async function XM(s){const a=await Fe(`${va}/${s}`,{method:"DELETE",headers:Ie()});if(!a.ok)throw new Error(`删除表情包失败: ${a.statusText}`);return a.json()}async function KM(){const s=await Fe(`${va}/stats/summary`,{headers:Ie()});if(!s.ok)throw new Error(`获取统计数据失败: ${s.statusText}`);return s.json()}async function QM(s){const a=await Fe(`${va}/${s}/register`,{method:"POST",headers:Ie()});if(!a.ok)throw new Error(`注册表情包失败: ${a.statusText}`);return a.json()}async function ZM(s){const a=await Fe(`${va}/${s}/ban`,{method:"POST",headers:Ie()});if(!a.ok)throw new Error(`封禁表情包失败: ${a.statusText}`);return a.json()}function Zf(s){const a=localStorage.getItem("access-token");return`${va}/${s}/thumbnail?token=${encodeURIComponent(a||"")}`}async function JM(s){const a=await Fe(`${va}/batch/delete`,{method:"POST",headers:Ie(),body:JSON.stringify({emoji_ids:s})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"批量删除失败")}return a.json()}function eD(){const[s,a]=x.useState([]),[l,i]=x.useState(null),[c,d]=x.useState(!1),[m,h]=x.useState(1),[p,v]=x.useState(0),[g,j]=x.useState(20),[b,w]=x.useState(""),[S,C]=x.useState("all"),[N,T]=x.useState("all"),[P,M]=x.useState("all"),[k,D]=x.useState(null),[A,E]=x.useState(!1),[B,Y]=x.useState(!1),[G,$]=x.useState(!1),[oe,je]=x.useState(new Set),[ae,me]=x.useState(!1),[R,O]=x.useState(""),{toast:L}=Es(),ee=x.useCallback(async()=>{try{d(!0);const re=await $M({page:m,page_size:g,search:b||void 0,is_registered:S==="all"?void 0:S==="registered",is_banned:N==="all"?void 0:N==="banned",format:P==="all"?void 0:P,sort_by:"usage_count",sort_order:"desc"});a(re.data),v(re.total)}catch(re){const Pe=re instanceof Error?re.message:"加载表情包列表失败";L({title:"错误",description:Pe,variant:"destructive"})}finally{d(!1)}},[m,g,b,S,N,P,L]),le=async()=>{try{const re=await KM();i(re.data)}catch(re){console.error("加载统计数据失败:",re)}};x.useEffect(()=>{ee()},[ee]),x.useEffect(()=>{le()},[]);const xe=async re=>{try{const Pe=await IM(re.id);D(Pe.data),E(!0)}catch(Pe){const ze=Pe instanceof Error?Pe.message:"加载详情失败";L({title:"错误",description:ze,variant:"destructive"})}},F=re=>{D(re),Y(!0)},W=re=>{D(re),$(!0)},fe=async()=>{if(k)try{await XM(k.id),L({title:"成功",description:"表情包已删除"}),$(!1),D(null),ee(),le()}catch(re){const Pe=re instanceof Error?re.message:"删除失败";L({title:"错误",description:Pe,variant:"destructive"})}},I=async re=>{try{await QM(re.id),L({title:"成功",description:"表情包已注册"}),ee(),le()}catch(Pe){const ze=Pe instanceof Error?Pe.message:"注册失败";L({title:"错误",description:ze,variant:"destructive"})}},ve=async re=>{try{await ZM(re.id),L({title:"成功",description:"表情包已封禁"}),ee(),le()}catch(Pe){const ze=Pe instanceof Error?Pe.message:"封禁失败";L({title:"错误",description:ze,variant:"destructive"})}},de=re=>{const Pe=new Set(oe);Pe.has(re)?Pe.delete(re):Pe.add(re),je(Pe)},Ce=()=>{oe.size===s.length&&s.length>0?je(new Set):je(new Set(s.map(re=>re.id)))},Q=async()=>{try{const re=await JM(Array.from(oe));L({title:"批量删除完成",description:re.message}),je(new Set),me(!1),ee(),le()}catch(re){L({title:"批量删除失败",description:re instanceof Error?re.message:"批量删除失败",variant:"destructive"})}},Oe=()=>{const re=parseInt(R),Pe=Math.ceil(p/g);re>=1&&re<=Pe?(h(re),O("")):L({title:"无效的页码",description:`请输入1-${Pe}之间的页码`,variant:"destructive"})},$e=l?.formats?Object.keys(l.formats):[];return e.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[e.jsxs("div",{className:"mb-4 sm:mb-6",children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),e.jsx(Ct,{className:"flex-1",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[l&&e.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[e.jsx(Ue,{children:e.jsxs(ot,{className:"pb-2",children:[e.jsx(us,{children:"总数"}),e.jsx(ct,{className:"text-2xl",children:l.total})]})}),e.jsx(Ue,{children:e.jsxs(ot,{className:"pb-2",children:[e.jsx(us,{children:"已注册"}),e.jsx(ct,{className:"text-2xl text-green-600",children:l.registered})]})}),e.jsx(Ue,{children:e.jsxs(ot,{className:"pb-2",children:[e.jsx(us,{children:"已封禁"}),e.jsx(ct,{className:"text-2xl text-red-600",children:l.banned})]})}),e.jsx(Ue,{children:e.jsxs(ot,{className:"pb-2",children:[e.jsx(us,{children:"未注册"}),e.jsx(ct,{className:"text-2xl text-gray-600",children:l.unregistered})]})})]}),e.jsxs(Ue,{children:[e.jsx(ot,{children:e.jsxs(ct,{className:"flex items-center gap-2",children:[e.jsx(Lf,{className:"h-5 w-5"}),"搜索和筛选"]})}),e.jsxs(gt,{className:"space-y-4",children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"搜索"}),e.jsxs("div",{className:"relative",children:[e.jsx(Gs,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"描述或哈希值...",value:b,onChange:re=>{w(re.target.value),h(1)},className:"pl-8"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"注册状态"}),e.jsxs(rt,{value:S,onValueChange:re=>{C(re),h(1)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部"}),e.jsx(ye,{value:"registered",children:"已注册"}),e.jsx(ye,{value:"unregistered",children:"未注册"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"封禁状态"}),e.jsxs(rt,{value:N,onValueChange:re=>{T(re),h(1)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部"}),e.jsx(ye,{value:"banned",children:"已封禁"}),e.jsx(ye,{value:"unbanned",children:"未封禁"})]})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"格式"}),e.jsxs(rt,{value:P,onValueChange:re=>{M(re),h(1)},children:[e.jsx(at,{children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部"}),$e.map(re=>e.jsxs(ye,{value:re,children:[re.toUpperCase()," (",l?.formats[re],")"]},re))]})]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 pt-4 border-t",children:[e.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:oe.size>0&&e.jsxs("span",{children:["已选择 ",oe.size," 个表情包"]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"emoji-page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:g.toString(),onValueChange:re=>{j(parseInt(re)),h(1),je(new Set)},children:[e.jsx(at,{id:"emoji-page-size",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),oe.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>je(new Set),children:"取消选择"}),e.jsxs(q,{variant:"destructive",size:"sm",onClick:()=>me(!0),children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]}),e.jsx("div",{className:"flex justify-end pt-4 border-t",children:e.jsxs(q,{variant:"outline",size:"sm",onClick:ee,disabled:c,children:[e.jsx(xa,{className:`h-4 w-4 mr-2 ${c?"animate-spin":""}`}),"刷新"]})})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"表情包列表"}),e.jsxs(us,{children:["共 ",p," 个表情包,当前第 ",m," 页"]})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:s.length>0&&oe.size===s.length,onCheckedChange:Ce,"aria-label":"全选"})}),e.jsx(He,{className:"w-16",children:"预览"}),e.jsx(He,{children:"描述"}),e.jsx(He,{children:"格式"}),e.jsx(He,{children:"情绪标签"}),e.jsx(He,{className:"text-center",children:"状态"}),e.jsx(He,{className:"text-right",children:"使用次数"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:s.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):s.map(re=>e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:oe.has(re.id),onCheckedChange:()=>de(re.id),"aria-label":`选择 ${re.description}`})}),e.jsx(Ae,{children:e.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:e.jsx("img",{src:Zf(re.id),alt:re.description||"表情包",className:"w-full h-full object-cover",onError:Pe=>{const ze=Pe.target;ze.style.display="none";const Zt=ze.parentElement;Zt&&(Zt.innerHTML='')}})})}),e.jsx(Ae,{children:e.jsxs("div",{className:"space-y-1 max-w-xs",children:[e.jsx("div",{className:"font-medium truncate",title:re.description||"无描述",children:re.description||"无描述"}),e.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[re.emoji_hash.slice(0,16),"..."]})]})}),e.jsx(Ae,{children:e.jsx(_t,{variant:"outline",children:re.format.toUpperCase()})}),e.jsx(Ae,{children:e.jsx(Yj,{emotions:re.emotion})}),e.jsx(Ae,{className:"align-middle",children:e.jsxs("div",{className:"flex gap-2 justify-center",children:[re.is_registered&&e.jsxs(_t,{variant:"default",className:"bg-green-600",children:[e.jsx(Ys,{className:"h-3 w-3 mr-1"}),"已注册"]}),re.is_banned&&e.jsxs(_t,{variant:"destructive",children:[e.jsx(Af,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),e.jsx(Ae,{className:"text-right font-mono",children:re.usage_count}),e.jsx(Ae,{children:e.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>xe(re),children:[e.jsx(Fr,{className:"h-4 w-4 mr-1"}),"详情"]}),e.jsxs(q,{variant:"default",size:"sm",onClick:()=>F(re),children:[e.jsx(qr,{className:"h-4 w-4 mr-1"}),"编辑"]}),!re.is_registered&&e.jsxs(q,{size:"sm",onClick:()=>I(re),className:"bg-green-600 hover:bg-green-700 text-white",children:[e.jsx(Ys,{className:"h-4 w-4 mr-1"}),"注册"]}),!re.is_banned&&e.jsxs(q,{size:"sm",onClick:()=>ve(re),className:"bg-orange-600 hover:bg-orange-700 text-white",children:[e.jsx(Jv,{className:"h-4 w-4 mr-1"}),"封禁"]}),e.jsxs(q,{size:"sm",onClick:()=>W(re),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},re.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3",children:s.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):s.map(re=>e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[e.jsxs("div",{className:"flex gap-3",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:e.jsx("img",{src:Zf(re.id),alt:re.description||"表情包",className:"w-full h-full object-cover",onError:Pe=>{const ze=Pe.target;ze.style.display="none";const Zt=ze.parentElement;Zt&&(Zt.innerHTML='')}})})}),e.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[e.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[e.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:re.description||"无描述",children:re.description||"无描述"}),e.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[re.emoji_hash.slice(0,16),"..."]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[e.jsx(_t,{variant:"outline",className:"text-xs flex-shrink-0",children:re.format.toUpperCase()}),re.is_registered&&e.jsxs(_t,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[e.jsx(Ys,{className:"h-3 w-3 mr-1"}),"已注册"]}),re.is_banned&&e.jsxs(_t,{variant:"destructive",className:"text-xs flex-shrink-0",children:[e.jsx(Af,{className:"h-3 w-3 mr-1"}),"已封禁"]}),e.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",re.usage_count]})]}),re.emotion&&re.emotion.length>0&&e.jsx("div",{className:"min-w-0 overflow-hidden",children:e.jsx(Yj,{emotions:re.emotion})})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>xe(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(Fr,{className:"h-3 w-3 mr-1"}),"详情"]}),e.jsxs(q,{variant:"default",size:"sm",onClick:()=>F(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(qr,{className:"h-3 w-3 mr-1"}),"编辑"]}),!re.is_registered&&e.jsxs(q,{size:"sm",onClick:()=>I(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-green-600 hover:bg-green-700 text-white",children:[e.jsx(Ys,{className:"h-3 w-3 mr-1"}),"注册"]}),!re.is_banned&&e.jsxs(q,{size:"sm",onClick:()=>ve(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-orange-600 hover:bg-orange-700 text-white",children:[e.jsx(Jv,{className:"h-3 w-3 mr-1"}),"封禁"]}),e.jsxs(q,{size:"sm",onClick:()=>W(re),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},re.id))}),p>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(m-1)*g+1," 到"," ",Math.min(m*g,p)," 条,共 ",p," 条"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(1),disabled:m===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(re=>Math.max(1,re-1)),disabled:m===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:R,onChange:re=>O(re.target.value),onKeyDown:re=>re.key==="Enter"&&Oe(),placeholder:m.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(p/g)}),e.jsx(q,{variant:"outline",size:"sm",onClick:Oe,disabled:!R,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(re=>re+1),disabled:m>=Math.ceil(p/g),children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(Math.ceil(p/g)),disabled:m>=Math.ceil(p/g),className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]})]}),e.jsx(tD,{emoji:k,open:A,onOpenChange:E}),e.jsx(sD,{emoji:k,open:B,onOpenChange:Y,onSuccess:()=>{ee(),le()}})]})}),e.jsx(Ft,{open:ae,onOpenChange:me,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["你确定要删除选中的 ",oe.size," 个表情包吗?此操作不可撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:Q,children:"确认删除"})]})]})}),e.jsx(bs,{open:G,onOpenChange:$,children:e.jsxs(ms,{children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"确认删除"}),e.jsx(ks,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>$(!1),children:"取消"}),e.jsx(q,{variant:"destructive",onClick:fe,children:"删除"})]})]})})]})}function tD({emoji:s,open:a,onOpenChange:l}){if(!s)return null;const i=c=>c?new Date(c*1e3).toLocaleString("zh-CN"):"-";return e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[90vh]",children:[e.jsx(fs,{children:e.jsx(hs,{children:"表情包详情"})}),e.jsx(Ct,{className:"max-h-[calc(90vh-8rem)] pr-4",children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"flex justify-center",children:e.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:e.jsx("img",{src:Zf(s.id),alt:s.description||"表情包",className:"w-full h-full object-cover",onError:c=>{const d=c.target;d.style.display="none";const m=d.parentElement;m&&(m.innerHTML='')}})})}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"ID"}),e.jsx("div",{className:"mt-1 font-mono",children:s.id})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"格式"}),e.jsx("div",{className:"mt-1",children:e.jsx(_t,{variant:"outline",children:s.format.toUpperCase()})})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"文件路径"}),e.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:s.full_path})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"哈希值"}),e.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:s.emoji_hash})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"描述"}),e.jsx("div",{className:"mt-1",children:s.description||"-"})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"情绪标签"}),e.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:(()=>{const c=s.emotion?s.emotion.split(/[,,]/).map(d=>d.trim()).filter(Boolean):[];return c.length>0?c.map((d,m)=>e.jsx(_t,{variant:"secondary",children:d},m)):e.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})()})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"状态"}),e.jsxs("div",{className:"mt-2 flex gap-2",children:[s.is_registered&&e.jsx(_t,{variant:"default",className:"bg-green-600",children:"已注册"}),s.is_banned&&e.jsx(_t,{variant:"destructive",children:"已封禁"}),!s.is_registered&&!s.is_banned&&e.jsx(_t,{variant:"outline",children:"未注册"})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"使用次数"}),e.jsx("div",{className:"mt-1 font-mono text-lg",children:s.usage_count})]})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"记录时间"}),e.jsx("div",{className:"mt-1 text-sm",children:i(s.record_time)})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"注册时间"}),e.jsx("div",{className:"mt-1 text-sm",children:i(s.register_time)})]})]}),e.jsxs("div",{children:[e.jsx(U,{className:"text-muted-foreground",children:"最后使用"}),e.jsx("div",{className:"mt-1 text-sm",children:i(s.last_used_time)})]})]})})]})})}function sD({emoji:s,open:a,onOpenChange:l,onSuccess:i}){const[c,d]=x.useState(""),[m,h]=x.useState(""),[p,v]=x.useState(!1),[g,j]=x.useState(!1),[b,w]=x.useState(!1),{toast:S}=Es();x.useEffect(()=>{s&&(d(s.description||""),h(s.emotion||""),v(s.is_registered),j(s.is_banned))},[s]);const C=async()=>{if(s)try{w(!0);const N=m.split(/[,,]/).map(T=>T.trim()).filter(Boolean).join(",");await WM(s.id,{description:c||void 0,emotion:N||void 0,is_registered:p,is_banned:g}),S({title:"成功",description:"表情包信息已更新"}),l(!1),i()}catch(N){const T=N instanceof Error?N.message:"保存失败";S({title:"错误",description:T,variant:"destructive"})}finally{w(!1)}};return s?e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"编辑表情包"}),e.jsx(ks,{children:"修改表情包的描述和标签信息"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(U,{children:"描述"}),e.jsx(Dt,{value:c,onChange:N=>d(N.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),e.jsxs("div",{children:[e.jsx(U,{children:"情绪标签"}),e.jsx(pe,{value:m,onChange:N=>h(N.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Cs,{id:"is_registered",checked:p,onCheckedChange:N=>v(N===!0)}),e.jsx(U,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Cs,{id:"is_banned",checked:g,onCheckedChange:N=>j(N===!0)}),e.jsx(U,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>l(!1),children:"取消"}),e.jsx(q,{onClick:C,disabled:b,children:b?"保存中...":"保存"})]})]})}):null}function Yj({emotions:s}){const a=s?s.split(/[,,]/).map(d=>d.trim()).filter(Boolean):[];if(a.length===0)return e.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const l=(d,m=6)=>d.length<=m?d:d.slice(0,m)+"...",i=a.slice(0,3),c=a.length-3;return e.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[i.map((d,m)=>e.jsx(_t,{variant:"secondary",className:"text-xs flex-shrink-0",title:d,children:l(d)},m)),c>0&&e.jsxs(_t,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${c} 个标签: ${a.slice(3).join(", ")}`,children:["+",c]})]})}const Ll="/api/webui/expression";async function nD(s){const a=new URLSearchParams;s.page&&a.append("page",s.page.toString()),s.page_size&&a.append("page_size",s.page_size.toString()),s.search&&a.append("search",s.search),s.chat_id&&a.append("chat_id",s.chat_id);const l=await Fe(`${Ll}/list?${a}`,{headers:Ie()});if(!l.ok){const i=await l.json();throw new Error(i.detail||"获取表达方式列表失败")}return l.json()}async function aD(s){const a=await Fe(`${Ll}/${s}`,{headers:Ie()});if(!a.ok){const l=await a.json();throw new Error(l.detail||"获取表达方式详情失败")}return a.json()}async function lD(s){const a=await Fe(`${Ll}/`,{method:"POST",headers:Ie(),body:JSON.stringify(s)});if(!a.ok){const l=await a.json();throw new Error(l.detail||"创建表达方式失败")}return a.json()}async function rD(s,a){const l=await Fe(`${Ll}/${s}`,{method:"PATCH",headers:Ie(),body:JSON.stringify(a)});if(!l.ok){const i=await l.json();throw new Error(i.detail||"更新表达方式失败")}return l.json()}async function iD(s){const a=await Fe(`${Ll}/${s}`,{method:"DELETE",headers:Ie()});if(!a.ok){const l=await a.json();throw new Error(l.detail||"删除表达方式失败")}return a.json()}async function oD(s){const a=await Fe(`${Ll}/batch/delete`,{method:"POST",headers:Ie(),body:JSON.stringify({ids:s})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"批量删除表达方式失败")}return a.json()}async function cD(){const s=await Fe(`${Ll}/stats/summary`,{headers:Ie()});if(!s.ok){const a=await s.json();throw new Error(a.detail||"获取统计数据失败")}return s.json()}function dD(){const[s,a]=x.useState([]),[l,i]=x.useState(!0),[c,d]=x.useState(0),[m,h]=x.useState(1),[p,v]=x.useState(20),[g,j]=x.useState(""),[b,w]=x.useState(null),[S,C]=x.useState(!1),[N,T]=x.useState(!1),[P,M]=x.useState(!1),[k,D]=x.useState(null),[A,E]=x.useState(new Set),[B,Y]=x.useState(!1),[G,$]=x.useState(""),[oe,je]=x.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:ae}=Es(),me=async()=>{try{i(!0);const I=await nD({page:m,page_size:p,search:g||void 0});a(I.data),d(I.total)}catch(I){ae({title:"加载失败",description:I instanceof Error?I.message:"无法加载表达方式",variant:"destructive"})}finally{i(!1)}},R=async()=>{try{const I=await cD();je(I.data)}catch(I){console.error("加载统计数据失败:",I)}};x.useEffect(()=>{me(),R()},[m,p,g]);const O=async I=>{try{const ve=await aD(I.id);w(ve.data),C(!0)}catch(ve){ae({title:"加载详情失败",description:ve instanceof Error?ve.message:"无法加载表达方式详情",variant:"destructive"})}},L=I=>{w(I),T(!0)},ee=async I=>{try{await iD(I.id),ae({title:"删除成功",description:`已删除表达方式: ${I.situation}`}),D(null),me(),R()}catch(ve){ae({title:"删除失败",description:ve instanceof Error?ve.message:"无法删除表达方式",variant:"destructive"})}},le=I=>{const ve=new Set(A);ve.has(I)?ve.delete(I):ve.add(I),E(ve)},xe=()=>{A.size===s.length&&s.length>0?E(new Set):E(new Set(s.map(I=>I.id)))},F=async()=>{try{await oD(Array.from(A)),ae({title:"批量删除成功",description:`已删除 ${A.size} 个表达方式`}),E(new Set),Y(!1),me(),R()}catch(I){ae({title:"批量删除失败",description:I instanceof Error?I.message:"无法批量删除表达方式",variant:"destructive"})}},W=()=>{const I=parseInt(G),ve=Math.ceil(c/p);I>=1&&I<=ve?(h(I),$("")):ae({title:"无效的页码",description:`请输入1-${ve}之间的页码`,variant:"destructive"})},fe=I=>I?new Date(I*1e3).toLocaleString("zh-CN"):"-";return e.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[e.jsx("div",{className:"mb-4 sm:mb-6",children:e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[e.jsx(po,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),e.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),e.jsxs(q,{onClick:()=>M(!0),className:"gap-2",children:[e.jsx(ys,{className:"h-4 w-4"}),"新增表达方式"]})]})}),e.jsx(Ct,{className:"flex-1",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),e.jsx("div",{className:"text-2xl font-bold mt-1",children:oe.total})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),e.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:oe.recent_7days})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),e.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:oe.chat_count})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx(U,{htmlFor:"search",children:"搜索"}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-2 mt-1.5",children:e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(Gs,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{id:"search",placeholder:"搜索情境、风格或上下文...",value:g,onChange:I=>j(I.target.value),className:"pl-9"})]})}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[e.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:A.size>0&&e.jsxs("span",{children:["已选择 ",A.size," 个表达方式"]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:p.toString(),onValueChange:I=>{v(parseInt(I)),h(1),E(new Set)},children:[e.jsx(at,{id:"page-size",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),A.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>E(new Set),children:"取消选择"}),e.jsxs(q,{variant:"destructive",size:"sm",onClick:()=>Y(!0),children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card",children:[e.jsx("div",{className:"hidden md:block",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:A.size===s.length&&s.length>0,onCheckedChange:xe})}),e.jsx(He,{children:"情境"}),e.jsx(He,{children:"风格"}),e.jsx(He,{children:"聊天ID"}),e.jsx(He,{children:"最后活跃"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:l?e.jsx(ns,{children:e.jsx(Ae,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):s.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):s.map(I=>e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:A.has(I.id),onCheckedChange:()=>le(I.id)})}),e.jsx(Ae,{className:"font-medium max-w-xs truncate",children:I.situation}),e.jsx(Ae,{className:"max-w-xs truncate",children:I.style}),e.jsx(Ae,{className:"font-mono text-sm",children:I.chat_id}),e.jsx(Ae,{className:"text-sm text-muted-foreground",children:fe(I.last_active_time)}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>O(I),children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"详情"]}),e.jsxs(q,{variant:"default",size:"sm",onClick:()=>L(I),children:[e.jsx(qr,{className:"h-4 w-4 mr-1"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>D(I),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},I.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3 p-4",children:l?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):s.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):s.map(I=>e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Cs,{checked:A.has(I.id),onCheckedChange:()=>le(I.id),className:"mt-1"}),e.jsxs("div",{className:"min-w-0 flex-1 overflow-hidden space-y-2",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),e.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:I.situation,children:I.situation})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),e.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:I.style,children:I.style})]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),e.jsx("p",{className:"font-mono text-xs truncate",children:I.chat_id})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),e.jsx("p",{className:"text-xs",children:fe(I.last_active_time)})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>O(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(Mn,{className:"h-3 w-3 mr-1"}),"查看"]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>L(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(qr,{className:"h-3 w-3 mr-1"}),"编辑"]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>D(I),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[e.jsx(ft,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},I.id))}),c>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",c," 条记录,第 ",m," / ",Math.ceil(c/p)," 页"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(1),disabled:m===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(m-1),disabled:m===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:G,onChange:I=>$(I.target.value),onKeyDown:I=>I.key==="Enter"&&W(),placeholder:m.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(c/p)}),e.jsx(q,{variant:"outline",size:"sm",onClick:W,disabled:!G,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(m+1),disabled:m>=Math.ceil(c/p),children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(Math.ceil(c/p)),disabled:m>=Math.ceil(c/p),className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]})]})}),e.jsx(uD,{expression:b,open:S,onOpenChange:C}),e.jsx(mD,{open:P,onOpenChange:M,onSuccess:()=>{me(),R(),M(!1)}}),e.jsx(fD,{expression:b,open:N,onOpenChange:T,onSuccess:()=>{me(),R(),T(!1)}}),e.jsx(Ft,{open:!!k,onOpenChange:()=>D(null),children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除表达方式 "',k?.situation,'" 吗? 此操作不可撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>k&&ee(k),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),e.jsx(hD,{open:B,onOpenChange:Y,onConfirm:F,count:A.size})]})}function uD({expression:s,open:a,onOpenChange:l}){if(!s)return null;const i=c=>c?new Date(c*1e3).toLocaleString("zh-CN"):"-";return e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"表达方式详情"}),e.jsx(ks,{children:"查看表达方式的完整信息"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(Er,{label:"情境",value:s.situation}),e.jsx(Er,{label:"风格",value:s.style}),e.jsx(Er,{icon:xd,label:"聊天ID",value:s.chat_id,mono:!0}),e.jsx(Er,{icon:xd,label:"记录ID",value:s.id.toString(),mono:!0})]}),s.context&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"上下文"}),e.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:s.context})]}),s.up_content&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"上文内容"}),e.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:s.up_content})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(Er,{icon:_l,label:"最后活跃",value:i(s.last_active_time)}),e.jsx(Er,{icon:_l,label:"创建时间",value:i(s.create_date)})]})]}),e.jsx($s,{children:e.jsx(q,{onClick:()=>l(!1),children:"关闭"})})]})})}function Er({icon:s,label:a,value:l,mono:i=!1}){return e.jsxs("div",{className:"space-y-1",children:[e.jsxs(U,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[s&&e.jsx(s,{className:"h-3 w-3"}),a]}),e.jsx("div",{className:Z("text-sm",i&&"font-mono",!l&&"text-muted-foreground"),children:l||"-"})]})}function mD({open:s,onOpenChange:a,onSuccess:l}){const[i,c]=x.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[d,m]=x.useState(!1),{toast:h}=Es(),p=async()=>{if(!i.situation||!i.style||!i.chat_id){h({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{m(!0),await lD(i),h({title:"创建成功",description:"表达方式已创建"}),c({situation:"",style:"",context:"",up_content:"",chat_id:""}),l()}catch(v){h({title:"创建失败",description:v instanceof Error?v.message:"无法创建表达方式",variant:"destructive"})}finally{m(!1)}};return e.jsx(bs,{open:s,onOpenChange:a,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"新增表达方式"}),e.jsx(ks,{children:"创建新的表达方式记录"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsxs(U,{htmlFor:"situation",children:["情境 ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(pe,{id:"situation",value:i.situation,onChange:v=>c({...i,situation:v.target.value}),placeholder:"描述使用场景"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(U,{htmlFor:"style",children:["风格 ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(pe,{id:"style",value:i.style,onChange:v=>c({...i,style:v.target.value}),placeholder:"描述表达风格"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsxs(U,{htmlFor:"chat_id",children:["聊天ID ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx(pe,{id:"chat_id",value:i.chat_id,onChange:v=>c({...i,chat_id:v.target.value}),placeholder:"关联的聊天ID"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"context",children:"上下文"}),e.jsx(Dt,{id:"context",value:i.context,onChange:v=>c({...i,context:v.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"up_content",children:"上文内容"}),e.jsx(Dt,{id:"up_content",value:i.up_content,onChange:v=>c({...i,up_content:v.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>a(!1),children:"取消"}),e.jsx(q,{onClick:p,disabled:d,children:d?"创建中...":"创建"})]})]})})}function fD({expression:s,open:a,onOpenChange:l,onSuccess:i}){const[c,d]=x.useState({}),[m,h]=x.useState(!1),{toast:p}=Es();x.useEffect(()=>{s&&d({situation:s.situation,style:s.style,context:s.context||"",up_content:s.up_content||"",chat_id:s.chat_id})},[s]);const v=async()=>{if(s)try{h(!0),await rD(s.id,c),p({title:"保存成功",description:"表达方式已更新"}),i()}catch(g){p({title:"保存失败",description:g instanceof Error?g.message:"无法更新表达方式",variant:"destructive"})}finally{h(!1)}};return s?e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"编辑表达方式"}),e.jsx(ks,{children:"修改表达方式的信息"})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_situation",children:"情境"}),e.jsx(pe,{id:"edit_situation",value:c.situation||"",onChange:g=>d({...c,situation:g.target.value}),placeholder:"描述使用场景"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_style",children:"风格"}),e.jsx(pe,{id:"edit_style",value:c.style||"",onChange:g=>d({...c,style:g.target.value}),placeholder:"描述表达风格"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_chat_id",children:"聊天ID"}),e.jsx(pe,{id:"edit_chat_id",value:c.chat_id||"",onChange:g=>d({...c,chat_id:g.target.value}),placeholder:"关联的聊天ID"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_context",children:"上下文"}),e.jsx(Dt,{id:"edit_context",value:c.context||"",onChange:g=>d({...c,context:g.target.value}),placeholder:"上下文信息",rows:3})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit_up_content",children:"上文内容"}),e.jsx(Dt,{id:"edit_up_content",value:c.up_content||"",onChange:g=>d({...c,up_content:g.target.value}),placeholder:"上文内容",rows:3})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>l(!1),children:"取消"}),e.jsx(q,{onClick:v,disabled:m,children:m?"保存中...":"保存"})]})]})}):null}function hD({open:s,onOpenChange:a,onConfirm:l,count:i}){return e.jsx(Ft,{open:s,onOpenChange:a,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["您即将删除 ",i," 个表达方式,此操作无法撤销。确定要继续吗?"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:l,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"确认删除"})]})]})})}const si="/api/webui/person";async function xD(s){const a=new URLSearchParams;s.page&&a.append("page",s.page.toString()),s.page_size&&a.append("page_size",s.page_size.toString()),s.search&&a.append("search",s.search),s.is_known!==void 0&&a.append("is_known",s.is_known.toString()),s.platform&&a.append("platform",s.platform);const l=await Fe(`${si}/list?${a}`,{headers:Ie()});if(!l.ok){const i=await l.json();throw new Error(i.detail||"获取人物列表失败")}return l.json()}async function pD(s){const a=await Fe(`${si}/${s}`,{headers:Ie()});if(!a.ok){const l=await a.json();throw new Error(l.detail||"获取人物详情失败")}return a.json()}async function gD(s,a){const l=await Fe(`${si}/${s}`,{method:"PATCH",headers:Ie(),body:JSON.stringify(a)});if(!l.ok){const i=await l.json();throw new Error(i.detail||"更新人物信息失败")}return l.json()}async function vD(s){const a=await Fe(`${si}/${s}`,{method:"DELETE",headers:Ie()});if(!a.ok){const l=await a.json();throw new Error(l.detail||"删除人物信息失败")}return a.json()}async function jD(){const s=await Fe(`${si}/stats/summary`,{headers:Ie()});if(!s.ok){const a=await s.json();throw new Error(a.detail||"获取统计数据失败")}return s.json()}async function yD(s){const a=await Fe(`${si}/batch/delete`,{method:"POST",headers:Ie(),body:JSON.stringify({person_ids:s})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"批量删除失败")}return a.json()}function bD(){const[s,a]=x.useState([]),[l,i]=x.useState(!0),[c,d]=x.useState(0),[m,h]=x.useState(1),[p,v]=x.useState(20),[g,j]=x.useState(""),[b,w]=x.useState(void 0),[S,C]=x.useState(void 0),[N,T]=x.useState(null),[P,M]=x.useState(!1),[k,D]=x.useState(!1),[A,E]=x.useState(null),[B,Y]=x.useState({total:0,known:0,unknown:0,platforms:{}}),[G,$]=x.useState(new Set),[oe,je]=x.useState(!1),[ae,me]=x.useState(""),{toast:R}=Es(),O=async()=>{try{i(!0);const Q=await xD({page:m,page_size:p,search:g||void 0,is_known:b,platform:S});a(Q.data),d(Q.total)}catch(Q){R({title:"加载失败",description:Q instanceof Error?Q.message:"无法加载人物信息",variant:"destructive"})}finally{i(!1)}},L=async()=>{try{const Q=await jD();Y(Q.data)}catch(Q){console.error("加载统计数据失败:",Q)}};x.useEffect(()=>{O(),L()},[m,p,g,b,S]);const ee=async Q=>{try{const Oe=await pD(Q.person_id);T(Oe.data),M(!0)}catch(Oe){R({title:"加载详情失败",description:Oe instanceof Error?Oe.message:"无法加载人物详情",variant:"destructive"})}},le=Q=>{T(Q),D(!0)},xe=async Q=>{try{await vD(Q.person_id),R({title:"删除成功",description:`已删除人物信息: ${Q.person_name||Q.nickname||Q.user_id}`}),E(null),O(),L()}catch(Oe){R({title:"删除失败",description:Oe instanceof Error?Oe.message:"无法删除人物信息",variant:"destructive"})}},F=x.useMemo(()=>Object.keys(B.platforms),[B.platforms]),W=Q=>{const Oe=new Set(G);Oe.has(Q)?Oe.delete(Q):Oe.add(Q),$(Oe)},fe=()=>{G.size===s.length&&s.length>0?$(new Set):$(new Set(s.map(Q=>Q.person_id)))},I=()=>{if(G.size===0){R({title:"未选择任何人物",description:"请先选择要删除的人物",variant:"destructive"});return}je(!0)},ve=async()=>{try{const Q=await yD(Array.from(G));R({title:"批量删除完成",description:Q.message}),$(new Set),je(!1),O(),L()}catch(Q){R({title:"批量删除失败",description:Q instanceof Error?Q.message:"批量删除失败",variant:"destructive"})}},de=()=>{const Q=parseInt(ae),Oe=Math.ceil(c/p);Q>=1&&Q<=Oe?(h(Q),me("")):R({title:"无效的页码",description:`请输入1-${Oe}之间的页码`,variant:"destructive"})},Ce=Q=>Q?new Date(Q*1e3).toLocaleString("zh-CN"):"-";return e.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[e.jsx("div",{className:"mb-4 sm:mb-6",children:e.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:e.jsxs("div",{children:[e.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[e.jsx(H2,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),e.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),e.jsx(Ct,{className:"flex-1",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),e.jsx("div",{className:"text-2xl font-bold mt-1",children:B.total})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),e.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:B.known})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),e.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:B.unknown})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[e.jsxs("div",{className:"sm:col-span-2",children:[e.jsx(U,{htmlFor:"search",children:"搜索"}),e.jsxs("div",{className:"relative mt-1.5",children:[e.jsx(Gs,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:g,onChange:Q=>j(Q.target.value),className:"pl-9"})]})]}),e.jsxs("div",{children:[e.jsx(U,{htmlFor:"filter-known",children:"认识状态"}),e.jsxs(rt,{value:b===void 0?"all":b.toString(),onValueChange:Q=>{w(Q==="all"?void 0:Q==="true"),h(1)},children:[e.jsx(at,{id:"filter-known",className:"mt-1.5",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部"}),e.jsx(ye,{value:"true",children:"已认识"}),e.jsx(ye,{value:"false",children:"未认识"})]})]})]}),e.jsxs("div",{children:[e.jsx(U,{htmlFor:"filter-platform",children:"平台"}),e.jsxs(rt,{value:S||"all",onValueChange:Q=>{C(Q==="all"?void 0:Q),h(1)},children:[e.jsx(at,{id:"filter-platform",className:"mt-1.5",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部平台"}),F.map(Q=>e.jsxs(ye,{value:Q,children:[Q," (",B.platforms[Q],")"]},Q))]})]})]})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[e.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:G.size>0&&e.jsxs("span",{children:["已选择 ",G.size," 个人物"]})}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(U,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),e.jsxs(rt,{value:p.toString(),onValueChange:Q=>{v(parseInt(Q)),h(1),$(new Set)},children:[e.jsx(at,{id:"page-size",className:"w-20",children:e.jsx(it,{})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"10",children:"10"}),e.jsx(ye,{value:"20",children:"20"}),e.jsx(ye,{value:"50",children:"50"}),e.jsx(ye,{value:"100",children:"100"})]})]}),G.size>0&&e.jsxs(e.Fragment,{children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>$(new Set),children:"取消选择"}),e.jsxs(q,{variant:"destructive",size:"sm",onClick:I,children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]})]}),e.jsxs("div",{className:"rounded-lg border bg-card",children:[e.jsx("div",{className:"hidden md:block",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{className:"w-12",children:e.jsx(Cs,{checked:s.length>0&&G.size===s.length,onCheckedChange:fe,"aria-label":"全选"})}),e.jsx(He,{children:"状态"}),e.jsx(He,{children:"名称"}),e.jsx(He,{children:"昵称"}),e.jsx(He,{children:"平台"}),e.jsx(He,{children:"用户ID"}),e.jsx(He,{children:"最后更新"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:l?e.jsx(ns,{children:e.jsx(Ae,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):s.length===0?e.jsx(ns,{children:e.jsx(Ae,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):s.map(Q=>e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Cs,{checked:G.has(Q.person_id),onCheckedChange:()=>W(Q.person_id),"aria-label":`选择 ${Q.person_name||Q.nickname||Q.user_id}`})}),e.jsx(Ae,{children:e.jsx("div",{className:Z("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",Q.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:Q.is_known?"已认识":"未认识"})}),e.jsx(Ae,{className:"font-medium",children:Q.person_name||e.jsx("span",{className:"text-muted-foreground",children:"-"})}),e.jsx(Ae,{children:Q.nickname||"-"}),e.jsx(Ae,{children:Q.platform}),e.jsx(Ae,{className:"font-mono text-sm",children:Q.user_id}),e.jsx(Ae,{className:"text-sm text-muted-foreground",children:Ce(Q.last_know)}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsxs(q,{variant:"default",size:"sm",onClick:()=>ee(Q),children:[e.jsx(Mn,{className:"h-4 w-4 mr-1"}),"详情"]}),e.jsxs(q,{variant:"default",size:"sm",onClick:()=>le(Q),children:[e.jsx(qr,{className:"h-4 w-4 mr-1"}),"编辑"]}),e.jsxs(q,{size:"sm",onClick:()=>E(Q),className:"bg-red-600 hover:bg-red-700 text-white",children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},Q.id))})]})}),e.jsx("div",{className:"md:hidden space-y-3 p-4",children:l?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):s.length===0?e.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):s.map(Q=>e.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Cs,{checked:G.has(Q.person_id),onCheckedChange:()=>W(Q.person_id),className:"mt-1"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:Z("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",Q.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:Q.is_known?"已认识":"未认识"}),e.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:Q.person_name||e.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),Q.nickname&&e.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",Q.nickname]})]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),e.jsx("p",{className:"font-medium text-xs",children:Q.platform})]}),e.jsxs("div",{children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),e.jsx("p",{className:"font-mono text-xs truncate",title:Q.user_id,children:Q.user_id})]}),e.jsxs("div",{className:"col-span-2",children:[e.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),e.jsx("p",{className:"text-xs",children:Ce(Q.last_know)})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>ee(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(Mn,{className:"h-3 w-3 mr-1"}),"查看"]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>le(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[e.jsx(qr,{className:"h-3 w-3 mr-1"}),"编辑"]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>E(Q),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[e.jsx(ft,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},Q.id))}),c>0&&e.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[e.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",c," 条记录,第 ",m," / ",Math.ceil(c/p)," 页"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(1),disabled:m===1,className:"hidden sm:flex",children:e.jsx(vo,{className:"h-4 w-4"})}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(m-1),disabled:m===1,children:[e.jsx(Ol,{className:"h-4 w-4 sm:mr-1"}),e.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(pe,{type:"number",value:ae,onChange:Q=>me(Q.target.value),onKeyDown:Q=>Q.key==="Enter"&&de(),placeholder:m.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(c/p)}),e.jsx(q,{variant:"outline",size:"sm",onClick:de,disabled:!ae,className:"h-8",children:"跳转"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:()=>h(m+1),disabled:m>=Math.ceil(c/p),children:[e.jsx("span",{className:"hidden sm:inline",children:"下一页"}),e.jsx(Al,{className:"h-4 w-4 sm:ml-1"})]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>h(Math.ceil(c/p)),disabled:m>=Math.ceil(c/p),className:"hidden sm:flex",children:e.jsx(jo,{className:"h-4 w-4"})})]})]})]})]})}),e.jsx(ND,{person:N,open:P,onOpenChange:M}),e.jsx(wD,{person:N,open:k,onOpenChange:D,onSuccess:()=>{O(),L(),D(!1)}}),e.jsx(Ft,{open:!!A,onOpenChange:()=>E(null),children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认删除"}),e.jsxs(Pt,{children:['确定要删除人物信息 "',A?.person_name||A?.nickname||A?.user_id,'" 吗? 此操作不可撤销。']})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:()=>A&&xe(A),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),e.jsx(Ft,{open:oe,onOpenChange:je,children:e.jsxs(Ot,{children:[e.jsxs(At,{children:[e.jsx(zt,{children:"确认批量删除"}),e.jsxs(Pt,{children:["确定要删除选中的 ",G.size," 个人物信息吗? 此操作不可撤销。"]})]}),e.jsxs(Rt,{children:[e.jsx(Bt,{children:"取消"}),e.jsx(Lt,{onClick:ve,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})}function ND({person:s,open:a,onOpenChange:l}){if(!s)return null;const i=c=>c?new Date(c*1e3).toLocaleString("zh-CN"):"-";return e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"人物详情"}),e.jsxs(ks,{children:["查看 ",s.person_name||s.nickname||s.user_id," 的完整信息"]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsx(ma,{icon:Ey,label:"人物名称",value:s.person_name}),e.jsx(ma,{icon:po,label:"昵称",value:s.nickname}),e.jsx(ma,{icon:xd,label:"用户ID",value:s.user_id,mono:!0}),e.jsx(ma,{icon:xd,label:"人物ID",value:s.person_id,mono:!0}),e.jsx(ma,{label:"平台",value:s.platform}),e.jsx(ma,{label:"状态",value:s.is_known?"已认识":"未认识"})]}),s.name_reason&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),e.jsx("p",{className:"mt-1 text-sm",children:s.name_reason})]}),s.memory_points&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"个人印象"}),e.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:s.memory_points})]}),s.group_nick_name&&s.group_nick_name.length>0&&e.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[e.jsx(U,{className:"text-xs text-muted-foreground",children:"群昵称"}),e.jsx("div",{className:"mt-2 space-y-1",children:s.group_nick_name.map((c,d)=>e.jsxs("div",{className:"text-sm flex items-center gap-2",children:[e.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:c.group_id}),e.jsx("span",{children:"→"}),e.jsx("span",{children:c.group_nick_name})]},d))})]}),e.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[e.jsx(ma,{icon:_l,label:"认识时间",value:i(s.know_times)}),e.jsx(ma,{icon:_l,label:"首次记录",value:i(s.know_since)}),e.jsx(ma,{icon:_l,label:"最后更新",value:i(s.last_know)})]})]}),e.jsx($s,{children:e.jsx(q,{onClick:()=>l(!1),children:"关闭"})})]})})}function ma({icon:s,label:a,value:l,mono:i=!1}){return e.jsxs("div",{className:"space-y-1",children:[e.jsxs(U,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[s&&e.jsx(s,{className:"h-3 w-3"}),a]}),e.jsx("div",{className:Z("text-sm",i&&"font-mono",!l&&"text-muted-foreground"),children:l||"-"})]})}function wD({person:s,open:a,onOpenChange:l,onSuccess:i}){const[c,d]=x.useState({}),[m,h]=x.useState(!1),{toast:p}=Es();x.useEffect(()=>{s&&d({person_name:s.person_name||"",name_reason:s.name_reason||"",nickname:s.nickname||"",memory_points:s.memory_points||"",is_known:s.is_known})},[s]);const v=async()=>{if(s)try{h(!0),await gD(s.person_id,c),p({title:"保存成功",description:"人物信息已更新"}),i()}catch(g){p({title:"保存失败",description:g instanceof Error?g.message:"无法更新人物信息",variant:"destructive"})}finally{h(!1)}};return s?e.jsx(bs,{open:a,onOpenChange:l,children:e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"编辑人物信息"}),e.jsxs(ks,{children:["修改 ",s.person_name||s.nickname||s.user_id," 的信息"]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"person_name",children:"人物名称"}),e.jsx(pe,{id:"person_name",value:c.person_name||"",onChange:g=>d({...c,person_name:g.target.value}),placeholder:"为这个人设置一个名称"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"nickname",children:"昵称"}),e.jsx(pe,{id:"nickname",value:c.nickname||"",onChange:g=>d({...c,nickname:g.target.value}),placeholder:"昵称"})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"name_reason",children:"名称设定原因"}),e.jsx(Dt,{id:"name_reason",value:c.name_reason||"",onChange:g=>d({...c,name_reason:g.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"memory_points",children:"个人印象"}),e.jsx(Dt,{id:"memory_points",value:c.memory_points||"",onChange:g=>d({...c,memory_points:g.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[e.jsxs("div",{children:[e.jsx(U,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),e.jsx(Ze,{id:"is_known",checked:c.is_known,onCheckedChange:g=>d({...c,is_known:g})})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>l(!1),children:"取消"}),e.jsx(q,{onClick:v,disabled:m,children:m?"保存中...":"保存"})]})]})}):null}function SD(s,a,l="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:s,timeZoneName:l}).format(a).split(/\s/g).slice(2).join(" ")}const _D={},Ji={};function Sl(s,a){try{const i=(_D[s]||=new Intl.DateTimeFormat("en-US",{timeZone:s,timeZoneName:"longOffset"}).format)(a).split("GMT")[1];return i in Ji?Ji[i]:qj(i,i.split(":"))}catch{if(s in Ji)return Ji[s];const l=s?.match(CD);return l?qj(s,l.slice(1)):NaN}}const CD=/([+-]\d\d):?(\d\d)?/;function qj(s,a){const l=+(a[0]||0),i=+(a[1]||0),c=+(a[2]||0)/60;return Ji[s]=l*60+i>0?l*60+i+c:l*60-i-c}class Yn extends Date{constructor(...a){super(),a.length>1&&typeof a[a.length-1]=="string"&&(this.timeZone=a.pop()),this.internal=new Date,isNaN(Sl(this.timeZone,this))?this.setTime(NaN):a.length?typeof a[0]=="number"&&(a.length===1||a.length===2&&typeof a[1]!="number")?this.setTime(a[0]):typeof a[0]=="string"?this.setTime(+new Date(a[0])):a[0]instanceof Date?this.setTime(+a[0]):(this.setTime(+new Date(...a)),EN(this),Jf(this)):this.setTime(Date.now())}static tz(a,...l){return l.length?new Yn(...l,a):new Yn(Date.now(),a)}withTimeZone(a){return new Yn(+this,a)}getTimezoneOffset(){const a=-Sl(this.timeZone,this);return a>0?Math.floor(a):Math.ceil(a)}setTime(a){return Date.prototype.setTime.apply(this,arguments),Jf(this),+this}[Symbol.for("constructDateFrom")](a){return new Yn(+new Date(a),this.timeZone)}}const Vj=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(s=>{if(!Vj.test(s))return;const a=s.replace(Vj,"$1UTC");Yn.prototype[a]&&(s.startsWith("get")?Yn.prototype[s]=function(){return this.internal[a]()}:(Yn.prototype[s]=function(){return Date.prototype[a].apply(this.internal,arguments),kD(this),+this},Yn.prototype[a]=function(){return Date.prototype[a].apply(this,arguments),Jf(this),+this}))});function Jf(s){s.internal.setTime(+s),s.internal.setUTCSeconds(s.internal.getUTCSeconds()-Math.round(-Sl(s.timeZone,s)*60))}function kD(s){Date.prototype.setFullYear.call(s,s.internal.getUTCFullYear(),s.internal.getUTCMonth(),s.internal.getUTCDate()),Date.prototype.setHours.call(s,s.internal.getUTCHours(),s.internal.getUTCMinutes(),s.internal.getUTCSeconds(),s.internal.getUTCMilliseconds()),EN(s)}function EN(s){const a=Sl(s.timeZone,s),l=a>0?Math.floor(a):Math.ceil(a),i=new Date(+s);i.setUTCHours(i.getUTCHours()-1);const c=-new Date(+s).getTimezoneOffset(),d=-new Date(+i).getTimezoneOffset(),m=c-d,h=Date.prototype.getHours.apply(s)!==s.internal.getUTCHours();m&&h&&s.internal.setUTCMinutes(s.internal.getUTCMinutes()+m);const p=c-l;p&&Date.prototype.setUTCMinutes.call(s,Date.prototype.getUTCMinutes.call(s)+p);const v=new Date(+s);v.setUTCSeconds(0);const g=c>0?v.getSeconds():(v.getSeconds()-60)%60,j=Math.round(-(Sl(s.timeZone,s)*60))%60;(j||g)&&(s.internal.setUTCSeconds(s.internal.getUTCSeconds()+j),Date.prototype.setUTCSeconds.call(s,Date.prototype.getUTCSeconds.call(s)+j+g));const b=Sl(s.timeZone,s),w=b>0?Math.floor(b):Math.ceil(b),C=-new Date(+s).getTimezoneOffset()-w,N=w!==l,T=C-p;if(N&&T){Date.prototype.setUTCMinutes.call(s,Date.prototype.getUTCMinutes.call(s)+T);const P=Sl(s.timeZone,s),M=P>0?Math.floor(P):Math.ceil(P),k=w-M;k&&(s.internal.setUTCMinutes(s.internal.getUTCMinutes()+k),Date.prototype.setUTCMinutes.call(s,Date.prototype.getUTCMinutes.call(s)+k))}}class Ns extends Yn{static tz(a,...l){return l.length?new Ns(...l,a):new Ns(Date.now(),a)}toISOString(){const[a,l,i]=this.tzComponents(),c=`${a}${l}:${i}`;return this.internal.toISOString().slice(0,-1)+c}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[a,l,i,c]=this.internal.toUTCString().split(" ");return`${a?.slice(0,-1)} ${i} ${l} ${c}`}toTimeString(){const a=this.internal.toUTCString().split(" ")[4],[l,i,c]=this.tzComponents();return`${a} GMT${l}${i}${c} (${SD(this.timeZone,this)})`}toLocaleString(a,l){return Date.prototype.toLocaleString.call(this,a,{...l,timeZone:l?.timeZone||this.timeZone})}toLocaleDateString(a,l){return Date.prototype.toLocaleDateString.call(this,a,{...l,timeZone:l?.timeZone||this.timeZone})}toLocaleTimeString(a,l){return Date.prototype.toLocaleTimeString.call(this,a,{...l,timeZone:l?.timeZone||this.timeZone})}tzComponents(){const a=this.getTimezoneOffset(),l=a>0?"-":"+",i=String(Math.floor(Math.abs(a)/60)).padStart(2,"0"),c=String(Math.abs(a)%60).padStart(2,"0");return[l,i,c]}withTimeZone(a){return new Ns(+this,a)}[Symbol.for("constructDateFrom")](a){return new Ns(+new Date(a),this.timeZone)}}const MN=6048e5,TD=864e5,Gj=Symbol.for("constructDateFrom");function as(s,a){return typeof s=="function"?s(a):s&&typeof s=="object"&&Gj in s?s[Gj](a):s instanceof Date?new s.constructor(a):new Date(a)}function kt(s,a){return as(a||s,s)}function DN(s,a,l){const i=kt(s,l?.in);return isNaN(a)?as(s,NaN):(a&&i.setDate(i.getDate()+a),i)}function ON(s,a,l){const i=kt(s,l?.in);if(isNaN(a))return as(s,NaN);if(!a)return i;const c=i.getDate(),d=as(s,i.getTime());d.setMonth(i.getMonth()+a+1,0);const m=d.getDate();return c>=m?d:(i.setFullYear(d.getFullYear(),d.getMonth(),c),i)}let ED={};function To(){return ED}function Ka(s,a){const l=To(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??l.weekStartsOn??l.locale?.options?.weekStartsOn??0,c=kt(s,a?.in),d=c.getDay(),m=(d=d.getTime()?i+1:l.getTime()>=h.getTime()?i:i-1}function $j(s){const a=kt(s),l=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()));return l.setUTCFullYear(a.getFullYear()),+s-+l}function Bl(s,...a){const l=as.bind(null,s||a.find(i=>typeof i=="object"));return a.map(l)}function uo(s,a){const l=kt(s,a?.in);return l.setHours(0,0,0,0),l}function RN(s,a,l){const[i,c]=Bl(l?.in,s,a),d=uo(i),m=uo(c),h=+d-$j(d),p=+m-$j(m);return Math.round((h-p)/TD)}function MD(s,a){const l=AN(s,a),i=as(s,0);return i.setFullYear(l,0,4),i.setHours(0,0,0,0),co(i)}function DD(s,a,l){return DN(s,a*7,l)}function OD(s,a,l){return ON(s,a*12,l)}function AD(s,a){let l,i=a?.in;return s.forEach(c=>{!i&&typeof c=="object"&&(i=as.bind(null,c));const d=kt(c,i);(!l||l{!i&&typeof c=="object"&&(i=as.bind(null,c));const d=kt(c,i);(!l||l>d||isNaN(+d))&&(l=d)}),as(i,l||NaN)}function zD(s,a,l){const[i,c]=Bl(l?.in,s,a);return+uo(i)==+uo(c)}function zN(s){return s instanceof Date||typeof s=="object"&&Object.prototype.toString.call(s)==="[object Date]"}function PD(s){return!(!zN(s)&&typeof s!="number"||isNaN(+kt(s)))}function LD(s,a,l){const[i,c]=Bl(l?.in,s,a),d=i.getFullYear()-c.getFullYear(),m=i.getMonth()-c.getMonth();return d*12+m}function BD(s,a){const l=kt(s,a?.in),i=l.getMonth();return l.setFullYear(l.getFullYear(),i+1,0),l.setHours(23,59,59,999),l}function PN(s,a){const[l,i]=Bl(s,a.start,a.end);return{start:l,end:i}}function UD(s,a){const{start:l,end:i}=PN(a?.in,s);let c=+l>+i;const d=c?+l:+i,m=c?i:l;m.setHours(0,0,0,0),m.setDate(1);let h=1;const p=[];for(;+m<=d;)p.push(as(l,m)),m.setMonth(m.getMonth()+h);return c?p.reverse():p}function HD(s,a){const l=kt(s,a?.in);return l.setDate(1),l.setHours(0,0,0,0),l}function FD(s,a){const l=kt(s,a?.in),i=l.getFullYear();return l.setFullYear(i+1,0,0),l.setHours(23,59,59,999),l}function LN(s,a){const l=kt(s,a?.in);return l.setFullYear(l.getFullYear(),0,1),l.setHours(0,0,0,0),l}function YD(s,a){const{start:l,end:i}=PN(a?.in,s);let c=+l>+i;const d=c?+l:+i,m=c?i:l;m.setHours(0,0,0,0),m.setMonth(0,1);let h=1;const p=[];for(;+m<=d;)p.push(as(l,m)),m.setFullYear(m.getFullYear()+h);return c?p.reverse():p}function BN(s,a){const l=To(),i=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??l.weekStartsOn??l.locale?.options?.weekStartsOn??0,c=kt(s,a?.in),d=c.getDay(),m=(d{let i;const c=VD[s];return typeof c=="string"?i=c:a===1?i=c.one:i=c.other.replace("{{count}}",a.toString()),l?.addSuffix?l.comparison&&l.comparison>0?"in "+i:i+" ago":i};function Hr(s){return(a={})=>{const l=a.width?String(a.width):s.defaultWidth;return s.formats[l]||s.formats[s.defaultWidth]}}const $D={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},ID={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},WD={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},XD={date:Hr({formats:$D,defaultWidth:"full"}),time:Hr({formats:ID,defaultWidth:"full"}),dateTime:Hr({formats:WD,defaultWidth:"full"})},KD={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},QD=(s,a,l,i)=>KD[s];function Hn(s){return(a,l)=>{const i=l?.context?String(l.context):"standalone";let c;if(i==="formatting"&&s.formattingValues){const m=s.defaultFormattingWidth||s.defaultWidth,h=l?.width?String(l.width):m;c=s.formattingValues[h]||s.formattingValues[m]}else{const m=s.defaultWidth,h=l?.width?String(l.width):s.defaultWidth;c=s.values[h]||s.values[m]}const d=s.argumentCallback?s.argumentCallback(a):a;return c[d]}}const ZD={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},JD={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},eO={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},tO={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},sO={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},nO={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},aO=(s,a)=>{const l=Number(s),i=l%100;if(i>20||i<10)switch(i%10){case 1:return l+"st";case 2:return l+"nd";case 3:return l+"rd"}return l+"th"},lO={ordinalNumber:aO,era:Hn({values:ZD,defaultWidth:"wide"}),quarter:Hn({values:JD,defaultWidth:"wide",argumentCallback:s=>s-1}),month:Hn({values:eO,defaultWidth:"wide"}),day:Hn({values:tO,defaultWidth:"wide"}),dayPeriod:Hn({values:sO,defaultWidth:"wide",formattingValues:nO,defaultFormattingWidth:"wide"})};function Fn(s){return(a,l={})=>{const i=l.width,c=i&&s.matchPatterns[i]||s.matchPatterns[s.defaultMatchWidth],d=a.match(c);if(!d)return null;const m=d[0],h=i&&s.parsePatterns[i]||s.parsePatterns[s.defaultParseWidth],p=Array.isArray(h)?iO(h,j=>j.test(m)):rO(h,j=>j.test(m));let v;v=s.valueCallback?s.valueCallback(p):p,v=l.valueCallback?l.valueCallback(v):v;const g=a.slice(m.length);return{value:v,rest:g}}}function rO(s,a){for(const l in s)if(Object.prototype.hasOwnProperty.call(s,l)&&a(s[l]))return l}function iO(s,a){for(let l=0;l{const i=a.match(s.matchPattern);if(!i)return null;const c=i[0],d=a.match(s.parsePattern);if(!d)return null;let m=s.valueCallback?s.valueCallback(d[0]):d[0];m=l.valueCallback?l.valueCallback(m):m;const h=a.slice(c.length);return{value:m,rest:h}}}const oO=/^(\d+)(th|st|nd|rd)?/i,cO=/\d+/i,dO={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},uO={any:[/^b/i,/^(a|c)/i]},mO={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},fO={any:[/1/i,/2/i,/3/i,/4/i]},hO={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},xO={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},pO={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},gO={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},vO={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},jO={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},yO={ordinalNumber:UN({matchPattern:oO,parsePattern:cO,valueCallback:s=>parseInt(s,10)}),era:Fn({matchPatterns:dO,defaultMatchWidth:"wide",parsePatterns:uO,defaultParseWidth:"any"}),quarter:Fn({matchPatterns:mO,defaultMatchWidth:"wide",parsePatterns:fO,defaultParseWidth:"any",valueCallback:s=>s+1}),month:Fn({matchPatterns:hO,defaultMatchWidth:"wide",parsePatterns:xO,defaultParseWidth:"any"}),day:Fn({matchPatterns:pO,defaultMatchWidth:"wide",parsePatterns:gO,defaultParseWidth:"any"}),dayPeriod:Fn({matchPatterns:vO,defaultMatchWidth:"any",parsePatterns:jO,defaultParseWidth:"any"})},Hh={code:"en-US",formatDistance:GD,formatLong:XD,formatRelative:QD,localize:lO,match:yO,options:{weekStartsOn:0,firstWeekContainsDate:1}};function bO(s,a){const l=kt(s,a?.in);return RN(l,LN(l))+1}function HN(s,a){const l=kt(s,a?.in),i=+co(l)-+MD(l);return Math.round(i/MN)+1}function FN(s,a){const l=kt(s,a?.in),i=l.getFullYear(),c=To(),d=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??c.firstWeekContainsDate??c.locale?.options?.firstWeekContainsDate??1,m=as(a?.in||s,0);m.setFullYear(i+1,0,d),m.setHours(0,0,0,0);const h=Ka(m,a),p=as(a?.in||s,0);p.setFullYear(i,0,d),p.setHours(0,0,0,0);const v=Ka(p,a);return+l>=+h?i+1:+l>=+v?i:i-1}function NO(s,a){const l=To(),i=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??l.firstWeekContainsDate??l.locale?.options?.firstWeekContainsDate??1,c=FN(s,a),d=as(a?.in||s,0);return d.setFullYear(c,0,i),d.setHours(0,0,0,0),Ka(d,a)}function YN(s,a){const l=kt(s,a?.in),i=+Ka(l,a)-+NO(l,a);return Math.round(i/MN)+1}function yt(s,a){const l=s<0?"-":"",i=Math.abs(s).toString().padStart(a,"0");return l+i}const Va={y(s,a){const l=s.getFullYear(),i=l>0?l:1-l;return yt(a==="yy"?i%100:i,a.length)},M(s,a){const l=s.getMonth();return a==="M"?String(l+1):yt(l+1,2)},d(s,a){return yt(s.getDate(),a.length)},a(s,a){const l=s.getHours()/12>=1?"pm":"am";switch(a){case"a":case"aa":return l.toUpperCase();case"aaa":return l;case"aaaaa":return l[0];case"aaaa":default:return l==="am"?"a.m.":"p.m."}},h(s,a){return yt(s.getHours()%12||12,a.length)},H(s,a){return yt(s.getHours(),a.length)},m(s,a){return yt(s.getMinutes(),a.length)},s(s,a){return yt(s.getSeconds(),a.length)},S(s,a){const l=a.length,i=s.getMilliseconds(),c=Math.trunc(i*Math.pow(10,l-3));return yt(c,a.length)}},Mr={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},Ij={G:function(s,a,l){const i=s.getFullYear()>0?1:0;switch(a){case"G":case"GG":case"GGG":return l.era(i,{width:"abbreviated"});case"GGGGG":return l.era(i,{width:"narrow"});case"GGGG":default:return l.era(i,{width:"wide"})}},y:function(s,a,l){if(a==="yo"){const i=s.getFullYear(),c=i>0?i:1-i;return l.ordinalNumber(c,{unit:"year"})}return Va.y(s,a)},Y:function(s,a,l,i){const c=FN(s,i),d=c>0?c:1-c;if(a==="YY"){const m=d%100;return yt(m,2)}return a==="Yo"?l.ordinalNumber(d,{unit:"year"}):yt(d,a.length)},R:function(s,a){const l=AN(s);return yt(l,a.length)},u:function(s,a){const l=s.getFullYear();return yt(l,a.length)},Q:function(s,a,l){const i=Math.ceil((s.getMonth()+1)/3);switch(a){case"Q":return String(i);case"QQ":return yt(i,2);case"Qo":return l.ordinalNumber(i,{unit:"quarter"});case"QQQ":return l.quarter(i,{width:"abbreviated",context:"formatting"});case"QQQQQ":return l.quarter(i,{width:"narrow",context:"formatting"});case"QQQQ":default:return l.quarter(i,{width:"wide",context:"formatting"})}},q:function(s,a,l){const i=Math.ceil((s.getMonth()+1)/3);switch(a){case"q":return String(i);case"qq":return yt(i,2);case"qo":return l.ordinalNumber(i,{unit:"quarter"});case"qqq":return l.quarter(i,{width:"abbreviated",context:"standalone"});case"qqqqq":return l.quarter(i,{width:"narrow",context:"standalone"});case"qqqq":default:return l.quarter(i,{width:"wide",context:"standalone"})}},M:function(s,a,l){const i=s.getMonth();switch(a){case"M":case"MM":return Va.M(s,a);case"Mo":return l.ordinalNumber(i+1,{unit:"month"});case"MMM":return l.month(i,{width:"abbreviated",context:"formatting"});case"MMMMM":return l.month(i,{width:"narrow",context:"formatting"});case"MMMM":default:return l.month(i,{width:"wide",context:"formatting"})}},L:function(s,a,l){const i=s.getMonth();switch(a){case"L":return String(i+1);case"LL":return yt(i+1,2);case"Lo":return l.ordinalNumber(i+1,{unit:"month"});case"LLL":return l.month(i,{width:"abbreviated",context:"standalone"});case"LLLLL":return l.month(i,{width:"narrow",context:"standalone"});case"LLLL":default:return l.month(i,{width:"wide",context:"standalone"})}},w:function(s,a,l,i){const c=YN(s,i);return a==="wo"?l.ordinalNumber(c,{unit:"week"}):yt(c,a.length)},I:function(s,a,l){const i=HN(s);return a==="Io"?l.ordinalNumber(i,{unit:"week"}):yt(i,a.length)},d:function(s,a,l){return a==="do"?l.ordinalNumber(s.getDate(),{unit:"date"}):Va.d(s,a)},D:function(s,a,l){const i=bO(s);return a==="Do"?l.ordinalNumber(i,{unit:"dayOfYear"}):yt(i,a.length)},E:function(s,a,l){const i=s.getDay();switch(a){case"E":case"EE":case"EEE":return l.day(i,{width:"abbreviated",context:"formatting"});case"EEEEE":return l.day(i,{width:"narrow",context:"formatting"});case"EEEEEE":return l.day(i,{width:"short",context:"formatting"});case"EEEE":default:return l.day(i,{width:"wide",context:"formatting"})}},e:function(s,a,l,i){const c=s.getDay(),d=(c-i.weekStartsOn+8)%7||7;switch(a){case"e":return String(d);case"ee":return yt(d,2);case"eo":return l.ordinalNumber(d,{unit:"day"});case"eee":return l.day(c,{width:"abbreviated",context:"formatting"});case"eeeee":return l.day(c,{width:"narrow",context:"formatting"});case"eeeeee":return l.day(c,{width:"short",context:"formatting"});case"eeee":default:return l.day(c,{width:"wide",context:"formatting"})}},c:function(s,a,l,i){const c=s.getDay(),d=(c-i.weekStartsOn+8)%7||7;switch(a){case"c":return String(d);case"cc":return yt(d,a.length);case"co":return l.ordinalNumber(d,{unit:"day"});case"ccc":return l.day(c,{width:"abbreviated",context:"standalone"});case"ccccc":return l.day(c,{width:"narrow",context:"standalone"});case"cccccc":return l.day(c,{width:"short",context:"standalone"});case"cccc":default:return l.day(c,{width:"wide",context:"standalone"})}},i:function(s,a,l){const i=s.getDay(),c=i===0?7:i;switch(a){case"i":return String(c);case"ii":return yt(c,a.length);case"io":return l.ordinalNumber(c,{unit:"day"});case"iii":return l.day(i,{width:"abbreviated",context:"formatting"});case"iiiii":return l.day(i,{width:"narrow",context:"formatting"});case"iiiiii":return l.day(i,{width:"short",context:"formatting"});case"iiii":default:return l.day(i,{width:"wide",context:"formatting"})}},a:function(s,a,l){const c=s.getHours()/12>=1?"pm":"am";switch(a){case"a":case"aa":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"aaa":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return l.dayPeriod(c,{width:"narrow",context:"formatting"});case"aaaa":default:return l.dayPeriod(c,{width:"wide",context:"formatting"})}},b:function(s,a,l){const i=s.getHours();let c;switch(i===12?c=Mr.noon:i===0?c=Mr.midnight:c=i/12>=1?"pm":"am",a){case"b":case"bb":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"bbb":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return l.dayPeriod(c,{width:"narrow",context:"formatting"});case"bbbb":default:return l.dayPeriod(c,{width:"wide",context:"formatting"})}},B:function(s,a,l){const i=s.getHours();let c;switch(i>=17?c=Mr.evening:i>=12?c=Mr.afternoon:i>=4?c=Mr.morning:c=Mr.night,a){case"B":case"BB":case"BBB":return l.dayPeriod(c,{width:"abbreviated",context:"formatting"});case"BBBBB":return l.dayPeriod(c,{width:"narrow",context:"formatting"});case"BBBB":default:return l.dayPeriod(c,{width:"wide",context:"formatting"})}},h:function(s,a,l){if(a==="ho"){let i=s.getHours()%12;return i===0&&(i=12),l.ordinalNumber(i,{unit:"hour"})}return Va.h(s,a)},H:function(s,a,l){return a==="Ho"?l.ordinalNumber(s.getHours(),{unit:"hour"}):Va.H(s,a)},K:function(s,a,l){const i=s.getHours()%12;return a==="Ko"?l.ordinalNumber(i,{unit:"hour"}):yt(i,a.length)},k:function(s,a,l){let i=s.getHours();return i===0&&(i=24),a==="ko"?l.ordinalNumber(i,{unit:"hour"}):yt(i,a.length)},m:function(s,a,l){return a==="mo"?l.ordinalNumber(s.getMinutes(),{unit:"minute"}):Va.m(s,a)},s:function(s,a,l){return a==="so"?l.ordinalNumber(s.getSeconds(),{unit:"second"}):Va.s(s,a)},S:function(s,a){return Va.S(s,a)},X:function(s,a,l){const i=s.getTimezoneOffset();if(i===0)return"Z";switch(a){case"X":return Xj(i);case"XXXX":case"XX":return Nl(i);case"XXXXX":case"XXX":default:return Nl(i,":")}},x:function(s,a,l){const i=s.getTimezoneOffset();switch(a){case"x":return Xj(i);case"xxxx":case"xx":return Nl(i);case"xxxxx":case"xxx":default:return Nl(i,":")}},O:function(s,a,l){const i=s.getTimezoneOffset();switch(a){case"O":case"OO":case"OOO":return"GMT"+Wj(i,":");case"OOOO":default:return"GMT"+Nl(i,":")}},z:function(s,a,l){const i=s.getTimezoneOffset();switch(a){case"z":case"zz":case"zzz":return"GMT"+Wj(i,":");case"zzzz":default:return"GMT"+Nl(i,":")}},t:function(s,a,l){const i=Math.trunc(+s/1e3);return yt(i,a.length)},T:function(s,a,l){return yt(+s,a.length)}};function Wj(s,a=""){const l=s>0?"-":"+",i=Math.abs(s),c=Math.trunc(i/60),d=i%60;return d===0?l+String(c):l+String(c)+a+yt(d,2)}function Xj(s,a){return s%60===0?(s>0?"-":"+")+yt(Math.abs(s)/60,2):Nl(s,a)}function Nl(s,a=""){const l=s>0?"-":"+",i=Math.abs(s),c=yt(Math.trunc(i/60),2),d=yt(i%60,2);return l+c+a+d}const Kj=(s,a)=>{switch(s){case"P":return a.date({width:"short"});case"PP":return a.date({width:"medium"});case"PPP":return a.date({width:"long"});case"PPPP":default:return a.date({width:"full"})}},qN=(s,a)=>{switch(s){case"p":return a.time({width:"short"});case"pp":return a.time({width:"medium"});case"ppp":return a.time({width:"long"});case"pppp":default:return a.time({width:"full"})}},wO=(s,a)=>{const l=s.match(/(P+)(p+)?/)||[],i=l[1],c=l[2];if(!c)return Kj(s,a);let d;switch(i){case"P":d=a.dateTime({width:"short"});break;case"PP":d=a.dateTime({width:"medium"});break;case"PPP":d=a.dateTime({width:"long"});break;case"PPPP":default:d=a.dateTime({width:"full"});break}return d.replace("{{date}}",Kj(i,a)).replace("{{time}}",qN(c,a))},SO={p:qN,P:wO},_O=/^D+$/,CO=/^Y+$/,kO=["D","DD","YY","YYYY"];function TO(s){return _O.test(s)}function EO(s){return CO.test(s)}function MO(s,a,l){const i=DO(s,a,l);if(console.warn(i),kO.includes(s))throw new RangeError(i)}function DO(s,a,l){const i=s[0]==="Y"?"years":"days of the month";return`Use \`${s.toLowerCase()}\` instead of \`${s}\` (in \`${a}\`) for formatting ${i} to the input \`${l}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const OO=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,AO=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,RO=/^'([^]*?)'?$/,zO=/''/g,PO=/[a-zA-Z]/;function md(s,a,l){const i=To(),c=l?.locale??i.locale??Hh,d=l?.firstWeekContainsDate??l?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,m=l?.weekStartsOn??l?.locale?.options?.weekStartsOn??i.weekStartsOn??i.locale?.options?.weekStartsOn??0,h=kt(s,l?.in);if(!PD(h))throw new RangeError("Invalid time value");let p=a.match(AO).map(g=>{const j=g[0];if(j==="p"||j==="P"){const b=SO[j];return b(g,c.formatLong)}return g}).join("").match(OO).map(g=>{if(g==="''")return{isToken:!1,value:"'"};const j=g[0];if(j==="'")return{isToken:!1,value:LO(g)};if(Ij[j])return{isToken:!0,value:g};if(j.match(PO))throw new RangeError("Format string contains an unescaped latin alphabet character `"+j+"`");return{isToken:!1,value:g}});c.localize.preprocessor&&(p=c.localize.preprocessor(h,p));const v={firstWeekContainsDate:d,weekStartsOn:m,locale:c};return p.map(g=>{if(!g.isToken)return g.value;const j=g.value;(!l?.useAdditionalWeekYearTokens&&EO(j)||!l?.useAdditionalDayOfYearTokens&&TO(j))&&MO(j,a,String(s));const b=Ij[j[0]];return b(h,j,c.localize,v)}).join("")}function LO(s){const a=s.match(RO);return a?a[1].replace(zO,"'"):s}function BO(s,a){const l=kt(s,a?.in),i=l.getFullYear(),c=l.getMonth(),d=as(l,0);return d.setFullYear(i,c+1,0),d.setHours(0,0,0,0),d.getDate()}function UO(s,a){return kt(s,a?.in).getMonth()}function HO(s,a){return kt(s,a?.in).getFullYear()}function FO(s,a){return+kt(s)>+kt(a)}function YO(s,a){return+kt(s)<+kt(a)}function qO(s,a,l){const[i,c]=Bl(l?.in,s,a);return+Ka(i,l)==+Ka(c,l)}function VO(s,a,l){const[i,c]=Bl(l?.in,s,a);return i.getFullYear()===c.getFullYear()&&i.getMonth()===c.getMonth()}function GO(s,a,l){const[i,c]=Bl(l?.in,s,a);return i.getFullYear()===c.getFullYear()}function $O(s,a,l){const i=kt(s,l?.in),c=i.getFullYear(),d=i.getDate(),m=as(s,0);m.setFullYear(c,a,15),m.setHours(0,0,0,0);const h=BO(m);return i.setMonth(a,Math.min(d,h)),i}function IO(s,a,l){const i=kt(s,l?.in);return isNaN(+i)?as(s,NaN):(i.setFullYear(a),i)}const Qj=5,WO=4;function XO(s,a){const l=a.startOfMonth(s),i=l.getDay()>0?l.getDay():7,c=a.addDays(s,-i+1),d=a.addDays(c,Qj*7-1);return a.getMonth(s)===a.getMonth(d)?Qj:WO}function VN(s,a){const l=a.startOfMonth(s),i=l.getDay();return i===1?l:i===0?a.addDays(l,-6):a.addDays(l,-1*(i-1))}function KO(s,a){const l=VN(s,a),i=XO(s,a);return a.addDays(l,i*7-1)}class nn{constructor(a,l){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?Ns.tz(this.options.timeZone):new this.Date,this.newDate=(i,c,d)=>this.overrides?.newDate?this.overrides.newDate(i,c,d):this.options.timeZone?new Ns(i,c,d,this.options.timeZone):new Date(i,c,d),this.addDays=(i,c)=>this.overrides?.addDays?this.overrides.addDays(i,c):DN(i,c),this.addMonths=(i,c)=>this.overrides?.addMonths?this.overrides.addMonths(i,c):ON(i,c),this.addWeeks=(i,c)=>this.overrides?.addWeeks?this.overrides.addWeeks(i,c):DD(i,c),this.addYears=(i,c)=>this.overrides?.addYears?this.overrides.addYears(i,c):OD(i,c),this.differenceInCalendarDays=(i,c)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(i,c):RN(i,c),this.differenceInCalendarMonths=(i,c)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(i,c):LD(i,c),this.eachMonthOfInterval=i=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(i):UD(i),this.eachYearOfInterval=i=>{const c=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(i):YD(i),d=new Set(c.map(h=>this.getYear(h)));if(d.size===c.length)return c;const m=[];return d.forEach(h=>{m.push(new Date(h,0,1))}),m},this.endOfBroadcastWeek=i=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(i):KO(i,this),this.endOfISOWeek=i=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(i):qD(i),this.endOfMonth=i=>this.overrides?.endOfMonth?this.overrides.endOfMonth(i):BD(i),this.endOfWeek=(i,c)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(i,c):BN(i,this.options),this.endOfYear=i=>this.overrides?.endOfYear?this.overrides.endOfYear(i):FD(i),this.format=(i,c,d)=>{const m=this.overrides?.format?this.overrides.format(i,c,this.options):md(i,c,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(m):m},this.getISOWeek=i=>this.overrides?.getISOWeek?this.overrides.getISOWeek(i):HN(i),this.getMonth=(i,c)=>this.overrides?.getMonth?this.overrides.getMonth(i,this.options):UO(i,this.options),this.getYear=(i,c)=>this.overrides?.getYear?this.overrides.getYear(i,this.options):HO(i,this.options),this.getWeek=(i,c)=>this.overrides?.getWeek?this.overrides.getWeek(i,this.options):YN(i,this.options),this.isAfter=(i,c)=>this.overrides?.isAfter?this.overrides.isAfter(i,c):FO(i,c),this.isBefore=(i,c)=>this.overrides?.isBefore?this.overrides.isBefore(i,c):YO(i,c),this.isDate=i=>this.overrides?.isDate?this.overrides.isDate(i):zN(i),this.isSameDay=(i,c)=>this.overrides?.isSameDay?this.overrides.isSameDay(i,c):zD(i,c),this.isSameMonth=(i,c)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(i,c):VO(i,c),this.isSameYear=(i,c)=>this.overrides?.isSameYear?this.overrides.isSameYear(i,c):GO(i,c),this.max=i=>this.overrides?.max?this.overrides.max(i):AD(i),this.min=i=>this.overrides?.min?this.overrides.min(i):RD(i),this.setMonth=(i,c)=>this.overrides?.setMonth?this.overrides.setMonth(i,c):$O(i,c),this.setYear=(i,c)=>this.overrides?.setYear?this.overrides.setYear(i,c):IO(i,c),this.startOfBroadcastWeek=(i,c)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(i,this):VN(i,this),this.startOfDay=i=>this.overrides?.startOfDay?this.overrides.startOfDay(i):uo(i),this.startOfISOWeek=i=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(i):co(i),this.startOfMonth=i=>this.overrides?.startOfMonth?this.overrides.startOfMonth(i):HD(i),this.startOfWeek=(i,c)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(i,this.options):Ka(i,this.options),this.startOfYear=i=>this.overrides?.startOfYear?this.overrides.startOfYear(i):LN(i),this.options={locale:Hh,...a},this.overrides=l}getDigitMap(){const{numerals:a="latn"}=this.options,l=new Intl.NumberFormat("en-US",{numberingSystem:a}),i={};for(let c=0;c<10;c++)i[c.toString()]=l.format(c);return i}replaceDigits(a){const l=this.getDigitMap();return a.replace(/\d/g,i=>l[i]||i)}formatNumber(a){return this.replaceDigits(a.toString())}getMonthYearOrder(){const a=this.options.locale?.code;return a&&nn.yearFirstLocales.has(a)?"year-first":"month-first"}formatMonthYear(a){const{locale:l,timeZone:i,numerals:c}=this.options,d=l?.code;if(d&&nn.yearFirstLocales.has(d))try{return new Intl.DateTimeFormat(d,{month:"long",year:"numeric",timeZone:i,numberingSystem:c}).format(a)}catch{}const m=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(a,m)}}nn.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const Gn=new nn;class GN{constructor(a,l,i=Gn){this.date=a,this.displayMonth=l,this.outside=!!(l&&!i.isSameMonth(a,l)),this.dateLib=i}isEqualTo(a){return this.dateLib.isSameDay(a.date,this.date)&&this.dateLib.isSameMonth(a.displayMonth,this.displayMonth)}}class QO{constructor(a,l){this.date=a,this.weeks=l}}class ZO{constructor(a,l){this.days=l,this.weekNumber=a}}function JO(s){return Ne.createElement("button",{...s})}function eA(s){return Ne.createElement("span",{...s})}function tA(s){const{size:a=24,orientation:l="left",className:i}=s;return Ne.createElement("svg",{className:i,width:a,height:a,viewBox:"0 0 24 24"},l==="up"&&Ne.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),l==="down"&&Ne.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),l==="left"&&Ne.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),l==="right"&&Ne.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function sA(s){const{day:a,modifiers:l,...i}=s;return Ne.createElement("td",{...i})}function nA(s){const{day:a,modifiers:l,...i}=s,c=Ne.useRef(null);return Ne.useEffect(()=>{l.focused&&c.current?.focus()},[l.focused]),Ne.createElement("button",{ref:c,...i})}var Me;(function(s){s.Root="root",s.Chevron="chevron",s.Day="day",s.DayButton="day_button",s.CaptionLabel="caption_label",s.Dropdowns="dropdowns",s.Dropdown="dropdown",s.DropdownRoot="dropdown_root",s.Footer="footer",s.MonthGrid="month_grid",s.MonthCaption="month_caption",s.MonthsDropdown="months_dropdown",s.Month="month",s.Months="months",s.Nav="nav",s.NextMonthButton="button_next",s.PreviousMonthButton="button_previous",s.Week="week",s.Weeks="weeks",s.Weekday="weekday",s.Weekdays="weekdays",s.WeekNumber="week_number",s.WeekNumberHeader="week_number_header",s.YearsDropdown="years_dropdown"})(Me||(Me={}));var Gt;(function(s){s.disabled="disabled",s.hidden="hidden",s.outside="outside",s.focused="focused",s.today="today"})(Gt||(Gt={}));var En;(function(s){s.range_end="range_end",s.range_middle="range_middle",s.range_start="range_start",s.selected="selected"})(En||(En={}));var sn;(function(s){s.weeks_before_enter="weeks_before_enter",s.weeks_before_exit="weeks_before_exit",s.weeks_after_enter="weeks_after_enter",s.weeks_after_exit="weeks_after_exit",s.caption_after_enter="caption_after_enter",s.caption_after_exit="caption_after_exit",s.caption_before_enter="caption_before_enter",s.caption_before_exit="caption_before_exit"})(sn||(sn={}));function aA(s){const{options:a,className:l,components:i,classNames:c,...d}=s,m=[c[Me.Dropdown],l].join(" "),h=a?.find(({value:p})=>p===d.value);return Ne.createElement("span",{"data-disabled":d.disabled,className:c[Me.DropdownRoot]},Ne.createElement(i.Select,{className:m,...d},a?.map(({value:p,label:v,disabled:g})=>Ne.createElement(i.Option,{key:p,value:p,disabled:g},v))),Ne.createElement("span",{className:c[Me.CaptionLabel],"aria-hidden":!0},h?.label,Ne.createElement(i.Chevron,{orientation:"down",size:18,className:c[Me.Chevron]})))}function lA(s){return Ne.createElement("div",{...s})}function rA(s){return Ne.createElement("div",{...s})}function iA(s){const{calendarMonth:a,displayIndex:l,...i}=s;return Ne.createElement("div",{...i},s.children)}function oA(s){const{calendarMonth:a,displayIndex:l,...i}=s;return Ne.createElement("div",{...i})}function cA(s){return Ne.createElement("table",{...s})}function dA(s){return Ne.createElement("div",{...s})}const $N=x.createContext(void 0);function Eo(){const s=x.useContext($N);if(s===void 0)throw new Error("useDayPicker() must be used within a custom component.");return s}function uA(s){const{components:a}=Eo();return Ne.createElement(a.Dropdown,{...s})}function mA(s){const{onPreviousClick:a,onNextClick:l,previousMonth:i,nextMonth:c,...d}=s,{components:m,classNames:h,labels:{labelPrevious:p,labelNext:v}}=Eo(),g=x.useCallback(b=>{c&&l?.(b)},[c,l]),j=x.useCallback(b=>{i&&a?.(b)},[i,a]);return Ne.createElement("nav",{...d},Ne.createElement(m.PreviousMonthButton,{type:"button",className:h[Me.PreviousMonthButton],tabIndex:i?void 0:-1,"aria-disabled":i?void 0:!0,"aria-label":p(i),onClick:j},Ne.createElement(m.Chevron,{disabled:i?void 0:!0,className:h[Me.Chevron],orientation:"left"})),Ne.createElement(m.NextMonthButton,{type:"button",className:h[Me.NextMonthButton],tabIndex:c?void 0:-1,"aria-disabled":c?void 0:!0,"aria-label":v(c),onClick:g},Ne.createElement(m.Chevron,{disabled:c?void 0:!0,orientation:"right",className:h[Me.Chevron]})))}function fA(s){const{components:a}=Eo();return Ne.createElement(a.Button,{...s})}function hA(s){return Ne.createElement("option",{...s})}function xA(s){const{components:a}=Eo();return Ne.createElement(a.Button,{...s})}function pA(s){const{rootRef:a,...l}=s;return Ne.createElement("div",{...l,ref:a})}function gA(s){return Ne.createElement("select",{...s})}function vA(s){const{week:a,...l}=s;return Ne.createElement("tr",{...l})}function jA(s){return Ne.createElement("th",{...s})}function yA(s){return Ne.createElement("thead",{"aria-hidden":!0},Ne.createElement("tr",{...s}))}function bA(s){const{week:a,...l}=s;return Ne.createElement("th",{...l})}function NA(s){return Ne.createElement("th",{...s})}function wA(s){return Ne.createElement("tbody",{...s})}function SA(s){const{components:a}=Eo();return Ne.createElement(a.Dropdown,{...s})}const _A=Object.freeze(Object.defineProperty({__proto__:null,Button:JO,CaptionLabel:eA,Chevron:tA,Day:sA,DayButton:nA,Dropdown:aA,DropdownNav:lA,Footer:rA,Month:iA,MonthCaption:oA,MonthGrid:cA,Months:dA,MonthsDropdown:uA,Nav:mA,NextMonthButton:fA,Option:hA,PreviousMonthButton:xA,Root:pA,Select:gA,Week:vA,WeekNumber:bA,WeekNumberHeader:NA,Weekday:jA,Weekdays:yA,Weeks:wA,YearsDropdown:SA},Symbol.toStringTag,{value:"Module"}));function fa(s,a,l=!1,i=Gn){let{from:c,to:d}=s;const{differenceInCalendarDays:m,isSameDay:h}=i;return c&&d?(m(d,c)<0&&([c,d]=[d,c]),m(a,c)>=(l?1:0)&&m(d,a)>=(l?1:0)):!l&&d?h(d,a):!l&&c?h(c,a):!1}function IN(s){return!!(s&&typeof s=="object"&&"before"in s&&"after"in s)}function Fh(s){return!!(s&&typeof s=="object"&&"from"in s)}function WN(s){return!!(s&&typeof s=="object"&&"after"in s)}function XN(s){return!!(s&&typeof s=="object"&&"before"in s)}function KN(s){return!!(s&&typeof s=="object"&&"dayOfWeek"in s)}function QN(s,a){return Array.isArray(s)&&s.every(a.isDate)}function ha(s,a,l=Gn){const i=Array.isArray(a)?a:[a],{isSameDay:c,differenceInCalendarDays:d,isAfter:m}=l;return i.some(h=>{if(typeof h=="boolean")return h;if(l.isDate(h))return c(s,h);if(QN(h,l))return h.includes(s);if(Fh(h))return fa(h,s,!1,l);if(KN(h))return Array.isArray(h.dayOfWeek)?h.dayOfWeek.includes(s.getDay()):h.dayOfWeek===s.getDay();if(IN(h)){const p=d(h.before,s),v=d(h.after,s),g=p>0,j=v<0;return m(h.before,h.after)?j&&g:g||j}return WN(h)?d(s,h.after)>0:XN(h)?d(h.before,s)>0:typeof h=="function"?h(s):!1})}function CA(s,a,l,i,c){const{disabled:d,hidden:m,modifiers:h,showOutsideDays:p,broadcastCalendar:v,today:g}=a,{isSameDay:j,isSameMonth:b,startOfMonth:w,isBefore:S,endOfMonth:C,isAfter:N}=c,T=l&&w(l),P=i&&C(i),M={[Gt.focused]:[],[Gt.outside]:[],[Gt.disabled]:[],[Gt.hidden]:[],[Gt.today]:[]},k={};for(const D of s){const{date:A,displayMonth:E}=D,B=!!(E&&!b(A,E)),Y=!!(T&&S(A,T)),G=!!(P&&N(A,P)),$=!!(d&&ha(A,d,c)),oe=!!(m&&ha(A,m,c))||Y||G||!v&&!p&&B||v&&p===!1&&B,je=j(A,g??c.today());B&&M.outside.push(D),$&&M.disabled.push(D),oe&&M.hidden.push(D),je&&M.today.push(D),h&&Object.keys(h).forEach(ae=>{const me=h?.[ae];me&&ha(A,me,c)&&(k[ae]?k[ae].push(D):k[ae]=[D])})}return D=>{const A={[Gt.focused]:!1,[Gt.disabled]:!1,[Gt.hidden]:!1,[Gt.outside]:!1,[Gt.today]:!1},E={};for(const B in M){const Y=M[B];A[B]=Y.some(G=>G===D)}for(const B in k)E[B]=k[B].some(Y=>Y===D);return{...A,...E}}}function kA(s,a,l={}){return Object.entries(s).filter(([,c])=>c===!0).reduce((c,[d])=>(l[d]?c.push(l[d]):a[Gt[d]]?c.push(a[Gt[d]]):a[En[d]]&&c.push(a[En[d]]),c),[a[Me.Day]])}function TA(s){return{..._A,...s}}function EA(s){const a={"data-mode":s.mode??void 0,"data-required":"required"in s?s.required:void 0,"data-multiple-months":s.numberOfMonths&&s.numberOfMonths>1||void 0,"data-week-numbers":s.showWeekNumber||void 0,"data-broadcast-calendar":s.broadcastCalendar||void 0,"data-nav-layout":s.navLayout||void 0};return Object.entries(s).forEach(([l,i])=>{l.startsWith("data-")&&(a[l]=i)}),a}function Yh(){const s={};for(const a in Me)s[Me[a]]=`rdp-${Me[a]}`;for(const a in Gt)s[Gt[a]]=`rdp-${Gt[a]}`;for(const a in En)s[En[a]]=`rdp-${En[a]}`;for(const a in sn)s[sn[a]]=`rdp-${sn[a]}`;return s}function ZN(s,a,l){return(l??new nn(a)).formatMonthYear(s)}const MA=ZN;function DA(s,a,l){return(l??new nn(a)).format(s,"d")}function OA(s,a=Gn){return a.format(s,"LLLL")}function AA(s,a,l){return(l??new nn(a)).format(s,"cccccc")}function RA(s,a=Gn){return s<10?a.formatNumber(`0${s.toLocaleString()}`):a.formatNumber(`${s.toLocaleString()}`)}function zA(){return""}function JN(s,a=Gn){return a.format(s,"yyyy")}const PA=JN,LA=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:ZN,formatDay:DA,formatMonthCaption:MA,formatMonthDropdown:OA,formatWeekNumber:RA,formatWeekNumberHeader:zA,formatWeekdayName:AA,formatYearCaption:PA,formatYearDropdown:JN},Symbol.toStringTag,{value:"Module"}));function BA(s){return s?.formatMonthCaption&&!s.formatCaption&&(s.formatCaption=s.formatMonthCaption),s?.formatYearCaption&&!s.formatYearDropdown&&(s.formatYearDropdown=s.formatYearCaption),{...LA,...s}}function UA(s,a,l,i,c){const{startOfMonth:d,startOfYear:m,endOfYear:h,eachMonthOfInterval:p,getMonth:v}=c;return p({start:m(s),end:h(s)}).map(b=>{const w=i.formatMonthDropdown(b,c),S=v(b),C=a&&bd(l)||!1;return{value:S,label:w,disabled:C}})}function HA(s,a={},l={}){let i={...a?.[Me.Day]};return Object.entries(s).filter(([,c])=>c===!0).forEach(([c])=>{i={...i,...l?.[c]}}),i}function FA(s,a,l){const i=s.today(),c=a?s.startOfISOWeek(i):s.startOfWeek(i),d=[];for(let m=0;m<7;m++){const h=s.addDays(c,m);d.push(h)}return d}function YA(s,a,l,i,c=!1){if(!s||!a)return;const{startOfYear:d,endOfYear:m,eachYearOfInterval:h,getYear:p}=i,v=d(s),g=m(a),j=h({start:v,end:g});return c&&j.reverse(),j.map(b=>{const w=l.formatYearDropdown(b,i);return{value:p(b),label:w,disabled:!1}})}function ew(s,a,l,i){let c=(i??new nn(l)).format(s,"PPPP");return a.today&&(c=`Today, ${c}`),a.selected&&(c=`${c}, selected`),c}const qA=ew;function tw(s,a,l){return(l??new nn(a)).formatMonthYear(s)}const VA=tw;function GA(s,a,l,i){let c=(i??new nn(l)).format(s,"PPPP");return a?.today&&(c=`Today, ${c}`),c}function $A(s){return"Choose the Month"}function IA(){return""}function WA(s){return"Go to the Next Month"}function XA(s){return"Go to the Previous Month"}function KA(s,a,l){return(l??new nn(a)).format(s,"cccc")}function QA(s,a){return`Week ${s}`}function ZA(s){return"Week Number"}function JA(s){return"Choose the Year"}const eR=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:VA,labelDay:qA,labelDayButton:ew,labelGrid:tw,labelGridcell:GA,labelMonthDropdown:$A,labelNav:IA,labelNext:WA,labelPrevious:XA,labelWeekNumber:QA,labelWeekNumberHeader:ZA,labelWeekday:KA,labelYearDropdown:JA},Symbol.toStringTag,{value:"Module"})),Mo=s=>s instanceof HTMLElement?s:null,kf=s=>[...s.querySelectorAll("[data-animated-month]")??[]],tR=s=>Mo(s.querySelector("[data-animated-month]")),Tf=s=>Mo(s.querySelector("[data-animated-caption]")),Ef=s=>Mo(s.querySelector("[data-animated-weeks]")),sR=s=>Mo(s.querySelector("[data-animated-nav]")),nR=s=>Mo(s.querySelector("[data-animated-weekdays]"));function aR(s,a,{classNames:l,months:i,focused:c,dateLib:d}){const m=x.useRef(null),h=x.useRef(i),p=x.useRef(!1);x.useLayoutEffect(()=>{const v=h.current;if(h.current=i,!a||!s.current||!(s.current instanceof HTMLElement)||i.length===0||v.length===0||i.length!==v.length)return;const g=d.isSameMonth(i[0].date,v[0].date),j=d.isAfter(i[0].date,v[0].date),b=j?l[sn.caption_after_enter]:l[sn.caption_before_enter],w=j?l[sn.weeks_after_enter]:l[sn.weeks_before_enter],S=m.current,C=s.current.cloneNode(!0);if(C instanceof HTMLElement?(kf(C).forEach(M=>{if(!(M instanceof HTMLElement))return;const k=tR(M);k&&M.contains(k)&&M.removeChild(k);const D=Tf(M);D&&D.classList.remove(b);const A=Ef(M);A&&A.classList.remove(w)}),m.current=C):m.current=null,p.current||g||c)return;const N=S instanceof HTMLElement?kf(S):[],T=kf(s.current);if(T?.every(P=>P instanceof HTMLElement)&&N&&N.every(P=>P instanceof HTMLElement)){p.current=!0,s.current.style.isolation="isolate";const P=sR(s.current);P&&(P.style.zIndex="1"),T.forEach((M,k)=>{const D=N[k];if(!D)return;M.style.position="relative",M.style.overflow="hidden";const A=Tf(M);A&&A.classList.add(b);const E=Ef(M);E&&E.classList.add(w);const B=()=>{p.current=!1,s.current&&(s.current.style.isolation=""),P&&(P.style.zIndex=""),A&&A.classList.remove(b),E&&E.classList.remove(w),M.style.position="",M.style.overflow="",M.contains(D)&&M.removeChild(D)};D.style.pointerEvents="none",D.style.position="absolute",D.style.overflow="hidden",D.setAttribute("aria-hidden","true");const Y=nR(D);Y&&(Y.style.opacity="0");const G=Tf(D);G&&(G.classList.add(j?l[sn.caption_before_exit]:l[sn.caption_after_exit]),G.addEventListener("animationend",B));const $=Ef(D);$&&$.classList.add(j?l[sn.weeks_before_exit]:l[sn.weeks_after_exit]),M.insertBefore(D,M.firstChild)})}})}function lR(s,a,l,i){const c=s[0],d=s[s.length-1],{ISOWeek:m,fixedWeeks:h,broadcastCalendar:p}=l??{},{addDays:v,differenceInCalendarDays:g,differenceInCalendarMonths:j,endOfBroadcastWeek:b,endOfISOWeek:w,endOfMonth:S,endOfWeek:C,isAfter:N,startOfBroadcastWeek:T,startOfISOWeek:P,startOfWeek:M}=i,k=p?T(c,i):m?P(c):M(c),D=p?b(d):m?w(S(d)):C(S(d)),A=g(D,k),E=j(d,c)+1,B=[];for(let $=0;$<=A;$++){const oe=v(k,$);if(a&&N(oe,a))break;B.push(oe)}const G=(p?35:42)*E;if(h&&B.length{const c=i.weeks.reduce((d,m)=>d.concat(m.days.slice()),a.slice());return l.concat(c.slice())},a.slice())}function iR(s,a,l,i){const{numberOfMonths:c=1}=l,d=[];for(let m=0;ma)break;d.push(h)}return d}function Zj(s,a,l,i){const{month:c,defaultMonth:d,today:m=i.today(),numberOfMonths:h=1}=s;let p=c||d||m;const{differenceInCalendarMonths:v,addMonths:g,startOfMonth:j}=i;if(l&&v(l,p){const T=l.broadcastCalendar?j(N,i):l.ISOWeek?b(N):w(N),P=l.broadcastCalendar?d(N):l.ISOWeek?m(h(N)):p(h(N)),M=a.filter(E=>E>=T&&E<=P),k=l.broadcastCalendar?35:42;if(l.fixedWeeks&&M.length{const Y=k-M.length;return B>P&&B<=c(P,Y)});M.push(...E)}const D=M.reduce((E,B)=>{const Y=l.ISOWeek?v(B):g(B),G=E.find(oe=>oe.weekNumber===Y),$=new GN(B,N,i);return G?G.days.push($):E.push(new ZO(Y,[$])),E},[]),A=new QO(N,D);return C.push(A),C},[]);return l.reverseMonths?S.reverse():S}function cR(s,a){let{startMonth:l,endMonth:i}=s;const{startOfYear:c,startOfDay:d,startOfMonth:m,endOfMonth:h,addYears:p,endOfYear:v,newDate:g,today:j}=a,{fromYear:b,toYear:w,fromMonth:S,toMonth:C}=s;!l&&S&&(l=S),!l&&b&&(l=a.newDate(b,0,1)),!i&&C&&(i=C),!i&&w&&(i=g(w,11,31));const N=s.captionLayout==="dropdown"||s.captionLayout==="dropdown-years";return l?l=m(l):b?l=g(b,0,1):!l&&N&&(l=c(p(s.today??j(),-100))),i?i=h(i):w?i=g(w,11,31):!i&&N&&(i=v(s.today??j())),[l&&d(l),i&&d(i)]}function dR(s,a,l,i){if(l.disableNavigation)return;const{pagedNavigation:c,numberOfMonths:d=1}=l,{startOfMonth:m,addMonths:h,differenceInCalendarMonths:p}=i,v=c?d:1,g=m(s);if(!a)return h(g,v);if(!(p(a,s)l.concat(i.weeks.slice()),a.slice())}function Id(s,a){const[l,i]=x.useState(s);return[a===void 0?l:a,i]}function fR(s,a){const[l,i]=cR(s,a),{startOfMonth:c,endOfMonth:d}=a,m=Zj(s,l,i,a),[h,p]=Id(m,s.month?m:void 0);x.useEffect(()=>{const A=Zj(s,l,i,a);p(A)},[s.timeZone]);const v=iR(h,i,s,a),g=lR(v,s.endMonth?d(s.endMonth):void 0,s,a),j=oR(v,g,s,a),b=mR(j),w=rR(j),S=uR(h,l,s,a),C=dR(h,i,s,a),{disableNavigation:N,onMonthChange:T}=s,P=A=>b.some(E=>E.days.some(B=>B.isEqualTo(A))),M=A=>{if(N)return;let E=c(A);l&&Ec(i)&&(E=c(i)),p(E),T?.(E)};return{months:j,weeks:b,days:w,navStart:l,navEnd:i,previousMonth:S,nextMonth:C,goToMonth:M,goToDay:A=>{P(A)||M(A.date)}}}var Un;(function(s){s[s.Today=0]="Today",s[s.Selected=1]="Selected",s[s.LastFocused=2]="LastFocused",s[s.FocusedModifier=3]="FocusedModifier"})(Un||(Un={}));function Jj(s){return!s[Gt.disabled]&&!s[Gt.hidden]&&!s[Gt.outside]}function hR(s,a,l,i){let c,d=-1;for(const m of s){const h=a(m);Jj(h)&&(h[Gt.focused]&&dJj(a(m)))),c}function xR(s,a,l,i,c,d,m){const{ISOWeek:h,broadcastCalendar:p}=d,{addDays:v,addMonths:g,addWeeks:j,addYears:b,endOfBroadcastWeek:w,endOfISOWeek:S,endOfWeek:C,max:N,min:T,startOfBroadcastWeek:P,startOfISOWeek:M,startOfWeek:k}=m;let A={day:v,week:j,month:g,year:b,startOfWeek:E=>p?P(E,m):h?M(E):k(E),endOfWeek:E=>p?w(E):h?S(E):C(E)}[s](l,a==="after"?1:-1);return a==="before"&&i?A=N([i,A]):a==="after"&&c&&(A=T([c,A])),A}function sw(s,a,l,i,c,d,m,h=0){if(h>365)return;const p=xR(s,a,l.date,i,c,d,m),v=!!(d.disabled&&ha(p,d.disabled,m)),g=!!(d.hidden&&ha(p,d.hidden,m)),j=p,b=new GN(p,j,m);return!v&&!g?b:sw(s,a,b,i,c,d,m,h+1)}function pR(s,a,l,i,c){const{autoFocus:d}=s,[m,h]=x.useState(),p=hR(a.days,l,i||(()=>!1),m),[v,g]=x.useState(d?p:void 0);return{isFocusTarget:C=>!!p?.isEqualTo(C),setFocused:g,focused:v,blur:()=>{h(v),g(void 0)},moveFocus:(C,N)=>{if(!v)return;const T=sw(C,N,v,a.navStart,a.navEnd,s,c);T&&(s.disableNavigation&&!a.days.some(M=>M.isEqualTo(T))||(a.goToDay(T),g(T)))}}}function gR(s,a){const{selected:l,required:i,onSelect:c}=s,[d,m]=Id(l,c?l:void 0),h=c?l:d,{isSameDay:p}=a,v=w=>h?.some(S=>p(S,w))??!1,{min:g,max:j}=s;return{selected:h,select:(w,S,C)=>{let N=[...h??[]];if(v(w)){if(h?.length===g||i&&h?.length===1)return;N=h?.filter(T=>!p(T,w))}else h?.length===j?N=[w]:N=[...N,w];return c||m(N),c?.(N,w,S,C),N},isSelected:v}}function vR(s,a,l=0,i=0,c=!1,d=Gn){const{from:m,to:h}=a||{},{isSameDay:p,isAfter:v,isBefore:g}=d;let j;if(!m&&!h)j={from:s,to:l>0?void 0:s};else if(m&&!h)p(m,s)?l===0?j={from:m,to:s}:c?j={from:m,to:void 0}:j=void 0:g(s,m)?j={from:s,to:m}:j={from:m,to:s};else if(m&&h)if(p(m,s)&&p(h,s))c?j={from:m,to:h}:j=void 0;else if(p(m,s))j={from:m,to:l>0?void 0:s};else if(p(h,s))j={from:s,to:l>0?void 0:s};else if(g(s,m))j={from:s,to:h};else if(v(s,m))j={from:m,to:s};else if(v(s,h))j={from:m,to:s};else throw new Error("Invalid range");if(j?.from&&j?.to){const b=d.differenceInCalendarDays(j.to,j.from);i>0&&b>i?j={from:s,to:void 0}:l>1&&btypeof h!="function").some(h=>typeof h=="boolean"?h:l.isDate(h)?fa(s,h,!1,l):QN(h,l)?h.some(p=>fa(s,p,!1,l)):Fh(h)?h.from&&h.to?ey(s,{from:h.from,to:h.to},l):!1:KN(h)?jR(s,h.dayOfWeek,l):IN(h)?l.isAfter(h.before,h.after)?ey(s,{from:l.addDays(h.after,1),to:l.addDays(h.before,-1)},l):ha(s.from,h,l)||ha(s.to,h,l):WN(h)||XN(h)?ha(s.from,h,l)||ha(s.to,h,l):!1))return!0;const m=i.filter(h=>typeof h=="function");if(m.length){let h=s.from;const p=l.differenceInCalendarDays(s.to,s.from);for(let v=0;v<=p;v++){if(m.some(g=>g(h)))return!0;h=l.addDays(h,1)}}return!1}function bR(s,a){const{disabled:l,excludeDisabled:i,selected:c,required:d,onSelect:m}=s,[h,p]=Id(c,m?c:void 0),v=m?c:h;return{selected:v,select:(b,w,S)=>{const{min:C,max:N}=s,T=b?vR(b,v,C,N,d,a):void 0;return i&&l&&T?.from&&T.to&&yR({from:T.from,to:T.to},l,a)&&(T.from=b,T.to=void 0),m||p(T),m?.(T,b,w,S),T},isSelected:b=>v&&fa(v,b,!1,a)}}function NR(s,a){const{selected:l,required:i,onSelect:c}=s,[d,m]=Id(l,c?l:void 0),h=c?l:d,{isSameDay:p}=a;return{selected:h,select:(j,b,w)=>{let S=j;return!i&&h&&h&&p(j,h)&&(S=void 0),c||m(S),c?.(S,j,b,w),S},isSelected:j=>h?p(h,j):!1}}function wR(s,a){const l=NR(s,a),i=gR(s,a),c=bR(s,a);switch(s.mode){case"single":return l;case"multiple":return i;case"range":return c;default:return}}function SR(s){let a=s;a.timeZone&&(a={...s},a.today&&(a.today=new Ns(a.today,a.timeZone)),a.month&&(a.month=new Ns(a.month,a.timeZone)),a.defaultMonth&&(a.defaultMonth=new Ns(a.defaultMonth,a.timeZone)),a.startMonth&&(a.startMonth=new Ns(a.startMonth,a.timeZone)),a.endMonth&&(a.endMonth=new Ns(a.endMonth,a.timeZone)),a.mode==="single"&&a.selected?a.selected=new Ns(a.selected,a.timeZone):a.mode==="multiple"&&a.selected?a.selected=a.selected?.map(We=>new Ns(We,a.timeZone)):a.mode==="range"&&a.selected&&(a.selected={from:a.selected.from?new Ns(a.selected.from,a.timeZone):void 0,to:a.selected.to?new Ns(a.selected.to,a.timeZone):void 0}));const{components:l,formatters:i,labels:c,dateLib:d,locale:m,classNames:h}=x.useMemo(()=>{const We={...Hh,...a.locale};return{dateLib:new nn({locale:We,weekStartsOn:a.broadcastCalendar?1:a.weekStartsOn,firstWeekContainsDate:a.firstWeekContainsDate,useAdditionalWeekYearTokens:a.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:a.useAdditionalDayOfYearTokens,timeZone:a.timeZone,numerals:a.numerals},a.dateLib),components:TA(a.components),formatters:BA(a.formatters),labels:{...eR,...a.labels},locale:We,classNames:{...Yh(),...a.classNames}}},[a.locale,a.broadcastCalendar,a.weekStartsOn,a.firstWeekContainsDate,a.useAdditionalWeekYearTokens,a.useAdditionalDayOfYearTokens,a.timeZone,a.numerals,a.dateLib,a.components,a.formatters,a.labels,a.classNames]),{captionLayout:p,mode:v,navLayout:g,numberOfMonths:j=1,onDayBlur:b,onDayClick:w,onDayFocus:S,onDayKeyDown:C,onDayMouseEnter:N,onDayMouseLeave:T,onNextClick:P,onPrevClick:M,showWeekNumber:k,styles:D}=a,{formatCaption:A,formatDay:E,formatMonthDropdown:B,formatWeekNumber:Y,formatWeekNumberHeader:G,formatWeekdayName:$,formatYearDropdown:oe}=i,je=fR(a,d),{days:ae,months:me,navStart:R,navEnd:O,previousMonth:L,nextMonth:ee,goToMonth:le}=je,xe=CA(ae,a,R,O,d),{isSelected:F,select:W,selected:fe}=wR(a,d)??{},{blur:I,focused:ve,isFocusTarget:de,moveFocus:Ce,setFocused:Q}=pR(a,je,xe,F??(()=>!1),d),{labelDayButton:Oe,labelGridcell:$e,labelGrid:re,labelMonthDropdown:Pe,labelNav:ze,labelPrevious:Zt,labelNext:Rs,labelWeekday:An,labelWeekNumber:Le,labelWeekNumberHeader:Nn,labelYearDropdown:ln}=c,rn=x.useMemo(()=>FA(d,a.ISOWeek),[d,a.ISOWeek]),Xt=v!==void 0||w!==void 0,Ds=x.useCallback(()=>{L&&(le(L),M?.(L))},[L,le,M]),ke=x.useCallback(()=>{ee&&(le(ee),P?.(ee))},[le,ee,P]),is=x.useCallback((We,Mt)=>Be=>{Be.preventDefault(),Be.stopPropagation(),Q(We),W?.(We.date,Mt,Be),w?.(We.date,Mt,Be)},[W,w,Q]),he=x.useCallback((We,Mt)=>Be=>{Q(We),S?.(We.date,Mt,Be)},[S,Q]),Ee=x.useCallback((We,Mt)=>Be=>{I(),b?.(We.date,Mt,Be)},[I,b]),Ve=x.useCallback((We,Mt)=>Be=>{const ht={ArrowLeft:[Be.shiftKey?"month":"day",a.dir==="rtl"?"after":"before"],ArrowRight:[Be.shiftKey?"month":"day",a.dir==="rtl"?"before":"after"],ArrowDown:[Be.shiftKey?"year":"week","after"],ArrowUp:[Be.shiftKey?"year":"week","before"],PageUp:[Be.shiftKey?"year":"month","before"],PageDown:[Be.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(ht[Be.key]){Be.preventDefault(),Be.stopPropagation();const[os,Xe]=ht[Be.key];Ce(os,Xe)}C?.(We.date,Mt,Be)},[Ce,C,a.dir]),Os=x.useCallback((We,Mt)=>Be=>{N?.(We.date,Mt,Be)},[N]),$n=x.useCallback((We,Mt)=>Be=>{T?.(We.date,Mt,Be)},[T]),Hl=x.useCallback(We=>Mt=>{const Be=Number(Mt.target.value),ht=d.setMonth(d.startOfMonth(We),Be);le(ht)},[d,le]),Fl=x.useCallback(We=>Mt=>{const Be=Number(Mt.target.value),ht=d.setYear(d.startOfMonth(We),Be);le(ht)},[d,le]),{className:se,style:ge}=x.useMemo(()=>({className:[h[Me.Root],a.className].filter(Boolean).join(" "),style:{...D?.[Me.Root],...a.style}}),[h,a.className,a.style,D]),Qe=EA(a),pt=x.useRef(null);aR(pt,!!a.animate,{classNames:h,months:me,focused:ve,dateLib:d});const tl={dayPickerProps:a,selected:fe,select:W,isSelected:F,months:me,nextMonth:ee,previousMonth:L,goToMonth:le,getModifiers:xe,components:l,classNames:h,styles:D,labels:c,formatters:i};return Ne.createElement($N.Provider,{value:tl},Ne.createElement(l.Root,{rootRef:a.animate?pt:void 0,className:se,style:ge,dir:a.dir,id:a.id,lang:a.lang,nonce:a.nonce,title:a.title,role:a.role,"aria-label":a["aria-label"],"aria-labelledby":a["aria-labelledby"],...Qe},Ne.createElement(l.Months,{className:h[Me.Months],style:D?.[Me.Months]},!a.hideNavigation&&!g&&Ne.createElement(l.Nav,{"data-animated-nav":a.animate?"true":void 0,className:h[Me.Nav],style:D?.[Me.Nav],"aria-label":ze(),onPreviousClick:Ds,onNextClick:ke,previousMonth:L,nextMonth:ee}),me.map((We,Mt)=>Ne.createElement(l.Month,{"data-animated-month":a.animate?"true":void 0,className:h[Me.Month],style:D?.[Me.Month],key:Mt,displayIndex:Mt,calendarMonth:We},g==="around"&&!a.hideNavigation&&Mt===0&&Ne.createElement(l.PreviousMonthButton,{type:"button",className:h[Me.PreviousMonthButton],tabIndex:L?void 0:-1,"aria-disabled":L?void 0:!0,"aria-label":Zt(L),onClick:Ds,"data-animated-button":a.animate?"true":void 0},Ne.createElement(l.Chevron,{disabled:L?void 0:!0,className:h[Me.Chevron],orientation:a.dir==="rtl"?"right":"left"})),Ne.createElement(l.MonthCaption,{"data-animated-caption":a.animate?"true":void 0,className:h[Me.MonthCaption],style:D?.[Me.MonthCaption],calendarMonth:We,displayIndex:Mt},p?.startsWith("dropdown")?Ne.createElement(l.DropdownNav,{className:h[Me.Dropdowns],style:D?.[Me.Dropdowns]},(()=>{const Be=p==="dropdown"||p==="dropdown-months"?Ne.createElement(l.MonthsDropdown,{key:"month",className:h[Me.MonthsDropdown],"aria-label":Pe(),classNames:h,components:l,disabled:!!a.disableNavigation,onChange:Hl(We.date),options:UA(We.date,R,O,i,d),style:D?.[Me.Dropdown],value:d.getMonth(We.date)}):Ne.createElement("span",{key:"month"},B(We.date,d)),ht=p==="dropdown"||p==="dropdown-years"?Ne.createElement(l.YearsDropdown,{key:"year",className:h[Me.YearsDropdown],"aria-label":ln(d.options),classNames:h,components:l,disabled:!!a.disableNavigation,onChange:Fl(We.date),options:YA(R,O,i,d,!!a.reverseYears),style:D?.[Me.Dropdown],value:d.getYear(We.date)}):Ne.createElement("span",{key:"year"},oe(We.date,d));return d.getMonthYearOrder()==="year-first"?[ht,Be]:[Be,ht]})(),Ne.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},A(We.date,d.options,d))):Ne.createElement(l.CaptionLabel,{className:h[Me.CaptionLabel],role:"status","aria-live":"polite"},A(We.date,d.options,d))),g==="around"&&!a.hideNavigation&&Mt===j-1&&Ne.createElement(l.NextMonthButton,{type:"button",className:h[Me.NextMonthButton],tabIndex:ee?void 0:-1,"aria-disabled":ee?void 0:!0,"aria-label":Rs(ee),onClick:ke,"data-animated-button":a.animate?"true":void 0},Ne.createElement(l.Chevron,{disabled:ee?void 0:!0,className:h[Me.Chevron],orientation:a.dir==="rtl"?"left":"right"})),Mt===j-1&&g==="after"&&!a.hideNavigation&&Ne.createElement(l.Nav,{"data-animated-nav":a.animate?"true":void 0,className:h[Me.Nav],style:D?.[Me.Nav],"aria-label":ze(),onPreviousClick:Ds,onNextClick:ke,previousMonth:L,nextMonth:ee}),Ne.createElement(l.MonthGrid,{role:"grid","aria-multiselectable":v==="multiple"||v==="range","aria-label":re(We.date,d.options,d)||void 0,className:h[Me.MonthGrid],style:D?.[Me.MonthGrid]},!a.hideWeekdays&&Ne.createElement(l.Weekdays,{"data-animated-weekdays":a.animate?"true":void 0,className:h[Me.Weekdays],style:D?.[Me.Weekdays]},k&&Ne.createElement(l.WeekNumberHeader,{"aria-label":Nn(d.options),className:h[Me.WeekNumberHeader],style:D?.[Me.WeekNumberHeader],scope:"col"},G()),rn.map(Be=>Ne.createElement(l.Weekday,{"aria-label":An(Be,d.options,d),className:h[Me.Weekday],key:String(Be),style:D?.[Me.Weekday],scope:"col"},$(Be,d.options,d)))),Ne.createElement(l.Weeks,{"data-animated-weeks":a.animate?"true":void 0,className:h[Me.Weeks],style:D?.[Me.Weeks]},We.weeks.map(Be=>Ne.createElement(l.Week,{className:h[Me.Week],key:Be.weekNumber,style:D?.[Me.Week],week:Be},k&&Ne.createElement(l.WeekNumber,{week:Be,style:D?.[Me.WeekNumber],"aria-label":Le(Be.weekNumber,{locale:m}),className:h[Me.WeekNumber],scope:"row",role:"rowheader"},Y(Be.weekNumber,d)),Be.days.map(ht=>{const{date:os}=ht,Xe=xe(ht);if(Xe[Gt.focused]=!Xe.hidden&&!!ve?.isEqualTo(ht),Xe[En.selected]=F?.(os)||Xe.selected,Fh(fe)){const{from:ql,to:nl}=fe;Xe[En.range_start]=!!(ql&&nl&&d.isSameDay(os,ql)),Xe[En.range_end]=!!(ql&&nl&&d.isSameDay(os,nl)),Xe[En.range_middle]=fa(fe,os,!0,d)}const Yl=HA(Xe,D,a.modifiersStyles),sl=kA(Xe,h,a.modifiersClassNames),Zd=!Xt&&!Xe.hidden?$e(os,Xe,d.options,d):void 0;return Ne.createElement(l.Day,{key:`${d.format(os,"yyyy-MM-dd")}_${d.format(ht.displayMonth,"yyyy-MM")}`,day:ht,modifiers:Xe,className:sl.join(" "),style:Yl,role:"gridcell","aria-selected":Xe.selected||void 0,"aria-label":Zd,"data-day":d.format(os,"yyyy-MM-dd"),"data-month":ht.outside?d.format(os,"yyyy-MM"):void 0,"data-selected":Xe.selected||void 0,"data-disabled":Xe.disabled||void 0,"data-hidden":Xe.hidden||void 0,"data-outside":ht.outside||void 0,"data-focused":Xe.focused||void 0,"data-today":Xe.today||void 0},!Xe.hidden&&Xt?Ne.createElement(l.DayButton,{className:h[Me.DayButton],style:D?.[Me.DayButton],type:"button",day:ht,modifiers:Xe,disabled:Xe.disabled||void 0,tabIndex:de(ht)?0:-1,"aria-label":Oe(os,Xe,d.options,d),onClick:is(ht,Xe),onBlur:Ee(ht,Xe),onFocus:he(ht,Xe),onKeyDown:Ve(ht,Xe),onMouseEnter:Os(ht,Xe),onMouseLeave:$n(ht,Xe)},E(os,d.options,d)):!Xe.hidden&&E(ht.date,d.options,d))})))))))),a.footer&&Ne.createElement(l.Footer,{className:h[Me.Footer],style:D?.[Me.Footer],role:"status","aria-live":"polite"},a.footer)))}function ty({className:s,classNames:a,showOutsideDays:l=!0,captionLayout:i="label",buttonVariant:c="ghost",formatters:d,components:m,...h}){const p=Yh();return e.jsx(SR,{showOutsideDays:l,className:Z("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,s),captionLayout:i,formatters:{formatMonthDropdown:v=>v.toLocaleString("default",{month:"short"}),...d},classNames:{root:Z("w-fit",p.root),months:Z("relative flex flex-col gap-4 md:flex-row",p.months),month:Z("flex w-full flex-col gap-4",p.month),nav:Z("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",p.nav),button_previous:Z(io({variant:c}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",p.button_previous),button_next:Z(io({variant:c}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",p.button_next),month_caption:Z("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",p.month_caption),dropdowns:Z("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",p.dropdowns),dropdown_root:Z("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",p.dropdown_root),dropdown:Z("bg-popover absolute inset-0 opacity-0",p.dropdown),caption_label:Z("select-none font-medium",i==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",p.caption_label),table:"w-full border-collapse",weekdays:Z("flex",p.weekdays),weekday:Z("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",p.weekday),week:Z("mt-2 flex w-full",p.week),week_number_header:Z("w-[--cell-size] select-none",p.week_number_header),week_number:Z("text-muted-foreground select-none text-[0.8rem]",p.week_number),day:Z("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",p.day),range_start:Z("bg-accent rounded-l-md",p.range_start),range_middle:Z("rounded-none",p.range_middle),range_end:Z("bg-accent rounded-r-md",p.range_end),today:Z("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",p.today),outside:Z("text-muted-foreground aria-selected:text-muted-foreground",p.outside),disabled:Z("text-muted-foreground opacity-50",p.disabled),hidden:Z("invisible",p.hidden),...a},components:{Root:({className:v,rootRef:g,...j})=>e.jsx("div",{"data-slot":"calendar",ref:g,className:Z(v),...j}),Chevron:({className:v,orientation:g,...j})=>g==="left"?e.jsx(Ol,{className:Z("size-4",v),...j}):g==="right"?e.jsx(Al,{className:Z("size-4",v),...j}):e.jsx(lo,{className:Z("size-4",v),...j}),DayButton:_R,WeekNumber:({children:v,...g})=>e.jsx("td",{...g,children:e.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:v})}),...m},...h})}function _R({className:s,day:a,modifiers:l,...i}){const c=Yh(),d=x.useRef(null);return x.useEffect(()=>{l.focused&&d.current?.focus()},[l.focused]),e.jsx(q,{ref:d,variant:"ghost",size:"icon","data-day":a.date.toLocaleDateString(),"data-selected-single":l.selected&&!l.range_start&&!l.range_end&&!l.range_middle,"data-range-start":l.range_start,"data-range-end":l.range_end,"data-range-middle":l.range_middle,className:Z("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",c.day,s),...i})}class CR{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const a=window.location.protocol==="https:"?"wss:":"ws:",l=window.location.host;return`${a}//${l}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const a=this.getWebSocketUrl();try{this.ws=new WebSocket(a),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=l=>{try{if(l.data==="pong")return;const i=JSON.parse(l.data);this.notifyLog(i)}catch(i){console.error("解析日志消息失败:",i)}},this.ws.onerror=l=>{console.error("❌ WebSocket 错误:",l),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(l){console.error("创建 WebSocket 连接失败:",l),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const a=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},a)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(a){return this.logCallbacks.add(a),()=>this.logCallbacks.delete(a)}onConnectionChange(a){return this.connectionCallbacks.add(a),a(this.isConnected),()=>this.connectionCallbacks.delete(a)}notifyLog(a){this.logCache.some(i=>i.id===a.id)||(this.logCache.push(a),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(i=>{try{i(a)}catch(c){console.error("日志回调执行失败:",c)}}))}notifyConnection(a){this.connectionCallbacks.forEach(l=>{try{l(a)}catch(i){console.error("连接状态回调执行失败:",i)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const zr=new CR;typeof window<"u"&&zr.connect();const kR={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},TR=(s,a,l)=>{let i;const c=kR[s];return typeof c=="string"?i=c:a===1?i=c.one:i=c.other.replace("{{count}}",String(a)),l?.addSuffix?l.comparison&&l.comparison>0?i+"内":i+"前":i},ER={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},MR={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},DR={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},OR={date:Hr({formats:ER,defaultWidth:"full"}),time:Hr({formats:MR,defaultWidth:"full"}),dateTime:Hr({formats:DR,defaultWidth:"full"})};function sy(s,a,l){const i="eeee p";return qO(s,a,l)?i:s.getTime()>a.getTime()?"'下个'"+i:"'上个'"+i}const AR={lastWeek:sy,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:sy,other:"PP p"},RR=(s,a,l,i)=>{const c=AR[s];return typeof c=="function"?c(a,l,i):c},zR={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},PR={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},LR={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},BR={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},UR={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},HR={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},FR=(s,a)=>{const l=Number(s);switch(a?.unit){case"date":return l.toString()+"日";case"hour":return l.toString()+"时";case"minute":return l.toString()+"分";case"second":return l.toString()+"秒";default:return"第 "+l.toString()}},YR={ordinalNumber:FR,era:Hn({values:zR,defaultWidth:"wide"}),quarter:Hn({values:PR,defaultWidth:"wide",argumentCallback:s=>s-1}),month:Hn({values:LR,defaultWidth:"wide"}),day:Hn({values:BR,defaultWidth:"wide"}),dayPeriod:Hn({values:UR,defaultWidth:"wide",formattingValues:HR,defaultFormattingWidth:"wide"})},qR=/^(第\s*)?\d+(日|时|分|秒)?/i,VR=/\d+/i,GR={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},$R={any:[/^(前)/i,/^(公元)/i]},IR={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},WR={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},XR={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},KR={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},QR={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},ZR={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},JR={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},e3={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},t3={ordinalNumber:UN({matchPattern:qR,parsePattern:VR,valueCallback:s=>parseInt(s,10)}),era:Fn({matchPatterns:GR,defaultMatchWidth:"wide",parsePatterns:$R,defaultParseWidth:"any"}),quarter:Fn({matchPatterns:IR,defaultMatchWidth:"wide",parsePatterns:WR,defaultParseWidth:"any",valueCallback:s=>s+1}),month:Fn({matchPatterns:XR,defaultMatchWidth:"wide",parsePatterns:KR,defaultParseWidth:"any"}),day:Fn({matchPatterns:QR,defaultMatchWidth:"wide",parsePatterns:ZR,defaultParseWidth:"any"}),dayPeriod:Fn({matchPatterns:JR,defaultMatchWidth:"any",parsePatterns:e3,defaultParseWidth:"any"})},td={code:"zh-CN",formatDistance:TR,formatLong:OR,formatRelative:RR,localize:YR,match:t3,options:{weekStartsOn:1,firstWeekContainsDate:4}};function s3(){const[s,a]=x.useState([]),[l,i]=x.useState(""),[c,d]=x.useState("all"),[m,h]=x.useState("all"),[p,v]=x.useState(void 0),[g,j]=x.useState(void 0),[b,w]=x.useState(!0),[S,C]=x.useState(!1),N=x.useRef(null),T=x.useRef(null);x.useEffect(()=>{const $=zr.getAllLogs();a($);const oe=zr.onLog(()=>{a(zr.getAllLogs())}),je=zr.onConnectionChange(ae=>{C(ae)});return()=>{oe(),je()}},[]),x.useEffect(()=>{b&&T.current&&T.current.scrollIntoView({behavior:"smooth",block:"end"})},[s,b]);const P=x.useMemo(()=>{const $=new Set(s.map(oe=>oe.module));return Array.from($).sort()},[s]),M=$=>{switch($){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},k=$=>{switch($){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},D=()=>{window.location.reload()},A=()=>{zr.clearLogs(),a([])},E=()=>{const $=G.map(me=>`${me.timestamp} [${me.level.padEnd(8)}] [${me.module}] ${me.message}`).join(` -`),oe=new Blob([$],{type:"text/plain;charset=utf-8"}),je=URL.createObjectURL(oe),ae=document.createElement("a");ae.href=je,ae.download=`logs-${md(new Date,"yyyy-MM-dd-HHmmss")}.txt`,ae.click(),URL.revokeObjectURL(je)},B=()=>{w(!b)},Y=()=>{v(void 0),j(void 0)},G=x.useMemo(()=>s.filter($=>{const oe=l===""||$.message.toLowerCase().includes(l.toLowerCase())||$.module.toLowerCase().includes(l.toLowerCase()),je=c==="all"||$.level===c,ae=m==="all"||$.module===m;let me=!0;if(p||g){const R=new Date($.timestamp);if(p){const O=new Date(p);O.setHours(0,0,0,0),me=me&&R>=O}if(g){const O=new Date(g);O.setHours(23,59,59,999),me=me&&R<=O}}return oe&&je&&ae&&me}),[s,l,c,m,p,g]);return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),e.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("div",{className:Z("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",S?"bg-green-500 animate-pulse":"bg-red-500")}),e.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:S?"已连接":"未连接"})]})]}),e.jsx(Ue,{className:"p-3 sm:p-4",children:e.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"搜索日志...",value:l,onChange:$=>i($.target.value),className:"pl-9 h-9 text-sm"})]}),e.jsxs(rt,{value:c,onValueChange:d,children:[e.jsxs(at,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[e.jsx(Lf,{className:"h-4 w-4 mr-2"}),e.jsx(it,{placeholder:"级别"})]}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部级别"}),e.jsx(ye,{value:"DEBUG",children:"DEBUG"}),e.jsx(ye,{value:"INFO",children:"INFO"}),e.jsx(ye,{value:"WARNING",children:"WARNING"}),e.jsx(ye,{value:"ERROR",children:"ERROR"}),e.jsx(ye,{value:"CRITICAL",children:"CRITICAL"})]})]}),e.jsxs(rt,{value:m,onValueChange:h,children:[e.jsxs(at,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[e.jsx(Lf,{className:"h-4 w-4 mr-2"}),e.jsx(it,{placeholder:"模块"})]}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部模块"}),P.map($=>e.jsx(ye,{value:$,children:$},$))]})]})]}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",className:Z("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!p&&"text-muted-foreground"),children:[e.jsx(ej,{className:"mr-2 h-4 w-4"}),e.jsx("span",{className:"text-xs sm:text-sm",children:p?md(p,"PPP",{locale:td}):"开始日期"})]})}),e.jsx(pa,{className:"w-auto p-0",align:"start",children:e.jsx(ty,{mode:"single",selected:p,onSelect:v,initialFocus:!0,locale:td})})]}),e.jsxs(Ia,{children:[e.jsx(Wa,{asChild:!0,children:e.jsxs(q,{variant:"outline",size:"sm",className:Z("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!g&&"text-muted-foreground"),children:[e.jsx(ej,{className:"mr-2 h-4 w-4"}),e.jsx("span",{className:"text-xs sm:text-sm",children:g?md(g,"PPP",{locale:td}):"结束日期"})]})}),e.jsx(pa,{className:"w-auto p-0",align:"start",children:e.jsx(ty,{mode:"single",selected:g,onSelect:j,initialFocus:!0,locale:td})})]}),(p||g)&&e.jsxs(q,{variant:"outline",size:"sm",onClick:Y,className:"w-full sm:w-auto h-9",children:[e.jsx(go,{className:"h-4 w-4 sm:mr-2"}),e.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),e.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[e.jsxs("div",{className:"flex gap-2 flex-wrap",children:[e.jsxs(q,{variant:b?"default":"outline",size:"sm",onClick:B,className:"flex-1 sm:flex-none h-9",children:[b?e.jsx(F2,{className:"h-4 w-4"}):e.jsx(Y2,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2 text-sm",children:b?"自动滚动":"已暂停"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:D,className:"flex-1 sm:flex-none h-9",children:[e.jsx(xa,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:A,className:"flex-1 sm:flex-none h-9",children:[e.jsx(ft,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),e.jsxs(q,{variant:"outline",size:"sm",onClick:E,className:"flex-1 sm:flex-none h-9",children:[e.jsx(Bf,{className:"h-4 w-4"}),e.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),e.jsx("div",{className:"flex-1 hidden sm:block"}),e.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[e.jsxs("span",{className:"font-mono",children:[G.length," / ",s.length]}),e.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),e.jsx(Ue,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:e.jsx(Ct,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:e.jsxs("div",{ref:N,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[G.length===0?e.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):G.map($=>e.jsxs("div",{className:Z("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",k($.level)),children:[e.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:$.timestamp}),e.jsxs("span",{className:Z("text-xs font-semibold",M($.level)),children:["[",$.level,"]"]})]}),e.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:$.module}),e.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:$.message})]}),e.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:$.timestamp}),e.jsxs("span",{className:Z("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",M($.level)),children:["[",$.level,"]"]}),e.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:$.module}),e.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:$.message})]})]},$.id)),e.jsx("div",{ref:T,className:"h-4"})]})})})]})})}const n3="Mai-with-u",a3="plugin-repo",l3="main",r3="plugin_details.json";async function i3(){try{const s=await Fe("/api/webui/plugins/fetch-raw",{method:"POST",headers:Ie(),body:JSON.stringify({owner:n3,repo:a3,branch:l3,file_path:r3})});if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);const a=await s.json();if(!a.success||!a.data)throw new Error(a.error||"获取插件列表失败");return JSON.parse(a.data).filter(c=>!c?.id||!c?.manifest?(console.warn("跳过无效插件数据:",c),!1):!c.manifest.name||!c.manifest.version?(console.warn("跳过缺少必需字段的插件:",c.id),!1):!0).map(c=>({id:c.id,manifest:{manifest_version:c.manifest.manifest_version||1,name:c.manifest.name,version:c.manifest.version,description:c.manifest.description||"",author:c.manifest.author||{name:"Unknown"},license:c.manifest.license||"Unknown",host_application:c.manifest.host_application||{min_version:"0.0.0"},homepage_url:c.manifest.homepage_url,repository_url:c.manifest.repository_url,keywords:c.manifest.keywords||[],categories:c.manifest.categories||[],default_locale:c.manifest.default_locale||"zh-CN",locales_path:c.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(s){throw console.error("Failed to fetch plugin list:",s),s}}async function o3(){try{const s=await Fe("/api/webui/plugins/git-status");if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return await s.json()}catch(s){return console.error("Failed to check Git status:",s),{installed:!1,error:"无法检测 Git 安装状态"}}}async function c3(){try{const s=await Fe("/api/webui/plugins/version");if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);return await s.json()}catch(s){return console.error("Failed to get Maimai version:",s),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function d3(s,a,l){const i=s.split(".").map(h=>parseInt(h)||0),c=i[0]||0,d=i[1]||0,m=i[2]||0;if(l.version_majorparseInt(j)||0),p=h[0]||0,v=h[1]||0,g=h[2]||0;if(l.version_major>p||l.version_major===p&&l.version_minor>v||l.version_major===p&&l.version_minor===v&&l.version_patch>g)return!1}return!0}function u3(s,a){const l=window.location.protocol==="https:"?"wss:":"ws:",i=window.location.host,c=new WebSocket(`${l}//${i}/api/webui/ws/plugin-progress`);return c.onopen=()=>{console.log("Plugin progress WebSocket connected");const d=setInterval(()=>{c.readyState===WebSocket.OPEN?c.send("ping"):clearInterval(d)},3e4)},c.onmessage=d=>{try{if(d.data==="pong")return;const m=JSON.parse(d.data);s(m)}catch(m){console.error("Failed to parse progress data:",m)}},c.onerror=d=>{console.error("Plugin progress WebSocket error:",d),a?.(d)},c.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},c}async function sd(){try{const s=await Fe("/api/webui/plugins/installed",{headers:Ie()});if(!s.ok)throw new Error(`HTTP error! status: ${s.status}`);const a=await s.json();if(!a.success)throw new Error(a.message||"获取已安装插件列表失败");return a.plugins||[]}catch(s){return console.error("Failed to get installed plugins:",s),[]}}function nd(s,a){return a.some(l=>l.id===s)}function ad(s,a){const l=a.find(i=>i.id===s);if(l)return l.manifest?.version||l.version}async function m3(s,a,l="main"){const i=await Fe("/api/webui/plugins/install",{method:"POST",headers:Ie(),body:JSON.stringify({plugin_id:s,repository_url:a,branch:l})});if(!i.ok){const c=await i.json();throw new Error(c.detail||"安装失败")}return await i.json()}async function f3(s){const a=await Fe("/api/webui/plugins/uninstall",{method:"POST",headers:Ie(),body:JSON.stringify({plugin_id:s})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"卸载失败")}return await a.json()}async function h3(s,a,l="main"){const i=await Fe("/api/webui/plugins/update",{method:"POST",headers:Ie(),body:JSON.stringify({plugin_id:s,repository_url:a,branch:l})});if(!i.ok){const c=await i.json();throw new Error(c.detail||"更新失败")}return await i.json()}const ny={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function x3(){const s=qn(),[a,l]=x.useState(null),[i,c]=x.useState(""),[d,m]=x.useState("all"),[h,p]=x.useState("all"),[v,g]=x.useState(!1),[j,b]=x.useState([]),[w,S]=x.useState(!0),[C,N]=x.useState(null),[T,P]=x.useState(null),[M,k]=x.useState(null),[D,A]=x.useState(null),[,E]=x.useState([]),{toast:B}=Es();x.useEffect(()=>{let O=null,L=!1;return(async()=>{if(O=u3(le=>{L||(k(le),le.stage==="success"?setTimeout(()=>{L||k(null)},2e3):le.stage==="error"&&(S(!1),N(le.error||"加载失败")))},le=>{console.error("WebSocket error:",le),L||B({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(le=>{if(!O){le();return}const xe=()=>{O&&O.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),le()):O&&O.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),le()):setTimeout(xe,100)};xe()}),!L){const le=await o3();P(le),le.installed||B({title:"Git 未安装",description:le.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!L){const le=await c3();A(le)}if(!L)try{S(!0),N(null);const le=await i3();if(!L){const xe=await sd();E(xe);const F=le.map(W=>{const fe=nd(W.id,xe),I=ad(W.id,xe);return{...W,installed:fe,installed_version:I}});for(const W of xe)!F.some(I=>I.id===W.id)&&W.manifest&&F.push({id:W.id,manifest:{manifest_version:W.manifest.manifest_version||1,name:W.manifest.name,version:W.manifest.version,description:W.manifest.description||"",author:W.manifest.author,license:W.manifest.license||"Unknown",host_application:W.manifest.host_application,homepage_url:W.manifest.homepage_url,repository_url:W.manifest.repository_url,keywords:W.manifest.keywords||[],categories:W.manifest.categories||[],default_locale:W.manifest.default_locale||"zh-CN",locales_path:W.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:W.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});b(F)}}catch(le){if(!L){const xe=le instanceof Error?le.message:"加载插件列表失败";N(xe),B({title:"加载失败",description:xe,variant:"destructive"})}}finally{L||S(!1)}})(),()=>{L=!0,O&&O.close()}},[B]);const Y=O=>{if(!O.installed&&D&&!G(O))return e.jsxs(_t,{variant:"destructive",className:"gap-1",children:[e.jsx(Tl,{className:"h-3 w-3"}),"不兼容"]});if(O.installed){const L=O.installed_version?.trim(),ee=O.manifest.version?.trim();if(L!==ee){const le=L?.split(".").map(Number)||[0,0,0],xe=ee?.split(".").map(Number)||[0,0,0];for(let F=0;F<3;F++){if((xe[F]||0)>(le[F]||0))return e.jsxs(_t,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[e.jsx(Tl,{className:"h-3 w-3"}),"可更新"]});if((xe[F]||0)<(le[F]||0))break}}return e.jsxs(_t,{variant:"default",className:"gap-1",children:[e.jsx(Ys,{className:"h-3 w-3"}),"已安装"]})}return null},G=O=>!D||!O.manifest?.host_application?!0:d3(O.manifest.host_application.min_version,O.manifest.host_application.max_version,D),$=O=>{if(!O.installed||!O.installed_version||!O.manifest?.version)return!1;const L=O.installed_version.trim(),ee=O.manifest.version.trim();if(L===ee)return!1;const le=L.split(".").map(Number),xe=ee.split(".").map(Number);for(let F=0;F<3;F++){if((xe[F]||0)>(le[F]||0))return!0;if((xe[F]||0)<(le[F]||0))return!1}return!1},oe=j.filter(O=>{if(!O.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",O.id),!1;const L=i===""||O.manifest.name?.toLowerCase().includes(i.toLowerCase())||O.manifest.description?.toLowerCase().includes(i.toLowerCase())||O.manifest.keywords&&O.manifest.keywords.some(F=>F.toLowerCase().includes(i.toLowerCase())),ee=d==="all"||O.manifest.categories&&O.manifest.categories.includes(d);let le=!0;h==="installed"?le=O.installed===!0:h==="updates"&&(le=O.installed===!0&&$(O));const xe=!v||!D||G(O);return L&&ee&&le&&xe}),je=()=>{l(null)},ae=async O=>{if(!T?.installed){B({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(D&&!G(O)){B({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await m3(O.id,O.manifest.repository_url||"","main"),B({title:"安装成功",description:`${O.manifest.name} 已成功安装`});const L=await sd();E(L),b(ee=>ee.map(le=>{if(le.id===O.id){const xe=nd(le.id,L),F=ad(le.id,L);return{...le,installed:xe,installed_version:F}}return le}))}catch(L){B({title:"安装失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}},me=async O=>{try{await f3(O.id),B({title:"卸载成功",description:`${O.manifest.name} 已成功卸载`});const L=await sd();E(L),b(ee=>ee.map(le=>{if(le.id===O.id){const xe=nd(le.id,L),F=ad(le.id,L);return{...le,installed:xe,installed_version:F}}return le}))}catch(L){B({title:"卸载失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}},R=async O=>{if(!T?.installed){B({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const L=await h3(O.id,O.manifest.repository_url||"","main");B({title:"更新成功",description:`${O.manifest.name} 已从 ${L.old_version} 更新到 ${L.new_version}`});const ee=await sd();E(ee),b(le=>le.map(xe=>{if(xe.id===O.id){const F=nd(xe.id,ee),W=ad(xe.id,ee);return{...xe,installed:F,installed_version:W}}return xe}))}catch(L){B({title:"更新失败",description:L instanceof Error?L.message:"未知错误",variant:"destructive"})}};return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),e.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),e.jsxs(q,{onClick:()=>s({to:"/plugin-mirrors"}),children:[e.jsx(q2,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),T&&!T.installed&&e.jsxs(Ue,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[e.jsx(ot,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Lr,{className:"h-5 w-5 text-orange-600"}),e.jsxs("div",{children:[e.jsx(ct,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),e.jsx(us,{className:"text-orange-800 dark:text-orange-200",children:T.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),e.jsx(gt,{children:e.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",e.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),e.jsx(Ue,{className:"p-4",children:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),e.jsx(pe,{placeholder:"搜索插件...",value:i,onChange:O=>c(O.target.value),className:"pl-9"})]}),e.jsxs(rt,{value:d,onValueChange:m,children:[e.jsx(at,{className:"w-full sm:w-[200px]",children:e.jsx(it,{placeholder:"选择分类"})}),e.jsxs(lt,{children:[e.jsx(ye,{value:"all",children:"全部分类"}),e.jsx(ye,{value:"Group Management",children:"群组管理"}),e.jsx(ye,{value:"Entertainment & Interaction",children:"娱乐互动"}),e.jsx(ye,{value:"Utility Tools",children:"实用工具"}),e.jsx(ye,{value:"Content Generation",children:"内容生成"}),e.jsx(ye,{value:"Multimedia",children:"多媒体"}),e.jsx(ye,{value:"External Integration",children:"外部集成"}),e.jsx(ye,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),e.jsx(ye,{value:"Other",children:"其他"})]})]})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Cs,{id:"compatible-only",checked:v,onCheckedChange:O=>g(O===!0)}),e.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),e.jsx(Ml,{value:h,onValueChange:p,className:"w-full",children:e.jsxs($a,{className:"grid w-full grid-cols-3",children:[e.jsxs(bt,{value:"all",children:["全部插件 (",j.length,")"]}),e.jsxs(bt,{value:"installed",children:["已安装 (",j.filter(O=>O.installed).length,")"]}),e.jsxs(bt,{value:"updates",children:["可更新 (",j.filter(O=>O.installed&&$(O)).length,")"]})]})}),M&&M.stage==="loading"&&e.jsx(Ue,{className:"p-4",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ro,{className:"h-4 w-4 animate-spin"}),e.jsxs("span",{className:"text-sm font-medium",children:[M.operation==="fetch"&&"加载插件列表",M.operation==="install"&&`安装插件${M.plugin_id?`: ${M.plugin_id}`:""}`,M.operation==="uninstall"&&`卸载插件${M.plugin_id?`: ${M.plugin_id}`:""}`,M.operation==="update"&&`更新插件${M.plugin_id?`: ${M.plugin_id}`:""}`]})]}),e.jsxs("span",{className:"text-sm font-medium",children:[M.progress,"%"]})]}),e.jsx(_o,{value:M.progress,className:"h-2"}),e.jsx("div",{className:"text-xs text-muted-foreground",children:M.message}),M.operation==="fetch"&&M.total_plugins>0&&e.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",M.loaded_plugins," / ",M.total_plugins," 个插件"]})]})}),M&&M.stage==="error"&&M.error&&e.jsx(Ue,{className:"border-destructive bg-destructive/10",children:e.jsx(ot,{children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(Lr,{className:"h-5 w-5 text-destructive"}),e.jsxs("div",{children:[e.jsx(ct,{className:"text-lg text-destructive",children:"加载失败"}),e.jsx(us,{className:"text-destructive/80",children:M.error})]})]})})}),w?e.jsxs("div",{className:"flex items-center justify-center py-12",children:[e.jsx(ro,{className:"h-8 w-8 animate-spin text-muted-foreground"}),e.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):C?e.jsx(Ue,{className:"p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[e.jsx(Lr,{className:"h-12 w-12 text-destructive mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:C}),e.jsx(q,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):oe.length===0?e.jsx(Ue,{className:"p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[e.jsx(Gs,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:i||d!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:oe.map(O=>e.jsxs(Ue,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[e.jsxs(ot,{children:[e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsx(ct,{className:"text-xl",children:O.manifest?.name||O.id}),e.jsxs("div",{className:"flex flex-col gap-1",children:[O.manifest?.categories&&O.manifest.categories[0]&&e.jsx(_t,{variant:"secondary",className:"text-xs whitespace-nowrap",children:ny[O.manifest.categories[0]]||O.manifest.categories[0]}),Y(O)]})]}),e.jsx(us,{className:"line-clamp-2",children:O.manifest?.description||"无描述"})]}),e.jsx(gt,{className:"flex-1",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(Bf,{className:"h-4 w-4"}),e.jsx("span",{children:O.downloads.toLocaleString()})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(tj,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),e.jsx("span",{children:O.rating.toFixed(1)})]})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[O.manifest?.keywords&&O.manifest.keywords.slice(0,3).map(L=>e.jsx(_t,{variant:"outline",className:"text-xs",children:L},L)),O.manifest?.keywords&&O.manifest.keywords.length>3&&e.jsxs(_t,{variant:"outline",className:"text-xs",children:["+",O.manifest.keywords.length-3]})]}),e.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[e.jsxs("div",{children:["v",O.manifest?.version||"unknown"," · ",O.manifest?.author?.name||"Unknown"]}),O.manifest?.host_application&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("span",{children:"支持:"}),e.jsxs("span",{className:"font-medium",children:[O.manifest.host_application.min_version,O.manifest.host_application.max_version?` - ${O.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),e.jsx(pb,{className:"pt-4",children:e.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[e.jsx(q,{variant:"outline",size:"sm",onClick:()=>l(O),children:"查看详情"}),O.installed?$(O)?e.jsxs(q,{size:"sm",disabled:!T?.installed,title:T?.installed?void 0:"Git 未安装",onClick:()=>R(O),children:[e.jsx(xa,{className:"h-4 w-4 mr-1"}),"更新"]}):e.jsxs(q,{variant:"destructive",size:"sm",disabled:!T?.installed,title:T?.installed?void 0:"Git 未安装",onClick:()=>me(O),children:[e.jsx(ft,{className:"h-4 w-4 mr-1"}),"卸载"]}):e.jsxs(q,{size:"sm",disabled:!T?.installed||M?.operation==="install"||D!==null&&!G(O),title:T?.installed?D!==null&&!G(O)?`不兼容当前版本 (需要 ${O.manifest?.host_application?.min_version||"未知"}${O.manifest?.host_application?.max_version?` - ${O.manifest.host_application.max_version}`:"+"},当前 ${D?.version})`:void 0:"Git 未安装",onClick:()=>ae(O),children:[e.jsx(Bf,{className:"h-4 w-4 mr-1"}),M?.operation==="install"&&M?.plugin_id===O.id?"安装中...":"安装"]})]})})]},O.id))}),e.jsx(bs,{open:a!==null,onOpenChange:je,children:a&&a.manifest&&e.jsxs(ms,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[e.jsx(fs,{children:e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"space-y-2 flex-1",children:[e.jsx(hs,{className:"text-2xl",children:a.manifest.name}),e.jsxs(ks,{children:["作者: ",a.manifest.author?.name||"Unknown",a.manifest.author?.url&&e.jsx("a",{href:a.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:e.jsx(so,{className:"h-3 w-3 inline"})})]})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[a.manifest.categories&&a.manifest.categories[0]&&e.jsx(_t,{variant:"secondary",children:ny[a.manifest.categories[0]]||a.manifest.categories[0]}),Y(a)]})]})}),e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"版本"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",a.manifest?.version||"unknown"]}),a.installed&&a.installed_version&&e.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",a.installed_version]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"下载量"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a.downloads.toLocaleString()})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"评分"}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(tj,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[a.rating.toFixed(1)," (",a.review_count,")"]})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"许可证"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a.manifest.license||"Unknown"})]}),e.jsxs("div",{className:"col-span-2",children:[e.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:[a.manifest.host_application?.min_version||"未知",a.manifest.host_application?.max_version?` - ${a.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:a.manifest.keywords&&a.manifest.keywords.map(O=>e.jsx(_t,{variant:"outline",children:O},O))})]}),a.detailed_description&&e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),e.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:a.detailed_description})]}),!a.detailed_description&&e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a.manifest.description||"无描述"})]}),e.jsxs("div",{className:"space-y-2",children:[a.manifest.homepage_url&&e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:"主页: "}),e.jsx("a",{href:a.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:a.manifest.homepage_url})]}),a.manifest.repository_url&&e.jsxs("div",{className:"text-sm",children:[e.jsx("span",{className:"font-medium",children:"仓库: "}),e.jsx("a",{href:a.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:a.manifest.repository_url})]})]})]}),e.jsxs($s,{children:[a.manifest.homepage_url&&e.jsxs(q,{onClick:()=>window.open(a.manifest.homepage_url,"_blank"),children:[e.jsx(so,{className:"h-4 w-4 mr-2"}),"访问主页"]}),a.manifest.repository_url&&e.jsxs(q,{variant:"outline",onClick:()=>window.open(a.manifest.repository_url,"_blank"),children:[e.jsx(so,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function p3(){return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),e.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsxs(q,{variant:"outline",size:"sm",children:[e.jsx(xa,{className:"h-4 w-4 mr-2"}),"刷新"]}),e.jsxs(q,{size:"sm",children:[e.jsx(Tn,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"已安装插件"}),e.jsx(pd,{className:"h-4 w-4 text-muted-foreground"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:"0"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"已启用"}),e.jsx(Ys,{className:"h-4 w-4 text-green-600"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:"0"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"已禁用"}),e.jsx(Tl,{className:"h-4 w-4 text-orange-600"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:"0"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[e.jsx(ct,{className:"text-sm font-medium",children:"可更新"}),e.jsx(xa,{className:"h-4 w-4 text-blue-600"})]}),e.jsxs(gt,{children:[e.jsx("div",{className:"text-2xl font-bold",children:"0"}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),e.jsxs(Ue,{children:[e.jsxs(ot,{children:[e.jsx(ct,{children:"已安装的插件"}),e.jsx(us,{children:"查看和管理已安装插件的配置"})]}),e.jsx(gt,{children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[e.jsx(pd,{className:"h-16 w-16 text-muted-foreground/50"}),e.jsxs("div",{className:"text-center space-y-2",children:[e.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),e.jsx("div",{className:"flex gap-2",children:e.jsx(q,{variant:"outline",asChild:!0,children:e.jsxs("a",{href:"/plugins",children:[e.jsx(so,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),e.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[e.jsxs(Ue,{children:[e.jsx(ot,{children:e.jsx(ct,{className:"text-base",children:"即将推出的功能"})}),e.jsx(gt,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:e.jsx(Ys,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:e.jsx(Ys,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:e.jsx(Ys,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:e.jsx(Ys,{className:"h-4 w-4 text-primary"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),e.jsxs(Ue,{children:[e.jsx(ot,{children:e.jsx(ct,{className:"text-base",children:"开发者工具"})}),e.jsx(gt,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:e.jsx(Tn,{className:"h-4 w-4 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"热重载"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:e.jsx(Tn,{className:"h-4 w-4 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:e.jsx(Tn,{className:"h-4 w-4 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:e.jsx(Tn,{className:"h-4 w-4 text-blue-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),e.jsx(Ue,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:e.jsx(gt,{className:"pt-6",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx(Tl,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),e.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",e.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function g3(){const s=qn(),{toast:a}=Es(),[l,i]=x.useState([]),[c,d]=x.useState(!0),[m,h]=x.useState(null),[p,v]=x.useState(null),[g,j]=x.useState(!1),[b,w]=x.useState(!1),[S,C]=x.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),N=x.useCallback(async()=>{try{d(!0),h(null);const E=localStorage.getItem("access-token"),B=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${E}`}});if(!B.ok)throw new Error("获取镜像源列表失败");const Y=await B.json();i(Y.mirrors||[])}catch(E){const B=E instanceof Error?E.message:"加载镜像源失败";h(B),a({title:"加载失败",description:B,variant:"destructive"})}finally{d(!1)}},[a]);x.useEffect(()=>{N()},[N]);const T=async()=>{try{const E=localStorage.getItem("access-token"),B=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${E}`,"Content-Type":"application/json"},body:JSON.stringify(S)});if(!B.ok){const Y=await B.json();throw new Error(Y.detail||"添加镜像源失败")}a({title:"添加成功",description:"镜像源已添加"}),j(!1),C({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),N()}catch(E){a({title:"添加失败",description:E instanceof Error?E.message:"未知错误",variant:"destructive"})}},P=async()=>{if(p)try{const E=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${p.id}`,{method:"PUT",headers:{Authorization:`Bearer ${E}`,"Content-Type":"application/json"},body:JSON.stringify({name:S.name,raw_prefix:S.raw_prefix,clone_prefix:S.clone_prefix,enabled:S.enabled,priority:S.priority})})).ok)throw new Error("更新镜像源失败");a({title:"更新成功",description:"镜像源已更新"}),w(!1),v(null),N()}catch(E){a({title:"更新失败",description:E instanceof Error?E.message:"未知错误",variant:"destructive"})}},M=async E=>{if(confirm("确定要删除这个镜像源吗?"))try{const B=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${E}`,{method:"DELETE",headers:{Authorization:`Bearer ${B}`}})).ok)throw new Error("删除镜像源失败");a({title:"删除成功",description:"镜像源已删除"}),N()}catch(B){a({title:"删除失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}},k=async E=>{try{const B=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${E.id}`,{method:"PUT",headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!E.enabled})})).ok)throw new Error("更新状态失败");N()}catch(B){a({title:"更新失败",description:B instanceof Error?B.message:"未知错误",variant:"destructive"})}},D=E=>{v(E),C({id:E.id,name:E.name,raw_prefix:E.raw_prefix,clone_prefix:E.clone_prefix,enabled:E.enabled,priority:E.priority}),w(!0)},A=async(E,B)=>{const Y=B==="up"?E.priority-1:E.priority+1;if(!(Y<1))try{const G=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${E.id}`,{method:"PUT",headers:{Authorization:`Bearer ${G}`,"Content-Type":"application/json"},body:JSON.stringify({priority:Y})})).ok)throw new Error("更新优先级失败");N()}catch(G){a({title:"更新失败",description:G instanceof Error?G.message:"未知错误",variant:"destructive"})}};return e.jsx(Ct,{className:"h-full",children:e.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(q,{variant:"ghost",size:"icon",onClick:()=>s({to:"/plugins"}),children:e.jsx(My,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),e.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),e.jsxs(q,{onClick:()=>j(!0),children:[e.jsx(ys,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),c?e.jsx(Ue,{className:"p-6",children:e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(ro,{className:"h-8 w-8 animate-spin text-primary"})})}):m?e.jsx(Ue,{className:"p-6",children:e.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[e.jsx(Lr,{className:"h-12 w-12 text-destructive mb-4"}),e.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),e.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:m}),e.jsx(q,{onClick:N,children:"重新加载"})]})}):e.jsxs(Ue,{children:[e.jsx("div",{className:"hidden md:block",children:e.jsxs(Rl,{children:[e.jsx(zl,{children:e.jsxs(ns,{children:[e.jsx(He,{children:"状态"}),e.jsx(He,{children:"名称"}),e.jsx(He,{children:"ID"}),e.jsx(He,{children:"优先级"}),e.jsx(He,{className:"text-right",children:"操作"})]})}),e.jsx(Pl,{children:l.map(E=>e.jsxs(ns,{children:[e.jsx(Ae,{children:e.jsx(Ze,{checked:E.enabled,onCheckedChange:()=>k(E)})}),e.jsx(Ae,{children:e.jsxs("div",{children:[e.jsx("div",{className:"font-medium",children:E.name}),e.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",E.raw_prefix]})]})}),e.jsx(Ae,{children:e.jsx(_t,{variant:"outline",children:E.id})}),e.jsx(Ae,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-mono",children:E.priority}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(q,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>A(E,"up"),disabled:E.priority===1,children:e.jsx(Pf,{className:"h-3 w-3"})}),e.jsx(q,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>A(E,"down"),children:e.jsx(lo,{className:"h-3 w-3"})})]})]})}),e.jsx(Ae,{className:"text-right",children:e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(q,{variant:"ghost",size:"icon",onClick:()=>D(E),children:e.jsx(Yr,{className:"h-4 w-4"})}),e.jsx(q,{variant:"ghost",size:"icon",onClick:()=>M(E.id),children:e.jsx(ft,{className:"h-4 w-4 text-destructive"})})]})})]},E.id))})]})}),e.jsx("div",{className:"md:hidden p-4 space-y-4",children:l.map(E=>e.jsx(Ue,{className:"p-4",children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-start justify-between",children:[e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold",children:E.name}),E.enabled&&e.jsx(_t,{variant:"default",className:"text-xs",children:"启用"})]}),e.jsx(_t,{variant:"outline",className:"mt-1 text-xs",children:E.id})]}),e.jsx(Ze,{checked:E.enabled,onCheckedChange:()=>k(E)})]}),e.jsxs("div",{className:"text-sm space-y-1",children:[e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium",children:"Raw: "}),e.jsx("span",{className:"break-all",children:E.raw_prefix})]}),e.jsxs("div",{className:"text-muted-foreground",children:[e.jsx("span",{className:"font-medium",children:"优先级: "}),e.jsx("span",{className:"font-mono",children:E.priority})]})]}),e.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[e.jsxs(q,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>D(E),children:[e.jsx(Yr,{className:"h-4 w-4 mr-1"}),"编辑"]}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>A(E,"up"),disabled:E.priority===1,children:e.jsx(Pf,{className:"h-4 w-4"})}),e.jsx(q,{variant:"outline",size:"sm",onClick:()=>A(E,"down"),children:e.jsx(lo,{className:"h-4 w-4"})}),e.jsx(q,{variant:"destructive",size:"sm",onClick:()=>M(E.id),children:e.jsx(ft,{className:"h-4 w-4"})})]})]})},E.id))})]}),e.jsx(bs,{open:g,onOpenChange:j,children:e.jsxs(ms,{className:"max-w-lg",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"添加镜像源"}),e.jsx(ks,{children:"添加新的 Git 镜像源配置"})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-id",children:"镜像源 ID *"}),e.jsx(pe,{id:"add-id",placeholder:"例如: my-mirror",value:S.id,onChange:E=>C({...S,id:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-name",children:"名称 *"}),e.jsx(pe,{id:"add-name",placeholder:"例如: 我的镜像源",value:S.name,onChange:E=>C({...S,name:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),e.jsx(pe,{id:"add-raw",placeholder:"https://example.com/raw",value:S.raw_prefix,onChange:E=>C({...S,raw_prefix:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-clone",children:"克隆前缀 *"}),e.jsx(pe,{id:"add-clone",placeholder:"https://example.com/clone",value:S.clone_prefix,onChange:E=>C({...S,clone_prefix:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"add-priority",children:"优先级"}),e.jsx(pe,{id:"add-priority",type:"number",min:"1",value:S.priority,onChange:E=>C({...S,priority:parseInt(E.target.value)||1})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"add-enabled",checked:S.enabled,onCheckedChange:E=>C({...S,enabled:E})}),e.jsx(U,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>j(!1),children:"取消"}),e.jsx(q,{onClick:T,children:"添加"})]})]})}),e.jsx(bs,{open:b,onOpenChange:w,children:e.jsxs(ms,{className:"max-w-lg",children:[e.jsxs(fs,{children:[e.jsx(hs,{children:"编辑镜像源"}),e.jsx(ks,{children:"修改镜像源配置"})]}),e.jsxs("div",{className:"space-y-4 py-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{children:"镜像源 ID"}),e.jsx(pe,{value:S.id,disabled:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit-name",children:"名称 *"}),e.jsx(pe,{id:"edit-name",value:S.name,onChange:E=>C({...S,name:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),e.jsx(pe,{id:"edit-raw",value:S.raw_prefix,onChange:E=>C({...S,raw_prefix:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit-clone",children:"克隆前缀 *"}),e.jsx(pe,{id:"edit-clone",value:S.clone_prefix,onChange:E=>C({...S,clone_prefix:E.target.value})})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(U,{htmlFor:"edit-priority",children:"优先级"}),e.jsx(pe,{id:"edit-priority",type:"number",min:"1",value:S.priority,onChange:E=>C({...S,priority:parseInt(E.target.value)||1})}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(Ze,{id:"edit-enabled",checked:S.enabled,onCheckedChange:E=>C({...S,enabled:E})}),e.jsx(U,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),e.jsxs($s,{children:[e.jsx(q,{variant:"outline",onClick:()=>w(!1),children:"取消"}),e.jsx(q,{onClick:P,children:"保存"})]})]})})]})})}const v3=Jr("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),nw=x.forwardRef(({className:s,size:a,abbrTitle:l,children:i,...c},d)=>e.jsx("kbd",{className:Z(v3({size:a,className:s})),ref:d,...c,children:l?e.jsx("abbr",{title:l,children:i}):i}));nw.displayName="Kbd";const j3=[{icon:fd,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:ph,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:Dy,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:Oy,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:gh,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:po,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:Ay,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:V2,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:pd,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:hd,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Tn,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function y3({open:s,onOpenChange:a}){const[l,i]=x.useState(""),[c,d]=x.useState(0),m=qn(),h=j3.filter(g=>g.title.toLowerCase().includes(l.toLowerCase())||g.description.toLowerCase().includes(l.toLowerCase())||g.category.toLowerCase().includes(l.toLowerCase()));x.useEffect(()=>{s&&(i(""),d(0))},[s]);const p=x.useCallback(g=>{m({to:g}),a(!1)},[m,a]),v=x.useCallback(g=>{g.key==="ArrowDown"?(g.preventDefault(),d(j=>(j+1)%h.length)):g.key==="ArrowUp"?(g.preventDefault(),d(j=>(j-1+h.length)%h.length)):g.key==="Enter"&&h[c]&&(g.preventDefault(),p(h[c].path))},[h,c,p]);return e.jsx(bs,{open:s,onOpenChange:a,children:e.jsxs(ms,{className:"max-w-2xl p-0 gap-0",children:[e.jsxs(fs,{className:"px-4 pt-4 pb-0",children:[e.jsx(hs,{className:"sr-only",children:"搜索"}),e.jsxs("div",{className:"relative",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),e.jsx(pe,{value:l,onChange:g=>{i(g.target.value),d(0)},onKeyDown:v,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),e.jsx("div",{className:"border-t",children:e.jsx(Ct,{className:"h-[400px]",children:h.length>0?e.jsx("div",{className:"p-2",children:h.map((g,j)=>{const b=g.icon;return e.jsxs("button",{onClick:()=>p(g.path),onMouseEnter:()=>d(j),className:Z("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",j===c?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[e.jsx(b,{className:"h-5 w-5 flex-shrink-0"}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("div",{className:"font-medium text-sm",children:g.title}),e.jsx("div",{className:"text-xs text-muted-foreground truncate",children:g.description})]}),e.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:g.category})]},g.path)})}):e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(Gs,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:l?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),e.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),e.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function b3(s){const a=N3(s),l=x.forwardRef((i,c)=>{const{children:d,...m}=i,h=x.Children.toArray(d),p=h.find(S3);if(p){const v=p.props.children,g=h.map(j=>j===p?x.Children.count(v)>1?x.Children.only(null):x.isValidElement(v)?v.props.children:null:j);return e.jsx(a,{...m,ref:c,children:x.isValidElement(v)?x.cloneElement(v,void 0,g):null})}return e.jsx(a,{...m,ref:c,children:d})});return l.displayName=`${s}.Slot`,l}function N3(s){const a=x.forwardRef((l,i)=>{const{children:c,...d}=l;if(x.isValidElement(c)){const m=C3(c),h=_3(d,c.props);return c.type!==x.Fragment&&(h.ref=i?Ga(i,m):m),x.cloneElement(c,h)}return x.Children.count(c)>1?x.Children.only(null):null});return a.displayName=`${s}.SlotClone`,a}var w3=Symbol("radix.slottable");function S3(s){return x.isValidElement(s)&&typeof s.type=="function"&&"__radixId"in s.type&&s.type.__radixId===w3}function _3(s,a){const l={...a};for(const i in a){const c=s[i],d=a[i];/^on[A-Z]/.test(i)?c&&d?l[i]=(...h)=>{const p=d(...h);return c(...h),p}:c&&(l[i]=c):i==="style"?l[i]={...c,...d}:i==="className"&&(l[i]=[c,d].filter(Boolean).join(" "))}return{...s,...l}}function C3(s){let a=Object.getOwnPropertyDescriptor(s.props,"ref")?.get,l=a&&"isReactWarning"in a&&a.isReactWarning;return l?s.ref:(a=Object.getOwnPropertyDescriptor(s,"ref")?.get,l=a&&"isReactWarning"in a&&a.isReactWarning,l?s.props.ref:s.props.ref||s.ref)}var eh=["Enter"," "],k3=["ArrowDown","PageUp","Home"],aw=["ArrowUp","PageDown","End"],T3=[...k3,...aw],E3={ltr:[...eh,"ArrowRight"],rtl:[...eh,"ArrowLeft"]},M3={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Do="Menu",[mo,D3,O3]=_d(Do),[Ul,lw]=Dn(Do,[O3,Wr,Pd]),Oo=Wr(),rw=Pd(),[iw,el]=Ul(Do),[A3,Ao]=Ul(Do),ow=s=>{const{__scopeMenu:a,open:l=!1,children:i,dir:c,onOpenChange:d,modal:m=!0}=s,h=Oo(a),[p,v]=x.useState(null),g=x.useRef(!1),j=ws(d),b=xo(c);return x.useEffect(()=>{const w=()=>{g.current=!0,document.addEventListener("pointerdown",S,{capture:!0,once:!0}),document.addEventListener("pointermove",S,{capture:!0,once:!0})},S=()=>g.current=!1;return document.addEventListener("keydown",w,{capture:!0}),()=>{document.removeEventListener("keydown",w,{capture:!0}),document.removeEventListener("pointerdown",S,{capture:!0}),document.removeEventListener("pointermove",S,{capture:!0})}},[]),e.jsx(Ed,{...h,children:e.jsx(iw,{scope:a,open:l,onOpenChange:j,content:p,onContentChange:v,children:e.jsx(A3,{scope:a,onClose:x.useCallback(()=>j(!1),[j]),isUsingKeyboardRef:g,dir:b,modal:m,children:i})})})};ow.displayName=Do;var R3="MenuAnchor",qh=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s,c=Oo(l);return e.jsx(Md,{...c,...i,ref:a})});qh.displayName=R3;var Vh="MenuPortal",[z3,cw]=Ul(Vh,{forceMount:void 0}),dw=s=>{const{__scopeMenu:a,forceMount:l,children:i,container:c}=s,d=el(Vh,a);return e.jsx(z3,{scope:a,forceMount:l,children:e.jsx(Is,{present:l||d.open,children:e.jsx(Td,{asChild:!0,container:c,children:i})})})};dw.displayName=Vh;var yn="MenuContent",[P3,Gh]=Ul(yn),uw=x.forwardRef((s,a)=>{const l=cw(yn,s.__scopeMenu),{forceMount:i=l.forceMount,...c}=s,d=el(yn,s.__scopeMenu),m=Ao(yn,s.__scopeMenu);return e.jsx(mo.Provider,{scope:s.__scopeMenu,children:e.jsx(Is,{present:i||d.open,children:e.jsx(mo.Slot,{scope:s.__scopeMenu,children:m.modal?e.jsx(L3,{...c,ref:a}):e.jsx(B3,{...c,ref:a})})})})}),L3=x.forwardRef((s,a)=>{const l=el(yn,s.__scopeMenu),i=x.useRef(null),c=Tt(a,i);return x.useEffect(()=>{const d=i.current;if(d)return by(d)},[]),e.jsx($h,{...s,ref:c,trapFocus:l.open,disableOutsidePointerEvents:l.open,disableOutsideScroll:!0,onFocusOutside:be(s.onFocusOutside,d=>d.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>l.onOpenChange(!1)})}),B3=x.forwardRef((s,a)=>{const l=el(yn,s.__scopeMenu);return e.jsx($h,{...s,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>l.onOpenChange(!1)})}),U3=b3("MenuContent.ScrollLock"),$h=x.forwardRef((s,a)=>{const{__scopeMenu:l,loop:i=!1,trapFocus:c,onOpenAutoFocus:d,onCloseAutoFocus:m,disableOutsidePointerEvents:h,onEntryFocus:p,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:j,onInteractOutside:b,onDismiss:w,disableOutsideScroll:S,...C}=s,N=el(yn,l),T=Ao(yn,l),P=Oo(l),M=rw(l),k=D3(l),[D,A]=x.useState(null),E=x.useRef(null),B=Tt(a,E,N.onContentChange),Y=x.useRef(0),G=x.useRef(""),$=x.useRef(0),oe=x.useRef(null),je=x.useRef("right"),ae=x.useRef(0),me=S?Ny:x.Fragment,R=S?{as:U3,allowPinchZoom:!0}:void 0,O=ee=>{const le=G.current+ee,xe=k().filter(de=>!de.disabled),F=document.activeElement,W=xe.find(de=>de.ref.current===F)?.textValue,fe=xe.map(de=>de.textValue),I=Q3(fe,le,W),ve=xe.find(de=>de.textValue===I)?.ref.current;(function de(Ce){G.current=Ce,window.clearTimeout(Y.current),Ce!==""&&(Y.current=window.setTimeout(()=>de(""),1e3))})(le),ve&&setTimeout(()=>ve.focus())};x.useEffect(()=>()=>window.clearTimeout(Y.current),[]),wy();const L=x.useCallback(ee=>je.current===oe.current?.side&&J3(ee,oe.current?.area),[]);return e.jsx(P3,{scope:l,searchRef:G,onItemEnter:x.useCallback(ee=>{L(ee)&&ee.preventDefault()},[L]),onItemLeave:x.useCallback(ee=>{L(ee)||(E.current?.focus(),A(null))},[L]),onTriggerLeave:x.useCallback(ee=>{L(ee)&&ee.preventDefault()},[L]),pointerGraceTimerRef:$,onPointerGraceIntentChange:x.useCallback(ee=>{oe.current=ee},[]),children:e.jsx(me,{...R,children:e.jsx(Sy,{asChild:!0,trapped:c,onMountAutoFocus:be(d,ee=>{ee.preventDefault(),E.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:m,children:e.jsx(fh,{asChild:!0,disableOutsidePointerEvents:h,onEscapeKeyDown:v,onPointerDownOutside:g,onFocusOutside:j,onInteractOutside:b,onDismiss:w,children:e.jsx(Nb,{asChild:!0,...M,dir:T.dir,orientation:"vertical",loop:i,currentTabStopId:D,onCurrentTabStopIdChange:A,onEntryFocus:be(p,ee=>{T.isUsingKeyboardRef.current||ee.preventDefault()}),preventScrollOnEntryFocus:!0,children:e.jsx(hh,{role:"menu","aria-orientation":"vertical","data-state":Tw(N.open),"data-radix-menu-content":"",dir:T.dir,...P,...C,ref:B,style:{outline:"none",...C.style},onKeyDown:be(C.onKeyDown,ee=>{const xe=ee.target.closest("[data-radix-menu-content]")===ee.currentTarget,F=ee.ctrlKey||ee.altKey||ee.metaKey,W=ee.key.length===1;xe&&(ee.key==="Tab"&&ee.preventDefault(),!F&&W&&O(ee.key));const fe=E.current;if(ee.target!==fe||!T3.includes(ee.key))return;ee.preventDefault();const ve=k().filter(de=>!de.disabled).map(de=>de.ref.current);aw.includes(ee.key)&&ve.reverse(),X3(ve)}),onBlur:be(s.onBlur,ee=>{ee.currentTarget.contains(ee.target)||(window.clearTimeout(Y.current),G.current="")}),onPointerMove:be(s.onPointerMove,fo(ee=>{const le=ee.target,xe=ae.current!==ee.clientX;if(ee.currentTarget.contains(le)&&xe){const F=ee.clientX>ae.current?"right":"left";je.current=F,ae.current=ee.clientX}}))})})})})})})});uw.displayName=yn;var H3="MenuGroup",Ih=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s;return e.jsx(dt.div,{role:"group",...i,ref:a})});Ih.displayName=H3;var F3="MenuLabel",mw=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s;return e.jsx(dt.div,{...i,ref:a})});mw.displayName=F3;var wd="MenuItem",ay="menu.itemSelect",Wd=x.forwardRef((s,a)=>{const{disabled:l=!1,onSelect:i,...c}=s,d=x.useRef(null),m=Ao(wd,s.__scopeMenu),h=Gh(wd,s.__scopeMenu),p=Tt(a,d),v=x.useRef(!1),g=()=>{const j=d.current;if(!l&&j){const b=new CustomEvent(ay,{bubbles:!0,cancelable:!0});j.addEventListener(ay,w=>i?.(w),{once:!0}),Cy(j,b),b.defaultPrevented?v.current=!1:m.onClose()}};return e.jsx(fw,{...c,ref:p,disabled:l,onClick:be(s.onClick,g),onPointerDown:j=>{s.onPointerDown?.(j),v.current=!0},onPointerUp:be(s.onPointerUp,j=>{v.current||j.currentTarget?.click()}),onKeyDown:be(s.onKeyDown,j=>{const b=h.searchRef.current!=="";l||b&&j.key===" "||eh.includes(j.key)&&(j.currentTarget.click(),j.preventDefault())})})});Wd.displayName=wd;var fw=x.forwardRef((s,a)=>{const{__scopeMenu:l,disabled:i=!1,textValue:c,...d}=s,m=Gh(wd,l),h=rw(l),p=x.useRef(null),v=Tt(a,p),[g,j]=x.useState(!1),[b,w]=x.useState("");return x.useEffect(()=>{const S=p.current;S&&w((S.textContent??"").trim())},[d.children]),e.jsx(mo.ItemSlot,{scope:l,disabled:i,textValue:c??b,children:e.jsx(wb,{asChild:!0,...h,focusable:!i,children:e.jsx(dt.div,{role:"menuitem","data-highlighted":g?"":void 0,"aria-disabled":i||void 0,"data-disabled":i?"":void 0,...d,ref:v,onPointerMove:be(s.onPointerMove,fo(S=>{i?m.onItemLeave(S):(m.onItemEnter(S),S.defaultPrevented||S.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:be(s.onPointerLeave,fo(S=>m.onItemLeave(S))),onFocus:be(s.onFocus,()=>j(!0)),onBlur:be(s.onBlur,()=>j(!1))})})})}),Y3="MenuCheckboxItem",hw=x.forwardRef((s,a)=>{const{checked:l=!1,onCheckedChange:i,...c}=s;return e.jsx(jw,{scope:s.__scopeMenu,checked:l,children:e.jsx(Wd,{role:"menuitemcheckbox","aria-checked":Sd(l)?"mixed":l,...c,ref:a,"data-state":Kh(l),onSelect:be(c.onSelect,()=>i?.(Sd(l)?!0:!l),{checkForDefaultPrevented:!1})})})});hw.displayName=Y3;var xw="MenuRadioGroup",[q3,V3]=Ul(xw,{value:void 0,onValueChange:()=>{}}),pw=x.forwardRef((s,a)=>{const{value:l,onValueChange:i,...c}=s,d=ws(i);return e.jsx(q3,{scope:s.__scopeMenu,value:l,onValueChange:d,children:e.jsx(Ih,{...c,ref:a})})});pw.displayName=xw;var gw="MenuRadioItem",vw=x.forwardRef((s,a)=>{const{value:l,...i}=s,c=V3(gw,s.__scopeMenu),d=l===c.value;return e.jsx(jw,{scope:s.__scopeMenu,checked:d,children:e.jsx(Wd,{role:"menuitemradio","aria-checked":d,...i,ref:a,"data-state":Kh(d),onSelect:be(i.onSelect,()=>c.onValueChange?.(l),{checkForDefaultPrevented:!1})})})});vw.displayName=gw;var Wh="MenuItemIndicator",[jw,G3]=Ul(Wh,{checked:!1}),yw=x.forwardRef((s,a)=>{const{__scopeMenu:l,forceMount:i,...c}=s,d=G3(Wh,l);return e.jsx(Is,{present:i||Sd(d.checked)||d.checked===!0,children:e.jsx(dt.span,{...c,ref:a,"data-state":Kh(d.checked)})})});yw.displayName=Wh;var $3="MenuSeparator",bw=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s;return e.jsx(dt.div,{role:"separator","aria-orientation":"horizontal",...i,ref:a})});bw.displayName=$3;var I3="MenuArrow",Nw=x.forwardRef((s,a)=>{const{__scopeMenu:l,...i}=s,c=Oo(l);return e.jsx(xh,{...c,...i,ref:a})});Nw.displayName=I3;var Xh="MenuSub",[W3,ww]=Ul(Xh),Sw=s=>{const{__scopeMenu:a,children:l,open:i=!1,onOpenChange:c}=s,d=el(Xh,a),m=Oo(a),[h,p]=x.useState(null),[v,g]=x.useState(null),j=ws(c);return x.useEffect(()=>(d.open===!1&&j(!1),()=>j(!1)),[d.open,j]),e.jsx(Ed,{...m,children:e.jsx(iw,{scope:a,open:i,onOpenChange:j,content:v,onContentChange:g,children:e.jsx(W3,{scope:a,contentId:jn(),triggerId:jn(),trigger:h,onTriggerChange:p,children:l})})})};Sw.displayName=Xh;var eo="MenuSubTrigger",_w=x.forwardRef((s,a)=>{const l=el(eo,s.__scopeMenu),i=Ao(eo,s.__scopeMenu),c=ww(eo,s.__scopeMenu),d=Gh(eo,s.__scopeMenu),m=x.useRef(null),{pointerGraceTimerRef:h,onPointerGraceIntentChange:p}=d,v={__scopeMenu:s.__scopeMenu},g=x.useCallback(()=>{m.current&&window.clearTimeout(m.current),m.current=null},[]);return x.useEffect(()=>g,[g]),x.useEffect(()=>{const j=h.current;return()=>{window.clearTimeout(j),p(null)}},[h,p]),e.jsx(qh,{asChild:!0,...v,children:e.jsx(fw,{id:c.triggerId,"aria-haspopup":"menu","aria-expanded":l.open,"aria-controls":c.contentId,"data-state":Tw(l.open),...s,ref:Ga(a,c.onTriggerChange),onClick:j=>{s.onClick?.(j),!(s.disabled||j.defaultPrevented)&&(j.currentTarget.focus(),l.open||l.onOpenChange(!0))},onPointerMove:be(s.onPointerMove,fo(j=>{d.onItemEnter(j),!j.defaultPrevented&&!s.disabled&&!l.open&&!m.current&&(d.onPointerGraceIntentChange(null),m.current=window.setTimeout(()=>{l.onOpenChange(!0),g()},100))})),onPointerLeave:be(s.onPointerLeave,fo(j=>{g();const b=l.content?.getBoundingClientRect();if(b){const w=l.content?.dataset.side,S=w==="right",C=S?-5:5,N=b[S?"left":"right"],T=b[S?"right":"left"];d.onPointerGraceIntentChange({area:[{x:j.clientX+C,y:j.clientY},{x:N,y:b.top},{x:T,y:b.top},{x:T,y:b.bottom},{x:N,y:b.bottom}],side:w}),window.clearTimeout(h.current),h.current=window.setTimeout(()=>d.onPointerGraceIntentChange(null),300)}else{if(d.onTriggerLeave(j),j.defaultPrevented)return;d.onPointerGraceIntentChange(null)}})),onKeyDown:be(s.onKeyDown,j=>{const b=d.searchRef.current!=="";s.disabled||b&&j.key===" "||E3[i.dir].includes(j.key)&&(l.onOpenChange(!0),l.content?.focus(),j.preventDefault())})})})});_w.displayName=eo;var Cw="MenuSubContent",kw=x.forwardRef((s,a)=>{const l=cw(yn,s.__scopeMenu),{forceMount:i=l.forceMount,...c}=s,d=el(yn,s.__scopeMenu),m=Ao(yn,s.__scopeMenu),h=ww(Cw,s.__scopeMenu),p=x.useRef(null),v=Tt(a,p);return e.jsx(mo.Provider,{scope:s.__scopeMenu,children:e.jsx(Is,{present:i||d.open,children:e.jsx(mo.Slot,{scope:s.__scopeMenu,children:e.jsx($h,{id:h.contentId,"aria-labelledby":h.triggerId,...c,ref:v,align:"start",side:m.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:g=>{m.isUsingKeyboardRef.current&&p.current?.focus(),g.preventDefault()},onCloseAutoFocus:g=>g.preventDefault(),onFocusOutside:be(s.onFocusOutside,g=>{g.target!==h.trigger&&d.onOpenChange(!1)}),onEscapeKeyDown:be(s.onEscapeKeyDown,g=>{m.onClose(),g.preventDefault()}),onKeyDown:be(s.onKeyDown,g=>{const j=g.currentTarget.contains(g.target),b=M3[m.dir].includes(g.key);j&&b&&(d.onOpenChange(!1),h.trigger?.focus(),g.preventDefault())})})})})})});kw.displayName=Cw;function Tw(s){return s?"open":"closed"}function Sd(s){return s==="indeterminate"}function Kh(s){return Sd(s)?"indeterminate":s?"checked":"unchecked"}function X3(s){const a=document.activeElement;for(const l of s)if(l===a||(l.focus(),document.activeElement!==a))return}function K3(s,a){return s.map((l,i)=>s[(a+i)%s.length])}function Q3(s,a,l){const c=a.length>1&&Array.from(a).every(v=>v===a[0])?a[0]:a,d=l?s.indexOf(l):-1;let m=K3(s,Math.max(d,0));c.length===1&&(m=m.filter(v=>v!==l));const p=m.find(v=>v.toLowerCase().startsWith(c.toLowerCase()));return p!==l?p:void 0}function Z3(s,a){const{x:l,y:i}=s;let c=!1;for(let d=0,m=a.length-1;di!=b>i&&l<(j-v)*(i-g)/(b-g)+v&&(c=!c)}return c}function J3(s,a){if(!a)return!1;const l={x:s.clientX,y:s.clientY};return Z3(l,a)}function fo(s){return a=>a.pointerType==="mouse"?s(a):void 0}var e5=ow,t5=qh,s5=dw,n5=uw,a5=Ih,l5=mw,r5=Wd,i5=hw,o5=pw,c5=vw,d5=yw,u5=bw,m5=Nw,f5=Sw,h5=_w,x5=kw,Qh="ContextMenu",[p5]=Dn(Qh,[lw]),Ms=lw(),[g5,Ew]=p5(Qh),Mw=s=>{const{__scopeContextMenu:a,children:l,onOpenChange:i,dir:c,modal:d=!0}=s,[m,h]=x.useState(!1),p=Ms(a),v=ws(i),g=x.useCallback(j=>{h(j),v(j)},[v]);return e.jsx(g5,{scope:a,open:m,onOpenChange:g,modal:d,children:e.jsx(e5,{...p,dir:c,open:m,onOpenChange:g,modal:d,children:l})})};Mw.displayName=Qh;var Dw="ContextMenuTrigger",Ow=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,disabled:i=!1,...c}=s,d=Ew(Dw,l),m=Ms(l),h=x.useRef({x:0,y:0}),p=x.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...h.current})}),v=x.useRef(0),g=x.useCallback(()=>window.clearTimeout(v.current),[]),j=b=>{h.current={x:b.clientX,y:b.clientY},d.onOpenChange(!0)};return x.useEffect(()=>g,[g]),x.useEffect(()=>void(i&&g()),[i,g]),e.jsxs(e.Fragment,{children:[e.jsx(t5,{...m,virtualRef:p}),e.jsx(dt.span,{"data-state":d.open?"open":"closed","data-disabled":i?"":void 0,...c,ref:a,style:{WebkitTouchCallout:"none",...s.style},onContextMenu:i?s.onContextMenu:be(s.onContextMenu,b=>{g(),j(b),b.preventDefault()}),onPointerDown:i?s.onPointerDown:be(s.onPointerDown,ld(b=>{g(),v.current=window.setTimeout(()=>j(b),700)})),onPointerMove:i?s.onPointerMove:be(s.onPointerMove,ld(g)),onPointerCancel:i?s.onPointerCancel:be(s.onPointerCancel,ld(g)),onPointerUp:i?s.onPointerUp:be(s.onPointerUp,ld(g))})]})});Ow.displayName=Dw;var v5="ContextMenuPortal",Aw=s=>{const{__scopeContextMenu:a,...l}=s,i=Ms(a);return e.jsx(s5,{...i,...l})};Aw.displayName=v5;var Rw="ContextMenuContent",zw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ew(Rw,l),d=Ms(l),m=x.useRef(!1);return e.jsx(n5,{...d,...i,ref:a,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:h=>{s.onCloseAutoFocus?.(h),!h.defaultPrevented&&m.current&&h.preventDefault(),m.current=!1},onInteractOutside:h=>{s.onInteractOutside?.(h),!h.defaultPrevented&&!c.modal&&(m.current=!0)},style:{...s.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});zw.displayName=Rw;var j5="ContextMenuGroup",y5=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(a5,{...c,...i,ref:a})});y5.displayName=j5;var b5="ContextMenuLabel",Pw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(l5,{...c,...i,ref:a})});Pw.displayName=b5;var N5="ContextMenuItem",Lw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(r5,{...c,...i,ref:a})});Lw.displayName=N5;var w5="ContextMenuCheckboxItem",Bw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(i5,{...c,...i,ref:a})});Bw.displayName=w5;var S5="ContextMenuRadioGroup",_5=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(o5,{...c,...i,ref:a})});_5.displayName=S5;var C5="ContextMenuRadioItem",Uw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(c5,{...c,...i,ref:a})});Uw.displayName=C5;var k5="ContextMenuItemIndicator",Hw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(d5,{...c,...i,ref:a})});Hw.displayName=k5;var T5="ContextMenuSeparator",Fw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(u5,{...c,...i,ref:a})});Fw.displayName=T5;var E5="ContextMenuArrow",M5=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(m5,{...c,...i,ref:a})});M5.displayName=E5;var Yw="ContextMenuSub",qw=s=>{const{__scopeContextMenu:a,children:l,onOpenChange:i,open:c,defaultOpen:d}=s,m=Ms(a),[h,p]=Qa({prop:c,defaultProp:d??!1,onChange:i,caller:Yw});return e.jsx(f5,{...m,open:h,onOpenChange:p,children:l})};qw.displayName=Yw;var D5="ContextMenuSubTrigger",Vw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(h5,{...c,...i,ref:a})});Vw.displayName=D5;var O5="ContextMenuSubContent",Gw=x.forwardRef((s,a)=>{const{__scopeContextMenu:l,...i}=s,c=Ms(l);return e.jsx(x5,{...c,...i,ref:a,style:{...s.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Gw.displayName=O5;function ld(s){return a=>a.pointerType!=="mouse"?s(a):void 0}var A5=Mw,R5=Ow,z5=Aw,$w=zw,Iw=Pw,Ww=Lw,Xw=Bw,Kw=Uw,Qw=Hw,Zw=Fw,P5=qw,Jw=Vw,e1=Gw;const L5=A5,B5=R5,U5=P5,t1=x.forwardRef(({className:s,inset:a,children:l,...i},c)=>e.jsxs(Jw,{ref:c,className:Z("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",a&&"pl-8",s),...i,children:[l,e.jsx(Al,{className:"ml-auto h-4 w-4"})]}));t1.displayName=Jw.displayName;const s1=x.forwardRef(({className:s,...a},l)=>e.jsx(e1,{ref:l,className:Z("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",s),...a}));s1.displayName=e1.displayName;const n1=x.forwardRef(({className:s,...a},l)=>e.jsx(z5,{children:e.jsx($w,{ref:l,className:Z("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",s),...a})}));n1.displayName=$w.displayName;const kn=x.forwardRef(({className:s,inset:a,...l},i)=>e.jsx(Ww,{ref:i,className:Z("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a&&"pl-8",s),...l}));kn.displayName=Ww.displayName;const H5=x.forwardRef(({className:s,children:a,checked:l,...i},c)=>e.jsxs(Xw,{ref:c,className:Z("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),checked:l,...i,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Qw,{children:e.jsx(Cl,{className:"h-4 w-4"})})}),a]}));H5.displayName=Xw.displayName;const F5=x.forwardRef(({className:s,children:a,...l},i)=>e.jsxs(Kw,{ref:i,className:Z("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",s),...l,children:[e.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:e.jsx(Qw,{children:e.jsx(G2,{className:"h-2 w-2 fill-current"})})}),a]}));F5.displayName=Kw.displayName;const Y5=x.forwardRef(({className:s,inset:a,...l},i)=>e.jsx(Iw,{ref:i,className:Z("px-2 py-1.5 text-sm font-semibold text-foreground",a&&"pl-8",s),...l}));Y5.displayName=Iw.displayName;const to=x.forwardRef(({className:s,...a},l)=>e.jsx(Zw,{ref:l,className:Z("-mx-1 my-1 h-px bg-border",s),...a}));to.displayName=Zw.displayName;const Pr=({className:s,...a})=>e.jsx("span",{className:Z("ml-auto text-xs tracking-widest text-muted-foreground",s),...a});Pr.displayName="ContextMenuShortcut";var q5=Symbol("radix.slottable");function V5(s){const a=({children:l})=>e.jsx(e.Fragment,{children:l});return a.displayName=`${s}.Slottable`,a.__radixId=q5,a}var[Xd]=Dn("Tooltip",[Wr]),Kd=Wr(),a1="TooltipProvider",G5=700,th="tooltip.open",[$5,Zh]=Xd(a1),l1=s=>{const{__scopeTooltip:a,delayDuration:l=G5,skipDelayDuration:i=300,disableHoverableContent:c=!1,children:d}=s,m=x.useRef(!0),h=x.useRef(!1),p=x.useRef(0);return x.useEffect(()=>{const v=p.current;return()=>window.clearTimeout(v)},[]),e.jsx($5,{scope:a,isOpenDelayedRef:m,delayDuration:l,onOpen:x.useCallback(()=>{window.clearTimeout(p.current),m.current=!1},[]),onClose:x.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>m.current=!0,i)},[i]),isPointerInTransitRef:h,onPointerInTransitChange:x.useCallback(v=>{h.current=v},[]),disableHoverableContent:c,children:d})};l1.displayName=a1;var ho="Tooltip",[I5,Ro]=Xd(ho),r1=s=>{const{__scopeTooltip:a,children:l,open:i,defaultOpen:c,onOpenChange:d,disableHoverableContent:m,delayDuration:h}=s,p=Zh(ho,s.__scopeTooltip),v=Kd(a),[g,j]=x.useState(null),b=jn(),w=x.useRef(0),S=m??p.disableHoverableContent,C=h??p.delayDuration,N=x.useRef(!1),[T,P]=Qa({prop:i,defaultProp:c??!1,onChange:E=>{E?(p.onOpen(),document.dispatchEvent(new CustomEvent(th))):p.onClose(),d?.(E)},caller:ho}),M=x.useMemo(()=>T?N.current?"delayed-open":"instant-open":"closed",[T]),k=x.useCallback(()=>{window.clearTimeout(w.current),w.current=0,N.current=!1,P(!0)},[P]),D=x.useCallback(()=>{window.clearTimeout(w.current),w.current=0,P(!1)},[P]),A=x.useCallback(()=>{window.clearTimeout(w.current),w.current=window.setTimeout(()=>{N.current=!0,P(!0),w.current=0},C)},[C,P]);return x.useEffect(()=>()=>{w.current&&(window.clearTimeout(w.current),w.current=0)},[]),e.jsx(Ed,{...v,children:e.jsx(I5,{scope:a,contentId:b,open:T,stateAttribute:M,trigger:g,onTriggerChange:j,onTriggerEnter:x.useCallback(()=>{p.isOpenDelayedRef.current?A():k()},[p.isOpenDelayedRef,A,k]),onTriggerLeave:x.useCallback(()=>{S?D():(window.clearTimeout(w.current),w.current=0)},[D,S]),onOpen:k,onClose:D,disableHoverableContent:S,children:l})})};r1.displayName=ho;var sh="TooltipTrigger",i1=x.forwardRef((s,a)=>{const{__scopeTooltip:l,...i}=s,c=Ro(sh,l),d=Zh(sh,l),m=Kd(l),h=x.useRef(null),p=Tt(a,h,c.onTriggerChange),v=x.useRef(!1),g=x.useRef(!1),j=x.useCallback(()=>v.current=!1,[]);return x.useEffect(()=>()=>document.removeEventListener("pointerup",j),[j]),e.jsx(Md,{asChild:!0,...m,children:e.jsx(dt.button,{"aria-describedby":c.open?c.contentId:void 0,"data-state":c.stateAttribute,...i,ref:p,onPointerMove:be(s.onPointerMove,b=>{b.pointerType!=="touch"&&!g.current&&!d.isPointerInTransitRef.current&&(c.onTriggerEnter(),g.current=!0)}),onPointerLeave:be(s.onPointerLeave,()=>{c.onTriggerLeave(),g.current=!1}),onPointerDown:be(s.onPointerDown,()=>{c.open&&c.onClose(),v.current=!0,document.addEventListener("pointerup",j,{once:!0})}),onFocus:be(s.onFocus,()=>{v.current||c.onOpen()}),onBlur:be(s.onBlur,c.onClose),onClick:be(s.onClick,c.onClose)})})});i1.displayName=sh;var Jh="TooltipPortal",[W5,X5]=Xd(Jh,{forceMount:void 0}),o1=s=>{const{__scopeTooltip:a,forceMount:l,children:i,container:c}=s,d=Ro(Jh,a);return e.jsx(W5,{scope:a,forceMount:l,children:e.jsx(Is,{present:l||d.open,children:e.jsx(Td,{asChild:!0,container:c,children:i})})})};o1.displayName=Jh;var Ir="TooltipContent",c1=x.forwardRef((s,a)=>{const l=X5(Ir,s.__scopeTooltip),{forceMount:i=l.forceMount,side:c="top",...d}=s,m=Ro(Ir,s.__scopeTooltip);return e.jsx(Is,{present:i||m.open,children:m.disableHoverableContent?e.jsx(d1,{side:c,...d,ref:a}):e.jsx(K5,{side:c,...d,ref:a})})}),K5=x.forwardRef((s,a)=>{const l=Ro(Ir,s.__scopeTooltip),i=Zh(Ir,s.__scopeTooltip),c=x.useRef(null),d=Tt(a,c),[m,h]=x.useState(null),{trigger:p,onClose:v}=l,g=c.current,{onPointerInTransitChange:j}=i,b=x.useCallback(()=>{h(null),j(!1)},[j]),w=x.useCallback((S,C)=>{const N=S.currentTarget,T={x:S.clientX,y:S.clientY},P=tz(T,N.getBoundingClientRect()),M=sz(T,P),k=nz(C.getBoundingClientRect()),D=lz([...M,...k]);h(D),j(!0)},[j]);return x.useEffect(()=>()=>b(),[b]),x.useEffect(()=>{if(p&&g){const S=N=>w(N,g),C=N=>w(N,p);return p.addEventListener("pointerleave",S),g.addEventListener("pointerleave",C),()=>{p.removeEventListener("pointerleave",S),g.removeEventListener("pointerleave",C)}}},[p,g,w,b]),x.useEffect(()=>{if(m){const S=C=>{const N=C.target,T={x:C.clientX,y:C.clientY},P=p?.contains(N)||g?.contains(N),M=!az(T,m);P?b():M&&(b(),v())};return document.addEventListener("pointermove",S),()=>document.removeEventListener("pointermove",S)}},[p,g,m,v,b]),e.jsx(d1,{...s,ref:d})}),[Q5,Z5]=Xd(ho,{isInside:!1}),J5=V5("TooltipContent"),d1=x.forwardRef((s,a)=>{const{__scopeTooltip:l,children:i,"aria-label":c,onEscapeKeyDown:d,onPointerDownOutside:m,...h}=s,p=Ro(Ir,l),v=Kd(l),{onClose:g}=p;return x.useEffect(()=>(document.addEventListener(th,g),()=>document.removeEventListener(th,g)),[g]),x.useEffect(()=>{if(p.trigger){const j=b=>{b.target?.contains(p.trigger)&&g()};return window.addEventListener("scroll",j,{capture:!0}),()=>window.removeEventListener("scroll",j,{capture:!0})}},[p.trigger,g]),e.jsx(fh,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:d,onPointerDownOutside:m,onFocusOutside:j=>j.preventDefault(),onDismiss:g,children:e.jsxs(hh,{"data-state":p.stateAttribute,...v,...h,ref:a,style:{...h.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[e.jsx(J5,{children:i}),e.jsx(Q5,{scope:l,isInside:!0,children:e.jsx(w2,{id:p.contentId,role:"tooltip",children:c||i})})]})})});c1.displayName=Ir;var u1="TooltipArrow",ez=x.forwardRef((s,a)=>{const{__scopeTooltip:l,...i}=s,c=Kd(l);return Z5(u1,l).isInside?null:e.jsx(xh,{...c,...i,ref:a})});ez.displayName=u1;function tz(s,a){const l=Math.abs(a.top-s.y),i=Math.abs(a.bottom-s.y),c=Math.abs(a.right-s.x),d=Math.abs(a.left-s.x);switch(Math.min(l,i,c,d)){case d:return"left";case c:return"right";case l:return"top";case i:return"bottom";default:throw new Error("unreachable")}}function sz(s,a,l=5){const i=[];switch(a){case"top":i.push({x:s.x-l,y:s.y+l},{x:s.x+l,y:s.y+l});break;case"bottom":i.push({x:s.x-l,y:s.y-l},{x:s.x+l,y:s.y-l});break;case"left":i.push({x:s.x+l,y:s.y-l},{x:s.x+l,y:s.y+l});break;case"right":i.push({x:s.x-l,y:s.y-l},{x:s.x-l,y:s.y+l});break}return i}function nz(s){const{top:a,right:l,bottom:i,left:c}=s;return[{x:c,y:a},{x:l,y:a},{x:l,y:i},{x:c,y:i}]}function az(s,a){const{x:l,y:i}=s;let c=!1;for(let d=0,m=a.length-1;di!=b>i&&l<(j-v)*(i-g)/(b-g)+v&&(c=!c)}return c}function lz(s){const a=s.slice();return a.sort((l,i)=>l.xi.x?1:l.yi.y?1:0),rz(a)}function rz(s){if(s.length<=1)return s.slice();const a=[];for(let i=0;i=2;){const d=a[a.length-1],m=a[a.length-2];if((d.x-m.x)*(c.y-m.y)>=(d.y-m.y)*(c.x-m.x))a.pop();else break}a.push(c)}a.pop();const l=[];for(let i=s.length-1;i>=0;i--){const c=s[i];for(;l.length>=2;){const d=l[l.length-1],m=l[l.length-2];if((d.x-m.x)*(c.y-m.y)>=(d.y-m.y)*(c.x-m.x))l.pop();else break}l.push(c)}return l.pop(),a.length===1&&l.length===1&&a[0].x===l[0].x&&a[0].y===l[0].y?a:a.concat(l)}var iz=l1,oz=r1,cz=i1,dz=o1,m1=c1;const uz=iz,mz=oz,fz=cz,f1=x.forwardRef(({className:s,sideOffset:a=4,...l},i)=>e.jsx(dz,{children:e.jsx(m1,{ref:i,sideOffset:a,className:Z("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",s),...l})}));f1.displayName=m1.displayName;function hz({children:s}){VE();const[a,l]=x.useState(!0),[i,c]=x.useState(!1),[d,m]=x.useState(!1),{theme:h,setTheme:p}=Oh(),v=K_(),g=qn();x.useEffect(()=>{const C=N=>{(N.metaKey||N.ctrlKey)&&N.key==="k"&&(N.preventDefault(),m(!0))};return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[]);const j=[{title:"概览",items:[{icon:fd,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:ph,label:"麦麦主程序配置",path:"/config/bot"},{icon:Dy,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:Oy,label:"麦麦模型配置",path:"/config/model"}]},{title:"麦麦资源管理",items:[{icon:gh,label:"表情包管理",path:"/resource/emoji"},{icon:po,label:"表达方式管理",path:"/resource/expression"},{icon:Ay,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:pd,label:"插件市场",path:"/plugins"},{icon:$2,label:"插件配置",path:"/plugin-config"},{icon:hd,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Tn,label:"系统设置",path:"/settings"}]}],w=h==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":h,S=()=>{localStorage.removeItem("access-token"),g({to:"/auth"})};return e.jsx(uz,{delayDuration:300,children:e.jsxs("div",{className:"flex h-screen overflow-hidden",children:[e.jsxs("aside",{className:Z("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",a?"lg:w-64":"lg:w-16",i?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[e.jsx("div",{className:"flex h-16 items-center border-b px-4",children:e.jsxs("div",{className:Z("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!a&&"lg:flex-none lg:w-8"),children:[e.jsxs("div",{className:Z("flex items-baseline gap-2",!a&&"lg:hidden"),children:[e.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),e.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:yE()})]}),!a&&e.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),e.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:e.jsx("ul",{className:Z("space-y-6",!a&&"lg:space-y-3"),children:j.map((C,N)=>e.jsxs("li",{children:[e.jsx("div",{className:Z("px-3 h-[1.25rem]","mb-2",!a&&"lg:mb-1 lg:invisible"),children:e.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:C.title})}),!a&&N>0&&e.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),e.jsx("ul",{className:"space-y-1",children:C.items.map(T=>{const P=v({to:T.path}),M=T.icon,k=e.jsxs(e.Fragment,{children:[P&&e.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),e.jsxs("div",{className:Z("flex items-center transition-all duration-300",a?"gap-3":"lg:gap-0"),children:[e.jsx(M,{className:Z("h-5 w-5 flex-shrink-0",P&&"text-primary"),strokeWidth:2,fill:"none"}),e.jsx("span",{className:Z("text-sm font-medium whitespace-nowrap transition-all duration-300",P&&"font-semibold",a?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:T.label})]})]});return e.jsx("li",{className:"relative",children:e.jsxs(mz,{children:[e.jsx(fz,{asChild:!0,children:e.jsx(Q_,{to:T.path,className:Z("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",P?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",a?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>c(!1),children:k})}),!a&&e.jsx(f1,{side:"right",className:"hidden lg:block",children:e.jsx("p",{children:T.label})})]})},T.path)})})]},C.title))})})]}),i&&e.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>c(!1)}),e.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[e.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx("button",{onClick:()=>c(!i),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:e.jsx(I2,{className:"h-5 w-5"})}),e.jsx("button",{onClick:()=>l(!a),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:a?"收起侧边栏":"展开侧边栏",children:e.jsx(Ol,{className:Z("h-5 w-5 transition-transform",!a&&"rotate-180")})})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("button",{onClick:()=>m(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[e.jsx(Gs,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),e.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),e.jsxs(nw,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[e.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),e.jsx(y3,{open:d,onOpenChange:m}),e.jsxs(q,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[e.jsx(W2,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),e.jsx("button",{onClick:C=>{lE(w==="dark"?"light":"dark",p,C)},className:"rounded-lg p-2 hover:bg-accent",title:w==="dark"?"切换到浅色模式":"切换到深色模式",children:w==="dark"?e.jsx(Rf,{className:"h-5 w-5"}):e.jsx(zf,{className:"h-5 w-5"})}),e.jsx("div",{className:"h-6 w-px bg-border"}),e.jsxs(q,{variant:"ghost",size:"sm",onClick:S,className:"gap-2",title:"登出系统",children:[e.jsx(sj,{className:"h-4 w-4"}),e.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),e.jsxs(L5,{children:[e.jsx(B5,{asChild:!0,children:e.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:s})}),e.jsxs(n1,{className:"w-64",children:[e.jsxs(kn,{onClick:()=>g({to:"/"}),children:[e.jsx(fd,{className:"mr-2 h-4 w-4"}),"首页"]}),e.jsxs(kn,{onClick:()=>g({to:"/settings"}),children:[e.jsx(Tn,{className:"mr-2 h-4 w-4"}),"系统设置"]}),e.jsxs(kn,{onClick:()=>g({to:"/logs"}),children:[e.jsx(hd,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),e.jsx(to,{}),e.jsxs(U5,{children:[e.jsxs(t1,{children:[e.jsx(Ty,{className:"mr-2 h-4 w-4"}),"切换主题"]}),e.jsxs(s1,{className:"w-48",children:[e.jsxs(kn,{onClick:()=>p("light"),disabled:h==="light",children:[e.jsx(Rf,{className:"mr-2 h-4 w-4"}),"浅色",h==="light"&&e.jsx(Pr,{children:"✓"})]}),e.jsxs(kn,{onClick:()=>p("dark"),disabled:h==="dark",children:[e.jsx(zf,{className:"mr-2 h-4 w-4"}),"深色",h==="dark"&&e.jsx(Pr,{children:"✓"})]}),e.jsxs(kn,{onClick:()=>p("system"),disabled:h==="system",children:[e.jsx(Tn,{className:"mr-2 h-4 w-4"}),"跟随系统",h==="system"&&e.jsx(Pr,{children:"✓"})]})]})]}),e.jsx(to,{}),e.jsxs(kn,{onClick:()=>window.location.reload(),children:[e.jsx(X2,{className:"mr-2 h-4 w-4"}),"刷新页面",e.jsx(Pr,{children:"⌘R"})]}),e.jsxs(kn,{onClick:()=>m(!0),children:[e.jsx(Gs,{className:"mr-2 h-4 w-4"}),"搜索",e.jsx(Pr,{children:"⌘K"})]}),e.jsx(to,{}),e.jsxs(kn,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[e.jsx(so,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),e.jsx(to,{}),e.jsxs(kn,{onClick:S,className:"text-destructive focus:text-destructive",children:[e.jsx(sj,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const zo=Z_({component:()=>e.jsxs(e.Fragment,{children:[e.jsx(ry,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!L0())throw e2({to:"/auth"})}}),xz=Ts({getParentRoute:()=>zo,path:"/auth",component:GE}),pz=Ts({getParentRoute:()=>zo,path:"/setup",component:d4}),an=Ts({getParentRoute:()=>zo,id:"protected",component:()=>e.jsx(hz,{children:e.jsx(ry,{})})}),gz=Ts({getParentRoute:()=>an,path:"/",component:nE}),vz=Ts({getParentRoute:()=>an,path:"/config/bot",component:tM}),jz=Ts({getParentRoute:()=>an,path:"/config/modelProvider",component:gM}),yz=Ts({getParentRoute:()=>an,path:"/config/model",component:GM}),bz=Ts({getParentRoute:()=>an,path:"/resource/emoji",component:eD}),Nz=Ts({getParentRoute:()=>an,path:"/resource/expression",component:dD}),wz=Ts({getParentRoute:()=>an,path:"/resource/person",component:bD}),Sz=Ts({getParentRoute:()=>an,path:"/logs",component:s3}),_z=Ts({getParentRoute:()=>an,path:"/plugins",component:x3}),Cz=Ts({getParentRoute:()=>an,path:"/plugin-config",component:p3}),kz=Ts({getParentRoute:()=>an,path:"/plugin-mirrors",component:g3}),Tz=Ts({getParentRoute:()=>an,path:"/settings",component:LE}),Ez=Ts({getParentRoute:()=>zo,path:"*",component:H0}),Mz=zo.addChildren([xz,pz,an.addChildren([gz,vz,jz,yz,bz,Nz,wz,_z,Cz,kz,Sz,Tz]),Ez]),Dz=J_({routeTree:Mz,defaultNotFoundComponent:H0});function Oz({children:s,defaultTheme:a="system",storageKey:l="ui-theme",...i}){const[c,d]=x.useState(()=>localStorage.getItem(l)||a);x.useEffect(()=>{const h=window.document.documentElement;if(h.classList.remove("light","dark"),c==="system"){const p=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";h.classList.add(p);return}h.classList.add(c)},[c]),x.useEffect(()=>{const h=localStorage.getItem("accent-color");if(h){const p=document.documentElement,g={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[h];g&&(p.style.setProperty("--primary",g.hsl),g.gradient?(p.style.setProperty("--primary-gradient",g.gradient),p.classList.add("has-gradient")):(p.style.removeProperty("--primary-gradient"),p.classList.remove("has-gradient")))}},[]);const m={theme:c,setTheme:h=>{localStorage.setItem(l,h),d(h)}};return e.jsx(r0.Provider,{...i,value:m,children:s})}function Az({children:s,defaultEnabled:a=!0,defaultWavesEnabled:l=!0,storageKey:i="enable-animations",wavesStorageKey:c="enable-waves-background"}){const[d,m]=x.useState(()=>{const g=localStorage.getItem(i);return g!==null?g==="true":a}),[h,p]=x.useState(()=>{const g=localStorage.getItem(c);return g!==null?g==="true":l});x.useEffect(()=>{const g=document.documentElement;d?g.classList.remove("no-animations"):g.classList.add("no-animations"),localStorage.setItem(i,String(d))},[d,i]),x.useEffect(()=>{localStorage.setItem(c,String(h))},[h,c]);const v={enableAnimations:d,setEnableAnimations:m,enableWavesBackground:h,setEnableWavesBackground:p};return e.jsx(i0.Provider,{value:v,children:s})}var ex="ToastProvider",[tx,Rz,zz]=_d("Toast"),[h1]=Dn("Toast",[zz]),[Pz,Qd]=h1(ex),x1=s=>{const{__scopeToast:a,label:l="Notification",duration:i=5e3,swipeDirection:c="right",swipeThreshold:d=50,children:m}=s,[h,p]=x.useState(null),[v,g]=x.useState(0),j=x.useRef(!1),b=x.useRef(!1);return l.trim()||console.error(`Invalid prop \`label\` supplied to \`${ex}\`. Expected non-empty \`string\`.`),e.jsx(tx.Provider,{scope:a,children:e.jsx(Pz,{scope:a,label:l,duration:i,swipeDirection:c,swipeThreshold:d,toastCount:v,viewport:h,onViewportChange:p,onToastAdd:x.useCallback(()=>g(w=>w+1),[]),onToastRemove:x.useCallback(()=>g(w=>w-1),[]),isFocusedToastEscapeKeyDownRef:j,isClosePausedRef:b,children:m})})};x1.displayName=ex;var p1="ToastViewport",Lz=["F8"],nh="toast.viewportPause",ah="toast.viewportResume",g1=x.forwardRef((s,a)=>{const{__scopeToast:l,hotkey:i=Lz,label:c="Notifications ({hotkey})",...d}=s,m=Qd(p1,l),h=Rz(l),p=x.useRef(null),v=x.useRef(null),g=x.useRef(null),j=x.useRef(null),b=Tt(a,j,m.onViewportChange),w=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),S=m.toastCount>0;x.useEffect(()=>{const N=T=>{i.length!==0&&i.every(M=>T[M]||T.code===M)&&j.current?.focus()};return document.addEventListener("keydown",N),()=>document.removeEventListener("keydown",N)},[i]),x.useEffect(()=>{const N=p.current,T=j.current;if(S&&N&&T){const P=()=>{if(!m.isClosePausedRef.current){const A=new CustomEvent(nh);T.dispatchEvent(A),m.isClosePausedRef.current=!0}},M=()=>{if(m.isClosePausedRef.current){const A=new CustomEvent(ah);T.dispatchEvent(A),m.isClosePausedRef.current=!1}},k=A=>{!N.contains(A.relatedTarget)&&M()},D=()=>{N.contains(document.activeElement)||M()};return N.addEventListener("focusin",P),N.addEventListener("focusout",k),N.addEventListener("pointermove",P),N.addEventListener("pointerleave",D),window.addEventListener("blur",P),window.addEventListener("focus",M),()=>{N.removeEventListener("focusin",P),N.removeEventListener("focusout",k),N.removeEventListener("pointermove",P),N.removeEventListener("pointerleave",D),window.removeEventListener("blur",P),window.removeEventListener("focus",M)}}},[S,m.isClosePausedRef]);const C=x.useCallback(({tabbingDirection:N})=>{const P=h().map(M=>{const k=M.ref.current,D=[k,...Kz(k)];return N==="forwards"?D:D.reverse()});return(N==="forwards"?P.reverse():P).flat()},[h]);return x.useEffect(()=>{const N=j.current;if(N){const T=P=>{const M=P.altKey||P.ctrlKey||P.metaKey;if(P.key==="Tab"&&!M){const D=document.activeElement,A=P.shiftKey;if(P.target===N&&A){v.current?.focus();return}const Y=C({tabbingDirection:A?"backwards":"forwards"}),G=Y.findIndex($=>$===D);Mf(Y.slice(G+1))?P.preventDefault():A?v.current?.focus():g.current?.focus()}};return N.addEventListener("keydown",T),()=>N.removeEventListener("keydown",T)}},[h,C]),e.jsxs(S2,{ref:p,role:"region","aria-label":c.replace("{hotkey}",w),tabIndex:-1,style:{pointerEvents:S?void 0:"none"},children:[S&&e.jsx(lh,{ref:v,onFocusFromOutsideViewport:()=>{const N=C({tabbingDirection:"forwards"});Mf(N)}}),e.jsx(tx.Slot,{scope:l,children:e.jsx(dt.ol,{tabIndex:-1,...d,ref:b})}),S&&e.jsx(lh,{ref:g,onFocusFromOutsideViewport:()=>{const N=C({tabbingDirection:"backwards"});Mf(N)}})]})});g1.displayName=p1;var v1="ToastFocusProxy",lh=x.forwardRef((s,a)=>{const{__scopeToast:l,onFocusFromOutsideViewport:i,...c}=s,d=Qd(v1,l);return e.jsx(ky,{tabIndex:0,...c,ref:a,style:{position:"fixed"},onFocus:m=>{const h=m.relatedTarget;!d.viewport?.contains(h)&&i()}})});lh.displayName=v1;var Po="Toast",Bz="toast.swipeStart",Uz="toast.swipeMove",Hz="toast.swipeCancel",Fz="toast.swipeEnd",j1=x.forwardRef((s,a)=>{const{forceMount:l,open:i,defaultOpen:c,onOpenChange:d,...m}=s,[h,p]=Qa({prop:i,defaultProp:c??!0,onChange:d,caller:Po});return e.jsx(Is,{present:l||h,children:e.jsx(Vz,{open:h,...m,ref:a,onClose:()=>p(!1),onPause:ws(s.onPause),onResume:ws(s.onResume),onSwipeStart:be(s.onSwipeStart,v=>{v.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:be(s.onSwipeMove,v=>{const{x:g,y:j}=v.detail.delta;v.currentTarget.setAttribute("data-swipe","move"),v.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${g}px`),v.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${j}px`)}),onSwipeCancel:be(s.onSwipeCancel,v=>{v.currentTarget.setAttribute("data-swipe","cancel"),v.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),v.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),v.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),v.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:be(s.onSwipeEnd,v=>{const{x:g,y:j}=v.detail.delta;v.currentTarget.setAttribute("data-swipe","end"),v.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),v.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),v.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${g}px`),v.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${j}px`),p(!1)})})})});j1.displayName=Po;var[Yz,qz]=h1(Po,{onClose(){}}),Vz=x.forwardRef((s,a)=>{const{__scopeToast:l,type:i="foreground",duration:c,open:d,onClose:m,onEscapeKeyDown:h,onPause:p,onResume:v,onSwipeStart:g,onSwipeMove:j,onSwipeCancel:b,onSwipeEnd:w,...S}=s,C=Qd(Po,l),[N,T]=x.useState(null),P=Tt(a,ae=>T(ae)),M=x.useRef(null),k=x.useRef(null),D=c||C.duration,A=x.useRef(0),E=x.useRef(D),B=x.useRef(0),{onToastAdd:Y,onToastRemove:G}=C,$=ws(()=>{N?.contains(document.activeElement)&&C.viewport?.focus(),m()}),oe=x.useCallback(ae=>{!ae||ae===1/0||(window.clearTimeout(B.current),A.current=new Date().getTime(),B.current=window.setTimeout($,ae))},[$]);x.useEffect(()=>{const ae=C.viewport;if(ae){const me=()=>{oe(E.current),v?.()},R=()=>{const O=new Date().getTime()-A.current;E.current=E.current-O,window.clearTimeout(B.current),p?.()};return ae.addEventListener(nh,R),ae.addEventListener(ah,me),()=>{ae.removeEventListener(nh,R),ae.removeEventListener(ah,me)}}},[C.viewport,D,p,v,oe]),x.useEffect(()=>{d&&!C.isClosePausedRef.current&&oe(D)},[d,D,C.isClosePausedRef,oe]),x.useEffect(()=>(Y(),()=>G()),[Y,G]);const je=x.useMemo(()=>N?C1(N):null,[N]);return C.viewport?e.jsxs(e.Fragment,{children:[je&&e.jsx(Gz,{__scopeToast:l,role:"status","aria-live":i==="foreground"?"assertive":"polite",children:je}),e.jsx(Yz,{scope:l,onClose:$,children:t2.createPortal(e.jsx(tx.ItemSlot,{scope:l,children:e.jsx(_2,{asChild:!0,onEscapeKeyDown:be(h,()=>{C.isFocusedToastEscapeKeyDownRef.current||$(),C.isFocusedToastEscapeKeyDownRef.current=!1}),children:e.jsx(dt.li,{tabIndex:0,"data-state":d?"open":"closed","data-swipe-direction":C.swipeDirection,...S,ref:P,style:{userSelect:"none",touchAction:"none",...s.style},onKeyDown:be(s.onKeyDown,ae=>{ae.key==="Escape"&&(h?.(ae.nativeEvent),ae.nativeEvent.defaultPrevented||(C.isFocusedToastEscapeKeyDownRef.current=!0,$()))}),onPointerDown:be(s.onPointerDown,ae=>{ae.button===0&&(M.current={x:ae.clientX,y:ae.clientY})}),onPointerMove:be(s.onPointerMove,ae=>{if(!M.current)return;const me=ae.clientX-M.current.x,R=ae.clientY-M.current.y,O=!!k.current,L=["left","right"].includes(C.swipeDirection),ee=["left","up"].includes(C.swipeDirection)?Math.min:Math.max,le=L?ee(0,me):0,xe=L?0:ee(0,R),F=ae.pointerType==="touch"?10:2,W={x:le,y:xe},fe={originalEvent:ae,delta:W};O?(k.current=W,rd(Uz,j,fe,{discrete:!1})):ly(W,C.swipeDirection,F)?(k.current=W,rd(Bz,g,fe,{discrete:!1}),ae.target.setPointerCapture(ae.pointerId)):(Math.abs(me)>F||Math.abs(R)>F)&&(M.current=null)}),onPointerUp:be(s.onPointerUp,ae=>{const me=k.current,R=ae.target;if(R.hasPointerCapture(ae.pointerId)&&R.releasePointerCapture(ae.pointerId),k.current=null,M.current=null,me){const O=ae.currentTarget,L={originalEvent:ae,delta:me};ly(me,C.swipeDirection,C.swipeThreshold)?rd(Fz,w,L,{discrete:!0}):rd(Hz,b,L,{discrete:!0}),O.addEventListener("click",ee=>ee.preventDefault(),{once:!0})}})})})}),C.viewport)})]}):null}),Gz=s=>{const{__scopeToast:a,children:l,...i}=s,c=Qd(Po,a),[d,m]=x.useState(!1),[h,p]=x.useState(!1);return Wz(()=>m(!0)),x.useEffect(()=>{const v=window.setTimeout(()=>p(!0),1e3);return()=>window.clearTimeout(v)},[]),h?null:e.jsx(Td,{asChild:!0,children:e.jsx(ky,{...i,children:d&&e.jsxs(e.Fragment,{children:[c.label," ",l]})})})},$z="ToastTitle",y1=x.forwardRef((s,a)=>{const{__scopeToast:l,...i}=s;return e.jsx(dt.div,{...i,ref:a})});y1.displayName=$z;var Iz="ToastDescription",b1=x.forwardRef((s,a)=>{const{__scopeToast:l,...i}=s;return e.jsx(dt.div,{...i,ref:a})});b1.displayName=Iz;var N1="ToastAction",w1=x.forwardRef((s,a)=>{const{altText:l,...i}=s;return l.trim()?e.jsx(_1,{altText:l,asChild:!0,children:e.jsx(sx,{...i,ref:a})}):(console.error(`Invalid prop \`altText\` supplied to \`${N1}\`. Expected non-empty \`string\`.`),null)});w1.displayName=N1;var S1="ToastClose",sx=x.forwardRef((s,a)=>{const{__scopeToast:l,...i}=s,c=qz(S1,l);return e.jsx(_1,{asChild:!0,children:e.jsx(dt.button,{type:"button",...i,ref:a,onClick:be(s.onClick,c.onClose)})})});sx.displayName=S1;var _1=x.forwardRef((s,a)=>{const{__scopeToast:l,altText:i,...c}=s;return e.jsx(dt.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":i||void 0,...c,ref:a})});function C1(s){const a=[];return Array.from(s.childNodes).forEach(i=>{if(i.nodeType===i.TEXT_NODE&&i.textContent&&a.push(i.textContent),Xz(i)){const c=i.ariaHidden||i.hidden||i.style.display==="none",d=i.dataset.radixToastAnnounceExclude==="";if(!c)if(d){const m=i.dataset.radixToastAnnounceAlt;m&&a.push(m)}else a.push(...C1(i))}}),a}function rd(s,a,l,{discrete:i}){const c=l.originalEvent.currentTarget,d=new CustomEvent(s,{bubbles:!0,cancelable:!0,detail:l});a&&c.addEventListener(s,a,{once:!0}),i?Cy(c,d):c.dispatchEvent(d)}var ly=(s,a,l=0)=>{const i=Math.abs(s.x),c=Math.abs(s.y),d=i>c;return a==="left"||a==="right"?d&&i>l:!d&&c>l};function Wz(s=()=>{}){const a=ws(s);oy(()=>{let l=0,i=0;return l=window.requestAnimationFrame(()=>i=window.requestAnimationFrame(a)),()=>{window.cancelAnimationFrame(l),window.cancelAnimationFrame(i)}},[a])}function Xz(s){return s.nodeType===s.ELEMENT_NODE}function Kz(s){const a=[],l=document.createTreeWalker(s,NodeFilter.SHOW_ELEMENT,{acceptNode:i=>{const c=i.tagName==="INPUT"&&i.type==="hidden";return i.disabled||i.hidden||c?NodeFilter.FILTER_SKIP:i.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;l.nextNode();)a.push(l.currentNode);return a}function Mf(s){const a=document.activeElement;return s.some(l=>l===a?!0:(l.focus(),document.activeElement!==a))}var Qz=x1,k1=g1,T1=j1,E1=y1,M1=b1,D1=w1,O1=sx;const Zz=Qz,A1=x.forwardRef(({className:s,...a},l)=>e.jsx(k1,{ref:l,className:Z("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",s),...a}));A1.displayName=k1.displayName;const Jz=Jr("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),R1=x.forwardRef(({className:s,variant:a,...l},i)=>e.jsx(T1,{ref:i,className:Z(Jz({variant:a}),s),...l}));R1.displayName=T1.displayName;const e6=x.forwardRef(({className:s,...a},l)=>e.jsx(D1,{ref:l,className:Z("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",s),...a}));e6.displayName=D1.displayName;const z1=x.forwardRef(({className:s,...a},l)=>e.jsx(O1,{ref:l,className:Z("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",s),"toast-close":"",...a,children:e.jsx(go,{className:"h-4 w-4"})}));z1.displayName=O1.displayName;const P1=x.forwardRef(({className:s,...a},l)=>e.jsx(E1,{ref:l,className:Z("text-sm font-semibold [&+div]:text-xs",s),...a}));P1.displayName=E1.displayName;const L1=x.forwardRef(({className:s,...a},l)=>e.jsx(M1,{ref:l,className:Z("text-sm opacity-90",s),...a}));L1.displayName=M1.displayName;function t6(){const{toasts:s}=Es();return e.jsxs(Zz,{children:[s.map(function({id:a,title:l,description:i,action:c,...d}){return e.jsxs(R1,{...d,children:[e.jsxs("div",{className:"grid gap-1",children:[l&&e.jsx(P1,{children:l}),i&&e.jsx(L1,{children:i})]}),c,e.jsx(z1,{})]},a)}),e.jsx(A1,{})]})}eC.createRoot(document.getElementById("root")).render(e.jsx(x.StrictMode,{children:e.jsx(Oz,{defaultTheme:"system",children:e.jsxs(Az,{children:[e.jsx(s2,{router:Dz}),e.jsx(t6,{})]})})})); diff --git a/webui/dist/assets/index-pMcRRAxj.js b/webui/dist/assets/index-pMcRRAxj.js new file mode 100644 index 00000000..7a2399d9 --- /dev/null +++ b/webui/dist/assets/index-pMcRRAxj.js @@ -0,0 +1,344 @@ +import{r as w,j as r,u as rs,R as Fe,d as _C,L as MC,e as EC,f as fr,g as AC,h as DC,O as _5,b as zC,k as OC}from"./router-BWgTyY51.js";import{a as RC,b as BC,g as M5}from"./react-vendor-Dtc2IqVY.js";import{c as E5,R as LC,T as PC,L as FC,a as IC,C as x0,X as g0,Y as Gc,b as qC,B as fp,d as v0,P as HC,e as UC,f as $C}from"./charts-DU5SeejN.js";import{c as Ha,a as vm,u as Ta,P as Ft,b as Pe,d as dn,e as Tu,f as Dl,g as gr,h as Wr,i as A5,j as o1,k as c1,S as VC,l as D5,m as z5,R as O5,O as ym,n as u1,C as bm,o as d1,T as m1,D as h1,p as f1,q as R5,r as B5,W as GC,s as L5,I as YC,t as P5,v as F5,w as WC,x as I5,V as XC,L as q5,y as H5,z as KC,A as QC,B as U5,E as ZC,F as JC,G as Nl,H as wm,J as Uo,K as $5,M as V5,N as G5,Q as Y5,U as p1,X as x1,Y as jm,Z as Nm,_ as g1,$ as W5,a0 as eT,a1 as X5,a2 as tT,a3 as nT,a4 as K5,a5 as rT}from"./ui-vendor-nTGLnMlb.js";import{R as Os,A as aT,D as sT,a as lT,Z as mu,C as ui,M as _u,T as iT,X as Mu,P as Q5,S as oT,b as Pa,I as hi,c as Mo,d as di,e as hx,E as fx,f as qa,g as Ur,h as px,i as cT,j as xx,k as gx,L as Py,K as uT,l as fi,m as dT,n as mT,F as jl,o as hT,B as fT,U as Z5,p as v1,q as pT,r as xT,s as Gr,H as K0,t as J5,u as hu,v as vx,w as fu,x as y1,y as b1,z as mr,G as Ot,J as Q0,N as Ro,O as Eu,Q as vi,V as yi,W as Au,Y as gT,_ as vT,$ as Z0,a0 as yx,a1 as Bo,a2 as Fy,a3 as J0,a4 as yT,a5 as Iy,a6 as bT,a7 as wT,a8 as jT,a9 as qy,aa as lu,ab as em,ac as e6,ad as t6,ae as n6,af as NT,ag as ST,ah as Hy,ai as kT,aj as CT,ak as Uy,al as TT}from"./icons-BdGv2zEo.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))a(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const c of o.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&a(c)}).observe(document,{childList:!0,subtree:!0});function n(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function a(l){if(l.ep)return;l.ep=!0;const o=n(l);fetch(l.href,o)}})();var pp={exports:{}},Yc={},xp={exports:{}},gp={};var $y;function _T(){return $y||($y=1,(function(e){function t(U,q){var W=U.length;U.push(q);e:for(;0>>1,P=U[oe];if(0>>1;oel(O,W))Nel(se,O)?(U[oe]=se,U[Ne]=W,oe=Ne):(U[oe]=O,U[Z]=W,oe=Z);else if(Nel(se,W))U[oe]=se,U[Ne]=W,oe=Ne;else break e}}return q}function l(U,q){var W=U.sortIndex-q.sortIndex;return W!==0?W:U.id-q.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var c=Date,d=c.now();e.unstable_now=function(){return c.now()-d}}var m=[],f=[],p=1,x=null,y=3,b=!1,j=!1,k=!1,S=!1,_=typeof setTimeout=="function"?setTimeout:null,M=typeof clearTimeout=="function"?clearTimeout:null,D=typeof setImmediate<"u"?setImmediate:null;function z(U){for(var q=n(f);q!==null;){if(q.callback===null)a(f);else if(q.startTime<=U)a(f),q.sortIndex=q.expirationTime,t(m,q);else break;q=n(f)}}function L(U){if(k=!1,z(U),!j)if(n(m)!==null)j=!0,E||(E=!0,te());else{var q=n(f);q!==null&&ae(L,q.startTime-U)}}var E=!1,R=-1,H=5,$=-1;function I(){return S?!0:!(e.unstable_now()-$U&&I());){var oe=x.callback;if(typeof oe=="function"){x.callback=null,y=x.priorityLevel;var P=oe(x.expirationTime<=U);if(U=e.unstable_now(),typeof P=="function"){x.callback=P,z(U),q=!0;break t}x===n(m)&&a(m),z(U)}else a(m);x=n(m)}if(x!==null)q=!0;else{var je=n(f);je!==null&&ae(L,je.startTime-U),q=!1}}break e}finally{x=null,y=W,b=!1}q=void 0}}finally{q?te():E=!1}}}var te;if(typeof D=="function")te=function(){D(G)};else if(typeof MessageChannel<"u"){var we=new MessageChannel,J=we.port2;we.port1.onmessage=G,te=function(){J.postMessage(null)}}else te=function(){_(G,0)};function ae(U,q){R=_(function(){U(e.unstable_now())},q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(U){U.callback=null},e.unstable_forceFrameRate=function(U){0>U||125oe?(U.sortIndex=W,t(f,U),n(m)===null&&U===n(f)&&(k?(M(R),R=-1):k=!0,ae(L,W-oe))):(U.sortIndex=P,t(m,U),j||b||(j=!0,E||(E=!0,te()))),U},e.unstable_shouldYield=I,e.unstable_wrapCallback=function(U){var q=y;return function(){var W=y;y=q;try{return U.apply(this,arguments)}finally{y=W}}}})(gp)),gp}var Vy;function MT(){return Vy||(Vy=1,xp.exports=_T()),xp.exports}var Gy;function ET(){if(Gy)return Yc;Gy=1;var e=MT(),t=RC(),n=BC();function a(s){var i="https://react.dev/errors/"+s;if(1P||(s.current=oe[P],oe[P]=null,P--)}function O(s,i){P++,oe[P]=s.current,s.current=i}var Ne=je(null),se=je(null),Ce=je(null),ye=je(null);function Be(s,i){switch(O(Ce,i),O(se,s),O(Ne,null),i.nodeType){case 9:case 11:s=(s=i.documentElement)&&(s=s.namespaceURI)?iy(s):0;break;default:if(s=i.tagName,i=i.namespaceURI)i=iy(i),s=oy(i,s);else switch(s){case"svg":s=1;break;case"math":s=2;break;default:s=0}}Z(Ne),O(Ne,s)}function ie(){Z(Ne),Z(se),Z(Ce)}function He(s){s.memoizedState!==null&&O(ye,s);var i=Ne.current,u=oy(i,s.type);i!==u&&(O(se,s),O(Ne,u))}function lt(s){se.current===s&&(Z(Ne),Z(se)),ye.current===s&&(Z(ye),Hc._currentValue=W)}var ve,Ze;function We(s){if(ve===void 0)try{throw Error()}catch(u){var i=u.stack.trim().match(/\n( *(at )?)/);ve=i&&i[1]||"",Ze=-1)":-1g||X[h]!==de[g]){var be=` +`+X[h].replace(" at new "," at ");return s.displayName&&be.includes("")&&(be=be.replace("",s.displayName)),be}while(1<=h&&0<=g);break}}}finally{pn=!1,Error.prepareStackTrace=u}return(u=s?s.displayName||s.name:"")?We(u):""}function sr(s,i){switch(s.tag){case 26:case 27:case 5:return We(s.type);case 16:return We("Lazy");case 13:return s.child!==i&&i!==null?We("Suspense Fallback"):We("Suspense");case 19:return We("SuspenseList");case 0:case 15:return Bn(s.type,!1);case 11:return Bn(s.type.render,!1);case 1:return Bn(s.type,!0);case 31:return We("Activity");default:return""}}function Qe(s){try{var i="",u=null;do i+=sr(s,u),u=s,s=s.return;while(s);return i}catch(h){return` +Error generating stack: `+h.message+` +`+h.stack}}var Gn=Object.prototype.hasOwnProperty,Sr=e.unstable_scheduleCallback,Er=e.unstable_cancelCallback,Sn=e.unstable_shouldYield,lr=e.unstable_requestPaint,Ue=e.unstable_now,Ln=e.unstable_getCurrentPriorityLevel,K=e.unstable_ImmediatePriority,ge=e.unstable_UserBlockingPriority,Oe=e.unstable_NormalPriority,nt=e.unstable_LowPriority,kt=e.unstable_IdlePriority,Qn=e.log,Ar=e.unstable_setDisableYieldValue,he=null,Me=null;function dt(s){if(typeof Qn=="function"&&Ar(s),Me&&typeof Me.setStrictMode=="function")try{Me.setStrictMode(he,s)}catch{}}var mt=Math.clz32?Math.clz32:xn,Dr=Math.log,at=Math.LN2;function xn(s){return s>>>=0,s===0?32:31-(Dr(s)/at|0)|0}var it=256,Ut=262144,Zn=4194304;function bt(s){var i=s&42;if(i!==0)return i;switch(s&-s){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return s&261888;case 262144:case 524288:case 1048576:case 2097152:return s&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return s&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return s}}function Mi(s,i,u){var h=s.pendingLanes;if(h===0)return 0;var g=0,v=s.suspendedLanes,T=s.pingedLanes;s=s.warmLanes;var B=h&134217727;return B!==0?(h=B&~v,h!==0?g=bt(h):(T&=B,T!==0?g=bt(T):u||(u=B&~s,u!==0&&(g=bt(u))))):(B=h&~v,B!==0?g=bt(B):T!==0?g=bt(T):u||(u=h&~s,u!==0&&(g=bt(u)))),g===0?0:i!==0&&i!==g&&(i&v)===0&&(v=g&-g,u=i&-i,v>=u||v===32&&(u&4194048)!==0)?i:g}function Pl(s,i){return(s.pendingLanes&~(s.suspendedLanes&~s.pingedLanes)&i)===0}function th(s,i){switch(s){case 1:case 2:case 4:case 8:case 64:return i+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ei(){var s=Zn;return Zn<<=1,(Zn&62914560)===0&&(Zn=4194304),s}function Fl(s){for(var i=[],u=0;31>u;u++)i.push(s);return i}function nc(s,i){s.pendingLanes|=i,i!==268435456&&(s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0)}function xS(s,i,u,h,g,v){var T=s.pendingLanes;s.pendingLanes=u,s.suspendedLanes=0,s.pingedLanes=0,s.warmLanes=0,s.expiredLanes&=u,s.entangledLanes&=u,s.errorRecoveryDisabledLanes&=u,s.shellSuspendCounter=0;var B=s.entanglements,X=s.expirationTimes,de=s.hiddenUpdates;for(u=T&~u;0"u")return null;try{return s.activeElement||s.body}catch{return s.body}}var jS=/[\n"\\]/g;function pa(s){return s.replace(jS,function(i){return"\\"+i.charCodeAt(0).toString(16)+" "})}function ih(s,i,u,h,g,v,T,B){s.name="",T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"?s.type=T:s.removeAttribute("type"),i!=null?T==="number"?(i===0&&s.value===""||s.value!=i)&&(s.value=""+fa(i)):s.value!==""+fa(i)&&(s.value=""+fa(i)):T!=="submit"&&T!=="reset"||s.removeAttribute("value"),i!=null?oh(s,T,fa(i)):u!=null?oh(s,T,fa(u)):h!=null&&s.removeAttribute("value"),g==null&&v!=null&&(s.defaultChecked=!!v),g!=null&&(s.checked=g&&typeof g!="function"&&typeof g!="symbol"),B!=null&&typeof B!="function"&&typeof B!="symbol"&&typeof B!="boolean"?s.name=""+fa(B):s.removeAttribute("name")}function tv(s,i,u,h,g,v,T,B){if(v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"&&(s.type=v),i!=null||u!=null){if(!(v!=="submit"&&v!=="reset"||i!=null)){lh(s);return}u=u!=null?""+fa(u):"",i=i!=null?""+fa(i):u,B||i===s.value||(s.value=i),s.defaultValue=i}h=h??g,h=typeof h!="function"&&typeof h!="symbol"&&!!h,s.checked=B?s.checked:!!h,s.defaultChecked=!!h,T!=null&&typeof T!="function"&&typeof T!="symbol"&&typeof T!="boolean"&&(s.name=T),lh(s)}function oh(s,i,u){i==="number"&&ld(s.ownerDocument)===s||s.defaultValue===""+u||(s.defaultValue=""+u)}function Bi(s,i,u,h){if(s=s.options,i){i={};for(var g=0;g"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),hh=!1;if(ms)try{var lc={};Object.defineProperty(lc,"passive",{get:function(){hh=!0}}),window.addEventListener("test",lc,lc),window.removeEventListener("test",lc,lc)}catch{hh=!1}var Ys=null,fh=null,od=null;function ov(){if(od)return od;var s,i=fh,u=i.length,h,g="value"in Ys?Ys.value:Ys.textContent,v=g.length;for(s=0;s=cc),fv=" ",pv=!1;function xv(s,i){switch(s){case"keyup":return KS.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function gv(s){return s=s.detail,typeof s=="object"&&"data"in s?s.data:null}var Ii=!1;function ZS(s,i){switch(s){case"compositionend":return gv(i);case"keypress":return i.which!==32?null:(pv=!0,fv);case"textInput":return s=i.data,s===fv&&pv?null:s;default:return null}}function JS(s,i){if(Ii)return s==="compositionend"||!yh&&xv(s,i)?(s=ov(),od=fh=Ys=null,Ii=!1,s):null;switch(s){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1=i)return{node:u,offset:i-s};s=h}e:{for(;u;){if(u.nextSibling){u=u.nextSibling;break e}u=u.parentNode}u=void 0}u=kv(u)}}function Tv(s,i){return s&&i?s===i?!0:s&&s.nodeType===3?!1:i&&i.nodeType===3?Tv(s,i.parentNode):"contains"in s?s.contains(i):s.compareDocumentPosition?!!(s.compareDocumentPosition(i)&16):!1:!1}function _v(s){s=s!=null&&s.ownerDocument!=null&&s.ownerDocument.defaultView!=null?s.ownerDocument.defaultView:window;for(var i=ld(s.document);i instanceof s.HTMLIFrameElement;){try{var u=typeof i.contentWindow.location.href=="string"}catch{u=!1}if(u)s=i.contentWindow;else break;i=ld(s.document)}return i}function jh(s){var i=s&&s.nodeName&&s.nodeName.toLowerCase();return i&&(i==="input"&&(s.type==="text"||s.type==="search"||s.type==="tel"||s.type==="url"||s.type==="password")||i==="textarea"||s.contentEditable==="true")}var ik=ms&&"documentMode"in document&&11>=document.documentMode,qi=null,Nh=null,hc=null,Sh=!1;function Mv(s,i,u){var h=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;Sh||qi==null||qi!==ld(h)||(h=qi,"selectionStart"in h&&jh(h)?h={start:h.selectionStart,end:h.selectionEnd}:(h=(h.ownerDocument&&h.ownerDocument.defaultView||window).getSelection(),h={anchorNode:h.anchorNode,anchorOffset:h.anchorOffset,focusNode:h.focusNode,focusOffset:h.focusOffset}),hc&&mc(hc,h)||(hc=h,h=t0(Nh,"onSelect"),0>=T,g-=T,$a=1<<32-mt(i)+g|u<pt?(Dt=Ge,Ge=null):Dt=Ge.sibling;var qt=fe(le,Ge,ce[pt],Se);if(qt===null){Ge===null&&(Ge=Dt);break}s&&Ge&&qt.alternate===null&&i(le,Ge),ee=v(qt,ee,pt),It===null?Ke=qt:It.sibling=qt,It=qt,Ge=Dt}if(pt===ce.length)return u(le,Ge),zt&&fs(le,pt),Ke;if(Ge===null){for(;ptpt?(Dt=Ge,Ge=null):Dt=Ge.sibling;var pl=fe(le,Ge,qt.value,Se);if(pl===null){Ge===null&&(Ge=Dt);break}s&&Ge&&pl.alternate===null&&i(le,Ge),ee=v(pl,ee,pt),It===null?Ke=pl:It.sibling=pl,It=pl,Ge=Dt}if(qt.done)return u(le,Ge),zt&&fs(le,pt),Ke;if(Ge===null){for(;!qt.done;pt++,qt=ce.next())qt=ke(le,qt.value,Se),qt!==null&&(ee=v(qt,ee,pt),It===null?Ke=qt:It.sibling=qt,It=qt);return zt&&fs(le,pt),Ke}for(Ge=h(Ge);!qt.done;pt++,qt=ce.next())qt=xe(Ge,le,pt,qt.value,Se),qt!==null&&(s&&qt.alternate!==null&&Ge.delete(qt.key===null?pt:qt.key),ee=v(qt,ee,pt),It===null?Ke=qt:It.sibling=qt,It=qt);return s&&Ge.forEach(function(TC){return i(le,TC)}),zt&&fs(le,pt),Ke}function sn(le,ee,ce,Se){if(typeof ce=="object"&&ce!==null&&ce.type===k&&ce.key===null&&(ce=ce.props.children),typeof ce=="object"&&ce!==null){switch(ce.$$typeof){case b:e:{for(var Ke=ce.key;ee!==null;){if(ee.key===Ke){if(Ke=ce.type,Ke===k){if(ee.tag===7){u(le,ee.sibling),Se=g(ee,ce.props.children),Se.return=le,le=Se;break e}}else if(ee.elementType===Ke||typeof Ke=="object"&&Ke!==null&&Ke.$$typeof===H&&Kl(Ke)===ee.type){u(le,ee.sibling),Se=g(ee,ce.props),yc(Se,ce),Se.return=le,le=Se;break e}u(le,ee);break}else i(le,ee);ee=ee.sibling}ce.type===k?(Se=Vl(ce.props.children,le.mode,Se,ce.key),Se.return=le,le=Se):(Se=vd(ce.type,ce.key,ce.props,null,le.mode,Se),yc(Se,ce),Se.return=le,le=Se)}return T(le);case j:e:{for(Ke=ce.key;ee!==null;){if(ee.key===Ke)if(ee.tag===4&&ee.stateNode.containerInfo===ce.containerInfo&&ee.stateNode.implementation===ce.implementation){u(le,ee.sibling),Se=g(ee,ce.children||[]),Se.return=le,le=Se;break e}else{u(le,ee);break}else i(le,ee);ee=ee.sibling}Se=Ah(ce,le.mode,Se),Se.return=le,le=Se}return T(le);case H:return ce=Kl(ce),sn(le,ee,ce,Se)}if(ae(ce))return qe(le,ee,ce,Se);if(te(ce)){if(Ke=te(ce),typeof Ke!="function")throw Error(a(150));return ce=Ke.call(ce),rt(le,ee,ce,Se)}if(typeof ce.then=="function")return sn(le,ee,kd(ce),Se);if(ce.$$typeof===D)return sn(le,ee,wd(le,ce),Se);Cd(le,ce)}return typeof ce=="string"&&ce!==""||typeof ce=="number"||typeof ce=="bigint"?(ce=""+ce,ee!==null&&ee.tag===6?(u(le,ee.sibling),Se=g(ee,ce),Se.return=le,le=Se):(u(le,ee),Se=Eh(ce,le.mode,Se),Se.return=le,le=Se),T(le)):u(le,ee)}return function(le,ee,ce,Se){try{vc=0;var Ke=sn(le,ee,ce,Se);return Zi=null,Ke}catch(Ge){if(Ge===Qi||Ge===Nd)throw Ge;var It=ea(29,Ge,null,le.mode);return It.lanes=Se,It.return=le,It}finally{}}}var Zl=Zv(!0),Jv=Zv(!1),Zs=!1;function Uh(s){s.updateQueue={baseState:s.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function $h(s,i){s=s.updateQueue,i.updateQueue===s&&(i.updateQueue={baseState:s.baseState,firstBaseUpdate:s.firstBaseUpdate,lastBaseUpdate:s.lastBaseUpdate,shared:s.shared,callbacks:null})}function Js(s){return{lane:s,tag:0,payload:null,callback:null,next:null}}function el(s,i,u){var h=s.updateQueue;if(h===null)return null;if(h=h.shared,($t&2)!==0){var g=h.pending;return g===null?i.next=i:(i.next=g.next,g.next=i),h.pending=i,i=gd(s),Bv(s,null,u),i}return xd(s,h,i,u),gd(s)}function bc(s,i,u){if(i=i.updateQueue,i!==null&&(i=i.shared,(u&4194048)!==0)){var h=i.lanes;h&=s.pendingLanes,u|=h,i.lanes=u,$g(s,u)}}function Vh(s,i){var u=s.updateQueue,h=s.alternate;if(h!==null&&(h=h.updateQueue,u===h)){var g=null,v=null;if(u=u.firstBaseUpdate,u!==null){do{var T={lane:u.lane,tag:u.tag,payload:u.payload,callback:null,next:null};v===null?g=v=T:v=v.next=T,u=u.next}while(u!==null);v===null?g=v=i:v=v.next=i}else g=v=i;u={baseState:h.baseState,firstBaseUpdate:g,lastBaseUpdate:v,shared:h.shared,callbacks:h.callbacks},s.updateQueue=u;return}s=u.lastBaseUpdate,s===null?u.firstBaseUpdate=i:s.next=i,u.lastBaseUpdate=i}var Gh=!1;function wc(){if(Gh){var s=Ki;if(s!==null)throw s}}function jc(s,i,u,h){Gh=!1;var g=s.updateQueue;Zs=!1;var v=g.firstBaseUpdate,T=g.lastBaseUpdate,B=g.shared.pending;if(B!==null){g.shared.pending=null;var X=B,de=X.next;X.next=null,T===null?v=de:T.next=de,T=X;var be=s.alternate;be!==null&&(be=be.updateQueue,B=be.lastBaseUpdate,B!==T&&(B===null?be.firstBaseUpdate=de:B.next=de,be.lastBaseUpdate=X))}if(v!==null){var ke=g.baseState;T=0,be=de=X=null,B=v;do{var fe=B.lane&-536870913,xe=fe!==B.lane;if(xe?(At&fe)===fe:(h&fe)===fe){fe!==0&&fe===Xi&&(Gh=!0),be!==null&&(be=be.next={lane:0,tag:B.tag,payload:B.payload,callback:null,next:null});e:{var qe=s,rt=B;fe=i;var sn=u;switch(rt.tag){case 1:if(qe=rt.payload,typeof qe=="function"){ke=qe.call(sn,ke,fe);break e}ke=qe;break e;case 3:qe.flags=qe.flags&-65537|128;case 0:if(qe=rt.payload,fe=typeof qe=="function"?qe.call(sn,ke,fe):qe,fe==null)break e;ke=x({},ke,fe);break e;case 2:Zs=!0}}fe=B.callback,fe!==null&&(s.flags|=64,xe&&(s.flags|=8192),xe=g.callbacks,xe===null?g.callbacks=[fe]:xe.push(fe))}else xe={lane:fe,tag:B.tag,payload:B.payload,callback:B.callback,next:null},be===null?(de=be=xe,X=ke):be=be.next=xe,T|=fe;if(B=B.next,B===null){if(B=g.shared.pending,B===null)break;xe=B,B=xe.next,xe.next=null,g.lastBaseUpdate=xe,g.shared.pending=null}}while(!0);be===null&&(X=ke),g.baseState=X,g.firstBaseUpdate=de,g.lastBaseUpdate=be,v===null&&(g.shared.lanes=0),sl|=T,s.lanes=T,s.memoizedState=ke}}function e4(s,i){if(typeof s!="function")throw Error(a(191,s));s.call(i)}function t4(s,i){var u=s.callbacks;if(u!==null)for(s.callbacks=null,s=0;sv?v:8;var T=U.T,B={};U.T=B,mf(s,!1,i,u);try{var X=g(),de=U.S;if(de!==null&&de(B,X),X!==null&&typeof X=="object"&&typeof X.then=="function"){var be=xk(X,h);kc(s,i,be,sa(s))}else kc(s,i,h,sa(s))}catch(ke){kc(s,i,{then:function(){},status:"rejected",reason:ke},sa())}finally{q.p=v,T!==null&&B.types!==null&&(T.types=B.types),U.T=T}}function jk(){}function uf(s,i,u,h){if(s.tag!==5)throw Error(a(476));var g=z4(s).queue;D4(s,g,i,W,u===null?jk:function(){return O4(s),u(h)})}function z4(s){var i=s.memoizedState;if(i!==null)return i;i={memoizedState:W,baseState:W,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vs,lastRenderedState:W},next:null};var u={};return i.next={memoizedState:u,baseState:u,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:vs,lastRenderedState:u},next:null},s.memoizedState=i,s=s.alternate,s!==null&&(s.memoizedState=i),i}function O4(s){var i=z4(s);i.next===null&&(i=s.alternate.memoizedState),kc(s,i.next.queue,{},sa())}function df(){return cr(Hc)}function R4(){return On().memoizedState}function B4(){return On().memoizedState}function Nk(s){for(var i=s.return;i!==null;){switch(i.tag){case 24:case 3:var u=sa();s=Js(u);var h=el(i,s,u);h!==null&&(Fr(h,i,u),bc(h,i,u)),i={cache:Fh()},s.payload=i;return}i=i.return}}function Sk(s,i,u){var h=sa();u={lane:h,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null},Bd(s)?P4(i,u):(u=_h(s,i,u,h),u!==null&&(Fr(u,s,h),F4(u,i,h)))}function L4(s,i,u){var h=sa();kc(s,i,u,h)}function kc(s,i,u,h){var g={lane:h,revertLane:0,gesture:null,action:u,hasEagerState:!1,eagerState:null,next:null};if(Bd(s))P4(i,g);else{var v=s.alternate;if(s.lanes===0&&(v===null||v.lanes===0)&&(v=i.lastRenderedReducer,v!==null))try{var T=i.lastRenderedState,B=v(T,u);if(g.hasEagerState=!0,g.eagerState=B,Jr(B,T))return xd(s,i,g,0),mn===null&&pd(),!1}catch{}finally{}if(u=_h(s,i,g,h),u!==null)return Fr(u,s,h),F4(u,i,h),!0}return!1}function mf(s,i,u,h){if(h={lane:2,revertLane:$f(),gesture:null,action:h,hasEagerState:!1,eagerState:null,next:null},Bd(s)){if(i)throw Error(a(479))}else i=_h(s,u,h,2),i!==null&&Fr(i,s,2)}function Bd(s){var i=s.alternate;return s===ht||i!==null&&i===ht}function P4(s,i){eo=Md=!0;var u=s.pending;u===null?i.next=i:(i.next=u.next,u.next=i),s.pending=i}function F4(s,i,u){if((u&4194048)!==0){var h=i.lanes;h&=s.pendingLanes,u|=h,i.lanes=u,$g(s,u)}}var Cc={readContext:cr,use:Dd,useCallback:En,useContext:En,useEffect:En,useImperativeHandle:En,useLayoutEffect:En,useInsertionEffect:En,useMemo:En,useReducer:En,useRef:En,useState:En,useDebugValue:En,useDeferredValue:En,useTransition:En,useSyncExternalStore:En,useId:En,useHostTransitionStatus:En,useFormState:En,useActionState:En,useOptimistic:En,useMemoCache:En,useCacheRefresh:En};Cc.useEffectEvent=En;var I4={readContext:cr,use:Dd,useCallback:function(s,i){return kr().memoizedState=[s,i===void 0?null:i],s},useContext:cr,useEffect:N4,useImperativeHandle:function(s,i,u){u=u!=null?u.concat([s]):null,Od(4194308,4,T4.bind(null,i,s),u)},useLayoutEffect:function(s,i){return Od(4194308,4,s,i)},useInsertionEffect:function(s,i){Od(4,2,s,i)},useMemo:function(s,i){var u=kr();i=i===void 0?null:i;var h=s();if(Jl){dt(!0);try{s()}finally{dt(!1)}}return u.memoizedState=[h,i],h},useReducer:function(s,i,u){var h=kr();if(u!==void 0){var g=u(i);if(Jl){dt(!0);try{u(i)}finally{dt(!1)}}}else g=i;return h.memoizedState=h.baseState=g,s={pending:null,lanes:0,dispatch:null,lastRenderedReducer:s,lastRenderedState:g},h.queue=s,s=s.dispatch=Sk.bind(null,ht,s),[h.memoizedState,s]},useRef:function(s){var i=kr();return s={current:s},i.memoizedState=s},useState:function(s){s=af(s);var i=s.queue,u=L4.bind(null,ht,i);return i.dispatch=u,[s.memoizedState,u]},useDebugValue:of,useDeferredValue:function(s,i){var u=kr();return cf(u,s,i)},useTransition:function(){var s=af(!1);return s=D4.bind(null,ht,s.queue,!0,!1),kr().memoizedState=s,[!1,s]},useSyncExternalStore:function(s,i,u){var h=ht,g=kr();if(zt){if(u===void 0)throw Error(a(407));u=u()}else{if(u=i(),mn===null)throw Error(a(349));(At&127)!==0||i4(h,i,u)}g.memoizedState=u;var v={value:u,getSnapshot:i};return g.queue=v,N4(c4.bind(null,h,v,s),[s]),h.flags|=2048,no(9,{destroy:void 0},o4.bind(null,h,v,u,i),null),u},useId:function(){var s=kr(),i=mn.identifierPrefix;if(zt){var u=Va,h=$a;u=(h&~(1<<32-mt(h)-1)).toString(32)+u,i="_"+i+"R_"+u,u=Ed++,0<\/script>",v=v.removeChild(v.firstChild);break;case"select":v=typeof h.is=="string"?T.createElement("select",{is:h.is}):T.createElement("select"),h.multiple?v.multiple=!0:h.size&&(v.size=h.size);break;default:v=typeof h.is=="string"?T.createElement(g,{is:h.is}):T.createElement(g)}}v[ir]=i,v[zr]=h;e:for(T=i.child;T!==null;){if(T.tag===5||T.tag===6)v.appendChild(T.stateNode);else if(T.tag!==4&&T.tag!==27&&T.child!==null){T.child.return=T,T=T.child;continue}if(T===i)break e;for(;T.sibling===null;){if(T.return===null||T.return===i)break e;T=T.return}T.sibling.return=T.return,T=T.sibling}i.stateNode=v;e:switch(dr(v,g,h),g){case"button":case"input":case"select":case"textarea":h=!!h.autoFocus;break e;case"img":h=!0;break e;default:h=!1}h&&bs(i)}}return wn(i),Cf(i,i.type,s===null?null:s.memoizedProps,i.pendingProps,u),null;case 6:if(s&&i.stateNode!=null)s.memoizedProps!==h&&bs(i);else{if(typeof h!="string"&&i.stateNode===null)throw Error(a(166));if(s=Ce.current,Yi(i)){if(s=i.stateNode,u=i.memoizedProps,h=null,g=or,g!==null)switch(g.tag){case 27:case 5:h=g.memoizedProps}s[ir]=i,s=!!(s.nodeValue===u||h!==null&&h.suppressHydrationWarning===!0||sy(s.nodeValue,u)),s||Ks(i,!0)}else s=n0(s).createTextNode(h),s[ir]=i,i.stateNode=s}return wn(i),null;case 31:if(u=i.memoizedState,s===null||s.memoizedState!==null){if(h=Yi(i),u!==null){if(s===null){if(!h)throw Error(a(318));if(s=i.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(a(557));s[ir]=i}else Gl(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;wn(i),s=!1}else u=Rh(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=u),s=!0;if(!s)return i.flags&256?(na(i),i):(na(i),null);if((i.flags&128)!==0)throw Error(a(558))}return wn(i),null;case 13:if(h=i.memoizedState,s===null||s.memoizedState!==null&&s.memoizedState.dehydrated!==null){if(g=Yi(i),h!==null&&h.dehydrated!==null){if(s===null){if(!g)throw Error(a(318));if(g=i.memoizedState,g=g!==null?g.dehydrated:null,!g)throw Error(a(317));g[ir]=i}else Gl(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;wn(i),g=!1}else g=Rh(),s!==null&&s.memoizedState!==null&&(s.memoizedState.hydrationErrors=g),g=!0;if(!g)return i.flags&256?(na(i),i):(na(i),null)}return na(i),(i.flags&128)!==0?(i.lanes=u,i):(u=h!==null,s=s!==null&&s.memoizedState!==null,u&&(h=i.child,g=null,h.alternate!==null&&h.alternate.memoizedState!==null&&h.alternate.memoizedState.cachePool!==null&&(g=h.alternate.memoizedState.cachePool.pool),v=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(v=h.memoizedState.cachePool.pool),v!==g&&(h.flags|=2048)),u!==s&&u&&(i.child.flags|=8192),qd(i,i.updateQueue),wn(i),null);case 4:return ie(),s===null&&Wf(i.stateNode.containerInfo),wn(i),null;case 10:return xs(i.type),wn(i),null;case 19:if(Z(zn),h=i.memoizedState,h===null)return wn(i),null;if(g=(i.flags&128)!==0,v=h.rendering,v===null)if(g)_c(h,!1);else{if(An!==0||s!==null&&(s.flags&128)!==0)for(s=i.child;s!==null;){if(v=_d(s),v!==null){for(i.flags|=128,_c(h,!1),s=v.updateQueue,i.updateQueue=s,qd(i,s),i.subtreeFlags=0,s=u,u=i.child;u!==null;)Lv(u,s),u=u.sibling;return O(zn,zn.current&1|2),zt&&fs(i,h.treeForkCount),i.child}s=s.sibling}h.tail!==null&&Ue()>Gd&&(i.flags|=128,g=!0,_c(h,!1),i.lanes=4194304)}else{if(!g)if(s=_d(v),s!==null){if(i.flags|=128,g=!0,s=s.updateQueue,i.updateQueue=s,qd(i,s),_c(h,!0),h.tail===null&&h.tailMode==="hidden"&&!v.alternate&&!zt)return wn(i),null}else 2*Ue()-h.renderingStartTime>Gd&&u!==536870912&&(i.flags|=128,g=!0,_c(h,!1),i.lanes=4194304);h.isBackwards?(v.sibling=i.child,i.child=v):(s=h.last,s!==null?s.sibling=v:i.child=v,h.last=v)}return h.tail!==null?(s=h.tail,h.rendering=s,h.tail=s.sibling,h.renderingStartTime=Ue(),s.sibling=null,u=zn.current,O(zn,g?u&1|2:u&1),zt&&fs(i,h.treeForkCount),s):(wn(i),null);case 22:case 23:return na(i),Wh(),h=i.memoizedState!==null,s!==null?s.memoizedState!==null!==h&&(i.flags|=8192):h&&(i.flags|=8192),h?(u&536870912)!==0&&(i.flags&128)===0&&(wn(i),i.subtreeFlags&6&&(i.flags|=8192)):wn(i),u=i.updateQueue,u!==null&&qd(i,u.retryQueue),u=null,s!==null&&s.memoizedState!==null&&s.memoizedState.cachePool!==null&&(u=s.memoizedState.cachePool.pool),h=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(h=i.memoizedState.cachePool.pool),h!==u&&(i.flags|=2048),s!==null&&Z(Xl),null;case 24:return u=null,s!==null&&(u=s.memoizedState.cache),i.memoizedState.cache!==u&&(i.flags|=2048),xs(Pn),wn(i),null;case 25:return null;case 30:return null}throw Error(a(156,i.tag))}function Mk(s,i){switch(zh(i),i.tag){case 1:return s=i.flags,s&65536?(i.flags=s&-65537|128,i):null;case 3:return xs(Pn),ie(),s=i.flags,(s&65536)!==0&&(s&128)===0?(i.flags=s&-65537|128,i):null;case 26:case 27:case 5:return lt(i),null;case 31:if(i.memoizedState!==null){if(na(i),i.alternate===null)throw Error(a(340));Gl()}return s=i.flags,s&65536?(i.flags=s&-65537|128,i):null;case 13:if(na(i),s=i.memoizedState,s!==null&&s.dehydrated!==null){if(i.alternate===null)throw Error(a(340));Gl()}return s=i.flags,s&65536?(i.flags=s&-65537|128,i):null;case 19:return Z(zn),null;case 4:return ie(),null;case 10:return xs(i.type),null;case 22:case 23:return na(i),Wh(),s!==null&&Z(Xl),s=i.flags,s&65536?(i.flags=s&-65537|128,i):null;case 24:return xs(Pn),null;case 25:return null;default:return null}}function u2(s,i){switch(zh(i),i.tag){case 3:xs(Pn),ie();break;case 26:case 27:case 5:lt(i);break;case 4:ie();break;case 31:i.memoizedState!==null&&na(i);break;case 13:na(i);break;case 19:Z(zn);break;case 10:xs(i.type);break;case 22:case 23:na(i),Wh(),s!==null&&Z(Xl);break;case 24:xs(Pn)}}function Mc(s,i){try{var u=i.updateQueue,h=u!==null?u.lastEffect:null;if(h!==null){var g=h.next;u=g;do{if((u.tag&s)===s){h=void 0;var v=u.create,T=u.inst;h=v(),T.destroy=h}u=u.next}while(u!==g)}}catch(B){Yt(i,i.return,B)}}function rl(s,i,u){try{var h=i.updateQueue,g=h!==null?h.lastEffect:null;if(g!==null){var v=g.next;h=v;do{if((h.tag&s)===s){var T=h.inst,B=T.destroy;if(B!==void 0){T.destroy=void 0,g=i;var X=u,de=B;try{de()}catch(be){Yt(g,X,be)}}}h=h.next}while(h!==v)}}catch(be){Yt(i,i.return,be)}}function d2(s){var i=s.updateQueue;if(i!==null){var u=s.stateNode;try{t4(i,u)}catch(h){Yt(s,s.return,h)}}}function m2(s,i,u){u.props=ei(s.type,s.memoizedProps),u.state=s.memoizedState;try{u.componentWillUnmount()}catch(h){Yt(s,i,h)}}function Ec(s,i){try{var u=s.ref;if(u!==null){switch(s.tag){case 26:case 27:case 5:var h=s.stateNode;break;case 30:h=s.stateNode;break;default:h=s.stateNode}typeof u=="function"?s.refCleanup=u(h):u.current=h}}catch(g){Yt(s,i,g)}}function Ga(s,i){var u=s.ref,h=s.refCleanup;if(u!==null)if(typeof h=="function")try{h()}catch(g){Yt(s,i,g)}finally{s.refCleanup=null,s=s.alternate,s!=null&&(s.refCleanup=null)}else if(typeof u=="function")try{u(null)}catch(g){Yt(s,i,g)}else u.current=null}function h2(s){var i=s.type,u=s.memoizedProps,h=s.stateNode;try{e:switch(i){case"button":case"input":case"select":case"textarea":u.autoFocus&&h.focus();break e;case"img":u.src?h.src=u.src:u.srcSet&&(h.srcset=u.srcSet)}}catch(g){Yt(s,s.return,g)}}function Tf(s,i,u){try{var h=s.stateNode;Qk(h,s.type,u,i),h[zr]=i}catch(g){Yt(s,s.return,g)}}function f2(s){return s.tag===5||s.tag===3||s.tag===26||s.tag===27&&ul(s.type)||s.tag===4}function _f(s){e:for(;;){for(;s.sibling===null;){if(s.return===null||f2(s.return))return null;s=s.return}for(s.sibling.return=s.return,s=s.sibling;s.tag!==5&&s.tag!==6&&s.tag!==18;){if(s.tag===27&&ul(s.type)||s.flags&2||s.child===null||s.tag===4)continue e;s.child.return=s,s=s.child}if(!(s.flags&2))return s.stateNode}}function Mf(s,i,u){var h=s.tag;if(h===5||h===6)s=s.stateNode,i?(u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u).insertBefore(s,i):(i=u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u,i.appendChild(s),u=u._reactRootContainer,u!=null||i.onclick!==null||(i.onclick=ds));else if(h!==4&&(h===27&&ul(s.type)&&(u=s.stateNode,i=null),s=s.child,s!==null))for(Mf(s,i,u),s=s.sibling;s!==null;)Mf(s,i,u),s=s.sibling}function Hd(s,i,u){var h=s.tag;if(h===5||h===6)s=s.stateNode,i?u.insertBefore(s,i):u.appendChild(s);else if(h!==4&&(h===27&&ul(s.type)&&(u=s.stateNode),s=s.child,s!==null))for(Hd(s,i,u),s=s.sibling;s!==null;)Hd(s,i,u),s=s.sibling}function p2(s){var i=s.stateNode,u=s.memoizedProps;try{for(var h=s.type,g=i.attributes;g.length;)i.removeAttributeNode(g[0]);dr(i,h,u),i[ir]=s,i[zr]=u}catch(v){Yt(s,s.return,v)}}var ws=!1,qn=!1,Ef=!1,x2=typeof WeakSet=="function"?WeakSet:Set,er=null;function Ek(s,i){if(s=s.containerInfo,Qf=c0,s=_v(s),jh(s)){if("selectionStart"in s)var u={start:s.selectionStart,end:s.selectionEnd};else e:{u=(u=s.ownerDocument)&&u.defaultView||window;var h=u.getSelection&&u.getSelection();if(h&&h.rangeCount!==0){u=h.anchorNode;var g=h.anchorOffset,v=h.focusNode;h=h.focusOffset;try{u.nodeType,v.nodeType}catch{u=null;break e}var T=0,B=-1,X=-1,de=0,be=0,ke=s,fe=null;t:for(;;){for(var xe;ke!==u||g!==0&&ke.nodeType!==3||(B=T+g),ke!==v||h!==0&&ke.nodeType!==3||(X=T+h),ke.nodeType===3&&(T+=ke.nodeValue.length),(xe=ke.firstChild)!==null;)fe=ke,ke=xe;for(;;){if(ke===s)break t;if(fe===u&&++de===g&&(B=T),fe===v&&++be===h&&(X=T),(xe=ke.nextSibling)!==null)break;ke=fe,fe=ke.parentNode}ke=xe}u=B===-1||X===-1?null:{start:B,end:X}}else u=null}u=u||{start:0,end:0}}else u=null;for(Zf={focusedElem:s,selectionRange:u},c0=!1,er=i;er!==null;)if(i=er,s=i.child,(i.subtreeFlags&1028)!==0&&s!==null)s.return=i,er=s;else for(;er!==null;){switch(i=er,v=i.alternate,s=i.flags,i.tag){case 0:if((s&4)!==0&&(s=i.updateQueue,s=s!==null?s.events:null,s!==null))for(u=0;u title"))),dr(v,h,u),v[ir]=s,Jn(v),h=v;break e;case"link":var T=jy("link","href",g).get(h+(u.href||""));if(T){for(var B=0;Bsn&&(T=sn,sn=rt,rt=T);var le=Cv(B,rt),ee=Cv(B,sn);if(le&&ee&&(xe.rangeCount!==1||xe.anchorNode!==le.node||xe.anchorOffset!==le.offset||xe.focusNode!==ee.node||xe.focusOffset!==ee.offset)){var ce=ke.createRange();ce.setStart(le.node,le.offset),xe.removeAllRanges(),rt>sn?(xe.addRange(ce),xe.extend(ee.node,ee.offset)):(ce.setEnd(ee.node,ee.offset),xe.addRange(ce))}}}}for(ke=[],xe=B;xe=xe.parentNode;)xe.nodeType===1&&ke.push({element:xe,left:xe.scrollLeft,top:xe.scrollTop});for(typeof B.focus=="function"&&B.focus(),B=0;Bu?32:u,U.T=null,u=Lf,Lf=null;var v=il,T=Cs;if(Yn=0,io=il=null,Cs=0,($t&6)!==0)throw Error(a(331));var B=$t;if($t|=4,T2(v.current),S2(v,v.current,T,u),$t=B,Bc(0,!1),Me&&typeof Me.onPostCommitFiberRoot=="function")try{Me.onPostCommitFiberRoot(he,v)}catch{}return!0}finally{q.p=g,U.T=h,V2(s,i)}}function Y2(s,i,u){i=ga(u,i),i=xf(s.stateNode,i,2),s=el(s,i,2),s!==null&&(nc(s,2),Ya(s))}function Yt(s,i,u){if(s.tag===3)Y2(s,s,u);else for(;i!==null;){if(i.tag===3){Y2(i,s,u);break}else if(i.tag===1){var h=i.stateNode;if(typeof i.type.getDerivedStateFromError=="function"||typeof h.componentDidCatch=="function"&&(ll===null||!ll.has(h))){s=ga(u,s),u=W4(2),h=el(i,u,2),h!==null&&(X4(u,h,i,s),nc(h,2),Ya(h));break}}i=i.return}}function qf(s,i,u){var h=s.pingCache;if(h===null){h=s.pingCache=new zk;var g=new Set;h.set(i,g)}else g=h.get(i),g===void 0&&(g=new Set,h.set(i,g));g.has(u)||(zf=!0,g.add(u),s=Pk.bind(null,s,i,u),i.then(s,s))}function Pk(s,i,u){var h=s.pingCache;h!==null&&h.delete(i),s.pingedLanes|=s.suspendedLanes&u,s.warmLanes&=~u,mn===s&&(At&u)===u&&(An===4||An===3&&(At&62914560)===At&&300>Ue()-Vd?($t&2)===0&&oo(s,0):Of|=u,lo===At&&(lo=0)),Ya(s)}function W2(s,i){i===0&&(i=Ei()),s=$l(s,i),s!==null&&(nc(s,i),Ya(s))}function Fk(s){var i=s.memoizedState,u=0;i!==null&&(u=i.retryLane),W2(s,u)}function Ik(s,i){var u=0;switch(s.tag){case 31:case 13:var h=s.stateNode,g=s.memoizedState;g!==null&&(u=g.retryLane);break;case 19:h=s.stateNode;break;case 22:h=s.stateNode._retryCache;break;default:throw Error(a(314))}h!==null&&h.delete(i),W2(s,u)}function qk(s,i){return Sr(s,i)}var Zd=null,uo=null,Hf=!1,Jd=!1,Uf=!1,cl=0;function Ya(s){s!==uo&&s.next===null&&(uo===null?Zd=uo=s:uo=uo.next=s),Jd=!0,Hf||(Hf=!0,Uk())}function Bc(s,i){if(!Uf&&Jd){Uf=!0;do for(var u=!1,h=Zd;h!==null;){if(s!==0){var g=h.pendingLanes;if(g===0)var v=0;else{var T=h.suspendedLanes,B=h.pingedLanes;v=(1<<31-mt(42|s)+1)-1,v&=g&~(T&~B),v=v&201326741?v&201326741|1:v?v|2:0}v!==0&&(u=!0,Z2(h,v))}else v=At,v=Mi(h,h===mn?v:0,h.cancelPendingCommit!==null||h.timeoutHandle!==-1),(v&3)===0||Pl(h,v)||(u=!0,Z2(h,v));h=h.next}while(u);Uf=!1}}function Hk(){X2()}function X2(){Jd=Hf=!1;var s=0;cl!==0&&Jk()&&(s=cl);for(var i=Ue(),u=null,h=Zd;h!==null;){var g=h.next,v=K2(h,i);v===0?(h.next=null,u===null?Zd=g:u.next=g,g===null&&(uo=u)):(u=h,(s!==0||(v&3)!==0)&&(Jd=!0)),h=g}Yn!==0&&Yn!==5||Bc(s),cl!==0&&(cl=0)}function K2(s,i){for(var u=s.suspendedLanes,h=s.pingedLanes,g=s.expirationTimes,v=s.pendingLanes&-62914561;0B)break;var be=X.transferSize,ke=X.initiatorType;be&&ly(ke)&&(X=X.responseEnd,T+=be*(X"u"?null:document;function vy(s,i,u){var h=mo;if(h&&typeof i=="string"&&i){var g=pa(i);g='link[rel="'+s+'"][href="'+g+'"]',typeof u=="string"&&(g+='[crossorigin="'+u+'"]'),gy.has(g)||(gy.add(g),s={rel:s,crossOrigin:u,href:i},h.querySelector(g)===null&&(i=h.createElement("link"),dr(i,"link",s),Jn(i),h.head.appendChild(i)))}}function oC(s){Ts.D(s),vy("dns-prefetch",s,null)}function cC(s,i){Ts.C(s,i),vy("preconnect",s,i)}function uC(s,i,u){Ts.L(s,i,u);var h=mo;if(h&&s&&i){var g='link[rel="preload"][as="'+pa(i)+'"]';i==="image"&&u&&u.imageSrcSet?(g+='[imagesrcset="'+pa(u.imageSrcSet)+'"]',typeof u.imageSizes=="string"&&(g+='[imagesizes="'+pa(u.imageSizes)+'"]')):g+='[href="'+pa(s)+'"]';var v=g;switch(i){case"style":v=ho(s);break;case"script":v=fo(s)}Na.has(v)||(s=x({rel:"preload",href:i==="image"&&u&&u.imageSrcSet?void 0:s,as:i},u),Na.set(v,s),h.querySelector(g)!==null||i==="style"&&h.querySelector(Ic(v))||i==="script"&&h.querySelector(qc(v))||(i=h.createElement("link"),dr(i,"link",s),Jn(i),h.head.appendChild(i)))}}function dC(s,i){Ts.m(s,i);var u=mo;if(u&&s){var h=i&&typeof i.as=="string"?i.as:"script",g='link[rel="modulepreload"][as="'+pa(h)+'"][href="'+pa(s)+'"]',v=g;switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":v=fo(s)}if(!Na.has(v)&&(s=x({rel:"modulepreload",href:s},i),Na.set(v,s),u.querySelector(g)===null)){switch(h){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(u.querySelector(qc(v)))return}h=u.createElement("link"),dr(h,"link",s),Jn(h),u.head.appendChild(h)}}}function mC(s,i,u){Ts.S(s,i,u);var h=mo;if(h&&s){var g=Oi(h).hoistableStyles,v=ho(s);i=i||"default";var T=g.get(v);if(!T){var B={loading:0,preload:null};if(T=h.querySelector(Ic(v)))B.loading=5;else{s=x({rel:"stylesheet",href:s,"data-precedence":i},u),(u=Na.get(v))&&sp(s,u);var X=T=h.createElement("link");Jn(X),dr(X,"link",s),X._p=new Promise(function(de,be){X.onload=de,X.onerror=be}),X.addEventListener("load",function(){B.loading|=1}),X.addEventListener("error",function(){B.loading|=2}),B.loading|=4,a0(T,i,h)}T={type:"stylesheet",instance:T,count:1,state:B},g.set(v,T)}}}function hC(s,i){Ts.X(s,i);var u=mo;if(u&&s){var h=Oi(u).hoistableScripts,g=fo(s),v=h.get(g);v||(v=u.querySelector(qc(g)),v||(s=x({src:s,async:!0},i),(i=Na.get(g))&&lp(s,i),v=u.createElement("script"),Jn(v),dr(v,"link",s),u.head.appendChild(v)),v={type:"script",instance:v,count:1,state:null},h.set(g,v))}}function fC(s,i){Ts.M(s,i);var u=mo;if(u&&s){var h=Oi(u).hoistableScripts,g=fo(s),v=h.get(g);v||(v=u.querySelector(qc(g)),v||(s=x({src:s,async:!0,type:"module"},i),(i=Na.get(g))&&lp(s,i),v=u.createElement("script"),Jn(v),dr(v,"link",s),u.head.appendChild(v)),v={type:"script",instance:v,count:1,state:null},h.set(g,v))}}function yy(s,i,u,h){var g=(g=Ce.current)?r0(g):null;if(!g)throw Error(a(446));switch(s){case"meta":case"title":return null;case"style":return typeof u.precedence=="string"&&typeof u.href=="string"?(i=ho(u.href),u=Oi(g).hoistableStyles,h=u.get(i),h||(h={type:"style",instance:null,count:0,state:null},u.set(i,h)),h):{type:"void",instance:null,count:0,state:null};case"link":if(u.rel==="stylesheet"&&typeof u.href=="string"&&typeof u.precedence=="string"){s=ho(u.href);var v=Oi(g).hoistableStyles,T=v.get(s);if(T||(g=g.ownerDocument||g,T={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},v.set(s,T),(v=g.querySelector(Ic(s)))&&!v._p&&(T.instance=v,T.state.loading=5),Na.has(s)||(u={rel:"preload",as:"style",href:u.href,crossOrigin:u.crossOrigin,integrity:u.integrity,media:u.media,hrefLang:u.hrefLang,referrerPolicy:u.referrerPolicy},Na.set(s,u),v||pC(g,s,u,T.state))),i&&h===null)throw Error(a(528,""));return T}if(i&&h!==null)throw Error(a(529,""));return null;case"script":return i=u.async,u=u.src,typeof u=="string"&&i&&typeof i!="function"&&typeof i!="symbol"?(i=fo(u),u=Oi(g).hoistableScripts,h=u.get(i),h||(h={type:"script",instance:null,count:0,state:null},u.set(i,h)),h):{type:"void",instance:null,count:0,state:null};default:throw Error(a(444,s))}}function ho(s){return'href="'+pa(s)+'"'}function Ic(s){return'link[rel="stylesheet"]['+s+"]"}function by(s){return x({},s,{"data-precedence":s.precedence,precedence:null})}function pC(s,i,u,h){s.querySelector('link[rel="preload"][as="style"]['+i+"]")?h.loading=1:(i=s.createElement("link"),h.preload=i,i.addEventListener("load",function(){return h.loading|=1}),i.addEventListener("error",function(){return h.loading|=2}),dr(i,"link",u),Jn(i),s.head.appendChild(i))}function fo(s){return'[src="'+pa(s)+'"]'}function qc(s){return"script[async]"+s}function wy(s,i,u){if(i.count++,i.instance===null)switch(i.type){case"style":var h=s.querySelector('style[data-href~="'+pa(u.href)+'"]');if(h)return i.instance=h,Jn(h),h;var g=x({},u,{"data-href":u.href,"data-precedence":u.precedence,href:null,precedence:null});return h=(s.ownerDocument||s).createElement("style"),Jn(h),dr(h,"style",g),a0(h,u.precedence,s),i.instance=h;case"stylesheet":g=ho(u.href);var v=s.querySelector(Ic(g));if(v)return i.state.loading|=4,i.instance=v,Jn(v),v;h=by(u),(g=Na.get(g))&&sp(h,g),v=(s.ownerDocument||s).createElement("link"),Jn(v);var T=v;return T._p=new Promise(function(B,X){T.onload=B,T.onerror=X}),dr(v,"link",h),i.state.loading|=4,a0(v,u.precedence,s),i.instance=v;case"script":return v=fo(u.src),(g=s.querySelector(qc(v)))?(i.instance=g,Jn(g),g):(h=u,(g=Na.get(v))&&(h=x({},u),lp(h,g)),s=s.ownerDocument||s,g=s.createElement("script"),Jn(g),dr(g,"link",h),s.head.appendChild(g),i.instance=g);case"void":return null;default:throw Error(a(443,i.type))}else i.type==="stylesheet"&&(i.state.loading&4)===0&&(h=i.instance,i.state.loading|=4,a0(h,u.precedence,s));return i.instance}function a0(s,i,u){for(var h=u.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),g=h.length?h[h.length-1]:null,v=g,T=0;T title"):null)}function xC(s,i,u){if(u===1||i.itemProp!=null)return!1;switch(s){case"meta":case"title":return!0;case"style":if(typeof i.precedence!="string"||typeof i.href!="string"||i.href==="")break;return!0;case"link":if(typeof i.rel!="string"||typeof i.href!="string"||i.href===""||i.onLoad||i.onError)break;switch(i.rel){case"stylesheet":return s=i.disabled,typeof i.precedence=="string"&&s==null;default:return!0}case"script":if(i.async&&typeof i.async!="function"&&typeof i.async!="symbol"&&!i.onLoad&&!i.onError&&i.src&&typeof i.src=="string")return!0}return!1}function Sy(s){return!(s.type==="stylesheet"&&(s.state.loading&3)===0)}function gC(s,i,u,h){if(u.type==="stylesheet"&&(typeof h.media!="string"||matchMedia(h.media).matches!==!1)&&(u.state.loading&4)===0){if(u.instance===null){var g=ho(h.href),v=i.querySelector(Ic(g));if(v){i=v._p,i!==null&&typeof i=="object"&&typeof i.then=="function"&&(s.count++,s=l0.bind(s),i.then(s,s)),u.state.loading|=4,u.instance=v,Jn(v);return}v=i.ownerDocument||i,h=by(h),(g=Na.get(g))&&sp(h,g),v=v.createElement("link"),Jn(v);var T=v;T._p=new Promise(function(B,X){T.onload=B,T.onerror=X}),dr(v,"link",h),u.instance=v}s.stylesheets===null&&(s.stylesheets=new Map),s.stylesheets.set(u,i),(i=u.state.preload)&&(u.state.loading&3)===0&&(s.count++,u=l0.bind(s),i.addEventListener("load",u),i.addEventListener("error",u))}}var ip=0;function vC(s,i){return s.stylesheets&&s.count===0&&o0(s,s.stylesheets),0ip?50:800)+i);return s.unsuspend=u,function(){s.unsuspend=null,clearTimeout(h),clearTimeout(g)}}:null}function l0(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)o0(this,this.stylesheets);else if(this.unsuspend){var s=this.unsuspend;this.unsuspend=null,s()}}}var i0=null;function o0(s,i){s.stylesheets=null,s.unsuspend!==null&&(s.count++,i0=new Map,i.forEach(yC,s),i0=null,l0.call(s))}function yC(s,i){if(!(i.state.loading&4)){var u=i0.get(s);if(u)var h=u.get(null);else{u=new Map,i0.set(s,u);for(var g=s.querySelectorAll("link[data-precedence],style[data-precedence]"),v=0;v"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),pp.exports=ET(),pp.exports}var DT=AT();function r6(e,t){return function(){return e.apply(t,arguments)}}const{toString:zT}=Object.prototype,{getPrototypeOf:w1}=Object,{iterator:Sm,toStringTag:a6}=Symbol,km=(e=>t=>{const n=zT.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ua=e=>(e=e.toLowerCase(),t=>km(t)===e),Cm=e=>t=>typeof t===e,{isArray:$o}=Array,Lo=Cm("undefined");function Du(e){return e!==null&&!Lo(e)&&e.constructor!==null&&!Lo(e.constructor)&&$r(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const s6=Ua("ArrayBuffer");function OT(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&s6(e.buffer),t}const RT=Cm("string"),$r=Cm("function"),l6=Cm("number"),zu=e=>e!==null&&typeof e=="object",BT=e=>e===!0||e===!1,q0=e=>{if(km(e)!=="object")return!1;const t=w1(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(a6 in e)&&!(Sm in e)},LT=e=>{if(!zu(e)||Du(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},PT=Ua("Date"),FT=Ua("File"),IT=Ua("Blob"),qT=Ua("FileList"),HT=e=>zu(e)&&$r(e.pipe),UT=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||$r(e.append)&&((t=km(e))==="formdata"||t==="object"&&$r(e.toString)&&e.toString()==="[object FormData]"))},$T=Ua("URLSearchParams"),[VT,GT,YT,WT]=["ReadableStream","Request","Response","Headers"].map(Ua),XT=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Ou(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let a,l;if(typeof e!="object"&&(e=[e]),$o(e))for(a=0,l=e.length;a0;)if(l=n[a],t===l.toLowerCase())return l;return null}const oi=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,o6=e=>!Lo(e)&&e!==oi;function bx(){const{caseless:e,skipUndefined:t}=o6(this)&&this||{},n={},a=(l,o)=>{const c=e&&i6(n,o)||o;q0(n[c])&&q0(l)?n[c]=bx(n[c],l):q0(l)?n[c]=bx({},l):$o(l)?n[c]=l.slice():(!t||!Lo(l))&&(n[c]=l)};for(let l=0,o=arguments.length;l(Ou(t,(l,o)=>{n&&$r(l)?e[o]=r6(l,n):e[o]=l},{allOwnKeys:a}),e),QT=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),ZT=(e,t,n,a)=>{e.prototype=Object.create(t.prototype,a),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},JT=(e,t,n,a)=>{let l,o,c;const d={};if(t=t||{},e==null)return t;do{for(l=Object.getOwnPropertyNames(e),o=l.length;o-- >0;)c=l[o],(!a||a(c,e,t))&&!d[c]&&(t[c]=e[c],d[c]=!0);e=n!==!1&&w1(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},e_=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const a=e.indexOf(t,n);return a!==-1&&a===n},t_=e=>{if(!e)return null;if($o(e))return e;let t=e.length;if(!l6(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},n_=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&w1(Uint8Array)),r_=(e,t)=>{const a=(e&&e[Sm]).call(e);let l;for(;(l=a.next())&&!l.done;){const o=l.value;t.call(e,o[0],o[1])}},a_=(e,t)=>{let n;const a=[];for(;(n=e.exec(t))!==null;)a.push(n);return a},s_=Ua("HTMLFormElement"),l_=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,a,l){return a.toUpperCase()+l}),Wy=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),i_=Ua("RegExp"),c6=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),a={};Ou(n,(l,o)=>{let c;(c=t(l,o,e))!==!1&&(a[o]=c||l)}),Object.defineProperties(e,a)},o_=e=>{c6(e,(t,n)=>{if($r(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const a=e[n];if($r(a)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},c_=(e,t)=>{const n={},a=l=>{l.forEach(o=>{n[o]=!0})};return $o(e)?a(e):a(String(e).split(t)),n},u_=()=>{},d_=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function m_(e){return!!(e&&$r(e.append)&&e[a6]==="FormData"&&e[Sm])}const h_=e=>{const t=new Array(10),n=(a,l)=>{if(zu(a)){if(t.indexOf(a)>=0)return;if(Du(a))return a;if(!("toJSON"in a)){t[l]=a;const o=$o(a)?[]:{};return Ou(a,(c,d)=>{const m=n(c,l+1);!Lo(m)&&(o[d]=m)}),t[l]=void 0,o}}return a};return n(e,0)},f_=Ua("AsyncFunction"),p_=e=>e&&(zu(e)||$r(e))&&$r(e.then)&&$r(e.catch),u6=((e,t)=>e?setImmediate:t?((n,a)=>(oi.addEventListener("message",({source:l,data:o})=>{l===oi&&o===n&&a.length&&a.shift()()},!1),l=>{a.push(l),oi.postMessage(n,"*")}))(`axios@${Math.random()}`,[]):n=>setTimeout(n))(typeof setImmediate=="function",$r(oi.postMessage)),x_=typeof queueMicrotask<"u"?queueMicrotask.bind(oi):typeof process<"u"&&process.nextTick||u6,g_=e=>e!=null&&$r(e[Sm]),pe={isArray:$o,isArrayBuffer:s6,isBuffer:Du,isFormData:UT,isArrayBufferView:OT,isString:RT,isNumber:l6,isBoolean:BT,isObject:zu,isPlainObject:q0,isEmptyObject:LT,isReadableStream:VT,isRequest:GT,isResponse:YT,isHeaders:WT,isUndefined:Lo,isDate:PT,isFile:FT,isBlob:IT,isRegExp:i_,isFunction:$r,isStream:HT,isURLSearchParams:$T,isTypedArray:n_,isFileList:qT,forEach:Ou,merge:bx,extend:KT,trim:XT,stripBOM:QT,inherits:ZT,toFlatObject:JT,kindOf:km,kindOfTest:Ua,endsWith:e_,toArray:t_,forEachEntry:r_,matchAll:a_,isHTMLForm:s_,hasOwnProperty:Wy,hasOwnProp:Wy,reduceDescriptors:c6,freezeMethods:o_,toObjectSet:c_,toCamelCase:l_,noop:u_,toFiniteNumber:d_,findKey:i6,global:oi,isContextDefined:o6,isSpecCompliantForm:m_,toJSONObject:h_,isAsyncFn:f_,isThenable:p_,setImmediate:u6,asap:x_,isIterable:g_};function ft(e,t,n,a,l){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),a&&(this.request=a),l&&(this.response=l,this.status=l.status?l.status:null)}pe.inherits(ft,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:pe.toJSONObject(this.config),code:this.code,status:this.status}}});const d6=ft.prototype,m6={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{m6[e]={value:e}});Object.defineProperties(ft,m6);Object.defineProperty(d6,"isAxiosError",{value:!0});ft.from=(e,t,n,a,l,o)=>{const c=Object.create(d6);pe.toFlatObject(e,c,function(p){return p!==Error.prototype},f=>f!=="isAxiosError");const d=e&&e.message?e.message:"Error",m=t==null&&e?e.code:t;return ft.call(c,d,m,n,a,l),e&&c.cause==null&&Object.defineProperty(c,"cause",{value:e,configurable:!0}),c.name=e&&e.name||"Error",o&&Object.assign(c,o),c};const v_=null;function wx(e){return pe.isPlainObject(e)||pe.isArray(e)}function h6(e){return pe.endsWith(e,"[]")?e.slice(0,-2):e}function Xy(e,t,n){return e?e.concat(t).map(function(l,o){return l=h6(l),!n&&o?"["+l+"]":l}).join(n?".":""):t}function y_(e){return pe.isArray(e)&&!e.some(wx)}const b_=pe.toFlatObject(pe,{},null,function(t){return/^is[A-Z]/.test(t)});function Tm(e,t,n){if(!pe.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=pe.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(k,S){return!pe.isUndefined(S[k])});const a=n.metaTokens,l=n.visitor||p,o=n.dots,c=n.indexes,m=(n.Blob||typeof Blob<"u"&&Blob)&&pe.isSpecCompliantForm(t);if(!pe.isFunction(l))throw new TypeError("visitor must be a function");function f(j){if(j===null)return"";if(pe.isDate(j))return j.toISOString();if(pe.isBoolean(j))return j.toString();if(!m&&pe.isBlob(j))throw new ft("Blob is not supported. Use a Buffer instead.");return pe.isArrayBuffer(j)||pe.isTypedArray(j)?m&&typeof Blob=="function"?new Blob([j]):Buffer.from(j):j}function p(j,k,S){let _=j;if(j&&!S&&typeof j=="object"){if(pe.endsWith(k,"{}"))k=a?k:k.slice(0,-2),j=JSON.stringify(j);else if(pe.isArray(j)&&y_(j)||(pe.isFileList(j)||pe.endsWith(k,"[]"))&&(_=pe.toArray(j)))return k=h6(k),_.forEach(function(D,z){!(pe.isUndefined(D)||D===null)&&t.append(c===!0?Xy([k],z,o):c===null?k:k+"[]",f(D))}),!1}return wx(j)?!0:(t.append(Xy(S,k,o),f(j)),!1)}const x=[],y=Object.assign(b_,{defaultVisitor:p,convertValue:f,isVisitable:wx});function b(j,k){if(!pe.isUndefined(j)){if(x.indexOf(j)!==-1)throw Error("Circular reference detected in "+k.join("."));x.push(j),pe.forEach(j,function(_,M){(!(pe.isUndefined(_)||_===null)&&l.call(t,_,pe.isString(M)?M.trim():M,k,y))===!0&&b(_,k?k.concat(M):[M])}),x.pop()}}if(!pe.isObject(e))throw new TypeError("data must be an object");return b(e),t}function Ky(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(a){return t[a]})}function j1(e,t){this._pairs=[],e&&Tm(e,this,t)}const f6=j1.prototype;f6.append=function(t,n){this._pairs.push([t,n])};f6.toString=function(t){const n=t?function(a){return t.call(this,a,Ky)}:Ky;return this._pairs.map(function(l){return n(l[0])+"="+n(l[1])},"").join("&")};function w_(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+")}function p6(e,t,n){if(!t)return e;const a=n&&n.encode||w_;pe.isFunction(n)&&(n={serialize:n});const l=n&&n.serialize;let o;if(l?o=l(t,n):o=pe.isURLSearchParams(t)?t.toString():new j1(t,n).toString(a),o){const c=e.indexOf("#");c!==-1&&(e=e.slice(0,c)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class Qy{constructor(){this.handlers=[]}use(t,n,a){return this.handlers.push({fulfilled:t,rejected:n,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){pe.forEach(this.handlers,function(a){a!==null&&t(a)})}}const x6={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},j_=typeof URLSearchParams<"u"?URLSearchParams:j1,N_=typeof FormData<"u"?FormData:null,S_=typeof Blob<"u"?Blob:null,k_={isBrowser:!0,classes:{URLSearchParams:j_,FormData:N_,Blob:S_},protocols:["http","https","file","blob","url","data"]},N1=typeof window<"u"&&typeof document<"u",jx=typeof navigator=="object"&&navigator||void 0,C_=N1&&(!jx||["ReactNative","NativeScript","NS"].indexOf(jx.product)<0),T_=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",__=N1&&window.location.href||"http://localhost",M_=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:N1,hasStandardBrowserEnv:C_,hasStandardBrowserWebWorkerEnv:T_,navigator:jx,origin:__},Symbol.toStringTag,{value:"Module"})),vr={...M_,...k_};function E_(e,t){return Tm(e,new vr.classes.URLSearchParams,{visitor:function(n,a,l,o){return vr.isNode&&pe.isBuffer(n)?(this.append(a,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)},...t})}function A_(e){return pe.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function D_(e){const t={},n=Object.keys(e);let a;const l=n.length;let o;for(a=0;a=n.length;return c=!c&&pe.isArray(l)?l.length:c,m?(pe.hasOwnProp(l,c)?l[c]=[l[c],a]:l[c]=a,!d):((!l[c]||!pe.isObject(l[c]))&&(l[c]=[]),t(n,a,l[c],o)&&pe.isArray(l[c])&&(l[c]=D_(l[c])),!d)}if(pe.isFormData(e)&&pe.isFunction(e.entries)){const n={};return pe.forEachEntry(e,(a,l)=>{t(A_(a),l,n,0)}),n}return null}function z_(e,t,n){if(pe.isString(e))try{return(t||JSON.parse)(e),pe.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(n||JSON.stringify)(e)}const Ru={transitional:x6,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const a=n.getContentType()||"",l=a.indexOf("application/json")>-1,o=pe.isObject(t);if(o&&pe.isHTMLForm(t)&&(t=new FormData(t)),pe.isFormData(t))return l?JSON.stringify(g6(t)):t;if(pe.isArrayBuffer(t)||pe.isBuffer(t)||pe.isStream(t)||pe.isFile(t)||pe.isBlob(t)||pe.isReadableStream(t))return t;if(pe.isArrayBufferView(t))return t.buffer;if(pe.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let d;if(o){if(a.indexOf("application/x-www-form-urlencoded")>-1)return E_(t,this.formSerializer).toString();if((d=pe.isFileList(t))||a.indexOf("multipart/form-data")>-1){const m=this.env&&this.env.FormData;return Tm(d?{"files[]":t}:t,m&&new m,this.formSerializer)}}return o||l?(n.setContentType("application/json",!1),z_(t)):t}],transformResponse:[function(t){const n=this.transitional||Ru.transitional,a=n&&n.forcedJSONParsing,l=this.responseType==="json";if(pe.isResponse(t)||pe.isReadableStream(t))return t;if(t&&pe.isString(t)&&(a&&!this.responseType||l)){const c=!(n&&n.silentJSONParsing)&&l;try{return JSON.parse(t,this.parseReviver)}catch(d){if(c)throw d.name==="SyntaxError"?ft.from(d,ft.ERR_BAD_RESPONSE,this,null,this.response):d}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:vr.classes.FormData,Blob:vr.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};pe.forEach(["delete","get","head","post","put","patch"],e=>{Ru.headers[e]={}});const O_=pe.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),R_=e=>{const t={};let n,a,l;return e&&e.split(` +`).forEach(function(c){l=c.indexOf(":"),n=c.substring(0,l).trim().toLowerCase(),a=c.substring(l+1).trim(),!(!n||t[n]&&O_[n])&&(n==="set-cookie"?t[n]?t[n].push(a):t[n]=[a]:t[n]=t[n]?t[n]+", "+a:a)}),t},Zy=Symbol("internals");function Wc(e){return e&&String(e).trim().toLowerCase()}function H0(e){return e===!1||e==null?e:pe.isArray(e)?e.map(H0):String(e)}function B_(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let a;for(;a=n.exec(e);)t[a[1]]=a[2];return t}const L_=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function vp(e,t,n,a,l){if(pe.isFunction(a))return a.call(this,t,n);if(l&&(t=n),!!pe.isString(t)){if(pe.isString(a))return t.indexOf(a)!==-1;if(pe.isRegExp(a))return a.test(t)}}function P_(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,a)=>n.toUpperCase()+a)}function F_(e,t){const n=pe.toCamelCase(" "+t);["get","set","has"].forEach(a=>{Object.defineProperty(e,a+n,{value:function(l,o,c){return this[a].call(this,t,l,o,c)},configurable:!0})})}let Vr=class{constructor(t){t&&this.set(t)}set(t,n,a){const l=this;function o(d,m,f){const p=Wc(m);if(!p)throw new Error("header name must be a non-empty string");const x=pe.findKey(l,p);(!x||l[x]===void 0||f===!0||f===void 0&&l[x]!==!1)&&(l[x||m]=H0(d))}const c=(d,m)=>pe.forEach(d,(f,p)=>o(f,p,m));if(pe.isPlainObject(t)||t instanceof this.constructor)c(t,n);else if(pe.isString(t)&&(t=t.trim())&&!L_(t))c(R_(t),n);else if(pe.isObject(t)&&pe.isIterable(t)){let d={},m,f;for(const p of t){if(!pe.isArray(p))throw TypeError("Object iterator must return a key-value pair");d[f=p[0]]=(m=d[f])?pe.isArray(m)?[...m,p[1]]:[m,p[1]]:p[1]}c(d,n)}else t!=null&&o(n,t,a);return this}get(t,n){if(t=Wc(t),t){const a=pe.findKey(this,t);if(a){const l=this[a];if(!n)return l;if(n===!0)return B_(l);if(pe.isFunction(n))return n.call(this,l,a);if(pe.isRegExp(n))return n.exec(l);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Wc(t),t){const a=pe.findKey(this,t);return!!(a&&this[a]!==void 0&&(!n||vp(this,this[a],a,n)))}return!1}delete(t,n){const a=this;let l=!1;function o(c){if(c=Wc(c),c){const d=pe.findKey(a,c);d&&(!n||vp(a,a[d],d,n))&&(delete a[d],l=!0)}}return pe.isArray(t)?t.forEach(o):o(t),l}clear(t){const n=Object.keys(this);let a=n.length,l=!1;for(;a--;){const o=n[a];(!t||vp(this,this[o],o,t,!0))&&(delete this[o],l=!0)}return l}normalize(t){const n=this,a={};return pe.forEach(this,(l,o)=>{const c=pe.findKey(a,o);if(c){n[c]=H0(l),delete n[o];return}const d=t?P_(o):String(o).trim();d!==o&&delete n[o],n[d]=H0(l),a[d]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return pe.forEach(this,(a,l)=>{a!=null&&a!==!1&&(n[l]=t&&pe.isArray(a)?a.join(", "):a)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const a=new this(t);return n.forEach(l=>a.set(l)),a}static accessor(t){const a=(this[Zy]=this[Zy]={accessors:{}}).accessors,l=this.prototype;function o(c){const d=Wc(c);a[d]||(F_(l,c),a[d]=!0)}return pe.isArray(t)?t.forEach(o):o(t),this}};Vr.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);pe.reduceDescriptors(Vr.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(a){this[n]=a}}});pe.freezeMethods(Vr);function yp(e,t){const n=this||Ru,a=t||n,l=Vr.from(a.headers);let o=a.data;return pe.forEach(e,function(d){o=d.call(n,o,l.normalize(),t?t.status:void 0)}),l.normalize(),o}function v6(e){return!!(e&&e.__CANCEL__)}function Vo(e,t,n){ft.call(this,e??"canceled",ft.ERR_CANCELED,t,n),this.name="CanceledError"}pe.inherits(Vo,ft,{__CANCEL__:!0});function y6(e,t,n){const a=n.config.validateStatus;!n.status||!a||a(n.status)?e(n):t(new ft("Request failed with status code "+n.status,[ft.ERR_BAD_REQUEST,ft.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function I_(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function q_(e,t){e=e||10;const n=new Array(e),a=new Array(e);let l=0,o=0,c;return t=t!==void 0?t:1e3,function(m){const f=Date.now(),p=a[o];c||(c=f),n[l]=m,a[l]=f;let x=o,y=0;for(;x!==l;)y+=n[x++],x=x%e;if(l=(l+1)%e,l===o&&(o=(o+1)%e),f-c{n=p,l=null,o&&(clearTimeout(o),o=null),e(...f)};return[(...f)=>{const p=Date.now(),x=p-n;x>=a?c(f,p):(l=f,o||(o=setTimeout(()=>{o=null,c(l)},a-x)))},()=>l&&c(l)]}const tm=(e,t,n=3)=>{let a=0;const l=q_(50,250);return H_(o=>{const c=o.loaded,d=o.lengthComputable?o.total:void 0,m=c-a,f=l(m),p=c<=d;a=c;const x={loaded:c,total:d,progress:d?c/d:void 0,bytes:m,rate:f||void 0,estimated:f&&d&&p?(d-c)/f:void 0,event:o,lengthComputable:d!=null,[t?"download":"upload"]:!0};e(x)},n)},Jy=(e,t)=>{const n=e!=null;return[a=>t[0]({lengthComputable:n,total:e,loaded:a}),t[1]]},eb=e=>(...t)=>pe.asap(()=>e(...t)),U_=vr.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,vr.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(vr.origin),vr.navigator&&/(msie|trident)/i.test(vr.navigator.userAgent)):()=>!0,$_=vr.hasStandardBrowserEnv?{write(e,t,n,a,l,o,c){if(typeof document>"u")return;const d=[`${e}=${encodeURIComponent(t)}`];pe.isNumber(n)&&d.push(`expires=${new Date(n).toUTCString()}`),pe.isString(a)&&d.push(`path=${a}`),pe.isString(l)&&d.push(`domain=${l}`),o===!0&&d.push("secure"),pe.isString(c)&&d.push(`SameSite=${c}`),document.cookie=d.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function V_(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function G_(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function b6(e,t,n){let a=!V_(t);return e&&(a||n==!1)?G_(e,t):t}const tb=e=>e instanceof Vr?{...e}:e;function pi(e,t){t=t||{};const n={};function a(f,p,x,y){return pe.isPlainObject(f)&&pe.isPlainObject(p)?pe.merge.call({caseless:y},f,p):pe.isPlainObject(p)?pe.merge({},p):pe.isArray(p)?p.slice():p}function l(f,p,x,y){if(pe.isUndefined(p)){if(!pe.isUndefined(f))return a(void 0,f,x,y)}else return a(f,p,x,y)}function o(f,p){if(!pe.isUndefined(p))return a(void 0,p)}function c(f,p){if(pe.isUndefined(p)){if(!pe.isUndefined(f))return a(void 0,f)}else return a(void 0,p)}function d(f,p,x){if(x in t)return a(f,p);if(x in e)return a(void 0,f)}const m={url:o,method:o,data:o,baseURL:c,transformRequest:c,transformResponse:c,paramsSerializer:c,timeout:c,timeoutMessage:c,withCredentials:c,withXSRFToken:c,adapter:c,responseType:c,xsrfCookieName:c,xsrfHeaderName:c,onUploadProgress:c,onDownloadProgress:c,decompress:c,maxContentLength:c,maxBodyLength:c,beforeRedirect:c,transport:c,httpAgent:c,httpsAgent:c,cancelToken:c,socketPath:c,responseEncoding:c,validateStatus:d,headers:(f,p,x)=>l(tb(f),tb(p),x,!0)};return pe.forEach(Object.keys({...e,...t}),function(p){const x=m[p]||l,y=x(e[p],t[p],p);pe.isUndefined(y)&&x!==d||(n[p]=y)}),n}const w6=e=>{const t=pi({},e);let{data:n,withXSRFToken:a,xsrfHeaderName:l,xsrfCookieName:o,headers:c,auth:d}=t;if(t.headers=c=Vr.from(c),t.url=p6(b6(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),d&&c.set("Authorization","Basic "+btoa((d.username||"")+":"+(d.password?unescape(encodeURIComponent(d.password)):""))),pe.isFormData(n)){if(vr.hasStandardBrowserEnv||vr.hasStandardBrowserWebWorkerEnv)c.setContentType(void 0);else if(pe.isFunction(n.getHeaders)){const m=n.getHeaders(),f=["content-type","content-length"];Object.entries(m).forEach(([p,x])=>{f.includes(p.toLowerCase())&&c.set(p,x)})}}if(vr.hasStandardBrowserEnv&&(a&&pe.isFunction(a)&&(a=a(t)),a||a!==!1&&U_(t.url))){const m=l&&o&&$_.read(o);m&&c.set(l,m)}return t},Y_=typeof XMLHttpRequest<"u",W_=Y_&&function(e){return new Promise(function(n,a){const l=w6(e);let o=l.data;const c=Vr.from(l.headers).normalize();let{responseType:d,onUploadProgress:m,onDownloadProgress:f}=l,p,x,y,b,j;function k(){b&&b(),j&&j(),l.cancelToken&&l.cancelToken.unsubscribe(p),l.signal&&l.signal.removeEventListener("abort",p)}let S=new XMLHttpRequest;S.open(l.method.toUpperCase(),l.url,!0),S.timeout=l.timeout;function _(){if(!S)return;const D=Vr.from("getAllResponseHeaders"in S&&S.getAllResponseHeaders()),L={data:!d||d==="text"||d==="json"?S.responseText:S.response,status:S.status,statusText:S.statusText,headers:D,config:e,request:S};y6(function(R){n(R),k()},function(R){a(R),k()},L),S=null}"onloadend"in S?S.onloadend=_:S.onreadystatechange=function(){!S||S.readyState!==4||S.status===0&&!(S.responseURL&&S.responseURL.indexOf("file:")===0)||setTimeout(_)},S.onabort=function(){S&&(a(new ft("Request aborted",ft.ECONNABORTED,e,S)),S=null)},S.onerror=function(z){const L=z&&z.message?z.message:"Network Error",E=new ft(L,ft.ERR_NETWORK,e,S);E.event=z||null,a(E),S=null},S.ontimeout=function(){let z=l.timeout?"timeout of "+l.timeout+"ms exceeded":"timeout exceeded";const L=l.transitional||x6;l.timeoutErrorMessage&&(z=l.timeoutErrorMessage),a(new ft(z,L.clarifyTimeoutError?ft.ETIMEDOUT:ft.ECONNABORTED,e,S)),S=null},o===void 0&&c.setContentType(null),"setRequestHeader"in S&&pe.forEach(c.toJSON(),function(z,L){S.setRequestHeader(L,z)}),pe.isUndefined(l.withCredentials)||(S.withCredentials=!!l.withCredentials),d&&d!=="json"&&(S.responseType=l.responseType),f&&([y,j]=tm(f,!0),S.addEventListener("progress",y)),m&&S.upload&&([x,b]=tm(m),S.upload.addEventListener("progress",x),S.upload.addEventListener("loadend",b)),(l.cancelToken||l.signal)&&(p=D=>{S&&(a(!D||D.type?new Vo(null,e,S):D),S.abort(),S=null)},l.cancelToken&&l.cancelToken.subscribe(p),l.signal&&(l.signal.aborted?p():l.signal.addEventListener("abort",p)));const M=I_(l.url);if(M&&vr.protocols.indexOf(M)===-1){a(new ft("Unsupported protocol "+M+":",ft.ERR_BAD_REQUEST,e));return}S.send(o||null)})},X_=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let a=new AbortController,l;const o=function(f){if(!l){l=!0,d();const p=f instanceof Error?f:this.reason;a.abort(p instanceof ft?p:new Vo(p instanceof Error?p.message:p))}};let c=t&&setTimeout(()=>{c=null,o(new ft(`timeout ${t} of ms exceeded`,ft.ETIMEDOUT))},t);const d=()=>{e&&(c&&clearTimeout(c),c=null,e.forEach(f=>{f.unsubscribe?f.unsubscribe(o):f.removeEventListener("abort",o)}),e=null)};e.forEach(f=>f.addEventListener("abort",o));const{signal:m}=a;return m.unsubscribe=()=>pe.asap(d),m}},K_=function*(e,t){let n=e.byteLength;if(n{const l=Q_(e,t);let o=0,c,d=m=>{c||(c=!0,a&&a(m))};return new ReadableStream({async pull(m){try{const{done:f,value:p}=await l.next();if(f){d(),m.close();return}let x=p.byteLength;if(n){let y=o+=x;n(y)}m.enqueue(new Uint8Array(p))}catch(f){throw d(f),f}},cancel(m){return d(m),l.return()}},{highWaterMark:2})},rb=64*1024,{isFunction:y0}=pe,J_=(({Request:e,Response:t})=>({Request:e,Response:t}))(pe.global),{ReadableStream:ab,TextEncoder:sb}=pe.global,lb=(e,...t)=>{try{return!!e(...t)}catch{return!1}},eM=e=>{e=pe.merge.call({skipUndefined:!0},J_,e);const{fetch:t,Request:n,Response:a}=e,l=t?y0(t):typeof fetch=="function",o=y0(n),c=y0(a);if(!l)return!1;const d=l&&y0(ab),m=l&&(typeof sb=="function"?(j=>k=>j.encode(k))(new sb):async j=>new Uint8Array(await new n(j).arrayBuffer())),f=o&&d&&lb(()=>{let j=!1;const k=new n(vr.origin,{body:new ab,method:"POST",get duplex(){return j=!0,"half"}}).headers.has("Content-Type");return j&&!k}),p=c&&d&&lb(()=>pe.isReadableStream(new a("").body)),x={stream:p&&(j=>j.body)};l&&["text","arrayBuffer","blob","formData","stream"].forEach(j=>{!x[j]&&(x[j]=(k,S)=>{let _=k&&k[j];if(_)return _.call(k);throw new ft(`Response type '${j}' is not supported`,ft.ERR_NOT_SUPPORT,S)})});const y=async j=>{if(j==null)return 0;if(pe.isBlob(j))return j.size;if(pe.isSpecCompliantForm(j))return(await new n(vr.origin,{method:"POST",body:j}).arrayBuffer()).byteLength;if(pe.isArrayBufferView(j)||pe.isArrayBuffer(j))return j.byteLength;if(pe.isURLSearchParams(j)&&(j=j+""),pe.isString(j))return(await m(j)).byteLength},b=async(j,k)=>{const S=pe.toFiniteNumber(j.getContentLength());return S??y(k)};return async j=>{let{url:k,method:S,data:_,signal:M,cancelToken:D,timeout:z,onDownloadProgress:L,onUploadProgress:E,responseType:R,headers:H,withCredentials:$="same-origin",fetchOptions:I}=w6(j),G=t||fetch;R=R?(R+"").toLowerCase():"text";let te=X_([M,D&&D.toAbortSignal()],z),we=null;const J=te&&te.unsubscribe&&(()=>{te.unsubscribe()});let ae;try{if(E&&f&&S!=="get"&&S!=="head"&&(ae=await b(H,_))!==0){let je=new n(k,{method:"POST",body:_,duplex:"half"}),Z;if(pe.isFormData(_)&&(Z=je.headers.get("content-type"))&&H.setContentType(Z),je.body){const[O,Ne]=Jy(ae,tm(eb(E)));_=nb(je.body,rb,O,Ne)}}pe.isString($)||($=$?"include":"omit");const U=o&&"credentials"in n.prototype,q={...I,signal:te,method:S.toUpperCase(),headers:H.normalize().toJSON(),body:_,duplex:"half",credentials:U?$:void 0};we=o&&new n(k,q);let W=await(o?G(we,I):G(k,q));const oe=p&&(R==="stream"||R==="response");if(p&&(L||oe&&J)){const je={};["status","statusText","headers"].forEach(se=>{je[se]=W[se]});const Z=pe.toFiniteNumber(W.headers.get("content-length")),[O,Ne]=L&&Jy(Z,tm(eb(L),!0))||[];W=new a(nb(W.body,rb,O,()=>{Ne&&Ne(),J&&J()}),je)}R=R||"text";let P=await x[pe.findKey(x,R)||"text"](W,j);return!oe&&J&&J(),await new Promise((je,Z)=>{y6(je,Z,{data:P,headers:Vr.from(W.headers),status:W.status,statusText:W.statusText,config:j,request:we})})}catch(U){throw J&&J(),U&&U.name==="TypeError"&&/Load failed|fetch/i.test(U.message)?Object.assign(new ft("Network Error",ft.ERR_NETWORK,j,we),{cause:U.cause||U}):ft.from(U,U&&U.code,j,we)}}},tM=new Map,j6=e=>{let t=e&&e.env||{};const{fetch:n,Request:a,Response:l}=t,o=[a,l,n];let c=o.length,d=c,m,f,p=tM;for(;d--;)m=o[d],f=p.get(m),f===void 0&&p.set(m,f=d?new Map:eM(t)),p=f;return f};j6();const S1={http:v_,xhr:W_,fetch:{get:j6}};pe.forEach(S1,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const ib=e=>`- ${e}`,nM=e=>pe.isFunction(e)||e===null||e===!1;function rM(e,t){e=pe.isArray(e)?e:[e];const{length:n}=e;let a,l;const o={};for(let c=0;c`adapter ${m} `+(f===!1?"is not supported by the environment":"is not available in the build"));let d=n?c.length>1?`since : +`+c.map(ib).join(` +`):" "+ib(c[0]):"as no adapter specified";throw new ft("There is no suitable adapter to dispatch the request "+d,"ERR_NOT_SUPPORT")}return l}const N6={getAdapter:rM,adapters:S1};function bp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Vo(null,e)}function ob(e){return bp(e),e.headers=Vr.from(e.headers),e.data=yp.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),N6.getAdapter(e.adapter||Ru.adapter,e)(e).then(function(a){return bp(e),a.data=yp.call(e,e.transformResponse,a),a.headers=Vr.from(a.headers),a},function(a){return v6(a)||(bp(e),a&&a.response&&(a.response.data=yp.call(e,e.transformResponse,a.response),a.response.headers=Vr.from(a.response.headers))),Promise.reject(a)})}const S6="1.13.2",_m={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{_m[e]=function(a){return typeof a===e||"a"+(t<1?"n ":" ")+e}});const cb={};_m.transitional=function(t,n,a){function l(o,c){return"[Axios v"+S6+"] Transitional option '"+o+"'"+c+(a?". "+a:"")}return(o,c,d)=>{if(t===!1)throw new ft(l(c," has been removed"+(n?" in "+n:"")),ft.ERR_DEPRECATED);return n&&!cb[c]&&(cb[c]=!0,console.warn(l(c," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,c,d):!0}};_m.spelling=function(t){return(n,a)=>(console.warn(`${a} is likely a misspelling of ${t}`),!0)};function aM(e,t,n){if(typeof e!="object")throw new ft("options must be an object",ft.ERR_BAD_OPTION_VALUE);const a=Object.keys(e);let l=a.length;for(;l-- >0;){const o=a[l],c=t[o];if(c){const d=e[o],m=d===void 0||c(d,o,e);if(m!==!0)throw new ft("option "+o+" must be "+m,ft.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ft("Unknown option "+o,ft.ERR_BAD_OPTION)}}const U0={assertOptions:aM,validators:_m},Wa=U0.validators;let mi=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Qy,response:new Qy}}async request(t,n){try{return await this._request(t,n)}catch(a){if(a instanceof Error){let l={};Error.captureStackTrace?Error.captureStackTrace(l):l=new Error;const o=l.stack?l.stack.replace(/^.+\n/,""):"";try{a.stack?o&&!String(a.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(a.stack+=` +`+o):a.stack=o}catch{}}throw a}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=pi(this.defaults,n);const{transitional:a,paramsSerializer:l,headers:o}=n;a!==void 0&&U0.assertOptions(a,{silentJSONParsing:Wa.transitional(Wa.boolean),forcedJSONParsing:Wa.transitional(Wa.boolean),clarifyTimeoutError:Wa.transitional(Wa.boolean)},!1),l!=null&&(pe.isFunction(l)?n.paramsSerializer={serialize:l}:U0.assertOptions(l,{encode:Wa.function,serialize:Wa.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),U0.assertOptions(n,{baseUrl:Wa.spelling("baseURL"),withXsrfToken:Wa.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let c=o&&pe.merge(o.common,o[n.method]);o&&pe.forEach(["delete","get","head","post","put","patch","common"],j=>{delete o[j]}),n.headers=Vr.concat(c,o);const d=[];let m=!0;this.interceptors.request.forEach(function(k){typeof k.runWhen=="function"&&k.runWhen(n)===!1||(m=m&&k.synchronous,d.unshift(k.fulfilled,k.rejected))});const f=[];this.interceptors.response.forEach(function(k){f.push(k.fulfilled,k.rejected)});let p,x=0,y;if(!m){const j=[ob.bind(this),void 0];for(j.unshift(...d),j.push(...f),y=j.length,p=Promise.resolve(n);x{if(!a._listeners)return;let o=a._listeners.length;for(;o-- >0;)a._listeners[o](l);a._listeners=null}),this.promise.then=l=>{let o;const c=new Promise(d=>{a.subscribe(d),o=d}).then(l);return c.cancel=function(){a.unsubscribe(o)},c},t(function(o,c,d){a.reason||(a.reason=new Vo(o,c,d),n(a.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=a=>{t.abort(a)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new k6(function(l){t=l}),cancel:t}}};function lM(e){return function(n){return e.apply(null,n)}}function iM(e){return pe.isObject(e)&&e.isAxiosError===!0}const Nx={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Nx).forEach(([e,t])=>{Nx[t]=e});function C6(e){const t=new mi(e),n=r6(mi.prototype.request,t);return pe.extend(n,mi.prototype,t,{allOwnKeys:!0}),pe.extend(n,t,null,{allOwnKeys:!0}),n.create=function(l){return C6(pi(e,l))},n}const Mn=C6(Ru);Mn.Axios=mi;Mn.CanceledError=Vo;Mn.CancelToken=sM;Mn.isCancel=v6;Mn.VERSION=S6;Mn.toFormData=Tm;Mn.AxiosError=ft;Mn.Cancel=Mn.CanceledError;Mn.all=function(t){return Promise.all(t)};Mn.spread=lM;Mn.isAxiosError=iM;Mn.mergeConfig=pi;Mn.AxiosHeaders=Vr;Mn.formToJSON=e=>g6(pe.isHTMLForm(e)?new FormData(e):e);Mn.getAdapter=N6.getAdapter;Mn.HttpStatusCode=Nx;Mn.default=Mn;const{Axios:aK,AxiosError:sK,CanceledError:lK,isCancel:iK,CancelToken:oK,VERSION:cK,all:uK,Cancel:dK,isAxiosError:mK,spread:hK,toFormData:fK,AxiosHeaders:pK,HttpStatusCode:xK,formToJSON:gK,getAdapter:vK,mergeConfig:yK}=Mn,oM=(e,t)=>{const n=new Array(e.length+t.length);for(let a=0;a({classGroupId:e,validator:t}),T6=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),nm="-",ub=[],uM="arbitrary..",dM=e=>{const t=hM(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:c=>{if(c.startsWith("[")&&c.endsWith("]"))return mM(c);const d=c.split(nm),m=d[0]===""&&d.length>1?1:0;return _6(d,m,t)},getConflictingClassGroupIds:(c,d)=>{if(d){const m=a[c],f=n[c];return m?f?oM(f,m):m:f||ub}return n[c]||ub}}},_6=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const l=e[t],o=n.nextPart.get(l);if(o){const f=_6(e,t+1,o);if(f)return f}const c=n.validators;if(c===null)return;const d=t===0?e.join(nm):e.slice(t).join(nm),m=c.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),a=t.slice(0,n);return a?uM+a:void 0})(),hM=e=>{const{theme:t,classGroups:n}=e;return fM(n,t)},fM=(e,t)=>{const n=T6();for(const a in e){const l=e[a];k1(l,n,a,t)}return n},k1=(e,t,n,a)=>{const l=e.length;for(let o=0;o{if(typeof e=="string"){xM(e,t,n);return}if(typeof e=="function"){gM(e,t,n,a);return}vM(e,t,n,a)},xM=(e,t,n)=>{const a=e===""?t:M6(t,e);a.classGroupId=n},gM=(e,t,n,a)=>{if(yM(e)){k1(e(a),t,n,a);return}t.validators===null&&(t.validators=[]),t.validators.push(cM(n,e))},vM=(e,t,n,a)=>{const l=Object.entries(e),o=l.length;for(let c=0;c{let n=e;const a=t.split(nm),l=a.length;for(let o=0;o"isThemeGetter"in e&&e.isThemeGetter===!0,bM=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),a=Object.create(null);const l=(o,c)=>{n[o]=c,t++,t>e&&(t=0,a=n,n=Object.create(null))};return{get(o){let c=n[o];if(c!==void 0)return c;if((c=a[o])!==void 0)return l(o,c),c},set(o,c){o in n?n[o]=c:l(o,c)}}},Sx="!",db=":",wM=[],mb=(e,t,n,a,l)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:a,isExternal:l}),jM=e=>{const{prefix:t,experimentalParseClassName:n}=e;let a=l=>{const o=[];let c=0,d=0,m=0,f;const p=l.length;for(let k=0;km?f-m:void 0;return mb(o,b,y,j)};if(t){const l=t+db,o=a;a=c=>c.startsWith(l)?o(c.slice(l.length)):mb(wM,!1,c,void 0,!0)}if(n){const l=a;a=o=>n({className:o,parseClassName:l})}return a},NM=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,a)=>{t.set(n,1e6+a)}),n=>{const a=[];let l=[];for(let o=0;o0&&(l.sort(),a.push(...l),l=[]),a.push(c)):l.push(c)}return l.length>0&&(l.sort(),a.push(...l)),a}},SM=e=>({cache:bM(e.cacheSize),parseClassName:jM(e),sortModifiers:NM(e),...dM(e)}),kM=/\s+/,CM=(e,t)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:l,sortModifiers:o}=t,c=[],d=e.trim().split(kM);let m="";for(let f=d.length-1;f>=0;f-=1){const p=d[f],{isExternal:x,modifiers:y,hasImportantModifier:b,baseClassName:j,maybePostfixModifierPosition:k}=n(p);if(x){m=p+(m.length>0?" "+m:m);continue}let S=!!k,_=a(S?j.substring(0,k):j);if(!_){if(!S){m=p+(m.length>0?" "+m:m);continue}if(_=a(j),!_){m=p+(m.length>0?" "+m:m);continue}S=!1}const M=y.length===0?"":y.length===1?y[0]:o(y).join(":"),D=b?M+Sx:M,z=D+_;if(c.indexOf(z)>-1)continue;c.push(z);const L=l(_,S);for(let E=0;E0?" "+m:m)}return m},TM=(...e)=>{let t=0,n,a,l="";for(;t{if(typeof e=="string")return e;let t,n="";for(let a=0;a{let n,a,l,o;const c=m=>{const f=t.reduce((p,x)=>x(p),e());return n=SM(f),a=n.cache.get,l=n.cache.set,o=d,d(m)},d=m=>{const f=a(m);if(f)return f;const p=CM(m,n);return l(m,p),p};return o=c,(...m)=>o(TM(...m))},MM=[],Wn=e=>{const t=n=>n[e]||MM;return t.isThemeGetter=!0,t},A6=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,D6=/^\((?:(\w[\w-]*):)?(.+)\)$/i,EM=/^\d+\/\d+$/,AM=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,DM=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,zM=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,OM=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,RM=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,xo=e=>EM.test(e),wt=e=>!!e&&!Number.isNaN(Number(e)),xl=e=>!!e&&Number.isInteger(Number(e)),wp=e=>e.endsWith("%")&&wt(e.slice(0,-1)),_s=e=>AM.test(e),BM=()=>!0,LM=e=>DM.test(e)&&!zM.test(e),z6=()=>!1,PM=e=>OM.test(e),FM=e=>RM.test(e),IM=e=>!$e(e)&&!Ve(e),qM=e=>Go(e,B6,z6),$e=e=>A6.test(e),ri=e=>Go(e,L6,LM),jp=e=>Go(e,GM,wt),hb=e=>Go(e,O6,z6),HM=e=>Go(e,R6,FM),b0=e=>Go(e,P6,PM),Ve=e=>D6.test(e),Xc=e=>Yo(e,L6),UM=e=>Yo(e,YM),fb=e=>Yo(e,O6),$M=e=>Yo(e,B6),VM=e=>Yo(e,R6),w0=e=>Yo(e,P6,!0),Go=(e,t,n)=>{const a=A6.exec(e);return a?a[1]?t(a[1]):n(a[2]):!1},Yo=(e,t,n=!1)=>{const a=D6.exec(e);return a?a[1]?t(a[1]):n:!1},O6=e=>e==="position"||e==="percentage",R6=e=>e==="image"||e==="url",B6=e=>e==="length"||e==="size"||e==="bg-size",L6=e=>e==="length",GM=e=>e==="number",YM=e=>e==="family-name",P6=e=>e==="shadow",WM=()=>{const e=Wn("color"),t=Wn("font"),n=Wn("text"),a=Wn("font-weight"),l=Wn("tracking"),o=Wn("leading"),c=Wn("breakpoint"),d=Wn("container"),m=Wn("spacing"),f=Wn("radius"),p=Wn("shadow"),x=Wn("inset-shadow"),y=Wn("text-shadow"),b=Wn("drop-shadow"),j=Wn("blur"),k=Wn("perspective"),S=Wn("aspect"),_=Wn("ease"),M=Wn("animate"),D=()=>["auto","avoid","all","avoid-page","page","left","right","column"],z=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],L=()=>[...z(),Ve,$e],E=()=>["auto","hidden","clip","visible","scroll"],R=()=>["auto","contain","none"],H=()=>[Ve,$e,m],$=()=>[xo,"full","auto",...H()],I=()=>[xl,"none","subgrid",Ve,$e],G=()=>["auto",{span:["full",xl,Ve,$e]},xl,Ve,$e],te=()=>[xl,"auto",Ve,$e],we=()=>["auto","min","max","fr",Ve,$e],J=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],ae=()=>["start","end","center","stretch","center-safe","end-safe"],U=()=>["auto",...H()],q=()=>[xo,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...H()],W=()=>[e,Ve,$e],oe=()=>[...z(),fb,hb,{position:[Ve,$e]}],P=()=>["no-repeat",{repeat:["","x","y","space","round"]}],je=()=>["auto","cover","contain",$M,qM,{size:[Ve,$e]}],Z=()=>[wp,Xc,ri],O=()=>["","none","full",f,Ve,$e],Ne=()=>["",wt,Xc,ri],se=()=>["solid","dashed","dotted","double"],Ce=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],ye=()=>[wt,wp,fb,hb],Be=()=>["","none",j,Ve,$e],ie=()=>["none",wt,Ve,$e],He=()=>["none",wt,Ve,$e],lt=()=>[wt,Ve,$e],ve=()=>[xo,"full",...H()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[_s],breakpoint:[_s],color:[BM],container:[_s],"drop-shadow":[_s],ease:["in","out","in-out"],font:[IM],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[_s],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[_s],shadow:[_s],spacing:["px",wt],text:[_s],"text-shadow":[_s],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",xo,$e,Ve,S]}],container:["container"],columns:[{columns:[wt,$e,Ve,d]}],"break-after":[{"break-after":D()}],"break-before":[{"break-before":D()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:L()}],overflow:[{overflow:E()}],"overflow-x":[{"overflow-x":E()}],"overflow-y":[{"overflow-y":E()}],overscroll:[{overscroll:R()}],"overscroll-x":[{"overscroll-x":R()}],"overscroll-y":[{"overscroll-y":R()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:$()}],"inset-x":[{"inset-x":$()}],"inset-y":[{"inset-y":$()}],start:[{start:$()}],end:[{end:$()}],top:[{top:$()}],right:[{right:$()}],bottom:[{bottom:$()}],left:[{left:$()}],visibility:["visible","invisible","collapse"],z:[{z:[xl,"auto",Ve,$e]}],basis:[{basis:[xo,"full","auto",d,...H()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[wt,xo,"auto","initial","none",$e]}],grow:[{grow:["",wt,Ve,$e]}],shrink:[{shrink:["",wt,Ve,$e]}],order:[{order:[xl,"first","last","none",Ve,$e]}],"grid-cols":[{"grid-cols":I()}],"col-start-end":[{col:G()}],"col-start":[{"col-start":te()}],"col-end":[{"col-end":te()}],"grid-rows":[{"grid-rows":I()}],"row-start-end":[{row:G()}],"row-start":[{"row-start":te()}],"row-end":[{"row-end":te()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":we()}],"auto-rows":[{"auto-rows":we()}],gap:[{gap:H()}],"gap-x":[{"gap-x":H()}],"gap-y":[{"gap-y":H()}],"justify-content":[{justify:[...J(),"normal"]}],"justify-items":[{"justify-items":[...ae(),"normal"]}],"justify-self":[{"justify-self":["auto",...ae()]}],"align-content":[{content:["normal",...J()]}],"align-items":[{items:[...ae(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...ae(),{baseline:["","last"]}]}],"place-content":[{"place-content":J()}],"place-items":[{"place-items":[...ae(),"baseline"]}],"place-self":[{"place-self":["auto",...ae()]}],p:[{p:H()}],px:[{px:H()}],py:[{py:H()}],ps:[{ps:H()}],pe:[{pe:H()}],pt:[{pt:H()}],pr:[{pr:H()}],pb:[{pb:H()}],pl:[{pl:H()}],m:[{m:U()}],mx:[{mx:U()}],my:[{my:U()}],ms:[{ms:U()}],me:[{me:U()}],mt:[{mt:U()}],mr:[{mr:U()}],mb:[{mb:U()}],ml:[{ml:U()}],"space-x":[{"space-x":H()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":H()}],"space-y-reverse":["space-y-reverse"],size:[{size:q()}],w:[{w:[d,"screen",...q()]}],"min-w":[{"min-w":[d,"screen","none",...q()]}],"max-w":[{"max-w":[d,"screen","none","prose",{screen:[c]},...q()]}],h:[{h:["screen","lh",...q()]}],"min-h":[{"min-h":["screen","lh","none",...q()]}],"max-h":[{"max-h":["screen","lh",...q()]}],"font-size":[{text:["base",n,Xc,ri]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[a,Ve,jp]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",wp,$e]}],"font-family":[{font:[UM,$e,t]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,Ve,$e]}],"line-clamp":[{"line-clamp":[wt,"none",Ve,jp]}],leading:[{leading:[o,...H()]}],"list-image":[{"list-image":["none",Ve,$e]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Ve,$e]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:W()}],"text-color":[{text:W()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...se(),"wavy"]}],"text-decoration-thickness":[{decoration:[wt,"from-font","auto",Ve,ri]}],"text-decoration-color":[{decoration:W()}],"underline-offset":[{"underline-offset":[wt,"auto",Ve,$e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:H()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Ve,$e]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Ve,$e]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:oe()}],"bg-repeat":[{bg:P()}],"bg-size":[{bg:je()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},xl,Ve,$e],radial:["",Ve,$e],conic:[xl,Ve,$e]},VM,HM]}],"bg-color":[{bg:W()}],"gradient-from-pos":[{from:Z()}],"gradient-via-pos":[{via:Z()}],"gradient-to-pos":[{to:Z()}],"gradient-from":[{from:W()}],"gradient-via":[{via:W()}],"gradient-to":[{to:W()}],rounded:[{rounded:O()}],"rounded-s":[{"rounded-s":O()}],"rounded-e":[{"rounded-e":O()}],"rounded-t":[{"rounded-t":O()}],"rounded-r":[{"rounded-r":O()}],"rounded-b":[{"rounded-b":O()}],"rounded-l":[{"rounded-l":O()}],"rounded-ss":[{"rounded-ss":O()}],"rounded-se":[{"rounded-se":O()}],"rounded-ee":[{"rounded-ee":O()}],"rounded-es":[{"rounded-es":O()}],"rounded-tl":[{"rounded-tl":O()}],"rounded-tr":[{"rounded-tr":O()}],"rounded-br":[{"rounded-br":O()}],"rounded-bl":[{"rounded-bl":O()}],"border-w":[{border:Ne()}],"border-w-x":[{"border-x":Ne()}],"border-w-y":[{"border-y":Ne()}],"border-w-s":[{"border-s":Ne()}],"border-w-e":[{"border-e":Ne()}],"border-w-t":[{"border-t":Ne()}],"border-w-r":[{"border-r":Ne()}],"border-w-b":[{"border-b":Ne()}],"border-w-l":[{"border-l":Ne()}],"divide-x":[{"divide-x":Ne()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Ne()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...se(),"hidden","none"]}],"divide-style":[{divide:[...se(),"hidden","none"]}],"border-color":[{border:W()}],"border-color-x":[{"border-x":W()}],"border-color-y":[{"border-y":W()}],"border-color-s":[{"border-s":W()}],"border-color-e":[{"border-e":W()}],"border-color-t":[{"border-t":W()}],"border-color-r":[{"border-r":W()}],"border-color-b":[{"border-b":W()}],"border-color-l":[{"border-l":W()}],"divide-color":[{divide:W()}],"outline-style":[{outline:[...se(),"none","hidden"]}],"outline-offset":[{"outline-offset":[wt,Ve,$e]}],"outline-w":[{outline:["",wt,Xc,ri]}],"outline-color":[{outline:W()}],shadow:[{shadow:["","none",p,w0,b0]}],"shadow-color":[{shadow:W()}],"inset-shadow":[{"inset-shadow":["none",x,w0,b0]}],"inset-shadow-color":[{"inset-shadow":W()}],"ring-w":[{ring:Ne()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:W()}],"ring-offset-w":[{"ring-offset":[wt,ri]}],"ring-offset-color":[{"ring-offset":W()}],"inset-ring-w":[{"inset-ring":Ne()}],"inset-ring-color":[{"inset-ring":W()}],"text-shadow":[{"text-shadow":["none",y,w0,b0]}],"text-shadow-color":[{"text-shadow":W()}],opacity:[{opacity:[wt,Ve,$e]}],"mix-blend":[{"mix-blend":[...Ce(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ce()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[wt]}],"mask-image-linear-from-pos":[{"mask-linear-from":ye()}],"mask-image-linear-to-pos":[{"mask-linear-to":ye()}],"mask-image-linear-from-color":[{"mask-linear-from":W()}],"mask-image-linear-to-color":[{"mask-linear-to":W()}],"mask-image-t-from-pos":[{"mask-t-from":ye()}],"mask-image-t-to-pos":[{"mask-t-to":ye()}],"mask-image-t-from-color":[{"mask-t-from":W()}],"mask-image-t-to-color":[{"mask-t-to":W()}],"mask-image-r-from-pos":[{"mask-r-from":ye()}],"mask-image-r-to-pos":[{"mask-r-to":ye()}],"mask-image-r-from-color":[{"mask-r-from":W()}],"mask-image-r-to-color":[{"mask-r-to":W()}],"mask-image-b-from-pos":[{"mask-b-from":ye()}],"mask-image-b-to-pos":[{"mask-b-to":ye()}],"mask-image-b-from-color":[{"mask-b-from":W()}],"mask-image-b-to-color":[{"mask-b-to":W()}],"mask-image-l-from-pos":[{"mask-l-from":ye()}],"mask-image-l-to-pos":[{"mask-l-to":ye()}],"mask-image-l-from-color":[{"mask-l-from":W()}],"mask-image-l-to-color":[{"mask-l-to":W()}],"mask-image-x-from-pos":[{"mask-x-from":ye()}],"mask-image-x-to-pos":[{"mask-x-to":ye()}],"mask-image-x-from-color":[{"mask-x-from":W()}],"mask-image-x-to-color":[{"mask-x-to":W()}],"mask-image-y-from-pos":[{"mask-y-from":ye()}],"mask-image-y-to-pos":[{"mask-y-to":ye()}],"mask-image-y-from-color":[{"mask-y-from":W()}],"mask-image-y-to-color":[{"mask-y-to":W()}],"mask-image-radial":[{"mask-radial":[Ve,$e]}],"mask-image-radial-from-pos":[{"mask-radial-from":ye()}],"mask-image-radial-to-pos":[{"mask-radial-to":ye()}],"mask-image-radial-from-color":[{"mask-radial-from":W()}],"mask-image-radial-to-color":[{"mask-radial-to":W()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":z()}],"mask-image-conic-pos":[{"mask-conic":[wt]}],"mask-image-conic-from-pos":[{"mask-conic-from":ye()}],"mask-image-conic-to-pos":[{"mask-conic-to":ye()}],"mask-image-conic-from-color":[{"mask-conic-from":W()}],"mask-image-conic-to-color":[{"mask-conic-to":W()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:oe()}],"mask-repeat":[{mask:P()}],"mask-size":[{mask:je()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Ve,$e]}],filter:[{filter:["","none",Ve,$e]}],blur:[{blur:Be()}],brightness:[{brightness:[wt,Ve,$e]}],contrast:[{contrast:[wt,Ve,$e]}],"drop-shadow":[{"drop-shadow":["","none",b,w0,b0]}],"drop-shadow-color":[{"drop-shadow":W()}],grayscale:[{grayscale:["",wt,Ve,$e]}],"hue-rotate":[{"hue-rotate":[wt,Ve,$e]}],invert:[{invert:["",wt,Ve,$e]}],saturate:[{saturate:[wt,Ve,$e]}],sepia:[{sepia:["",wt,Ve,$e]}],"backdrop-filter":[{"backdrop-filter":["","none",Ve,$e]}],"backdrop-blur":[{"backdrop-blur":Be()}],"backdrop-brightness":[{"backdrop-brightness":[wt,Ve,$e]}],"backdrop-contrast":[{"backdrop-contrast":[wt,Ve,$e]}],"backdrop-grayscale":[{"backdrop-grayscale":["",wt,Ve,$e]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[wt,Ve,$e]}],"backdrop-invert":[{"backdrop-invert":["",wt,Ve,$e]}],"backdrop-opacity":[{"backdrop-opacity":[wt,Ve,$e]}],"backdrop-saturate":[{"backdrop-saturate":[wt,Ve,$e]}],"backdrop-sepia":[{"backdrop-sepia":["",wt,Ve,$e]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":H()}],"border-spacing-x":[{"border-spacing-x":H()}],"border-spacing-y":[{"border-spacing-y":H()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Ve,$e]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[wt,"initial",Ve,$e]}],ease:[{ease:["linear","initial",_,Ve,$e]}],delay:[{delay:[wt,Ve,$e]}],animate:[{animate:["none",M,Ve,$e]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[k,Ve,$e]}],"perspective-origin":[{"perspective-origin":L()}],rotate:[{rotate:ie()}],"rotate-x":[{"rotate-x":ie()}],"rotate-y":[{"rotate-y":ie()}],"rotate-z":[{"rotate-z":ie()}],scale:[{scale:He()}],"scale-x":[{"scale-x":He()}],"scale-y":[{"scale-y":He()}],"scale-z":[{"scale-z":He()}],"scale-3d":["scale-3d"],skew:[{skew:lt()}],"skew-x":[{"skew-x":lt()}],"skew-y":[{"skew-y":lt()}],transform:[{transform:[Ve,$e,"","none","gpu","cpu"]}],"transform-origin":[{origin:L()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ve()}],"translate-x":[{"translate-x":ve()}],"translate-y":[{"translate-y":ve()}],"translate-z":[{"translate-z":ve()}],"translate-none":["translate-none"],accent:[{accent:W()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:W()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Ve,$e]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":H()}],"scroll-mx":[{"scroll-mx":H()}],"scroll-my":[{"scroll-my":H()}],"scroll-ms":[{"scroll-ms":H()}],"scroll-me":[{"scroll-me":H()}],"scroll-mt":[{"scroll-mt":H()}],"scroll-mr":[{"scroll-mr":H()}],"scroll-mb":[{"scroll-mb":H()}],"scroll-ml":[{"scroll-ml":H()}],"scroll-p":[{"scroll-p":H()}],"scroll-px":[{"scroll-px":H()}],"scroll-py":[{"scroll-py":H()}],"scroll-ps":[{"scroll-ps":H()}],"scroll-pe":[{"scroll-pe":H()}],"scroll-pt":[{"scroll-pt":H()}],"scroll-pr":[{"scroll-pr":H()}],"scroll-pb":[{"scroll-pb":H()}],"scroll-pl":[{"scroll-pl":H()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Ve,$e]}],fill:[{fill:["none",...W()]}],"stroke-w":[{stroke:[wt,Xc,ri,jp]}],stroke:[{stroke:["none",...W()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},XM=_M(WM);function me(...e){return XM(E5(e))}const ot=w.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:me("rounded-xl border bg-card text-card-foreground shadow",e),...t}));ot.displayName="Card";const Bt=w.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:me("flex flex-col space-y-1.5 p-6",e),...t}));Bt.displayName="CardHeader";const Lt=w.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:me("font-semibold leading-none tracking-tight",e),...t}));Lt.displayName="CardTitle";const tr=w.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:me("text-sm text-muted-foreground",e),...t}));tr.displayName="CardDescription";const Vt=w.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:me("p-6 pt-0",e),...t}));Vt.displayName="CardContent";const F6=w.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:me("flex items-center p-6 pt-0",e),...t}));F6.displayName="CardFooter";var Np="rovingFocusGroup.onEntryFocus",KM={bubbles:!1,cancelable:!0},Bu="RovingFocusGroup",[kx,I6,QM]=vm(Bu),[ZM,Mm]=Ha(Bu,[QM]),[JM,eE]=ZM(Bu),q6=w.forwardRef((e,t)=>r.jsx(kx.Provider,{scope:e.__scopeRovingFocusGroup,children:r.jsx(kx.Slot,{scope:e.__scopeRovingFocusGroup,children:r.jsx(tE,{...e,ref:t})})}));q6.displayName=Bu;var tE=w.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:a,loop:l=!1,dir:o,currentTabStopId:c,defaultCurrentTabStopId:d,onCurrentTabStopIdChange:m,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...x}=e,y=w.useRef(null),b=dn(t,y),j=Tu(o),[k,S]=Dl({prop:c,defaultProp:d??null,onChange:m,caller:Bu}),[_,M]=w.useState(!1),D=gr(f),z=I6(n),L=w.useRef(!1),[E,R]=w.useState(0);return w.useEffect(()=>{const H=y.current;if(H)return H.addEventListener(Np,D),()=>H.removeEventListener(Np,D)},[D]),r.jsx(JM,{scope:n,orientation:a,dir:j,loop:l,currentTabStopId:k,onItemFocus:w.useCallback(H=>S(H),[S]),onItemShiftTab:w.useCallback(()=>M(!0),[]),onFocusableItemAdd:w.useCallback(()=>R(H=>H+1),[]),onFocusableItemRemove:w.useCallback(()=>R(H=>H-1),[]),children:r.jsx(Ft.div,{tabIndex:_||E===0?-1:0,"data-orientation":a,...x,ref:b,style:{outline:"none",...e.style},onMouseDown:Pe(e.onMouseDown,()=>{L.current=!0}),onFocus:Pe(e.onFocus,H=>{const $=!L.current;if(H.target===H.currentTarget&&$&&!_){const I=new CustomEvent(Np,KM);if(H.currentTarget.dispatchEvent(I),!I.defaultPrevented){const G=z().filter(U=>U.focusable),te=G.find(U=>U.active),we=G.find(U=>U.id===k),ae=[te,we,...G].filter(Boolean).map(U=>U.ref.current);$6(ae,p)}}L.current=!1}),onBlur:Pe(e.onBlur,()=>M(!1))})})}),H6="RovingFocusGroupItem",U6=w.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:a=!0,active:l=!1,tabStopId:o,children:c,...d}=e,m=Ta(),f=o||m,p=eE(H6,n),x=p.currentTabStopId===f,y=I6(n),{onFocusableItemAdd:b,onFocusableItemRemove:j,currentTabStopId:k}=p;return w.useEffect(()=>{if(a)return b(),()=>j()},[a,b,j]),r.jsx(kx.ItemSlot,{scope:n,id:f,focusable:a,active:l,children:r.jsx(Ft.span,{tabIndex:x?0:-1,"data-orientation":p.orientation,...d,ref:t,onMouseDown:Pe(e.onMouseDown,S=>{a?p.onItemFocus(f):S.preventDefault()}),onFocus:Pe(e.onFocus,()=>p.onItemFocus(f)),onKeyDown:Pe(e.onKeyDown,S=>{if(S.key==="Tab"&&S.shiftKey){p.onItemShiftTab();return}if(S.target!==S.currentTarget)return;const _=aE(S,p.orientation,p.dir);if(_!==void 0){if(S.metaKey||S.ctrlKey||S.altKey||S.shiftKey)return;S.preventDefault();let D=y().filter(z=>z.focusable).map(z=>z.ref.current);if(_==="last")D.reverse();else if(_==="prev"||_==="next"){_==="prev"&&D.reverse();const z=D.indexOf(S.currentTarget);D=p.loop?sE(D,z+1):D.slice(z+1)}setTimeout(()=>$6(D))}}),children:typeof c=="function"?c({isCurrentTabStop:x,hasTabStop:k!=null}):c})})});U6.displayName=H6;var nE={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function rE(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function aE(e,t,n){const a=rE(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(a))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(a)))return nE[a]}function $6(e,t=!1){const n=document.activeElement;for(const a of e)if(a===n||(a.focus({preventScroll:t}),document.activeElement!==n))return}function sE(e,t){return e.map((n,a)=>e[(t+a)%e.length])}var V6=q6,G6=U6,Em="Tabs",[lE]=Ha(Em,[Mm]),Y6=Mm(),[iE,C1]=lE(Em),W6=w.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,onValueChange:l,defaultValue:o,orientation:c="horizontal",dir:d,activationMode:m="automatic",...f}=e,p=Tu(d),[x,y]=Dl({prop:a,onChange:l,defaultProp:o??"",caller:Em});return r.jsx(iE,{scope:n,baseId:Ta(),value:x,onValueChange:y,orientation:c,dir:p,activationMode:m,children:r.jsx(Ft.div,{dir:p,"data-orientation":c,...f,ref:t})})});W6.displayName=Em;var X6="TabsList",K6=w.forwardRef((e,t)=>{const{__scopeTabs:n,loop:a=!0,...l}=e,o=C1(X6,n),c=Y6(n);return r.jsx(V6,{asChild:!0,...c,orientation:o.orientation,dir:o.dir,loop:a,children:r.jsx(Ft.div,{role:"tablist","aria-orientation":o.orientation,...l,ref:t})})});K6.displayName=X6;var Q6="TabsTrigger",Z6=w.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,disabled:l=!1,...o}=e,c=C1(Q6,n),d=Y6(n),m=tw(c.baseId,a),f=nw(c.baseId,a),p=a===c.value;return r.jsx(G6,{asChild:!0,...d,focusable:!l,active:p,children:r.jsx(Ft.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":f,"data-state":p?"active":"inactive","data-disabled":l?"":void 0,disabled:l,id:m,...o,ref:t,onMouseDown:Pe(e.onMouseDown,x=>{!l&&x.button===0&&x.ctrlKey===!1?c.onValueChange(a):x.preventDefault()}),onKeyDown:Pe(e.onKeyDown,x=>{[" ","Enter"].includes(x.key)&&c.onValueChange(a)}),onFocus:Pe(e.onFocus,()=>{const x=c.activationMode!=="manual";!p&&!l&&x&&c.onValueChange(a)})})})});Z6.displayName=Q6;var J6="TabsContent",ew=w.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,forceMount:l,children:o,...c}=e,d=C1(J6,n),m=tw(d.baseId,a),f=nw(d.baseId,a),p=a===d.value,x=w.useRef(p);return w.useEffect(()=>{const y=requestAnimationFrame(()=>x.current=!1);return()=>cancelAnimationFrame(y)},[]),r.jsx(Wr,{present:l||p,children:({present:y})=>r.jsx(Ft.div,{"data-state":p?"active":"inactive","data-orientation":d.orientation,role:"tabpanel","aria-labelledby":m,hidden:!y,id:f,tabIndex:0,...c,ref:t,style:{...e.style,animationDuration:x.current?"0s":void 0},children:y&&o})})});ew.displayName=J6;function tw(e,t){return`${e}-trigger-${t}`}function nw(e,t){return`${e}-content-${t}`}var oE=W6,rw=K6,aw=Z6,sw=ew;const Sl=oE,Ls=w.forwardRef(({className:e,...t},n)=>r.jsx(rw,{ref:n,className:me("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));Ls.displayName=rw.displayName;const Rt=w.forwardRef(({className:e,...t},n)=>r.jsx(aw,{ref:n,className:me("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));Rt.displayName=aw.displayName;const ln=w.forwardRef(({className:e,...t},n)=>r.jsx(sw,{ref:n,className:me("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 data-[state=active]:animate-in data-[state=active]:fade-in data-[state=active]:duration-300",e),...t}));ln.displayName=sw.displayName;function cE(e,t){return w.useReducer((n,a)=>t[n][a]??n,e)}var T1="ScrollArea",[lw]=Ha(T1),[uE,Aa]=lw(T1),iw=w.forwardRef((e,t)=>{const{__scopeScrollArea:n,type:a="hover",dir:l,scrollHideDelay:o=600,...c}=e,[d,m]=w.useState(null),[f,p]=w.useState(null),[x,y]=w.useState(null),[b,j]=w.useState(null),[k,S]=w.useState(null),[_,M]=w.useState(0),[D,z]=w.useState(0),[L,E]=w.useState(!1),[R,H]=w.useState(!1),$=dn(t,G=>m(G)),I=Tu(l);return r.jsx(uE,{scope:n,type:a,dir:I,scrollHideDelay:o,scrollArea:d,viewport:f,onViewportChange:p,content:x,onContentChange:y,scrollbarX:b,onScrollbarXChange:j,scrollbarXEnabled:L,onScrollbarXEnabledChange:E,scrollbarY:k,onScrollbarYChange:S,scrollbarYEnabled:R,onScrollbarYEnabledChange:H,onCornerWidthChange:M,onCornerHeightChange:z,children:r.jsx(Ft.div,{dir:I,...c,ref:$,style:{position:"relative","--radix-scroll-area-corner-width":_+"px","--radix-scroll-area-corner-height":D+"px",...e.style}})})});iw.displayName=T1;var ow="ScrollAreaViewport",cw=w.forwardRef((e,t)=>{const{__scopeScrollArea:n,children:a,nonce:l,...o}=e,c=Aa(ow,n),d=w.useRef(null),m=dn(t,d,c.onViewportChange);return r.jsxs(r.Fragment,{children:[r.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),r.jsx(Ft.div,{"data-radix-scroll-area-viewport":"",...o,ref:m,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:r.jsx("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:a})})]})});cw.displayName=ow;var as="ScrollAreaScrollbar",_1=w.forwardRef((e,t)=>{const{forceMount:n,...a}=e,l=Aa(as,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:c}=l,d=e.orientation==="horizontal";return w.useEffect(()=>(d?o(!0):c(!0),()=>{d?o(!1):c(!1)}),[d,o,c]),l.type==="hover"?r.jsx(dE,{...a,ref:t,forceMount:n}):l.type==="scroll"?r.jsx(mE,{...a,ref:t,forceMount:n}):l.type==="auto"?r.jsx(uw,{...a,ref:t,forceMount:n}):l.type==="always"?r.jsx(M1,{...a,ref:t}):null});_1.displayName=as;var dE=w.forwardRef((e,t)=>{const{forceMount:n,...a}=e,l=Aa(as,e.__scopeScrollArea),[o,c]=w.useState(!1);return w.useEffect(()=>{const d=l.scrollArea;let m=0;if(d){const f=()=>{window.clearTimeout(m),c(!0)},p=()=>{m=window.setTimeout(()=>c(!1),l.scrollHideDelay)};return d.addEventListener("pointerenter",f),d.addEventListener("pointerleave",p),()=>{window.clearTimeout(m),d.removeEventListener("pointerenter",f),d.removeEventListener("pointerleave",p)}}},[l.scrollArea,l.scrollHideDelay]),r.jsx(Wr,{present:n||o,children:r.jsx(uw,{"data-state":o?"visible":"hidden",...a,ref:t})})}),mE=w.forwardRef((e,t)=>{const{forceMount:n,...a}=e,l=Aa(as,e.__scopeScrollArea),o=e.orientation==="horizontal",c=Dm(()=>m("SCROLL_END"),100),[d,m]=cE("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return w.useEffect(()=>{if(d==="idle"){const f=window.setTimeout(()=>m("HIDE"),l.scrollHideDelay);return()=>window.clearTimeout(f)}},[d,l.scrollHideDelay,m]),w.useEffect(()=>{const f=l.viewport,p=o?"scrollLeft":"scrollTop";if(f){let x=f[p];const y=()=>{const b=f[p];x!==b&&(m("SCROLL"),c()),x=b};return f.addEventListener("scroll",y),()=>f.removeEventListener("scroll",y)}},[l.viewport,o,m,c]),r.jsx(Wr,{present:n||d!=="hidden",children:r.jsx(M1,{"data-state":d==="hidden"?"hidden":"visible",...a,ref:t,onPointerEnter:Pe(e.onPointerEnter,()=>m("POINTER_ENTER")),onPointerLeave:Pe(e.onPointerLeave,()=>m("POINTER_LEAVE"))})})}),uw=w.forwardRef((e,t)=>{const n=Aa(as,e.__scopeScrollArea),{forceMount:a,...l}=e,[o,c]=w.useState(!1),d=e.orientation==="horizontal",m=Dm(()=>{if(n.viewport){const f=n.viewport.offsetWidth{const{orientation:n="vertical",...a}=e,l=Aa(as,e.__scopeScrollArea),o=w.useRef(null),c=w.useRef(0),[d,m]=w.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=pw(d.viewport,d.content),p={...a,sizes:d,onSizesChange:m,hasThumb:f>0&&f<1,onThumbChange:y=>o.current=y,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:y=>c.current=y};function x(y,b){return vE(y,c.current,d,b)}return n==="horizontal"?r.jsx(hE,{...p,ref:t,onThumbPositionChange:()=>{if(l.viewport&&o.current){const y=l.viewport.scrollLeft,b=pb(y,d,l.dir);o.current.style.transform=`translate3d(${b}px, 0, 0)`}},onWheelScroll:y=>{l.viewport&&(l.viewport.scrollLeft=y)},onDragScroll:y=>{l.viewport&&(l.viewport.scrollLeft=x(y,l.dir))}}):n==="vertical"?r.jsx(fE,{...p,ref:t,onThumbPositionChange:()=>{if(l.viewport&&o.current){const y=l.viewport.scrollTop,b=pb(y,d);o.current.style.transform=`translate3d(0, ${b}px, 0)`}},onWheelScroll:y=>{l.viewport&&(l.viewport.scrollTop=y)},onDragScroll:y=>{l.viewport&&(l.viewport.scrollTop=x(y))}}):null}),hE=w.forwardRef((e,t)=>{const{sizes:n,onSizesChange:a,...l}=e,o=Aa(as,e.__scopeScrollArea),[c,d]=w.useState(),m=w.useRef(null),f=dn(t,m,o.onScrollbarXChange);return w.useEffect(()=>{m.current&&d(getComputedStyle(m.current))},[m]),r.jsx(mw,{"data-orientation":"horizontal",...l,ref:f,sizes:n,style:{bottom:0,left:o.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:o.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Am(n)+"px",...e.style},onThumbPointerDown:p=>e.onThumbPointerDown(p.x),onDragScroll:p=>e.onDragScroll(p.x),onWheelScroll:(p,x)=>{if(o.viewport){const y=o.viewport.scrollLeft+p.deltaX;e.onWheelScroll(y),gw(y,x)&&p.preventDefault()}},onResize:()=>{m.current&&o.viewport&&c&&a({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:m.current.clientWidth,paddingStart:am(c.paddingLeft),paddingEnd:am(c.paddingRight)}})}})}),fE=w.forwardRef((e,t)=>{const{sizes:n,onSizesChange:a,...l}=e,o=Aa(as,e.__scopeScrollArea),[c,d]=w.useState(),m=w.useRef(null),f=dn(t,m,o.onScrollbarYChange);return w.useEffect(()=>{m.current&&d(getComputedStyle(m.current))},[m]),r.jsx(mw,{"data-orientation":"vertical",...l,ref:f,sizes:n,style:{top:0,right:o.dir==="ltr"?0:void 0,left:o.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Am(n)+"px",...e.style},onThumbPointerDown:p=>e.onThumbPointerDown(p.y),onDragScroll:p=>e.onDragScroll(p.y),onWheelScroll:(p,x)=>{if(o.viewport){const y=o.viewport.scrollTop+p.deltaY;e.onWheelScroll(y),gw(y,x)&&p.preventDefault()}},onResize:()=>{m.current&&o.viewport&&c&&a({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:m.current.clientHeight,paddingStart:am(c.paddingTop),paddingEnd:am(c.paddingBottom)}})}})}),[pE,dw]=lw(as),mw=w.forwardRef((e,t)=>{const{__scopeScrollArea:n,sizes:a,hasThumb:l,onThumbChange:o,onThumbPointerUp:c,onThumbPointerDown:d,onThumbPositionChange:m,onDragScroll:f,onWheelScroll:p,onResize:x,...y}=e,b=Aa(as,n),[j,k]=w.useState(null),S=dn(t,$=>k($)),_=w.useRef(null),M=w.useRef(""),D=b.viewport,z=a.content-a.viewport,L=gr(p),E=gr(m),R=Dm(x,10);function H($){if(_.current){const I=$.clientX-_.current.left,G=$.clientY-_.current.top;f({x:I,y:G})}}return w.useEffect(()=>{const $=I=>{const G=I.target;j?.contains(G)&&L(I,z)};return document.addEventListener("wheel",$,{passive:!1}),()=>document.removeEventListener("wheel",$,{passive:!1})},[D,j,z,L]),w.useEffect(E,[a,E]),Po(j,R),Po(b.content,R),r.jsx(pE,{scope:n,scrollbar:j,hasThumb:l,onThumbChange:gr(o),onThumbPointerUp:gr(c),onThumbPositionChange:E,onThumbPointerDown:gr(d),children:r.jsx(Ft.div,{...y,ref:S,style:{position:"absolute",...y.style},onPointerDown:Pe(e.onPointerDown,$=>{$.button===0&&($.target.setPointerCapture($.pointerId),_.current=j.getBoundingClientRect(),M.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",b.viewport&&(b.viewport.style.scrollBehavior="auto"),H($))}),onPointerMove:Pe(e.onPointerMove,H),onPointerUp:Pe(e.onPointerUp,$=>{const I=$.target;I.hasPointerCapture($.pointerId)&&I.releasePointerCapture($.pointerId),document.body.style.webkitUserSelect=M.current,b.viewport&&(b.viewport.style.scrollBehavior=""),_.current=null})})})}),rm="ScrollAreaThumb",hw=w.forwardRef((e,t)=>{const{forceMount:n,...a}=e,l=dw(rm,e.__scopeScrollArea);return r.jsx(Wr,{present:n||l.hasThumb,children:r.jsx(xE,{ref:t,...a})})}),xE=w.forwardRef((e,t)=>{const{__scopeScrollArea:n,style:a,...l}=e,o=Aa(rm,n),c=dw(rm,n),{onThumbPositionChange:d}=c,m=dn(t,x=>c.onThumbChange(x)),f=w.useRef(void 0),p=Dm(()=>{f.current&&(f.current(),f.current=void 0)},100);return w.useEffect(()=>{const x=o.viewport;if(x){const y=()=>{if(p(),!f.current){const b=yE(x,d);f.current=b,d()}};return d(),x.addEventListener("scroll",y),()=>x.removeEventListener("scroll",y)}},[o.viewport,p,d]),r.jsx(Ft.div,{"data-state":c.hasThumb?"visible":"hidden",...l,ref:m,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...a},onPointerDownCapture:Pe(e.onPointerDownCapture,x=>{const b=x.target.getBoundingClientRect(),j=x.clientX-b.left,k=x.clientY-b.top;c.onThumbPointerDown({x:j,y:k})}),onPointerUp:Pe(e.onPointerUp,c.onThumbPointerUp)})});hw.displayName=rm;var E1="ScrollAreaCorner",fw=w.forwardRef((e,t)=>{const n=Aa(E1,e.__scopeScrollArea),a=!!(n.scrollbarX&&n.scrollbarY);return n.type!=="scroll"&&a?r.jsx(gE,{...e,ref:t}):null});fw.displayName=E1;var gE=w.forwardRef((e,t)=>{const{__scopeScrollArea:n,...a}=e,l=Aa(E1,n),[o,c]=w.useState(0),[d,m]=w.useState(0),f=!!(o&&d);return Po(l.scrollbarX,()=>{const p=l.scrollbarX?.offsetHeight||0;l.onCornerHeightChange(p),m(p)}),Po(l.scrollbarY,()=>{const p=l.scrollbarY?.offsetWidth||0;l.onCornerWidthChange(p),c(p)}),f?r.jsx(Ft.div,{...a,ref:t,style:{width:o,height:d,position:"absolute",right:l.dir==="ltr"?0:void 0,left:l.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function am(e){return e?parseInt(e,10):0}function pw(e,t){const n=e/t;return isNaN(n)?0:n}function Am(e){const t=pw(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,a=(e.scrollbar.size-n)*t;return Math.max(a,18)}function vE(e,t,n,a="ltr"){const l=Am(n),o=l/2,c=t||o,d=l-c,m=n.scrollbar.paddingStart+c,f=n.scrollbar.size-n.scrollbar.paddingEnd-d,p=n.content-n.viewport,x=a==="ltr"?[0,p]:[p*-1,0];return xw([m,f],x)(e)}function pb(e,t,n="ltr"){const a=Am(t),l=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-l,c=t.content-t.viewport,d=o-a,m=n==="ltr"?[0,c]:[c*-1,0],f=o1(e,m);return xw([0,c],[0,d])(f)}function xw(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(n-e[0])}}function gw(e,t){return e>0&&e{})=>{let n={left:e.scrollLeft,top:e.scrollTop},a=0;return(function l(){const o={left:e.scrollLeft,top:e.scrollTop},c=n.left!==o.left,d=n.top!==o.top;(c||d)&&t(),n=o,a=window.requestAnimationFrame(l)})(),()=>window.cancelAnimationFrame(a)};function Dm(e,t){const n=gr(e),a=w.useRef(0);return w.useEffect(()=>()=>window.clearTimeout(a.current),[]),w.useCallback(()=>{window.clearTimeout(a.current),a.current=window.setTimeout(n,t)},[n,t])}function Po(e,t){const n=gr(t);A5(()=>{let a=0;if(e){const l=new ResizeObserver(()=>{cancelAnimationFrame(a),a=window.requestAnimationFrame(n)});return l.observe(e),()=>{window.cancelAnimationFrame(a),l.unobserve(e)}}},[e,n])}var vw=iw,bE=cw,wE=fw;const Xt=w.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(vw,{ref:a,className:me("relative overflow-hidden",e),...n,children:[r.jsx(bE,{className:"h-full w-full rounded-[inherit]",children:t}),r.jsx(yw,{}),r.jsx(wE,{})]}));Xt.displayName=vw.displayName;const yw=w.forwardRef(({className:e,orientation:t="vertical",...n},a)=>r.jsx(_1,{ref:a,orientation:t,className:me("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...n,children:r.jsx(hw,{className:"relative flex-1 rounded-full bg-border"})}));yw.displayName=_1.displayName;function xb({className:e,...t}){return r.jsx("div",{className:me("animate-pulse rounded-md bg-primary/10",e),...t})}function jE(e,t=[]){let n=[];function a(o,c){const d=w.createContext(c);d.displayName=o+"Context";const m=n.length;n=[...n,c];const f=x=>{const{scope:y,children:b,...j}=x,k=y?.[e]?.[m]||d,S=w.useMemo(()=>j,Object.values(j));return r.jsx(k.Provider,{value:S,children:b})};f.displayName=o+"Provider";function p(x,y){const b=y?.[e]?.[m]||d,j=w.useContext(b);if(j)return j;if(c!==void 0)return c;throw new Error(`\`${x}\` must be used within \`${o}\``)}return[f,p]}const l=()=>{const o=n.map(c=>w.createContext(c));return function(d){const m=d?.[e]||o;return w.useMemo(()=>({[`__scope${e}`]:{...d,[e]:m}}),[d,m])}};return l.scopeName=e,[a,NE(l,...t)]}function NE(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const a=e.map(l=>({useScope:l(),scopeName:l.scopeName}));return function(o){const c=a.reduce((d,{useScope:m,scopeName:f})=>{const x=m(o)[`__scope${f}`];return{...d,...x}},{});return w.useMemo(()=>({[`__scope${t.scopeName}`]:c}),[c])}};return n.scopeName=t.scopeName,n}var SE=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],bw=SE.reduce((e,t)=>{const n=c1(`Primitive.${t}`),a=w.forwardRef((l,o)=>{const{asChild:c,...d}=l,m=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(m,{...d,ref:o})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{}),A1="Progress",D1=100,[kE]=jE(A1),[CE,TE]=kE(A1),ww=w.forwardRef((e,t)=>{const{__scopeProgress:n,value:a=null,max:l,getValueLabel:o=_E,...c}=e;(l||l===0)&&!gb(l)&&console.error(ME(`${l}`,"Progress"));const d=gb(l)?l:D1;a!==null&&!vb(a,d)&&console.error(EE(`${a}`,"Progress"));const m=vb(a,d)?a:null,f=sm(m)?o(m,d):void 0;return r.jsx(CE,{scope:n,value:m,max:d,children:r.jsx(bw.div,{"aria-valuemax":d,"aria-valuemin":0,"aria-valuenow":sm(m)?m:void 0,"aria-valuetext":f,role:"progressbar","data-state":Sw(m,d),"data-value":m??void 0,"data-max":d,...c,ref:t})})});ww.displayName=A1;var jw="ProgressIndicator",Nw=w.forwardRef((e,t)=>{const{__scopeProgress:n,...a}=e,l=TE(jw,n);return r.jsx(bw.div,{"data-state":Sw(l.value,l.max),"data-value":l.value??void 0,"data-max":l.max,...a,ref:t})});Nw.displayName=jw;function _E(e,t){return`${Math.round(e/t*100)}%`}function Sw(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function sm(e){return typeof e=="number"}function gb(e){return sm(e)&&!isNaN(e)&&e>0}function vb(e,t){return sm(e)&&!isNaN(e)&&e<=t&&e>=0}function ME(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${D1}\`.`}function EE(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be: + - a positive number + - less than the value passed to \`max\` (or ${D1} if no \`max\` prop is set) + - \`null\` or \`undefined\` if the progress is indeterminate. + +Defaulting to \`null\`.`}var kw=ww,AE=Nw;const Lu=w.forwardRef(({className:e,value:t,...n},a)=>r.jsx(kw,{ref:a,className:me("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",e),...n,children:r.jsx(AE,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));Lu.displayName=kw.displayName;const DE={light:"",dark:".dark"},Cw=w.createContext(null);function Tw(){const e=w.useContext(Cw);if(!e)throw new Error("useChart must be used within a ");return e}const jo=w.forwardRef(({id:e,className:t,children:n,config:a,...l},o)=>{const c=w.useId(),d=`chart-${e||c.replace(/:/g,"")}`;return r.jsx(Cw.Provider,{value:{config:a},children:r.jsxs("div",{"data-chart":d,ref:o,className:me("flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none",t),...l,children:[r.jsx(zE,{id:d,config:a}),r.jsx(LC,{children:n})]})})});jo.displayName="Chart";const zE=({id:e,config:t})=>{const n=Object.entries(t).filter(([,a])=>a.theme||a.color);return n.length?r.jsx("style",{dangerouslySetInnerHTML:{__html:Object.entries(DE).map(([a,l])=>` +${l} [data-chart=${e}] { +${n.map(([o,c])=>{const d=c.theme?.[a]||c.color;return d?` --color-${o}: ${d};`:null}).join(` +`)} +} +`).join(` +`)}}):null},Kc=PC,No=w.forwardRef(({active:e,payload:t,className:n,indicator:a="dot",hideLabel:l=!1,hideIndicator:o=!1,label:c,labelFormatter:d,labelClassName:m,formatter:f,color:p,nameKey:x,labelKey:y},b)=>{const{config:j}=Tw(),k=w.useMemo(()=>{if(l||!t?.length)return null;const[_]=t,M=`${y||_?.dataKey||_?.name||"value"}`,D=Cx(j,_,M),z=!y&&typeof c=="string"?j[c]?.label||c:D?.label;return d?r.jsx("div",{className:me("font-medium",m),children:d(z,t)}):z?r.jsx("div",{className:me("font-medium",m),children:z}):null},[c,d,t,l,m,j,y]);if(!e||!t?.length)return null;const S=t.length===1&&a!=="dot";return r.jsxs("div",{ref:b,className:me("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl",n),children:[S?null:k,r.jsx("div",{className:"grid gap-1.5",children:t.filter(_=>_.type!=="none").map((_,M)=>{const D=`${x||_.name||_.dataKey||"value"}`,z=Cx(j,_,D),L=p||_.payload.fill||_.color;return r.jsx("div",{className:me("flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",a==="dot"&&"items-center"),children:f&&_?.value!==void 0&&_.name?f(_.value,_.name,_,M,_.payload):r.jsxs(r.Fragment,{children:[z?.icon?r.jsx(z.icon,{}):!o&&r.jsx("div",{className:me("shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]",{"h-2.5 w-2.5":a==="dot","w-1":a==="line","w-0 border-[1.5px] border-dashed bg-transparent":a==="dashed","my-0.5":S&&a==="dashed"}),style:{"--color-bg":L,"--color-border":L}}),r.jsxs("div",{className:me("flex flex-1 justify-between leading-none",S?"items-end":"items-center"),children:[r.jsxs("div",{className:"grid gap-1.5",children:[S?k:null,r.jsx("span",{className:"text-muted-foreground",children:z?.label||_.name})]}),_.value&&r.jsx("span",{className:"font-mono font-medium tabular-nums text-foreground",children:_.value.toLocaleString()})]})]})},_.dataKey)})})]})});No.displayName="ChartTooltip";const OE=FC,_w=w.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:a="bottom",nameKey:l},o)=>{const{config:c}=Tw();return n?.length?r.jsx("div",{ref:o,className:me("flex items-center justify-center gap-4",a==="top"?"pb-3":"pt-3",e),children:n.filter(d=>d.type!=="none").map(d=>{const m=`${l||d.dataKey||"value"}`,f=Cx(c,d,m);return r.jsxs("div",{className:me("flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"),children:[f?.icon&&!t?r.jsx(f.icon,{}):r.jsx("div",{className:"h-2 w-2 shrink-0 rounded-[2px]",style:{backgroundColor:d.color}}),f?.label]},d.value)})}):null});_w.displayName="ChartLegend";function Cx(e,t,n){if(typeof t!="object"||t===null)return;const a="payload"in t&&typeof t.payload=="object"&&t.payload!==null?t.payload:void 0;let l=n;return n in t&&typeof t[n]=="string"?l=t[n]:a&&n in a&&typeof a[n]=="string"&&(l=a[n]),l in e?e[l]:e[n]}const yb=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,bb=E5,Wo=(e,t)=>n=>{var a;if(t?.variants==null)return bb(e,n?.class,n?.className);const{variants:l,defaultVariants:o}=t,c=Object.keys(l).map(f=>{const p=n?.[f],x=o?.[f];if(p===null)return null;const y=yb(p)||yb(x);return l[f][y]}),d=n&&Object.entries(n).reduce((f,p)=>{let[x,y]=p;return y===void 0||(f[x]=y),f},{}),m=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((f,p)=>{let{class:x,className:y,...b}=p;return Object.entries(b).every(j=>{let[k,S]=j;return Array.isArray(S)?S.includes({...o,...d}[k]):{...o,...d}[k]===S})?[...f,x,y]:f},[]);return bb(e,c,m,n?.class,n?.className)},pu=Wo("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),re=w.forwardRef(({className:e,variant:t,size:n,asChild:a=!1,...l},o)=>{const c=a?VC:"button";return r.jsx(c,{className:me(pu({variant:t,size:n,className:e})),ref:o,...l})});re.displayName="Button";function RE(){const[e,t]=w.useState(null),[n,a]=w.useState(!0),[l,o]=w.useState(0),[c,d]=w.useState(24),[m,f]=w.useState(!0),[p,x]=w.useState(null),[y,b]=w.useState(!0),j=w.useCallback(async()=>{try{b(!0);const $=await Mn.get("https://v1.hitokoto.cn/?c=a&c=b&c=c&c=d&c=h&c=i&c=k");x({hitokoto:$.data.hitokoto,from:$.data.from||$.data.from_who||"未知"})}catch($){console.error("获取一言失败:",$),x({hitokoto:"人生就像一盒巧克力,你永远不知道下一颗是什么味道。",from:"阿甘正传"})}finally{b(!1)}},[]),k=w.useCallback(async()=>{try{const $=localStorage.getItem("access-token"),I=await Mn.get(`/api/webui/statistics/dashboard?hours=${c}`,{headers:{Authorization:`Bearer ${$}`}});t(I.data),a(!1),o(100)}catch($){console.error("Failed to fetch dashboard data:",$),a(!1),o(100)}},[c]);if(w.useEffect(()=>{if(!n)return;o(0);const $=setTimeout(()=>o(15),200),I=setTimeout(()=>o(30),800),G=setTimeout(()=>o(45),2e3),te=setTimeout(()=>o(60),4e3),we=setTimeout(()=>o(75),6500),J=setTimeout(()=>o(85),9e3),ae=setTimeout(()=>o(92),11e3);return()=>{clearTimeout($),clearTimeout(I),clearTimeout(G),clearTimeout(te),clearTimeout(we),clearTimeout(J),clearTimeout(ae)}},[n]),w.useEffect(()=>{k(),j()},[k,j]),w.useEffect(()=>{if(!m)return;const $=setInterval(()=>{k()},3e4);return()=>clearInterval($)},[m,k]),n||!e)return r.jsx("div",{className:"flex items-center justify-center h-[calc(100vh-200px)]",children:r.jsxs("div",{className:"text-center space-y-6 w-full max-w-md px-4",children:[r.jsx(Os,{className:"h-12 w-12 animate-spin mx-auto text-primary"}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-lg font-medium",children:"加载统计数据中..."}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"正在获取麦麦运行数据"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Lu,{value:l,className:"h-2"}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:[l,"%"]})]})]})});const{summary:S,model_stats:_,hourly_data:M,daily_data:D,recent_activity:z}=e,L=$=>{const I=Math.floor($/3600),G=Math.floor($%3600/60);return`${I}小时${G}分钟`},E=$=>new Date($).toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}),R=_.slice(0,6).map($=>({name:$.model_name,value:$.request_count,fill:`hsl(var(--chart-${_.indexOf($)%5+1}))`})),H={requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"},tokens:{label:"Tokens",color:"hsl(var(--chart-3))"}};return r.jsx(Xt,{className:"h-full",children:r.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"实时监控面板"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"麦麦运行状态和统计数据一览"})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[r.jsx(Sl,{value:c.toString(),onValueChange:$=>d(Number($)),children:r.jsxs(Ls,{className:"grid grid-cols-3 w-full sm:w-auto",children:[r.jsx(Rt,{value:"24",children:"24小时"}),r.jsx(Rt,{value:"168",children:"7天"}),r.jsx(Rt,{value:"720",children:"30天"})]})}),r.jsxs(re,{variant:m?"default":"outline",size:"sm",onClick:()=>f(!m),className:"gap-2",children:[r.jsx(Os,{className:`h-4 w-4 ${m?"animate-spin":""}`}),r.jsx("span",{className:"hidden sm:inline",children:"自动刷新"})]}),r.jsx(re,{variant:"outline",size:"sm",onClick:k,children:r.jsx(Os,{className:"h-4 w-4"})})]})]}),r.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"总请求数"}),r.jsx(aT,{className:"h-4 w-4 text-muted-foreground"})]}),r.jsxs(Vt,{children:[r.jsx("div",{className:"text-2xl font-bold",children:S.total_requests.toLocaleString()}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["最近",c<48?c+"小时":Math.floor(c/24)+"天"]})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"总花费"}),r.jsx(sT,{className:"h-4 w-4 text-muted-foreground"})]}),r.jsxs(Vt,{children:[r.jsxs("div",{className:"text-2xl font-bold",children:["¥",S.total_cost.toFixed(2)]}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:S.cost_per_hour>0?`¥${S.cost_per_hour.toFixed(2)}/小时`:"暂无数据"})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"Token消耗"}),r.jsx(lT,{className:"h-4 w-4 text-muted-foreground"})]}),r.jsxs(Vt,{children:[r.jsxs("div",{className:"text-2xl font-bold",children:[(S.total_tokens/1e3).toFixed(1),"K"]}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:S.tokens_per_hour>0?`${(S.tokens_per_hour/1e3).toFixed(1)}K/小时`:"暂无数据"})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"平均响应"}),r.jsx(mu,{className:"h-4 w-4 text-muted-foreground"})]}),r.jsxs(Vt,{children:[r.jsxs("div",{className:"text-2xl font-bold",children:[S.avg_response_time.toFixed(2),"s"]}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"API平均耗时"})]})]})]}),r.jsxs("div",{className:"grid gap-4 grid-cols-1 sm:grid-cols-3",children:[r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"在线时长"}),r.jsx(ui,{className:"h-4 w-4 text-muted-foreground"})]}),r.jsx(Vt,{children:r.jsx("div",{className:"text-xl font-bold",children:L(S.online_time)})})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"消息处理"}),r.jsx(_u,{className:"h-4 w-4 text-muted-foreground"})]}),r.jsxs(Vt,{children:[r.jsx("div",{className:"text-xl font-bold",children:S.total_messages.toLocaleString()}),r.jsxs("p",{className:"text-xs text-muted-foreground mt-1",children:["回复 ",S.total_replies.toLocaleString()," 条"]})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"成本效率"}),r.jsx(iT,{className:"h-4 w-4 text-muted-foreground"})]}),r.jsxs(Vt,{children:[r.jsx("div",{className:"text-xl font-bold",children:S.total_messages>0?`¥${(S.total_cost/S.total_messages*100).toFixed(2)}`:"¥0.00"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"每100条消息"})]})]})]}),r.jsxs(Sl,{defaultValue:"trends",className:"space-y-4",children:[r.jsxs(Ls,{className:"grid w-full grid-cols-2 sm:grid-cols-4",children:[r.jsx(Rt,{value:"trends",children:"趋势"}),r.jsx(Rt,{value:"models",children:"模型"}),r.jsx(Rt,{value:"activity",children:"活动"}),r.jsx(Rt,{value:"daily",children:"日统计"})]}),r.jsxs(ln,{value:"trends",className:"space-y-4",children:[r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"请求趋势"}),r.jsxs(tr,{children:["最近",c,"小时的请求量变化"]})]}),r.jsx(Vt,{children:r.jsx(jo,{config:H,className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:r.jsxs(IC,{data:M,children:[r.jsx(x0,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),r.jsx(g0,{dataKey:"timestamp",tickFormatter:$=>E($),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Gc,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Kc,{content:r.jsx(No,{labelFormatter:$=>E($)})}),r.jsx(qC,{type:"monotone",dataKey:"requests",stroke:"var(--color-requests)",strokeWidth:2})]})})})]}),r.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"花费趋势"}),r.jsx(tr,{children:"API调用成本变化"})]}),r.jsx(Vt,{children:r.jsx(jo,{config:H,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:r.jsxs(fp,{data:M,children:[r.jsx(x0,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),r.jsx(g0,{dataKey:"timestamp",tickFormatter:$=>E($),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Gc,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Kc,{content:r.jsx(No,{labelFormatter:$=>E($)})}),r.jsx(v0,{dataKey:"cost",fill:"var(--color-cost)"})]})})})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"Token消耗"}),r.jsx(tr,{children:"Token使用量变化"})]}),r.jsx(Vt,{children:r.jsx(jo,{config:H,className:"h-[250px] sm:h-[300px] w-full aspect-auto",children:r.jsxs(fp,{data:M,children:[r.jsx(x0,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),r.jsx(g0,{dataKey:"timestamp",tickFormatter:$=>E($),angle:-45,textAnchor:"end",height:60,stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Gc,{stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Kc,{content:r.jsx(No,{labelFormatter:$=>E($)})}),r.jsx(v0,{dataKey:"tokens",fill:"var(--color-tokens)"})]})})})]})]})]}),r.jsx(ln,{value:"models",className:"space-y-4",children:r.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"模型请求分布"}),r.jsx(tr,{children:"各模型使用占比"})]}),r.jsx(Vt,{children:r.jsx(jo,{config:Object.fromEntries(_.slice(0,6).map(($,I)=>[$.model_name,{label:$.model_name,color:`hsl(var(--chart-${I%5+1}))`}])),className:"h-[300px] sm:h-[400px] w-full aspect-auto",children:r.jsxs(HC,{children:[r.jsx(Kc,{content:r.jsx(No,{})}),r.jsx(UC,{data:R,cx:"50%",cy:"50%",labelLine:!1,label:({name:$,percent:I})=>`${$} ${I?(I*100).toFixed(0):0}%`,outerRadius:100,dataKey:"value",children:R.map(($,I)=>r.jsx($C,{fill:$.fill},`cell-${I}`))})]})})})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"模型详细统计"}),r.jsx(tr,{children:"请求数、花费和性能"})]}),r.jsx(Vt,{children:r.jsx(Xt,{className:"h-[300px] sm:h-[400px]",children:r.jsx("div",{className:"space-y-3",children:_.map(($,I)=>r.jsxs("div",{className:"p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[r.jsxs("div",{className:"flex items-center justify-between mb-2",children:[r.jsx("h4",{className:"font-semibold text-sm truncate flex-1 min-w-0",children:$.model_name}),r.jsx("div",{className:"w-3 h-3 rounded-full ml-2 flex-shrink-0",style:{backgroundColor:`hsl(var(--chart-${I%5+1}))`}})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs",children:[r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground",children:"请求数:"}),r.jsx("span",{className:"ml-1 font-medium",children:$.request_count.toLocaleString()})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground",children:"花费:"}),r.jsxs("span",{className:"ml-1 font-medium",children:["¥",$.total_cost.toFixed(2)]})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),r.jsxs("span",{className:"ml-1 font-medium",children:[($.total_tokens/1e3).toFixed(1),"K"]})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground",children:"平均耗时:"}),r.jsxs("span",{className:"ml-1 font-medium",children:[$.avg_response_time.toFixed(2),"s"]})]})]})]},I))})})})]})]})}),r.jsx(ln,{value:"activity",children:r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"最近活动"}),r.jsx(tr,{children:"最新的API调用记录"})]}),r.jsx(Vt,{children:r.jsx(Xt,{className:"h-[400px] sm:h-[500px]",children:r.jsx("div",{className:"space-y-2",children:z.map(($,I)=>r.jsxs("div",{className:"p-3 sm:p-4 rounded-lg border bg-card hover:bg-accent/50 transition-colors",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-2 mb-2",children:[r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("div",{className:"font-medium text-sm truncate",children:$.model}),r.jsx("div",{className:"text-xs text-muted-foreground",children:$.request_type})]}),r.jsx("div",{className:"text-xs text-muted-foreground flex-shrink-0",children:E($.timestamp)})]}),r.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs",children:[r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground",children:"Tokens:"}),r.jsx("span",{className:"ml-1",children:$.tokens})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground",children:"花费:"}),r.jsxs("span",{className:"ml-1",children:["¥",$.cost.toFixed(4)]})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground",children:"耗时:"}),r.jsxs("span",{className:"ml-1",children:[$.time_cost.toFixed(2),"s"]})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground",children:"状态:"}),r.jsx("span",{className:`ml-1 ${$.status==="success"?"text-green-600":"text-red-600"}`,children:$.status})]})]})]},I))})})})]})}),r.jsx(ln,{value:"daily",children:r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"每日统计"}),r.jsx(tr,{children:"最近7天的数据汇总"})]}),r.jsx(Vt,{children:r.jsx(jo,{config:{requests:{label:"请求数",color:"hsl(var(--chart-1))"},cost:{label:"花费(¥)",color:"hsl(var(--chart-2))"}},className:"h-[400px] sm:h-[500px] w-full aspect-auto",children:r.jsxs(fp,{data:D,children:[r.jsx(x0,{strokeDasharray:"3 3",stroke:"hsl(var(--muted-foreground) / 0.2)"}),r.jsx(g0,{dataKey:"timestamp",tickFormatter:$=>{const I=new Date($);return`${I.getMonth()+1}/${I.getDate()}`},stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Gc,{yAxisId:"left",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Gc,{yAxisId:"right",orientation:"right",stroke:"hsl(var(--muted-foreground))",tick:{fill:"hsl(var(--muted-foreground))"}}),r.jsx(Kc,{content:r.jsx(No,{labelFormatter:$=>new Date($).toLocaleDateString("zh-CN")})}),r.jsx(OE,{content:r.jsx(_w,{})}),r.jsx(v0,{yAxisId:"left",dataKey:"requests",fill:"var(--color-requests)"}),r.jsx(v0,{yAxisId:"right",dataKey:"cost",fill:"var(--color-cost)"})]})})})]})})]}),r.jsxs(ot,{className:"border-2 border-primary/20",children:[r.jsx(Bt,{className:"pb-3",children:r.jsx(Lt,{className:"text-lg",children:"每日一言"})}),r.jsx(Vt,{children:y?r.jsxs("div",{className:"space-y-2",children:[r.jsx(xb,{className:"h-6 w-3/4"}),r.jsx(xb,{className:"h-4 w-1/4"})]}):p?r.jsxs("div",{className:"space-y-2",children:[r.jsxs("p",{className:"text-lg font-medium leading-relaxed italic",children:['"',p.hitokoto,'"']}),r.jsxs("p",{className:"text-sm text-muted-foreground text-right",children:["—— ",p.from]})]}):null})]})]})})}const BE={theme:"system",setTheme:()=>null},Mw=w.createContext(BE),z1=()=>{const e=w.useContext(Mw);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e},LE=(e,t,n)=>{const a=document.documentElement.classList.contains("no-animations");if(!document.startViewTransition||a){t(e);return}const l=n.clientX,o=n.clientY,c=Math.hypot(Math.max(l,innerWidth-l),Math.max(o,innerHeight-o));document.startViewTransition(()=>{t(e)}).ready.then(()=>{document.documentElement.animate({clipPath:[`circle(0px at ${l}px ${o}px)`,`circle(${c}px at ${l}px ${o}px)`]},{duration:500,easing:"ease-in-out",pseudoElement:"::view-transition-new(root)"})})},Ew=w.createContext(void 0),Aw=()=>{const e=w.useContext(Ew);if(e===void 0)throw new Error("useAnimation must be used within an AnimationProvider");return e};var zm="Switch",[PE]=Ha(zm),[FE,IE]=PE(zm),Dw=w.forwardRef((e,t)=>{const{__scopeSwitch:n,name:a,checked:l,defaultChecked:o,required:c,disabled:d,value:m="on",onCheckedChange:f,form:p,...x}=e,[y,b]=w.useState(null),j=dn(t,D=>b(D)),k=w.useRef(!1),S=y?p||!!y.closest("form"):!0,[_,M]=Dl({prop:l,defaultProp:o??!1,onChange:f,caller:zm});return r.jsxs(FE,{scope:n,checked:_,disabled:d,children:[r.jsx(Ft.button,{type:"button",role:"switch","aria-checked":_,"aria-required":c,"data-state":Bw(_),"data-disabled":d?"":void 0,disabled:d,value:m,...x,ref:j,onClick:Pe(e.onClick,D=>{M(z=>!z),S&&(k.current=D.isPropagationStopped(),k.current||D.stopPropagation())})}),S&&r.jsx(Rw,{control:y,bubbles:!k.current,name:a,value:m,checked:_,required:c,disabled:d,form:p,style:{transform:"translateX(-100%)"}})]})});Dw.displayName=zm;var zw="SwitchThumb",Ow=w.forwardRef((e,t)=>{const{__scopeSwitch:n,...a}=e,l=IE(zw,n);return r.jsx(Ft.span,{"data-state":Bw(l.checked),"data-disabled":l.disabled?"":void 0,...a,ref:t})});Ow.displayName=zw;var qE="SwitchBubbleInput",Rw=w.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:a=!0,...l},o)=>{const c=w.useRef(null),d=dn(c,o),m=D5(n),f=z5(t);return w.useEffect(()=>{const p=c.current;if(!p)return;const x=window.HTMLInputElement.prototype,b=Object.getOwnPropertyDescriptor(x,"checked").set;if(m!==n&&b){const j=new Event("click",{bubbles:a});b.call(p,n),p.dispatchEvent(j)}},[m,n,a]),r.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...l,tabIndex:-1,ref:d,style:{...l.style,...f,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});Rw.displayName=qE;function Bw(e){return e?"checked":"unchecked"}var Lw=Dw,HE=Ow;const gt=w.forwardRef(({className:e,...t},n)=>r.jsx(Lw,{className:me("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",e),...t,ref:n,children:r.jsx(HE,{className:me("pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));gt.displayName=Lw.displayName;const UE=Wo("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),Q=w.forwardRef(({className:e,...t},n)=>r.jsx(O5,{ref:n,className:me(UE(),e),...t}));Q.displayName=O5.displayName;const Te=w.forwardRef(({className:e,type:t,...n},a)=>r.jsx("input",{type:t,className:me("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:a,...n}));Te.displayName="Input";const $E=1,VE=1e6;let Sp=0;function GE(){return Sp=(Sp+1)%Number.MAX_SAFE_INTEGER,Sp.toString()}const kp=new Map,wb=e=>{if(kp.has(e))return;const t=setTimeout(()=>{kp.delete(e),iu({type:"REMOVE_TOAST",toastId:e})},VE);kp.set(e,t)},YE=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,$E)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?wb(n):e.toasts.forEach(a=>{wb(a.id)}),{...e,toasts:e.toasts.map(a=>a.id===n||n===void 0?{...a,open:!1}:a)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},$0=[];let V0={toasts:[]};function iu(e){V0=YE(V0,e),$0.forEach(t=>{t(V0)})}function WE({...e}){const t=GE(),n=l=>iu({type:"UPDATE_TOAST",toast:{...l,id:t}}),a=()=>iu({type:"DISMISS_TOAST",toastId:t});return iu({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:l=>{l||a()}}}),{id:t,dismiss:a,update:n}}function pr(){const[e,t]=w.useState(V0);return w.useEffect(()=>($0.push(t),()=>{const n=$0.indexOf(t);n>-1&&$0.splice(n,1)}),[e]),{...e,toast:WE,dismiss:n=>iu({type:"DISMISS_TOAST",toastId:n})}}const XE=[{id:"minLength",label:"长度至少 10 位",description:"Token 长度必须大于等于 10 个字符",validate:e=>e.length>=10},{id:"hasUppercase",label:"包含大写字母",description:"至少包含一个大写字母 (A-Z)",validate:e=>/[A-Z]/.test(e)},{id:"hasLowercase",label:"包含小写字母",description:"至少包含一个小写字母 (a-z)",validate:e=>/[a-z]/.test(e)},{id:"hasSpecialChar",label:"包含特殊符号",description:"至少包含一个特殊符号 (!@#$%^&*()_+-=[]{}|;:,.<>?/)",validate:e=>/[!@#$%^&*()_+\-=[\]{}|;:,.<>?/]/.test(e)}];function KE(e){const t=XE.map(a=>({id:a.id,label:a.label,description:a.description,passed:a.validate(e)}));return{isValid:t.every(a=>a.passed),rules:t}}const O1="0.11.5 Beta",R1="MaiBot Dashboard",QE=`${R1} v${O1}`,ZE=(e="v")=>`${e}${O1}`,hr=f1,Pw=R5,JE=u1,Fw=w.forwardRef(({className:e,...t},n)=>r.jsx(ym,{ref:n,className:me("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));Fw.displayName=ym.displayName;const nr=w.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(JE,{children:[r.jsx(Fw,{}),r.jsxs(bm,{ref:a,className:me("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...n,children:[t,r.jsxs(d1,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[r.jsx(Mu,{className:"h-4 w-4"}),r.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));nr.displayName=bm.displayName;const rr=({className:e,...t})=>r.jsx("div",{className:me("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});rr.displayName="DialogHeader";const Yr=({className:e,...t})=>r.jsx("div",{className:me("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Yr.displayName="DialogFooter";const ar=w.forwardRef(({className:e,...t},n)=>r.jsx(m1,{ref:n,className:me("text-lg font-semibold leading-none tracking-tight",e),...t}));ar.displayName=m1.displayName;const wr=w.forwardRef(({className:e,...t},n)=>r.jsx(h1,{ref:n,className:me("text-sm text-muted-foreground",e),...t}));wr.displayName=h1.displayName;var eA=Symbol("radix.slottable");function tA(e){const t=({children:n})=>r.jsx(r.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=eA,t}var Iw="AlertDialog",[nA]=Ha(Iw,[B5]),Hs=B5(),qw=e=>{const{__scopeAlertDialog:t,...n}=e,a=Hs(t);return r.jsx(f1,{...a,...n,modal:!0})};qw.displayName=Iw;var rA="AlertDialogTrigger",Hw=w.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,l=Hs(n);return r.jsx(R5,{...l,...a,ref:t})});Hw.displayName=rA;var aA="AlertDialogPortal",Uw=e=>{const{__scopeAlertDialog:t,...n}=e,a=Hs(t);return r.jsx(u1,{...a,...n})};Uw.displayName=aA;var sA="AlertDialogOverlay",$w=w.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,l=Hs(n);return r.jsx(ym,{...l,...a,ref:t})});$w.displayName=sA;var Eo="AlertDialogContent",[lA,iA]=nA(Eo),oA=tA("AlertDialogContent"),Vw=w.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:a,...l}=e,o=Hs(n),c=w.useRef(null),d=dn(t,c),m=w.useRef(null);return r.jsx(GC,{contentName:Eo,titleName:Gw,docsSlug:"alert-dialog",children:r.jsx(lA,{scope:n,cancelRef:m,children:r.jsxs(bm,{role:"alertdialog",...o,...l,ref:d,onOpenAutoFocus:Pe(l.onOpenAutoFocus,f=>{f.preventDefault(),m.current?.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[r.jsx(oA,{children:a}),r.jsx(uA,{contentRef:c})]})})})});Vw.displayName=Eo;var Gw="AlertDialogTitle",Yw=w.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,l=Hs(n);return r.jsx(m1,{...l,...a,ref:t})});Yw.displayName=Gw;var Ww="AlertDialogDescription",Xw=w.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,l=Hs(n);return r.jsx(h1,{...l,...a,ref:t})});Xw.displayName=Ww;var cA="AlertDialogAction",Kw=w.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,l=Hs(n);return r.jsx(d1,{...l,...a,ref:t})});Kw.displayName=cA;var Qw="AlertDialogCancel",Zw=w.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,{cancelRef:l}=iA(Qw,n),o=Hs(n),c=dn(t,l);return r.jsx(d1,{...o,...a,ref:c})});Zw.displayName=Qw;var uA=({contentRef:e})=>{const t=`\`${Eo}\` requires a description for the component to be accessible for screen reader users. + +You can add a description to the \`${Eo}\` by passing a \`${Ww}\` component as a child, which also benefits sighted users by adding visible context to the dialog. + +Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Eo}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component. + +For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return w.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},dA=qw,mA=Hw,hA=Uw,Jw=$w,e7=Vw,t7=Kw,n7=Zw,r7=Yw,a7=Xw;const cn=dA,Xn=mA,fA=hA,s7=w.forwardRef(({className:e,...t},n)=>r.jsx(Jw,{className:me("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));s7.displayName=Jw.displayName;const Kt=w.forwardRef(({className:e,...t},n)=>r.jsxs(fA,{children:[r.jsx(s7,{}),r.jsx(e7,{ref:n,className:me("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));Kt.displayName=e7.displayName;const Qt=({className:e,...t})=>r.jsx("div",{className:me("flex flex-col space-y-2 text-center sm:text-left",e),...t});Qt.displayName="AlertDialogHeader";const Zt=({className:e,...t})=>r.jsx("div",{className:me("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Zt.displayName="AlertDialogFooter";const Jt=w.forwardRef(({className:e,...t},n)=>r.jsx(r7,{ref:n,className:me("text-lg font-semibold",e),...t}));Jt.displayName=r7.displayName;const en=w.forwardRef(({className:e,...t},n)=>r.jsx(a7,{ref:n,className:me("text-sm text-muted-foreground",e),...t}));en.displayName=a7.displayName;const tn=w.forwardRef(({className:e,...t},n)=>r.jsx(t7,{ref:n,className:me(pu(),e),...t}));tn.displayName=t7.displayName;const nn=w.forwardRef(({className:e,...t},n)=>r.jsx(n7,{ref:n,className:me(pu({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));nn.displayName=n7.displayName;function pA(){return r.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[r.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"系统设置"}),r.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理您的应用偏好设置"})]})}),r.jsxs(Sl,{defaultValue:"appearance",className:"w-full",children:[r.jsxs(Ls,{className:"grid w-full grid-cols-2 sm:grid-cols-4 gap-0.5 sm:gap-1 h-auto p-1",children:[r.jsxs(Rt,{value:"appearance",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[r.jsx(Q5,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),r.jsx("span",{children:"外观"})]}),r.jsxs(Rt,{value:"security",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[r.jsx(oT,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),r.jsx("span",{children:"安全"})]}),r.jsxs(Rt,{value:"other",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[r.jsx(Pa,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),r.jsx("span",{children:"其他"})]}),r.jsxs(Rt,{value:"about",className:"gap-1 sm:gap-2 text-xs sm:text-sm px-2 sm:px-3 py-2",children:[r.jsx(hi,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4",strokeWidth:2,fill:"none"}),r.jsx("span",{children:"关于"})]})]}),r.jsxs(Xt,{className:"h-[calc(100vh-240px)] sm:h-[calc(100vh-280px)] mt-4 sm:mt-6",children:[r.jsx(ln,{value:"appearance",className:"mt-0",children:r.jsx(xA,{})}),r.jsx(ln,{value:"security",className:"mt-0",children:r.jsx(gA,{})}),r.jsx(ln,{value:"other",className:"mt-0",children:r.jsx(vA,{})}),r.jsx(ln,{value:"about",className:"mt-0",children:r.jsx(yA,{})})]})]})]})}function jb(e){const t=document.documentElement,a={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[e];if(a)t.style.setProperty("--primary",a.hsl),a.gradient?(t.style.setProperty("--primary-gradient",a.gradient),t.classList.add("has-gradient")):(t.style.removeProperty("--primary-gradient"),t.classList.remove("has-gradient"));else if(e.startsWith("#")){const l=o=>{o=o.replace("#","");const c=parseInt(o.substring(0,2),16)/255,d=parseInt(o.substring(2,4),16)/255,m=parseInt(o.substring(4,6),16)/255,f=Math.max(c,d,m),p=Math.min(c,d,m);let x=0,y=0;const b=(f+p)/2;if(f!==p){const j=f-p;switch(y=b>.5?j/(2-f-p):j/(f+p),f){case c:x=((d-m)/j+(dlocalStorage.getItem("accent-color")||"blue");w.useEffect(()=>{const f=localStorage.getItem("accent-color")||"blue";jb(f)},[]);const m=f=>{d(f),localStorage.setItem("accent-color",f),jb(f)};return r.jsxs("div",{className:"space-y-6 sm:space-y-8",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题模式"}),r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-3 sm:gap-4",children:[r.jsx(Cp,{value:"light",current:e,onChange:t,label:"浅色",description:"始终使用浅色主题"}),r.jsx(Cp,{value:"dark",current:e,onChange:t,label:"深色",description:"始终使用深色主题"}),r.jsx(Cp,{value:"system",current:e,onChange:t,label:"跟随系统",description:"根据系统设置自动切换"})]})]}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"主题色"}),r.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[r.jsxs("div",{children:[r.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"单色"}),r.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[r.jsx(Sa,{value:"blue",current:c,onChange:m,label:"蓝色",colorClass:"bg-blue-500"}),r.jsx(Sa,{value:"purple",current:c,onChange:m,label:"紫色",colorClass:"bg-purple-500"}),r.jsx(Sa,{value:"green",current:c,onChange:m,label:"绿色",colorClass:"bg-green-500"}),r.jsx(Sa,{value:"orange",current:c,onChange:m,label:"橙色",colorClass:"bg-orange-500"}),r.jsx(Sa,{value:"pink",current:c,onChange:m,label:"粉色",colorClass:"bg-pink-500"}),r.jsx(Sa,{value:"red",current:c,onChange:m,label:"红色",colorClass:"bg-red-500"})]})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"渐变色"}),r.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-6 gap-2 sm:gap-3",children:[r.jsx(Sa,{value:"gradient-sunset",current:c,onChange:m,label:"日落",colorClass:"bg-gradient-to-r from-orange-500 to-pink-500"}),r.jsx(Sa,{value:"gradient-ocean",current:c,onChange:m,label:"海洋",colorClass:"bg-gradient-to-r from-blue-500 to-cyan-500"}),r.jsx(Sa,{value:"gradient-forest",current:c,onChange:m,label:"森林",colorClass:"bg-gradient-to-r from-green-500 to-emerald-500"}),r.jsx(Sa,{value:"gradient-aurora",current:c,onChange:m,label:"极光",colorClass:"bg-gradient-to-r from-purple-500 to-pink-500"}),r.jsx(Sa,{value:"gradient-fire",current:c,onChange:m,label:"烈焰",colorClass:"bg-gradient-to-r from-red-500 to-orange-500"}),r.jsx(Sa,{value:"gradient-twilight",current:c,onChange:m,label:"暮光",colorClass:"bg-gradient-to-r from-indigo-500 to-purple-500"})]})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"text-xs sm:text-sm font-medium mb-2 sm:mb-3",children:"自定义颜色"}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 sm:gap-4",children:[r.jsx("div",{className:"flex-1",children:r.jsx("input",{type:"color",value:c.startsWith("#")?c:"#3b82f6",onChange:f=>m(f.target.value),className:"h-10 sm:h-12 w-full rounded-lg border-2 border-border cursor-pointer",title:"选择自定义颜色"})}),r.jsx("div",{className:"flex-1",children:r.jsx(Te,{type:"text",value:c,onChange:f=>m(f.target.value),placeholder:"#3b82f6",className:"font-mono text-sm"})})]}),r.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground mt-2",children:"点击色块选择颜色,或手动输入 HEX 颜色代码"})]})]})]}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"动画效果"}),r.jsxs("div",{className:"space-y-2 sm:space-y-3",children:[r.jsx("div",{className:"rounded-lg border bg-card p-3 sm:p-4",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-0.5 flex-1",children:[r.jsx(Q,{htmlFor:"animations",className:"text-base font-medium cursor-pointer",children:"启用动画效果"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后将禁用所有过渡动画和特效,提升性能"})]}),r.jsx(gt,{id:"animations",checked:n,onCheckedChange:a})]})}),r.jsx("div",{className:"rounded-lg border bg-card p-4",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-0.5 flex-1",children:[r.jsx(Q,{htmlFor:"waves-background",className:"text-base font-medium cursor-pointer",children:"登录页波浪背景"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭后登录页将使用纯色背景,适合低性能设备"})]}),r.jsx(gt,{id:"waves-background",checked:l,onCheckedChange:o})]})})]})]})]})}function gA(){const e=rs(),[t,n]=w.useState(""),[a,l]=w.useState(""),[o,c]=w.useState(!1),[d,m]=w.useState(!1),[f,p]=w.useState(!1),[x,y]=w.useState(!1),[b,j]=w.useState(!1),[k,S]=w.useState(!1),[_,M]=w.useState(""),[D,z]=w.useState(!1),{toast:L}=pr(),E=w.useMemo(()=>KE(a),[a]),R=()=>localStorage.getItem("access-token")||"",H=async J=>{try{await navigator.clipboard.writeText(J),j(!0),L({title:"复制成功",description:"Token 已复制到剪贴板"}),setTimeout(()=>j(!1),2e3)}catch{L({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},$=async()=>{if(!a.trim()){L({title:"输入错误",description:"请输入新的 Token",variant:"destructive"});return}if(!E.isValid){const J=E.rules.filter(ae=>!ae.passed).map(ae=>ae.label).join(", ");L({title:"格式错误",description:`Token 不符合要求: ${J}`,variant:"destructive"});return}p(!0);try{const J=R(),ae=await fetch("/api/webui/auth/update",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${J}`},body:JSON.stringify({new_token:a.trim()})}),U=await ae.json();ae.ok&&U.success?(localStorage.setItem("access-token",a.trim()),l(""),t&&n(a.trim()),L({title:"更新成功",description:"Access Token 已更新,即将跳转到登录页"}),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},1500)):L({title:"更新失败",description:U.message||"无法更新 Token",variant:"destructive"})}catch(J){console.error("更新 Token 错误:",J),L({title:"更新失败",description:"连接服务器失败",variant:"destructive"})}finally{p(!1)}},I=async()=>{y(!0);try{const J=R(),ae=await fetch("/api/webui/auth/regenerate",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${J}`}}),U=await ae.json();ae.ok&&U.success?(localStorage.setItem("access-token",U.token),n(U.token),M(U.token),S(!0),z(!1),L({title:"生成成功",description:"新的 Access Token 已生成,请及时保存"})):L({title:"生成失败",description:U.message||"无法生成新 Token",variant:"destructive"})}catch(J){console.error("生成 Token 错误:",J),L({title:"生成失败",description:"连接服务器失败",variant:"destructive"})}finally{y(!1)}},G=async()=>{try{await navigator.clipboard.writeText(_),z(!0),L({title:"复制成功",description:"Token 已复制到剪贴板"})}catch{L({title:"复制失败",description:"请手动复制 Token",variant:"destructive"})}},te=()=>{S(!1),setTimeout(()=>{M(""),z(!1)},300),setTimeout(()=>{localStorage.removeItem("access-token"),e({to:"/auth"})},500)},we=J=>{J||te()};return r.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[r.jsx(hr,{open:k,onOpenChange:we,children:r.jsxs(nr,{className:"sm:max-w-md",children:[r.jsxs(rr,{children:[r.jsxs(ar,{className:"flex items-center gap-2",children:[r.jsx(Mo,{className:"h-5 w-5 text-yellow-500"}),"新的 Access Token"]}),r.jsx(wr,{children:"这是您的新 Token,请立即保存。关闭此窗口后将跳转到登录页面。"})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"rounded-lg border-2 border-primary/20 bg-primary/5 p-4",children:[r.jsx(Q,{className:"text-xs text-muted-foreground mb-2 block",children:"您的新 Token (64位安全令牌)"}),r.jsx("div",{className:"font-mono text-sm break-all select-all bg-background p-3 rounded border",children:_})]}),r.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Mo,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5"}),r.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[r.jsx("p",{className:"font-semibold",children:"重要提示"}),r.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[r.jsx("li",{children:"此 Token 仅显示一次,关闭后无法再查看"}),r.jsx("li",{children:"请立即复制并保存到安全的位置"}),r.jsx("li",{children:"关闭窗口后将自动跳转到登录页面"}),r.jsx("li",{children:"请使用新 Token 重新登录系统"})]})]})]})})]}),r.jsxs(Yr,{className:"gap-2 sm:gap-0",children:[r.jsx(re,{variant:"outline",onClick:G,className:"gap-2",children:D?r.jsxs(r.Fragment,{children:[r.jsx(di,{className:"h-4 w-4 text-green-500"}),"已复制"]}):r.jsxs(r.Fragment,{children:[r.jsx(hx,{className:"h-4 w-4"}),"复制 Token"]})}),r.jsx(re,{onClick:te,children:"我已保存,关闭"})]})]})}),r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"当前 Access Token"}),r.jsx("div",{className:"space-y-3 sm:space-y-4",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"current-token",className:"text-sm",children:"您的访问令牌"}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[r.jsxs("div",{className:"relative flex-1",children:[r.jsx(Te,{id:"current-token",type:o?"text":"password",value:t||R(),readOnly:!0,className:"pr-10 font-mono text-sm",placeholder:"点击查看按钮显示 Token"}),r.jsx("button",{onClick:()=>{t||n(R()),c(!o)},className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:o?"隐藏":"显示",children:o?r.jsx(fx,{className:"h-4 w-4 text-muted-foreground"}):r.jsx(qa,{className:"h-4 w-4 text-muted-foreground"})})]}),r.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[r.jsx(re,{variant:"outline",size:"icon",onClick:()=>H(R()),title:"复制到剪贴板",className:"flex-shrink-0",children:b?r.jsx(di,{className:"h-4 w-4 text-green-500"}):r.jsx(hx,{className:"h-4 w-4"})}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsxs(re,{variant:"outline",disabled:x,className:"gap-2 flex-1 sm:flex-none",children:[r.jsx(Os,{className:me("h-4 w-4",x&&"animate-spin")}),r.jsx("span",{className:"hidden sm:inline",children:"重新生成"}),r.jsx("span",{className:"sm:hidden",children:"生成"})]})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认重新生成 Token"}),r.jsx(en,{children:"这将生成一个新的 64 位安全令牌,并使当前 Token 立即失效。 您需要使用新 Token 重新登录系统。此操作不可撤销,确定要继续吗?"})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:I,children:"确认生成"})]})]})]})]})]}),r.jsx("p",{className:"text-[10px] sm:text-xs text-muted-foreground",children:"请妥善保管您的 Access Token,不要泄露给他人"})]})})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"自定义 Access Token"}),r.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"new-token",className:"text-sm",children:"新的访问令牌"}),r.jsxs("div",{className:"relative",children:[r.jsx(Te,{id:"new-token",type:d?"text":"password",value:a,onChange:J=>l(J.target.value),className:"pr-10 font-mono text-sm",placeholder:"输入自定义 Token"}),r.jsx("button",{onClick:()=>m(!d),className:"absolute right-2 top-1/2 -translate-y-1/2 p-1.5 hover:bg-accent rounded",title:d?"隐藏":"显示",children:d?r.jsx(fx,{className:"h-4 w-4 text-muted-foreground"}):r.jsx(qa,{className:"h-4 w-4 text-muted-foreground"})})]}),a&&r.jsxs("div",{className:"mt-3 space-y-2 p-3 rounded-lg bg-muted/50",children:[r.jsx("p",{className:"text-sm font-medium text-foreground",children:"Token 安全要求:"}),r.jsx("div",{className:"space-y-1.5",children:E.rules.map(J=>r.jsxs("div",{className:"flex items-center gap-2 text-sm",children:[J.passed?r.jsx(Ur,{className:"h-4 w-4 text-green-500 flex-shrink-0"}):r.jsx(px,{className:"h-4 w-4 text-muted-foreground flex-shrink-0"}),r.jsx("span",{className:me(J.passed?"text-green-600 dark:text-green-400":"text-muted-foreground"),children:J.label})]},J.id))}),E.isValid&&r.jsx("div",{className:"mt-2 pt-2 border-t border-border",children:r.jsxs("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[r.jsx(di,{className:"h-4 w-4"}),r.jsx("span",{className:"font-medium",children:"Token 格式正确,可以使用"})]})})]})]}),r.jsx(re,{onClick:$,disabled:f||!E.isValid||!a,className:"w-full sm:w-auto",children:f?"更新中...":"更新自定义 Token"})]})]}),r.jsxs("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3 sm:p-4",children:[r.jsx("h4",{className:"text-sm sm:text-base font-semibold text-yellow-900 dark:text-yellow-200 mb-2",children:"安全提示"}),r.jsxs("ul",{className:"text-xs sm:text-sm text-yellow-800 dark:text-yellow-300 space-y-1 list-disc list-inside",children:[r.jsx("li",{children:"重新生成 Token 会创建系统随机生成的 64 位安全令牌"}),r.jsx("li",{children:"自定义 Token 必须满足所有安全要求才能使用"}),r.jsx("li",{children:"更新 Token 后,旧的 Token 将立即失效"}),r.jsx("li",{children:"请在安全的环境下查看和复制 Token"}),r.jsx("li",{children:"如果怀疑 Token 泄露,请立即重新生成或更新"}),r.jsx("li",{children:"建议使用系统生成的 Token 以获得最高安全性"})]})]})]})}function vA(){const e=rs(),{toast:t}=pr(),[n,a]=w.useState(!1),l=async()=>{a(!0);try{const o=localStorage.getItem("access-token"),c=await fetch("/api/webui/setup/reset",{method:"POST",headers:{Authorization:`Bearer ${o}`}}),d=await c.json();c.ok&&d.success?(t({title:"重置成功",description:"即将进入初次配置向导"}),setTimeout(()=>{e({to:"/setup"})},1e3)):t({title:"重置失败",description:d.message||"无法重置配置状态",variant:"destructive"})}catch(o){console.error("重置配置状态错误:",o),t({title:"重置失败",description:"连接服务器失败",variant:"destructive"})}finally{a(!1)}};return r.jsx("div",{className:"space-y-4 sm:space-y-6",children:r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"配置向导"}),r.jsxs("div",{className:"space-y-3 sm:space-y-4",children:[r.jsx("div",{className:"space-y-2",children:r.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"重新进行初次配置向导,可以帮助您重新设置系统的基础配置。"})}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsxs(re,{variant:"outline",disabled:n,className:"gap-2",children:[r.jsx(cT,{className:me("h-4 w-4",n&&"animate-spin")}),"重新进行初次配置"]})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认重新配置"}),r.jsx(en,{children:"这将带您重新进入初次配置向导。您可以重新设置系统的基础配置项。确定要继续吗?"})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:l,children:"确认重置"})]})]})]})]})]})})}function yA(){return r.jsxs("div",{className:"space-y-4 sm:space-y-6",children:[r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[r.jsxs("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:["关于 ",R1]}),r.jsxs("div",{className:"space-y-2 text-xs sm:text-sm text-muted-foreground",children:[r.jsxs("p",{children:["版本: ",O1]}),r.jsx("p",{children:"麦麦(MaiBot)的现代化 Web 管理界面"})]})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"作者"}),r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:"MaiBot 核心"}),r.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Mai-with-u"})]}),r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium",children:"WebUI"}),r.jsxs("p",{className:"text-xs sm:text-sm text-muted-foreground",children:["Mai-with-u ",r.jsx("a",{href:"https://github.com/DrSmoothl",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"@MotricSeven"})]})]})]})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"技术栈"}),r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3 text-xs sm:text-sm text-muted-foreground",children:[r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("p",{className:"font-medium text-foreground",children:"前端框架"}),r.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[r.jsx("li",{children:"React 19.2.0"}),r.jsx("li",{children:"TypeScript 5.7.2"}),r.jsx("li",{children:"Vite 6.0.7"}),r.jsx("li",{children:"TanStack Router 1.94.2"})]})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("p",{className:"font-medium text-foreground",children:"UI 组件"}),r.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[r.jsx("li",{children:"shadcn/ui"}),r.jsx("li",{children:"Radix UI"}),r.jsx("li",{children:"Tailwind CSS 3.4.17"}),r.jsx("li",{children:"Lucide Icons"})]})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("p",{className:"font-medium text-foreground",children:"后端"}),r.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[r.jsx("li",{children:"Python 3.12+"}),r.jsx("li",{children:"FastAPI"}),r.jsx("li",{children:"Uvicorn"}),r.jsx("li",{children:"WebSocket"})]})]}),r.jsxs("div",{className:"space-y-1.5",children:[r.jsx("p",{className:"font-medium text-foreground",children:"构建工具"}),r.jsxs("ul",{className:"space-y-0.5 list-disc list-inside",children:[r.jsx("li",{children:"Bun / npm"}),r.jsx("li",{children:"ESLint 9.17.0"}),r.jsx("li",{children:"PostCSS"})]})]})]})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源库感谢"}),r.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mb-3",children:"本项目使用了以下优秀的开源库,感谢他们的贡献:"}),r.jsx(Xt,{className:"h-[300px] sm:h-[400px]",children:r.jsxs("div",{className:"space-y-4 pr-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-sm font-medium text-foreground",children:"UI 框架与组件"}),r.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[r.jsx(kn,{name:"React",description:"用户界面构建库",license:"MIT"}),r.jsx(kn,{name:"shadcn/ui",description:"优雅的 React 组件库",license:"MIT"}),r.jsx(kn,{name:"Radix UI",description:"无样式的可访问组件库",license:"MIT"}),r.jsx(kn,{name:"Tailwind CSS",description:"实用优先的 CSS 框架",license:"MIT"}),r.jsx(kn,{name:"Lucide React",description:"精美的图标库",license:"ISC"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-sm font-medium text-foreground",children:"路由与状态管理"}),r.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[r.jsx(kn,{name:"TanStack Router",description:"类型安全的路由库",license:"MIT"}),r.jsx(kn,{name:"Zustand",description:"轻量级状态管理",license:"MIT"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-sm font-medium text-foreground",children:"表单处理"}),r.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[r.jsx(kn,{name:"React Hook Form",description:"高性能表单库",license:"MIT"}),r.jsx(kn,{name:"Zod",description:"TypeScript 优先的 schema 验证",license:"MIT"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-sm font-medium text-foreground",children:"工具库"}),r.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[r.jsx(kn,{name:"clsx",description:"条件 className 构建工具",license:"MIT"}),r.jsx(kn,{name:"tailwind-merge",description:"Tailwind 类名合并工具",license:"MIT"}),r.jsx(kn,{name:"class-variance-authority",description:"组件变体管理",license:"Apache-2.0"}),r.jsx(kn,{name:"date-fns",description:"现代化日期处理库",license:"MIT"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-sm font-medium text-foreground",children:"动画效果"}),r.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[r.jsx(kn,{name:"Framer Motion",description:"React 动画库",license:"MIT"}),r.jsx(kn,{name:"vaul",description:"抽屉组件动画",license:"MIT"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-sm font-medium text-foreground",children:"后端框架"}),r.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[r.jsx(kn,{name:"FastAPI",description:"现代化 Python Web 框架",license:"MIT"}),r.jsx(kn,{name:"Uvicorn",description:"ASGI 服务器",license:"BSD-3-Clause"}),r.jsx(kn,{name:"Pydantic",description:"数据验证库",license:"MIT"}),r.jsx(kn,{name:"python-multipart",description:"文件上传支持",license:"Apache-2.0"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("p",{className:"text-sm font-medium text-foreground",children:"开发工具"}),r.jsxs("div",{className:"grid gap-2 text-xs sm:text-sm",children:[r.jsx(kn,{name:"TypeScript",description:"JavaScript 的超集",license:"Apache-2.0"}),r.jsx(kn,{name:"Vite",description:"下一代前端构建工具",license:"MIT"}),r.jsx(kn,{name:"ESLint",description:"JavaScript 代码检查工具",license:"MIT"}),r.jsx(kn,{name:"PostCSS",description:"CSS 转换工具",license:"MIT"})]})]})]})})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6",children:[r.jsx("h3",{className:"text-base sm:text-lg font-semibold mb-3 sm:mb-4",children:"开源许可"}),r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"rounded-lg bg-primary/5 border border-primary/20 p-3 sm:p-4",children:r.jsxs("div",{className:"flex items-start gap-2 sm:gap-3",children:[r.jsx("div",{className:"flex-shrink-0 mt-0.5",children:r.jsx("div",{className:"rounded-md bg-primary/10 px-2 py-1",children:r.jsx("span",{className:"text-xs sm:text-sm font-bold text-primary",children:"GPLv3"})})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("p",{className:"text-sm sm:text-base font-semibold text-foreground mb-1",children:"MaiBot WebUI"}),r.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目采用 GNU General Public License v3.0 开源许可证。 您可以自由地使用、修改和分发本软件,但必须保持相同的开源许可。"})]})]})}),r.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"本项目依赖的所有开源库均遵循各自的开源许可证(MIT、Apache-2.0、BSD 等)。 感谢所有开源贡献者的无私奉献。"})]})]})]})}function kn({name:e,description:t,license:n}){return r.jsxs("div",{className:"flex items-start justify-between gap-2 rounded-lg border bg-muted/30 p-2.5 sm:p-3",children:[r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("p",{className:"font-medium text-foreground truncate",children:e}),r.jsx("p",{className:"text-muted-foreground text-xs mt-0.5",children:t})]}),r.jsx("span",{className:"inline-flex items-center rounded-full bg-primary/10 px-2 py-0.5 text-[10px] font-medium text-primary flex-shrink-0",children:n})]})}function Cp({value:e,current:t,onChange:n,label:a,description:l}){const o=t===e;return r.jsxs("button",{onClick:()=>n(e),className:me("relative rounded-lg border-2 p-3 sm:p-4 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",o?"border-primary bg-accent":"border-border"),children:[o&&r.jsx("div",{className:"absolute top-2 right-2 sm:top-3 sm:right-3 h-2 w-2 rounded-full bg-primary"}),r.jsxs("div",{className:"space-y-1",children:[r.jsx("div",{className:"text-sm sm:text-base font-medium",children:a}),r.jsx("div",{className:"text-[10px] sm:text-xs text-muted-foreground",children:l})]}),r.jsxs("div",{className:"mt-2 sm:mt-3 flex gap-1",children:[e==="light"&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-200"}),r.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-300"}),r.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-400"})]}),e==="dark"&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-700"}),r.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-800"}),r.jsx("div",{className:"h-2 w-2 rounded-full bg-slate-900"})]}),e==="system"&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-200 to-slate-700"}),r.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-300 to-slate-800"}),r.jsx("div",{className:"h-2 w-2 rounded-full bg-gradient-to-r from-slate-400 to-slate-900"})]})]})]})}function Sa({value:e,current:t,onChange:n,label:a,colorClass:l}){const o=t===e;return r.jsxs("button",{onClick:()=>n(e),className:me("relative rounded-lg border-2 p-2 sm:p-3 text-left transition-all","hover:border-primary/50 hover:bg-accent/50",o?"border-primary bg-accent":"border-border"),children:[o&&r.jsx("div",{className:"absolute top-1.5 right-1.5 sm:top-2 sm:right-2 h-1.5 w-1.5 sm:h-2 sm:w-2 rounded-full bg-primary"}),r.jsxs("div",{className:"flex flex-col items-center gap-1.5 sm:gap-2",children:[r.jsx("div",{className:me("h-8 w-8 sm:h-10 sm:w-10 rounded-full",l)}),r.jsx("div",{className:"text-[10px] sm:text-xs font-medium text-center",children:a})]})]})}class bA{grad3;p;perm;constructor(t=0){this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(let n=0;n<256;n++)this.p[n]=Math.floor(Math.random()*256);this.perm=[];for(let n=0;n<512;n++)this.perm[n]=this.p[n&255]}dot(t,n,a){return t[0]*n+t[1]*a}mix(t,n,a){return(1-a)*t+a*n}fade(t){return t*t*t*(t*(t*6-15)+10)}perlin2(t,n){const a=Math.floor(t)&255,l=Math.floor(n)&255;t-=Math.floor(t),n-=Math.floor(n);const o=this.fade(t),c=this.fade(n),d=this.perm[a]+l,m=this.perm[d],f=this.perm[d+1],p=this.perm[a+1]+l,x=this.perm[p],y=this.perm[p+1];return this.mix(this.mix(this.dot(this.grad3[m%12],t,n),this.dot(this.grad3[x%12],t-1,n),o),this.mix(this.dot(this.grad3[f%12],t,n-1),this.dot(this.grad3[y%12],t-1,n-1),o),c)}}function wA(){const e=w.useRef(null),t=w.useRef(null),n=w.useRef(void 0),a=w.useRef({mouse:{x:-10,y:0,lx:0,ly:0,sx:0,sy:0,v:0,vs:0,a:0,set:!1},lines:[],paths:[],noise:new bA(Math.random()),bounding:null});return w.useEffect(()=>{const l=t.current,o=e.current;if(!l||!o)return;const c=a.current,d=()=>{const k=l.getBoundingClientRect();c.bounding=k,o.style.width=`${k.width}px`,o.style.height=`${k.height}px`},m=()=>{if(!c.bounding)return;const{width:k,height:S}=c.bounding;c.lines=[],c.paths.forEach($=>$.remove()),c.paths=[];const _=10,M=32,D=k+200,z=S+30,L=Math.ceil(D/_),E=Math.ceil(z/M),R=(k-_*L)/2,H=(S-M*E)/2;for(let $=0;$<=L;$++){const I=[];for(let te=0;te<=E;te++){const we={x:R+_*$,y:H+M*te,wave:{x:0,y:0},cursor:{x:0,y:0,vx:0,vy:0}};I.push(we)}const G=document.createElementNS("http://www.w3.org/2000/svg","path");o.appendChild(G),c.paths.push(G),c.lines.push(I)}},f=k=>{const{lines:S,mouse:_,noise:M}=c;S.forEach(D=>{D.forEach(z=>{const L=M.perlin2((z.x+k*.0125)*.002,(z.y+k*.005)*.0015)*12;z.wave.x=Math.cos(L)*32,z.wave.y=Math.sin(L)*16;const E=z.x-_.sx,R=z.y-_.sy,H=Math.hypot(E,R),$=Math.max(175,_.vs);if(H<$){const I=1-H/$,G=Math.cos(H*.001)*I;z.cursor.vx+=Math.cos(_.a)*G*$*_.vs*65e-5,z.cursor.vy+=Math.sin(_.a)*G*$*_.vs*65e-5}z.cursor.vx+=(0-z.cursor.x)*.005,z.cursor.vy+=(0-z.cursor.y)*.005,z.cursor.vx*=.925,z.cursor.vy*=.925,z.cursor.x+=z.cursor.vx*2,z.cursor.y+=z.cursor.vy*2,z.cursor.x=Math.min(100,Math.max(-100,z.cursor.x)),z.cursor.y=Math.min(100,Math.max(-100,z.cursor.y))})})},p=(k,S=!0)=>{const _={x:k.x+k.wave.x+(S?k.cursor.x:0),y:k.y+k.wave.y+(S?k.cursor.y:0)};return _.x=Math.round(_.x*10)/10,_.y=Math.round(_.y*10)/10,_},x=()=>{const{lines:k,paths:S}=c;k.forEach((_,M)=>{let D=p(_[0],!1),z=`M ${D.x} ${D.y}`;_.forEach((L,E)=>{const R=E===_.length-1;D=p(L,!R),z+=`L ${D.x} ${D.y}`}),S[M].setAttribute("d",z)})},y=k=>{const{mouse:S}=c;S.sx+=(S.x-S.sx)*.1,S.sy+=(S.y-S.sy)*.1;const _=S.x-S.lx,M=S.y-S.ly,D=Math.hypot(_,M);S.v=D,S.vs+=(D-S.vs)*.1,S.vs=Math.min(100,S.vs),S.lx=S.x,S.ly=S.y,S.a=Math.atan2(M,_),l&&(l.style.setProperty("--x",`${S.sx}px`),l.style.setProperty("--y",`${S.sy}px`)),f(k),x(),n.current=requestAnimationFrame(y)},b=k=>{if(!c.bounding)return;const{mouse:S}=c;S.x=k.pageX-c.bounding.left,S.y=k.pageY-c.bounding.top+window.scrollY,S.set||(S.sx=S.x,S.sy=S.y,S.lx=S.x,S.ly=S.y,S.set=!0)},j=()=>{d(),m()};return d(),m(),window.addEventListener("resize",j),window.addEventListener("mousemove",b),n.current=requestAnimationFrame(y),()=>{window.removeEventListener("resize",j),window.removeEventListener("mousemove",b),n.current&&cancelAnimationFrame(n.current)}},[]),r.jsxs("div",{ref:t,className:"waves-background",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"hidden",pointerEvents:"none"},children:[r.jsx("div",{className:"waves-cursor",style:{position:"absolute",top:0,left:0,width:"0.5rem",height:"0.5rem",background:"hsl(var(--primary) / 0.3)",borderRadius:"50%",transform:"translate3d(calc(var(--x, -0.5rem) - 50%), calc(var(--y, 50%) - 50%), 0)",willChange:"transform",pointerEvents:"none"}}),r.jsx("svg",{ref:e,style:{display:"block",width:"100%",height:"100%"},children:r.jsx("style",{children:` + path { + fill: none; + stroke: hsl(var(--primary) / 0.20); + stroke-width: 1px; + } + `})})]})}function jA(){const e=rs();w.useEffect(()=>{localStorage.getItem("access-token")||e({to:"/auth"})},[e])}function l7(){return!!localStorage.getItem("access-token")}function NA(){const[e,t]=w.useState(""),[n,a]=w.useState(!1),[l,o]=w.useState(""),c=rs(),{enableWavesBackground:d,setEnableWavesBackground:m}=Aw(),{theme:f,setTheme:p}=z1();w.useEffect(()=>{l7()&&c({to:"/"})},[c]);const y=f==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":f,b=()=>{p(y==="dark"?"light":"dark")},j=async k=>{if(k.preventDefault(),o(""),!e.trim()){o("请输入 Access Token");return}a(!0);try{const S=await fetch("/api/webui/auth/verify",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:e.trim()})}),_=await S.json();if(S.ok&&_.valid){localStorage.setItem("access-token",e.trim());const M=await fetch("/api/webui/setup/status",{method:"GET",headers:{Authorization:`Bearer ${e.trim()}`}}),D=await M.json();M.ok&&D.is_first_setup?c({to:"/setup"}):c({to:"/"})}else o(_.message||"Token 验证失败,请检查后重试")}catch(S){console.error("Token 验证错误:",S),o("连接服务器失败,请检查网络连接")}finally{a(!1)}};return r.jsxs("div",{className:"relative flex min-h-screen items-center justify-center overflow-hidden bg-background p-4",children:[d&&r.jsx(wA,{}),r.jsxs(ot,{className:"relative z-10 w-full max-w-md shadow-2xl backdrop-blur-xl bg-card/80 border-border/50",children:[r.jsx("button",{onClick:b,className:"absolute right-4 top-4 rounded-lg p-2 hover:bg-accent transition-colors z-10 text-foreground",title:y==="dark"?"切换到浅色模式":"切换到深色模式",children:y==="dark"?r.jsx(xx,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"}):r.jsx(gx,{className:"h-5 w-5",strokeWidth:2.5,fill:"none"})}),r.jsxs(Bt,{className:"space-y-4 text-center",children:[r.jsx("div",{className:"mx-auto flex h-16 w-16 items-center justify-center rounded-2xl bg-primary/10",children:r.jsx(Py,{className:"h-8 w-8 text-primary",strokeWidth:2,fill:"none"})}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Lt,{className:"text-2xl font-bold",children:"欢迎使用 MaiBot"}),r.jsx(tr,{className:"text-base",children:"请输入您的 Access Token 以继续访问系统"})]})]}),r.jsx(Vt,{children:r.jsxs("form",{onSubmit:j,className:"space-y-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"token",className:"text-sm font-medium",children:"Access Token"}),r.jsxs("div",{className:"relative",children:[r.jsx(uT,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground",strokeWidth:2,fill:"none"}),r.jsx(Te,{id:"token",type:"password",placeholder:"请输入您的 Access Token",value:e,onChange:k=>t(k.target.value),className:me("pl-10",l&&"border-red-500 focus-visible:ring-red-500"),disabled:n,autoFocus:!0,autoComplete:"off"})]})]}),l&&r.jsxs("div",{className:"flex items-center gap-2 rounded-md bg-red-50 p-3 text-sm text-red-600 dark:bg-red-950/50 dark:text-red-400",children:[r.jsx(fi,{className:"h-4 w-4 flex-shrink-0",strokeWidth:2,fill:"none"}),r.jsx("span",{children:l})]}),r.jsx(re,{type:"submit",className:"w-full",disabled:n,children:n?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"mr-2 h-4 w-4 animate-spin rounded-full border-2 border-current border-t-transparent"}),"验证中..."]}):"验证并进入"}),r.jsxs(hr,{children:[r.jsx(Pw,{asChild:!0,children:r.jsxs("button",{className:"w-full text-center text-sm text-primary hover:text-primary/80 transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[r.jsx(dT,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我没有 Token,我该去哪里获得 Token?"]})}),r.jsxs(nr,{className:"sm:max-w-md",children:[r.jsxs(rr,{children:[r.jsxs(ar,{className:"flex items-center gap-2",children:[r.jsx(Py,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"如何获取 Access Token"]}),r.jsx(wr,{children:"Access Token 是访问 MaiBot WebUI 的唯一凭证,请按以下方式获取"})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(mT,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),r.jsxs("div",{className:"flex-1 space-y-2",children:[r.jsx("h4",{className:"font-semibold text-sm",children:"方式一:查看启动日志"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"在 MaiBot 启动时,控制台会显示 WebUI Access Token。"}),r.jsxs("div",{className:"rounded bg-background p-2 font-mono text-xs",children:[r.jsx("p",{className:"text-muted-foreground",children:"🔑 WebUI Access Token: abc123..."}),r.jsx("p",{className:"text-muted-foreground",children:"💡 请使用此 Token 登录 WebUI"})]})]})]})}),r.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(jl,{className:"h-5 w-5 text-primary flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),r.jsxs("div",{className:"flex-1 space-y-2",children:[r.jsx("h4",{className:"font-semibold text-sm",children:"方式二:查看配置文件"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"Token 保存在项目根目录的配置文件中:"}),r.jsx("div",{className:"rounded bg-background p-2 font-mono text-xs break-all",children:r.jsx("code",{className:"text-primary",children:"data/webui.json"})}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:["打开此文件,复制 ",r.jsx("code",{className:"px-1 py-0.5 bg-background rounded",children:"access_token"})," 字段的值"]})]})]})}),r.jsx("div",{className:"rounded-lg border border-yellow-200 dark:border-yellow-900 bg-yellow-50 dark:bg-yellow-950/30 p-3",children:r.jsxs("div",{className:"flex gap-2",children:[r.jsx(fi,{className:"h-4 w-4 text-yellow-600 dark:text-yellow-500 flex-shrink-0 mt-0.5",strokeWidth:2,fill:"none"}),r.jsxs("div",{className:"text-sm text-yellow-800 dark:text-yellow-300 space-y-1",children:[r.jsx("p",{className:"font-semibold",children:"安全提示"}),r.jsxs("ul",{className:"list-disc list-inside space-y-0.5 text-xs",children:[r.jsx("li",{children:"请妥善保管您的 Token,不要泄露给他人"}),r.jsx("li",{children:"如需重置 Token,请在登录后前往系统设置"})]})]})]})})]})]})]}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsxs("button",{className:"w-full text-center text-sm text-muted-foreground hover:text-foreground transition-colors underline-offset-4 hover:underline flex items-center justify-center gap-1",children:[r.jsx(mu,{className:"h-4 w-4",strokeWidth:2,fill:"none"}),"我觉得这个界面很卡怎么办?"]})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsxs(Jt,{className:"flex items-center gap-2",children:[r.jsx(mu,{className:"h-5 w-5 text-primary",strokeWidth:2,fill:"none"}),"关闭背景动画"]}),r.jsx(en,{children:"背景动画可能会在低性能设备上造成卡顿。关闭动画可以显著提升界面流畅度。"})]}),r.jsx("div",{className:"rounded-lg border bg-muted/50 p-4 space-y-2",children:r.jsx("p",{className:"text-sm text-muted-foreground",children:"关闭动画后,背景将变为纯色,但不影响任何功能的使用。您可以随时在系统设置中重新开启动画。"})}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>m(!1),children:"关闭动画"})]})]})]})]})})]}),r.jsx("div",{className:"absolute bottom-4 left-0 right-0 text-center text-xs text-muted-foreground",children:r.jsx("p",{children:QE})})]})}const vn=w.forwardRef(({className:e,...t},n)=>r.jsx("textarea",{className:me("flex min-h-[60px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:n,...t}));vn.displayName="Textarea";var SA=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],kA=SA.reduce((e,t)=>{const n=c1(`Primitive.${t}`),a=w.forwardRef((l,o)=>{const{asChild:c,...d}=l,m=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(m,{...d,ref:o})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{}),CA="Separator",Nb="horizontal",TA=["horizontal","vertical"],i7=w.forwardRef((e,t)=>{const{decorative:n,orientation:a=Nb,...l}=e,o=_A(a)?a:Nb,d=n?{role:"none"}:{"aria-orientation":o==="vertical"?o:void 0,role:"separator"};return r.jsx(kA.div,{"data-orientation":o,...d,...l,ref:t})});i7.displayName=CA;function _A(e){return TA.includes(e)}var o7=i7;const xu=w.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...a},l)=>r.jsx(o7,{ref:l,decorative:n,orientation:t,className:me("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...a}));xu.displayName=o7.displayName;const MA=Wo("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function on({className:e,variant:t,...n}){return r.jsx("div",{className:me(MA({variant:t}),e),...n})}function EA({config:e,onChange:t}){const n=l=>{l.trim()&&!e.alias_names.includes(l.trim())&&t({...e,alias_names:[...e.alias_names,l.trim()]})},a=l=>{t({...e,alias_names:e.alias_names.filter((o,c)=>c!==l)})};return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"qq_account",children:"QQ账号 *"}),r.jsx(Te,{id:"qq_account",type:"number",placeholder:"请输入机器人的QQ账号",value:e.qq_account||"",onChange:l=>t({...e,qq_account:Number(l.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人登录使用的QQ账号"})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"nickname",children:"昵称 *"}),r.jsx(Te,{id:"nickname",placeholder:"请输入机器人的昵称",value:e.nickname,onChange:l=>t({...e,nickname:l.target.value})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的主要称呼名称"})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{children:"别名"}),r.jsx("div",{className:"flex flex-wrap gap-2 mb-2",children:e.alias_names.map((l,o)=>r.jsxs(on,{variant:"secondary",className:"gap-1",children:[l,r.jsx("button",{type:"button",onClick:()=>a(o),className:"ml-1 hover:text-destructive",children:r.jsx(Mu,{className:"h-3 w-3"})})]},o))}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Te,{id:"alias_input",placeholder:"输入别名后按回车添加",onKeyPress:l=>{l.key==="Enter"&&(n(l.target.value),l.target.value="")}}),r.jsx(re,{type:"button",variant:"outline",onClick:()=>{const l=document.getElementById("alias_input");l&&(n(l.value),l.value="")},children:"添加"})]}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人的其他称呼,可以添加多个"})]})]})}function AA({config:e,onChange:t}){return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"personality",children:"人格特征 *"}),r.jsx(vn,{id:"personality",placeholder:"描述机器人的人格特质和身份特征(建议120字以内)",value:e.personality,onChange:n=>t({...e,personality:n.target.value}),rows:3}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:是一个女大学生,现在在读大二,会刷贴吧"})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"reply_style",children:"表达风格 *"}),r.jsx(vn,{id:"reply_style",placeholder:"描述机器人说话的表达风格、表达习惯",value:e.reply_style,onChange:n=>t({...e,reply_style:n.target.value}),rows:3}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"例如:回复平淡一些,简短一些,说中文,参考贴吧、知乎和微博的回复风格"})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"interest",children:"兴趣 *"}),r.jsx(vn,{id:"interest",placeholder:"描述机器人感兴趣的话题",value:e.interest,onChange:n=>t({...e,interest:n.target.value}),rows:2}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"会影响机器人对什么话题进行回复"})]}),r.jsx(xu,{}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"plan_style",children:"群聊说话规则 *"}),r.jsx(vn,{id:"plan_style",placeholder:"机器人在群聊中的行为风格和规则",value:e.plan_style,onChange:n=>t({...e,plan_style:n.target.value}),rows:4}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在群聊中如何行动,例如回复频率、条件等"})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"private_plan_style",children:"私聊说话规则 *"}),r.jsx(vn,{id:"private_plan_style",placeholder:"机器人在私聊中的行为风格和规则",value:e.private_plan_style,onChange:n=>t({...e,private_plan_style:n.target.value}),rows:3}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"定义机器人在私聊中的行为方式"})]})]})}function DA({config:e,onChange:t}){return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),r.jsxs("span",{className:"text-sm text-muted-foreground",children:[(e.emoji_chance*100).toFixed(0),"%"]})]}),r.jsx(Te,{id:"emoji_chance",type:"range",min:"0",max:"1",step:"0.1",value:e.emoji_chance,onChange:n=>t({...e,emoji_chance:Number(n.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人发送表情包的概率"})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"max_reg_num",children:"最大表情包数量"}),r.jsx(Te,{id:"max_reg_num",type:"number",min:"1",max:"200",value:e.max_reg_num,onChange:n=>t({...e,max_reg_num:Number(n.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"机器人最多保存的表情包数量"})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Q,{htmlFor:"do_replace",children:"达到最大数量时替换"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"开启后会删除旧表情包,关闭则不再收集新表情包"})]}),r.jsx(gt,{id:"do_replace",checked:e.do_replace,onCheckedChange:n=>t({...e,do_replace:n})})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),r.jsx(Te,{id:"check_interval",type:"number",min:"1",max:"120",value:e.check_interval,onChange:n=>t({...e,check_interval:Number(n.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包注册、破损、删除的时间间隔"})]}),r.jsx(xu,{}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Q,{htmlFor:"steal_emoji",children:"偷取表情包"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人将一些表情包据为己有"})]}),r.jsx(gt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:n=>t({...e,steal_emoji:n})})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Q,{htmlFor:"content_filtration",children:"启用表情包过滤"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"只保存符合要求的表情包"})]}),r.jsx(gt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:n=>t({...e,content_filtration:n})})]}),e.content_filtration&&r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),r.jsx(Te,{id:"filtration_prompt",placeholder:"例如:符合公序良俗",value:e.filtration_prompt,onChange:n=>t({...e,filtration_prompt:n.target.value})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"描述表情包应该符合的要求"})]})]})}function zA({config:e,onChange:t}){return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Q,{htmlFor:"enable_tool",children:"启用工具系统"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人使用各种工具增强功能"})]}),r.jsx(gt,{id:"enable_tool",checked:e.enable_tool,onCheckedChange:n=>t({...e,enable_tool:n})})]}),r.jsx(xu,{}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Q,{htmlFor:"enable_mood",children:"启用情绪系统"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"让机器人具有情绪变化能力"})]}),r.jsx(gt,{id:"enable_mood",checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})})]}),e.enable_mood&&r.jsxs("div",{className:"ml-6 space-y-6 border-l-2 border-primary/20 pl-6",children:[r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"mood_update_threshold",children:"情绪更新阈值"}),r.jsx(Te,{id:"mood_update_threshold",type:"number",min:"0.1",max:"10",step:"0.1",value:e.mood_update_threshold||1,onChange:n=>t({...e,mood_update_threshold:Number(n.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"值越高,情绪更新越慢"})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsx(Q,{htmlFor:"emotion_style",children:"情感特征"}),r.jsx(vn,{id:"emotion_style",placeholder:"描述情绪的变化情况,例如:情绪较为稳定,但遭遇特定事件时起伏较大",value:e.emotion_style||"",onChange:n=>t({...e,emotion_style:n.target.value}),rows:2}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"影响机器人的情绪变化方式"})]})]}),r.jsx(xu,{}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-1",children:[r.jsx(Q,{htmlFor:"all_global",children:"启用全局黑话模式"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"允许机器人学习和使用群组黑话"})]}),r.jsx(gt,{id:"all_global",checked:e.all_global,onCheckedChange:n=>t({...e,all_global:n})})]})]})}async function ut(e,t){const n=await fetch(e,t);if(n.status===401)throw localStorage.removeItem("access-token"),window.location.href="/auth",new Error("认证失败,请重新登录");return n}function yt(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("access-token")}`}}async function OA(){const e=await ut("/api/webui/config/bot",{method:"GET",headers:yt()});if(!e.ok)throw new Error("读取Bot配置失败");const n=(await e.json()).config.bot||{};return{qq_account:n.qq_account||0,nickname:n.nickname||"",alias_names:n.alias_names||[]}}async function RA(){const e=await ut("/api/webui/config/bot",{method:"GET",headers:yt()});if(!e.ok)throw new Error("读取人格配置失败");const n=(await e.json()).config.personality||{};return{personality:n.personality||"",reply_style:n.reply_style||"",interest:n.interest||"",plan_style:n.plan_style||"",private_plan_style:n.private_plan_style||""}}async function BA(){const e=await ut("/api/webui/config/bot",{method:"GET",headers:yt()});if(!e.ok)throw new Error("读取表情包配置失败");const n=(await e.json()).config.emoji||{};return{emoji_chance:n.emoji_chance??.4,max_reg_num:n.max_reg_num??40,do_replace:n.do_replace??!0,check_interval:n.check_interval??10,steal_emoji:n.steal_emoji??!0,content_filtration:n.content_filtration??!1,filtration_prompt:n.filtration_prompt||""}}async function LA(){const e=await ut("/api/webui/config/bot",{method:"GET",headers:yt()});if(!e.ok)throw new Error("读取其他配置失败");const n=(await e.json()).config,a=n.tool||{},l=n.mood||{},o=n.jargon||{};return{enable_tool:a.enable_tool??!0,enable_mood:l.enable_mood??!1,mood_update_threshold:l.mood_update_threshold,emotion_style:l.emotion_style,all_global:o.all_global??!0}}async function PA(e){const t=await ut("/api/webui/config/bot/section/bot",{method:"POST",headers:yt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存Bot基础配置失败")}return await t.json()}async function FA(e){const t=await ut("/api/webui/config/bot/section/personality",{method:"POST",headers:yt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存人格配置失败")}return await t.json()}async function IA(e){const t=await ut("/api/webui/config/bot/section/emoji",{method:"POST",headers:yt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"保存表情包配置失败")}return await t.json()}async function qA(e){const t=[];t.push(ut("/api/webui/config/bot/section/tool",{method:"POST",headers:yt(),body:JSON.stringify({enable_tool:e.enable_tool})})),t.push(ut("/api/webui/config/bot/section/jargon",{method:"POST",headers:yt(),body:JSON.stringify({all_global:e.all_global})}));const n={enable_mood:e.enable_mood};e.enable_mood&&(n.mood_update_threshold=e.mood_update_threshold||1,n.emotion_style=e.emotion_style||""),t.push(ut("/api/webui/config/bot/section/mood",{method:"POST",headers:yt(),body:JSON.stringify(n)}));const a=await Promise.all(t);for(const l of a)if(!l.ok){const o=await l.json();throw new Error(o.detail||"保存其他配置失败")}return{success:!0}}async function Sb(){const e=localStorage.getItem("access-token"),t=await ut("/api/webui/setup/complete",{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!t.ok){const n=await t.json();throw new Error(n.message||"标记配置完成失败")}return await t.json()}function HA(){const e=rs(),{toast:t}=pr(),[n,a]=w.useState(0),[l,o]=w.useState(!1),[c,d]=w.useState(!1),[m,f]=w.useState(!0),[p,x]=w.useState({qq_account:0,nickname:"",alias_names:[]}),[y,b]=w.useState({personality:"是一个女大学生,现在在读大二,会刷贴吧。",reply_style:"请回复的平淡一些,简短一些,说中文,不要刻意突出自身学科背景。可以参考贴吧,知乎和微博的回复风格。",interest:"对技术相关话题,游戏和动漫相关话题感兴趣,也对日常话题感兴趣,不喜欢太过沉重严肃的话题",plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.请控制你的发言频率,不要太过频繁的发言 +4.如果有人对你感到厌烦,请减少回复 +5.如果有人对你进行攻击,或者情绪激动,请你以合适的方法应对`,private_plan_style:`1.思考**所有**的可用的action中的**每个动作**是否符合当下条件,如果动作使用条件符合聊天内容就使用 +2.如果相同的内容已经被执行,请不要重复执行 +3.某句话如果已经被回复过,不要重复回复`}),[j,k]=w.useState({emoji_chance:.4,max_reg_num:40,do_replace:!0,check_interval:10,steal_emoji:!0,content_filtration:!1,filtration_prompt:"符合公序良俗"}),[S,_]=w.useState({enable_tool:!0,enable_mood:!1,mood_update_threshold:1,emotion_style:"情绪较为稳定,但遭遇特定事件的时候起伏较大",all_global:!0}),M=[{id:"bot-basic",title:"Bot基础",description:"配置机器人的基本信息",icon:fT},{id:"personality",title:"人格配置",description:"定义机器人的性格和说话风格",icon:Z5},{id:"emoji",title:"表情包",description:"配置表情包相关设置",icon:v1},{id:"other",title:"其他设置",description:"工具、情绪系统等配置",icon:Pa},{id:"complete",title:"完成设置",description:"后续配置提示",icon:mu}],D=(n+1)/M.length*100;w.useEffect(()=>{(async()=>{try{f(!0);const[G,te,we,J]=await Promise.all([OA(),RA(),BA(),LA()]);x(G),b(te),k(we),_(J)}catch(G){t({title:"加载配置失败",description:G instanceof Error?G.message:"无法加载现有配置,将使用默认值",variant:"destructive"})}finally{f(!1)}})()},[t]);const z=async()=>{d(!0);try{switch(n){case 0:await PA(p);break;case 1:await FA(y);break;case 2:await IA(j);break;case 3:await qA(S);break}return t({title:"保存成功",description:`${M[n].title}配置已保存`}),!0}catch(I){return t({title:"保存失败",description:I instanceof Error?I.message:"未知错误",variant:"destructive"}),!1}finally{d(!1)}},L=async()=>{await z()&&n{n>0&&a(n-1)},R=async()=>{o(!0);try{if(!await z()){o(!1);return}await Sb(),t({title:"配置完成",description:"所有配置已保存,正在跳转..."}),setTimeout(()=>{e({to:"/"})},500)}catch(I){t({title:"完成失败",description:I instanceof Error?I.message:"未知错误",variant:"destructive"})}finally{o(!1)}},H=async()=>{try{await Sb(),e({to:"/"})}catch(I){t({title:"跳过失败",description:I instanceof Error?I.message:"未知错误",variant:"destructive"})}},$=()=>{switch(n){case 0:return r.jsx(EA,{config:p,onChange:x});case 1:return r.jsx(AA,{config:y,onChange:b});case 2:return r.jsx(DA,{config:j,onChange:k});case 3:return r.jsx(zA,{config:S,onChange:_});case 4:return r.jsxs("div",{className:"space-y-6 text-center py-8",children:[r.jsx("div",{className:"mx-auto w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center",children:r.jsx(mu,{className:"h-8 w-8 text-primary",strokeWidth:2})}),r.jsxs("div",{className:"space-y-3",children:[r.jsx("h3",{className:"text-xl font-semibold",children:"模型配置"}),r.jsx("p",{className:"text-muted-foreground max-w-md mx-auto",children:"为了让机器人正常工作,您需要配置 AI 模型提供商和模型。"})]}),r.jsxs("div",{className:"rounded-lg border bg-muted/50 p-6 max-w-md mx-auto text-left space-y-4",children:[r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"mt-0.5",children:r.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"1"})}),r.jsxs("div",{children:[r.jsx("p",{className:"font-medium",children:"配置 API 提供商"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → API 提供商"中添加您的 API 提供商信息'})]})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"mt-0.5",children:r.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"2"})}),r.jsxs("div",{children:[r.jsx("p",{className:"font-medium",children:"添加模型"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型列表"中添加需要使用的模型'})]})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"mt-0.5",children:r.jsx("div",{className:"h-6 w-6 rounded-full bg-primary/20 flex items-center justify-center text-primary text-sm font-semibold",children:"3"})}),r.jsxs("div",{children:[r.jsx("p",{className:"font-medium",children:"配置模型任务"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:'在"系统设置 → 模型配置 → 模型任务配置"中为不同任务分配模型'})]})]})]}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"💡 提示:完成向导后,您可以在系统设置中进行详细的模型配置"})]});default:return null}};return r.jsxs("div",{className:"relative flex min-h-screen flex-col items-center justify-center overflow-hidden bg-gradient-to-br from-primary/5 via-background to-secondary/5 p-4 md:p-6",children:[r.jsxs("div",{className:"absolute inset-0 overflow-hidden pointer-events-none",children:[r.jsx("div",{className:"absolute left-1/4 top-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-primary/5 blur-3xl"}),r.jsx("div",{className:"absolute right-1/4 bottom-1/4 h-64 w-64 md:h-96 md:w-96 rounded-full bg-secondary/5 blur-3xl"})]}),m?r.jsxs("div",{className:"relative z-10 text-center",children:[r.jsx("div",{className:"mx-auto mb-4 flex h-16 w-16 items-center justify-center",children:r.jsx("div",{className:"h-12 w-12 animate-spin rounded-full border-4 border-primary border-t-transparent"})}),r.jsx("p",{className:"text-lg font-medium",children:"加载配置中..."}),r.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"正在读取现有配置"})]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"relative z-10 w-full max-w-4xl",children:[r.jsxs("div",{className:"mb-6 md:mb-8 text-center",children:[r.jsx("div",{className:"mx-auto mb-4 flex h-12 w-12 md:h-16 md:w-16 items-center justify-center rounded-2xl bg-primary/10",children:r.jsx(hT,{className:"h-6 w-6 md:h-8 md:w-8 text-primary",strokeWidth:2,fill:"none"})}),r.jsx("h1",{className:"mb-2 text-2xl md:text-3xl font-bold",children:"首次配置向导"}),r.jsxs("p",{className:"text-sm md:text-base text-muted-foreground",children:["让我们一起完成 ",R1," 的初始配置"]})]}),r.jsxs("div",{className:"mb-6 md:mb-8",children:[r.jsxs("div",{className:"mb-2 flex items-center justify-between text-xs md:text-sm",children:[r.jsxs("span",{className:"text-muted-foreground",children:["步骤 ",n+1," / ",M.length]}),r.jsxs("span",{className:"font-medium text-primary",children:[Math.round(D),"%"]})]}),r.jsx(Lu,{value:D,className:"h-2"})]}),r.jsx("div",{className:"mb-6 md:mb-8 flex justify-between",children:M.map((I,G)=>{const te=I.icon;return r.jsxs("div",{className:me("flex flex-1 flex-col items-center gap-1 md:gap-2",Ge({to:"/"}),className:"gap-2 w-full sm:w-auto",children:[r.jsx(K0,{className:"h-4 w-4"}),"返回首页"]}),r.jsxs(re,{size:"lg",variant:"outline",onClick:()=>window.history.back(),className:"gap-2 w-full sm:w-auto",children:[r.jsx(J5,{className:"h-4 w-4"}),"返回上一页"]})]}),r.jsx("div",{className:"mt-12 pt-8 border-t border-border",children:r.jsx("p",{className:"text-sm text-muted-foreground",children:"如果您认为这是一个错误,请联系系统管理员"})})]})})}var u7=["PageUp","PageDown"],d7=["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"],m7={"from-left":["Home","PageDown","ArrowDown","ArrowLeft"],"from-right":["Home","PageDown","ArrowDown","ArrowRight"],"from-bottom":["Home","PageDown","ArrowDown","ArrowLeft"],"from-top":["Home","PageDown","ArrowUp","ArrowLeft"]},Xo="Slider",[Tx,UA,$A]=vm(Xo),[h7]=Ha(Xo,[$A]),[VA,Om]=h7(Xo),f7=w.forwardRef((e,t)=>{const{name:n,min:a=0,max:l=100,step:o=1,orientation:c="horizontal",disabled:d=!1,minStepsBetweenThumbs:m=0,defaultValue:f=[a],value:p,onValueChange:x=()=>{},onValueCommit:y=()=>{},inverted:b=!1,form:j,...k}=e,S=w.useRef(new Set),_=w.useRef(0),D=c==="horizontal"?GA:YA,[z=[],L]=Dl({prop:p,defaultProp:f,onChange:G=>{[...S.current][_.current]?.focus(),x(G)}}),E=w.useRef(z);function R(G){const te=ZA(z,G);I(G,te)}function H(G){I(G,_.current)}function $(){const G=E.current[_.current];z[_.current]!==G&&y(z)}function I(G,te,{commit:we}={commit:!1}){const J=nD(o),ae=rD(Math.round((G-a)/o)*o+a,J),U=o1(ae,[a,l]);L((q=[])=>{const W=KA(q,U,te);if(tD(W,m*o)){_.current=W.indexOf(U);const oe=String(W)!==String(q);return oe&&we&&y(W),oe?W:q}else return q})}return r.jsx(VA,{scope:e.__scopeSlider,name:n,disabled:d,min:a,max:l,valueIndexToChangeRef:_,thumbs:S.current,values:z,orientation:c,form:j,children:r.jsx(Tx.Provider,{scope:e.__scopeSlider,children:r.jsx(Tx.Slot,{scope:e.__scopeSlider,children:r.jsx(D,{"aria-disabled":d,"data-disabled":d?"":void 0,...k,ref:t,onPointerDown:Pe(k.onPointerDown,()=>{d||(E.current=z)}),min:a,max:l,inverted:b,onSlideStart:d?void 0:R,onSlideMove:d?void 0:H,onSlideEnd:d?void 0:$,onHomeKeyDown:()=>!d&&I(a,0,{commit:!0}),onEndKeyDown:()=>!d&&I(l,z.length-1,{commit:!0}),onStepKeyDown:({event:G,direction:te})=>{if(!d){const ae=u7.includes(G.key)||G.shiftKey&&d7.includes(G.key)?10:1,U=_.current,q=z[U],W=o*ae*te;I(q+W,U,{commit:!0})}}})})})})});f7.displayName=Xo;var[p7,x7]=h7(Xo,{startEdge:"left",endEdge:"right",size:"width",direction:1}),GA=w.forwardRef((e,t)=>{const{min:n,max:a,dir:l,inverted:o,onSlideStart:c,onSlideMove:d,onSlideEnd:m,onStepKeyDown:f,...p}=e,[x,y]=w.useState(null),b=dn(t,D=>y(D)),j=w.useRef(void 0),k=Tu(l),S=k==="ltr",_=S&&!o||!S&&o;function M(D){const z=j.current||x.getBoundingClientRect(),L=[0,z.width],R=B1(L,_?[n,a]:[a,n]);return j.current=z,R(D-z.left)}return r.jsx(p7,{scope:e.__scopeSlider,startEdge:_?"left":"right",endEdge:_?"right":"left",direction:_?1:-1,size:"width",children:r.jsx(g7,{dir:k,"data-orientation":"horizontal",...p,ref:b,style:{...p.style,"--radix-slider-thumb-transform":"translateX(-50%)"},onSlideStart:D=>{const z=M(D.clientX);c?.(z)},onSlideMove:D=>{const z=M(D.clientX);d?.(z)},onSlideEnd:()=>{j.current=void 0,m?.()},onStepKeyDown:D=>{const L=m7[_?"from-left":"from-right"].includes(D.key);f?.({event:D,direction:L?-1:1})}})})}),YA=w.forwardRef((e,t)=>{const{min:n,max:a,inverted:l,onSlideStart:o,onSlideMove:c,onSlideEnd:d,onStepKeyDown:m,...f}=e,p=w.useRef(null),x=dn(t,p),y=w.useRef(void 0),b=!l;function j(k){const S=y.current||p.current.getBoundingClientRect(),_=[0,S.height],D=B1(_,b?[a,n]:[n,a]);return y.current=S,D(k-S.top)}return r.jsx(p7,{scope:e.__scopeSlider,startEdge:b?"bottom":"top",endEdge:b?"top":"bottom",size:"height",direction:b?1:-1,children:r.jsx(g7,{"data-orientation":"vertical",...f,ref:x,style:{...f.style,"--radix-slider-thumb-transform":"translateY(50%)"},onSlideStart:k=>{const S=j(k.clientY);o?.(S)},onSlideMove:k=>{const S=j(k.clientY);c?.(S)},onSlideEnd:()=>{y.current=void 0,d?.()},onStepKeyDown:k=>{const _=m7[b?"from-bottom":"from-top"].includes(k.key);m?.({event:k,direction:_?-1:1})}})})}),g7=w.forwardRef((e,t)=>{const{__scopeSlider:n,onSlideStart:a,onSlideMove:l,onSlideEnd:o,onHomeKeyDown:c,onEndKeyDown:d,onStepKeyDown:m,...f}=e,p=Om(Xo,n);return r.jsx(Ft.span,{...f,ref:t,onKeyDown:Pe(e.onKeyDown,x=>{x.key==="Home"?(c(x),x.preventDefault()):x.key==="End"?(d(x),x.preventDefault()):u7.concat(d7).includes(x.key)&&(m(x),x.preventDefault())}),onPointerDown:Pe(e.onPointerDown,x=>{const y=x.target;y.setPointerCapture(x.pointerId),x.preventDefault(),p.thumbs.has(y)?y.focus():a(x)}),onPointerMove:Pe(e.onPointerMove,x=>{x.target.hasPointerCapture(x.pointerId)&&l(x)}),onPointerUp:Pe(e.onPointerUp,x=>{const y=x.target;y.hasPointerCapture(x.pointerId)&&(y.releasePointerCapture(x.pointerId),o(x))})})}),v7="SliderTrack",y7=w.forwardRef((e,t)=>{const{__scopeSlider:n,...a}=e,l=Om(v7,n);return r.jsx(Ft.span,{"data-disabled":l.disabled?"":void 0,"data-orientation":l.orientation,...a,ref:t})});y7.displayName=v7;var _x="SliderRange",b7=w.forwardRef((e,t)=>{const{__scopeSlider:n,...a}=e,l=Om(_x,n),o=x7(_x,n),c=w.useRef(null),d=dn(t,c),m=l.values.length,f=l.values.map(y=>N7(y,l.min,l.max)),p=m>1?Math.min(...f):0,x=100-Math.max(...f);return r.jsx(Ft.span,{"data-orientation":l.orientation,"data-disabled":l.disabled?"":void 0,...a,ref:d,style:{...e.style,[o.startEdge]:p+"%",[o.endEdge]:x+"%"}})});b7.displayName=_x;var Mx="SliderThumb",w7=w.forwardRef((e,t)=>{const n=UA(e.__scopeSlider),[a,l]=w.useState(null),o=dn(t,d=>l(d)),c=w.useMemo(()=>a?n().findIndex(d=>d.ref.current===a):-1,[n,a]);return r.jsx(WA,{...e,ref:o,index:c})}),WA=w.forwardRef((e,t)=>{const{__scopeSlider:n,index:a,name:l,...o}=e,c=Om(Mx,n),d=x7(Mx,n),[m,f]=w.useState(null),p=dn(t,M=>f(M)),x=m?c.form||!!m.closest("form"):!0,y=z5(m),b=c.values[a],j=b===void 0?0:N7(b,c.min,c.max),k=QA(a,c.values.length),S=y?.[d.size],_=S?JA(S,j,d.direction):0;return w.useEffect(()=>{if(m)return c.thumbs.add(m),()=>{c.thumbs.delete(m)}},[m,c.thumbs]),r.jsxs("span",{style:{transform:"var(--radix-slider-thumb-transform)",position:"absolute",[d.startEdge]:`calc(${j}% + ${_}px)`},children:[r.jsx(Tx.ItemSlot,{scope:e.__scopeSlider,children:r.jsx(Ft.span,{role:"slider","aria-label":e["aria-label"]||k,"aria-valuemin":c.min,"aria-valuenow":b,"aria-valuemax":c.max,"aria-orientation":c.orientation,"data-orientation":c.orientation,"data-disabled":c.disabled?"":void 0,tabIndex:c.disabled?void 0:0,...o,ref:p,style:b===void 0?{display:"none"}:e.style,onFocus:Pe(e.onFocus,()=>{c.valueIndexToChangeRef.current=a})})}),x&&r.jsx(j7,{name:l??(c.name?c.name+(c.values.length>1?"[]":""):void 0),form:c.form,value:b},a)]})});w7.displayName=Mx;var XA="RadioBubbleInput",j7=w.forwardRef(({__scopeSlider:e,value:t,...n},a)=>{const l=w.useRef(null),o=dn(l,a),c=D5(t);return w.useEffect(()=>{const d=l.current;if(!d)return;const m=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(m,"value").set;if(c!==t&&p){const x=new Event("input",{bubbles:!0});p.call(d,t),d.dispatchEvent(x)}},[c,t]),r.jsx(Ft.input,{style:{display:"none"},...n,ref:o,defaultValue:t})});j7.displayName=XA;function KA(e=[],t,n){const a=[...e];return a[n]=t,a.sort((l,o)=>l-o)}function N7(e,t,n){const o=100/(n-t)*(e-t);return o1(o,[0,100])}function QA(e,t){return t>2?`Value ${e+1} of ${t}`:t===2?["Minimum","Maximum"][e]:void 0}function ZA(e,t){if(e.length===1)return 0;const n=e.map(l=>Math.abs(l-t)),a=Math.min(...n);return n.indexOf(a)}function JA(e,t,n){const a=e/2,o=B1([0,50],[0,a]);return(a-o(t)*n)*n}function eD(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function tD(e,t){if(t>0){const n=eD(e);return Math.min(...n)>=t}return!0}function B1(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const a=(t[1]-t[0])/(e[1]-e[0]);return t[0]+a*(n-e[0])}}function nD(e){return(String(e).split(".")[1]||"").length}function rD(e,t){const n=Math.pow(10,t);return Math.round(e*n)/n}var S7=f7,aD=y7,sD=b7,lD=w7;const Rm=w.forwardRef(({className:e,...t},n)=>r.jsxs(S7,{ref:n,className:me("relative flex w-full touch-none select-none items-center",e),...t,children:[r.jsx(aD,{className:"relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20",children:r.jsx(sD,{className:"absolute h-full bg-primary"})}),r.jsx(lD,{className:"block h-4 w-4 rounded-full border border-primary/50 bg-background shadow transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"})]}));Rm.displayName=S7.displayName;const _t=ZC,Mt=JC,jt=w.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(L5,{ref:a,className:me("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,r.jsx(YC,{asChild:!0,children:r.jsx(hu,{className:"h-4 w-4 opacity-50"})})]}));jt.displayName=L5.displayName;const k7=w.forwardRef(({className:e,...t},n)=>r.jsx(P5,{ref:n,className:me("flex cursor-default items-center justify-center py-1",e),...t,children:r.jsx(vx,{className:"h-4 w-4"})}));k7.displayName=P5.displayName;const C7=w.forwardRef(({className:e,...t},n)=>r.jsx(F5,{ref:n,className:me("flex cursor-default items-center justify-center py-1",e),...t,children:r.jsx(hu,{className:"h-4 w-4"})}));C7.displayName=F5.displayName;const Nt=w.forwardRef(({className:e,children:t,position:n="popper",...a},l)=>r.jsx(WC,{children:r.jsxs(I5,{ref:l,className:me("relative z-[100] max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 shadow-lg 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 origin-[--radix-select-content-transform-origin]",n==="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:n,...a,children:[r.jsx(k7,{}),r.jsx(XC,{className:me("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),r.jsx(C7,{})]})}));Nt.displayName=I5.displayName;const iD=w.forwardRef(({className:e,...t},n)=>r.jsx(q5,{ref:n,className:me("px-2 py-1.5 text-sm font-semibold",e),...t}));iD.displayName=q5.displayName;const ze=w.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(H5,{ref:a,className:me("relative flex w-full cursor-default select-none items-center rounded-sm py-2 pl-2 pr-8 text-sm outline-none bg-white dark:bg-gray-900 hover:bg-gray-100 dark:hover:bg-gray-800 focus:bg-gray-100 dark:focus:bg-gray-800 data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[r.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(KC,{children:r.jsx(di,{className:"h-4 w-4"})})}),r.jsx(QC,{children:t})]}));ze.displayName=H5.displayName;const oD=w.forwardRef(({className:e,...t},n)=>r.jsx(U5,{ref:n,className:me("-mx-1 my-1 h-px bg-muted",e),...t}));oD.displayName=U5.displayName;function cD(e){const t=uD(e),n=w.forwardRef((a,l)=>{const{children:o,...c}=a,d=w.Children.toArray(o),m=d.find(mD);if(m){const f=m.props.children,p=d.map(x=>x===m?w.Children.count(f)>1?w.Children.only(null):w.isValidElement(f)?f.props.children:null:x);return r.jsx(t,{...c,ref:l,children:w.isValidElement(f)?w.cloneElement(f,void 0,p):null})}return r.jsx(t,{...c,ref:l,children:o})});return n.displayName=`${e}.Slot`,n}function uD(e){const t=w.forwardRef((n,a)=>{const{children:l,...o}=n;if(w.isValidElement(l)){const c=fD(l),d=hD(o,l.props);return l.type!==w.Fragment&&(d.ref=a?Nl(a,c):c),w.cloneElement(l,d)}return w.Children.count(l)>1?w.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var dD=Symbol("radix.slottable");function mD(e){return w.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===dD}function hD(e,t){const n={...t};for(const a in t){const l=e[a],o=t[a];/^on[A-Z]/.test(a)?l&&o?n[a]=(...d)=>{const m=o(...d);return l(...d),m}:l&&(n[a]=l):a==="style"?n[a]={...l,...o}:a==="className"&&(n[a]=[l,o].filter(Boolean).join(" "))}return{...e,...n}}function fD(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Bm="Popover",[T7]=Ha(Bm,[Uo]),Pu=Uo(),[pD,zl]=T7(Bm),_7=e=>{const{__scopePopover:t,children:n,open:a,defaultOpen:l,onOpenChange:o,modal:c=!1}=e,d=Pu(t),m=w.useRef(null),[f,p]=w.useState(!1),[x,y]=Dl({prop:a,defaultProp:l??!1,onChange:o,caller:Bm});return r.jsx(jm,{...d,children:r.jsx(pD,{scope:t,contentId:Ta(),triggerRef:m,open:x,onOpenChange:y,onOpenToggle:w.useCallback(()=>y(b=>!b),[y]),hasCustomAnchor:f,onCustomAnchorAdd:w.useCallback(()=>p(!0),[]),onCustomAnchorRemove:w.useCallback(()=>p(!1),[]),modal:c,children:n})})};_7.displayName=Bm;var M7="PopoverAnchor",xD=w.forwardRef((e,t)=>{const{__scopePopover:n,...a}=e,l=zl(M7,n),o=Pu(n),{onCustomAnchorAdd:c,onCustomAnchorRemove:d}=l;return w.useEffect(()=>(c(),()=>d()),[c,d]),r.jsx(Nm,{...o,...a,ref:t})});xD.displayName=M7;var E7="PopoverTrigger",A7=w.forwardRef((e,t)=>{const{__scopePopover:n,...a}=e,l=zl(E7,n),o=Pu(n),c=dn(t,l.triggerRef),d=r.jsx(Ft.button,{type:"button","aria-haspopup":"dialog","aria-expanded":l.open,"aria-controls":l.contentId,"data-state":B7(l.open),...a,ref:c,onClick:Pe(e.onClick,l.onOpenToggle)});return l.hasCustomAnchor?d:r.jsx(Nm,{asChild:!0,...o,children:d})});A7.displayName=E7;var L1="PopoverPortal",[gD,vD]=T7(L1,{forceMount:void 0}),D7=e=>{const{__scopePopover:t,forceMount:n,children:a,container:l}=e,o=zl(L1,t);return r.jsx(gD,{scope:t,forceMount:n,children:r.jsx(Wr,{present:n||o.open,children:r.jsx(wm,{asChild:!0,container:l,children:a})})})};D7.displayName=L1;var Fo="PopoverContent",z7=w.forwardRef((e,t)=>{const n=vD(Fo,e.__scopePopover),{forceMount:a=n.forceMount,...l}=e,o=zl(Fo,e.__scopePopover);return r.jsx(Wr,{present:a||o.open,children:o.modal?r.jsx(bD,{...l,ref:t}):r.jsx(wD,{...l,ref:t})})});z7.displayName=Fo;var yD=cD("PopoverContent.RemoveScroll"),bD=w.forwardRef((e,t)=>{const n=zl(Fo,e.__scopePopover),a=w.useRef(null),l=dn(t,a),o=w.useRef(!1);return w.useEffect(()=>{const c=a.current;if(c)return $5(c)},[]),r.jsx(V5,{as:yD,allowPinchZoom:!0,children:r.jsx(O7,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Pe(e.onCloseAutoFocus,c=>{c.preventDefault(),o.current||n.triggerRef.current?.focus()}),onPointerDownOutside:Pe(e.onPointerDownOutside,c=>{const d=c.detail.originalEvent,m=d.button===0&&d.ctrlKey===!0,f=d.button===2||m;o.current=f},{checkForDefaultPrevented:!1}),onFocusOutside:Pe(e.onFocusOutside,c=>c.preventDefault(),{checkForDefaultPrevented:!1})})})}),wD=w.forwardRef((e,t)=>{const n=zl(Fo,e.__scopePopover),a=w.useRef(!1),l=w.useRef(!1);return r.jsx(O7,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:o=>{e.onCloseAutoFocus?.(o),o.defaultPrevented||(a.current||n.triggerRef.current?.focus(),o.preventDefault()),a.current=!1,l.current=!1},onInteractOutside:o=>{e.onInteractOutside?.(o),o.defaultPrevented||(a.current=!0,o.detail.originalEvent.type==="pointerdown"&&(l.current=!0));const c=o.target;n.triggerRef.current?.contains(c)&&o.preventDefault(),o.detail.originalEvent.type==="focusin"&&l.current&&o.preventDefault()}})}),O7=w.forwardRef((e,t)=>{const{__scopePopover:n,trapFocus:a,onOpenAutoFocus:l,onCloseAutoFocus:o,disableOutsidePointerEvents:c,onEscapeKeyDown:d,onPointerDownOutside:m,onFocusOutside:f,onInteractOutside:p,...x}=e,y=zl(Fo,n),b=Pu(n);return G5(),r.jsx(Y5,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:l,onUnmountAutoFocus:o,children:r.jsx(p1,{asChild:!0,disableOutsidePointerEvents:c,onInteractOutside:p,onEscapeKeyDown:d,onPointerDownOutside:m,onFocusOutside:f,onDismiss:()=>y.onOpenChange(!1),children:r.jsx(x1,{"data-state":B7(y.open),role:"dialog",id:y.contentId,...b,...x,ref:t,style:{...x.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),R7="PopoverClose",jD=w.forwardRef((e,t)=>{const{__scopePopover:n,...a}=e,l=zl(R7,n);return r.jsx(Ft.button,{type:"button",...a,ref:t,onClick:Pe(e.onClick,()=>l.onOpenChange(!1))})});jD.displayName=R7;var ND="PopoverArrow",SD=w.forwardRef((e,t)=>{const{__scopePopover:n,...a}=e,l=Pu(n);return r.jsx(g1,{...l,...a,ref:t})});SD.displayName=ND;function B7(e){return e?"open":"closed"}var kD=_7,CD=A7,TD=D7,L7=z7;const kl=kD,Cl=CD,Ps=w.forwardRef(({className:e,align:t="center",sideOffset:n=4,...a},l)=>r.jsx(TD,{children:r.jsx(L7,{ref:l,align:t,sideOffset:n,className:me("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-[--radix-popover-content-transform-origin]",e),...a})}));Ps.displayName=L7.displayName;const Ko="/api/webui/config";async function _D(){const t=await(await ut(`${Ko}/bot`)).json();if(!t.success)throw new Error("获取配置数据失败");return t.config}async function Ao(){const t=await(await ut(`${Ko}/model`)).json();if(!t.success)throw new Error("获取模型配置数据失败");return t.config}async function kb(e){const n=await(await ut(`${Ko}/bot`,{method:"POST",headers:yt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function lm(e){const n=await(await ut(`${Ko}/model`,{method:"POST",headers:yt(),body:JSON.stringify(e)})).json();if(!n.success)throw new Error(n.message||"保存配置失败")}async function MD(e,t){const a=await(await ut(`${Ko}/bot/section/${e}`,{method:"POST",headers:yt(),body:JSON.stringify(t)})).json();if(!a.success)throw new Error(a.message||`保存配置节 ${e} 失败`)}async function Ex(e,t){const a=await(await ut(`${Ko}/model/section/${e}`,{method:"POST",headers:yt(),body:JSON.stringify(t)})).json();if(!a.success)throw new Error(a.message||`保存配置节 ${e} 失败`)}const ED=Mn.create({baseURL:"",timeout:1e4});async function P1(){try{return(await ED.post("/api/webui/system/restart")).data}catch(e){throw console.error("重启麦麦失败:",e),e}}const AD=Wo("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),Fu=w.forwardRef(({className:e,variant:t,...n},a)=>r.jsx("div",{ref:a,role:"alert",className:me(AD({variant:t}),e),...n}));Fu.displayName="Alert";const DD=w.forwardRef(({className:e,...t},n)=>r.jsx("h5",{ref:n,className:me("mb-1 font-medium leading-none tracking-tight",e),...t}));DD.displayName="AlertTitle";const Iu=w.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:me("text-sm [&_p]:leading-relaxed",e),...t}));Iu.displayName="AlertDescription";function F1({onRestartComplete:e,onRestartFailed:t}){const[n,a]=w.useState(0),[l,o]=w.useState("restarting"),[c,d]=w.useState(0),[m,f]=w.useState(0);w.useEffect(()=>{const y=setInterval(()=>{a(k=>k>=90?k:k+1)},200),b=setInterval(()=>{d(k=>k+1)},1e3),j=setTimeout(()=>{o("checking"),p()},3e3);return()=>{clearInterval(y),clearInterval(b),clearTimeout(j)}},[]);const p=()=>{const b=async()=>{try{if(f(k=>k+1),(await fetch("/api/webui/system/status",{method:"GET",headers:{"Content-Type":"application/json"},signal:AbortSignal.timeout(3e3)})).ok)a(100),o("success"),setTimeout(()=>{e?.()},1500);else throw new Error("Status check failed")}catch{m<60?setTimeout(b,2e3):(o("failed"),t?.())}};b()},x=y=>{const b=Math.floor(y/60),j=y%60;return`${b}:${j.toString().padStart(2,"0")}`};return r.jsx("div",{className:"fixed inset-0 bg-background/95 backdrop-blur-sm z-50 flex items-center justify-center",children:r.jsxs("div",{className:"max-w-md w-full mx-4 space-y-8",children:[r.jsxs("div",{className:"flex flex-col items-center space-y-4",children:[l==="restarting"&&r.jsxs(r.Fragment,{children:[r.jsx(fu,{className:"h-16 w-16 text-primary animate-spin"}),r.jsx("h2",{className:"text-2xl font-bold",children:"正在重启麦麦"}),r.jsx("p",{className:"text-muted-foreground text-center",children:"请稍候,麦麦正在重启中..."})]}),l==="checking"&&r.jsxs(r.Fragment,{children:[r.jsx(fu,{className:"h-16 w-16 text-primary animate-spin"}),r.jsx("h2",{className:"text-2xl font-bold",children:"检查服务状态"}),r.jsxs("p",{className:"text-muted-foreground text-center",children:["等待服务恢复... (尝试 ",m,"/60)"]})]}),l==="success"&&r.jsxs(r.Fragment,{children:[r.jsx(Ur,{className:"h-16 w-16 text-green-500"}),r.jsx("h2",{className:"text-2xl font-bold",children:"重启成功"}),r.jsx("p",{className:"text-muted-foreground text-center",children:"正在跳转到登录页面..."})]}),l==="failed"&&r.jsxs(r.Fragment,{children:[r.jsx(fi,{className:"h-16 w-16 text-destructive"}),r.jsx("h2",{className:"text-2xl font-bold",children:"重启超时"}),r.jsx("p",{className:"text-muted-foreground text-center",children:"服务未能在预期时间内恢复,请手动检查或刷新页面"})]})]}),l!=="failed"&&r.jsxs("div",{className:"space-y-2",children:[r.jsx(Lu,{value:n,className:"h-2"}),r.jsxs("div",{className:"flex justify-between text-sm text-muted-foreground",children:[r.jsxs("span",{children:[n,"%"]}),r.jsxs("span",{children:["已用时: ",x(c)]})]})]}),r.jsx("div",{className:"bg-muted/50 rounded-lg p-4 space-y-2",children:r.jsxs("p",{className:"text-sm text-muted-foreground",children:[l==="restarting"&&"🔄 配置已保存,正在重启主程序...",l==="checking"&&"⏳ 正在等待服务恢复,请勿关闭页面...",l==="success"&&"✅ 配置已生效,服务运行正常",l==="failed"&&"⚠️ 如果长时间无响应,请尝试手动重启"]})}),l==="failed"&&r.jsxs("div",{className:"flex gap-2",children:[r.jsx("button",{onClick:()=>window.location.reload(),className:"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-md hover:bg-primary/90",children:"刷新页面"}),r.jsx("button",{onClick:()=>{o("checking"),f(0),p()},className:"flex-1 px-4 py-2 bg-secondary text-secondary-foreground rounded-md hover:bg-secondary/90",children:"重试检测"})]})]})})}function zD(){const[e,t]=w.useState(!0),[n,a]=w.useState(!1),[l,o]=w.useState(!1),[c,d]=w.useState(!1),[m,f]=w.useState(!1),[p,x]=w.useState(!1),{toast:y}=pr(),[b,j]=w.useState(null),[k,S]=w.useState(null),[_,M]=w.useState(null),[D,z]=w.useState(null),[L,E]=w.useState(null),[R,H]=w.useState(null),[$,I]=w.useState(null),[G,te]=w.useState(null),[we,J]=w.useState(null),[ae,U]=w.useState(null),[q,W]=w.useState(null),[oe,P]=w.useState(null),[je,Z]=w.useState(null),[O,Ne]=w.useState(null),[se,Ce]=w.useState(null),[ye,Be]=w.useState(null),[ie,He]=w.useState(null),[lt,ve]=w.useState(null),Ze=w.useRef(null),We=w.useRef(!0),pn=w.useRef({}),Bn=w.useCallback(async()=>{try{t(!0);const Ue=await _D();pn.current=Ue,j(Ue.bot),S(Ue.personality);const Ln=Ue.chat;Ln.talk_value_rules||(Ln.talk_value_rules=[]),M(Ln),z(Ue.expression),E(Ue.emoji),H(Ue.memory),I(Ue.tool),te(Ue.mood),J(Ue.voice),U(Ue.lpmm_knowledge),W(Ue.keyword_reaction),P(Ue.response_post_process),Z(Ue.chinese_typo),Ne(Ue.response_splitter),Ce(Ue.log),Be(Ue.debug),He(Ue.maim_message),ve(Ue.telemetry),d(!1),We.current=!1}catch(Ue){console.error("加载配置失败:",Ue),y({title:"加载失败",description:"无法加载配置文件",variant:"destructive"})}finally{t(!1)}},[y]);w.useEffect(()=>{Bn()},[Bn]);const sr=w.useCallback(async(Ue,Ln)=>{if(!We.current)try{o(!0),await MD(Ue,Ln),d(!1)}catch(K){console.error(`自动保存 ${Ue} 失败:`,K),d(!0)}finally{o(!1)}},[]),Qe=w.useCallback((Ue,Ln)=>{We.current||(d(!0),Ze.current&&clearTimeout(Ze.current),Ze.current=setTimeout(()=>{sr(Ue,Ln)},2e3))},[sr]);w.useEffect(()=>{b&&!We.current&&Qe("bot",b)},[b,Qe]),w.useEffect(()=>{k&&!We.current&&Qe("personality",k)},[k,Qe]),w.useEffect(()=>{_&&!We.current&&Qe("chat",_)},[_,Qe]),w.useEffect(()=>{D&&!We.current&&Qe("expression",D)},[D,Qe]),w.useEffect(()=>{L&&!We.current&&Qe("emoji",L)},[L,Qe]),w.useEffect(()=>{R&&!We.current&&Qe("memory",R)},[R,Qe]),w.useEffect(()=>{$&&!We.current&&Qe("tool",$)},[$,Qe]),w.useEffect(()=>{G&&!We.current&&Qe("mood",G)},[G,Qe]),w.useEffect(()=>{we&&!We.current&&Qe("voice",we)},[we,Qe]),w.useEffect(()=>{ae&&!We.current&&Qe("lpmm_knowledge",ae)},[ae,Qe]),w.useEffect(()=>{q&&!We.current&&Qe("keyword_reaction",q)},[q,Qe]),w.useEffect(()=>{oe&&!We.current&&Qe("response_post_process",oe)},[oe,Qe]),w.useEffect(()=>{je&&!We.current&&Qe("chinese_typo",je)},[je,Qe]),w.useEffect(()=>{O&&!We.current&&Qe("response_splitter",O)},[O,Qe]),w.useEffect(()=>{se&&!We.current&&Qe("log",se)},[se,Qe]),w.useEffect(()=>{ye&&!We.current&&Qe("debug",ye)},[ye,Qe]),w.useEffect(()=>{ie&&!We.current&&Qe("maim_message",ie)},[ie,Qe]),w.useEffect(()=>{lt&&!We.current&&Qe("telemetry",lt)},[lt,Qe]);const Gn=async()=>{try{a(!0),Ze.current&&clearTimeout(Ze.current);const Ue={...pn.current,bot:b,personality:k,chat:_,expression:D,emoji:L,memory:R,tool:$,mood:G,voice:we,lpmm_knowledge:ae,keyword_reaction:q,response_post_process:oe,chinese_typo:je,response_splitter:O,log:se,debug:ye,maim_message:ie,telemetry:lt};await kb(Ue),d(!1),y({title:"保存成功",description:"麦麦主程序配置已保存"})}catch(Ue){console.error("保存配置失败:",Ue),y({title:"保存失败",description:Ue.message,variant:"destructive"})}finally{a(!1)}},Sr=async()=>{try{f(!0),P1().catch(()=>{}),x(!0)}catch(Ue){console.error("重启失败:",Ue),x(!1),y({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),f(!1)}},Er=async()=>{try{a(!0),Ze.current&&clearTimeout(Ze.current);const Ue={...pn.current,bot:b,personality:k,chat:_,expression:D,emoji:L,memory:R,tool:$,mood:G,voice:we,lpmm_knowledge:ae,keyword_reaction:q,response_post_process:oe,chinese_typo:je,response_splitter:O,log:se,debug:ye,maim_message:ie,telemetry:lt};await kb(Ue),d(!1),y({title:"保存成功",description:"配置已保存,即将重启麦麦..."}),await new Promise(Ln=>setTimeout(Ln,500)),await Sr()}catch(Ue){console.error("保存失败:",Ue),y({title:"保存失败",description:Ue.message,variant:"destructive"})}finally{a(!1)}},Sn=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},lr=()=>{x(!1),f(!1),y({title:"重启失败",description:"服务器未能在预期时间内恢复,请手动检查",variant:"destructive"})};return e?r.jsx(Xt,{className:"h-full",children:r.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:r.jsx("div",{className:"flex items-center justify-center h-64",children:r.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):r.jsx(Xt,{className:"h-full",children:r.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦主程序配置"}),r.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的核心功能和行为设置"})]}),r.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[r.jsxs(re,{onClick:Gn,disabled:n||l||!c||m,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[r.jsx(y1,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),n?"保存中...":l?"自动保存中...":c?"保存配置":"已保存"]}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsxs(re,{disabled:n||l||m,size:"sm",className:"flex-1 sm:flex-none",children:[r.jsx(b1,{className:"mr-2 h-4 w-4"}),m?"重启中...":c?"保存并重启":"重启麦麦"]})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认重启麦麦?"}),r.jsx(en,{children:c?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:c?Er:Sr,children:c?"保存并重启":"确认重启"})]})]})]})]})]}),r.jsxs(Fu,{children:[r.jsx(hi,{className:"h-4 w-4"}),r.jsxs(Iu,{children:["配置更新后需要",r.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),r.jsxs(Sl,{defaultValue:"bot",className:"w-full",children:[r.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:r.jsxs(Ls,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5 lg:grid-cols-10",children:[r.jsx(Rt,{value:"bot",className:"flex-shrink-0",children:"基本信息"}),r.jsx(Rt,{value:"personality",className:"flex-shrink-0",children:"人格"}),r.jsx(Rt,{value:"chat",className:"flex-shrink-0",children:"聊天"}),r.jsx(Rt,{value:"expression",className:"flex-shrink-0",children:"表达"}),r.jsx(Rt,{value:"features",className:"flex-shrink-0",children:"功能"}),r.jsx(Rt,{value:"processing",className:"flex-shrink-0",children:"处理"}),r.jsx(Rt,{value:"mood",className:"flex-shrink-0",children:"情绪"}),r.jsx(Rt,{value:"voice",className:"flex-shrink-0",children:"语音"}),r.jsx(Rt,{value:"lpmm",className:"flex-shrink-0",children:"知识库"}),r.jsx(Rt,{value:"other",className:"flex-shrink-0",children:"其他"})]})}),r.jsx(ln,{value:"bot",className:"space-y-4",children:b&&r.jsx(OD,{config:b,onChange:j})}),r.jsx(ln,{value:"personality",className:"space-y-4",children:k&&r.jsx(RD,{config:k,onChange:S})}),r.jsx(ln,{value:"chat",className:"space-y-4",children:_&&r.jsx(BD,{config:_,onChange:M})}),r.jsx(ln,{value:"expression",className:"space-y-4",children:D&&r.jsx(LD,{config:D,onChange:z})}),r.jsx(ln,{value:"features",className:"space-y-4",children:L&&R&&$&&r.jsx(PD,{emojiConfig:L,memoryConfig:R,toolConfig:$,onEmojiChange:E,onMemoryChange:H,onToolChange:I})}),r.jsx(ln,{value:"processing",className:"space-y-4",children:q&&oe&&je&&O&&r.jsx(FD,{keywordReactionConfig:q,responsePostProcessConfig:oe,chineseTypoConfig:je,responseSplitterConfig:O,onKeywordReactionChange:W,onResponsePostProcessChange:P,onChineseTypoChange:Z,onResponseSplitterChange:Ne})}),r.jsx(ln,{value:"mood",className:"space-y-4",children:G&&r.jsx(ID,{config:G,onChange:te})}),r.jsx(ln,{value:"voice",className:"space-y-4",children:we&&r.jsx(qD,{config:we,onChange:J})}),r.jsx(ln,{value:"lpmm",className:"space-y-4",children:ae&&r.jsx(HD,{config:ae,onChange:U})}),r.jsxs(ln,{value:"other",className:"space-y-4",children:[se&&r.jsx(UD,{config:se,onChange:Ce}),ye&&r.jsx($D,{config:ye,onChange:Be}),ie&&r.jsx(VD,{config:ie,onChange:He}),lt&&r.jsx(GD,{config:lt,onChange:ve})]})]}),p&&r.jsx(F1,{onRestartComplete:Sn,onRestartFailed:lr})]})})}function OD({config:e,onChange:t}){const n=()=>{t({...e,platforms:[...e.platforms,""]})},a=m=>{t({...e,platforms:e.platforms.filter((f,p)=>p!==m)})},l=(m,f)=>{const p=[...e.platforms];p[m]=f,t({...e,platforms:p})},o=()=>{t({...e,alias_names:[...e.alias_names,""]})},c=m=>{t({...e,alias_names:e.alias_names.filter((f,p)=>p!==m)})},d=(m,f)=>{const p=[...e.alias_names];p[m]=f,t({...e,alias_names:p})};return r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"基本信息"}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"platform",children:"平台"}),r.jsx(Te,{id:"platform",value:e.platform,onChange:m=>t({...e,platform:m.target.value}),placeholder:"qq"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"qq_account",children:"QQ账号"}),r.jsx(Te,{id:"qq_account",value:e.qq_account,onChange:m=>t({...e,qq_account:m.target.value}),placeholder:"123456789"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"nickname",children:"昵称"}),r.jsx(Te,{id:"nickname",value:e.nickname,onChange:m=>t({...e,nickname:m.target.value}),placeholder:"麦麦"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{children:"其他平台账号"}),r.jsxs(re,{onClick:n,size:"sm",variant:"outline",children:[r.jsx(mr,{className:"h-4 w-4 mr-1"}),"添加"]})]}),r.jsxs("div",{className:"space-y-2",children:[e.platforms.map((m,f)=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Te,{value:m,onChange:p=>l(f,p.target.value),placeholder:"wx:114514"}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"icon",variant:"outline",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:['确定要删除平台账号 "',m||"(空)",'" 吗?此操作无法撤销。']})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>a(f),children:"删除"})]})]})]})]},f)),e.platforms.length===0&&r.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无其他平台账号"})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{children:"别名"}),r.jsxs(re,{onClick:o,size:"sm",variant:"outline",children:[r.jsx(mr,{className:"h-4 w-4 mr-1"}),"添加"]})]}),r.jsxs("div",{className:"space-y-2",children:[e.alias_names.map((m,f)=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Te,{value:m,onChange:p=>d(f,p.target.value),placeholder:"小麦"}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"icon",variant:"outline",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:['确定要删除别名 "',m||"(空)",'" 吗?此操作无法撤销。']})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>c(f),children:"删除"})]})]})]})]},f)),e.alias_names.length===0&&r.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无别名"})]})]})]})]})})}function RD({config:e,onChange:t}){const n=()=>{t({...e,states:[...e.states,""]})},a=o=>{t({...e,states:e.states.filter((c,d)=>d!==o)})},l=(o,c)=>{const d=[...e.states];d[o]=c,t({...e,states:d})};return r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"人格设置"}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"personality",children:"人格特质"}),r.jsx(vn,{id:"personality",value:e.personality,onChange:o=>t({...e,personality:o.target.value}),placeholder:"描述人格特质和身份特征(建议120字以内)",rows:3}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"建议120字以内,描述人格特质和身份特征"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"reply_style",children:"表达风格"}),r.jsx(vn,{id:"reply_style",value:e.reply_style,onChange:o=>t({...e,reply_style:o.target.value}),placeholder:"描述说话的表达风格和习惯",rows:3})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"interest",children:"兴趣"}),r.jsx(vn,{id:"interest",value:e.interest,onChange:o=>t({...e,interest:o.target.value}),placeholder:"会影响麦麦对什么话题进行回复",rows:2})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"plan_style",children:"说话规则与行为风格"}),r.jsx(vn,{id:"plan_style",value:e.plan_style,onChange:o=>t({...e,plan_style:o.target.value}),placeholder:"麦麦的说话规则和行为风格",rows:5})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"visual_style",children:"识图规则"}),r.jsx(vn,{id:"visual_style",value:e.visual_style,onChange:o=>t({...e,visual_style:o.target.value}),placeholder:"识图时的处理规则",rows:3})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"private_plan_style",children:"私聊规则"}),r.jsx(vn,{id:"private_plan_style",value:e.private_plan_style,onChange:o=>t({...e,private_plan_style:o.target.value}),placeholder:"私聊的说话规则和行为风格",rows:4})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{children:"状态列表(人格多样性)"}),r.jsxs(re,{onClick:n,size:"sm",variant:"outline",children:[r.jsx(mr,{className:"h-4 w-4 mr-1"}),"添加状态"]})]}),r.jsx("div",{className:"space-y-2",children:e.states.map((o,c)=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx(vn,{value:o,onChange:d=>l(c,d.target.value),placeholder:"描述一个人格状态",rows:2}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"icon",variant:"outline",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsx(en,{children:"确定要删除这个人格状态吗?此操作无法撤销。"})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>a(c),children:"删除"})]})]})]})]},c))})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"state_probability",children:"状态替换概率"}),r.jsx(Te,{id:"state_probability",type:"number",step:"0.1",min:"0",max:"1",value:e.state_probability,onChange:o=>t({...e,state_probability:parseFloat(o.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"每次构建人格时替换 personality 的概率(0.0-1.0)"})]})]})]})})}function BD({config:e,onChange:t}){const n=()=>{t({...e,talk_value_rules:[...e.talk_value_rules,{target:"",time:"00:00-23:59",value:1}]})},a=d=>{t({...e,talk_value_rules:e.talk_value_rules.filter((m,f)=>f!==d)})},l=(d,m,f)=>{const p=[...e.talk_value_rules];p[d]={...p[d],[m]:f},t({...e,talk_value_rules:p})},o=({value:d,onChange:m})=>{const[f,p]=w.useState("00"),[x,y]=w.useState("00"),[b,j]=w.useState("23"),[k,S]=w.useState("59");w.useEffect(()=>{const M=d.split("-");if(M.length===2){const[D,z]=M,[L,E]=D.split(":"),[R,H]=z.split(":");L&&p(L.padStart(2,"0")),E&&y(E.padStart(2,"0")),R&&j(R.padStart(2,"0")),H&&S(H.padStart(2,"0"))}},[d]);const _=(M,D,z,L)=>{const E=`${M}:${D}-${z}:${L}`;m(E)};return r.jsxs(kl,{children:[r.jsx(Cl,{asChild:!0,children:r.jsxs(re,{variant:"outline",className:"w-full justify-start font-mono text-sm",children:[r.jsx(ui,{className:"h-4 w-4 mr-2"}),d||"选择时间段"]})}),r.jsx(Ps,{className:"w-80",children:r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{children:[r.jsx("h4",{className:"font-medium text-sm mb-3",children:"开始时间"}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[r.jsxs("div",{children:[r.jsx(Q,{className:"text-xs",children:"小时"}),r.jsxs(_t,{value:f,onValueChange:M=>{p(M),_(M,x,b,k)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:Array.from({length:24},(M,D)=>D).map(M=>r.jsx(ze,{value:M.toString().padStart(2,"0"),children:M.toString().padStart(2,"0")},M))})]})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-xs",children:"分钟"}),r.jsxs(_t,{value:x,onValueChange:M=>{y(M),_(f,M,b,k)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:Array.from({length:60},(M,D)=>D).map(M=>r.jsx(ze,{value:M.toString().padStart(2,"0"),children:M.toString().padStart(2,"0")},M))})]})]})]})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"font-medium text-sm mb-3",children:"结束时间"}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 sm:gap-3",children:[r.jsxs("div",{children:[r.jsx(Q,{className:"text-xs",children:"小时"}),r.jsxs(_t,{value:b,onValueChange:M=>{j(M),_(f,x,M,k)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:Array.from({length:24},(M,D)=>D).map(M=>r.jsx(ze,{value:M.toString().padStart(2,"0"),children:M.toString().padStart(2,"0")},M))})]})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-xs",children:"分钟"}),r.jsxs(_t,{value:k,onValueChange:M=>{S(M),_(f,x,b,M)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:Array.from({length:60},(M,D)=>D).map(M=>r.jsx(ze,{value:M.toString().padStart(2,"0"),children:M.toString().padStart(2,"0")},M))})]})]})]})]})]})})]})},c=({rule:d})=>{const m=`{ target = "${d.target}", time = "${d.time}", value = ${d.value.toFixed(1)} }`;return r.jsxs(kl,{children:[r.jsx(Cl,{asChild:!0,children:r.jsxs(re,{variant:"outline",size:"sm",children:[r.jsx(qa,{className:"h-4 w-4 mr-1"}),"预览"]})}),r.jsx(Ps,{className:"w-96",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),r.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:m}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天设置"}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"talk_value",children:"聊天频率(基础值)"}),r.jsx(Te,{id:"talk_value",type:"number",step:"0.1",min:"0",max:"1",value:e.talk_value,onChange:d=>t({...e,talk_value:parseFloat(d.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"越小越沉默,范围 0-1"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"mentioned_bot_reply",children:"提及回复增幅"}),r.jsx(Te,{id:"mentioned_bot_reply",type:"number",step:"0.1",min:"0",max:"1",value:e.mentioned_bot_reply,onChange:d=>t({...e,mentioned_bot_reply:parseFloat(d.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"提及时回复概率增幅,1 为 100% 回复"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"max_context_size",children:"上下文长度"}),r.jsx(Te,{id:"max_context_size",type:"number",min:"1",value:e.max_context_size,onChange:d=>t({...e,max_context_size:parseInt(d.target.value)})})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"planner_smooth",children:"规划器平滑"}),r.jsx(Te,{id:"planner_smooth",type:"number",step:"1",min:"0",value:e.planner_smooth,onChange:d=>t({...e,planner_smooth:parseFloat(d.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"增大数值会减小 planner 负荷,推荐 1-5,0 为关闭"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"enable_talk_value_rules",checked:e.enable_talk_value_rules,onCheckedChange:d=>t({...e,enable_talk_value_rules:d})}),r.jsx(Q,{htmlFor:"enable_talk_value_rules",className:"cursor-pointer",children:"启用动态发言频率规则"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"include_planner_reasoning",checked:e.include_planner_reasoning,onCheckedChange:d=>t({...e,include_planner_reasoning:d})}),r.jsx(Q,{htmlFor:"include_planner_reasoning",className:"cursor-pointer",children:"将 planner 推理加入 replyer"})]})]})]}),e.enable_talk_value_rules&&r.jsxs("div",{className:"border-t pt-6",children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsxs("div",{children:[r.jsx("h4",{className:"text-base font-semibold",children:"动态发言频率规则"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"按时段或聊天流ID调整发言频率,优先匹配具体聊天,再匹配全局规则"})]}),r.jsxs(re,{onClick:n,size:"sm",children:[r.jsx(mr,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),e.talk_value_rules&&e.talk_value_rules.length>0?r.jsx("div",{className:"space-y-4",children:e.talk_value_rules.map((d,m)=>r.jsxs("div",{className:"rounded-lg border p-4 bg-muted/50 space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("span",{className:"text-sm font-medium text-muted-foreground",children:["规则 #",m+1]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(c,{rule:d}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{variant:"ghost",size:"sm",children:r.jsx(Ot,{className:"h-4 w-4 text-destructive"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:["确定要删除规则 #",m+1," 吗?此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>a(m),children:"删除"})]})]})]})]})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),r.jsxs(_t,{value:d.target===""?"global":"specific",onValueChange:f=>{f==="global"?l(m,"target",""):l(m,"target","qq::group")},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"global",children:"全局配置"}),r.jsx(ze,{value:"specific",children:"详细配置"})]})]})]}),d.target!==""&&(()=>{const f=d.target.split(":"),p=f[0]||"qq",x=f[1]||"",y=f[2]||"group";return r.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[r.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"平台"}),r.jsxs(_t,{value:p,onValueChange:b=>{l(m,"target",`${b}:${x}:${y}`)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"qq",children:"QQ"}),r.jsx(ze,{value:"wx",children:"微信"})]})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),r.jsx(Te,{value:x,onChange:b=>{l(m,"target",`${p}:${b.target.value}:${y}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"类型"}),r.jsxs(_t,{value:y,onValueChange:b=>{l(m,"target",`${p}:${x}:${b}`)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"group",children:"群组(group)"}),r.jsx(ze,{value:"private",children:"私聊(private)"})]})]})]})]}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",d.target||"(未设置)"]})]})})(),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"时间段 (Time)"}),r.jsx(o,{value:d.time,onChange:f=>l(m,"time",f)}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"支持跨夜区间,例如 23:00-02:00"})]}),r.jsxs("div",{className:"grid gap-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{htmlFor:`rule-value-${m}`,className:"text-xs font-medium",children:"发言频率值 (Value)"}),r.jsx(Te,{id:`rule-value-${m}`,type:"number",step:"0.01",min:"0",max:"1",value:d.value,onChange:f=>{const p=parseFloat(f.target.value);isNaN(p)||l(m,"value",Math.max(0,Math.min(1,p)))},className:"w-20 h-8 text-xs"})]}),r.jsx(Rm,{value:[d.value],onValueChange:f=>l(m,"value",f[0]),min:0,max:1,step:.01,className:"w-full"}),r.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[r.jsx("span",{children:"0 (完全沉默)"}),r.jsx("span",{children:"0.5"}),r.jsx("span",{children:"1.0 (正常)"})]})]})]})]},m))}):r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:r.jsx("p",{className:"text-sm",children:'暂无规则,点击"添加规则"按钮创建'})}),r.jsxs("div",{className:"mt-4 p-4 bg-blue-50 dark:bg-blue-950/20 border border-blue-200 dark:border-blue-800 rounded-lg",children:[r.jsx("h5",{className:"text-sm font-semibold text-blue-900 dark:text-blue-100 mb-2",children:"📝 规则说明"}),r.jsxs("ul",{className:"text-xs text-blue-800 dark:text-blue-200 space-y-1",children:[r.jsxs("li",{children:["• ",r.jsx("strong",{children:"Target 为空"}),":全局规则,对所有聊天生效"]}),r.jsxs("li",{children:["• ",r.jsx("strong",{children:"Target 指定"}),":仅对特定聊天流生效(格式:platform:id:type)"]}),r.jsxs("li",{children:["• ",r.jsx("strong",{children:"优先级"}),":先匹配具体聊天流规则,再匹配全局规则"]}),r.jsxs("li",{children:["• ",r.jsx("strong",{children:"时间支持跨夜"}),":例如 23:00-02:00 表示晚上11点到次日凌晨2点"]}),r.jsxs("li",{children:["• ",r.jsx("strong",{children:"数值范围"}),":建议 0-1,0 表示完全沉默,1 表示正常发言"]})]})]})]})]})}function LD({config:e,onChange:t}){const n=()=>{t({...e,learning_list:[...e.learning_list,["","enable","enable","1.0"]]})},a=y=>{t({...e,learning_list:e.learning_list.filter((b,j)=>j!==y)})},l=(y,b,j)=>{const k=[...e.learning_list];k[y][b]=j,t({...e,learning_list:k})},o=({rule:y})=>{const b=`["${y[0]}", "${y[1]}", "${y[2]}", "${y[3]}"]`;return r.jsxs(kl,{children:[r.jsx(Cl,{asChild:!0,children:r.jsxs(re,{variant:"outline",size:"sm",children:[r.jsx(qa,{className:"h-4 w-4 mr-1"}),"预览"]})}),r.jsx(Ps,{className:"w-96",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),r.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:b}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},c=({member:y,groupIndex:b,memberIndex:j,availableChatIds:k})=>{const S=k.includes(y)||y==="*",[_,M]=w.useState(!S);return r.jsxs("div",{className:"flex gap-2",children:[r.jsx("div",{className:"flex-1 flex gap-2",children:_?r.jsxs(r.Fragment,{children:[r.jsx(Te,{value:y,onChange:D=>x(b,j,D.target.value),placeholder:'输入 "*" 或 "qq:123456:group"',className:"flex-1"}),k.length>0&&r.jsx(re,{size:"sm",variant:"outline",onClick:()=>M(!1),title:"切换到下拉选择",children:"下拉"})]}):r.jsxs(r.Fragment,{children:[r.jsxs(_t,{value:y,onValueChange:D=>x(b,j,D),children:[r.jsx(jt,{className:"flex-1",children:r.jsx(Mt,{placeholder:"选择聊天流"})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"*",children:"* (全局共享)"}),k.map((D,z)=>r.jsx(ze,{value:D,children:D},z))]})]}),r.jsx(re,{size:"sm",variant:"outline",onClick:()=>M(!0),title:"切换到手动输入",children:"输入"})]})}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"icon",variant:"outline",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:['确定要删除组成员 "',y||"(空)",'" 吗?此操作无法撤销。']})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>p(b,j),children:"删除"})]})]})]})]})},d=()=>{t({...e,expression_groups:[...e.expression_groups,[]]})},m=y=>{t({...e,expression_groups:e.expression_groups.filter((b,j)=>j!==y)})},f=y=>{const b=[...e.expression_groups];b[y]=[...b[y],""],t({...e,expression_groups:b})},p=(y,b)=>{const j=[...e.expression_groups];j[y]=j[y].filter((k,S)=>S!==b),t({...e,expression_groups:j})},x=(y,b,j)=>{const k=[...e.expression_groups];k[y][b]=j,t({...e,expression_groups:k})};return r.jsxs("div",{className:"space-y-6",children:[r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold",children:"表达学习配置"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置麦麦如何学习和使用表达方式"})]}),r.jsxs(re,{onClick:n,size:"sm",variant:"outline",children:[r.jsx(mr,{className:"h-4 w-4 mr-1"}),"添加规则"]})]}),r.jsxs("div",{className:"space-y-4",children:[e.learning_list.map((y,b)=>{const j=e.learning_list.some((z,L)=>L!==b&&z[0]===""),k=y[0]==="",S=y[0].split(":"),_=S[0]||"qq",M=S[1]||"",D=S[2]||"group";return r.jsxs("div",{className:"rounded-lg border p-4 space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("span",{className:"text-sm font-medium",children:["规则 ",b+1," ",k&&"(全局配置)"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(o,{rule:y}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"sm",variant:"ghost",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:["确定要删除学习规则 ",b+1," 吗?此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>a(b),children:"删除"})]})]})]})]})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"配置类型"}),r.jsxs(_t,{value:k?"global":"specific",onValueChange:z=>{z==="global"?l(b,0,""):l(b,0,"qq::group")},disabled:j&&!k,children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"global",children:"全局配置"}),r.jsx(ze,{value:"specific",disabled:j&&!k,children:"详细配置"})]})]}),j&&!k&&r.jsx("p",{className:"text-xs text-amber-600",children:"已存在全局配置,无法创建新的全局配置"})]}),!k&&r.jsxs("div",{className:"grid gap-4 p-4 rounded-lg bg-muted/50",children:[r.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"平台"}),r.jsxs(_t,{value:_,onValueChange:z=>{l(b,0,`${z}:${M}:${D}`)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"qq",children:"QQ"}),r.jsx(ze,{value:"wx",children:"微信"})]})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"群 ID"}),r.jsx(Te,{value:M,onChange:z=>{l(b,0,`${_}:${z.target.value}:${D}`)},placeholder:"输入群 ID",className:"font-mono text-sm"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"类型"}),r.jsxs(_t,{value:D,onValueChange:z=>{l(b,0,`${_}:${M}:${z}`)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"group",children:"群组(group)"}),r.jsx(ze,{value:"private",children:"私聊(private)"})]})]})]})]}),r.jsxs("p",{className:"text-xs text-muted-foreground",children:["当前聊天流 ID:",y[0]||"(未设置)"]})]}),r.jsx("div",{className:"grid gap-2",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx(Q,{className:"text-xs font-medium",children:"使用学到的表达"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦使用从聊天中学到的表达方式"})]}),r.jsx(gt,{checked:y[1]==="enable",onCheckedChange:z=>l(b,1,z?"enable":"disable")})]})}),r.jsx("div",{className:"grid gap-2",children:r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx(Q,{className:"text-xs font-medium",children:"学习表达"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"允许麦麦从聊天中学习新的表达方式"})]}),r.jsx(gt,{checked:y[2]==="enable",onCheckedChange:z=>l(b,2,z?"enable":"disable")})]})}),r.jsxs("div",{className:"grid gap-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{className:"text-xs font-medium",children:"学习强度"}),r.jsx(Te,{type:"number",step:"0.1",min:"0",max:"5",value:y[3],onChange:z=>{const L=parseFloat(z.target.value);isNaN(L)||l(b,3,Math.max(0,Math.min(5,L)).toFixed(1))},className:"w-20 h-8 text-xs"})]}),r.jsx(Rm,{value:[parseFloat(y[3])||1],onValueChange:z=>l(b,3,z[0].toFixed(1)),min:0,max:5,step:.1,className:"w-full"}),r.jsxs("div",{className:"flex justify-between text-xs text-muted-foreground",children:[r.jsx("span",{children:"0 (不学习)"}),r.jsx("span",{children:"2.5"}),r.jsx("span",{children:"5.0 (快速学习)"})]}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"影响学习频率,最短学习间隔 = 300/学习强度(秒)"})]})]})]},b)}),e.learning_list.length===0&&r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无学习规则,点击"添加规则"开始配置'})]})]})}),r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center justify-between mb-4",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold",children:"表达共享组配置"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"配置不同聊天流之间如何共享学到的表达方式"})]}),r.jsxs(re,{onClick:d,size:"sm",variant:"outline",children:[r.jsx(mr,{className:"h-4 w-4 mr-1"}),"添加共享组"]})]}),r.jsxs("div",{className:"space-y-4",children:[e.expression_groups.map((y,b)=>{const j=e.learning_list.map(k=>k[0]).filter(k=>k!=="");return r.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("span",{className:"text-sm font-medium",children:["共享组 ",b+1,y.length===1&&y[0]==="*"&&"(全局共享)"]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(re,{onClick:()=>f(b),size:"sm",variant:"outline",children:r.jsx(mr,{className:"h-4 w-4"})}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"sm",variant:"ghost",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:["确定要删除共享组 ",b+1," 吗?此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>m(b),children:"删除"})]})]})]})]})]}),r.jsx("div",{className:"space-y-2",children:y.map((k,S)=>r.jsx(c,{member:k,groupIndex:b,memberIndex:S,availableChatIds:j},S))}),r.jsx("p",{className:"text-xs text-muted-foreground",children:'提示:可以从下拉框选择已配置的聊天流,或手动输入。输入 "*" 启用全局共享'})]},b)}),e.expression_groups.length===0&&r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无共享组,点击"添加共享组"开始配置'})]})]})})]})}function PD({emojiConfig:e,memoryConfig:t,toolConfig:n,onEmojiChange:a,onMemoryChange:l,onToolChange:o}){return r.jsxs("div",{className:"space-y-6",children:[r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"工具设置"}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"enable_tool",checked:n.enable_tool,onCheckedChange:c=>o({...n,enable_tool:c})}),r.jsx(Q,{htmlFor:"enable_tool",className:"cursor-pointer",children:"启用工具系统"})]}),r.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"允许麦麦使用各种工具来增强功能"})]})}),r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"记忆设置"}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"max_agent_iterations",children:"记忆思考深度"}),r.jsx(Te,{id:"max_agent_iterations",type:"number",min:"1",value:t.max_agent_iterations,onChange:c=>l({...t,max_agent_iterations:parseInt(c.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"最低为 1(不深入思考)"})]})]})}),r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"表情包设置"}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"emoji_chance",children:"表情包激活概率"}),r.jsx(Te,{id:"emoji_chance",type:"number",step:"0.1",min:"0",max:"1",value:e.emoji_chance,onChange:c=>a({...e,emoji_chance:parseFloat(c.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"范围 0-1,越大越容易发送表情包"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"max_reg_num",children:"最大注册数量"}),r.jsx(Te,{id:"max_reg_num",type:"number",min:"1",value:e.max_reg_num,onChange:c=>a({...e,max_reg_num:parseInt(c.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦最多可以注册的表情包数量"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"check_interval",children:"检查间隔(分钟)"}),r.jsx(Te,{id:"check_interval",type:"number",min:"1",value:e.check_interval,onChange:c=>a({...e,check_interval:parseInt(c.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"检查表情包(注册、破损、删除)的时间间隔"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"do_replace",checked:e.do_replace,onCheckedChange:c=>a({...e,do_replace:c})}),r.jsx(Q,{htmlFor:"do_replace",className:"cursor-pointer",children:"达到最大数量时替换表情包"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"steal_emoji",checked:e.steal_emoji,onCheckedChange:c=>a({...e,steal_emoji:c})}),r.jsx(Q,{htmlFor:"steal_emoji",className:"cursor-pointer",children:"偷取表情包"})]}),r.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"允许麦麦将看到的表情包据为己有"}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"content_filtration",checked:e.content_filtration,onCheckedChange:c=>a({...e,content_filtration:c})}),r.jsx(Q,{htmlFor:"content_filtration",className:"cursor-pointer",children:"启用表情包过滤"})]}),e.content_filtration&&r.jsxs("div",{className:"grid gap-2 pl-6 border-l-2 border-primary/20",children:[r.jsx(Q,{htmlFor:"filtration_prompt",children:"过滤要求"}),r.jsx(Te,{id:"filtration_prompt",value:e.filtration_prompt,onChange:c=>a({...e,filtration_prompt:c.target.value}),placeholder:"符合公序良俗"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"只有符合此要求的表情包才会被保存"})]})]})]})})]})}function FD({keywordReactionConfig:e,responsePostProcessConfig:t,chineseTypoConfig:n,responseSplitterConfig:a,onKeywordReactionChange:l,onResponsePostProcessChange:o,onChineseTypoChange:c,onResponseSplitterChange:d}){const m=()=>{l({...e,regex_rules:[...e.regex_rules,{regex:[""],reaction:""}]})},f=z=>{l({...e,regex_rules:e.regex_rules.filter((L,E)=>E!==z)})},p=(z,L,E)=>{const R=[...e.regex_rules];L==="regex"&&typeof E=="string"?R[z]={...R[z],regex:[E]}:L==="reaction"&&typeof E=="string"&&(R[z]={...R[z],reaction:E}),l({...e,regex_rules:R})},x=({regex:z,reaction:L,onRegexChange:E,onReactionChange:R})=>{const[H,$]=w.useState(!1),[I,G]=w.useState(""),[te,we]=w.useState(null),[J,ae]=w.useState(""),[U,q]=w.useState({}),[W,oe]=w.useState(""),P=w.useRef(null),[je,Z]=w.useState("build"),O=ye=>ye.replace(/\(\?P<([^>]+)>/g,"(?<$1>"),Ne=(ye,Be=0)=>{const ie=P.current;if(!ie)return;const He=ie.selectionStart||0,lt=ie.selectionEnd||0,ve=z.substring(0,He)+ye+z.substring(lt);E(ve),setTimeout(()=>{const Ze=He+ye.length+Be;ie.setSelectionRange(Ze,Ze),ie.focus()},0)};w.useEffect(()=>{if(!z||!I){we(null),q({}),oe(L),ae("");return}try{const ye=O(z),Be=new RegExp(ye,"g"),ie=I.match(Be);we(ie),ae("");const lt=new RegExp(ye).exec(I);if(lt&<.groups){q(lt.groups);let ve=L;Object.entries(lt.groups).forEach(([Ze,We])=>{ve=ve.replace(new RegExp(`\\[${Ze}\\]`,"g"),We||"")}),oe(ve)}else q({}),oe(L)}catch(ye){ae(ye.message),we(null),q({}),oe(L)}},[z,I,L]);const se=()=>{if(!I||!te||te.length===0)return r.jsx("span",{className:"text-muted-foreground",children:I||"请输入测试文本"});try{const ye=O(z),Be=new RegExp(ye,"g");let ie=0;const He=[];let lt;for(;(lt=Be.exec(I))!==null;)lt.index>ie&&He.push(r.jsx("span",{children:I.substring(ie,lt.index)},`text-${ie}`)),He.push(r.jsx("span",{className:"bg-yellow-200 dark:bg-yellow-900 font-semibold",children:lt[0]},`match-${lt.index}`)),ie=lt.index+lt[0].length;return ie)",desc:"Python风格命名捕获组",moveCursor:-1},{label:"非捕获组",pattern:"(?:)",desc:"分组但不保存匹配结果",moveCursor:-1}]},{category:"字符类",items:[{label:"字符集",pattern:"[]",desc:"匹配括号内的任意字符",moveCursor:-1},{label:"排除字符",pattern:"[^]",desc:"匹配不在括号内的字符",moveCursor:-1},{label:"范围",pattern:"[a-z]",desc:"匹配a到z的字符"},{label:"中文字符",pattern:"[\\u4e00-\\u9fa5]",desc:"匹配中文汉字"}]},{category:"常用模板",items:[{label:"捕获词语",pattern:"(?P\\S+)",desc:"捕获一个词语"},{label:"捕获句子",pattern:"(?P.+)",desc:"捕获整个句子"},{label:"捕获数字",pattern:"(?P\\d+)",desc:"捕获一个或多个数字"},{label:"可选词语",pattern:"(?:词语1|词语2)",desc:"匹配多个可选项之一"}]}];return r.jsxs(hr,{open:H,onOpenChange:$,children:[r.jsx(Pw,{asChild:!0,children:r.jsxs(re,{variant:"outline",size:"sm",children:[r.jsx(Q0,{className:"h-4 w-4 mr-1"}),"正则编辑器"]})}),r.jsxs(nr,{className:"max-w-[95vw] sm:max-w-[900px] max-h-[90vh]",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"正则表达式编辑器"}),r.jsx(wr,{className:"text-sm",children:"使用可视化工具构建正则表达式,并实时测试效果"})]}),r.jsx(Xt,{className:"max-h-[calc(90vh-120px)]",children:r.jsxs(Sl,{value:je,onValueChange:ye=>Z(ye),className:"w-full",children:[r.jsxs(Ls,{className:"grid w-full grid-cols-2",children:[r.jsx(Rt,{value:"build",children:"🔧 构建器"}),r.jsx(Rt,{value:"test",children:"🧪 测试器"})]}),r.jsxs(ln,{value:"build",className:"space-y-4 mt-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{className:"text-sm font-medium",children:"正则表达式"}),r.jsx(Te,{ref:P,value:z,onChange:ye=>E(ye.target.value),className:"font-mono text-sm",placeholder:"点击下方按钮构建正则表达式..."})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{className:"text-sm font-medium",children:"Reaction 内容"}),r.jsx(vn,{value:L,onChange:ye=>R(ye.target.value),placeholder:"使用 [捕获组名] 引用捕获的内容...",rows:3,className:"text-sm"})]}),r.jsxs("div",{className:"space-y-4 border-t pt-4",children:[Ce.map(ye=>r.jsxs("div",{className:"space-y-2",children:[r.jsx("h5",{className:"text-xs font-semibold text-primary",children:ye.category}),r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-2",children:ye.items.map(Be=>r.jsx(re,{variant:"outline",size:"sm",className:"justify-start h-auto py-2 px-3",onClick:()=>Ne(Be.pattern,Be.moveCursor||0),children:r.jsxs("div",{className:"flex flex-col items-start w-full",children:[r.jsxs("div",{className:"flex items-center gap-2 w-full",children:[r.jsx("span",{className:"text-xs font-medium",children:Be.label}),r.jsx("code",{className:"ml-auto text-xs bg-muted px-1.5 py-0.5 rounded font-mono",children:Be.pattern})]}),r.jsx("span",{className:"text-xs text-muted-foreground mt-0.5",children:Be.desc})]})},Be.label))})]},ye.category)),r.jsxs("div",{className:"space-y-2 border-t pt-4",children:[r.jsx("h5",{className:"text-xs font-semibold text-primary",children:"完整示例模板"}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(re,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>E("^(?P\\S{1,20})是这样的$"),children:r.jsxs("div",{className:"flex flex-col items-start w-full",children:[r.jsxs("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:["^(?P\\S","{1,20}",")是这样的$"]}),r.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「某事物是这样的」并捕获事物名称"})]})}),r.jsx(re,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>E("(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"),children:r.jsxs("div",{className:"flex flex-col items-start w-full",children:[r.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?:[^,。.\\s]+,\\s*)?我(?:也)?[没沒]要求你\\s*(?P.+?)[.。,,]?$"}),r.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"匹配「我没要求你做某事」并捕获具体行为"})]})}),r.jsx(re,{variant:"outline",size:"sm",className:"w-full justify-start h-auto py-2 px-3",onClick:()=>E("(?P.+?)(?:是|为什么|怎么)"),children:r.jsxs("div",{className:"flex flex-col items-start w-full",children:[r.jsx("code",{className:"text-xs font-mono bg-muted px-2 py-1 rounded w-full overflow-x-auto",children:"(?P.+?)(?:是|为什么|怎么)"}),r.jsx("span",{className:"text-xs text-muted-foreground mt-1",children:"捕获问题主题词"})]})})]})]})]}),r.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[r.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 使用提示"}),r.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[r.jsx("li",{children:"点击输入框设置光标位置,然后点击按钮插入模式"}),r.jsxs("li",{children:["命名捕获组格式:",r.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"(?P<名称>模式)"})]}),r.jsxs("li",{children:["在 reaction 中使用 ",r.jsx("code",{className:"bg-blue-100 dark:bg-blue-900 px-1 rounded",children:"[名称]"})," 引用捕获的内容"]}),r.jsx("li",{children:"切换到测试器标签页验证正则表达式效果"})]})]})]}),r.jsxs(ln,{value:"test",className:"space-y-4 mt-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{className:"text-sm font-medium",children:"当前正则表达式"}),r.jsx("div",{className:"rounded-md bg-muted p-3 font-mono text-xs break-all",children:z||"(未设置)"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"test-text",className:"text-sm font-medium",children:"测试文本"}),r.jsx(vn,{id:"test-text",value:I,onChange:ye=>G(ye.target.value),placeholder:`在此输入要测试的文本... +例如:打游戏是这样的`,className:"min-h-[100px] text-sm"})]}),J&&r.jsxs("div",{className:"rounded-md bg-destructive/10 border border-destructive/20 p-3",children:[r.jsx("p",{className:"text-sm text-destructive font-medium",children:"正则表达式错误"}),r.jsx("p",{className:"text-xs text-destructive/80 mt-1",children:J})]}),!J&&I&&r.jsxs("div",{className:"space-y-3",children:[r.jsx("div",{className:"flex items-center gap-2",children:te&&te.length>0?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"h-2 w-2 rounded-full bg-green-500"}),r.jsxs("span",{className:"text-sm font-medium text-green-600 dark:text-green-400",children:["匹配成功 (",te.length," 处)"]})]}):r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"h-2 w-2 rounded-full bg-gray-400"}),r.jsx("span",{className:"text-sm font-medium text-muted-foreground",children:"无匹配"})]})}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{className:"text-sm font-medium",children:"匹配高亮"}),r.jsx(Xt,{className:"h-40 rounded-md bg-muted p-3",children:r.jsx("div",{className:"text-sm break-words",children:se()})})]}),Object.keys(U).length>0&&r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{className:"text-sm font-medium",children:"命名捕获组"}),r.jsx(Xt,{className:"h-32 rounded-md border p-3",children:r.jsx("div",{className:"space-y-2",children:Object.entries(U).map(([ye,Be])=>r.jsxs("div",{className:"flex items-start gap-2 text-sm",children:[r.jsxs("span",{className:"font-mono font-semibold text-primary min-w-[80px]",children:["[",ye,"]"]}),r.jsx("span",{className:"text-muted-foreground",children:"="}),r.jsx("span",{className:"font-mono bg-muted px-2 py-0.5 rounded",children:Be})]},ye))})})]}),Object.keys(U).length>0&&L&&r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{className:"text-sm font-medium",children:"Reaction 替换预览"}),r.jsx(Xt,{className:"h-48 rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3",children:r.jsx("div",{className:"text-sm break-words",children:W})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"reaction 中的 [name] 已被替换为对应的捕获组值"})]})]}),r.jsxs("div",{className:"rounded-md bg-blue-50 dark:bg-blue-950/30 border border-blue-200 dark:border-blue-800 p-3 space-y-1",children:[r.jsx("p",{className:"text-xs font-medium text-blue-900 dark:text-blue-100",children:"💡 测试说明"}),r.jsxs("ul",{className:"text-xs text-blue-700 dark:text-blue-300 space-y-1 list-disc list-inside",children:[r.jsx("li",{children:"匹配的文本会以黄色背景高亮显示"}),r.jsx("li",{children:"命名捕获组的值会显示在下方列表中"}),r.jsx("li",{children:"Reaction 替换预览显示最终生成的反应内容"}),r.jsx("li",{children:"如需修改正则,切换回构建器标签页"})]})]})]})]})})]})]})},y=()=>{l({...e,keyword_rules:[...e.keyword_rules,{keywords:[],reaction:""}]})},b=z=>{l({...e,keyword_rules:e.keyword_rules.filter((L,E)=>E!==z)})},j=(z,L,E)=>{const R=[...e.keyword_rules];typeof E=="string"&&(R[z]={...R[z],reaction:E}),l({...e,keyword_rules:R})},k=z=>{const L=[...e.keyword_rules];L[z]={...L[z],keywords:[...L[z].keywords||[],""]},l({...e,keyword_rules:L})},S=(z,L)=>{const E=[...e.keyword_rules];E[z]={...E[z],keywords:(E[z].keywords||[]).filter((R,H)=>H!==L)},l({...e,keyword_rules:E})},_=(z,L,E)=>{const R=[...e.keyword_rules],H=[...R[z].keywords||[]];H[L]=E,R[z]={...R[z],keywords:H},l({...e,keyword_rules:R})},M=({rule:z})=>{const L=`{ regex = [${(z.regex||[]).map(E=>`"${E}"`).join(", ")}], reaction = "${z.reaction}" }`;return r.jsxs(kl,{children:[r.jsx(Cl,{asChild:!0,children:r.jsxs(re,{variant:"outline",size:"sm",children:[r.jsx(qa,{className:"h-4 w-4 mr-1"}),"预览"]})}),r.jsx(Ps,{className:"w-[95vw] sm:w-[500px]",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),r.jsx(Xt,{className:"h-60 rounded-md bg-muted p-3",children:r.jsx("pre",{className:"font-mono text-xs break-all",children:L})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})},D=({rule:z})=>{const L=`[[keyword_reaction.keyword_rules]] +keywords = [${(z.keywords||[]).map(E=>`"${E}"`).join(", ")}] +reaction = "${z.reaction}"`;return r.jsxs(kl,{children:[r.jsx(Cl,{asChild:!0,children:r.jsxs(re,{variant:"outline",size:"sm",children:[r.jsx(qa,{className:"h-4 w-4 mr-1"}),"预览"]})}),r.jsx(Ps,{className:"w-[95vw] sm:w-[500px]",children:r.jsxs("div",{className:"space-y-2",children:[r.jsx("h4",{className:"font-medium text-sm",children:"配置预览"}),r.jsx(Xt,{className:"h-60 rounded-md bg-muted p-3",children:r.jsx("pre",{className:"font-mono text-xs whitespace-pre-wrap break-all",children:L})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"这是保存到 bot_config.toml 文件中的格式"})]})})]})};return r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-2",children:"关键词反应配置"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"配置触发特定反应的关键词和正则表达式规则"})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("h4",{className:"text-base font-semibold",children:"正则表达式规则"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用正则表达式匹配消息内容"})]}),r.jsxs(re,{onClick:m,size:"sm",variant:"outline",children:[r.jsx(mr,{className:"h-4 w-4 mr-1"}),"添加正则规则"]})]}),r.jsxs("div",{className:"space-y-3",children:[e.regex_rules.map((z,L)=>r.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("span",{className:"text-sm font-medium",children:["正则规则 ",L+1]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(x,{regex:z.regex&&z.regex[0]||"",reaction:z.reaction,onRegexChange:E=>p(L,"regex",E),onReactionChange:E=>p(L,"reaction",E)}),r.jsx(M,{rule:z}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"sm",variant:"ghost",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:["确定要删除正则规则 ",L+1," 吗?此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>f(L),children:"删除"})]})]})]})]})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"正则表达式(Python 语法)"}),r.jsx(Te,{value:z.regex&&z.regex[0]||"",onChange:E=>p(L,"regex",E.target.value),placeholder:"例如:^(?P\\\\S{1,20})是这样的$ (点击正则编辑器按钮可视化构建)",className:"font-mono text-sm"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:'支持命名捕获组 (?Ppattern),可在 reaction 中使用 [name] 引用。点击"正则编辑器"可视化构建和测试!'})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),r.jsx(vn,{value:z.reaction,onChange:E=>p(L,"reaction",E.target.value),placeholder:`触发后麦麦的反应... +可以使用 [捕获组名] 来引用正则表达式中的内容`,rows:3,className:"text-sm"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"使用 [捕获组名] 引用正则表达式中的命名捕获组,例如 [n] 会被替换为捕获的内容"})]})]})]},L)),e.regex_rules.length===0&&r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无正则规则,点击"添加正则规则"开始配置'})]})]}),r.jsxs("div",{className:"space-y-4 border-t pt-6",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx("h4",{className:"text-base font-semibold",children:"关键词规则"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"使用关键词列表匹配消息内容"})]}),r.jsxs(re,{onClick:y,size:"sm",variant:"outline",children:[r.jsx(mr,{className:"h-4 w-4 mr-1"}),"添加关键词规则"]})]}),r.jsxs("div",{className:"space-y-3",children:[e.keyword_rules.map((z,L)=>r.jsxs("div",{className:"rounded-lg border p-4 space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("span",{className:"text-sm font-medium",children:["关键词规则 ",L+1]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(D,{rule:z}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"sm",variant:"ghost",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:["确定要删除关键词规则 ",L+1," 吗?此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>b(L),children:"删除"})]})]})]})]})]}),r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{className:"text-xs font-medium",children:"关键词列表"}),r.jsxs(re,{onClick:()=>k(L),size:"sm",variant:"ghost",children:[r.jsx(mr,{className:"h-3 w-3 mr-1"}),"添加关键词"]})]}),r.jsxs("div",{className:"space-y-2",children:[(z.keywords||[]).map((E,R)=>r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Te,{value:E,onChange:H=>_(L,R,H.target.value),placeholder:"关键词",className:"flex-1"}),r.jsx(re,{onClick:()=>S(L,R),size:"sm",variant:"ghost",children:r.jsx(Ot,{className:"h-4 w-4"})})]},R)),(!z.keywords||z.keywords.length===0)&&r.jsx("p",{className:"text-xs text-muted-foreground text-center py-2",children:'暂无关键词,点击"添加关键词"开始配置'})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{className:"text-xs font-medium",children:"反应内容"}),r.jsx(vn,{value:z.reaction,onChange:E=>j(L,"reaction",E.target.value),placeholder:"触发后麦麦的反应...",rows:3,className:"text-sm"})]})]})]},L)),e.keyword_rules.length===0&&r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:'暂无关键词规则,点击"添加关键词规则"开始配置'})]})]})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"回复后处理配置"}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"enable_response_post_process",checked:t.enable_response_post_process,onCheckedChange:z=>o({...t,enable_response_post_process:z})}),r.jsx(Q,{htmlFor:"enable_response_post_process",className:"cursor-pointer",children:"启用回复后处理"})]}),r.jsx("p",{className:"text-xs text-muted-foreground mt-2",children:"包括错别字生成器和回复分割器"})]}),t.enable_response_post_process&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"border-t pt-6 space-y-4",children:r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[r.jsx(gt,{id:"enable_chinese_typo",checked:n.enable,onCheckedChange:z=>c({...n,enable:z})}),r.jsx(Q,{htmlFor:"enable_chinese_typo",className:"cursor-pointer font-semibold",children:"中文错别字生成器"})]}),r.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"为回复添加随机错别字,让麦麦的回复更自然"}),n.enable&&r.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"error_rate",className:"text-xs font-medium",children:"单字替换概率"}),r.jsx(Te,{id:"error_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.error_rate,onChange:z=>c({...n,error_rate:parseFloat(z.target.value)})})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"min_freq",className:"text-xs font-medium",children:"最小字频阈值"}),r.jsx(Te,{id:"min_freq",type:"number",min:"0",value:n.min_freq,onChange:z=>c({...n,min_freq:parseInt(z.target.value)})})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"tone_error_rate",className:"text-xs font-medium",children:"声调错误概率"}),r.jsx(Te,{id:"tone_error_rate",type:"number",step:"0.01",min:"0",max:"1",value:n.tone_error_rate,onChange:z=>c({...n,tone_error_rate:parseFloat(z.target.value)})})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"word_replace_rate",className:"text-xs font-medium",children:"整词替换概率"}),r.jsx(Te,{id:"word_replace_rate",type:"number",step:"0.001",min:"0",max:"1",value:n.word_replace_rate,onChange:z=>c({...n,word_replace_rate:parseFloat(z.target.value)})})]})]})]})}),r.jsx("div",{className:"border-t pt-6 space-y-4",children:r.jsxs("div",{children:[r.jsxs("div",{className:"flex items-center space-x-2 mb-4",children:[r.jsx(gt,{id:"enable_response_splitter",checked:a.enable,onCheckedChange:z=>d({...a,enable:z})}),r.jsx(Q,{htmlFor:"enable_response_splitter",className:"cursor-pointer font-semibold",children:"回复分割器"})]}),r.jsx("p",{className:"text-xs text-muted-foreground mb-4",children:"控制回复的长度和句子数量"}),a.enable&&r.jsxs("div",{className:"grid gap-4 pl-6 border-l-2 border-primary/20",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"max_length",className:"text-xs font-medium",children:"最大长度"}),r.jsx(Te,{id:"max_length",type:"number",min:"1",value:a.max_length,onChange:z=>d({...a,max_length:parseInt(z.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大字符数"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"max_sentence_num",className:"text-xs font-medium",children:"最大句子数"}),r.jsx(Te,{id:"max_sentence_num",type:"number",min:"1",value:a.max_sentence_num,onChange:z=>d({...a,max_sentence_num:parseInt(z.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"回复允许的最大句子数量"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"enable_kaomoji_protection",checked:a.enable_kaomoji_protection,onCheckedChange:z=>d({...a,enable_kaomoji_protection:z})}),r.jsx(Q,{htmlFor:"enable_kaomoji_protection",className:"cursor-pointer",children:"启用颜文字保护"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"enable_overflow_return_all",checked:a.enable_overflow_return_all,onCheckedChange:z=>d({...a,enable_overflow_return_all:z})}),r.jsx(Q,{htmlFor:"enable_overflow_return_all",className:"cursor-pointer",children:"超出时一次性返回全部"})]}),r.jsx("p",{className:"text-xs text-muted-foreground -mt-2",children:"当句子数量超出限制时,合并后一次性返回所有内容"})]})]})})]})]})]})}function ID({config:e,onChange:t}){return r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[r.jsx("h3",{className:"text-lg font-semibold",children:"情绪设置"}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{checked:e.enable_mood,onCheckedChange:n=>t({...e,enable_mood:n})}),r.jsx(Q,{className:"cursor-pointer",children:"启用情绪系统"})]}),e.enable_mood&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"情绪更新阈值"}),r.jsx(Te,{type:"number",min:"1",value:e.mood_update_threshold,onChange:n=>t({...e,mood_update_threshold:parseInt(n.target.value)})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"越高,更新越慢"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"情感特征"}),r.jsx(vn,{value:e.emotion_style,onChange:n=>t({...e,emotion_style:n.target.value}),placeholder:"影响情绪的变化情况",rows:2})]})]})]})]})}function qD({config:e,onChange:t}){return r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[r.jsx("h3",{className:"text-lg font-semibold",children:"语音设置"}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{checked:e.enable_asr,onCheckedChange:n=>t({...e,enable_asr:n})}),r.jsx(Q,{className:"cursor-pointer",children:"启用语音识别"})]}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"启用后麦麦可以识别语音消息,需要配置语音识别模型"})]})}function HD({config:e,onChange:t}){return r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[r.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库设置"}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})}),r.jsx(Q,{className:"cursor-pointer",children:"启用 LPMM 知识库"})]}),e.enable&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"LPMM 模式"}),r.jsxs(_t,{value:e.lpmm_mode,onValueChange:n=>t({...e,lpmm_mode:n}),children:[r.jsx(jt,{children:r.jsx(Mt,{placeholder:"选择 LPMM 模式"})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"classic",children:"经典模式"}),r.jsx(ze,{value:"agent",children:"Agent 模式"})]})]})]}),r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"同义词搜索 TopK"}),r.jsx(Te,{type:"number",min:"1",value:e.rag_synonym_search_top_k,onChange:n=>t({...e,rag_synonym_search_top_k:parseInt(n.target.value)})})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"同义词阈值"}),r.jsx(Te,{type:"number",step:"0.1",min:"0",max:"1",value:e.rag_synonym_threshold,onChange:n=>t({...e,rag_synonym_threshold:parseFloat(n.target.value)})})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"实体提取线程数"}),r.jsx(Te,{type:"number",min:"1",value:e.info_extraction_workers,onChange:n=>t({...e,info_extraction_workers:parseInt(n.target.value)})})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"嵌入向量维度"}),r.jsx(Te,{type:"number",min:"1",value:e.embedding_dimension,onChange:n=>t({...e,embedding_dimension:parseInt(n.target.value)})})]})]})]})]})]})}function UD({config:e,onChange:t}){const[n,a]=w.useState(""),[l,o]=w.useState("WARNING"),c=()=>{n&&!e.suppress_libraries.includes(n)&&(t({...e,suppress_libraries:[...e.suppress_libraries,n]}),a(""))},d=b=>{t({...e,suppress_libraries:e.suppress_libraries.filter(j=>j!==b)})},m=()=>{n&&!e.library_log_levels[n]&&(t({...e,library_log_levels:{...e.library_log_levels,[n]:l}}),a(""),o("WARNING"))},f=b=>{const j={...e.library_log_levels};delete j[b],t({...e,library_log_levels:j})},p=["DEBUG","INFO","WARNING","ERROR","CRITICAL"],x=["FULL","compact","lite"],y=["none","title","full"];return r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-6",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"日志配置"}),r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"日期格式"}),r.jsx(Te,{value:e.date_style,onChange:b=>t({...e,date_style:b.target.value}),placeholder:"例如: m-d H:i:s"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"m=月, d=日, H=时, i=分, s=秒"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"日志级别样式"}),r.jsxs(_t,{value:e.log_level_style,onValueChange:b=>t({...e,log_level_style:b}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:x.map(b=>r.jsx(ze,{value:b,children:b},b))})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"日志文本颜色"}),r.jsxs(_t,{value:e.color_text,onValueChange:b=>t({...e,color_text:b}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:y.map(b=>r.jsx(ze,{value:b,children:b},b))})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"全局日志级别"}),r.jsxs(_t,{value:e.log_level,onValueChange:b=>t({...e,log_level:b}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:p.map(b=>r.jsx(ze,{value:b,children:b},b))})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"控制台日志级别"}),r.jsxs(_t,{value:e.console_log_level,onValueChange:b=>t({...e,console_log_level:b}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:p.map(b=>r.jsx(ze,{value:b,children:b},b))})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"文件日志级别"}),r.jsxs(_t,{value:e.file_log_level,onValueChange:b=>t({...e,file_log_level:b}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsx(Nt,{children:p.map(b=>r.jsx(ze,{value:b,children:b},b))})]})]})]})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"mb-2 block",children:"完全屏蔽的库"}),r.jsxs("div",{className:"flex gap-2 mb-2",children:[r.jsx(Te,{value:n,onChange:b=>a(b.target.value),placeholder:"输入库名",className:"flex-1",onKeyDown:b=>{b.key==="Enter"&&(b.preventDefault(),c())}}),r.jsx(re,{onClick:c,size:"sm",className:"flex-shrink-0",children:r.jsx(mr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),r.jsx("div",{className:"flex flex-wrap gap-2",children:e.suppress_libraries.map(b=>r.jsxs("div",{className:"flex items-center gap-1 bg-secondary px-3 py-1 rounded-md",children:[r.jsx("span",{className:"text-sm",children:b}),r.jsx(re,{variant:"ghost",size:"sm",className:"h-5 w-5 p-0",onClick:()=>d(b),children:r.jsx(Ot,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},b))})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"mb-2 block",children:"特定库的日志级别"}),r.jsxs("div",{className:"flex gap-2 mb-2",children:[r.jsx(Te,{value:n,onChange:b=>a(b.target.value),placeholder:"输入库名",className:"flex-1"}),r.jsxs(_t,{value:l,onValueChange:o,children:[r.jsx(jt,{className:"w-32",children:r.jsx(Mt,{})}),r.jsx(Nt,{children:p.map(b=>r.jsx(ze,{value:b,children:b},b))})]}),r.jsx(re,{onClick:m,size:"sm",children:r.jsx(mr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),r.jsx("div",{className:"space-y-2",children:Object.entries(e.library_log_levels).map(([b,j])=>r.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[r.jsx("span",{className:"text-sm font-medium",children:b}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-sm text-muted-foreground",children:j}),r.jsx(re,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>f(b),children:r.jsx(Ot,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]})]},b))})]})]})}function $D({config:e,onChange:t}){return r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[r.jsx("h3",{className:"text-lg font-semibold",children:"调试配置"}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Q,{children:"显示 Prompt"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"是否在日志中显示提示词"})]}),r.jsx(gt,{checked:e.show_prompt,onCheckedChange:n=>t({...e,show_prompt:n})})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Q,{children:"显示回复器 Prompt"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的提示词"})]}),r.jsx(gt,{checked:e.show_replyer_prompt,onCheckedChange:n=>t({...e,show_replyer_prompt:n})})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Q,{children:"显示回复器推理"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示回复器的推理过程"})]}),r.jsx(gt,{checked:e.show_replyer_reasoning,onCheckedChange:n=>t({...e,show_replyer_reasoning:n})})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Q,{children:"显示 Jargon Prompt"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"是否显示术语相关的提示词"})]}),r.jsx(gt,{checked:e.show_jargon_prompt,onCheckedChange:n=>t({...e,show_jargon_prompt:n})})]})]})]})}function VD({config:e,onChange:t}){const[n,a]=w.useState(""),l=()=>{n&&!e.auth_token.includes(n)&&(t({...e,auth_token:[...e.auth_token,n]}),a(""))},o=c=>{t({...e,auth_token:e.auth_token.filter((d,m)=>m!==c)})};return r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"MaimMessage 服务配置"}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Q,{children:"启用自定义服务器"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"是否使用自定义的 MaimMessage 服务器"})]}),r.jsx(gt,{checked:e.use_custom,onCheckedChange:c=>t({...e,use_custom:c})})]}),e.use_custom&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"主机地址"}),r.jsx(Te,{value:e.host,onChange:c=>t({...e,host:c.target.value}),placeholder:"127.0.0.1"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"端口号"}),r.jsx(Te,{type:"number",value:e.port,onChange:c=>t({...e,port:parseInt(c.target.value)}),placeholder:"8090"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"连接模式"}),r.jsxs(_t,{value:e.mode,onValueChange:c=>t({...e,mode:c}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"ws",children:"WebSocket (ws)"}),r.jsx(ze,{value:"tcp",children:"TCP"})]})]})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{checked:e.use_wss,onCheckedChange:c=>t({...e,use_wss:c}),disabled:e.mode!=="ws"}),r.jsx(Q,{children:"使用 WSS 安全连接"})]})]}),e.use_wss&&e.mode==="ws"&&r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"SSL 证书文件路径"}),r.jsx(Te,{value:e.cert_file,onChange:c=>t({...e,cert_file:c.target.value}),placeholder:"cert.pem"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"SSL 密钥文件路径"}),r.jsx(Te,{value:e.key_file,onChange:c=>t({...e,key_file:c.target.value}),placeholder:"key.pem"})]})]})]})]})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"mb-2 block",children:"认证令牌"}),r.jsx("p",{className:"text-sm text-muted-foreground mb-2",children:"用于 API 验证,为空则不启用验证"}),r.jsxs("div",{className:"flex gap-2 mb-2",children:[r.jsx(Te,{value:n,onChange:c=>a(c.target.value),placeholder:"输入认证令牌",onKeyDown:c=>{c.key==="Enter"&&(c.preventDefault(),l())}}),r.jsx(re,{onClick:l,size:"sm",children:r.jsx(mr,{className:"h-4 w-4",strokeWidth:2,fill:"none"})})]}),r.jsx("div",{className:"space-y-2",children:e.auth_token.map((c,d)=>r.jsxs("div",{className:"flex items-center justify-between bg-secondary px-3 py-2 rounded-md",children:[r.jsx("span",{className:"text-sm font-mono",children:c}),r.jsx(re,{variant:"ghost",size:"sm",className:"h-6 w-6 p-0",onClick:()=>o(d),children:r.jsx(Ot,{className:"h-3 w-3",strokeWidth:2,fill:"none"})})]},d))})]})]})}function GD({config:e,onChange:t}){return r.jsxs("div",{className:"rounded-lg border bg-card p-6 space-y-4",children:[r.jsx("h3",{className:"text-lg font-semibold",children:"统计信息"}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"space-y-0.5",children:[r.jsx(Q,{children:"启用统计信息发送"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"发送匿名统计信息,帮助我们了解全球有多少只麦麦在运行"})]}),r.jsx(gt,{checked:e.enable,onCheckedChange:n=>t({...e,enable:n})})]})]})}const bi=w.forwardRef(({className:e,...t},n)=>r.jsx("div",{className:"relative w-full overflow-auto",children:r.jsx("table",{ref:n,className:me("w-full caption-bottom text-sm",e),...t})}));bi.displayName="Table";const wi=w.forwardRef(({className:e,...t},n)=>r.jsx("thead",{ref:n,className:me("[&_tr]:border-b",e),...t}));wi.displayName="TableHeader";const ji=w.forwardRef(({className:e,...t},n)=>r.jsx("tbody",{ref:n,className:me("[&_tr:last-child]:border-0",e),...t}));ji.displayName="TableBody";const YD=w.forwardRef(({className:e,...t},n)=>r.jsx("tfoot",{ref:n,className:me("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));YD.displayName="TableFooter";const Un=w.forwardRef(({className:e,...t},n)=>r.jsx("tr",{ref:n,className:me("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));Un.displayName="TableRow";const ct=w.forwardRef(({className:e,...t},n)=>r.jsx("th",{ref:n,className:me("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));ct.displayName="TableHead";const et=w.forwardRef(({className:e,...t},n)=>r.jsx("td",{ref:n,className:me("px-4 py-3 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",e),...t}));et.displayName="TableCell";const WD=w.forwardRef(({className:e,...t},n)=>r.jsx("caption",{ref:n,className:me("mt-4 text-sm text-muted-foreground",e),...t}));WD.displayName="TableCaption";const br=w.forwardRef(({className:e,...t},n)=>r.jsx(W5,{ref:n,className:me("grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",e),...t,children:r.jsx(eT,{className:me("grid place-content-center text-current"),children:r.jsx(di,{className:"h-4 w-4"})})}));br.displayName=W5.displayName;function XD(){const[e,t]=w.useState([]),[n,a]=w.useState(!0),[l,o]=w.useState(!1),[c,d]=w.useState(!1),[m,f]=w.useState(!1),[p,x]=w.useState(!1),[y,b]=w.useState(!1),[j,k]=w.useState(!1),[S,_]=w.useState(null),[M,D]=w.useState(null),[z,L]=w.useState(!1),[E,R]=w.useState(null),[H,$]=w.useState(!1),[I,G]=w.useState(""),[te,we]=w.useState(new Set),[J,ae]=w.useState(!1),[U,q]=w.useState(1),[W,oe]=w.useState(20),[P,je]=w.useState(""),{toast:Z}=pr(),O=w.useRef(null),Ne=w.useRef(!0);w.useEffect(()=>{se()},[]);const se=async()=>{try{a(!0);const K=await Ao();t(K.api_providers||[]),f(!1),Ne.current=!1}catch(K){console.error("加载配置失败:",K)}finally{a(!1)}},Ce=async()=>{try{x(!0),P1().catch(()=>{}),b(!0)}catch(K){console.error("重启失败:",K),b(!1),Z({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),x(!1)}},ye=async()=>{try{o(!0),O.current&&clearTimeout(O.current);const K=await Ao();K.api_providers=e,await lm(K),f(!1),Z({title:"保存成功",description:"正在重启麦麦..."}),await Ce()}catch(K){console.error("保存配置失败:",K),Z({title:"保存失败",description:K.message,variant:"destructive"}),o(!1)}},Be=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},ie=()=>{b(!1),x(!1),Z({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},He=w.useCallback(async K=>{if(!Ne.current)try{d(!0),await Ex("api_providers",K),f(!1)}catch(ge){console.error("自动保存失败:",ge),f(!0)}finally{d(!1)}},[]);w.useEffect(()=>{if(!Ne.current)return f(!0),O.current&&clearTimeout(O.current),O.current=setTimeout(()=>{He(e)},2e3),()=>{O.current&&clearTimeout(O.current)}},[e,He]);const lt=async()=>{try{o(!0),O.current&&clearTimeout(O.current);const K=await Ao();K.api_providers=e,await lm(K),f(!1),Z({title:"保存成功",description:"模型提供商配置已保存"})}catch(K){console.error("保存配置失败:",K),Z({title:"保存失败",description:K.message,variant:"destructive"})}finally{o(!1)}},ve=(K,ge)=>{_(K||{name:"",base_url:"",api_key:"",client_type:"openai",max_retry:2,timeout:30,retry_interval:10}),D(ge),$(!1),k(!0)},Ze=async()=>{if(S?.api_key)try{await navigator.clipboard.writeText(S.api_key),Z({title:"复制成功",description:"API Key 已复制到剪贴板"})}catch{Z({title:"复制失败",description:"无法访问剪贴板",variant:"destructive"})}},We=()=>{if(!S)return;const K={...S,max_retry:S.max_retry??2,timeout:S.timeout??30,retry_interval:S.retry_interval??10};if(M!==null){const ge=[...e];ge[M]=K,t(ge)}else t([...e,K]);k(!1),_(null),D(null)},pn=K=>{if(!K&&S){const ge={...S,max_retry:S.max_retry??2,timeout:S.timeout??30,retry_interval:S.retry_interval??10};_(ge)}k(K)},Bn=K=>{R(K),L(!0)},sr=()=>{if(E!==null){const K=e.filter((ge,Oe)=>Oe!==E);t(K),Z({title:"删除成功",description:"提供商已从列表中移除"})}L(!1),R(null)},Qe=K=>{const ge=new Set(te);ge.has(K)?ge.delete(K):ge.add(K),we(ge)},Gn=()=>{if(te.size===Sn.length)we(new Set);else{const K=Sn.map((ge,Oe)=>e.findIndex(nt=>nt===Sn[Oe]));we(new Set(K))}},Sr=()=>{if(te.size===0){Z({title:"提示",description:"请先选择要删除的提供商",variant:"default"});return}ae(!0)},Er=()=>{const K=e.filter((ge,Oe)=>!te.has(Oe));t(K),we(new Set),ae(!1),Z({title:"批量删除成功",description:`已删除 ${te.size} 个提供商`})},Sn=e.filter(K=>{if(!I)return!0;const ge=I.toLowerCase();return K.name.toLowerCase().includes(ge)||K.base_url.toLowerCase().includes(ge)||K.client_type.toLowerCase().includes(ge)}),lr=Math.ceil(Sn.length/W),Ue=Sn.slice((U-1)*W,U*W),Ln=()=>{const K=parseInt(P);K>=1&&K<=lr&&(q(K),je(""))};return n?r.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:r.jsx("div",{className:"flex items-center justify-center h-64",children:r.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})}):r.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型提供商配置"}),r.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理 API 提供商配置"})]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[te.size>0&&r.jsxs(re,{onClick:Sr,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[r.jsx(Ot,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",te.size,")"]}),r.jsxs(re,{onClick:()=>ve(null,null),size:"sm",className:"w-full sm:w-auto",children:[r.jsx(mr,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加提供商"]}),r.jsxs(re,{onClick:lt,disabled:l||c||!m||p,size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[r.jsx(y1,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),l?"保存中...":c?"自动保存中...":m?"保存配置":"已保存"]}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsxs(re,{disabled:l||c||p,size:"sm",className:"w-full sm:w-auto",children:[r.jsx(b1,{className:"mr-2 h-4 w-4"}),p?"重启中...":m?"保存并重启":"重启麦麦"]})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认重启麦麦?"}),r.jsx(en,{children:m?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:m?ye:Ce,children:m?"保存并重启":"确认重启"})]})]})]})]})]}),r.jsxs(Fu,{children:[r.jsx(hi,{className:"h-4 w-4"}),r.jsxs(Iu,{children:["配置更新后需要",r.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),r.jsxs(Xt,{className:"h-[calc(100vh-260px)]",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2 mb-4",children:[r.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[r.jsx(Gr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),r.jsx(Te,{placeholder:"搜索提供商名称、URL 或类型...",value:I,onChange:K=>G(K.target.value),className:"pl-9"})]}),I&&r.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Sn.length," 个结果"]})]}),r.jsx("div",{className:"md:hidden space-y-3",children:Sn.length===0?r.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:I?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'}):Ue.map((K,ge)=>{const Oe=e.findIndex(nt=>nt===K);return r.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[r.jsxs("div",{className:"flex items-start justify-between gap-2",children:[r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("h3",{className:"font-semibold text-base truncate",children:K.name}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1 break-all",children:K.base_url})]}),r.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[r.jsxs(re,{variant:"default",size:"sm",onClick:()=>ve(K,Oe),children:[r.jsx(Ro,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),r.jsxs(re,{size:"sm",onClick:()=>Bn(Oe),className:"bg-red-600 hover:bg-red-700 text-white",children:[r.jsx(Ot,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:"客户端类型"}),r.jsx("p",{className:"font-medium",children:K.client_type})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:"最大重试"}),r.jsx("p",{className:"font-medium",children:K.max_retry})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:"超时(秒)"}),r.jsx("p",{className:"font-medium",children:K.timeout})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:"重试间隔(秒)"}),r.jsx("p",{className:"font-medium",children:K.retry_interval})]})]})]},ge)})}),r.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:r.jsxs(bi,{children:[r.jsx(wi,{children:r.jsxs(Un,{children:[r.jsx(ct,{className:"w-12",children:r.jsx(br,{checked:te.size===Sn.length&&Sn.length>0,onCheckedChange:Gn})}),r.jsx(ct,{children:"名称"}),r.jsx(ct,{children:"基础URL"}),r.jsx(ct,{children:"客户端类型"}),r.jsx(ct,{className:"text-right",children:"最大重试"}),r.jsx(ct,{className:"text-right",children:"超时(秒)"}),r.jsx(ct,{className:"text-right",children:"重试间隔(秒)"}),r.jsx(ct,{className:"text-right",children:"操作"})]})}),r.jsx(ji,{children:Ue.length===0?r.jsx(Un,{children:r.jsx(et,{colSpan:8,className:"text-center text-muted-foreground py-8",children:I?"未找到匹配的提供商":'暂无提供商配置,点击"添加提供商"开始配置'})}):Ue.map((K,ge)=>{const Oe=e.findIndex(nt=>nt===K);return r.jsxs(Un,{children:[r.jsx(et,{children:r.jsx(br,{checked:te.has(Oe),onCheckedChange:()=>Qe(Oe)})}),r.jsx(et,{className:"font-medium",children:K.name}),r.jsx(et,{className:"max-w-xs truncate",title:K.base_url,children:K.base_url}),r.jsx(et,{children:K.client_type}),r.jsx(et,{className:"text-right",children:K.max_retry}),r.jsx(et,{className:"text-right",children:K.timeout}),r.jsx(et,{className:"text-right",children:K.retry_interval}),r.jsx(et,{className:"text-right",children:r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsxs(re,{variant:"default",size:"sm",onClick:()=>ve(K,Oe),children:[r.jsx(Ro,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),r.jsxs(re,{size:"sm",onClick:()=>Bn(Oe),className:"bg-red-600 hover:bg-red-700 text-white",children:[r.jsx(Ot,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})})]},ge)})})]})}),Sn.length>0&&r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Q,{htmlFor:"page-size-provider",className:"text-sm whitespace-nowrap",children:"每页显示"}),r.jsxs(_t,{value:W.toString(),onValueChange:K=>{oe(parseInt(K)),q(1),we(new Set)},children:[r.jsx(jt,{id:"page-size-provider",className:"w-20",children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"10",children:"10"}),r.jsx(ze,{value:"20",children:"20"}),r.jsx(ze,{value:"50",children:"50"}),r.jsx(ze,{value:"100",children:"100"})]})]}),r.jsxs("span",{className:"text-sm text-muted-foreground",children:["显示 ",(U-1)*W+1," 到"," ",Math.min(U*W,Sn.length)," 条,共 ",Sn.length," 条"]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>q(1),disabled:U===1,className:"hidden sm:flex",children:r.jsx(Eu,{className:"h-4 w-4"})}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>q(K=>Math.max(1,K-1)),disabled:U===1,children:[r.jsx(vi,{className:"h-4 w-4 sm:mr-1"}),r.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Te,{type:"number",value:P,onChange:K=>je(K.target.value),onKeyDown:K=>K.key==="Enter"&&Ln(),placeholder:U.toString(),className:"w-16 h-8 text-center",min:1,max:lr}),r.jsx(re,{variant:"outline",size:"sm",onClick:Ln,disabled:!P,className:"h-8",children:"跳转"})]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>q(K=>K+1),disabled:U>=lr,children:[r.jsx("span",{className:"hidden sm:inline",children:"下一页"}),r.jsx(yi,{className:"h-4 w-4 sm:ml-1"})]}),r.jsx(re,{variant:"outline",size:"sm",onClick:()=>q(lr),disabled:U>=lr,className:"hidden sm:flex",children:r.jsx(Au,{className:"h-4 w-4"})})]})]})]}),r.jsx(hr,{open:j,onOpenChange:pn,children:r.jsxs(nr,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:M!==null?"编辑提供商":"添加提供商"}),r.jsx(wr,{children:"配置 API 提供商的连接信息和参数"})]}),r.jsxs("div",{className:"grid gap-4 py-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"name",children:"名称 *"}),r.jsx(Te,{id:"name",value:S?.name||"",onChange:K=>_(ge=>ge?{...ge,name:K.target.value}:null),placeholder:"例如: DeepSeek, SiliconFlow"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"base_url",children:"基础 URL *"}),r.jsx(Te,{id:"base_url",value:S?.base_url||"",onChange:K=>_(ge=>ge?{...ge,base_url:K.target.value}:null),placeholder:"https://api.example.com/v1"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"api_key",children:"API Key *"}),r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Te,{id:"api_key",type:H?"text":"password",value:S?.api_key||"",onChange:K=>_(ge=>ge?{...ge,api_key:K.target.value}:null),placeholder:"sk-...",className:"flex-1"}),r.jsx(re,{type:"button",variant:"outline",size:"icon",onClick:()=>$(!H),title:H?"隐藏密钥":"显示密钥",children:H?r.jsx(fx,{className:"h-4 w-4"}):r.jsx(qa,{className:"h-4 w-4"})}),r.jsx(re,{type:"button",variant:"outline",size:"icon",onClick:Ze,title:"复制密钥",children:r.jsx(hx,{className:"h-4 w-4"})})]})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"client_type",children:"客户端类型"}),r.jsxs(_t,{value:S?.client_type||"openai",onValueChange:K=>_(ge=>ge?{...ge,client_type:K}:null),children:[r.jsx(jt,{id:"client_type",children:r.jsx(Mt,{placeholder:"选择客户端类型"})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"openai",children:"OpenAI"}),r.jsx(ze,{value:"gemini",children:"Gemini"})]})]})]}),r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"max_retry",children:"最大重试"}),r.jsx(Te,{id:"max_retry",type:"number",min:"0",value:S?.max_retry??"",onChange:K=>{const ge=K.target.value===""?null:parseInt(K.target.value);_(Oe=>Oe?{...Oe,max_retry:ge}:null)},placeholder:"默认: 2"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"timeout",children:"超时(秒)"}),r.jsx(Te,{id:"timeout",type:"number",min:"1",value:S?.timeout??"",onChange:K=>{const ge=K.target.value===""?null:parseInt(K.target.value);_(Oe=>Oe?{...Oe,timeout:ge}:null)},placeholder:"默认: 30"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"retry_interval",children:"重试间隔(秒)"}),r.jsx(Te,{id:"retry_interval",type:"number",min:"1",value:S?.retry_interval??"",onChange:K=>{const ge=K.target.value===""?null:parseInt(K.target.value);_(Oe=>Oe?{...Oe,retry_interval:ge}:null)},placeholder:"默认: 10"})]})]})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>k(!1),children:"取消"}),r.jsx(re,{onClick:We,children:"保存"})]})]})}),r.jsx(cn,{open:z,onOpenChange:L,children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:['确定要删除提供商 "',E!==null?e[E]?.name:"",'" 吗? 此操作无法撤销。']})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:sr,children:"删除"})]})]})}),r.jsx(cn,{open:J,onOpenChange:ae,children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认批量删除"}),r.jsxs(en,{children:["确定要删除选中的 ",te.size," 个提供商吗? 此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:Er,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),y&&r.jsx(F1,{onRestartComplete:Be,onRestartFailed:ie})]})}var Cb=1,KD=.9,QD=.8,ZD=.17,Tp=.1,_p=.999,JD=.9999,ez=.99,tz=/[\\\/_+.#"@\[\(\{&]/,nz=/[\\\/_+.#"@\[\(\{&]/g,rz=/[\s-]/,P7=/[\s-]/g;function Ax(e,t,n,a,l,o,c){if(o===t.length)return l===e.length?Cb:ez;var d=`${l},${o}`;if(c[d]!==void 0)return c[d];for(var m=a.charAt(o),f=n.indexOf(m,l),p=0,x,y,b,j;f>=0;)x=Ax(e,t,n,a,f+1,o+1,c),x>p&&(f===l?x*=Cb:tz.test(e.charAt(f-1))?(x*=QD,b=e.slice(l,f-1).match(nz),b&&l>0&&(x*=Math.pow(_p,b.length))):rz.test(e.charAt(f-1))?(x*=KD,j=e.slice(l,f-1).match(P7),j&&l>0&&(x*=Math.pow(_p,j.length))):(x*=ZD,l>0&&(x*=Math.pow(_p,f-l))),e.charAt(f)!==t.charAt(o)&&(x*=JD)),(xx&&(x=y*Tp)),x>p&&(p=x),f=n.indexOf(m,f+1);return c[d]=p,p}function Tb(e){return e.toLowerCase().replace(P7," ")}function az(e,t,n){return e=n&&n.length>0?`${e+" "+n.join(" ")}`:e,Ax(e,t,Tb(e),Tb(t),0,0,{})}var sz=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ol=sz.reduce((e,t)=>{const n=c1(`Primitive.${t}`),a=w.forwardRef((l,o)=>{const{asChild:c,...d}=l,m=c?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(m,{...d,ref:o})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{}),Qc='[cmdk-group=""]',Mp='[cmdk-group-items=""]',lz='[cmdk-group-heading=""]',F7='[cmdk-item=""]',_b=`${F7}:not([aria-disabled="true"])`,Dx="cmdk-item-select",So="data-value",iz=(e,t,n)=>az(e,t,n),I7=w.createContext(void 0),qu=()=>w.useContext(I7),q7=w.createContext(void 0),I1=()=>w.useContext(q7),H7=w.createContext(void 0),U7=w.forwardRef((e,t)=>{let n=ko(()=>{var Z,O;return{search:"",value:(O=(Z=e.value)!=null?Z:e.defaultValue)!=null?O:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),a=ko(()=>new Set),l=ko(()=>new Map),o=ko(()=>new Map),c=ko(()=>new Set),d=$7(e),{label:m,children:f,value:p,onValueChange:x,filter:y,shouldFilter:b,loop:j,disablePointerSelection:k=!1,vimBindings:S=!0,..._}=e,M=Ta(),D=Ta(),z=Ta(),L=w.useRef(null),E=vz();xi(()=>{if(p!==void 0){let Z=p.trim();n.current.value=Z,R.emit()}},[p]),xi(()=>{E(6,we)},[]);let R=w.useMemo(()=>({subscribe:Z=>(c.current.add(Z),()=>c.current.delete(Z)),snapshot:()=>n.current,setState:(Z,O,Ne)=>{var se,Ce,ye,Be;if(!Object.is(n.current[Z],O)){if(n.current[Z]=O,Z==="search")te(),I(),E(1,G);else if(Z==="value"){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let ie=document.getElementById(z);ie?ie.focus():(se=document.getElementById(M))==null||se.focus()}if(E(7,()=>{var ie;n.current.selectedItemId=(ie=J())==null?void 0:ie.id,R.emit()}),Ne||E(5,we),((Ce=d.current)==null?void 0:Ce.value)!==void 0){let ie=O??"";(Be=(ye=d.current).onValueChange)==null||Be.call(ye,ie);return}}R.emit()}},emit:()=>{c.current.forEach(Z=>Z())}}),[]),H=w.useMemo(()=>({value:(Z,O,Ne)=>{var se;O!==((se=o.current.get(Z))==null?void 0:se.value)&&(o.current.set(Z,{value:O,keywords:Ne}),n.current.filtered.items.set(Z,$(O,Ne)),E(2,()=>{I(),R.emit()}))},item:(Z,O)=>(a.current.add(Z),O&&(l.current.has(O)?l.current.get(O).add(Z):l.current.set(O,new Set([Z]))),E(3,()=>{te(),I(),n.current.value||G(),R.emit()}),()=>{o.current.delete(Z),a.current.delete(Z),n.current.filtered.items.delete(Z);let Ne=J();E(4,()=>{te(),Ne?.getAttribute("id")===Z&&G(),R.emit()})}),group:Z=>(l.current.has(Z)||l.current.set(Z,new Set),()=>{o.current.delete(Z),l.current.delete(Z)}),filter:()=>d.current.shouldFilter,label:m||e["aria-label"],getDisablePointerSelection:()=>d.current.disablePointerSelection,listId:M,inputId:z,labelId:D,listInnerRef:L}),[]);function $(Z,O){var Ne,se;let Ce=(se=(Ne=d.current)==null?void 0:Ne.filter)!=null?se:iz;return Z?Ce(Z,n.current.search,O):0}function I(){if(!n.current.search||d.current.shouldFilter===!1)return;let Z=n.current.filtered.items,O=[];n.current.filtered.groups.forEach(se=>{let Ce=l.current.get(se),ye=0;Ce.forEach(Be=>{let ie=Z.get(Be);ye=Math.max(ie,ye)}),O.push([se,ye])});let Ne=L.current;ae().sort((se,Ce)=>{var ye,Be;let ie=se.getAttribute("id"),He=Ce.getAttribute("id");return((ye=Z.get(He))!=null?ye:0)-((Be=Z.get(ie))!=null?Be:0)}).forEach(se=>{let Ce=se.closest(Mp);Ce?Ce.appendChild(se.parentElement===Ce?se:se.closest(`${Mp} > *`)):Ne.appendChild(se.parentElement===Ne?se:se.closest(`${Mp} > *`))}),O.sort((se,Ce)=>Ce[1]-se[1]).forEach(se=>{var Ce;let ye=(Ce=L.current)==null?void 0:Ce.querySelector(`${Qc}[${So}="${encodeURIComponent(se[0])}"]`);ye?.parentElement.appendChild(ye)})}function G(){let Z=ae().find(Ne=>Ne.getAttribute("aria-disabled")!=="true"),O=Z?.getAttribute(So);R.setState("value",O||void 0)}function te(){var Z,O,Ne,se;if(!n.current.search||d.current.shouldFilter===!1){n.current.filtered.count=a.current.size;return}n.current.filtered.groups=new Set;let Ce=0;for(let ye of a.current){let Be=(O=(Z=o.current.get(ye))==null?void 0:Z.value)!=null?O:"",ie=(se=(Ne=o.current.get(ye))==null?void 0:Ne.keywords)!=null?se:[],He=$(Be,ie);n.current.filtered.items.set(ye,He),He>0&&Ce++}for(let[ye,Be]of l.current)for(let ie of Be)if(n.current.filtered.items.get(ie)>0){n.current.filtered.groups.add(ye);break}n.current.filtered.count=Ce}function we(){var Z,O,Ne;let se=J();se&&(((Z=se.parentElement)==null?void 0:Z.firstChild)===se&&((Ne=(O=se.closest(Qc))==null?void 0:O.querySelector(lz))==null||Ne.scrollIntoView({block:"nearest"})),se.scrollIntoView({block:"nearest"}))}function J(){var Z;return(Z=L.current)==null?void 0:Z.querySelector(`${F7}[aria-selected="true"]`)}function ae(){var Z;return Array.from(((Z=L.current)==null?void 0:Z.querySelectorAll(_b))||[])}function U(Z){let O=ae()[Z];O&&R.setState("value",O.getAttribute(So))}function q(Z){var O;let Ne=J(),se=ae(),Ce=se.findIndex(Be=>Be===Ne),ye=se[Ce+Z];(O=d.current)!=null&&O.loop&&(ye=Ce+Z<0?se[se.length-1]:Ce+Z===se.length?se[0]:se[Ce+Z]),ye&&R.setState("value",ye.getAttribute(So))}function W(Z){let O=J(),Ne=O?.closest(Qc),se;for(;Ne&&!se;)Ne=Z>0?xz(Ne,Qc):gz(Ne,Qc),se=Ne?.querySelector(_b);se?R.setState("value",se.getAttribute(So)):q(Z)}let oe=()=>U(ae().length-1),P=Z=>{Z.preventDefault(),Z.metaKey?oe():Z.altKey?W(1):q(1)},je=Z=>{Z.preventDefault(),Z.metaKey?U(0):Z.altKey?W(-1):q(-1)};return w.createElement(Ol.div,{ref:t,tabIndex:-1,..._,"cmdk-root":"",onKeyDown:Z=>{var O;(O=_.onKeyDown)==null||O.call(_,Z);let Ne=Z.nativeEvent.isComposing||Z.keyCode===229;if(!(Z.defaultPrevented||Ne))switch(Z.key){case"n":case"j":{S&&Z.ctrlKey&&P(Z);break}case"ArrowDown":{P(Z);break}case"p":case"k":{S&&Z.ctrlKey&&je(Z);break}case"ArrowUp":{je(Z);break}case"Home":{Z.preventDefault(),U(0);break}case"End":{Z.preventDefault(),oe();break}case"Enter":{Z.preventDefault();let se=J();if(se){let Ce=new Event(Dx);se.dispatchEvent(Ce)}}}}},w.createElement("label",{"cmdk-label":"",htmlFor:H.inputId,id:H.labelId,style:bz},m),Lm(e,Z=>w.createElement(q7.Provider,{value:R},w.createElement(I7.Provider,{value:H},Z))))}),oz=w.forwardRef((e,t)=>{var n,a;let l=Ta(),o=w.useRef(null),c=w.useContext(H7),d=qu(),m=$7(e),f=(a=(n=m.current)==null?void 0:n.forceMount)!=null?a:c?.forceMount;xi(()=>{if(!f)return d.item(l,c?.id)},[f]);let p=V7(l,o,[e.value,e.children,o],e.keywords),x=I1(),y=Tl(E=>E.value&&E.value===p.current),b=Tl(E=>f||d.filter()===!1?!0:E.search?E.filtered.items.get(l)>0:!0);w.useEffect(()=>{let E=o.current;if(!(!E||e.disabled))return E.addEventListener(Dx,j),()=>E.removeEventListener(Dx,j)},[b,e.onSelect,e.disabled]);function j(){var E,R;k(),(R=(E=m.current).onSelect)==null||R.call(E,p.current)}function k(){x.setState("value",p.current,!0)}if(!b)return null;let{disabled:S,value:_,onSelect:M,forceMount:D,keywords:z,...L}=e;return w.createElement(Ol.div,{ref:Nl(o,t),...L,id:l,"cmdk-item":"",role:"option","aria-disabled":!!S,"aria-selected":!!y,"data-disabled":!!S,"data-selected":!!y,onPointerMove:S||d.getDisablePointerSelection()?void 0:k,onClick:S?void 0:j},e.children)}),cz=w.forwardRef((e,t)=>{let{heading:n,children:a,forceMount:l,...o}=e,c=Ta(),d=w.useRef(null),m=w.useRef(null),f=Ta(),p=qu(),x=Tl(b=>l||p.filter()===!1?!0:b.search?b.filtered.groups.has(c):!0);xi(()=>p.group(c),[]),V7(c,d,[e.value,e.heading,m]);let y=w.useMemo(()=>({id:c,forceMount:l}),[l]);return w.createElement(Ol.div,{ref:Nl(d,t),...o,"cmdk-group":"",role:"presentation",hidden:x?void 0:!0},n&&w.createElement("div",{ref:m,"cmdk-group-heading":"","aria-hidden":!0,id:f},n),Lm(e,b=>w.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":n?f:void 0},w.createElement(H7.Provider,{value:y},b))))}),uz=w.forwardRef((e,t)=>{let{alwaysRender:n,...a}=e,l=w.useRef(null),o=Tl(c=>!c.search);return!n&&!o?null:w.createElement(Ol.div,{ref:Nl(l,t),...a,"cmdk-separator":"",role:"separator"})}),dz=w.forwardRef((e,t)=>{let{onValueChange:n,...a}=e,l=e.value!=null,o=I1(),c=Tl(f=>f.search),d=Tl(f=>f.selectedItemId),m=qu();return w.useEffect(()=>{e.value!=null&&o.setState("search",e.value)},[e.value]),w.createElement(Ol.input,{ref:t,...a,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":m.listId,"aria-labelledby":m.labelId,"aria-activedescendant":d,id:m.inputId,type:"text",value:l?e.value:c,onChange:f=>{l||o.setState("search",f.target.value),n?.(f.target.value)}})}),mz=w.forwardRef((e,t)=>{let{children:n,label:a="Suggestions",...l}=e,o=w.useRef(null),c=w.useRef(null),d=Tl(f=>f.selectedItemId),m=qu();return w.useEffect(()=>{if(c.current&&o.current){let f=c.current,p=o.current,x,y=new ResizeObserver(()=>{x=requestAnimationFrame(()=>{let b=f.offsetHeight;p.style.setProperty("--cmdk-list-height",b.toFixed(1)+"px")})});return y.observe(f),()=>{cancelAnimationFrame(x),y.unobserve(f)}}},[]),w.createElement(Ol.div,{ref:Nl(o,t),...l,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":d,"aria-label":a,id:m.listId},Lm(e,f=>w.createElement("div",{ref:Nl(c,m.listInnerRef),"cmdk-list-sizer":""},f)))}),hz=w.forwardRef((e,t)=>{let{open:n,onOpenChange:a,overlayClassName:l,contentClassName:o,container:c,...d}=e;return w.createElement(f1,{open:n,onOpenChange:a},w.createElement(u1,{container:c},w.createElement(ym,{"cmdk-overlay":"",className:l}),w.createElement(bm,{"aria-label":e.label,"cmdk-dialog":"",className:o},w.createElement(U7,{ref:t,...d}))))}),fz=w.forwardRef((e,t)=>Tl(n=>n.filtered.count===0)?w.createElement(Ol.div,{ref:t,...e,"cmdk-empty":"",role:"presentation"}):null),pz=w.forwardRef((e,t)=>{let{progress:n,children:a,label:l="Loading...",...o}=e;return w.createElement(Ol.div,{ref:t,...o,"cmdk-loading":"",role:"progressbar","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":100,"aria-label":l},Lm(e,c=>w.createElement("div",{"aria-hidden":!0},c)))}),Xr=Object.assign(U7,{List:mz,Item:oz,Input:dz,Group:cz,Separator:uz,Dialog:hz,Empty:fz,Loading:pz});function xz(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return n;n=n.nextElementSibling}}function gz(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return n;n=n.previousElementSibling}}function $7(e){let t=w.useRef(e);return xi(()=>{t.current=e}),t}var xi=typeof window>"u"?w.useEffect:w.useLayoutEffect;function ko(e){let t=w.useRef();return t.current===void 0&&(t.current=e()),t}function Tl(e){let t=I1(),n=()=>e(t.snapshot());return w.useSyncExternalStore(t.subscribe,n,n)}function V7(e,t,n,a=[]){let l=w.useRef(),o=qu();return xi(()=>{var c;let d=(()=>{var f;for(let p of n){if(typeof p=="string")return p.trim();if(typeof p=="object"&&"current"in p)return p.current?(f=p.current.textContent)==null?void 0:f.trim():l.current}})(),m=a.map(f=>f.trim());o.value(e,d,m),(c=t.current)==null||c.setAttribute(So,d),l.current=d}),l}var vz=()=>{let[e,t]=w.useState(),n=ko(()=>new Map);return xi(()=>{n.current.forEach(a=>a()),n.current=new Map},[e]),(a,l)=>{n.current.set(a,l),t({})}};function yz(e){let t=e.type;return typeof t=="function"?t(e.props):"render"in t?t.render(e.props):e}function Lm({asChild:e,children:t},n){return e&&w.isValidElement(t)?w.cloneElement(yz(t),{ref:t.ref},n(t.props.children)):n(t)}var bz={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"};const G7=w.forwardRef(({className:e,...t},n)=>r.jsx(Xr,{ref:n,className:me("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));G7.displayName=Xr.displayName;const Y7=w.forwardRef(({className:e,...t},n)=>r.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[r.jsx(Gr,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),r.jsx(Xr.Input,{ref:n,className:me("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));Y7.displayName=Xr.Input.displayName;const W7=w.forwardRef(({className:e,...t},n)=>r.jsx(Xr.List,{ref:n,className:me("max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));W7.displayName=Xr.List.displayName;const X7=w.forwardRef((e,t)=>r.jsx(Xr.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));X7.displayName=Xr.Empty.displayName;const K7=w.forwardRef(({className:e,...t},n)=>r.jsx(Xr.Group,{ref:n,className:me("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));K7.displayName=Xr.Group.displayName;const wz=w.forwardRef(({className:e,...t},n)=>r.jsx(Xr.Separator,{ref:n,className:me("-mx-1 h-px bg-border",e),...t}));wz.displayName=Xr.Separator.displayName;const Q7=w.forwardRef(({className:e,...t},n)=>r.jsx(Xr.Item,{ref:n,className:me("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",e),...t}));Q7.displayName=Xr.Item.displayName;function jz({options:e,selected:t,onChange:n,placeholder:a="选择选项...",emptyText:l="未找到选项",className:o}){const[c,d]=w.useState(!1),m=p=>{t.includes(p)?n(t.filter(x=>x!==p)):n([...t,p])},f=p=>{n(t.filter(x=>x!==p))};return r.jsxs(kl,{open:c,onOpenChange:d,children:[r.jsx(Cl,{asChild:!0,children:r.jsxs(re,{variant:"outline",role:"combobox","aria-expanded":c,className:me("w-full justify-between min-h-10 h-auto",o),children:[r.jsx("div",{className:"flex gap-1 flex-wrap flex-1",children:t.length===0?r.jsx("span",{className:"text-muted-foreground",children:a}):t.map(p=>{const x=e.find(y=>y.value===p);return r.jsxs(on,{variant:"secondary",className:"cursor-pointer hover:bg-secondary/80",onClick:y=>{y.stopPropagation(),f(p)},children:[x?.label||p,r.jsx(Mu,{className:"ml-1 h-3 w-3",strokeWidth:2,fill:"none"})]},p)})}),r.jsx(gT,{className:"ml-2 h-4 w-4 shrink-0 opacity-50",strokeWidth:2,fill:"none"})]})}),r.jsx(Ps,{className:"w-full p-0",align:"start",children:r.jsxs(G7,{children:[r.jsx(Y7,{placeholder:"搜索...",className:"h-9"}),r.jsxs(W7,{children:[r.jsx(X7,{children:l}),r.jsx(K7,{children:e.map(p=>{const x=t.includes(p.value);return r.jsxs(Q7,{value:p.value,onSelect:()=>m(p.value),children:[r.jsx("div",{className:me("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",x?"bg-primary text-primary-foreground":"opacity-50 [&_svg]:invisible"),children:r.jsx(di,{className:"h-3 w-3",strokeWidth:2,fill:"none"})}),r.jsx("span",{children:p.label})]},p.value)})})]})]})})]})}function Nz(){const[e,t]=w.useState([]),[n,a]=w.useState([]),[l,o]=w.useState([]),[c,d]=w.useState(null),[m,f]=w.useState(!0),[p,x]=w.useState(!1),[y,b]=w.useState(!1),[j,k]=w.useState(!1),[S,_]=w.useState(!1),[M,D]=w.useState(!1),[z,L]=w.useState(!1),[E,R]=w.useState(null),[H,$]=w.useState(null),[I,G]=w.useState(!1),[te,we]=w.useState(null),[J,ae]=w.useState(""),[U,q]=w.useState(new Set),[W,oe]=w.useState(!1),[P,je]=w.useState(1),[Z,O]=w.useState(20),[Ne,se]=w.useState(""),{toast:Ce}=pr(),ye=w.useRef(null),Be=w.useRef(null),ie=w.useRef(!0);w.useEffect(()=>{He()},[]);const He=async()=>{try{f(!0);const he=await Ao(),Me=he.models||[];t(Me),o(Me.map(mt=>mt.name));const dt=he.api_providers||[];a(dt.map(mt=>mt.name)),d(he.model_task_config||null),k(!1),ie.current=!1}catch(he){console.error("加载配置失败:",he)}finally{f(!1)}},lt=async()=>{try{_(!0),P1().catch(()=>{}),D(!0)}catch(he){console.error("重启失败:",he),D(!1),Ce({title:"重启失败",description:"无法发送重启请求,请手动重启",variant:"destructive"}),_(!1)}},ve=async()=>{try{x(!0),ye.current&&clearTimeout(ye.current),Be.current&&clearTimeout(Be.current);const he=await Ao();he.models=e,he.model_task_config=c,await lm(he),k(!1),Ce({title:"保存成功",description:"正在重启麦麦..."}),await lt()}catch(he){console.error("保存配置失败:",he),Ce({title:"保存失败",description:he.message,variant:"destructive"}),x(!1)}},Ze=()=>{localStorage.removeItem("access-token"),window.location.href="/auth"},We=()=>{D(!1),_(!1),Ce({title:"重启超时",description:"服务未能在预期时间内恢复,请手动检查或刷新页面",variant:"destructive"})},pn=w.useCallback(async he=>{if(!ie.current)try{b(!0),await Ex("models",he),k(!1)}catch(Me){console.error("自动保存模型列表失败:",Me),k(!0)}finally{b(!1)}},[]),Bn=w.useCallback(async he=>{if(!ie.current)try{b(!0),await Ex("model_task_config",he),k(!1)}catch(Me){console.error("自动保存任务配置失败:",Me),k(!0)}finally{b(!1)}},[]);w.useEffect(()=>{if(!ie.current)return k(!0),ye.current&&clearTimeout(ye.current),ye.current=setTimeout(()=>{pn(e)},2e3),()=>{ye.current&&clearTimeout(ye.current)}},[e,pn]),w.useEffect(()=>{if(!(ie.current||!c))return k(!0),Be.current&&clearTimeout(Be.current),Be.current=setTimeout(()=>{Bn(c)},2e3),()=>{Be.current&&clearTimeout(Be.current)}},[c,Bn]);const sr=async()=>{try{x(!0),ye.current&&clearTimeout(ye.current),Be.current&&clearTimeout(Be.current);const he=await Ao();he.models=e,he.model_task_config=c,await lm(he),k(!1),Ce({title:"保存成功",description:"模型配置已保存"}),await He()}catch(he){console.error("保存配置失败:",he),Ce({title:"保存失败",description:he.message,variant:"destructive"})}finally{x(!1)}},Qe=(he,Me)=>{R(he||{model_identifier:"",name:"",api_provider:n[0]||"",price_in:0,price_out:0,force_stream_mode:!1,extra_params:{}}),$(Me),L(!0)},Gn=()=>{if(!E)return;const he={...E,price_in:E.price_in??0,price_out:E.price_out??0};let Me;H!==null?(Me=[...e],Me[H]=he):Me=[...e,he],t(Me),o(Me.map(dt=>dt.name)),L(!1),R(null),$(null)},Sr=he=>{if(!he&&E){const Me={...E,price_in:E.price_in??0,price_out:E.price_out??0};R(Me)}L(he)},Er=he=>{we(he),G(!0)},Sn=()=>{if(te!==null){const he=e.filter((Me,dt)=>dt!==te);t(he),o(he.map(Me=>Me.name)),Ce({title:"删除成功",description:"模型已从列表中移除"})}G(!1),we(null)},lr=he=>{const Me=new Set(U);Me.has(he)?Me.delete(he):Me.add(he),q(Me)},Ue=()=>{if(U.size===Oe.length)q(new Set);else{const he=Oe.map((Me,dt)=>e.findIndex(mt=>mt===Oe[dt]));q(new Set(he))}},Ln=()=>{if(U.size===0){Ce({title:"提示",description:"请先选择要删除的模型",variant:"default"});return}oe(!0)},K=()=>{const he=e.filter((Me,dt)=>!U.has(dt));t(he),o(he.map(Me=>Me.name)),q(new Set),oe(!1),Ce({title:"批量删除成功",description:`已删除 ${U.size} 个模型`})},ge=(he,Me,dt)=>{c&&d({...c,[he]:{...c[he],[Me]:dt}})},Oe=e.filter(he=>{if(!J)return!0;const Me=J.toLowerCase();return he.name.toLowerCase().includes(Me)||he.model_identifier.toLowerCase().includes(Me)||he.api_provider.toLowerCase().includes(Me)}),nt=Math.ceil(Oe.length/Z),kt=Oe.slice((P-1)*Z,P*Z),Qn=()=>{const he=parseInt(Ne);he>=1&&he<=nt&&(je(he),se(""))},Ar=he=>c?[c.utils?.model_list||[],c.utils_small?.model_list||[],c.tool_use?.model_list||[],c.replyer?.model_list||[],c.planner?.model_list||[],c.vlm?.model_list||[],c.voice?.model_list||[],c.embedding?.model_list||[],c.lpmm_entity_extract?.model_list||[],c.lpmm_rdf_build?.model_list||[],c.lpmm_qa?.model_list||[]].some(dt=>dt.includes(he)):!1;return m?r.jsx(Xt,{className:"h-full",children:r.jsx("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:r.jsx("div",{className:"flex items-center justify-center h-64",children:r.jsx("p",{className:"text-muted-foreground",children:"加载中..."})})})}):r.jsx(Xt,{className:"h-full",children:r.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"模型配置"}),r.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理模型和任务配置"})]}),r.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[r.jsxs(re,{onClick:sr,disabled:p||y||!j||S,size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[r.jsx(y1,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),p?"保存中...":y?"自动保存中...":j?"保存配置":"已保存"]}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsxs(re,{disabled:p||y||S,size:"sm",className:"flex-1 sm:flex-none",children:[r.jsx(b1,{className:"mr-2 h-4 w-4"}),S?"重启中...":j?"保存并重启":"重启麦麦"]})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认重启麦麦?"}),r.jsx(en,{children:j?"当前有未保存的配置更改。点击确认将先保存配置,然后重启麦麦使新配置生效。重启过程中麦麦将暂时离线。":"即将重启麦麦主程序。重启过程中麦麦将暂时离线,配置将在重启后生效。"})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:j?ve:lt,children:j?"保存并重启":"确认重启"})]})]})]})]})]}),r.jsxs(Fu,{children:[r.jsx(hi,{className:"h-4 w-4"}),r.jsxs(Iu,{children:["配置更新后需要",r.jsx("strong",{children:"重启麦麦"}),'才能生效。你可以点击右上角的"保存并重启"按钮一键完成保存和重启。']})]}),r.jsxs(Sl,{defaultValue:"models",className:"w-full",children:[r.jsxs(Ls,{className:"grid w-full max-w-full sm:max-w-md grid-cols-2",children:[r.jsx(Rt,{value:"models",children:"模型配置"}),r.jsx(Rt,{value:"tasks",children:"模型任务配置"})]}),r.jsxs(ln,{value:"models",className:"space-y-4 mt-0",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2",children:[r.jsx("p",{className:"text-sm text-muted-foreground",children:"配置可用的模型列表"}),r.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[U.size>0&&r.jsxs(re,{onClick:Ln,size:"sm",variant:"destructive",className:"w-full sm:w-auto",children:[r.jsx(Ot,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"批量删除 (",U.size,")"]}),r.jsxs(re,{onClick:()=>Qe(null,null),size:"sm",variant:"outline",className:"w-full sm:w-auto",children:[r.jsx(mr,{className:"mr-2 h-4 w-4",strokeWidth:2,fill:"none"}),"添加模型"]})]})]}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center gap-2",children:[r.jsxs("div",{className:"relative w-full sm:flex-1 sm:max-w-sm",children:[r.jsx(Gr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),r.jsx(Te,{placeholder:"搜索模型名称、标识符或提供商...",value:J,onChange:he=>ae(he.target.value),className:"pl-9"})]}),J&&r.jsxs("p",{className:"text-sm text-muted-foreground whitespace-nowrap",children:["找到 ",Oe.length," 个结果"]})]}),r.jsx("div",{className:"md:hidden space-y-3",children:kt.length===0?r.jsx("div",{className:"text-center text-muted-foreground py-8 rounded-lg border bg-card",children:J?"未找到匹配的模型":"暂无模型配置"}):kt.map((he,Me)=>{const dt=e.findIndex(Dr=>Dr===he),mt=Ar(he.name);return r.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3",children:[r.jsxs("div",{className:"flex items-start justify-between gap-2",children:[r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[r.jsx("h3",{className:"font-semibold text-base",children:he.name}),r.jsx(on,{variant:mt?"default":"secondary",className:mt?"bg-green-600 hover:bg-green-700":"",children:mt?"已使用":"未使用"})]}),r.jsx("p",{className:"text-xs text-muted-foreground break-all",title:he.model_identifier,children:he.model_identifier})]}),r.jsxs("div",{className:"flex gap-1 flex-shrink-0",children:[r.jsxs(re,{variant:"default",size:"sm",onClick:()=>Qe(he,dt),children:[r.jsx(Ro,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),r.jsxs(re,{size:"sm",onClick:()=>Er(dt),className:"bg-red-600 hover:bg-red-700 text-white",children:[r.jsx(Ot,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:"提供商"}),r.jsx("p",{className:"font-medium",children:he.api_provider})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:"强制流式"}),r.jsx("p",{className:"font-medium",children:he.force_stream_mode?"是":"否"})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:"输入价格"}),r.jsxs("p",{className:"font-medium",children:["¥",he.price_in,"/M"]})]}),r.jsxs("div",{children:[r.jsx("span",{className:"text-muted-foreground text-xs",children:"输出价格"}),r.jsxs("p",{className:"font-medium",children:["¥",he.price_out,"/M"]})]})]})]},Me)})}),r.jsx("div",{className:"hidden md:block rounded-lg border bg-card overflow-hidden",children:r.jsxs(bi,{children:[r.jsx(wi,{children:r.jsxs(Un,{children:[r.jsx(ct,{className:"w-12",children:r.jsx(br,{checked:U.size===Oe.length&&Oe.length>0,onCheckedChange:Ue})}),r.jsx(ct,{className:"w-24",children:"使用状态"}),r.jsx(ct,{children:"模型名称"}),r.jsx(ct,{children:"模型标识符"}),r.jsx(ct,{children:"提供商"}),r.jsx(ct,{className:"text-right",children:"输入价格"}),r.jsx(ct,{className:"text-right",children:"输出价格"}),r.jsx(ct,{className:"text-center",children:"强制流式"}),r.jsx(ct,{className:"text-right",children:"操作"})]})}),r.jsx(ji,{children:kt.length===0?r.jsx(Un,{children:r.jsx(et,{colSpan:9,className:"text-center text-muted-foreground py-8",children:J?"未找到匹配的模型":"暂无模型配置"})}):kt.map((he,Me)=>{const dt=e.findIndex(Dr=>Dr===he),mt=Ar(he.name);return r.jsxs(Un,{children:[r.jsx(et,{children:r.jsx(br,{checked:U.has(dt),onCheckedChange:()=>lr(dt)})}),r.jsx(et,{children:r.jsx(on,{variant:mt?"default":"secondary",className:mt?"bg-green-600 hover:bg-green-700":"",children:mt?"已使用":"未使用"})}),r.jsx(et,{className:"font-medium",children:he.name}),r.jsx(et,{className:"max-w-xs truncate",title:he.model_identifier,children:he.model_identifier}),r.jsx(et,{children:he.api_provider}),r.jsxs(et,{className:"text-right",children:["¥",he.price_in,"/M"]}),r.jsxs(et,{className:"text-right",children:["¥",he.price_out,"/M"]}),r.jsx(et,{className:"text-center",children:he.force_stream_mode?"是":"否"}),r.jsx(et,{className:"text-right",children:r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsxs(re,{variant:"default",size:"sm",onClick:()=>Qe(he,dt),children:[r.jsx(Ro,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"编辑"]}),r.jsxs(re,{size:"sm",onClick:()=>Er(dt),className:"bg-red-600 hover:bg-red-700 text-white",children:[r.jsx(Ot,{className:"h-4 w-4 mr-1",strokeWidth:2,fill:"none"}),"删除"]})]})})]},Me)})})]})}),Oe.length>0&&r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Q,{htmlFor:"page-size-model",className:"text-sm whitespace-nowrap",children:"每页显示"}),r.jsxs(_t,{value:Z.toString(),onValueChange:he=>{O(parseInt(he)),je(1),q(new Set)},children:[r.jsx(jt,{id:"page-size-model",className:"w-20",children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"10",children:"10"}),r.jsx(ze,{value:"20",children:"20"}),r.jsx(ze,{value:"50",children:"50"}),r.jsx(ze,{value:"100",children:"100"})]})]}),r.jsxs("span",{className:"text-sm text-muted-foreground",children:["显示 ",(P-1)*Z+1," 到"," ",Math.min(P*Z,Oe.length)," 条,共 ",Oe.length," 条"]})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>je(1),disabled:P===1,className:"hidden sm:flex",children:r.jsx(Eu,{className:"h-4 w-4"})}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>je(he=>Math.max(1,he-1)),disabled:P===1,children:[r.jsx(vi,{className:"h-4 w-4 sm:mr-1"}),r.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Te,{type:"number",value:Ne,onChange:he=>se(he.target.value),onKeyDown:he=>he.key==="Enter"&&Qn(),placeholder:P.toString(),className:"w-16 h-8 text-center",min:1,max:nt}),r.jsx(re,{variant:"outline",size:"sm",onClick:Qn,disabled:!Ne,className:"h-8",children:"跳转"})]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>je(he=>he+1),disabled:P>=nt,children:[r.jsx("span",{className:"hidden sm:inline",children:"下一页"}),r.jsx(yi,{className:"h-4 w-4 sm:ml-1"})]}),r.jsx(re,{variant:"outline",size:"sm",onClick:()=>je(nt),disabled:P>=nt,className:"hidden sm:flex",children:r.jsx(Au,{className:"h-4 w-4"})})]})]})]}),r.jsxs(ln,{value:"tasks",className:"space-y-6 mt-0",children:[r.jsx("p",{className:"text-sm text-muted-foreground",children:"为不同的任务配置使用的模型和参数"}),c&&r.jsxs("div",{className:"grid gap-4 sm:gap-6",children:[r.jsx(Ra,{title:"组件模型 (utils)",description:"用于表情包、取名、关系、情绪变化等组件",taskConfig:c.utils,modelNames:l,onChange:(he,Me)=>ge("utils",he,Me)}),r.jsx(Ra,{title:"组件小模型 (utils_small)",description:"消耗量较大的组件,建议使用速度较快的小模型",taskConfig:c.utils_small,modelNames:l,onChange:(he,Me)=>ge("utils_small",he,Me)}),r.jsx(Ra,{title:"工具调用模型 (tool_use)",description:"需要使用支持工具调用的模型",taskConfig:c.tool_use,modelNames:l,onChange:(he,Me)=>ge("tool_use",he,Me)}),r.jsx(Ra,{title:"首要回复模型 (replyer)",description:"用于表达器和表达方式学习",taskConfig:c.replyer,modelNames:l,onChange:(he,Me)=>ge("replyer",he,Me)}),r.jsx(Ra,{title:"决策模型 (planner)",description:"负责决定麦麦该什么时候回复",taskConfig:c.planner,modelNames:l,onChange:(he,Me)=>ge("planner",he,Me)}),r.jsx(Ra,{title:"图像识别模型 (vlm)",description:"视觉语言模型",taskConfig:c.vlm,modelNames:l,onChange:(he,Me)=>ge("vlm",he,Me),hideTemperature:!0}),r.jsx(Ra,{title:"语音识别模型 (voice)",description:"语音转文字",taskConfig:c.voice,modelNames:l,onChange:(he,Me)=>ge("voice",he,Me),hideTemperature:!0,hideMaxTokens:!0}),r.jsx(Ra,{title:"嵌入模型 (embedding)",description:"用于向量化",taskConfig:c.embedding,modelNames:l,onChange:(he,Me)=>ge("embedding",he,Me),hideTemperature:!0,hideMaxTokens:!0}),r.jsxs("div",{className:"space-y-4",children:[r.jsx("h3",{className:"text-lg font-semibold",children:"LPMM 知识库模型"}),r.jsx(Ra,{title:"实体提取模型 (lpmm_entity_extract)",description:"从文本中提取实体",taskConfig:c.lpmm_entity_extract,modelNames:l,onChange:(he,Me)=>ge("lpmm_entity_extract",he,Me)}),r.jsx(Ra,{title:"RDF 构建模型 (lpmm_rdf_build)",description:"构建知识图谱",taskConfig:c.lpmm_rdf_build,modelNames:l,onChange:(he,Me)=>ge("lpmm_rdf_build",he,Me)}),r.jsx(Ra,{title:"问答模型 (lpmm_qa)",description:"知识库问答",taskConfig:c.lpmm_qa,modelNames:l,onChange:(he,Me)=>ge("lpmm_qa",he,Me)})]})]})]})]}),r.jsx(hr,{open:z,onOpenChange:Sr,children:r.jsxs(nr,{className:"max-w-[95vw] sm:max-w-2xl max-h-[90vh] overflow-y-auto",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:H!==null?"编辑模型":"添加模型"}),r.jsx(wr,{children:"配置模型的基本信息和参数"})]}),r.jsxs("div",{className:"grid gap-4 py-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"model_name",children:"模型名称 *"}),r.jsx(Te,{id:"model_name",value:E?.name||"",onChange:he=>R(Me=>Me?{...Me,name:he.target.value}:null),placeholder:"例如: qwen3-30b"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"用于在任务配置中引用此模型"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"model_identifier",children:"模型标识符 *"}),r.jsx(Te,{id:"model_identifier",value:E?.model_identifier||"",onChange:he=>R(Me=>Me?{...Me,model_identifier:he.target.value}:null),placeholder:"Qwen/Qwen3-30B-A3B-Instruct-2507"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"API 提供商提供的模型 ID"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"api_provider",children:"API 提供商 *"}),r.jsxs(_t,{value:E?.api_provider||"",onValueChange:he=>R(Me=>Me?{...Me,api_provider:he}:null),children:[r.jsx(jt,{id:"api_provider",children:r.jsx(Mt,{placeholder:"选择提供商"})}),r.jsx(Nt,{children:n.map(he=>r.jsx(ze,{value:he,children:he},he))})]})]}),r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"price_in",children:"输入价格 (¥/M token)"}),r.jsx(Te,{id:"price_in",type:"number",step:"0.1",min:"0",value:E?.price_in??"",onChange:he=>{const Me=he.target.value===""?null:parseFloat(he.target.value);R(dt=>dt?{...dt,price_in:Me}:null)},placeholder:"默认: 0"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"price_out",children:"输出价格 (¥/M token)"}),r.jsx(Te,{id:"price_out",type:"number",step:"0.1",min:"0",value:E?.price_out??"",onChange:he=>{const Me=he.target.value===""?null:parseFloat(he.target.value);R(dt=>dt?{...dt,price_out:Me}:null)},placeholder:"默认: 0"})]})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"force_stream_mode",checked:E?.force_stream_mode||!1,onCheckedChange:he=>R(Me=>Me?{...Me,force_stream_mode:he}:null)}),r.jsx(Q,{htmlFor:"force_stream_mode",className:"cursor-pointer",children:"强制流式输出模式"})]})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>L(!1),children:"取消"}),r.jsx(re,{onClick:Gn,children:"保存"})]})]})}),r.jsx(cn,{open:I,onOpenChange:G,children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:['确定要删除模型 "',te!==null?e[te]?.name:"",'" 吗? 此操作无法撤销。']})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:Sn,children:"删除"})]})]})}),r.jsx(cn,{open:W,onOpenChange:oe,children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认批量删除"}),r.jsxs(en,{children:["确定要删除选中的 ",U.size," 个模型吗? 此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:K,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})}),M&&r.jsx(F1,{onRestartComplete:Ze,onRestartFailed:We})]})})}function Ra({title:e,description:t,taskConfig:n,modelNames:a,onChange:l,hideTemperature:o=!1,hideMaxTokens:c=!1}){const d=m=>{l("model_list",m)};return r.jsxs("div",{className:"rounded-lg border bg-card p-4 sm:p-6 space-y-4",children:[r.jsxs("div",{children:[r.jsx("h4",{className:"font-semibold text-base sm:text-lg",children:e}),r.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:t})]}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"模型列表"}),r.jsx(jz,{options:a.map(m=>({label:m,value:m})),selected:n.model_list||[],onChange:d,placeholder:"选择模型...",emptyText:"暂无可用模型"})]}),r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[!o&&r.jsxs("div",{className:"grid gap-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{children:"温度"}),r.jsx(Te,{type:"number",step:"0.1",min:"0",max:"1",value:n.temperature??.3,onChange:m=>{const f=parseFloat(m.target.value);!isNaN(f)&&f>=0&&f<=1&&l("temperature",f)},className:"w-20 h-8 text-sm"})]}),r.jsx(Rm,{value:[n.temperature??.3],onValueChange:m=>l("temperature",m[0]),min:0,max:1,step:.1,className:"w-full"})]}),!c&&r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"最大 Token"}),r.jsx(Te,{type:"number",step:"1",min:"1",value:n.max_tokens??1024,onChange:m=>l("max_tokens",parseInt(m.target.value))})]})]})]})]})}const la={inner:{version:"0.1.2"},nickname:{nickname:""},napcat_server:{host:"localhost",port:8095,token:"",heartbeat_interval:30},maibot_server:{host:"localhost",port:8e3},chat:{group_list_type:"whitelist",group_list:[],private_list_type:"whitelist",private_list:[],ban_user_id:[],ban_qq_bot:!1,enable_poke:!0},voice:{use_tts:!1},debug:{level:"INFO"}};function Sz(){const[e,t]=w.useState(null),[n,a]=w.useState(""),l=w.useRef(null),{toast:o}=pr(),c=x=>{const y=JSON.parse(JSON.stringify(la)),b=x.split(` +`);let j="";for(const k of b){const S=k.trim();if(!S||S.startsWith("#"))continue;const _=S.match(/^\[(\w+)\]$/);if(_){j=_[1];continue}const M=S.match(/^(\w+)\s*=\s*(.+)$/);if(M&&j){const[,D,z]=M,L=z.trim();let E;if(L==="true")E=!0;else if(L==="false")E=!1;else if(L.startsWith("[")&&L.endsWith("]")){const R=L.slice(1,-1).trim();if(R){const H=R.split(",").map(I=>{const G=I.trim();return isNaN(Number(G))?G.replace(/"/g,""):Number(G)}),$=typeof H[0];E=H.every(I=>typeof I===$)?H:H.filter(I=>typeof I=="number")}else E=[]}else L.startsWith('"')&&L.endsWith('"')?E=L.slice(1,-1):isNaN(Number(L))?E=L.replace(/"/g,""):E=Number(L);if(j in y){const R=y[j];R[D]=E}}}return y},d=x=>{const y=[],b=(j,k)=>j===""||j===null||j===void 0?k:j;return y.push("[inner]"),y.push(`version = "${b(x.inner.version,la.inner.version)}" # 版本号`),y.push("# 请勿修改版本号,除非你知道自己在做什么"),y.push(""),y.push("[nickname] # 现在没用"),y.push(`nickname = "${b(x.nickname.nickname,la.nickname.nickname)}"`),y.push(""),y.push("[napcat_server] # Napcat连接的ws服务设置"),y.push(`host = "${b(x.napcat_server.host,la.napcat_server.host)}" # Napcat设定的主机地址`),y.push(`port = ${b(x.napcat_server.port||0,la.napcat_server.port)} # Napcat设定的端口`),y.push(`token = "${b(x.napcat_server.token,la.napcat_server.token)}" # Napcat设定的访问令牌,若无则留空`),y.push(`heartbeat_interval = ${b(x.napcat_server.heartbeat_interval||0,la.napcat_server.heartbeat_interval)} # 与Napcat设置的心跳相同(按秒计)`),y.push(""),y.push("[maibot_server] # 连接麦麦的ws服务设置"),y.push(`host = "${b(x.maibot_server.host,la.maibot_server.host)}" # 麦麦在.env文件中设置的主机地址,即HOST字段`),y.push(`port = ${b(x.maibot_server.port||0,la.maibot_server.port)} # 麦麦在.env文件中设置的端口,即PORT字段`),y.push(""),y.push("[chat] # 黑白名单功能"),y.push(`group_list_type = "${b(x.chat.group_list_type,la.chat.group_list_type)}" # 群组名单类型,可选为:whitelist, blacklist`),y.push(`group_list = [${x.chat.group_list.join(", ")}] # 群组名单`),y.push("# 当group_list_type为whitelist时,只有群组名单中的群组可以聊天"),y.push("# 当group_list_type为blacklist时,群组名单中的任何群组无法聊天"),y.push(`private_list_type = "${b(x.chat.private_list_type,la.chat.private_list_type)}" # 私聊名单类型,可选为:whitelist, blacklist`),y.push(`private_list = [${x.chat.private_list.join(", ")}] # 私聊名单`),y.push("# 当private_list_type为whitelist时,只有私聊名单中的用户可以聊天"),y.push("# 当private_list_type为blacklist时,私聊名单中的任何用户无法聊天"),y.push(`ban_user_id = [${x.chat.ban_user_id.join(", ")}] # 全局禁止名单(全局禁止名单中的用户无法进行任何聊天)`),y.push(`ban_qq_bot = ${x.chat.ban_qq_bot} # 是否屏蔽QQ官方机器人`),y.push(`enable_poke = ${x.chat.enable_poke} # 是否启用戳一戳功能`),y.push(""),y.push("[voice] # 发送语音设置"),y.push(`use_tts = ${x.voice.use_tts} # 是否使用tts语音(请确保你配置了tts并有对应的adapter)`),y.push(""),y.push("[debug]"),y.push(`level = "${b(x.debug.level,la.debug.level)}" # 日志等级(DEBUG, INFO, WARNING, ERROR, CRITICAL)`),y.join(` +`)},m=x=>{const y=x.target.files?.[0];if(!y)return;const b=new FileReader;b.onload=j=>{try{const k=j.target?.result,S=c(k);t(S),a(y.name),o({title:"上传成功",description:`已加载配置文件:${y.name}`})}catch(k){console.error("解析配置文件失败:",k),o({title:"解析失败",description:"配置文件格式错误,请检查文件内容",variant:"destructive"})}},b.readAsText(y)},f=()=>{if(!e)return;const x=d(e),y=new Blob([x],{type:"text/plain;charset=utf-8"}),b=URL.createObjectURL(y),j=document.createElement("a");j.href=b,j.download=n||"config.toml",document.body.appendChild(j),j.click(),document.body.removeChild(j),URL.revokeObjectURL(b),o({title:"下载成功",description:"配置文件已下载,请手动覆盖并重启适配器"})},p=()=>{t(JSON.parse(JSON.stringify(la))),a("config.toml"),o({title:"已加载默认配置",description:"可以开始编辑配置"})};return r.jsx(Xt,{className:"h-full",children:r.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"麦麦适配器配置"}),r.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理麦麦的 QQ 适配器的配置文件"})]}),r.jsxs("div",{className:"flex gap-2 w-full sm:w-auto",children:[!e&&r.jsxs(r.Fragment,{children:[r.jsx("input",{ref:l,type:"file",accept:".toml",className:"hidden",onChange:m}),r.jsxs(re,{onClick:()=>l.current?.click(),size:"sm",variant:"outline",className:"flex-1 sm:flex-none",children:[r.jsx(vT,{className:"mr-2 h-4 w-4"}),"上传配置"]}),r.jsxs(re,{onClick:p,size:"sm",className:"flex-1 sm:flex-none",children:[r.jsx(jl,{className:"mr-2 h-4 w-4"}),"使用默认配置"]})]}),e&&r.jsxs(re,{onClick:f,size:"sm",children:[r.jsx(Z0,{className:"mr-2 h-4 w-4"}),"下载配置"]})]})]}),r.jsxs(Fu,{children:[r.jsx(hi,{className:"h-4 w-4"}),r.jsxs(Iu,{children:["适配器独立运行,需要"," ",r.jsx("strong",{children:"上传配置文件 → 在线编辑 → 下载文件 → 手动覆盖并重启适配器"}),"。"]})]}),e?r.jsxs(Sl,{defaultValue:"napcat",className:"w-full",children:[r.jsx("div",{className:"overflow-x-auto -mx-4 px-4 sm:mx-0 sm:px-0",children:r.jsxs(Ls,{className:"inline-flex w-auto min-w-full sm:grid sm:w-full sm:grid-cols-5",children:[r.jsx(Rt,{value:"napcat",className:"flex-shrink-0",children:"Napcat 连接"}),r.jsx(Rt,{value:"maibot",className:"flex-shrink-0",children:"麦麦连接"}),r.jsx(Rt,{value:"chat",className:"flex-shrink-0",children:"聊天控制"}),r.jsx(Rt,{value:"voice",className:"flex-shrink-0",children:"语音设置"}),r.jsx(Rt,{value:"debug",className:"flex-shrink-0",children:"调试"})]})}),r.jsx(ln,{value:"napcat",className:"space-y-4",children:r.jsx(kz,{config:e,onChange:t})}),r.jsx(ln,{value:"maibot",className:"space-y-4",children:r.jsx(Cz,{config:e,onChange:t})}),r.jsx(ln,{value:"chat",className:"space-y-4",children:r.jsx(Tz,{config:e,onChange:t})}),r.jsx(ln,{value:"voice",className:"space-y-4",children:r.jsx(_z,{config:e,onChange:t})}),r.jsx(ln,{value:"debug",className:"space-y-4",children:r.jsx(Mz,{config:e,onChange:t})})]}):r.jsx("div",{className:"rounded-lg border bg-card p-12",children:r.jsxs("div",{className:"text-center space-y-4",children:[r.jsx(jl,{className:"h-16 w-16 mx-auto text-muted-foreground"}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold",children:"尚未加载配置"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-2",children:"请上传现有配置文件,或使用默认配置开始编辑"})]})]})})]})})}function kz({config:e,onChange:t}){return r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"Napcat WebSocket 服务设置"}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"napcat-host",children:"主机地址"}),r.jsx(Te,{id:"napcat-host",value:e.napcat_server.host,onChange:n=>t({...e,napcat_server:{...e.napcat_server,host:n.target.value}}),placeholder:"localhost"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"Napcat 设定的主机地址"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"napcat-port",children:"端口"}),r.jsx(Te,{id:"napcat-port",type:"number",value:e.napcat_server.port||"",onChange:n=>t({...e,napcat_server:{...e.napcat_server,port:n.target.value?parseInt(n.target.value):0}}),placeholder:"8095"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"Napcat 设定的端口(留空使用默认值 8095)"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"napcat-token",children:"访问令牌(Token)"}),r.jsx(Te,{id:"napcat-token",type:"password",value:e.napcat_server.token,onChange:n=>t({...e,napcat_server:{...e.napcat_server,token:n.target.value}}),placeholder:"留空表示无需令牌"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"Napcat 设定的访问令牌,若无则留空"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"napcat-heartbeat",children:"心跳间隔(秒)"}),r.jsx(Te,{id:"napcat-heartbeat",type:"number",value:e.napcat_server.heartbeat_interval||"",onChange:n=>t({...e,napcat_server:{...e.napcat_server,heartbeat_interval:n.target.value?parseInt(n.target.value):0}}),placeholder:"30"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"与 Napcat 设置的心跳间隔保持一致(留空使用默认值 30)"})]})]})]})})}function Cz({config:e,onChange:t}){return r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"麦麦 WebSocket 服务设置"}),r.jsxs("div",{className:"grid gap-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"maibot-host",children:"主机地址"}),r.jsx(Te,{id:"maibot-host",value:e.maibot_server.host,onChange:n=>t({...e,maibot_server:{...e.maibot_server,host:n.target.value}}),placeholder:"localhost"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦在 .env 文件中设置的 HOST 字段"})]}),r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{htmlFor:"maibot-port",children:"端口"}),r.jsx(Te,{id:"maibot-port",type:"number",value:e.maibot_server.port||"",onChange:n=>t({...e,maibot_server:{...e.maibot_server,port:n.target.value?parseInt(n.target.value):0}}),placeholder:"8000"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"麦麦在 .env 文件中设置的 PORT 字段(留空使用默认值 8000)"})]})]})]})})}function Tz({config:e,onChange:t}){const n=o=>{const c={...e};o==="group"?c.chat.group_list=[...c.chat.group_list,0]:o==="private"?c.chat.private_list=[...c.chat.private_list,0]:c.chat.ban_user_id=[...c.chat.ban_user_id,0],t(c)},a=(o,c)=>{const d={...e};o==="group"?d.chat.group_list=d.chat.group_list.filter((m,f)=>f!==c):o==="private"?d.chat.private_list=d.chat.private_list.filter((m,f)=>f!==c):d.chat.ban_user_id=d.chat.ban_user_id.filter((m,f)=>f!==c),t(d)},l=(o,c,d)=>{const m={...e};o==="group"?m.chat.group_list[c]=d:o==="private"?m.chat.private_list[c]=d:m.chat.ban_user_id[c]=d,t(m)};return r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"聊天黑白名单功能"}),r.jsxs("div",{className:"grid gap-6",children:[r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"群组名单类型"}),r.jsxs(_t,{value:e.chat.group_list_type,onValueChange:o=>t({...e,chat:{...e.chat,group_list_type:o}}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"whitelist",children:"白名单(仅名单内可聊天)"}),r.jsx(ze,{value:"blacklist",children:"黑名单(名单内禁止聊天)"})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{children:"群组列表"}),r.jsxs(re,{onClick:()=>n("group"),size:"sm",variant:"outline",children:[r.jsx(jl,{className:"mr-1 h-4 w-4"}),"添加群号"]})]}),e.chat.group_list.map((o,c)=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Te,{type:"number",value:o,onChange:d=>l("group",c,parseInt(d.target.value)||0),placeholder:"输入群号"}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"icon",variant:"outline",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:["确定要删除群号 ",o," 吗?此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>a("group",c),children:"删除"})]})]})]})]},c)),e.chat.group_list.length===0&&r.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无群组"})]})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"私聊名单类型"}),r.jsxs(_t,{value:e.chat.private_list_type,onValueChange:o=>t({...e,chat:{...e.chat,private_list_type:o}}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"whitelist",children:"白名单(仅名单内可聊天)"}),r.jsx(ze,{value:"blacklist",children:"黑名单(名单内禁止聊天)"})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx(Q,{children:"私聊列表"}),r.jsxs(re,{onClick:()=>n("private"),size:"sm",variant:"outline",children:[r.jsx(jl,{className:"mr-1 h-4 w-4"}),"添加用户"]})]}),e.chat.private_list.map((o,c)=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Te,{type:"number",value:o,onChange:d=>l("private",c,parseInt(d.target.value)||0),placeholder:"输入QQ号"}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"icon",variant:"outline",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:["确定要删除用户 ",o," 吗?此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>a("private",c),children:"删除"})]})]})]})]},c)),e.chat.private_list.length===0&&r.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无用户"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx(Q,{children:"全局禁止名单"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"名单中的用户无法进行任何聊天"})]}),r.jsxs(re,{onClick:()=>n("ban"),size:"sm",variant:"outline",children:[r.jsx(jl,{className:"mr-1 h-4 w-4"}),"添加用户"]})]}),e.chat.ban_user_id.map((o,c)=>r.jsxs("div",{className:"flex gap-2",children:[r.jsx(Te,{type:"number",value:o,onChange:d=>l("ban",c,parseInt(d.target.value)||0),placeholder:"输入QQ号"}),r.jsxs(cn,{children:[r.jsx(Xn,{asChild:!0,children:r.jsx(re,{size:"icon",variant:"outline",children:r.jsx(Ot,{className:"h-4 w-4"})})}),r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:["确定要从全局禁止名单中删除用户 ",o," 吗?此操作无法撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>a("ban",c),children:"删除"})]})]})]})]},c)),e.chat.ban_user_id.length===0&&r.jsx("p",{className:"text-sm text-muted-foreground",children:"暂无禁止用户"})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx(Q,{children:"屏蔽QQ官方机器人"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"是否屏蔽来自QQ官方机器人的消息"})]}),r.jsx(gt,{checked:e.chat.ban_qq_bot,onCheckedChange:o=>t({...e,chat:{...e.chat,ban_qq_bot:o}})})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx(Q,{children:"启用戳一戳功能"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"是否响应戳一戳消息"})]}),r.jsx(gt,{checked:e.chat.enable_poke,onCheckedChange:o=>t({...e,chat:{...e.chat,enable_poke:o}})})]})]})]})})}function _z({config:e,onChange:t}){return r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"发送语音设置"}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{children:[r.jsx(Q,{children:"使用 TTS 语音"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"请确保已配置 TTS 并有对应的适配器"})]}),r.jsx(gt,{checked:e.voice.use_tts,onCheckedChange:n=>t({...e,voice:{use_tts:n}})})]})]})})}function Mz({config:e,onChange:t}){return r.jsx("div",{className:"rounded-lg border bg-card p-6 space-y-6",children:r.jsxs("div",{children:[r.jsx("h3",{className:"text-lg font-semibold mb-4",children:"调试设置"}),r.jsx("div",{className:"grid gap-4",children:r.jsxs("div",{className:"grid gap-2",children:[r.jsx(Q,{children:"日志等级"}),r.jsxs(_t,{value:e.debug.level,onValueChange:n=>t({...e,debug:{level:n}}),children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"DEBUG",children:"DEBUG(调试)"}),r.jsx(ze,{value:"INFO",children:"INFO(信息)"}),r.jsx(ze,{value:"WARNING",children:"WARNING(警告)"}),r.jsx(ze,{value:"ERROR",children:"ERROR(错误)"}),r.jsx(ze,{value:"CRITICAL",children:"CRITICAL(严重)"})]})]}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"设置适配器的日志输出等级"})]})})]})})}function Mb(e){const t=[],n=String(e||"");let a=n.indexOf(","),l=0,o=!1;for(;!o;){a===-1&&(a=n.length,o=!0);const c=n.slice(l,a).trim();(c||!o)&&t.push(c),l=a+1,a=n.indexOf(",",l)}return t}function Ez(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const Az=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,Dz=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,zz={};function Eb(e,t){return(zz.jsx?Dz:Az).test(e)}const Oz=/[ \t\n\f\r]/g;function Rz(e){return typeof e=="object"?e.type==="text"?Ab(e.value):!1:Ab(e)}function Ab(e){return e.replace(Oz,"")===""}class Hu{constructor(t,n,a){this.normal=n,this.property=t,a&&(this.space=a)}}Hu.prototype.normal={};Hu.prototype.property={};Hu.prototype.space=void 0;function Z7(e,t){const n={},a={};for(const l of e)Object.assign(n,l.property),Object.assign(a,l.normal);return new Hu(n,a,t)}function gu(e){return e.toLowerCase()}class Kr{constructor(t,n){this.attribute=n,this.property=t}}Kr.prototype.attribute="";Kr.prototype.booleanish=!1;Kr.prototype.boolean=!1;Kr.prototype.commaOrSpaceSeparated=!1;Kr.prototype.commaSeparated=!1;Kr.prototype.defined=!1;Kr.prototype.mustUseProperty=!1;Kr.prototype.number=!1;Kr.prototype.overloadedBoolean=!1;Kr.prototype.property="";Kr.prototype.spaceSeparated=!1;Kr.prototype.space=void 0;let Bz=0;const xt=Ni(),Hn=Ni(),zx=Ni(),De=Ni(),gn=Ni(),Do=Ni(),ia=Ni();function Ni(){return 2**++Bz}const Ox=Object.freeze(Object.defineProperty({__proto__:null,boolean:xt,booleanish:Hn,commaOrSpaceSeparated:ia,commaSeparated:Do,number:De,overloadedBoolean:zx,spaceSeparated:gn},Symbol.toStringTag,{value:"Module"})),Ep=Object.keys(Ox);class q1 extends Kr{constructor(t,n,a,l){let o=-1;if(super(t,n),Db(this,"space",l),typeof a=="number")for(;++o4&&n.slice(0,4)==="data"&&qz.test(t)){if(t.charAt(4)==="-"){const o=t.slice(5).replace(zb,Uz);a="data"+o.charAt(0).toUpperCase()+o.slice(1)}else{const o=t.slice(4);if(!zb.test(o)){let c=o.replace(Iz,Hz);c.charAt(0)!=="-"&&(c="-"+c),t="data"+c}}l=q1}return new l(a,t)}function Hz(e){return"-"+e.toLowerCase()}function Uz(e){return e.charAt(1).toUpperCase()}const lj=Z7([J7,Lz,nj,rj,aj],"html"),Pm=Z7([J7,Pz,nj,rj,aj],"svg");function Ob(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function $z(e){return e.join(" ").trim()}var go={},Ap,Rb;function Vz(){if(Rb)return Ap;Rb=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,a=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,l=/^:\s*/,o=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,c=/^[;\s]*/,d=/^\s+|\s+$/g,m=` +`,f="/",p="*",x="",y="comment",b="declaration";function j(S,_){if(typeof S!="string")throw new TypeError("First argument must be a string");if(!S)return[];_=_||{};var M=1,D=1;function z(J){var ae=J.match(t);ae&&(M+=ae.length);var U=J.lastIndexOf(m);D=~U?J.length-U:D+J.length}function L(){var J={line:M,column:D};return function(ae){return ae.position=new E(J),$(),ae}}function E(J){this.start=J,this.end={line:M,column:D},this.source=_.source}E.prototype.content=S;function R(J){var ae=new Error(_.source+":"+M+":"+D+": "+J);if(ae.reason=J,ae.filename=_.source,ae.line=M,ae.column=D,ae.source=S,!_.silent)throw ae}function H(J){var ae=J.exec(S);if(ae){var U=ae[0];return z(U),S=S.slice(U.length),ae}}function $(){H(n)}function I(J){var ae;for(J=J||[];ae=G();)ae!==!1&&J.push(ae);return J}function G(){var J=L();if(!(f!=S.charAt(0)||p!=S.charAt(1))){for(var ae=2;x!=S.charAt(ae)&&(p!=S.charAt(ae)||f!=S.charAt(ae+1));)++ae;if(ae+=2,x===S.charAt(ae-1))return R("End of comment missing");var U=S.slice(2,ae-2);return D+=2,z(U),S=S.slice(ae),D+=2,J({type:y,comment:U})}}function te(){var J=L(),ae=H(a);if(ae){if(G(),!H(l))return R("property missing ':'");var U=H(o),q=J({type:b,property:k(ae[0].replace(e,x)),value:U?k(U[0].replace(e,x)):x});return H(c),q}}function we(){var J=[];I(J);for(var ae;ae=te();)ae!==!1&&(J.push(ae),I(J));return J}return $(),we()}function k(S){return S?S.replace(d,x):x}return Ap=j,Ap}var Bb;function Gz(){if(Bb)return go;Bb=1;var e=go&&go.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(go,"__esModule",{value:!0}),go.default=n;const t=e(Vz());function n(a,l){let o=null;if(!a||typeof a!="string")return o;const c=(0,t.default)(a),d=typeof l=="function";return c.forEach(m=>{if(m.type!=="declaration")return;const{property:f,value:p}=m;d?l(f,p,m):p&&(o=o||{},o[f]=p)}),o}return go}var Zc={},Lb;function Yz(){if(Lb)return Zc;Lb=1,Object.defineProperty(Zc,"__esModule",{value:!0}),Zc.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,a=/^-(webkit|moz|ms|o|khtml)-/,l=/^-(ms)-/,o=function(f){return!f||n.test(f)||e.test(f)},c=function(f,p){return p.toUpperCase()},d=function(f,p){return"".concat(p,"-")},m=function(f,p){return p===void 0&&(p={}),o(f)?f:(f=f.toLowerCase(),p.reactCompat?f=f.replace(l,d):f=f.replace(a,d),f.replace(t,c))};return Zc.camelCase=m,Zc}var Jc,Pb;function Wz(){if(Pb)return Jc;Pb=1;var e=Jc&&Jc.__importDefault||function(l){return l&&l.__esModule?l:{default:l}},t=e(Gz()),n=Yz();function a(l,o){var c={};return!l||typeof l!="string"||(0,t.default)(l,function(d,m){d&&m&&(c[(0,n.camelCase)(d,o)]=m)}),c}return a.default=a,Jc=a,Jc}var Xz=Wz();const Kz=M5(Xz),ij=oj("end"),H1=oj("start");function oj(e){return t;function t(n){const a=n&&n.position&&n.position[e]||{};if(typeof a.line=="number"&&a.line>0&&typeof a.column=="number"&&a.column>0)return{line:a.line,column:a.column,offset:typeof a.offset=="number"&&a.offset>-1?a.offset:void 0}}}function Qz(e){const t=H1(e),n=ij(e);if(t&&n)return{start:t,end:n}}function ou(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Fb(e.position):"start"in e||"end"in e?Fb(e):"line"in e||"column"in e?Rx(e):""}function Rx(e){return Ib(e&&e.line)+":"+Ib(e&&e.column)}function Fb(e){return Rx(e&&e.start)+"-"+Rx(e&&e.end)}function Ib(e){return e&&typeof e=="number"?e:1}class jr extends Error{constructor(t,n,a){super(),typeof n=="string"&&(a=n,n=void 0);let l="",o={},c=!1;if(n&&("line"in n&&"column"in n?o={place:n}:"start"in n&&"end"in n?o={place:n}:"type"in n?o={ancestors:[n],place:n.position}:o={...n}),typeof t=="string"?l=t:!o.cause&&t&&(c=!0,l=t.message,o.cause=t),!o.ruleId&&!o.source&&typeof a=="string"){const m=a.indexOf(":");m===-1?o.ruleId=a:(o.source=a.slice(0,m),o.ruleId=a.slice(m+1))}if(!o.place&&o.ancestors&&o.ancestors){const m=o.ancestors[o.ancestors.length-1];m&&(o.place=m.position)}const d=o.place&&"start"in o.place?o.place.start:o.place;this.ancestors=o.ancestors||void 0,this.cause=o.cause||void 0,this.column=d?d.column:void 0,this.fatal=void 0,this.file="",this.message=l,this.line=d?d.line:void 0,this.name=ou(o.place)||"1:1",this.place=o.place||void 0,this.reason=this.message,this.ruleId=o.ruleId||void 0,this.source=o.source||void 0,this.stack=c&&o.cause&&typeof o.cause.stack=="string"?o.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}jr.prototype.file="";jr.prototype.name="";jr.prototype.reason="";jr.prototype.message="";jr.prototype.stack="";jr.prototype.column=void 0;jr.prototype.line=void 0;jr.prototype.ancestors=void 0;jr.prototype.cause=void 0;jr.prototype.fatal=void 0;jr.prototype.place=void 0;jr.prototype.ruleId=void 0;jr.prototype.source=void 0;const U1={}.hasOwnProperty,Zz=new Map,Jz=/[A-Z]/g,eO=new Set(["table","tbody","thead","tfoot","tr"]),tO=new Set(["td","th"]),cj="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function nO(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let a;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");a=uO(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");a=cO(n,t.jsx,t.jsxs)}const l={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:a,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?Pm:lj,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},o=uj(l,e,void 0);return o&&typeof o!="string"?o:l.create(e,l.Fragment,{children:o||void 0},void 0)}function uj(e,t,n){if(t.type==="element")return rO(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return aO(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return lO(e,t,n);if(t.type==="mdxjsEsm")return sO(e,t);if(t.type==="root")return iO(e,t,n);if(t.type==="text")return oO(e,t)}function rO(e,t,n){const a=e.schema;let l=a;t.tagName.toLowerCase()==="svg"&&a.space==="html"&&(l=Pm,e.schema=l),e.ancestors.push(t);const o=mj(e,t.tagName,!1),c=dO(e,t);let d=V1(e,t);return eO.has(t.tagName)&&(d=d.filter(function(m){return typeof m=="string"?!Rz(m):!0})),dj(e,c,o,t),$1(c,d),e.ancestors.pop(),e.schema=a,e.create(t,o,c,n)}function aO(e,t){if(t.data&&t.data.estree&&e.evaluater){const a=t.data.estree.body[0];return a.type,e.evaluater.evaluateExpression(a.expression)}vu(e,t.position)}function sO(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);vu(e,t.position)}function lO(e,t,n){const a=e.schema;let l=a;t.name==="svg"&&a.space==="html"&&(l=Pm,e.schema=l),e.ancestors.push(t);const o=t.name===null?e.Fragment:mj(e,t.name,!0),c=mO(e,t),d=V1(e,t);return dj(e,c,o,t),$1(c,d),e.ancestors.pop(),e.schema=a,e.create(t,o,c,n)}function iO(e,t,n){const a={};return $1(a,V1(e,t)),e.create(t,e.Fragment,a,n)}function oO(e,t){return t.value}function dj(e,t,n,a){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=a)}function $1(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function cO(e,t,n){return a;function a(l,o,c,d){const f=Array.isArray(c.children)?n:t;return d?f(o,c,d):f(o,c)}}function uO(e,t){return n;function n(a,l,o,c){const d=Array.isArray(o.children),m=H1(a);return t(l,o,c,d,{columnNumber:m?m.column-1:void 0,fileName:e,lineNumber:m?m.line:void 0},void 0)}}function dO(e,t){const n={};let a,l;for(l in t.properties)if(l!=="children"&&U1.call(t.properties,l)){const o=hO(e,l,t.properties[l]);if(o){const[c,d]=o;e.tableCellAlignToStyle&&c==="align"&&typeof d=="string"&&tO.has(t.tagName)?a=d:n[c]=d}}if(a){const o=n.style||(n.style={});o[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=a}return n}function mO(e,t){const n={};for(const a of t.attributes)if(a.type==="mdxJsxExpressionAttribute")if(a.data&&a.data.estree&&e.evaluater){const o=a.data.estree.body[0];o.type;const c=o.expression;c.type;const d=c.properties[0];d.type,Object.assign(n,e.evaluater.evaluateExpression(d.argument))}else vu(e,t.position);else{const l=a.name;let o;if(a.value&&typeof a.value=="object")if(a.value.data&&a.value.data.estree&&e.evaluater){const d=a.value.data.estree.body[0];d.type,o=e.evaluater.evaluateExpression(d.expression)}else vu(e,t.position);else o=a.value===null?!0:a.value;n[l]=o}return n}function V1(e,t){const n=[];let a=-1;const l=e.passKeys?new Map:Zz;for(;++al?0:l+t:t=t>l?l:t,n=n>0?n:0,a.length<1e4)c=Array.from(a),c.unshift(t,n),e.splice(...c);else for(n&&e.splice(t,n);o0?(ua(e,e.length,0,t),e):t}const Ub={}.hasOwnProperty;function fj(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Ia(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Tr=Rl(/[A-Za-z]/),yr=Rl(/[\dA-Za-z]/),jO=Rl(/[#-'*+\--9=?A-Z^-~]/);function im(e){return e!==null&&(e<32||e===127)}const Bx=Rl(/\d/),NO=Rl(/[\dA-Fa-f]/),SO=Rl(/[!-/:-@[-`{-~]/);function Ye(e){return e!==null&&e<-2}function hn(e){return e!==null&&(e<0||e===32)}function Et(e){return e===-2||e===-1||e===32}const Fm=Rl(new RegExp("\\p{P}|\\p{S}","u")),gi=Rl(/\s/);function Rl(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Zo(e){const t=[];let n=-1,a=0,l=0;for(;++n55295&&o<57344){const d=e.charCodeAt(n+1);o<56320&&d>56319&&d<57344?(c=String.fromCharCode(o,d),l=1):c="�"}else c=String.fromCharCode(o);c&&(t.push(e.slice(a,n),encodeURIComponent(c)),a=n+l+1,c=""),l&&(n+=l,l=0)}return t.join("")+e.slice(a)}function St(e,t,n,a){const l=a?a-1:Number.POSITIVE_INFINITY;let o=0;return c;function c(m){return Et(m)?(e.enter(n),d(m)):t(m)}function d(m){return Et(m)&&o++c))return;const R=t.events.length;let H=R,$,I;for(;H--;)if(t.events[H][0]==="exit"&&t.events[H][1].type==="chunkFlow"){if($){I=t.events[H][1].end;break}$=!0}for(_(a),E=R;ED;){const L=n[z];t.containerState=L[1],L[0].exit.call(t,e)}n.length=D}function M(){l.write([null]),o=void 0,l=void 0,t.containerState._closeFlow=void 0}}function MO(e,t,n){return St(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Io(e){if(e===null||hn(e)||gi(e))return 1;if(Fm(e))return 2}function Im(e,t,n){const a=[];let l=-1;for(;++l1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const x={...e[a][1].end},y={...e[n][1].start};Vb(x,-m),Vb(y,m),c={type:m>1?"strongSequence":"emphasisSequence",start:x,end:{...e[a][1].end}},d={type:m>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:y},o={type:m>1?"strongText":"emphasisText",start:{...e[a][1].end},end:{...e[n][1].start}},l={type:m>1?"strong":"emphasis",start:{...c.start},end:{...d.end}},e[a][1].end={...c.start},e[n][1].start={...d.end},f=[],e[a][1].end.offset-e[a][1].start.offset&&(f=ka(f,[["enter",e[a][1],t],["exit",e[a][1],t]])),f=ka(f,[["enter",l,t],["enter",c,t],["exit",c,t],["enter",o,t]]),f=ka(f,Im(t.parser.constructs.insideSpan.null,e.slice(a+1,n),t)),f=ka(f,[["exit",o,t],["enter",d,t],["exit",d,t],["exit",l,t]]),e[n][1].end.offset-e[n][1].start.offset?(p=2,f=ka(f,[["enter",e[n][1],t],["exit",e[n][1],t]])):p=0,ua(e,a-1,n-a+3,f),n=a+f.length-p-2;break}}for(n=-1;++n0&&Et(E)?St(e,M,"linePrefix",o+1)(E):M(E)}function M(E){return E===null||Ye(E)?e.check(Gb,k,z)(E):(e.enter("codeFlowValue"),D(E))}function D(E){return E===null||Ye(E)?(e.exit("codeFlowValue"),M(E)):(e.consume(E),D)}function z(E){return e.exit("codeFenced"),t(E)}function L(E,R,H){let $=0;return I;function I(ae){return E.enter("lineEnding"),E.consume(ae),E.exit("lineEnding"),G}function G(ae){return E.enter("codeFencedFence"),Et(ae)?St(E,te,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(ae):te(ae)}function te(ae){return ae===d?(E.enter("codeFencedFenceSequence"),we(ae)):H(ae)}function we(ae){return ae===d?($++,E.consume(ae),we):$>=c?(E.exit("codeFencedFenceSequence"),Et(ae)?St(E,J,"whitespace")(ae):J(ae)):H(ae)}function J(ae){return ae===null||Ye(ae)?(E.exit("codeFencedFence"),R(ae)):H(ae)}}}function qO(e,t,n){const a=this;return l;function l(c){return c===null?n(c):(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),o)}function o(c){return a.parser.lazy[a.now().line]?n(c):t(c)}}const zp={name:"codeIndented",tokenize:UO},HO={partial:!0,tokenize:$O};function UO(e,t,n){const a=this;return l;function l(f){return e.enter("codeIndented"),St(e,o,"linePrefix",5)(f)}function o(f){const p=a.events[a.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?c(f):n(f)}function c(f){return f===null?m(f):Ye(f)?e.attempt(HO,c,m)(f):(e.enter("codeFlowValue"),d(f))}function d(f){return f===null||Ye(f)?(e.exit("codeFlowValue"),c(f)):(e.consume(f),d)}function m(f){return e.exit("codeIndented"),t(f)}}function $O(e,t,n){const a=this;return l;function l(c){return a.parser.lazy[a.now().line]?n(c):Ye(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),l):St(e,o,"linePrefix",5)(c)}function o(c){const d=a.events[a.events.length-1];return d&&d[1].type==="linePrefix"&&d[2].sliceSerialize(d[1],!0).length>=4?t(c):Ye(c)?l(c):n(c)}}const VO={name:"codeText",previous:YO,resolve:GO,tokenize:WO};function GO(e){let t=e.length-4,n=3,a,l;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(a=n;++a=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-a+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-a+this.left.length).reverse())}splice(t,n,a){const l=n||0;this.setCursor(Math.trunc(t));const o=this.right.splice(this.right.length-l,Number.POSITIVE_INFINITY);return a&&eu(this.left,a),o.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),eu(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),eu(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(c):e.interrupt(a.parser.constructs.flow,n,t)(c)}}function bj(e,t,n,a,l,o,c,d,m){const f=m||Number.POSITIVE_INFINITY;let p=0;return x;function x(_){return _===60?(e.enter(a),e.enter(l),e.enter(o),e.consume(_),e.exit(o),y):_===null||_===32||_===41||im(_)?n(_):(e.enter(a),e.enter(c),e.enter(d),e.enter("chunkString",{contentType:"string"}),k(_))}function y(_){return _===62?(e.enter(o),e.consume(_),e.exit(o),e.exit(l),e.exit(a),t):(e.enter(d),e.enter("chunkString",{contentType:"string"}),b(_))}function b(_){return _===62?(e.exit("chunkString"),e.exit(d),y(_)):_===null||_===60||Ye(_)?n(_):(e.consume(_),_===92?j:b)}function j(_){return _===60||_===62||_===92?(e.consume(_),b):b(_)}function k(_){return!p&&(_===null||_===41||hn(_))?(e.exit("chunkString"),e.exit(d),e.exit(c),e.exit(a),t(_)):p999||b===null||b===91||b===93&&!m||b===94&&!d&&"_hiddenFootnoteSupport"in c.parser.constructs?n(b):b===93?(e.exit(o),e.enter(l),e.consume(b),e.exit(l),e.exit(a),t):Ye(b)?(e.enter("lineEnding"),e.consume(b),e.exit("lineEnding"),p):(e.enter("chunkString",{contentType:"string"}),x(b))}function x(b){return b===null||b===91||b===93||Ye(b)||d++>999?(e.exit("chunkString"),p(b)):(e.consume(b),m||(m=!Et(b)),b===92?y:x)}function y(b){return b===91||b===92||b===93?(e.consume(b),d++,x):x(b)}}function jj(e,t,n,a,l,o){let c;return d;function d(y){return y===34||y===39||y===40?(e.enter(a),e.enter(l),e.consume(y),e.exit(l),c=y===40?41:y,m):n(y)}function m(y){return y===c?(e.enter(l),e.consume(y),e.exit(l),e.exit(a),t):(e.enter(o),f(y))}function f(y){return y===c?(e.exit(o),m(c)):y===null?n(y):Ye(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),St(e,f,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),p(y))}function p(y){return y===c||y===null||Ye(y)?(e.exit("chunkString"),f(y)):(e.consume(y),y===92?x:p)}function x(y){return y===c||y===92?(e.consume(y),p):p(y)}}function cu(e,t){let n;return a;function a(l){return Ye(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),n=!0,a):Et(l)?St(e,a,n?"linePrefix":"lineSuffix")(l):t(l)}}const nR={name:"definition",tokenize:aR},rR={partial:!0,tokenize:sR};function aR(e,t,n){const a=this;let l;return o;function o(b){return e.enter("definition"),c(b)}function c(b){return wj.call(a,e,d,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(b)}function d(b){return l=Ia(a.sliceSerialize(a.events[a.events.length-1][1]).slice(1,-1)),b===58?(e.enter("definitionMarker"),e.consume(b),e.exit("definitionMarker"),m):n(b)}function m(b){return hn(b)?cu(e,f)(b):f(b)}function f(b){return bj(e,p,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(b)}function p(b){return e.attempt(rR,x,x)(b)}function x(b){return Et(b)?St(e,y,"whitespace")(b):y(b)}function y(b){return b===null||Ye(b)?(e.exit("definition"),a.parser.defined.push(l),t(b)):n(b)}}function sR(e,t,n){return a;function a(d){return hn(d)?cu(e,l)(d):n(d)}function l(d){return jj(e,o,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(d)}function o(d){return Et(d)?St(e,c,"whitespace")(d):c(d)}function c(d){return d===null||Ye(d)?t(d):n(d)}}const lR={name:"hardBreakEscape",tokenize:iR};function iR(e,t,n){return a;function a(o){return e.enter("hardBreakEscape"),e.consume(o),l}function l(o){return Ye(o)?(e.exit("hardBreakEscape"),t(o)):n(o)}}const oR={name:"headingAtx",resolve:cR,tokenize:uR};function cR(e,t){let n=e.length-2,a=3,l,o;return e[a][1].type==="whitespace"&&(a+=2),n-2>a&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(a===n-1||n-4>a&&e[n-2][1].type==="whitespace")&&(n-=a+1===n?2:4),n>a&&(l={type:"atxHeadingText",start:e[a][1].start,end:e[n][1].end},o={type:"chunkText",start:e[a][1].start,end:e[n][1].end,contentType:"text"},ua(e,a,n-a+1,[["enter",l,t],["enter",o,t],["exit",o,t],["exit",l,t]])),e}function uR(e,t,n){let a=0;return l;function l(p){return e.enter("atxHeading"),o(p)}function o(p){return e.enter("atxHeadingSequence"),c(p)}function c(p){return p===35&&a++<6?(e.consume(p),c):p===null||hn(p)?(e.exit("atxHeadingSequence"),d(p)):n(p)}function d(p){return p===35?(e.enter("atxHeadingSequence"),m(p)):p===null||Ye(p)?(e.exit("atxHeading"),t(p)):Et(p)?St(e,d,"whitespace")(p):(e.enter("atxHeadingText"),f(p))}function m(p){return p===35?(e.consume(p),m):(e.exit("atxHeadingSequence"),d(p))}function f(p){return p===null||p===35||hn(p)?(e.exit("atxHeadingText"),d(p)):(e.consume(p),f)}}const dR=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Wb=["pre","script","style","textarea"],mR={concrete:!0,name:"htmlFlow",resolveTo:pR,tokenize:xR},hR={partial:!0,tokenize:vR},fR={partial:!0,tokenize:gR};function pR(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function xR(e,t,n){const a=this;let l,o,c,d,m;return f;function f(O){return p(O)}function p(O){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(O),x}function x(O){return O===33?(e.consume(O),y):O===47?(e.consume(O),o=!0,k):O===63?(e.consume(O),l=3,a.interrupt?t:P):Tr(O)?(e.consume(O),c=String.fromCharCode(O),S):n(O)}function y(O){return O===45?(e.consume(O),l=2,b):O===91?(e.consume(O),l=5,d=0,j):Tr(O)?(e.consume(O),l=4,a.interrupt?t:P):n(O)}function b(O){return O===45?(e.consume(O),a.interrupt?t:P):n(O)}function j(O){const Ne="CDATA[";return O===Ne.charCodeAt(d++)?(e.consume(O),d===Ne.length?a.interrupt?t:te:j):n(O)}function k(O){return Tr(O)?(e.consume(O),c=String.fromCharCode(O),S):n(O)}function S(O){if(O===null||O===47||O===62||hn(O)){const Ne=O===47,se=c.toLowerCase();return!Ne&&!o&&Wb.includes(se)?(l=1,a.interrupt?t(O):te(O)):dR.includes(c.toLowerCase())?(l=6,Ne?(e.consume(O),_):a.interrupt?t(O):te(O)):(l=7,a.interrupt&&!a.parser.lazy[a.now().line]?n(O):o?M(O):D(O))}return O===45||yr(O)?(e.consume(O),c+=String.fromCharCode(O),S):n(O)}function _(O){return O===62?(e.consume(O),a.interrupt?t:te):n(O)}function M(O){return Et(O)?(e.consume(O),M):I(O)}function D(O){return O===47?(e.consume(O),I):O===58||O===95||Tr(O)?(e.consume(O),z):Et(O)?(e.consume(O),D):I(O)}function z(O){return O===45||O===46||O===58||O===95||yr(O)?(e.consume(O),z):L(O)}function L(O){return O===61?(e.consume(O),E):Et(O)?(e.consume(O),L):D(O)}function E(O){return O===null||O===60||O===61||O===62||O===96?n(O):O===34||O===39?(e.consume(O),m=O,R):Et(O)?(e.consume(O),E):H(O)}function R(O){return O===m?(e.consume(O),m=null,$):O===null||Ye(O)?n(O):(e.consume(O),R)}function H(O){return O===null||O===34||O===39||O===47||O===60||O===61||O===62||O===96||hn(O)?L(O):(e.consume(O),H)}function $(O){return O===47||O===62||Et(O)?D(O):n(O)}function I(O){return O===62?(e.consume(O),G):n(O)}function G(O){return O===null||Ye(O)?te(O):Et(O)?(e.consume(O),G):n(O)}function te(O){return O===45&&l===2?(e.consume(O),U):O===60&&l===1?(e.consume(O),q):O===62&&l===4?(e.consume(O),je):O===63&&l===3?(e.consume(O),P):O===93&&l===5?(e.consume(O),oe):Ye(O)&&(l===6||l===7)?(e.exit("htmlFlowData"),e.check(hR,Z,we)(O)):O===null||Ye(O)?(e.exit("htmlFlowData"),we(O)):(e.consume(O),te)}function we(O){return e.check(fR,J,Z)(O)}function J(O){return e.enter("lineEnding"),e.consume(O),e.exit("lineEnding"),ae}function ae(O){return O===null||Ye(O)?we(O):(e.enter("htmlFlowData"),te(O))}function U(O){return O===45?(e.consume(O),P):te(O)}function q(O){return O===47?(e.consume(O),c="",W):te(O)}function W(O){if(O===62){const Ne=c.toLowerCase();return Wb.includes(Ne)?(e.consume(O),je):te(O)}return Tr(O)&&c.length<8?(e.consume(O),c+=String.fromCharCode(O),W):te(O)}function oe(O){return O===93?(e.consume(O),P):te(O)}function P(O){return O===62?(e.consume(O),je):O===45&&l===2?(e.consume(O),P):te(O)}function je(O){return O===null||Ye(O)?(e.exit("htmlFlowData"),Z(O)):(e.consume(O),je)}function Z(O){return e.exit("htmlFlow"),t(O)}}function gR(e,t,n){const a=this;return l;function l(c){return Ye(c)?(e.enter("lineEnding"),e.consume(c),e.exit("lineEnding"),o):n(c)}function o(c){return a.parser.lazy[a.now().line]?n(c):t(c)}}function vR(e,t,n){return a;function a(l){return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),e.attempt(Uu,t,n)}}const yR={name:"htmlText",tokenize:bR};function bR(e,t,n){const a=this;let l,o,c;return d;function d(P){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(P),m}function m(P){return P===33?(e.consume(P),f):P===47?(e.consume(P),L):P===63?(e.consume(P),D):Tr(P)?(e.consume(P),H):n(P)}function f(P){return P===45?(e.consume(P),p):P===91?(e.consume(P),o=0,j):Tr(P)?(e.consume(P),M):n(P)}function p(P){return P===45?(e.consume(P),b):n(P)}function x(P){return P===null?n(P):P===45?(e.consume(P),y):Ye(P)?(c=x,q(P)):(e.consume(P),x)}function y(P){return P===45?(e.consume(P),b):x(P)}function b(P){return P===62?U(P):P===45?y(P):x(P)}function j(P){const je="CDATA[";return P===je.charCodeAt(o++)?(e.consume(P),o===je.length?k:j):n(P)}function k(P){return P===null?n(P):P===93?(e.consume(P),S):Ye(P)?(c=k,q(P)):(e.consume(P),k)}function S(P){return P===93?(e.consume(P),_):k(P)}function _(P){return P===62?U(P):P===93?(e.consume(P),_):k(P)}function M(P){return P===null||P===62?U(P):Ye(P)?(c=M,q(P)):(e.consume(P),M)}function D(P){return P===null?n(P):P===63?(e.consume(P),z):Ye(P)?(c=D,q(P)):(e.consume(P),D)}function z(P){return P===62?U(P):D(P)}function L(P){return Tr(P)?(e.consume(P),E):n(P)}function E(P){return P===45||yr(P)?(e.consume(P),E):R(P)}function R(P){return Ye(P)?(c=R,q(P)):Et(P)?(e.consume(P),R):U(P)}function H(P){return P===45||yr(P)?(e.consume(P),H):P===47||P===62||hn(P)?$(P):n(P)}function $(P){return P===47?(e.consume(P),U):P===58||P===95||Tr(P)?(e.consume(P),I):Ye(P)?(c=$,q(P)):Et(P)?(e.consume(P),$):U(P)}function I(P){return P===45||P===46||P===58||P===95||yr(P)?(e.consume(P),I):G(P)}function G(P){return P===61?(e.consume(P),te):Ye(P)?(c=G,q(P)):Et(P)?(e.consume(P),G):$(P)}function te(P){return P===null||P===60||P===61||P===62||P===96?n(P):P===34||P===39?(e.consume(P),l=P,we):Ye(P)?(c=te,q(P)):Et(P)?(e.consume(P),te):(e.consume(P),J)}function we(P){return P===l?(e.consume(P),l=void 0,ae):P===null?n(P):Ye(P)?(c=we,q(P)):(e.consume(P),we)}function J(P){return P===null||P===34||P===39||P===60||P===61||P===96?n(P):P===47||P===62||hn(P)?$(P):(e.consume(P),J)}function ae(P){return P===47||P===62||hn(P)?$(P):n(P)}function U(P){return P===62?(e.consume(P),e.exit("htmlTextData"),e.exit("htmlText"),t):n(P)}function q(P){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(P),e.exit("lineEnding"),W}function W(P){return Et(P)?St(e,oe,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(P):oe(P)}function oe(P){return e.enter("htmlTextData"),c(P)}}const W1={name:"labelEnd",resolveAll:SR,resolveTo:kR,tokenize:CR},wR={tokenize:TR},jR={tokenize:_R},NR={tokenize:MR};function SR(e){let t=-1;const n=[];for(;++t=3&&(f===null||Ye(f))?(e.exit("thematicBreak"),t(f)):n(f)}function m(f){return f===l?(e.consume(f),a++,m):(e.exit("thematicBreakSequence"),Et(f)?St(e,d,"whitespace")(f):d(f))}}const Ir={continuation:{tokenize:FR},exit:qR,name:"list",tokenize:PR},BR={partial:!0,tokenize:HR},LR={partial:!0,tokenize:IR};function PR(e,t,n){const a=this,l=a.events[a.events.length-1];let o=l&&l[1].type==="linePrefix"?l[2].sliceSerialize(l[1],!0).length:0,c=0;return d;function d(b){const j=a.containerState.type||(b===42||b===43||b===45?"listUnordered":"listOrdered");if(j==="listUnordered"?!a.containerState.marker||b===a.containerState.marker:Bx(b)){if(a.containerState.type||(a.containerState.type=j,e.enter(j,{_container:!0})),j==="listUnordered")return e.enter("listItemPrefix"),b===42||b===45?e.check(G0,n,f)(b):f(b);if(!a.interrupt||b===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),m(b)}return n(b)}function m(b){return Bx(b)&&++c<10?(e.consume(b),m):(!a.interrupt||c<2)&&(a.containerState.marker?b===a.containerState.marker:b===41||b===46)?(e.exit("listItemValue"),f(b)):n(b)}function f(b){return e.enter("listItemMarker"),e.consume(b),e.exit("listItemMarker"),a.containerState.marker=a.containerState.marker||b,e.check(Uu,a.interrupt?n:p,e.attempt(BR,y,x))}function p(b){return a.containerState.initialBlankLine=!0,o++,y(b)}function x(b){return Et(b)?(e.enter("listItemPrefixWhitespace"),e.consume(b),e.exit("listItemPrefixWhitespace"),y):n(b)}function y(b){return a.containerState.size=o+a.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(b)}}function FR(e,t,n){const a=this;return a.containerState._closeFlow=void 0,e.check(Uu,l,o);function l(d){return a.containerState.furtherBlankLines=a.containerState.furtherBlankLines||a.containerState.initialBlankLine,St(e,t,"listItemIndent",a.containerState.size+1)(d)}function o(d){return a.containerState.furtherBlankLines||!Et(d)?(a.containerState.furtherBlankLines=void 0,a.containerState.initialBlankLine=void 0,c(d)):(a.containerState.furtherBlankLines=void 0,a.containerState.initialBlankLine=void 0,e.attempt(LR,t,c)(d))}function c(d){return a.containerState._closeFlow=!0,a.interrupt=void 0,St(e,e.attempt(Ir,t,n),"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(d)}}function IR(e,t,n){const a=this;return St(e,l,"listItemIndent",a.containerState.size+1);function l(o){const c=a.events[a.events.length-1];return c&&c[1].type==="listItemIndent"&&c[2].sliceSerialize(c[1],!0).length===a.containerState.size?t(o):n(o)}}function qR(e){e.exit(this.containerState.type)}function HR(e,t,n){const a=this;return St(e,l,"listItemPrefixWhitespace",a.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function l(o){const c=a.events[a.events.length-1];return!Et(o)&&c&&c[1].type==="listItemPrefixWhitespace"?t(o):n(o)}}const Xb={name:"setextUnderline",resolveTo:UR,tokenize:$R};function UR(e,t){let n=e.length,a,l,o;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){a=n;break}e[n][1].type==="paragraph"&&(l=n)}else e[n][1].type==="content"&&e.splice(n,1),!o&&e[n][1].type==="definition"&&(o=n);const c={type:"setextHeading",start:{...e[a][1].start},end:{...e[e.length-1][1].end}};return e[l][1].type="setextHeadingText",o?(e.splice(l,0,["enter",c,t]),e.splice(o+1,0,["exit",e[a][1],t]),e[a][1].end={...e[o][1].end}):e[a][1]=c,e.push(["exit",c,t]),e}function $R(e,t,n){const a=this;let l;return o;function o(f){let p=a.events.length,x;for(;p--;)if(a.events[p][1].type!=="lineEnding"&&a.events[p][1].type!=="linePrefix"&&a.events[p][1].type!=="content"){x=a.events[p][1].type==="paragraph";break}return!a.parser.lazy[a.now().line]&&(a.interrupt||x)?(e.enter("setextHeadingLine"),l=f,c(f)):n(f)}function c(f){return e.enter("setextHeadingLineSequence"),d(f)}function d(f){return f===l?(e.consume(f),d):(e.exit("setextHeadingLineSequence"),Et(f)?St(e,m,"lineSuffix")(f):m(f))}function m(f){return f===null||Ye(f)?(e.exit("setextHeadingLine"),t(f)):n(f)}}const VR={tokenize:GR};function GR(e){const t=this,n=e.attempt(Uu,a,e.attempt(this.parser.constructs.flowInitial,l,St(e,e.attempt(this.parser.constructs.flow,l,e.attempt(QO,l)),"linePrefix")));return n;function a(o){if(o===null){e.consume(o);return}return e.enter("lineEndingBlank"),e.consume(o),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function l(o){if(o===null){e.consume(o);return}return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const YR={resolveAll:Sj()},WR=Nj("string"),XR=Nj("text");function Nj(e){return{resolveAll:Sj(e==="text"?KR:void 0),tokenize:t};function t(n){const a=this,l=this.parser.constructs[e],o=n.attempt(l,c,d);return c;function c(p){return f(p)?o(p):d(p)}function d(p){if(p===null){n.consume(p);return}return n.enter("data"),n.consume(p),m}function m(p){return f(p)?(n.exit("data"),o(p)):(n.consume(p),m)}function f(p){if(p===null)return!0;const x=l[p];let y=-1;if(x)for(;++y-1){const d=c[0];typeof d=="string"?c[0]=d.slice(a):c.shift()}o>0&&c.push(e[l].slice(0,o))}return c}function cB(e,t){let n=-1;const a=[];let l;for(;++n0){const Qn=Oe.tokenStack[Oe.tokenStack.length-1];(Qn[1]||Qb).call(Oe,void 0,Qn[0])}for(ge.position={start:gl(K.length>0?K[0][1].start:{line:1,column:1,offset:0}),end:gl(K.length>0?K[K.length-2][1].end:{line:1,column:1,offset:0})},kt=-1;++kt1?"-"+d:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(c)}]};e.patch(t,m);const f={type:"element",tagName:"sup",properties:{},children:[m]};return e.patch(t,f),e.applyData(t,f)}function CB(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function TB(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function Tj(e,t){const n=t.referenceType;let a="]";if(n==="collapsed"?a+="[]":n==="full"&&(a+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+a}];const l=e.all(t),o=l[0];o&&o.type==="text"?o.value="["+o.value:l.unshift({type:"text",value:"["});const c=l[l.length-1];return c&&c.type==="text"?c.value+=a:l.push({type:"text",value:a}),l}function _B(e,t){const n=String(t.identifier).toUpperCase(),a=e.definitionById.get(n);if(!a)return Tj(e,t);const l={src:Zo(a.url||""),alt:t.alt};a.title!==null&&a.title!==void 0&&(l.title=a.title);const o={type:"element",tagName:"img",properties:l,children:[]};return e.patch(t,o),e.applyData(t,o)}function MB(e,t){const n={src:Zo(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const a={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,a),e.applyData(t,a)}function EB(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const a={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,a),e.applyData(t,a)}function AB(e,t){const n=String(t.identifier).toUpperCase(),a=e.definitionById.get(n);if(!a)return Tj(e,t);const l={href:Zo(a.url||"")};a.title!==null&&a.title!==void 0&&(l.title=a.title);const o={type:"element",tagName:"a",properties:l,children:e.all(t)};return e.patch(t,o),e.applyData(t,o)}function DB(e,t){const n={href:Zo(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const a={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function zB(e,t,n){const a=e.all(t),l=n?OB(n):_j(t),o={},c=[];if(typeof t.checked=="boolean"){const p=a[0];let x;p&&p.type==="element"&&p.tagName==="p"?x=p:(x={type:"element",tagName:"p",properties:{},children:[]},a.unshift(x)),x.children.length>0&&x.children.unshift({type:"text",value:" "}),x.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),o.className=["task-list-item"]}let d=-1;for(;++d1}function RB(e,t){const n={},a=e.all(t);let l=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++l0){const c={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},d=H1(t.children[1]),m=ij(t.children[t.children.length-1]);d&&m&&(c.position={start:d,end:m}),l.push(c)}const o={type:"element",tagName:"table",properties:{},children:e.wrap(l,!0)};return e.patch(t,o),e.applyData(t,o)}function IB(e,t,n){const a=n?n.children:void 0,o=(a?a.indexOf(t):1)===0?"th":"td",c=n&&n.type==="table"?n.align:void 0,d=c?c.length:t.children.length;let m=-1;const f=[];for(;++m0,!0),a[0]),l=a.index+a[0].length,a=n.exec(t);return o.push(e3(t.slice(l),l>0,!1)),o.join("")}function e3(e,t,n){let a=0,l=e.length;if(t){let o=e.codePointAt(a);for(;o===Zb||o===Jb;)a++,o=e.codePointAt(a)}if(n){let o=e.codePointAt(l-1);for(;o===Zb||o===Jb;)l--,o=e.codePointAt(l-1)}return l>a?e.slice(a,l):""}function UB(e,t){const n={type:"text",value:HB(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function $B(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const VB={blockquote:bB,break:wB,code:jB,delete:NB,emphasis:SB,footnoteReference:kB,heading:CB,html:TB,imageReference:_B,image:MB,inlineCode:EB,linkReference:AB,link:DB,listItem:zB,list:RB,paragraph:BB,root:LB,strong:PB,table:FB,tableCell:qB,tableRow:IB,text:UB,thematicBreak:$B,toml:j0,yaml:j0,definition:j0,footnoteDefinition:j0};function j0(){}const Mj=-1,qm=0,uu=1,om=2,X1=3,K1=4,Q1=5,Z1=6,Ej=7,Aj=8,t3=typeof self=="object"?self:globalThis,GB=(e,t)=>{const n=(l,o)=>(e.set(o,l),l),a=l=>{if(e.has(l))return e.get(l);const[o,c]=t[l];switch(o){case qm:case Mj:return n(c,l);case uu:{const d=n([],l);for(const m of c)d.push(a(m));return d}case om:{const d=n({},l);for(const[m,f]of c)d[a(m)]=a(f);return d}case X1:return n(new Date(c),l);case K1:{const{source:d,flags:m}=c;return n(new RegExp(d,m),l)}case Q1:{const d=n(new Map,l);for(const[m,f]of c)d.set(a(m),a(f));return d}case Z1:{const d=n(new Set,l);for(const m of c)d.add(a(m));return d}case Ej:{const{name:d,message:m}=c;return n(new t3[d](m),l)}case Aj:return n(BigInt(c),l);case"BigInt":return n(Object(BigInt(c)),l);case"ArrayBuffer":return n(new Uint8Array(c).buffer,c);case"DataView":{const{buffer:d}=new Uint8Array(c);return n(new DataView(d),c)}}return n(new t3[o](c),l)};return a},n3=e=>GB(new Map,e)(0),vo="",{toString:YB}={},{keys:WB}=Object,tu=e=>{const t=typeof e;if(t!=="object"||!e)return[qm,t];const n=YB.call(e).slice(8,-1);switch(n){case"Array":return[uu,vo];case"Object":return[om,vo];case"Date":return[X1,vo];case"RegExp":return[K1,vo];case"Map":return[Q1,vo];case"Set":return[Z1,vo];case"DataView":return[uu,n]}return n.includes("Array")?[uu,n]:n.includes("Error")?[Ej,n]:[om,n]},N0=([e,t])=>e===qm&&(t==="function"||t==="symbol"),XB=(e,t,n,a)=>{const l=(c,d)=>{const m=a.push(c)-1;return n.set(d,m),m},o=c=>{if(n.has(c))return n.get(c);let[d,m]=tu(c);switch(d){case qm:{let p=c;switch(m){case"bigint":d=Aj,p=c.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+m);p=null;break;case"undefined":return l([Mj],c)}return l([d,p],c)}case uu:{if(m){let y=c;return m==="DataView"?y=new Uint8Array(c.buffer):m==="ArrayBuffer"&&(y=new Uint8Array(c)),l([m,[...y]],c)}const p=[],x=l([d,p],c);for(const y of c)p.push(o(y));return x}case om:{if(m)switch(m){case"BigInt":return l([m,c.toString()],c);case"Boolean":case"Number":case"String":return l([m,c.valueOf()],c)}if(t&&"toJSON"in c)return o(c.toJSON());const p=[],x=l([d,p],c);for(const y of WB(c))(e||!N0(tu(c[y])))&&p.push([o(y),o(c[y])]);return x}case X1:return l([d,c.toISOString()],c);case K1:{const{source:p,flags:x}=c;return l([d,{source:p,flags:x}],c)}case Q1:{const p=[],x=l([d,p],c);for(const[y,b]of c)(e||!(N0(tu(y))||N0(tu(b))))&&p.push([o(y),o(b)]);return x}case Z1:{const p=[],x=l([d,p],c);for(const y of c)(e||!N0(tu(y)))&&p.push(o(y));return x}}const{message:f}=c;return l([d,{name:m,message:f}],c)};return o},r3=(e,{json:t,lossy:n}={})=>{const a=[];return XB(!(t||n),!!t,new Map,a)(e),a},cm=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?n3(r3(e,t)):structuredClone(e):(e,t)=>n3(r3(e,t));function KB(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function QB(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function ZB(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||KB,a=e.options.footnoteBackLabel||QB,l=e.options.footnoteLabel||"Footnotes",o=e.options.footnoteLabelTagName||"h2",c=e.options.footnoteLabelProperties||{className:["sr-only"]},d=[];let m=-1;for(;++m0&&j.push({type:"text",value:" "});let M=typeof n=="string"?n:n(m,b);typeof M=="string"&&(M={type:"text",value:M}),j.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+y+(b>1?"-"+b:""),dataFootnoteBackref:"",ariaLabel:typeof a=="string"?a:a(m,b),className:["data-footnote-backref"]},children:Array.isArray(M)?M:[M]})}const S=p[p.length-1];if(S&&S.type==="element"&&S.tagName==="p"){const M=S.children[S.children.length-1];M&&M.type==="text"?M.value+=" ":S.children.push({type:"text",value:" "}),S.children.push(...j)}else p.push(...j);const _={type:"element",tagName:"li",properties:{id:t+"fn-"+y},children:e.wrap(p,!0)};e.patch(f,_),d.push(_)}if(d.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:o,properties:{...cm(c),id:"footnote-label"},children:[{type:"text",value:l}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(d,!0)},{type:"text",value:` +`}]}}const $u=(function(e){if(e==null)return nL;if(typeof e=="function")return Hm(e);if(typeof e=="object")return Array.isArray(e)?JB(e):eL(e);if(typeof e=="string")return tL(e);throw new Error("Expected function, string, or object as test")});function JB(e){const t=[];let n=-1;for(;++n":""))+")"})}return y;function y(){let b=Dj,j,k,S;if((!t||o(m,f,p[p.length-1]||void 0))&&(b=sL(n(m,p)),b[0]===Px))return b;if("children"in m&&m.children){const _=m;if(_.children&&b[0]!==zj)for(k=(a?_.children.length:-1)+c,S=p.concat(_);k>-1&&k<_.children.length;){const M=_.children[k];if(j=d(M,k,S)(),j[0]===Px)return j;k=typeof j[1]=="number"?j[1]:k+c}}return b}}}function sL(e){return Array.isArray(e)?e:typeof e=="number"?[aL,e]:e==null?Dj:[e]}function eg(e,t,n,a){let l,o,c;typeof t=="function"&&typeof n!="function"?(o=void 0,c=t,l=n):(o=t,c=n,l=a),J1(e,o,d,l);function d(m,f){const p=f[f.length-1],x=p?p.children.indexOf(m):void 0;return c(m,x,p)}}const Fx={}.hasOwnProperty,lL={};function iL(e,t){const n=t||lL,a=new Map,l=new Map,o=new Map,c={...VB,...n.handlers},d={all:f,applyData:cL,definitionById:a,footnoteById:l,footnoteCounts:o,footnoteOrder:[],handlers:c,one:m,options:n,patch:oL,wrap:dL};return eg(e,function(p){if(p.type==="definition"||p.type==="footnoteDefinition"){const x=p.type==="definition"?a:l,y=String(p.identifier).toUpperCase();x.has(y)||x.set(y,p)}}),d;function m(p,x){const y=p.type,b=d.handlers[y];if(Fx.call(d.handlers,y)&&b)return b(d,p,x);if(d.options.passThrough&&d.options.passThrough.includes(y)){if("children"in p){const{children:k,...S}=p,_=cm(S);return _.children=d.all(p),_}return cm(p)}return(d.options.unknownHandler||uL)(d,p,x)}function f(p){const x=[];if("children"in p){const y=p.children;let b=-1;for(;++b0&&n.push({type:"text",value:` +`}),n}function a3(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function s3(e,t){const n=iL(e,t),a=n.one(e,void 0),l=ZB(n),o=Array.isArray(a)?{type:"root",children:a}:a||{type:"root",children:[]};return l&&o.children.push({type:"text",value:` +`},l),o}function mL(e,t){return e&&"run"in e?async function(n,a){const l=s3(n,{file:a,...t});await e.run(l,a)}:function(n,a){return s3(n,{file:a,...e||t})}}function l3(e){if(e)throw e}var Rp,i3;function hL(){if(i3)return Rp;i3=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,a=Object.getOwnPropertyDescriptor,l=function(f){return typeof Array.isArray=="function"?Array.isArray(f):t.call(f)==="[object Array]"},o=function(f){if(!f||t.call(f)!=="[object Object]")return!1;var p=e.call(f,"constructor"),x=f.constructor&&f.constructor.prototype&&e.call(f.constructor.prototype,"isPrototypeOf");if(f.constructor&&!p&&!x)return!1;var y;for(y in f);return typeof y>"u"||e.call(f,y)},c=function(f,p){n&&p.name==="__proto__"?n(f,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):f[p.name]=p.newValue},d=function(f,p){if(p==="__proto__")if(e.call(f,p)){if(a)return a(f,p).value}else return;return f[p]};return Rp=function m(){var f,p,x,y,b,j,k=arguments[0],S=1,_=arguments.length,M=!1;for(typeof k=="boolean"&&(M=k,k=arguments[1]||{},S=2),(k==null||typeof k!="object"&&typeof k!="function")&&(k={});S<_;++S)if(f=arguments[S],f!=null)for(p in f)x=d(k,p),y=d(f,p),k!==y&&(M&&y&&(o(y)||(b=l(y)))?(b?(b=!1,j=x&&l(x)?x:[]):j=x&&o(x)?x:{},c(k,{name:p,newValue:m(M,j,y)})):typeof y<"u"&&c(k,{name:p,newValue:y}));return k},Rp}var fL=hL();const Bp=M5(fL);function Ix(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function pL(){const e=[],t={run:n,use:a};return t;function n(...l){let o=-1;const c=l.pop();if(typeof c!="function")throw new TypeError("Expected function as last argument, not "+c);d(null,...l);function d(m,...f){const p=e[++o];let x=-1;if(m){c(m);return}for(;++xc.length;let m;d&&c.push(l);try{m=e.apply(this,c)}catch(f){const p=f;if(d&&n)throw p;return l(p)}d||(m&&m.then&&typeof m.then=="function"?m.then(o,l):m instanceof Error?l(m):o(m))}function l(c,...d){n||(n=!0,t(c,...d))}function o(c){l(null,c)}}const Xa={basename:gL,dirname:vL,extname:yL,join:bL,sep:"/"};function gL(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Vu(e);let n=0,a=-1,l=e.length,o;if(t===void 0||t.length===0||t.length>e.length){for(;l--;)if(e.codePointAt(l)===47){if(o){n=l+1;break}}else a<0&&(o=!0,a=l+1);return a<0?"":e.slice(n,a)}if(t===e)return"";let c=-1,d=t.length-1;for(;l--;)if(e.codePointAt(l)===47){if(o){n=l+1;break}}else c<0&&(o=!0,c=l+1),d>-1&&(e.codePointAt(l)===t.codePointAt(d--)?d<0&&(a=l):(d=-1,a=c));return n===a?a=c:a<0&&(a=e.length),e.slice(n,a)}function vL(e){if(Vu(e),e.length===0)return".";let t=-1,n=e.length,a;for(;--n;)if(e.codePointAt(n)===47){if(a){t=n;break}}else a||(a=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function yL(e){Vu(e);let t=e.length,n=-1,a=0,l=-1,o=0,c;for(;t--;){const d=e.codePointAt(t);if(d===47){if(c){a=t+1;break}continue}n<0&&(c=!0,n=t+1),d===46?l<0?l=t:o!==1&&(o=1):l>-1&&(o=-1)}return l<0||n<0||o===0||o===1&&l===n-1&&l===a+1?"":e.slice(l,n)}function bL(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function jL(e,t){let n="",a=0,l=-1,o=0,c=-1,d,m;for(;++c<=e.length;){if(c2){if(m=n.lastIndexOf("/"),m!==n.length-1){m<0?(n="",a=0):(n=n.slice(0,m),a=n.length-1-n.lastIndexOf("/")),l=c,o=0;continue}}else if(n.length>0){n="",a=0,l=c,o=0;continue}}t&&(n=n.length>0?n+"/..":"..",a=2)}else n.length>0?n+="/"+e.slice(l+1,c):n=e.slice(l+1,c),a=c-l-1;l=c,o=0}else d===46&&o>-1?o++:o=-1}return n}function Vu(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const NL={cwd:SL};function SL(){return"/"}function qx(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function kL(e){if(typeof e=="string")e=new URL(e);else if(!qx(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return CL(e)}function CL(e){if(e.hostname!==""){const a=new TypeError('File URL host must be "localhost" or empty on darwin');throw a.code="ERR_INVALID_FILE_URL_HOST",a}const t=e.pathname;let n=-1;for(;++n0){let[b,...j]=p;const k=a[y][1];Ix(k)&&Ix(b)&&(b=Bp(!0,k,b)),a[y]=[f,b,...j]}}}}const EL=new tg().freeze();function Ip(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function qp(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Hp(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function c3(e){if(!Ix(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function u3(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function S0(e){return AL(e)?e:new Oj(e)}function AL(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function DL(e){return typeof e=="string"||zL(e)}function zL(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const OL="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",d3=[],m3={allowDangerousHtml:!0},RL=/^(https?|ircs?|mailto|xmpp)$/i,BL=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"className",id:"remove-classname"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function LL(e){const t=PL(e),n=FL(e);return IL(t.runSync(t.parse(n),n),e)}function PL(e){const t=e.rehypePlugins||d3,n=e.remarkPlugins||d3,a=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...m3}:m3;return EL().use(yB).use(n).use(mL,a).use(t)}function FL(e){const t=e.children||"",n=new Oj;return typeof t=="string"&&(n.value=t),n}function IL(e,t){const n=t.allowedElements,a=t.allowElement,l=t.components,o=t.disallowedElements,c=t.skipHtml,d=t.unwrapDisallowed,m=t.urlTransform||qL;for(const p of BL)Object.hasOwn(t,p.from)&&(""+p.from+(p.to?"use `"+p.to+"` instead":"remove it")+OL+p.id,void 0);return eg(e,f),nO(e,{Fragment:r.Fragment,components:l,ignoreInvalidStyle:!0,jsx:r.jsx,jsxs:r.jsxs,passKeys:!0,passNode:!0});function f(p,x,y){if(p.type==="raw"&&y&&typeof x=="number")return c?y.children.splice(x,1):y.children[x]={type:"text",value:p.value},x;if(p.type==="element"){let b;for(b in Dp)if(Object.hasOwn(Dp,b)&&Object.hasOwn(p.properties,b)){const j=p.properties[b],k=Dp[b];(k===null||k.includes(p.tagName))&&(p.properties[b]=m(String(j||""),b,p))}}if(p.type==="element"){let b=n?!n.includes(p.tagName):o?o.includes(p.tagName):!1;if(!b&&a&&typeof x=="number"&&(b=!a(p,x,y)),b&&y&&typeof x=="number")return d&&p.children?y.children.splice(x,1,...p.children):y.children.splice(x,1),x}}}function qL(e){const t=e.indexOf(":"),n=e.indexOf("?"),a=e.indexOf("#"),l=e.indexOf("/");return t===-1||l!==-1&&t>l||n!==-1&&t>n||a!==-1&&t>a||RL.test(e.slice(0,t))?e:""}function h3(e,t){const n=String(e);if(typeof t!="string")throw new TypeError("Expected character");let a=0,l=n.indexOf(t);for(;l!==-1;)a++,l=n.indexOf(t,l+t.length);return a}function HL(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function UL(e,t,n){const l=$u((n||{}).ignore||[]),o=$L(t);let c=-1;for(;++c0?{type:"text",value:E}:void 0),E===!1?y.lastIndex=z+1:(j!==z&&M.push({type:"text",value:f.value.slice(j,z)}),Array.isArray(E)?M.push(...E):E&&M.push(E),j=z+D[0].length,_=!0),!y.global)break;D=y.exec(f.value)}return _?(j?\]}]+$/.exec(e);if(!t)return[e,void 0];e=e.slice(0,t.index);let n=t[0],a=n.indexOf(")");const l=h3(e,"(");let o=h3(e,")");for(;a!==-1&&l>o;)e+=n.slice(0,a+1),n=n.slice(a+1),a=n.indexOf(")"),o++;return[e,n]}function Rj(e,t){const n=e.input.charCodeAt(e.index-1);return(e.index===0||gi(n)||Fm(n))&&(!t||n!==47)}Bj.peek=hP;function sP(){this.buffer()}function lP(e){this.enter({type:"footnoteReference",identifier:"",label:""},e)}function iP(){this.buffer()}function oP(e){this.enter({type:"footnoteDefinition",identifier:"",label:"",children:[]},e)}function cP(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ia(this.sliceSerialize(e)).toLowerCase(),n.label=t}function uP(e){this.exit(e)}function dP(e){const t=this.resume(),n=this.stack[this.stack.length-1];n.type,n.identifier=Ia(this.sliceSerialize(e)).toLowerCase(),n.label=t}function mP(e){this.exit(e)}function hP(){return"["}function Bj(e,t,n,a){const l=n.createTracker(a);let o=l.move("[^");const c=n.enter("footnoteReference"),d=n.enter("reference");return o+=l.move(n.safe(n.associationId(e),{after:"]",before:o})),d(),c(),o+=l.move("]"),o}function fP(){return{enter:{gfmFootnoteCallString:sP,gfmFootnoteCall:lP,gfmFootnoteDefinitionLabelString:iP,gfmFootnoteDefinition:oP},exit:{gfmFootnoteCallString:cP,gfmFootnoteCall:uP,gfmFootnoteDefinitionLabelString:dP,gfmFootnoteDefinition:mP}}}function pP(e){let t=!1;return e&&e.firstLineBlank&&(t=!0),{handlers:{footnoteDefinition:n,footnoteReference:Bj},unsafe:[{character:"[",inConstruct:["label","phrasing","reference"]}]};function n(a,l,o,c){const d=o.createTracker(c);let m=d.move("[^");const f=o.enter("footnoteDefinition"),p=o.enter("label");return m+=d.move(o.safe(o.associationId(a),{before:m,after:"]"})),p(),m+=d.move("]:"),a.children&&a.children.length>0&&(d.shift(4),m+=d.move((t?` +`:" ")+o.indentLines(o.containerFlow(a,d.current()),t?Lj:xP))),f(),m}}function xP(e,t,n){return t===0?e:Lj(e,t,n)}function Lj(e,t,n){return(n?"":" ")+e}const gP=["autolink","destinationLiteral","destinationRaw","reference","titleQuote","titleApostrophe"];Pj.peek=jP;function vP(){return{canContainEols:["delete"],enter:{strikethrough:bP},exit:{strikethrough:wP}}}function yP(){return{unsafe:[{character:"~",inConstruct:"phrasing",notInConstruct:gP}],handlers:{delete:Pj}}}function bP(e){this.enter({type:"delete",children:[]},e)}function wP(e){this.exit(e)}function Pj(e,t,n,a){const l=n.createTracker(a),o=n.enter("strikethrough");let c=l.move("~~");return c+=n.containerPhrasing(e,{...l.current(),before:c,after:"~"}),c+=l.move("~~"),o(),c}function jP(){return"~"}function NP(e){return e.length}function SP(e,t){const n=t||{},a=(n.align||[]).concat(),l=n.stringLength||NP,o=[],c=[],d=[],m=[];let f=0,p=-1;for(;++pf&&(f=e[p].length);++_m[_])&&(m[_]=D)}k.push(M)}c[p]=k,d[p]=S}let x=-1;if(typeof a=="object"&&"length"in a)for(;++xm[x]&&(m[x]=M),b[x]=M),y[x]=D}c.splice(1,0,y),d.splice(1,0,b),p=-1;const j=[];for(;++p "),o.shift(2);const c=n.indentLines(n.containerFlow(e,o.current()),TP);return l(),c}function TP(e,t,n){return">"+(n?"":" ")+e}function _P(e,t){return p3(e,t.inConstruct,!0)&&!p3(e,t.notInConstruct,!1)}function p3(e,t,n){if(typeof t=="string"&&(t=[t]),!t||t.length===0)return n;let a=-1;for(;++ac&&(c=o):o=1,l=a+t.length,a=n.indexOf(t,l);return c}function MP(e,t){return!!(t.options.fences===!1&&e.value&&!e.lang&&/[^ \r\n]/.test(e.value)&&!/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(e.value))}function EP(e){const t=e.options.fence||"`";if(t!=="`"&&t!=="~")throw new Error("Cannot serialize code with `"+t+"` for `options.fence`, expected `` ` `` or `~`");return t}function AP(e,t,n,a){const l=EP(n),o=e.value||"",c=l==="`"?"GraveAccent":"Tilde";if(MP(e,n)){const x=n.enter("codeIndented"),y=n.indentLines(o,DP);return x(),y}const d=n.createTracker(a),m=l.repeat(Math.max(Fj(o,l)+1,3)),f=n.enter("codeFenced");let p=d.move(m);if(e.lang){const x=n.enter(`codeFencedLang${c}`);p+=d.move(n.safe(e.lang,{before:p,after:" ",encode:["`"],...d.current()})),x()}if(e.lang&&e.meta){const x=n.enter(`codeFencedMeta${c}`);p+=d.move(" "),p+=d.move(n.safe(e.meta,{before:p,after:` +`,encode:["`"],...d.current()})),x()}return p+=d.move(` +`),o&&(p+=d.move(o+` +`)),p+=d.move(m),f(),p}function DP(e,t,n){return(n?"":" ")+e}function ng(e){const t=e.options.quote||'"';if(t!=='"'&&t!=="'")throw new Error("Cannot serialize title with `"+t+"` for `options.quote`, expected `\"`, or `'`");return t}function zP(e,t,n,a){const l=ng(n),o=l==='"'?"Quote":"Apostrophe",c=n.enter("definition");let d=n.enter("label");const m=n.createTracker(a);let f=m.move("[");return f+=m.move(n.safe(n.associationId(e),{before:f,after:"]",...m.current()})),f+=m.move("]: "),d(),!e.url||/[\0- \u007F]/.test(e.url)?(d=n.enter("destinationLiteral"),f+=m.move("<"),f+=m.move(n.safe(e.url,{before:f,after:">",...m.current()})),f+=m.move(">")):(d=n.enter("destinationRaw"),f+=m.move(n.safe(e.url,{before:f,after:e.title?" ":` +`,...m.current()}))),d(),e.title&&(d=n.enter(`title${o}`),f+=m.move(" "+l),f+=m.move(n.safe(e.title,{before:f,after:l,...m.current()})),f+=m.move(l),d()),c(),f}function OP(e){const t=e.options.emphasis||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize emphasis with `"+t+"` for `options.emphasis`, expected `*`, or `_`");return t}function yu(e){return"&#x"+e.toString(16).toUpperCase()+";"}function um(e,t,n){const a=Io(e),l=Io(t);return a===void 0?l===void 0?n==="_"?{inside:!0,outside:!0}:{inside:!1,outside:!1}:l===1?{inside:!0,outside:!0}:{inside:!1,outside:!0}:a===1?l===void 0?{inside:!1,outside:!1}:l===1?{inside:!0,outside:!0}:{inside:!1,outside:!1}:l===void 0?{inside:!1,outside:!1}:l===1?{inside:!0,outside:!1}:{inside:!1,outside:!1}}Ij.peek=RP;function Ij(e,t,n,a){const l=OP(n),o=n.enter("emphasis"),c=n.createTracker(a),d=c.move(l);let m=c.move(n.containerPhrasing(e,{after:l,before:d,...c.current()}));const f=m.charCodeAt(0),p=um(a.before.charCodeAt(a.before.length-1),f,l);p.inside&&(m=yu(f)+m.slice(1));const x=m.charCodeAt(m.length-1),y=um(a.after.charCodeAt(0),x,l);y.inside&&(m=m.slice(0,-1)+yu(x));const b=c.move(l);return o(),n.attentionEncodeSurroundingInfo={after:y.outside,before:p.outside},d+m+b}function RP(e,t,n){return n.options.emphasis||"*"}function BP(e,t){let n=!1;return eg(e,function(a){if("value"in a&&/\r?\n|\r/.test(a.value)||a.type==="break")return n=!0,Px}),!!((!e.depth||e.depth<3)&&G1(e)&&(t.options.setext||n))}function LP(e,t,n,a){const l=Math.max(Math.min(6,e.depth||1),1),o=n.createTracker(a);if(BP(e,n)){const p=n.enter("headingSetext"),x=n.enter("phrasing"),y=n.containerPhrasing(e,{...o.current(),before:` +`,after:` +`});return x(),p(),y+` +`+(l===1?"=":"-").repeat(y.length-(Math.max(y.lastIndexOf("\r"),y.lastIndexOf(` +`))+1))}const c="#".repeat(l),d=n.enter("headingAtx"),m=n.enter("phrasing");o.move(c+" ");let f=n.containerPhrasing(e,{before:"# ",after:` +`,...o.current()});return/^[\t ]/.test(f)&&(f=yu(f.charCodeAt(0))+f.slice(1)),f=f?c+" "+f:c,n.options.closeAtx&&(f+=" "+c),m(),d(),f}qj.peek=PP;function qj(e){return e.value||""}function PP(){return"<"}Hj.peek=FP;function Hj(e,t,n,a){const l=ng(n),o=l==='"'?"Quote":"Apostrophe",c=n.enter("image");let d=n.enter("label");const m=n.createTracker(a);let f=m.move("![");return f+=m.move(n.safe(e.alt,{before:f,after:"]",...m.current()})),f+=m.move("]("),d(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(d=n.enter("destinationLiteral"),f+=m.move("<"),f+=m.move(n.safe(e.url,{before:f,after:">",...m.current()})),f+=m.move(">")):(d=n.enter("destinationRaw"),f+=m.move(n.safe(e.url,{before:f,after:e.title?" ":")",...m.current()}))),d(),e.title&&(d=n.enter(`title${o}`),f+=m.move(" "+l),f+=m.move(n.safe(e.title,{before:f,after:l,...m.current()})),f+=m.move(l),d()),f+=m.move(")"),c(),f}function FP(){return"!"}Uj.peek=IP;function Uj(e,t,n,a){const l=e.referenceType,o=n.enter("imageReference");let c=n.enter("label");const d=n.createTracker(a);let m=d.move("![");const f=n.safe(e.alt,{before:m,after:"]",...d.current()});m+=d.move(f+"]["),c();const p=n.stack;n.stack=[],c=n.enter("reference");const x=n.safe(n.associationId(e),{before:m,after:"]",...d.current()});return c(),n.stack=p,o(),l==="full"||!f||f!==x?m+=d.move(x+"]"):l==="shortcut"?m=m.slice(0,-1):m+=d.move("]"),m}function IP(){return"!"}$j.peek=qP;function $j(e,t,n){let a=e.value||"",l="`",o=-1;for(;new RegExp("(^|[^`])"+l+"([^`]|$)").test(a);)l+="`";for(/[^ \r\n]/.test(a)&&(/^[ \r\n]/.test(a)&&/[ \r\n]$/.test(a)||/^`|`$/.test(a))&&(a=" "+a+" ");++o\u007F]/.test(e.url))}Gj.peek=HP;function Gj(e,t,n,a){const l=ng(n),o=l==='"'?"Quote":"Apostrophe",c=n.createTracker(a);let d,m;if(Vj(e,n)){const p=n.stack;n.stack=[],d=n.enter("autolink");let x=c.move("<");return x+=c.move(n.containerPhrasing(e,{before:x,after:">",...c.current()})),x+=c.move(">"),d(),n.stack=p,x}d=n.enter("link"),m=n.enter("label");let f=c.move("[");return f+=c.move(n.containerPhrasing(e,{before:f,after:"](",...c.current()})),f+=c.move("]("),m(),!e.url&&e.title||/[\0- \u007F]/.test(e.url)?(m=n.enter("destinationLiteral"),f+=c.move("<"),f+=c.move(n.safe(e.url,{before:f,after:">",...c.current()})),f+=c.move(">")):(m=n.enter("destinationRaw"),f+=c.move(n.safe(e.url,{before:f,after:e.title?" ":")",...c.current()}))),m(),e.title&&(m=n.enter(`title${o}`),f+=c.move(" "+l),f+=c.move(n.safe(e.title,{before:f,after:l,...c.current()})),f+=c.move(l),m()),f+=c.move(")"),d(),f}function HP(e,t,n){return Vj(e,n)?"<":"["}Yj.peek=UP;function Yj(e,t,n,a){const l=e.referenceType,o=n.enter("linkReference");let c=n.enter("label");const d=n.createTracker(a);let m=d.move("[");const f=n.containerPhrasing(e,{before:m,after:"]",...d.current()});m+=d.move(f+"]["),c();const p=n.stack;n.stack=[],c=n.enter("reference");const x=n.safe(n.associationId(e),{before:m,after:"]",...d.current()});return c(),n.stack=p,o(),l==="full"||!f||f!==x?m+=d.move(x+"]"):l==="shortcut"?m=m.slice(0,-1):m+=d.move("]"),m}function UP(){return"["}function rg(e){const t=e.options.bullet||"*";if(t!=="*"&&t!=="+"&&t!=="-")throw new Error("Cannot serialize items with `"+t+"` for `options.bullet`, expected `*`, `+`, or `-`");return t}function $P(e){const t=rg(e),n=e.options.bulletOther;if(!n)return t==="*"?"-":"*";if(n!=="*"&&n!=="+"&&n!=="-")throw new Error("Cannot serialize items with `"+n+"` for `options.bulletOther`, expected `*`, `+`, or `-`");if(n===t)throw new Error("Expected `bullet` (`"+t+"`) and `bulletOther` (`"+n+"`) to be different");return n}function VP(e){const t=e.options.bulletOrdered||".";if(t!=="."&&t!==")")throw new Error("Cannot serialize items with `"+t+"` for `options.bulletOrdered`, expected `.` or `)`");return t}function Wj(e){const t=e.options.rule||"*";if(t!=="*"&&t!=="-"&&t!=="_")throw new Error("Cannot serialize rules with `"+t+"` for `options.rule`, expected `*`, `-`, or `_`");return t}function GP(e,t,n,a){const l=n.enter("list"),o=n.bulletCurrent;let c=e.ordered?VP(n):rg(n);const d=e.ordered?c==="."?")":".":$P(n);let m=t&&n.bulletLastUsed?c===n.bulletLastUsed:!1;if(!e.ordered){const p=e.children?e.children[0]:void 0;if((c==="*"||c==="-")&&p&&(!p.children||!p.children[0])&&n.stack[n.stack.length-1]==="list"&&n.stack[n.stack.length-2]==="listItem"&&n.stack[n.stack.length-3]==="list"&&n.stack[n.stack.length-4]==="listItem"&&n.indexStack[n.indexStack.length-1]===0&&n.indexStack[n.indexStack.length-2]===0&&n.indexStack[n.indexStack.length-3]===0&&(m=!0),Wj(n)===c&&p){let x=-1;for(;++x-1?t.start:1)+(n.options.incrementListMarker===!1?0:t.children.indexOf(e))+o);let c=o.length+1;(l==="tab"||l==="mixed"&&(t&&t.type==="list"&&t.spread||e.spread))&&(c=Math.ceil(c/4)*4);const d=n.createTracker(a);d.move(o+" ".repeat(c-o.length)),d.shift(c);const m=n.enter("listItem"),f=n.indentLines(n.containerFlow(e,d.current()),p);return m(),f;function p(x,y,b){return y?(b?"":" ".repeat(c))+x:(b?o:o+" ".repeat(c-o.length))+x}}function XP(e,t,n,a){const l=n.enter("paragraph"),o=n.enter("phrasing"),c=n.containerPhrasing(e,a);return o(),l(),c}const KP=$u(["break","delete","emphasis","footnote","footnoteReference","image","imageReference","inlineCode","inlineMath","link","linkReference","mdxJsxTextElement","mdxTextExpression","strong","text","textDirective"]);function QP(e,t,n,a){return(e.children.some(function(c){return KP(c)})?n.containerPhrasing:n.containerFlow).call(n,e,a)}function ZP(e){const t=e.options.strong||"*";if(t!=="*"&&t!=="_")throw new Error("Cannot serialize strong with `"+t+"` for `options.strong`, expected `*`, or `_`");return t}Xj.peek=JP;function Xj(e,t,n,a){const l=ZP(n),o=n.enter("strong"),c=n.createTracker(a),d=c.move(l+l);let m=c.move(n.containerPhrasing(e,{after:l,before:d,...c.current()}));const f=m.charCodeAt(0),p=um(a.before.charCodeAt(a.before.length-1),f,l);p.inside&&(m=yu(f)+m.slice(1));const x=m.charCodeAt(m.length-1),y=um(a.after.charCodeAt(0),x,l);y.inside&&(m=m.slice(0,-1)+yu(x));const b=c.move(l+l);return o(),n.attentionEncodeSurroundingInfo={after:y.outside,before:p.outside},d+m+b}function JP(e,t,n){return n.options.strong||"*"}function eF(e,t,n,a){return n.safe(e.value,a)}function tF(e){const t=e.options.ruleRepetition||3;if(t<3)throw new Error("Cannot serialize rules with repetition `"+t+"` for `options.ruleRepetition`, expected `3` or more");return t}function nF(e,t,n){const a=(Wj(n)+(n.options.ruleSpaces?" ":"")).repeat(tF(n));return n.options.ruleSpaces?a.slice(0,-1):a}const Kj={blockquote:CP,break:x3,code:AP,definition:zP,emphasis:Ij,hardBreak:x3,heading:LP,html:qj,image:Hj,imageReference:Uj,inlineCode:$j,link:Gj,linkReference:Yj,list:GP,listItem:WP,paragraph:XP,root:QP,strong:Xj,text:eF,thematicBreak:nF};function rF(){return{enter:{table:aF,tableData:g3,tableHeader:g3,tableRow:lF},exit:{codeText:iF,table:sF,tableData:Gp,tableHeader:Gp,tableRow:Gp}}}function aF(e){const t=e._align;this.enter({type:"table",align:t.map(function(n){return n==="none"?null:n}),children:[]},e),this.data.inTable=!0}function sF(e){this.exit(e),this.data.inTable=void 0}function lF(e){this.enter({type:"tableRow",children:[]},e)}function Gp(e){this.exit(e)}function g3(e){this.enter({type:"tableCell",children:[]},e)}function iF(e){let t=this.resume();this.data.inTable&&(t=t.replace(/\\([\\|])/g,oF));const n=this.stack[this.stack.length-1];n.type,n.value=t,this.exit(e)}function oF(e,t){return t==="|"?t:e}function cF(e){const t=e||{},n=t.tableCellPadding,a=t.tablePipeAlign,l=t.stringLength,o=n?" ":"|";return{unsafe:[{character:"\r",inConstruct:"tableCell"},{character:` +`,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:y,table:c,tableCell:m,tableRow:d}};function c(b,j,k,S){return f(p(b,k,S),b.align)}function d(b,j,k,S){const _=x(b,k,S),M=f([_]);return M.slice(0,M.indexOf(` +`))}function m(b,j,k,S){const _=k.enter("tableCell"),M=k.enter("phrasing"),D=k.containerPhrasing(b,{...S,before:o,after:o});return M(),_(),D}function f(b,j){return SP(b,{align:j,alignDelimiters:a,padding:n,stringLength:l})}function p(b,j,k){const S=b.children;let _=-1;const M=[],D=j.enter("table");for(;++_0&&!n&&(e[e.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),n}const TF={tokenize:RF,partial:!0};function _F(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:DF,continuation:{tokenize:zF},exit:OF}},text:{91:{name:"gfmFootnoteCall",tokenize:AF},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:MF,resolveTo:EF}}}}function MF(e,t,n){const a=this;let l=a.events.length;const o=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);let c;for(;l--;){const m=a.events[l][1];if(m.type==="labelImage"){c=m;break}if(m.type==="gfmFootnoteCall"||m.type==="labelLink"||m.type==="label"||m.type==="image"||m.type==="link")break}return d;function d(m){if(!c||!c._balanced)return n(m);const f=Ia(a.sliceSerialize({start:c.end,end:a.now()}));return f.codePointAt(0)!==94||!o.includes(f.slice(1))?n(m):(e.enter("gfmFootnoteCallLabelMarker"),e.consume(m),e.exit("gfmFootnoteCallLabelMarker"),t(m))}}function EF(e,t){let n=e.length;for(;n--;)if(e[n][1].type==="labelImage"&&e[n][0]==="enter"){e[n][1];break}e[n+1][1].type="data",e[n+3][1].type="gfmFootnoteCallLabelMarker";const a={type:"gfmFootnoteCall",start:Object.assign({},e[n+3][1].start),end:Object.assign({},e[e.length-1][1].end)},l={type:"gfmFootnoteCallMarker",start:Object.assign({},e[n+3][1].end),end:Object.assign({},e[n+3][1].end)};l.end.column++,l.end.offset++,l.end._bufferIndex++;const o={type:"gfmFootnoteCallString",start:Object.assign({},l.end),end:Object.assign({},e[e.length-1][1].start)},c={type:"chunkString",contentType:"string",start:Object.assign({},o.start),end:Object.assign({},o.end)},d=[e[n+1],e[n+2],["enter",a,t],e[n+3],e[n+4],["enter",l,t],["exit",l,t],["enter",o,t],["enter",c,t],["exit",c,t],["exit",o,t],e[e.length-2],e[e.length-1],["exit",a,t]];return e.splice(n,e.length-n+1,...d),e}function AF(e,t,n){const a=this,l=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);let o=0,c;return d;function d(x){return e.enter("gfmFootnoteCall"),e.enter("gfmFootnoteCallLabelMarker"),e.consume(x),e.exit("gfmFootnoteCallLabelMarker"),m}function m(x){return x!==94?n(x):(e.enter("gfmFootnoteCallMarker"),e.consume(x),e.exit("gfmFootnoteCallMarker"),e.enter("gfmFootnoteCallString"),e.enter("chunkString").contentType="string",f)}function f(x){if(o>999||x===93&&!c||x===null||x===91||hn(x))return n(x);if(x===93){e.exit("chunkString");const y=e.exit("gfmFootnoteCallString");return l.includes(Ia(a.sliceSerialize(y)))?(e.enter("gfmFootnoteCallLabelMarker"),e.consume(x),e.exit("gfmFootnoteCallLabelMarker"),e.exit("gfmFootnoteCall"),t):n(x)}return hn(x)||(c=!0),o++,e.consume(x),x===92?p:f}function p(x){return x===91||x===92||x===93?(e.consume(x),o++,f):f(x)}}function DF(e,t,n){const a=this,l=a.parser.gfmFootnotes||(a.parser.gfmFootnotes=[]);let o,c=0,d;return m;function m(j){return e.enter("gfmFootnoteDefinition")._container=!0,e.enter("gfmFootnoteDefinitionLabel"),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(j),e.exit("gfmFootnoteDefinitionLabelMarker"),f}function f(j){return j===94?(e.enter("gfmFootnoteDefinitionMarker"),e.consume(j),e.exit("gfmFootnoteDefinitionMarker"),e.enter("gfmFootnoteDefinitionLabelString"),e.enter("chunkString").contentType="string",p):n(j)}function p(j){if(c>999||j===93&&!d||j===null||j===91||hn(j))return n(j);if(j===93){e.exit("chunkString");const k=e.exit("gfmFootnoteDefinitionLabelString");return o=Ia(a.sliceSerialize(k)),e.enter("gfmFootnoteDefinitionLabelMarker"),e.consume(j),e.exit("gfmFootnoteDefinitionLabelMarker"),e.exit("gfmFootnoteDefinitionLabel"),y}return hn(j)||(d=!0),c++,e.consume(j),j===92?x:p}function x(j){return j===91||j===92||j===93?(e.consume(j),c++,p):p(j)}function y(j){return j===58?(e.enter("definitionMarker"),e.consume(j),e.exit("definitionMarker"),l.includes(o)||l.push(o),St(e,b,"gfmFootnoteDefinitionWhitespace")):n(j)}function b(j){return t(j)}}function zF(e,t,n){return e.check(Uu,t,e.attempt(TF,t,n))}function OF(e){e.exit("gfmFootnoteDefinition")}function RF(e,t,n){const a=this;return St(e,l,"gfmFootnoteDefinitionIndent",5);function l(o){const c=a.events[a.events.length-1];return c&&c[1].type==="gfmFootnoteDefinitionIndent"&&c[2].sliceSerialize(c[1],!0).length===4?t(o):n(o)}}function BF(e){let n=(e||{}).singleTilde;const a={name:"strikethrough",tokenize:o,resolveAll:l};return n==null&&(n=!0),{text:{126:a},insideSpan:{null:[a]},attentionMarkers:{null:[126]}};function l(c,d){let m=-1;for(;++m1?m(j):(c.consume(j),x++,b);if(x<2&&!n)return m(j);const S=c.exit("strikethroughSequenceTemporary"),_=Io(j);return S._open=!_||_===2&&!!k,S._close=!k||k===2&&!!_,d(j)}}}class LF{constructor(){this.map=[]}add(t,n,a){PF(this,t,n,a)}consume(t){if(this.map.sort(function(o,c){return o[0]-c[0]}),this.map.length===0)return;let n=this.map.length;const a=[];for(;n>0;)n-=1,a.push(t.slice(this.map[n][0]+this.map[n][1]),this.map[n][2]),t.length=this.map[n][0];a.push(t.slice()),t.length=0;let l=a.pop();for(;l;){for(const o of l)t.push(o);l=a.pop()}this.map.length=0}}function PF(e,t,n,a){let l=0;if(!(n===0&&a.length===0)){for(;l-1;){const J=a.events[G][1].type;if(J==="lineEnding"||J==="linePrefix")G--;else break}const te=G>-1?a.events[G][1].type:null,we=te==="tableHead"||te==="tableRow"?E:m;return we===E&&a.parser.lazy[a.now().line]?n(I):we(I)}function m(I){return e.enter("tableHead"),e.enter("tableRow"),f(I)}function f(I){return I===124||(c=!0,o+=1),p(I)}function p(I){return I===null?n(I):Ye(I)?o>1?(o=0,a.interrupt=!0,e.exit("tableRow"),e.enter("lineEnding"),e.consume(I),e.exit("lineEnding"),b):n(I):Et(I)?St(e,p,"whitespace")(I):(o+=1,c&&(c=!1,l+=1),I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),c=!0,p):(e.enter("data"),x(I)))}function x(I){return I===null||I===124||hn(I)?(e.exit("data"),p(I)):(e.consume(I),I===92?y:x)}function y(I){return I===92||I===124?(e.consume(I),x):x(I)}function b(I){return a.interrupt=!1,a.parser.lazy[a.now().line]?n(I):(e.enter("tableDelimiterRow"),c=!1,Et(I)?St(e,j,"linePrefix",a.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):j(I))}function j(I){return I===45||I===58?S(I):I===124?(c=!0,e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),k):L(I)}function k(I){return Et(I)?St(e,S,"whitespace")(I):S(I)}function S(I){return I===58?(o+=1,c=!0,e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),_):I===45?(o+=1,_(I)):I===null||Ye(I)?z(I):L(I)}function _(I){return I===45?(e.enter("tableDelimiterFiller"),M(I)):L(I)}function M(I){return I===45?(e.consume(I),M):I===58?(c=!0,e.exit("tableDelimiterFiller"),e.enter("tableDelimiterMarker"),e.consume(I),e.exit("tableDelimiterMarker"),D):(e.exit("tableDelimiterFiller"),D(I))}function D(I){return Et(I)?St(e,z,"whitespace")(I):z(I)}function z(I){return I===124?j(I):I===null||Ye(I)?!c||l!==o?L(I):(e.exit("tableDelimiterRow"),e.exit("tableHead"),t(I)):L(I)}function L(I){return n(I)}function E(I){return e.enter("tableRow"),R(I)}function R(I){return I===124?(e.enter("tableCellDivider"),e.consume(I),e.exit("tableCellDivider"),R):I===null||Ye(I)?(e.exit("tableRow"),t(I)):Et(I)?St(e,R,"whitespace")(I):(e.enter("data"),H(I))}function H(I){return I===null||I===124||hn(I)?(e.exit("data"),R(I)):(e.consume(I),I===92?$:H)}function $(I){return I===92||I===124?(e.consume(I),H):H(I)}}function HF(e,t){let n=-1,a=!0,l=0,o=[0,0,0,0],c=[0,0,0,0],d=!1,m=0,f,p,x;const y=new LF;for(;++nn[2]+1){const j=n[2]+1,k=n[3]-n[2]-1;e.add(j,k,[])}}e.add(n[3]+1,0,[["exit",x,t]])}return l!==void 0&&(o.end=Object.assign({},Co(t.events,l)),e.add(l,0,[["exit",o,t]]),o=void 0),o}function y3(e,t,n,a,l){const o=[],c=Co(t.events,n);l&&(l.end=Object.assign({},c),o.push(["exit",l,t])),a.end=Object.assign({},c),o.push(["exit",a,t]),e.add(n+1,0,o)}function Co(e,t){const n=e[t],a=n[0]==="enter"?"start":"end";return n[1][a]}const UF={name:"tasklistCheck",tokenize:VF};function $F(){return{text:{91:UF}}}function VF(e,t,n){const a=this;return l;function l(m){return a.previous!==null||!a._gfmTasklistFirstContentOfListItem?n(m):(e.enter("taskListCheck"),e.enter("taskListCheckMarker"),e.consume(m),e.exit("taskListCheckMarker"),o)}function o(m){return hn(m)?(e.enter("taskListCheckValueUnchecked"),e.consume(m),e.exit("taskListCheckValueUnchecked"),c):m===88||m===120?(e.enter("taskListCheckValueChecked"),e.consume(m),e.exit("taskListCheckValueChecked"),c):n(m)}function c(m){return m===93?(e.enter("taskListCheckMarker"),e.consume(m),e.exit("taskListCheckMarker"),e.exit("taskListCheck"),d):n(m)}function d(m){return Ye(m)?t(m):Et(m)?e.check({tokenize:GF},t,n)(m):n(m)}}function GF(e,t,n){return St(e,a,"whitespace");function a(l){return l===null?n(l):t(l)}}function YF(e){return fj([vF(),_F(),BF(e),IF(),$F()])}const WF={};function XF(e){const t=this,n=e||WF,a=t.data(),l=a.micromarkExtensions||(a.micromarkExtensions=[]),o=a.fromMarkdownExtensions||(a.fromMarkdownExtensions=[]),c=a.toMarkdownExtensions||(a.toMarkdownExtensions=[]);l.push(YF(n)),o.push(fF()),c.push(pF(n))}function KF(){return{enter:{mathFlow:e,mathFlowFenceMeta:t,mathText:o},exit:{mathFlow:l,mathFlowFence:a,mathFlowFenceMeta:n,mathFlowValue:d,mathText:c,mathTextData:d}};function e(m){const f={type:"element",tagName:"code",properties:{className:["language-math","math-display"]},children:[]};this.enter({type:"math",meta:null,value:"",data:{hName:"pre",hChildren:[f]}},m)}function t(){this.buffer()}function n(){const m=this.resume(),f=this.stack[this.stack.length-1];f.type,f.meta=m}function a(){this.data.mathFlowInside||(this.buffer(),this.data.mathFlowInside=!0)}function l(m){const f=this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),p=this.stack[this.stack.length-1];p.type,this.exit(m),p.value=f;const x=p.data.hChildren[0];x.type,x.tagName,x.children.push({type:"text",value:f}),this.data.mathFlowInside=void 0}function o(m){this.enter({type:"inlineMath",value:"",data:{hName:"code",hProperties:{className:["language-math","math-inline"]},hChildren:[]}},m),this.buffer()}function c(m){const f=this.resume(),p=this.stack[this.stack.length-1];p.type,this.exit(m),p.value=f,p.data.hChildren.push({type:"text",value:f})}function d(m){this.config.enter.data.call(this,m),this.config.exit.data.call(this,m)}}function QF(e){let t=(e||{}).singleDollarTextMath;return t==null&&(t=!0),a.peek=l,{unsafe:[{character:"\r",inConstruct:"mathFlowMeta"},{character:` +`,inConstruct:"mathFlowMeta"},{character:"$",after:t?void 0:"\\$",inConstruct:"phrasing"},{character:"$",inConstruct:"mathFlowMeta"},{atBreak:!0,character:"$",after:"\\$"}],handlers:{math:n,inlineMath:a}};function n(o,c,d,m){const f=o.value||"",p=d.createTracker(m),x="$".repeat(Math.max(Fj(f,"$")+1,2)),y=d.enter("mathFlow");let b=p.move(x);if(o.meta){const j=d.enter("mathFlowMeta");b+=p.move(d.safe(o.meta,{after:` +`,before:b,encode:["$"],...p.current()})),j()}return b+=p.move(` +`),f&&(b+=p.move(f+` +`)),b+=p.move(x),y(),b}function a(o,c,d){let m=o.value||"",f=1;for(t||f++;new RegExp("(^|[^$])"+"\\$".repeat(f)+"([^$]|$)").test(m);)f++;const p="$".repeat(f);/[^ \r\n]/.test(m)&&(/^[ \r\n]/.test(m)&&/[ \r\n]$/.test(m)||/^\$|\$$/.test(m))&&(m=" "+m+" ");let x=-1;for(;++x15?f="…"+d.slice(l-15,l):f=d.slice(0,l);var p;o+15":">","<":"<",'"':""","'":"'"},cI=/[&><"']/g;function uI(e){return String(e).replace(cI,t=>oI[t])}var s8=function e(t){return t.type==="ordgroup"||t.type==="color"?t.body.length===1?e(t.body[0]):t:t.type==="font"?e(t.body):t},dI=function(t){var n=s8(t);return n.type==="mathord"||n.type==="textord"||n.type==="atom"},mI=function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t},hI=function(t){var n=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(t);return n?n[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(n[1])?null:n[1].toLowerCase():"_relative"},Ht={deflt:sI,escape:uI,hyphenate:iI,getBaseElem:s8,isCharacterBox:dI,protocolFromUrl:hI},Y0={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>e==="Infinity"?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function fI(e){if(e.default)return e.default;var t=e.type,n=Array.isArray(t)?t[0]:t;if(typeof n!="string")return n.enum[0];switch(n){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}class sg{constructor(t){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,t=t||{};for(var n in Y0)if(Y0.hasOwnProperty(n)){var a=Y0[n];this[n]=t[n]!==void 0?a.processor?a.processor(t[n]):t[n]:fI(a)}}reportNonstrict(t,n,a){var l=this.strict;if(typeof l=="function"&&(l=l(t,n,a)),!(!l||l==="ignore")){if(l===!0||l==="error")throw new Ae("LaTeX-incompatible input and strict mode is set to 'error': "+(n+" ["+t+"]"),a);l==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(n+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+l+"': "+n+" ["+t+"]"))}}useStrictBehavior(t,n,a){var l=this.strict;if(typeof l=="function")try{l=l(t,n,a)}catch{l="error"}return!l||l==="ignore"?!1:l===!0||l==="error"?!0:l==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(n+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+l+"': "+n+" ["+t+"]")),!1)}isTrusted(t){if(t.url&&!t.protocol){var n=Ht.protocolFromUrl(t.url);if(n==null)return!1;t.protocol=n}var a=typeof this.trust=="function"?this.trust(t):this.trust;return!!a}}class vl{constructor(t,n,a){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=n,this.cramped=a}sup(){return Qa[pI[this.id]]}sub(){return Qa[xI[this.id]]}fracNum(){return Qa[gI[this.id]]}fracDen(){return Qa[vI[this.id]]}cramp(){return Qa[yI[this.id]]}text(){return Qa[bI[this.id]]}isTight(){return this.size>=2}}var lg=0,dm=1,zo=2,Rs=3,bu=4,Ca=5,qo=6,_r=7,Qa=[new vl(lg,0,!1),new vl(dm,0,!0),new vl(zo,1,!1),new vl(Rs,1,!0),new vl(bu,2,!1),new vl(Ca,2,!0),new vl(qo,3,!1),new vl(_r,3,!0)],pI=[bu,Ca,bu,Ca,qo,_r,qo,_r],xI=[Ca,Ca,Ca,Ca,_r,_r,_r,_r],gI=[zo,Rs,bu,Ca,qo,_r,qo,_r],vI=[Rs,Rs,Ca,Ca,_r,_r,_r,_r],yI=[dm,dm,Rs,Rs,Ca,Ca,_r,_r],bI=[lg,dm,zo,Rs,zo,Rs,zo,Rs],tt={DISPLAY:Qa[lg],TEXT:Qa[zo],SCRIPT:Qa[bu],SCRIPTSCRIPT:Qa[qo]},Ux=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function wI(e){for(var t=0;t=l[0]&&e<=l[1])return n.name}return null}var W0=[];Ux.forEach(e=>e.blocks.forEach(t=>W0.push(...t)));function l8(e){for(var t=0;t=W0[t]&&e<=W0[t+1])return!0;return!1}var yo=80,jI=function(t,n){return"M95,"+(622+t+n)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+t/2.075+" -"+t+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+t)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},NI=function(t,n){return"M263,"+(601+t+n)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+t/2.084+" -"+t+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+t)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},SI=function(t,n){return"M983 "+(10+t+n)+` +l`+t/3.13+" -"+t+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+t)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},kI=function(t,n){return"M424,"+(2398+t+n)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+t/4.223+" -"+t+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+t)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+t)+" "+n+` +h400000v`+(40+t)+"h-400000z"},CI=function(t,n){return"M473,"+(2713+t+n)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+t/5.298+" -"+t+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+t)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+t)+" "+n+"h400000v"+(40+t)+"H1017.7z"},TI=function(t){var n=t/2;return"M400000 "+t+" H0 L"+n+" 0 l65 45 L145 "+(t-80)+" H400000z"},_I=function(t,n,a){var l=a-54-n-t;return"M702 "+(t+n)+"H400000"+(40+t)+` +H742v`+l+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+n+"H400000v"+(40+t)+"H742z"},MI=function(t,n,a){n=1e3*n;var l="";switch(t){case"sqrtMain":l=jI(n,yo);break;case"sqrtSize1":l=NI(n,yo);break;case"sqrtSize2":l=SI(n,yo);break;case"sqrtSize3":l=kI(n,yo);break;case"sqrtSize4":l=CI(n,yo);break;case"sqrtTall":l=_I(n,yo,a)}return l},EI=function(t,n){switch(t){case"⎜":return"M291 0 H417 V"+n+" H291z M291 0 H417 V"+n+" H291z";case"∣":return"M145 0 H188 V"+n+" H145z M145 0 H188 V"+n+" H145z";case"∥":return"M145 0 H188 V"+n+" H145z M145 0 H188 V"+n+" H145z"+("M367 0 H410 V"+n+" H367z M367 0 H410 V"+n+" H367z");case"⎟":return"M457 0 H583 V"+n+" H457z M457 0 H583 V"+n+" H457z";case"⎢":return"M319 0 H403 V"+n+" H319z M319 0 H403 V"+n+" H319z";case"⎥":return"M263 0 H347 V"+n+" H263z M263 0 H347 V"+n+" H263z";case"⎪":return"M384 0 H504 V"+n+" H384z M384 0 H504 V"+n+" H384z";case"⏐":return"M312 0 H355 V"+n+" H312z M312 0 H355 V"+n+" H312z";case"‖":return"M257 0 H300 V"+n+" H257z M257 0 H300 V"+n+" H257z"+("M478 0 H521 V"+n+" H478z M478 0 H521 V"+n+" H478z");default:return""}},w3={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},AI=function(t,n){switch(t){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+n+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+n+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+n+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+n+" v1759 h84z";case"vert":return"M145 15 v585 v"+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+n+" v585 h43z";case"doublevert":return"M145 15 v585 v"+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+n+` v585 h43z +M367 15 v585 v`+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+n+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+n+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+n+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+n+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+n+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+n+` v602 h84z +M403 1759 V0 H319 V1759 v`+n+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+n+` v602 h84z +M347 1759 V0 h-84 V1759 v`+n+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(n+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(n+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(n+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(n+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class Gu{constructor(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(t){return this.classes.includes(t)}toNode(){for(var t=document.createDocumentFragment(),n=0;nn.toText();return this.children.map(t).join("")}}var es={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},C0={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},j3={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function DI(e,t){es[e]=t}function ig(e,t,n){if(!es[t])throw new Error("Font metrics not found for font: "+t+".");var a=e.charCodeAt(0),l=es[t][a];if(!l&&e[0]in j3&&(a=j3[e[0]].charCodeAt(0),l=es[t][a]),!l&&n==="text"&&l8(a)&&(l=es[t][77]),l)return{depth:l[0],height:l[1],italic:l[2],skew:l[3],width:l[4]}}var Yp={};function zI(e){var t;if(e>=5?t=0:e>=3?t=1:t=2,!Yp[t]){var n=Yp[t]={cssEmPerMu:C0.quad[t]/18};for(var a in C0)C0.hasOwnProperty(a)&&(n[a]=C0[a][t])}return Yp[t]}var OI=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],N3=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],S3=function(t,n){return n.size<2?t:OI[t-1][n.size-1]};class As{constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||As.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||"",this.fontFamily=t.fontFamily||"",this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=N3[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var n={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var a in t)t.hasOwnProperty(a)&&(n[a]=t[a]);return new As(n)}havingStyle(t){return this.style===t?this:this.extend({style:t,size:S3(this.textSize,t)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(t){return this.size===t&&this.textSize===t?this:this.extend({style:this.style.text(),size:t,textSize:t,sizeMultiplier:N3[t-1]})}havingBaseStyle(t){t=t||this.style.text();var n=S3(As.BASESIZE,t);return this.size===n&&this.textSize===As.BASESIZE&&this.style===t?this:this.extend({style:t,size:n})}havingBaseSizing(){var t;switch(this.style.id){case 4:case 5:t=3;break;case 6:case 7:t=1;break;default:t=6}return this.extend({style:this.style.text(),size:t})}withColor(t){return this.extend({color:t})}withPhantom(){return this.extend({phantom:!0})}withFont(t){return this.extend({font:t})}withTextFontFamily(t){return this.extend({fontFamily:t,font:""})}withTextFontWeight(t){return this.extend({fontWeight:t,font:""})}withTextFontShape(t){return this.extend({fontShape:t,font:""})}sizingClasses(t){return t.size!==this.size?["sizing","reset-size"+t.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==As.BASESIZE?["sizing","reset-size"+this.size,"size"+As.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=zI(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}As.BASESIZE=6;var $x={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},RI={ex:!0,em:!0,mu:!0},i8=function(t){return typeof t!="string"&&(t=t.unit),t in $x||t in RI||t==="ex"},_n=function(t,n){var a;if(t.unit in $x)a=$x[t.unit]/n.fontMetrics().ptPerEm/n.sizeMultiplier;else if(t.unit==="mu")a=n.fontMetrics().cssEmPerMu;else{var l;if(n.style.isTight()?l=n.havingStyle(n.style.text()):l=n,t.unit==="ex")a=l.fontMetrics().xHeight;else if(t.unit==="em")a=l.fontMetrics().quad;else throw new Ae("Invalid unit: '"+t.unit+"'");l!==n&&(a*=l.sizeMultiplier/n.sizeMultiplier)}return Math.min(t.number*a,n.maxSize)},Re=function(t){return+t.toFixed(4)+"em"},_l=function(t){return t.filter(n=>n).join(" ")},o8=function(t,n,a){if(this.classes=t||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=a||{},n){n.style.isTight()&&this.classes.push("mtight");var l=n.getColor();l&&(this.style.color=l)}},c8=function(t){var n=document.createElement(t);n.className=_l(this.classes);for(var a in this.style)this.style.hasOwnProperty(a)&&(n.style[a]=this.style[a]);for(var l in this.attributes)this.attributes.hasOwnProperty(l)&&n.setAttribute(l,this.attributes[l]);for(var o=0;o/=\x00-\x1f]/,u8=function(t){var n="<"+t;this.classes.length&&(n+=' class="'+Ht.escape(_l(this.classes))+'"');var a="";for(var l in this.style)this.style.hasOwnProperty(l)&&(a+=Ht.hyphenate(l)+":"+this.style[l]+";");a&&(n+=' style="'+Ht.escape(a)+'"');for(var o in this.attributes)if(this.attributes.hasOwnProperty(o)){if(BI.test(o))throw new Ae("Invalid attribute name '"+o+"'");n+=" "+o+'="'+Ht.escape(this.attributes[o])+'"'}n+=">";for(var c=0;c",n};class Yu{constructor(t,n,a,l){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,o8.call(this,t,a,l),this.children=n||[]}setAttribute(t,n){this.attributes[t]=n}hasClass(t){return this.classes.includes(t)}toNode(){return c8.call(this,"span")}toMarkup(){return u8.call(this,"span")}}class og{constructor(t,n,a,l){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,o8.call(this,n,l),this.children=a||[],this.setAttribute("href",t)}setAttribute(t,n){this.attributes[t]=n}hasClass(t){return this.classes.includes(t)}toNode(){return c8.call(this,"a")}toMarkup(){return u8.call(this,"a")}}class LI{constructor(t,n,a){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=n,this.src=t,this.classes=["mord"],this.style=a}hasClass(t){return this.classes.includes(t)}toNode(){var t=document.createElement("img");t.src=this.src,t.alt=this.alt,t.className="mord";for(var n in this.style)this.style.hasOwnProperty(n)&&(t.style[n]=this.style[n]);return t}toMarkup(){var t=''+Ht.escape(this.alt)+'0&&(n=document.createElement("span"),n.style.marginRight=Re(this.italic)),this.classes.length>0&&(n=n||document.createElement("span"),n.className=_l(this.classes));for(var a in this.style)this.style.hasOwnProperty(a)&&(n=n||document.createElement("span"),n.style[a]=this.style[a]);return n?(n.appendChild(t),n):t}toMarkup(){var t=!1,n="0&&(a+="margin-right:"+this.italic+"em;");for(var l in this.style)this.style.hasOwnProperty(l)&&(a+=Ht.hyphenate(l)+":"+this.style[l]+";");a&&(t=!0,n+=' style="'+Ht.escape(a)+'"');var o=Ht.escape(this.text);return t?(n+=">",n+=o,n+="",n):o}}class Fs{constructor(t,n){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=n||{}}toNode(){var t="http://www.w3.org/2000/svg",n=document.createElementNS(t,"svg");for(var a in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,a)&&n.setAttribute(a,this.attributes[a]);for(var l=0;l':''}}class Vx{constructor(t){this.attributes=void 0,this.attributes=t||{}}toNode(){var t="http://www.w3.org/2000/svg",n=document.createElementNS(t,"line");for(var a in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,a)&&n.setAttribute(a,this.attributes[a]);return n}toMarkup(){var t=" but got "+String(e)+".")}var II={bin:1,close:1,inner:1,open:1,punct:1,rel:1},qI={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},yn={math:{},text:{}};function N(e,t,n,a,l,o){yn[e][l]={font:t,group:n,replace:a},o&&a&&(yn[e][a]=yn[e][l])}var C="math",_e="text",A="main",V="ams",Nn="accent-token",Ie="bin",Mr="close",Jo="inner",Je="mathord",Vn="op-token",ha="open",Um="punct",Y="rel",$s="spacing",ne="textord";N(C,A,Y,"≡","\\equiv",!0);N(C,A,Y,"≺","\\prec",!0);N(C,A,Y,"≻","\\succ",!0);N(C,A,Y,"∼","\\sim",!0);N(C,A,Y,"⊥","\\perp");N(C,A,Y,"⪯","\\preceq",!0);N(C,A,Y,"⪰","\\succeq",!0);N(C,A,Y,"≃","\\simeq",!0);N(C,A,Y,"∣","\\mid",!0);N(C,A,Y,"≪","\\ll",!0);N(C,A,Y,"≫","\\gg",!0);N(C,A,Y,"≍","\\asymp",!0);N(C,A,Y,"∥","\\parallel");N(C,A,Y,"⋈","\\bowtie",!0);N(C,A,Y,"⌣","\\smile",!0);N(C,A,Y,"⊑","\\sqsubseteq",!0);N(C,A,Y,"⊒","\\sqsupseteq",!0);N(C,A,Y,"≐","\\doteq",!0);N(C,A,Y,"⌢","\\frown",!0);N(C,A,Y,"∋","\\ni",!0);N(C,A,Y,"∝","\\propto",!0);N(C,A,Y,"⊢","\\vdash",!0);N(C,A,Y,"⊣","\\dashv",!0);N(C,A,Y,"∋","\\owns");N(C,A,Um,".","\\ldotp");N(C,A,Um,"⋅","\\cdotp");N(C,A,ne,"#","\\#");N(_e,A,ne,"#","\\#");N(C,A,ne,"&","\\&");N(_e,A,ne,"&","\\&");N(C,A,ne,"ℵ","\\aleph",!0);N(C,A,ne,"∀","\\forall",!0);N(C,A,ne,"ℏ","\\hbar",!0);N(C,A,ne,"∃","\\exists",!0);N(C,A,ne,"∇","\\nabla",!0);N(C,A,ne,"♭","\\flat",!0);N(C,A,ne,"ℓ","\\ell",!0);N(C,A,ne,"♮","\\natural",!0);N(C,A,ne,"♣","\\clubsuit",!0);N(C,A,ne,"℘","\\wp",!0);N(C,A,ne,"♯","\\sharp",!0);N(C,A,ne,"♢","\\diamondsuit",!0);N(C,A,ne,"ℜ","\\Re",!0);N(C,A,ne,"♡","\\heartsuit",!0);N(C,A,ne,"ℑ","\\Im",!0);N(C,A,ne,"♠","\\spadesuit",!0);N(C,A,ne,"§","\\S",!0);N(_e,A,ne,"§","\\S");N(C,A,ne,"¶","\\P",!0);N(_e,A,ne,"¶","\\P");N(C,A,ne,"†","\\dag");N(_e,A,ne,"†","\\dag");N(_e,A,ne,"†","\\textdagger");N(C,A,ne,"‡","\\ddag");N(_e,A,ne,"‡","\\ddag");N(_e,A,ne,"‡","\\textdaggerdbl");N(C,A,Mr,"⎱","\\rmoustache",!0);N(C,A,ha,"⎰","\\lmoustache",!0);N(C,A,Mr,"⟯","\\rgroup",!0);N(C,A,ha,"⟮","\\lgroup",!0);N(C,A,Ie,"∓","\\mp",!0);N(C,A,Ie,"⊖","\\ominus",!0);N(C,A,Ie,"⊎","\\uplus",!0);N(C,A,Ie,"⊓","\\sqcap",!0);N(C,A,Ie,"∗","\\ast");N(C,A,Ie,"⊔","\\sqcup",!0);N(C,A,Ie,"◯","\\bigcirc",!0);N(C,A,Ie,"∙","\\bullet",!0);N(C,A,Ie,"‡","\\ddagger");N(C,A,Ie,"≀","\\wr",!0);N(C,A,Ie,"⨿","\\amalg");N(C,A,Ie,"&","\\And");N(C,A,Y,"⟵","\\longleftarrow",!0);N(C,A,Y,"⇐","\\Leftarrow",!0);N(C,A,Y,"⟸","\\Longleftarrow",!0);N(C,A,Y,"⟶","\\longrightarrow",!0);N(C,A,Y,"⇒","\\Rightarrow",!0);N(C,A,Y,"⟹","\\Longrightarrow",!0);N(C,A,Y,"↔","\\leftrightarrow",!0);N(C,A,Y,"⟷","\\longleftrightarrow",!0);N(C,A,Y,"⇔","\\Leftrightarrow",!0);N(C,A,Y,"⟺","\\Longleftrightarrow",!0);N(C,A,Y,"↦","\\mapsto",!0);N(C,A,Y,"⟼","\\longmapsto",!0);N(C,A,Y,"↗","\\nearrow",!0);N(C,A,Y,"↩","\\hookleftarrow",!0);N(C,A,Y,"↪","\\hookrightarrow",!0);N(C,A,Y,"↘","\\searrow",!0);N(C,A,Y,"↼","\\leftharpoonup",!0);N(C,A,Y,"⇀","\\rightharpoonup",!0);N(C,A,Y,"↙","\\swarrow",!0);N(C,A,Y,"↽","\\leftharpoondown",!0);N(C,A,Y,"⇁","\\rightharpoondown",!0);N(C,A,Y,"↖","\\nwarrow",!0);N(C,A,Y,"⇌","\\rightleftharpoons",!0);N(C,V,Y,"≮","\\nless",!0);N(C,V,Y,"","\\@nleqslant");N(C,V,Y,"","\\@nleqq");N(C,V,Y,"⪇","\\lneq",!0);N(C,V,Y,"≨","\\lneqq",!0);N(C,V,Y,"","\\@lvertneqq");N(C,V,Y,"⋦","\\lnsim",!0);N(C,V,Y,"⪉","\\lnapprox",!0);N(C,V,Y,"⊀","\\nprec",!0);N(C,V,Y,"⋠","\\npreceq",!0);N(C,V,Y,"⋨","\\precnsim",!0);N(C,V,Y,"⪹","\\precnapprox",!0);N(C,V,Y,"≁","\\nsim",!0);N(C,V,Y,"","\\@nshortmid");N(C,V,Y,"∤","\\nmid",!0);N(C,V,Y,"⊬","\\nvdash",!0);N(C,V,Y,"⊭","\\nvDash",!0);N(C,V,Y,"⋪","\\ntriangleleft");N(C,V,Y,"⋬","\\ntrianglelefteq",!0);N(C,V,Y,"⊊","\\subsetneq",!0);N(C,V,Y,"","\\@varsubsetneq");N(C,V,Y,"⫋","\\subsetneqq",!0);N(C,V,Y,"","\\@varsubsetneqq");N(C,V,Y,"≯","\\ngtr",!0);N(C,V,Y,"","\\@ngeqslant");N(C,V,Y,"","\\@ngeqq");N(C,V,Y,"⪈","\\gneq",!0);N(C,V,Y,"≩","\\gneqq",!0);N(C,V,Y,"","\\@gvertneqq");N(C,V,Y,"⋧","\\gnsim",!0);N(C,V,Y,"⪊","\\gnapprox",!0);N(C,V,Y,"⊁","\\nsucc",!0);N(C,V,Y,"⋡","\\nsucceq",!0);N(C,V,Y,"⋩","\\succnsim",!0);N(C,V,Y,"⪺","\\succnapprox",!0);N(C,V,Y,"≆","\\ncong",!0);N(C,V,Y,"","\\@nshortparallel");N(C,V,Y,"∦","\\nparallel",!0);N(C,V,Y,"⊯","\\nVDash",!0);N(C,V,Y,"⋫","\\ntriangleright");N(C,V,Y,"⋭","\\ntrianglerighteq",!0);N(C,V,Y,"","\\@nsupseteqq");N(C,V,Y,"⊋","\\supsetneq",!0);N(C,V,Y,"","\\@varsupsetneq");N(C,V,Y,"⫌","\\supsetneqq",!0);N(C,V,Y,"","\\@varsupsetneqq");N(C,V,Y,"⊮","\\nVdash",!0);N(C,V,Y,"⪵","\\precneqq",!0);N(C,V,Y,"⪶","\\succneqq",!0);N(C,V,Y,"","\\@nsubseteqq");N(C,V,Ie,"⊴","\\unlhd");N(C,V,Ie,"⊵","\\unrhd");N(C,V,Y,"↚","\\nleftarrow",!0);N(C,V,Y,"↛","\\nrightarrow",!0);N(C,V,Y,"⇍","\\nLeftarrow",!0);N(C,V,Y,"⇏","\\nRightarrow",!0);N(C,V,Y,"↮","\\nleftrightarrow",!0);N(C,V,Y,"⇎","\\nLeftrightarrow",!0);N(C,V,Y,"△","\\vartriangle");N(C,V,ne,"ℏ","\\hslash");N(C,V,ne,"▽","\\triangledown");N(C,V,ne,"◊","\\lozenge");N(C,V,ne,"Ⓢ","\\circledS");N(C,V,ne,"®","\\circledR");N(_e,V,ne,"®","\\circledR");N(C,V,ne,"∡","\\measuredangle",!0);N(C,V,ne,"∄","\\nexists");N(C,V,ne,"℧","\\mho");N(C,V,ne,"Ⅎ","\\Finv",!0);N(C,V,ne,"⅁","\\Game",!0);N(C,V,ne,"‵","\\backprime");N(C,V,ne,"▲","\\blacktriangle");N(C,V,ne,"▼","\\blacktriangledown");N(C,V,ne,"■","\\blacksquare");N(C,V,ne,"⧫","\\blacklozenge");N(C,V,ne,"★","\\bigstar");N(C,V,ne,"∢","\\sphericalangle",!0);N(C,V,ne,"∁","\\complement",!0);N(C,V,ne,"ð","\\eth",!0);N(_e,A,ne,"ð","ð");N(C,V,ne,"╱","\\diagup");N(C,V,ne,"╲","\\diagdown");N(C,V,ne,"□","\\square");N(C,V,ne,"□","\\Box");N(C,V,ne,"◊","\\Diamond");N(C,V,ne,"¥","\\yen",!0);N(_e,V,ne,"¥","\\yen",!0);N(C,V,ne,"✓","\\checkmark",!0);N(_e,V,ne,"✓","\\checkmark");N(C,V,ne,"ℶ","\\beth",!0);N(C,V,ne,"ℸ","\\daleth",!0);N(C,V,ne,"ℷ","\\gimel",!0);N(C,V,ne,"ϝ","\\digamma",!0);N(C,V,ne,"ϰ","\\varkappa");N(C,V,ha,"┌","\\@ulcorner",!0);N(C,V,Mr,"┐","\\@urcorner",!0);N(C,V,ha,"└","\\@llcorner",!0);N(C,V,Mr,"┘","\\@lrcorner",!0);N(C,V,Y,"≦","\\leqq",!0);N(C,V,Y,"⩽","\\leqslant",!0);N(C,V,Y,"⪕","\\eqslantless",!0);N(C,V,Y,"≲","\\lesssim",!0);N(C,V,Y,"⪅","\\lessapprox",!0);N(C,V,Y,"≊","\\approxeq",!0);N(C,V,Ie,"⋖","\\lessdot");N(C,V,Y,"⋘","\\lll",!0);N(C,V,Y,"≶","\\lessgtr",!0);N(C,V,Y,"⋚","\\lesseqgtr",!0);N(C,V,Y,"⪋","\\lesseqqgtr",!0);N(C,V,Y,"≑","\\doteqdot");N(C,V,Y,"≓","\\risingdotseq",!0);N(C,V,Y,"≒","\\fallingdotseq",!0);N(C,V,Y,"∽","\\backsim",!0);N(C,V,Y,"⋍","\\backsimeq",!0);N(C,V,Y,"⫅","\\subseteqq",!0);N(C,V,Y,"⋐","\\Subset",!0);N(C,V,Y,"⊏","\\sqsubset",!0);N(C,V,Y,"≼","\\preccurlyeq",!0);N(C,V,Y,"⋞","\\curlyeqprec",!0);N(C,V,Y,"≾","\\precsim",!0);N(C,V,Y,"⪷","\\precapprox",!0);N(C,V,Y,"⊲","\\vartriangleleft");N(C,V,Y,"⊴","\\trianglelefteq");N(C,V,Y,"⊨","\\vDash",!0);N(C,V,Y,"⊪","\\Vvdash",!0);N(C,V,Y,"⌣","\\smallsmile");N(C,V,Y,"⌢","\\smallfrown");N(C,V,Y,"≏","\\bumpeq",!0);N(C,V,Y,"≎","\\Bumpeq",!0);N(C,V,Y,"≧","\\geqq",!0);N(C,V,Y,"⩾","\\geqslant",!0);N(C,V,Y,"⪖","\\eqslantgtr",!0);N(C,V,Y,"≳","\\gtrsim",!0);N(C,V,Y,"⪆","\\gtrapprox",!0);N(C,V,Ie,"⋗","\\gtrdot");N(C,V,Y,"⋙","\\ggg",!0);N(C,V,Y,"≷","\\gtrless",!0);N(C,V,Y,"⋛","\\gtreqless",!0);N(C,V,Y,"⪌","\\gtreqqless",!0);N(C,V,Y,"≖","\\eqcirc",!0);N(C,V,Y,"≗","\\circeq",!0);N(C,V,Y,"≜","\\triangleq",!0);N(C,V,Y,"∼","\\thicksim");N(C,V,Y,"≈","\\thickapprox");N(C,V,Y,"⫆","\\supseteqq",!0);N(C,V,Y,"⋑","\\Supset",!0);N(C,V,Y,"⊐","\\sqsupset",!0);N(C,V,Y,"≽","\\succcurlyeq",!0);N(C,V,Y,"⋟","\\curlyeqsucc",!0);N(C,V,Y,"≿","\\succsim",!0);N(C,V,Y,"⪸","\\succapprox",!0);N(C,V,Y,"⊳","\\vartriangleright");N(C,V,Y,"⊵","\\trianglerighteq");N(C,V,Y,"⊩","\\Vdash",!0);N(C,V,Y,"∣","\\shortmid");N(C,V,Y,"∥","\\shortparallel");N(C,V,Y,"≬","\\between",!0);N(C,V,Y,"⋔","\\pitchfork",!0);N(C,V,Y,"∝","\\varpropto");N(C,V,Y,"◀","\\blacktriangleleft");N(C,V,Y,"∴","\\therefore",!0);N(C,V,Y,"∍","\\backepsilon");N(C,V,Y,"▶","\\blacktriangleright");N(C,V,Y,"∵","\\because",!0);N(C,V,Y,"⋘","\\llless");N(C,V,Y,"⋙","\\gggtr");N(C,V,Ie,"⊲","\\lhd");N(C,V,Ie,"⊳","\\rhd");N(C,V,Y,"≂","\\eqsim",!0);N(C,A,Y,"⋈","\\Join");N(C,V,Y,"≑","\\Doteq",!0);N(C,V,Ie,"∔","\\dotplus",!0);N(C,V,Ie,"∖","\\smallsetminus");N(C,V,Ie,"⋒","\\Cap",!0);N(C,V,Ie,"⋓","\\Cup",!0);N(C,V,Ie,"⩞","\\doublebarwedge",!0);N(C,V,Ie,"⊟","\\boxminus",!0);N(C,V,Ie,"⊞","\\boxplus",!0);N(C,V,Ie,"⋇","\\divideontimes",!0);N(C,V,Ie,"⋉","\\ltimes",!0);N(C,V,Ie,"⋊","\\rtimes",!0);N(C,V,Ie,"⋋","\\leftthreetimes",!0);N(C,V,Ie,"⋌","\\rightthreetimes",!0);N(C,V,Ie,"⋏","\\curlywedge",!0);N(C,V,Ie,"⋎","\\curlyvee",!0);N(C,V,Ie,"⊝","\\circleddash",!0);N(C,V,Ie,"⊛","\\circledast",!0);N(C,V,Ie,"⋅","\\centerdot");N(C,V,Ie,"⊺","\\intercal",!0);N(C,V,Ie,"⋒","\\doublecap");N(C,V,Ie,"⋓","\\doublecup");N(C,V,Ie,"⊠","\\boxtimes",!0);N(C,V,Y,"⇢","\\dashrightarrow",!0);N(C,V,Y,"⇠","\\dashleftarrow",!0);N(C,V,Y,"⇇","\\leftleftarrows",!0);N(C,V,Y,"⇆","\\leftrightarrows",!0);N(C,V,Y,"⇚","\\Lleftarrow",!0);N(C,V,Y,"↞","\\twoheadleftarrow",!0);N(C,V,Y,"↢","\\leftarrowtail",!0);N(C,V,Y,"↫","\\looparrowleft",!0);N(C,V,Y,"⇋","\\leftrightharpoons",!0);N(C,V,Y,"↶","\\curvearrowleft",!0);N(C,V,Y,"↺","\\circlearrowleft",!0);N(C,V,Y,"↰","\\Lsh",!0);N(C,V,Y,"⇈","\\upuparrows",!0);N(C,V,Y,"↿","\\upharpoonleft",!0);N(C,V,Y,"⇃","\\downharpoonleft",!0);N(C,A,Y,"⊶","\\origof",!0);N(C,A,Y,"⊷","\\imageof",!0);N(C,V,Y,"⊸","\\multimap",!0);N(C,V,Y,"↭","\\leftrightsquigarrow",!0);N(C,V,Y,"⇉","\\rightrightarrows",!0);N(C,V,Y,"⇄","\\rightleftarrows",!0);N(C,V,Y,"↠","\\twoheadrightarrow",!0);N(C,V,Y,"↣","\\rightarrowtail",!0);N(C,V,Y,"↬","\\looparrowright",!0);N(C,V,Y,"↷","\\curvearrowright",!0);N(C,V,Y,"↻","\\circlearrowright",!0);N(C,V,Y,"↱","\\Rsh",!0);N(C,V,Y,"⇊","\\downdownarrows",!0);N(C,V,Y,"↾","\\upharpoonright",!0);N(C,V,Y,"⇂","\\downharpoonright",!0);N(C,V,Y,"⇝","\\rightsquigarrow",!0);N(C,V,Y,"⇝","\\leadsto");N(C,V,Y,"⇛","\\Rrightarrow",!0);N(C,V,Y,"↾","\\restriction");N(C,A,ne,"‘","`");N(C,A,ne,"$","\\$");N(_e,A,ne,"$","\\$");N(_e,A,ne,"$","\\textdollar");N(C,A,ne,"%","\\%");N(_e,A,ne,"%","\\%");N(C,A,ne,"_","\\_");N(_e,A,ne,"_","\\_");N(_e,A,ne,"_","\\textunderscore");N(C,A,ne,"∠","\\angle",!0);N(C,A,ne,"∞","\\infty",!0);N(C,A,ne,"′","\\prime");N(C,A,ne,"△","\\triangle");N(C,A,ne,"Γ","\\Gamma",!0);N(C,A,ne,"Δ","\\Delta",!0);N(C,A,ne,"Θ","\\Theta",!0);N(C,A,ne,"Λ","\\Lambda",!0);N(C,A,ne,"Ξ","\\Xi",!0);N(C,A,ne,"Π","\\Pi",!0);N(C,A,ne,"Σ","\\Sigma",!0);N(C,A,ne,"Υ","\\Upsilon",!0);N(C,A,ne,"Φ","\\Phi",!0);N(C,A,ne,"Ψ","\\Psi",!0);N(C,A,ne,"Ω","\\Omega",!0);N(C,A,ne,"A","Α");N(C,A,ne,"B","Β");N(C,A,ne,"E","Ε");N(C,A,ne,"Z","Ζ");N(C,A,ne,"H","Η");N(C,A,ne,"I","Ι");N(C,A,ne,"K","Κ");N(C,A,ne,"M","Μ");N(C,A,ne,"N","Ν");N(C,A,ne,"O","Ο");N(C,A,ne,"P","Ρ");N(C,A,ne,"T","Τ");N(C,A,ne,"X","Χ");N(C,A,ne,"¬","\\neg",!0);N(C,A,ne,"¬","\\lnot");N(C,A,ne,"⊤","\\top");N(C,A,ne,"⊥","\\bot");N(C,A,ne,"∅","\\emptyset");N(C,V,ne,"∅","\\varnothing");N(C,A,Je,"α","\\alpha",!0);N(C,A,Je,"β","\\beta",!0);N(C,A,Je,"γ","\\gamma",!0);N(C,A,Je,"δ","\\delta",!0);N(C,A,Je,"ϵ","\\epsilon",!0);N(C,A,Je,"ζ","\\zeta",!0);N(C,A,Je,"η","\\eta",!0);N(C,A,Je,"θ","\\theta",!0);N(C,A,Je,"ι","\\iota",!0);N(C,A,Je,"κ","\\kappa",!0);N(C,A,Je,"λ","\\lambda",!0);N(C,A,Je,"μ","\\mu",!0);N(C,A,Je,"ν","\\nu",!0);N(C,A,Je,"ξ","\\xi",!0);N(C,A,Je,"ο","\\omicron",!0);N(C,A,Je,"π","\\pi",!0);N(C,A,Je,"ρ","\\rho",!0);N(C,A,Je,"σ","\\sigma",!0);N(C,A,Je,"τ","\\tau",!0);N(C,A,Je,"υ","\\upsilon",!0);N(C,A,Je,"ϕ","\\phi",!0);N(C,A,Je,"χ","\\chi",!0);N(C,A,Je,"ψ","\\psi",!0);N(C,A,Je,"ω","\\omega",!0);N(C,A,Je,"ε","\\varepsilon",!0);N(C,A,Je,"ϑ","\\vartheta",!0);N(C,A,Je,"ϖ","\\varpi",!0);N(C,A,Je,"ϱ","\\varrho",!0);N(C,A,Je,"ς","\\varsigma",!0);N(C,A,Je,"φ","\\varphi",!0);N(C,A,Ie,"∗","*",!0);N(C,A,Ie,"+","+");N(C,A,Ie,"−","-",!0);N(C,A,Ie,"⋅","\\cdot",!0);N(C,A,Ie,"∘","\\circ",!0);N(C,A,Ie,"÷","\\div",!0);N(C,A,Ie,"±","\\pm",!0);N(C,A,Ie,"×","\\times",!0);N(C,A,Ie,"∩","\\cap",!0);N(C,A,Ie,"∪","\\cup",!0);N(C,A,Ie,"∖","\\setminus",!0);N(C,A,Ie,"∧","\\land");N(C,A,Ie,"∨","\\lor");N(C,A,Ie,"∧","\\wedge",!0);N(C,A,Ie,"∨","\\vee",!0);N(C,A,ne,"√","\\surd");N(C,A,ha,"⟨","\\langle",!0);N(C,A,ha,"∣","\\lvert");N(C,A,ha,"∥","\\lVert");N(C,A,Mr,"?","?");N(C,A,Mr,"!","!");N(C,A,Mr,"⟩","\\rangle",!0);N(C,A,Mr,"∣","\\rvert");N(C,A,Mr,"∥","\\rVert");N(C,A,Y,"=","=");N(C,A,Y,":",":");N(C,A,Y,"≈","\\approx",!0);N(C,A,Y,"≅","\\cong",!0);N(C,A,Y,"≥","\\ge");N(C,A,Y,"≥","\\geq",!0);N(C,A,Y,"←","\\gets");N(C,A,Y,">","\\gt",!0);N(C,A,Y,"∈","\\in",!0);N(C,A,Y,"","\\@not");N(C,A,Y,"⊂","\\subset",!0);N(C,A,Y,"⊃","\\supset",!0);N(C,A,Y,"⊆","\\subseteq",!0);N(C,A,Y,"⊇","\\supseteq",!0);N(C,V,Y,"⊈","\\nsubseteq",!0);N(C,V,Y,"⊉","\\nsupseteq",!0);N(C,A,Y,"⊨","\\models");N(C,A,Y,"←","\\leftarrow",!0);N(C,A,Y,"≤","\\le");N(C,A,Y,"≤","\\leq",!0);N(C,A,Y,"<","\\lt",!0);N(C,A,Y,"→","\\rightarrow",!0);N(C,A,Y,"→","\\to");N(C,V,Y,"≱","\\ngeq",!0);N(C,V,Y,"≰","\\nleq",!0);N(C,A,$s," ","\\ ");N(C,A,$s," ","\\space");N(C,A,$s," ","\\nobreakspace");N(_e,A,$s," ","\\ ");N(_e,A,$s," "," ");N(_e,A,$s," ","\\space");N(_e,A,$s," ","\\nobreakspace");N(C,A,$s,null,"\\nobreak");N(C,A,$s,null,"\\allowbreak");N(C,A,Um,",",",");N(C,A,Um,";",";");N(C,V,Ie,"⊼","\\barwedge",!0);N(C,V,Ie,"⊻","\\veebar",!0);N(C,A,Ie,"⊙","\\odot",!0);N(C,A,Ie,"⊕","\\oplus",!0);N(C,A,Ie,"⊗","\\otimes",!0);N(C,A,ne,"∂","\\partial",!0);N(C,A,Ie,"⊘","\\oslash",!0);N(C,V,Ie,"⊚","\\circledcirc",!0);N(C,V,Ie,"⊡","\\boxdot",!0);N(C,A,Ie,"△","\\bigtriangleup");N(C,A,Ie,"▽","\\bigtriangledown");N(C,A,Ie,"†","\\dagger");N(C,A,Ie,"⋄","\\diamond");N(C,A,Ie,"⋆","\\star");N(C,A,Ie,"◃","\\triangleleft");N(C,A,Ie,"▹","\\triangleright");N(C,A,ha,"{","\\{");N(_e,A,ne,"{","\\{");N(_e,A,ne,"{","\\textbraceleft");N(C,A,Mr,"}","\\}");N(_e,A,ne,"}","\\}");N(_e,A,ne,"}","\\textbraceright");N(C,A,ha,"{","\\lbrace");N(C,A,Mr,"}","\\rbrace");N(C,A,ha,"[","\\lbrack",!0);N(_e,A,ne,"[","\\lbrack",!0);N(C,A,Mr,"]","\\rbrack",!0);N(_e,A,ne,"]","\\rbrack",!0);N(C,A,ha,"(","\\lparen",!0);N(C,A,Mr,")","\\rparen",!0);N(_e,A,ne,"<","\\textless",!0);N(_e,A,ne,">","\\textgreater",!0);N(C,A,ha,"⌊","\\lfloor",!0);N(C,A,Mr,"⌋","\\rfloor",!0);N(C,A,ha,"⌈","\\lceil",!0);N(C,A,Mr,"⌉","\\rceil",!0);N(C,A,ne,"\\","\\backslash");N(C,A,ne,"∣","|");N(C,A,ne,"∣","\\vert");N(_e,A,ne,"|","\\textbar",!0);N(C,A,ne,"∥","\\|");N(C,A,ne,"∥","\\Vert");N(_e,A,ne,"∥","\\textbardbl");N(_e,A,ne,"~","\\textasciitilde");N(_e,A,ne,"\\","\\textbackslash");N(_e,A,ne,"^","\\textasciicircum");N(C,A,Y,"↑","\\uparrow",!0);N(C,A,Y,"⇑","\\Uparrow",!0);N(C,A,Y,"↓","\\downarrow",!0);N(C,A,Y,"⇓","\\Downarrow",!0);N(C,A,Y,"↕","\\updownarrow",!0);N(C,A,Y,"⇕","\\Updownarrow",!0);N(C,A,Vn,"∐","\\coprod");N(C,A,Vn,"⋁","\\bigvee");N(C,A,Vn,"⋀","\\bigwedge");N(C,A,Vn,"⨄","\\biguplus");N(C,A,Vn,"⋂","\\bigcap");N(C,A,Vn,"⋃","\\bigcup");N(C,A,Vn,"∫","\\int");N(C,A,Vn,"∫","\\intop");N(C,A,Vn,"∬","\\iint");N(C,A,Vn,"∭","\\iiint");N(C,A,Vn,"∏","\\prod");N(C,A,Vn,"∑","\\sum");N(C,A,Vn,"⨂","\\bigotimes");N(C,A,Vn,"⨁","\\bigoplus");N(C,A,Vn,"⨀","\\bigodot");N(C,A,Vn,"∮","\\oint");N(C,A,Vn,"∯","\\oiint");N(C,A,Vn,"∰","\\oiiint");N(C,A,Vn,"⨆","\\bigsqcup");N(C,A,Vn,"∫","\\smallint");N(_e,A,Jo,"…","\\textellipsis");N(C,A,Jo,"…","\\mathellipsis");N(_e,A,Jo,"…","\\ldots",!0);N(C,A,Jo,"…","\\ldots",!0);N(C,A,Jo,"⋯","\\@cdots",!0);N(C,A,Jo,"⋱","\\ddots",!0);N(C,A,ne,"⋮","\\varvdots");N(_e,A,ne,"⋮","\\varvdots");N(C,A,Nn,"ˊ","\\acute");N(C,A,Nn,"ˋ","\\grave");N(C,A,Nn,"¨","\\ddot");N(C,A,Nn,"~","\\tilde");N(C,A,Nn,"ˉ","\\bar");N(C,A,Nn,"˘","\\breve");N(C,A,Nn,"ˇ","\\check");N(C,A,Nn,"^","\\hat");N(C,A,Nn,"⃗","\\vec");N(C,A,Nn,"˙","\\dot");N(C,A,Nn,"˚","\\mathring");N(C,A,Je,"","\\@imath");N(C,A,Je,"","\\@jmath");N(C,A,ne,"ı","ı");N(C,A,ne,"ȷ","ȷ");N(_e,A,ne,"ı","\\i",!0);N(_e,A,ne,"ȷ","\\j",!0);N(_e,A,ne,"ß","\\ss",!0);N(_e,A,ne,"æ","\\ae",!0);N(_e,A,ne,"œ","\\oe",!0);N(_e,A,ne,"ø","\\o",!0);N(_e,A,ne,"Æ","\\AE",!0);N(_e,A,ne,"Œ","\\OE",!0);N(_e,A,ne,"Ø","\\O",!0);N(_e,A,Nn,"ˊ","\\'");N(_e,A,Nn,"ˋ","\\`");N(_e,A,Nn,"ˆ","\\^");N(_e,A,Nn,"˜","\\~");N(_e,A,Nn,"ˉ","\\=");N(_e,A,Nn,"˘","\\u");N(_e,A,Nn,"˙","\\.");N(_e,A,Nn,"¸","\\c");N(_e,A,Nn,"˚","\\r");N(_e,A,Nn,"ˇ","\\v");N(_e,A,Nn,"¨",'\\"');N(_e,A,Nn,"˝","\\H");N(_e,A,Nn,"◯","\\textcircled");var d8={"--":!0,"---":!0,"``":!0,"''":!0};N(_e,A,ne,"–","--",!0);N(_e,A,ne,"–","\\textendash");N(_e,A,ne,"—","---",!0);N(_e,A,ne,"—","\\textemdash");N(_e,A,ne,"‘","`",!0);N(_e,A,ne,"‘","\\textquoteleft");N(_e,A,ne,"’","'",!0);N(_e,A,ne,"’","\\textquoteright");N(_e,A,ne,"“","``",!0);N(_e,A,ne,"“","\\textquotedblleft");N(_e,A,ne,"”","''",!0);N(_e,A,ne,"”","\\textquotedblright");N(C,A,ne,"°","\\degree",!0);N(_e,A,ne,"°","\\degree");N(_e,A,ne,"°","\\textdegree",!0);N(C,A,ne,"£","\\pounds");N(C,A,ne,"£","\\mathsterling",!0);N(_e,A,ne,"£","\\pounds");N(_e,A,ne,"£","\\textsterling",!0);N(C,V,ne,"✠","\\maltese");N(_e,V,ne,"✠","\\maltese");var C3='0123456789/@."';for(var Wp=0;Wp0)return La(o,f,l,n,c.concat(p));if(m){var x,y;if(m==="boldsymbol"){var b=$I(o,l,n,c,a);x=b.fontName,y=[b.fontClass]}else d?(x=f8[m].fontName,y=[m]):(x=E0(m,n.fontWeight,n.fontShape),y=[m,n.fontWeight,n.fontShape]);if($m(o,x,l).metrics)return La(o,x,l,n,c.concat(y));if(d8.hasOwnProperty(o)&&x.slice(0,10)==="Typewriter"){for(var j=[],k=0;k{if(_l(e.classes)!==_l(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(e.classes.length===1){var n=e.classes[0];if(n==="mbin"||n==="mord")return!1}for(var a in e.style)if(e.style.hasOwnProperty(a)&&e.style[a]!==t.style[a])return!1;for(var l in t.style)if(t.style.hasOwnProperty(l)&&e.style[l]!==t.style[l])return!1;return!0},YI=e=>{for(var t=0;tn&&(n=c.height),c.depth>a&&(a=c.depth),c.maxFontSize>l&&(l=c.maxFontSize)}t.height=n,t.depth=a,t.maxFontSize=l},qr=function(t,n,a,l){var o=new Yu(t,n,a,l);return cg(o),o},m8=(e,t,n,a)=>new Yu(e,t,n,a),WI=function(t,n,a){var l=qr([t],[],n);return l.height=Math.max(a||n.fontMetrics().defaultRuleThickness,n.minRuleThickness),l.style.borderBottomWidth=Re(l.height),l.maxFontSize=1,l},XI=function(t,n,a,l){var o=new og(t,n,a,l);return cg(o),o},h8=function(t){var n=new Gu(t);return cg(n),n},KI=function(t,n){return t instanceof Gu?qr([],[t],n):t},QI=function(t){if(t.positionType==="individualShift"){for(var n=t.children,a=[n[0]],l=-n[0].shift-n[0].elem.depth,o=l,c=1;c{var n=qr(["mspace"],[],t),a=_n(e,t);return n.style.marginRight=Re(a),n},E0=function(t,n,a){var l="";switch(t){case"amsrm":l="AMS";break;case"textrm":l="Main";break;case"textsf":l="SansSerif";break;case"texttt":l="Typewriter";break;default:l=t}var o;return n==="textbf"&&a==="textit"?o="BoldItalic":n==="textbf"?o="Bold":n==="textit"?o="Italic":o="Regular",l+"-"+o},f8={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},p8={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},eq=function(t,n){var[a,l,o]=p8[t],c=new Ml(a),d=new Fs([c],{width:Re(l),height:Re(o),style:"width:"+Re(l),viewBox:"0 0 "+1e3*l+" "+1e3*o,preserveAspectRatio:"xMinYMin"}),m=m8(["overlay"],[d],n);return m.height=o,m.style.height=Re(o),m.style.width=Re(l),m},ue={fontMap:f8,makeSymbol:La,mathsym:UI,makeSpan:qr,makeSvgSpan:m8,makeLineSpan:WI,makeAnchor:XI,makeFragment:h8,wrapFragment:KI,makeVList:ZI,makeOrd:VI,makeGlue:JI,staticSvg:eq,svgData:p8,tryCombineChars:YI},Cn={number:3,unit:"mu"},li={number:4,unit:"mu"},Ms={number:5,unit:"mu"},tq={mord:{mop:Cn,mbin:li,mrel:Ms,minner:Cn},mop:{mord:Cn,mop:Cn,mrel:Ms,minner:Cn},mbin:{mord:li,mop:li,mopen:li,minner:li},mrel:{mord:Ms,mop:Ms,mopen:Ms,minner:Ms},mopen:{},mclose:{mop:Cn,mbin:li,mrel:Ms,minner:Cn},mpunct:{mord:Cn,mop:Cn,mrel:Ms,mopen:Cn,mclose:Cn,mpunct:Cn,minner:Cn},minner:{mord:Cn,mop:Cn,mbin:li,mrel:Ms,mopen:Cn,mpunct:Cn,minner:Cn}},nq={mord:{mop:Cn},mop:{mord:Cn,mop:Cn},mbin:{},mrel:{},mopen:{},mclose:{mop:Cn},mpunct:{},minner:{mop:Cn}},x8={},hm={},fm={};function Le(e){for(var{type:t,names:n,props:a,handler:l,htmlBuilder:o,mathmlBuilder:c}=e,d={type:t,numArgs:a.numArgs,argTypes:a.argTypes,allowedInArgument:!!a.allowedInArgument,allowedInText:!!a.allowedInText,allowedInMath:a.allowedInMath===void 0?!0:a.allowedInMath,numOptionalArgs:a.numOptionalArgs||0,infix:!!a.infix,primitive:!!a.primitive,handler:l},m=0;m{var S=k.classes[0],_=j.classes[0];S==="mbin"&&aq.includes(_)?k.classes[0]="mord":_==="mbin"&&rq.includes(S)&&(j.classes[0]="mord")},{node:x},y,b),A3(o,(j,k)=>{var S=Yx(k),_=Yx(j),M=S&&_?j.hasClass("mtight")?nq[S][_]:tq[S][_]:null;if(M)return ue.makeGlue(M,f)},{node:x},y,b),o},A3=function e(t,n,a,l,o){l&&t.push(l);for(var c=0;cy=>{t.splice(x+1,0,y),c++})(c)}l&&t.pop()},g8=function(t){return t instanceof Gu||t instanceof og||t instanceof Yu&&t.hasClass("enclosing")?t:null},iq=function e(t,n){var a=g8(t);if(a){var l=a.children;if(l.length){if(n==="right")return e(l[l.length-1],"right");if(n==="left")return e(l[0],"left")}}return t},Yx=function(t,n){return t?(n&&(t=iq(t,n)),lq[t.classes[0]]||null):null},wu=function(t,n){var a=["nulldelimiter"].concat(t.baseSizingClasses());return Is(n.concat(a))},Pt=function(t,n,a){if(!t)return Is();if(hm[t.type]){var l=hm[t.type](t,n);if(a&&n.size!==a.size){l=Is(n.sizingClasses(a),[l],n);var o=n.sizeMultiplier/a.sizeMultiplier;l.height*=o,l.depth*=o}return l}else throw new Ae("Got group of unknown type: '"+t.type+"'")};function A0(e,t){var n=Is(["base"],e,t),a=Is(["strut"]);return a.style.height=Re(n.height+n.depth),n.depth&&(a.style.verticalAlign=Re(-n.depth)),n.children.unshift(a),n}function Wx(e,t){var n=null;e.length===1&&e[0].type==="tag"&&(n=e[0].tag,e=e[0].body);var a=Kn(e,t,"root"),l;a.length===2&&a[1].hasClass("tag")&&(l=a.pop());for(var o=[],c=[],d=0;d0&&(o.push(A0(c,t)),c=[]),o.push(a[d]));c.length>0&&o.push(A0(c,t));var f;n?(f=A0(Kn(n,t,!0)),f.classes=["tag"],o.push(f)):l&&o.push(l);var p=Is(["katex-html"],o);if(p.setAttribute("aria-hidden","true"),f){var x=f.children[0];x.style.height=Re(p.height+p.depth),p.depth&&(x.style.verticalAlign=Re(-p.depth))}return p}function v8(e){return new Gu(e)}class ca{constructor(t,n,a){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=t,this.attributes={},this.children=n||[],this.classes=a||[]}setAttribute(t,n){this.attributes[t]=n}getAttribute(t){return this.attributes[t]}toNode(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&t.setAttribute(n,this.attributes[n]);this.classes.length>0&&(t.className=_l(this.classes));for(var a=0;a0&&(t+=' class ="'+Ht.escape(_l(this.classes))+'"'),t+=">";for(var a=0;a",t}toText(){return this.children.map(t=>t.toText()).join("")}}class ts{constructor(t){this.text=void 0,this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return Ht.escape(this.toText())}toText(){return this.text}}class oq{constructor(t){this.width=void 0,this.character=void 0,this.width=t,t>=.05555&&t<=.05556?this.character=" ":t>=.1666&&t<=.1667?this.character=" ":t>=.2222&&t<=.2223?this.character=" ":t>=.2777&&t<=.2778?this.character="  ":t>=-.05556&&t<=-.05555?this.character=" ⁣":t>=-.1667&&t<=-.1666?this.character=" ⁣":t>=-.2223&&t<=-.2222?this.character=" ⁣":t>=-.2778&&t<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",Re(this.width)),t}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var Ee={MathNode:ca,TextNode:ts,SpaceNode:oq,newDocumentFragment:v8},Ea=function(t,n,a){return yn[n][t]&&yn[n][t].replace&&t.charCodeAt(0)!==55349&&!(d8.hasOwnProperty(t)&&a&&(a.fontFamily&&a.fontFamily.slice(4,6)==="tt"||a.font&&a.font.slice(4,6)==="tt"))&&(t=yn[n][t].replace),new Ee.TextNode(t)},ug=function(t){return t.length===1?t[0]:new Ee.MathNode("mrow",t)},dg=function(t,n){if(n.fontFamily==="texttt")return"monospace";if(n.fontFamily==="textsf")return n.fontShape==="textit"&&n.fontWeight==="textbf"?"sans-serif-bold-italic":n.fontShape==="textit"?"sans-serif-italic":n.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(n.fontShape==="textit"&&n.fontWeight==="textbf")return"bold-italic";if(n.fontShape==="textit")return"italic";if(n.fontWeight==="textbf")return"bold";var a=n.font;if(!a||a==="mathnormal")return null;var l=t.mode;if(a==="mathit")return"italic";if(a==="boldsymbol")return t.type==="textord"?"bold":"bold-italic";if(a==="mathbf")return"bold";if(a==="mathbb")return"double-struck";if(a==="mathsfit")return"sans-serif-italic";if(a==="mathfrak")return"fraktur";if(a==="mathscr"||a==="mathcal")return"script";if(a==="mathsf")return"sans-serif";if(a==="mathtt")return"monospace";var o=t.text;if(["\\imath","\\jmath"].includes(o))return null;yn[l][o]&&yn[l][o].replace&&(o=yn[l][o].replace);var c=ue.fontMap[a].fontName;return ig(o,c,l)?ue.fontMap[a].variant:null};function Zp(e){if(!e)return!1;if(e.type==="mi"&&e.children.length===1){var t=e.children[0];return t instanceof ts&&t.text==="."}else if(e.type==="mo"&&e.children.length===1&&e.getAttribute("separator")==="true"&&e.getAttribute("lspace")==="0em"&&e.getAttribute("rspace")==="0em"){var n=e.children[0];return n instanceof ts&&n.text===","}else return!1}var Qr=function(t,n,a){if(t.length===1){var l=fn(t[0],n);return a&&l instanceof ca&&l.type==="mo"&&(l.setAttribute("lspace","0em"),l.setAttribute("rspace","0em")),[l]}for(var o=[],c,d=0;d=1&&(c.type==="mn"||Zp(c))){var f=m.children[0];f instanceof ca&&f.type==="mn"&&(f.children=[...c.children,...f.children],o.pop())}else if(c.type==="mi"&&c.children.length===1){var p=c.children[0];if(p instanceof ts&&p.text==="̸"&&(m.type==="mo"||m.type==="mi"||m.type==="mn")){var x=m.children[0];x instanceof ts&&x.text.length>0&&(x.text=x.text.slice(0,1)+"̸"+x.text.slice(1),o.pop())}}}o.push(m),c=m}return o},El=function(t,n,a){return ug(Qr(t,n,a))},fn=function(t,n){if(!t)return new Ee.MathNode("mrow");if(fm[t.type]){var a=fm[t.type](t,n);return a}else throw new Ae("Got group of unknown type: '"+t.type+"'")};function D3(e,t,n,a,l){var o=Qr(e,n),c;o.length===1&&o[0]instanceof ca&&["mrow","mtable"].includes(o[0].type)?c=o[0]:c=new Ee.MathNode("mrow",o);var d=new Ee.MathNode("annotation",[new Ee.TextNode(t)]);d.setAttribute("encoding","application/x-tex");var m=new Ee.MathNode("semantics",[c,d]),f=new Ee.MathNode("math",[m]);f.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),a&&f.setAttribute("display","block");var p=l?"katex":"katex-mathml";return ue.makeSpan([p],[f])}var y8=function(t){return new As({style:t.displayMode?tt.DISPLAY:tt.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},b8=function(t,n){if(n.displayMode){var a=["katex-display"];n.leqno&&a.push("leqno"),n.fleqn&&a.push("fleqn"),t=ue.makeSpan(a,[t])}return t},cq=function(t,n,a){var l=y8(a),o;if(a.output==="mathml")return D3(t,n,l,a.displayMode,!0);if(a.output==="html"){var c=Wx(t,l);o=ue.makeSpan(["katex"],[c])}else{var d=D3(t,n,l,a.displayMode,!1),m=Wx(t,l);o=ue.makeSpan(["katex"],[d,m])}return b8(o,a)},uq=function(t,n,a){var l=y8(a),o=Wx(t,l),c=ue.makeSpan(["katex"],[o]);return b8(c,a)},dq={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},mq=function(t){var n=new Ee.MathNode("mo",[new Ee.TextNode(dq[t.replace(/^\\/,"")])]);return n.setAttribute("stretchy","true"),n},hq={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},fq=function(t){return t.type==="ordgroup"?t.body.length:1},pq=function(t,n){function a(){var d=4e5,m=t.label.slice(1);if(["widehat","widecheck","widetilde","utilde"].includes(m)){var f=t,p=fq(f.base),x,y,b;if(p>5)m==="widehat"||m==="widecheck"?(x=420,d=2364,b=.42,y=m+"4"):(x=312,d=2340,b=.34,y="tilde4");else{var j=[1,1,2,2,3,3][p];m==="widehat"||m==="widecheck"?(d=[0,1062,2364,2364,2364][j],x=[0,239,300,360,420][j],b=[0,.24,.3,.3,.36,.42][j],y=m+j):(d=[0,600,1033,2339,2340][j],x=[0,260,286,306,312][j],b=[0,.26,.286,.3,.306,.34][j],y="tilde"+j)}var k=new Ml(y),S=new Fs([k],{width:"100%",height:Re(b),viewBox:"0 0 "+d+" "+x,preserveAspectRatio:"none"});return{span:ue.makeSvgSpan([],[S],n),minWidth:0,height:b}}else{var _=[],M=hq[m],[D,z,L]=M,E=L/1e3,R=D.length,H,$;if(R===1){var I=M[3];H=["hide-tail"],$=[I]}else if(R===2)H=["halfarrow-left","halfarrow-right"],$=["xMinYMin","xMaxYMin"];else if(R===3)H=["brace-left","brace-center","brace-right"],$=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+R+" children.");for(var G=0;G0&&(l.style.minWidth=Re(o)),l},xq=function(t,n,a,l,o){var c,d=t.height+t.depth+a+l;if(/fbox|color|angl/.test(n)){if(c=ue.makeSpan(["stretchy",n],[],o),n==="fbox"){var m=o.color&&o.getColor();m&&(c.style.borderColor=m)}}else{var f=[];/^[bx]cancel$/.test(n)&&f.push(new Vx({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(n)&&f.push(new Vx({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var p=new Fs(f,{width:"100%",height:Re(d)});c=ue.makeSvgSpan([],[p],o)}return c.height=d,c.style.height=Re(d),c},qs={encloseSpan:xq,mathMLnode:mq,svgSpan:pq};function vt(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function mg(e){var t=Vm(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function Vm(e){return e&&(e.type==="atom"||qI.hasOwnProperty(e.type))?e:null}var hg=(e,t)=>{var n,a,l;e&&e.type==="supsub"?(a=vt(e.base,"accent"),n=a.base,e.base=n,l=FI(Pt(e,t)),e.base=a):(a=vt(e,"accent"),n=a.base);var o=Pt(n,t.havingCrampedStyle()),c=a.isShifty&&Ht.isCharacterBox(n),d=0;if(c){var m=Ht.getBaseElem(n),f=Pt(m,t.havingCrampedStyle());d=k3(f).skew}var p=a.label==="\\c",x=p?o.height+o.depth:Math.min(o.height,t.fontMetrics().xHeight),y;if(a.isStretchy)y=qs.svgSpan(a,t),y=ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"elem",elem:y,wrapperClasses:["svg-align"],wrapperStyle:d>0?{width:"calc(100% - "+Re(2*d)+")",marginLeft:Re(2*d)}:void 0}]},t);else{var b,j;a.label==="\\vec"?(b=ue.staticSvg("vec",t),j=ue.svgData.vec[1]):(b=ue.makeOrd({mode:a.mode,text:a.label},t,"textord"),b=k3(b),b.italic=0,j=b.width,p&&(x+=b.depth)),y=ue.makeSpan(["accent-body"],[b]);var k=a.label==="\\textcircled";k&&(y.classes.push("accent-full"),x=o.height);var S=d;k||(S-=j/2),y.style.left=Re(S),a.label==="\\textcircled"&&(y.style.top=".2em"),y=ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:-x},{type:"elem",elem:y}]},t)}var _=ue.makeSpan(["mord","accent"],[y],t);return l?(l.children[0]=_,l.height=Math.max(_.height,l.height),l.classes[0]="mord",l):_},w8=(e,t)=>{var n=e.isStretchy?qs.mathMLnode(e.label):new Ee.MathNode("mo",[Ea(e.label,e.mode)]),a=new Ee.MathNode("mover",[fn(e.base,t),n]);return a.setAttribute("accent","true"),a},gq=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));Le({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{var n=pm(t[0]),a=!gq.test(e.funcName),l=!a||e.funcName==="\\widehat"||e.funcName==="\\widetilde"||e.funcName==="\\widecheck";return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:a,isShifty:l,base:n}},htmlBuilder:hg,mathmlBuilder:w8});Le({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{var n=t[0],a=e.parser.mode;return a==="math"&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),a="text"),{type:"accent",mode:a,label:e.funcName,isStretchy:!1,isShifty:!0,base:n}},htmlBuilder:hg,mathmlBuilder:w8});Le({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{var{parser:n,funcName:a}=e,l=t[0];return{type:"accentUnder",mode:n.mode,label:a,base:l}},htmlBuilder:(e,t)=>{var n=Pt(e.base,t),a=qs.svgSpan(e,t),l=e.label==="\\utilde"?.12:0,o=ue.makeVList({positionType:"top",positionData:n.height,children:[{type:"elem",elem:a,wrapperClasses:["svg-align"]},{type:"kern",size:l},{type:"elem",elem:n}]},t);return ue.makeSpan(["mord","accentunder"],[o],t)},mathmlBuilder:(e,t)=>{var n=qs.mathMLnode(e.label),a=new Ee.MathNode("munder",[fn(e.base,t),n]);return a.setAttribute("accentunder","true"),a}});var D0=e=>{var t=new Ee.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};Le({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,n){var{parser:a,funcName:l}=e;return{type:"xArrow",mode:a.mode,label:l,body:t[0],below:n[0]}},htmlBuilder(e,t){var n=t.style,a=t.havingStyle(n.sup()),l=ue.wrapFragment(Pt(e.body,a,t),t),o=e.label.slice(0,2)==="\\x"?"x":"cd";l.classes.push(o+"-arrow-pad");var c;e.below&&(a=t.havingStyle(n.sub()),c=ue.wrapFragment(Pt(e.below,a,t),t),c.classes.push(o+"-arrow-pad"));var d=qs.svgSpan(e,t),m=-t.fontMetrics().axisHeight+.5*d.height,f=-t.fontMetrics().axisHeight-.5*d.height-.111;(l.depth>.25||e.label==="\\xleftequilibrium")&&(f-=l.depth);var p;if(c){var x=-t.fontMetrics().axisHeight+c.height+.5*d.height+.111;p=ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:f},{type:"elem",elem:d,shift:m},{type:"elem",elem:c,shift:x}]},t)}else p=ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:f},{type:"elem",elem:d,shift:m}]},t);return p.children[0].children[0].children[1].classes.push("svg-align"),ue.makeSpan(["mrel","x-arrow"],[p],t)},mathmlBuilder(e,t){var n=qs.mathMLnode(e.label);n.setAttribute("minsize",e.label.charAt(0)==="x"?"1.75em":"3.0em");var a;if(e.body){var l=D0(fn(e.body,t));if(e.below){var o=D0(fn(e.below,t));a=new Ee.MathNode("munderover",[n,o,l])}else a=new Ee.MathNode("mover",[n,l])}else if(e.below){var c=D0(fn(e.below,t));a=new Ee.MathNode("munder",[n,c])}else a=D0(),a=new Ee.MathNode("mover",[n,a]);return a}});var vq=ue.makeSpan;function j8(e,t){var n=Kn(e.body,t,!0);return vq([e.mclass],n,t)}function N8(e,t){var n,a=Qr(e.body,t);return e.mclass==="minner"?n=new Ee.MathNode("mpadded",a):e.mclass==="mord"?e.isCharacterBox?(n=a[0],n.type="mi"):n=new Ee.MathNode("mi",a):(e.isCharacterBox?(n=a[0],n.type="mo"):n=new Ee.MathNode("mo",a),e.mclass==="mbin"?(n.attributes.lspace="0.22em",n.attributes.rspace="0.22em"):e.mclass==="mpunct"?(n.attributes.lspace="0em",n.attributes.rspace="0.17em"):e.mclass==="mopen"||e.mclass==="mclose"?(n.attributes.lspace="0em",n.attributes.rspace="0em"):e.mclass==="minner"&&(n.attributes.lspace="0.0556em",n.attributes.width="+0.1111em")),n}Le({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:n,funcName:a}=e,l=t[0];return{type:"mclass",mode:n.mode,mclass:"m"+a.slice(5),body:Rn(l),isCharacterBox:Ht.isCharacterBox(l)}},htmlBuilder:j8,mathmlBuilder:N8});var Gm=e=>{var t=e.type==="ordgroup"&&e.body.length?e.body[0]:e;return t.type==="atom"&&(t.family==="bin"||t.family==="rel")?"m"+t.family:"mord"};Le({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:n}=e;return{type:"mclass",mode:n.mode,mclass:Gm(t[0]),body:Rn(t[1]),isCharacterBox:Ht.isCharacterBox(t[1])}}});Le({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var{parser:n,funcName:a}=e,l=t[1],o=t[0],c;a!=="\\stackrel"?c=Gm(l):c="mrel";var d={type:"op",mode:l.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:a!=="\\stackrel",body:Rn(l)},m={type:"supsub",mode:o.mode,base:d,sup:a==="\\underset"?null:o,sub:a==="\\underset"?o:null};return{type:"mclass",mode:n.mode,mclass:c,body:[m],isCharacterBox:Ht.isCharacterBox(m)}},htmlBuilder:j8,mathmlBuilder:N8});Le({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"pmb",mode:n.mode,mclass:Gm(t[0]),body:Rn(t[0])}},htmlBuilder(e,t){var n=Kn(e.body,t,!0),a=ue.makeSpan([e.mclass],n,t);return a.style.textShadow="0.02em 0.01em 0.04px",a},mathmlBuilder(e,t){var n=Qr(e.body,t),a=new Ee.MathNode("mstyle",n);return a.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),a}});var yq={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},z3=()=>({type:"styling",body:[],mode:"math",style:"display"}),O3=e=>e.type==="textord"&&e.text==="@",bq=(e,t)=>(e.type==="mathord"||e.type==="atom")&&e.text===t;function wq(e,t,n){var a=yq[e];switch(a){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return n.callFunction(a,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{var l=n.callFunction("\\\\cdleft",[t[0]],[]),o={type:"atom",text:a,mode:"math",family:"rel"},c=n.callFunction("\\Big",[o],[]),d=n.callFunction("\\\\cdright",[t[1]],[]),m={type:"ordgroup",mode:"math",body:[l,c,d]};return n.callFunction("\\\\cdparent",[m],[])}case"\\\\cdlongequal":return n.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var f={type:"textord",text:"\\Vert",mode:"math"};return n.callFunction("\\Big",[f],[])}default:return{type:"textord",text:" ",mode:"math"}}}function jq(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var n=e.fetch().text;if(n==="&"||n==="\\\\")e.consume();else if(n==="\\end"){t[t.length-1].length===0&&t.pop();break}else throw new Ae("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var a=[],l=[a],o=0;o-1))if("<>AV".indexOf(f)>-1)for(var x=0;x<2;x++){for(var y=!0,b=m+1;bAV=|." after @',c[m]);var j=wq(f,p,e),k={type:"styling",body:[j],mode:"math",style:"display"};a.push(k),d=z3()}o%2===0?a.push(d):a.shift(),a=[],l.push(a)}e.gullet.endGroup(),e.gullet.endGroup();var S=new Array(l[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:l,arraystretch:1,addJot:!0,rowGaps:[null],cols:S,colSeparationType:"CD",hLinesBeforeRow:new Array(l.length+1).fill([])}}Le({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:a}=e;return{type:"cdlabel",mode:n.mode,side:a.slice(4),label:t[0]}},htmlBuilder(e,t){var n=t.havingStyle(t.style.sup()),a=ue.wrapFragment(Pt(e.label,n,t),t);return a.classes.push("cd-label-"+e.side),a.style.bottom=Re(.8-a.depth),a.height=0,a.depth=0,a},mathmlBuilder(e,t){var n=new Ee.MathNode("mrow",[fn(e.label,t)]);return n=new Ee.MathNode("mpadded",[n]),n.setAttribute("width","0"),e.side==="left"&&n.setAttribute("lspace","-1width"),n.setAttribute("voffset","0.7em"),n=new Ee.MathNode("mstyle",[n]),n.setAttribute("displaystyle","false"),n.setAttribute("scriptlevel","1"),n}});Le({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:n}=e;return{type:"cdlabelparent",mode:n.mode,fragment:t[0]}},htmlBuilder(e,t){var n=ue.wrapFragment(Pt(e.fragment,t),t);return n.classes.push("cd-vert-arrow"),n},mathmlBuilder(e,t){return new Ee.MathNode("mrow",[fn(e.fragment,t)])}});Le({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var{parser:n}=e,a=vt(t[0],"ordgroup"),l=a.body,o="",c=0;c=1114111)throw new Ae("\\@char with invalid code point "+o);return m<=65535?f=String.fromCharCode(m):(m-=65536,f=String.fromCharCode((m>>10)+55296,(m&1023)+56320)),{type:"textord",mode:n.mode,text:f}}});var S8=(e,t)=>{var n=Kn(e.body,t.withColor(e.color),!1);return ue.makeFragment(n)},k8=(e,t)=>{var n=Qr(e.body,t.withColor(e.color)),a=new Ee.MathNode("mstyle",n);return a.setAttribute("mathcolor",e.color),a};Le({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:n}=e,a=vt(t[0],"color-token").color,l=t[1];return{type:"color",mode:n.mode,color:a,body:Rn(l)}},htmlBuilder:S8,mathmlBuilder:k8});Le({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:n,breakOnTokenText:a}=e,l=vt(t[0],"color-token").color;n.gullet.macros.set("\\current@color",l);var o=n.parseExpression(!0,a);return{type:"color",mode:n.mode,color:l,body:o}},htmlBuilder:S8,mathmlBuilder:k8});Le({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,n){var{parser:a}=e,l=a.gullet.future().text==="["?a.parseSizeGroup(!0):null,o=!a.settings.displayMode||!a.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:a.mode,newLine:o,size:l&&vt(l,"size").value}},htmlBuilder(e,t){var n=ue.makeSpan(["mspace"],[],t);return e.newLine&&(n.classes.push("newline"),e.size&&(n.style.marginTop=Re(_n(e.size,t)))),n},mathmlBuilder(e,t){var n=new Ee.MathNode("mspace");return e.newLine&&(n.setAttribute("linebreak","newline"),e.size&&n.setAttribute("height",Re(_n(e.size,t)))),n}});var Xx={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},C8=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new Ae("Expected a control sequence",e);return t},Nq=e=>{var t=e.gullet.popToken();return t.text==="="&&(t=e.gullet.popToken(),t.text===" "&&(t=e.gullet.popToken())),t},T8=(e,t,n,a)=>{var l=e.gullet.macros.get(n.text);l==null&&(n.noexpand=!0,l={tokens:[n],numArgs:0,unexpandable:!e.gullet.isExpandable(n.text)}),e.gullet.macros.set(t,l,a)};Le({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:n}=e;t.consumeSpaces();var a=t.fetch();if(Xx[a.text])return(n==="\\global"||n==="\\\\globallong")&&(a.text=Xx[a.text]),vt(t.parseFunction(),"internal");throw new Ae("Invalid token after macro prefix",a)}});Le({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,a=t.gullet.popToken(),l=a.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(l))throw new Ae("Expected a control sequence",a);for(var o=0,c,d=[[]];t.gullet.future().text!=="{";)if(a=t.gullet.popToken(),a.text==="#"){if(t.gullet.future().text==="{"){c=t.gullet.future(),d[o].push("{");break}if(a=t.gullet.popToken(),!/^[1-9]$/.test(a.text))throw new Ae('Invalid argument number "'+a.text+'"');if(parseInt(a.text)!==o+1)throw new Ae('Argument number "'+a.text+'" out of order');o++,d.push([])}else{if(a.text==="EOF")throw new Ae("Expected a macro definition");d[o].push(a.text)}var{tokens:m}=t.gullet.consumeArg();return c&&m.unshift(c),(n==="\\edef"||n==="\\xdef")&&(m=t.gullet.expandTokens(m),m.reverse()),t.gullet.macros.set(l,{tokens:m,numArgs:o,delimiters:d},n===Xx[n]),{type:"internal",mode:t.mode}}});Le({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,a=C8(t.gullet.popToken());t.gullet.consumeSpaces();var l=Nq(t);return T8(t,a,l,n==="\\\\globallet"),{type:"internal",mode:t.mode}}});Le({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,a=C8(t.gullet.popToken()),l=t.gullet.popToken(),o=t.gullet.popToken();return T8(t,a,o,n==="\\\\globalfuture"),t.gullet.pushToken(o),t.gullet.pushToken(l),{type:"internal",mode:t.mode}}});var nu=function(t,n,a){var l=yn.math[t]&&yn.math[t].replace,o=ig(l||t,n,a);if(!o)throw new Error("Unsupported symbol "+t+" and font size "+n+".");return o},fg=function(t,n,a,l){var o=a.havingBaseStyle(n),c=ue.makeSpan(l.concat(o.sizingClasses(a)),[t],a),d=o.sizeMultiplier/a.sizeMultiplier;return c.height*=d,c.depth*=d,c.maxFontSize=o.sizeMultiplier,c},_8=function(t,n,a){var l=n.havingBaseStyle(a),o=(1-n.sizeMultiplier/l.sizeMultiplier)*n.fontMetrics().axisHeight;t.classes.push("delimcenter"),t.style.top=Re(o),t.height-=o,t.depth+=o},Sq=function(t,n,a,l,o,c){var d=ue.makeSymbol(t,"Main-Regular",o,l),m=fg(d,n,l,c);return a&&_8(m,l,n),m},kq=function(t,n,a,l){return ue.makeSymbol(t,"Size"+n+"-Regular",a,l)},M8=function(t,n,a,l,o,c){var d=kq(t,n,o,l),m=fg(ue.makeSpan(["delimsizing","size"+n],[d],l),tt.TEXT,l,c);return a&&_8(m,l,tt.TEXT),m},Jp=function(t,n,a){var l;n==="Size1-Regular"?l="delim-size1":l="delim-size4";var o=ue.makeSpan(["delimsizinginner",l],[ue.makeSpan([],[ue.makeSymbol(t,n,a)])]);return{type:"elem",elem:o}},ex=function(t,n,a){var l=es["Size4-Regular"][t.charCodeAt(0)]?es["Size4-Regular"][t.charCodeAt(0)][4]:es["Size1-Regular"][t.charCodeAt(0)][4],o=new Ml("inner",EI(t,Math.round(1e3*n))),c=new Fs([o],{width:Re(l),height:Re(n),style:"width:"+Re(l),viewBox:"0 0 "+1e3*l+" "+Math.round(1e3*n),preserveAspectRatio:"xMinYMin"}),d=ue.makeSvgSpan([],[c],a);return d.height=n,d.style.height=Re(n),d.style.width=Re(l),{type:"elem",elem:d}},Kx=.008,z0={type:"kern",size:-1*Kx},Cq=["|","\\lvert","\\rvert","\\vert"],Tq=["\\|","\\lVert","\\rVert","\\Vert"],E8=function(t,n,a,l,o,c){var d,m,f,p,x="",y=0;d=f=p=t,m=null;var b="Size1-Regular";t==="\\uparrow"?f=p="⏐":t==="\\Uparrow"?f=p="‖":t==="\\downarrow"?d=f="⏐":t==="\\Downarrow"?d=f="‖":t==="\\updownarrow"?(d="\\uparrow",f="⏐",p="\\downarrow"):t==="\\Updownarrow"?(d="\\Uparrow",f="‖",p="\\Downarrow"):Cq.includes(t)?(f="∣",x="vert",y=333):Tq.includes(t)?(f="∥",x="doublevert",y=556):t==="["||t==="\\lbrack"?(d="⎡",f="⎢",p="⎣",b="Size4-Regular",x="lbrack",y=667):t==="]"||t==="\\rbrack"?(d="⎤",f="⎥",p="⎦",b="Size4-Regular",x="rbrack",y=667):t==="\\lfloor"||t==="⌊"?(f=d="⎢",p="⎣",b="Size4-Regular",x="lfloor",y=667):t==="\\lceil"||t==="⌈"?(d="⎡",f=p="⎢",b="Size4-Regular",x="lceil",y=667):t==="\\rfloor"||t==="⌋"?(f=d="⎥",p="⎦",b="Size4-Regular",x="rfloor",y=667):t==="\\rceil"||t==="⌉"?(d="⎤",f=p="⎥",b="Size4-Regular",x="rceil",y=667):t==="("||t==="\\lparen"?(d="⎛",f="⎜",p="⎝",b="Size4-Regular",x="lparen",y=875):t===")"||t==="\\rparen"?(d="⎞",f="⎟",p="⎠",b="Size4-Regular",x="rparen",y=875):t==="\\{"||t==="\\lbrace"?(d="⎧",m="⎨",p="⎩",f="⎪",b="Size4-Regular"):t==="\\}"||t==="\\rbrace"?(d="⎫",m="⎬",p="⎭",f="⎪",b="Size4-Regular"):t==="\\lgroup"||t==="⟮"?(d="⎧",p="⎩",f="⎪",b="Size4-Regular"):t==="\\rgroup"||t==="⟯"?(d="⎫",p="⎭",f="⎪",b="Size4-Regular"):t==="\\lmoustache"||t==="⎰"?(d="⎧",p="⎭",f="⎪",b="Size4-Regular"):(t==="\\rmoustache"||t==="⎱")&&(d="⎫",p="⎩",f="⎪",b="Size4-Regular");var j=nu(d,b,o),k=j.height+j.depth,S=nu(f,b,o),_=S.height+S.depth,M=nu(p,b,o),D=M.height+M.depth,z=0,L=1;if(m!==null){var E=nu(m,b,o);z=E.height+E.depth,L=2}var R=k+D+z,H=Math.max(0,Math.ceil((n-R)/(L*_))),$=R+H*L*_,I=l.fontMetrics().axisHeight;a&&(I*=l.sizeMultiplier);var G=$/2-I,te=[];if(x.length>0){var we=$-k-D,J=Math.round($*1e3),ae=AI(x,Math.round(we*1e3)),U=new Ml(x,ae),q=(y/1e3).toFixed(3)+"em",W=(J/1e3).toFixed(3)+"em",oe=new Fs([U],{width:q,height:W,viewBox:"0 0 "+y+" "+J}),P=ue.makeSvgSpan([],[oe],l);P.height=J/1e3,P.style.width=q,P.style.height=W,te.push({type:"elem",elem:P})}else{if(te.push(Jp(p,b,o)),te.push(z0),m===null){var je=$-k-D+2*Kx;te.push(ex(f,je,l))}else{var Z=($-k-D-z)/2+2*Kx;te.push(ex(f,Z,l)),te.push(z0),te.push(Jp(m,b,o)),te.push(z0),te.push(ex(f,Z,l))}te.push(z0),te.push(Jp(d,b,o))}var O=l.havingBaseStyle(tt.TEXT),Ne=ue.makeVList({positionType:"bottom",positionData:G,children:te},O);return fg(ue.makeSpan(["delimsizing","mult"],[Ne],O),tt.TEXT,l,c)},tx=80,nx=.08,rx=function(t,n,a,l,o){var c=MI(t,l,a),d=new Ml(t,c),m=new Fs([d],{width:"400em",height:Re(n),viewBox:"0 0 400000 "+a,preserveAspectRatio:"xMinYMin slice"});return ue.makeSvgSpan(["hide-tail"],[m],o)},_q=function(t,n){var a=n.havingBaseSizing(),l=O8("\\surd",t*a.sizeMultiplier,z8,a),o=a.sizeMultiplier,c=Math.max(0,n.minRuleThickness-n.fontMetrics().sqrtRuleThickness),d,m=0,f=0,p=0,x;return l.type==="small"?(p=1e3+1e3*c+tx,t<1?o=1:t<1.4&&(o=.7),m=(1+c+nx)/o,f=(1+c)/o,d=rx("sqrtMain",m,p,c,n),d.style.minWidth="0.853em",x=.833/o):l.type==="large"?(p=(1e3+tx)*du[l.size],f=(du[l.size]+c)/o,m=(du[l.size]+c+nx)/o,d=rx("sqrtSize"+l.size,m,p,c,n),d.style.minWidth="1.02em",x=1/o):(m=t+c+nx,f=t+c,p=Math.floor(1e3*t+c)+tx,d=rx("sqrtTall",m,p,c,n),d.style.minWidth="0.742em",x=1.056),d.height=f,d.style.height=Re(m),{span:d,advanceWidth:x,ruleWidth:(n.fontMetrics().sqrtRuleThickness+c)*o}},A8=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],Mq=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],D8=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],du=[0,1.2,1.8,2.4,3],Eq=function(t,n,a,l,o){if(t==="<"||t==="\\lt"||t==="⟨"?t="\\langle":(t===">"||t==="\\gt"||t==="⟩")&&(t="\\rangle"),A8.includes(t)||D8.includes(t))return M8(t,n,!1,a,l,o);if(Mq.includes(t))return E8(t,du[n],!1,a,l,o);throw new Ae("Illegal delimiter: '"+t+"'")},Aq=[{type:"small",style:tt.SCRIPTSCRIPT},{type:"small",style:tt.SCRIPT},{type:"small",style:tt.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],Dq=[{type:"small",style:tt.SCRIPTSCRIPT},{type:"small",style:tt.SCRIPT},{type:"small",style:tt.TEXT},{type:"stack"}],z8=[{type:"small",style:tt.SCRIPTSCRIPT},{type:"small",style:tt.SCRIPT},{type:"small",style:tt.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],zq=function(t){if(t.type==="small")return"Main-Regular";if(t.type==="large")return"Size"+t.size+"-Regular";if(t.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},O8=function(t,n,a,l){for(var o=Math.min(2,3-l.style.size),c=o;cn)return a[c]}return a[a.length-1]},R8=function(t,n,a,l,o,c){t==="<"||t==="\\lt"||t==="⟨"?t="\\langle":(t===">"||t==="\\gt"||t==="⟩")&&(t="\\rangle");var d;D8.includes(t)?d=Aq:A8.includes(t)?d=z8:d=Dq;var m=O8(t,n,d,l);return m.type==="small"?Sq(t,m.style,a,l,o,c):m.type==="large"?M8(t,m.size,a,l,o,c):E8(t,n,a,l,o,c)},Oq=function(t,n,a,l,o,c){var d=l.fontMetrics().axisHeight*l.sizeMultiplier,m=901,f=5/l.fontMetrics().ptPerEm,p=Math.max(n-d,a+d),x=Math.max(p/500*m,2*p-f);return R8(t,x,!0,l,o,c)},Bs={sqrtImage:_q,sizedDelim:Eq,sizeToMaxHeight:du,customSizedDelim:R8,leftRightDelim:Oq},R3={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Rq=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function Ym(e,t){var n=Vm(e);if(n&&Rq.includes(n.text))return n;throw n?new Ae("Invalid delimiter '"+n.text+"' after '"+t.funcName+"'",e):new Ae("Invalid delimiter type '"+e.type+"'",e)}Le({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{var n=Ym(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:R3[e.funcName].size,mclass:R3[e.funcName].mclass,delim:n.text}},htmlBuilder:(e,t)=>e.delim==="."?ue.makeSpan([e.mclass]):Bs.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];e.delim!=="."&&t.push(Ea(e.delim,e.mode));var n=new Ee.MathNode("mo",t);e.mclass==="mopen"||e.mclass==="mclose"?n.setAttribute("fence","true"):n.setAttribute("fence","false"),n.setAttribute("stretchy","true");var a=Re(Bs.sizeToMaxHeight[e.size]);return n.setAttribute("minsize",a),n.setAttribute("maxsize",a),n}});function B3(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}Le({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=e.parser.gullet.macros.get("\\current@color");if(n&&typeof n!="string")throw new Ae("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:Ym(t[0],e).text,color:n}}});Le({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=Ym(t[0],e),a=e.parser;++a.leftrightDepth;var l=a.parseExpression(!1);--a.leftrightDepth,a.expect("\\right",!1);var o=vt(a.parseFunction(),"leftright-right");return{type:"leftright",mode:a.mode,body:l,left:n.text,right:o.delim,rightColor:o.color}},htmlBuilder:(e,t)=>{B3(e);for(var n=Kn(e.body,t,!0,["mopen","mclose"]),a=0,l=0,o=!1,c=0;c{B3(e);var n=Qr(e.body,t);if(e.left!=="."){var a=new Ee.MathNode("mo",[Ea(e.left,e.mode)]);a.setAttribute("fence","true"),n.unshift(a)}if(e.right!=="."){var l=new Ee.MathNode("mo",[Ea(e.right,e.mode)]);l.setAttribute("fence","true"),e.rightColor&&l.setAttribute("mathcolor",e.rightColor),n.push(l)}return ug(n)}});Le({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=Ym(t[0],e);if(!e.parser.leftrightDepth)throw new Ae("\\middle without preceding \\left",n);return{type:"middle",mode:e.parser.mode,delim:n.text}},htmlBuilder:(e,t)=>{var n;if(e.delim===".")n=wu(t,[]);else{n=Bs.sizedDelim(e.delim,1,t,e.mode,[]);var a={delim:e.delim,options:t};n.isMiddle=a}return n},mathmlBuilder:(e,t)=>{var n=e.delim==="\\vert"||e.delim==="|"?Ea("|","text"):Ea(e.delim,e.mode),a=new Ee.MathNode("mo",[n]);return a.setAttribute("fence","true"),a.setAttribute("lspace","0.05em"),a.setAttribute("rspace","0.05em"),a}});var pg=(e,t)=>{var n=ue.wrapFragment(Pt(e.body,t),t),a=e.label.slice(1),l=t.sizeMultiplier,o,c=0,d=Ht.isCharacterBox(e.body);if(a==="sout")o=ue.makeSpan(["stretchy","sout"]),o.height=t.fontMetrics().defaultRuleThickness/l,c=-.5*t.fontMetrics().xHeight;else if(a==="phase"){var m=_n({number:.6,unit:"pt"},t),f=_n({number:.35,unit:"ex"},t),p=t.havingBaseSizing();l=l/p.sizeMultiplier;var x=n.height+n.depth+m+f;n.style.paddingLeft=Re(x/2+m);var y=Math.floor(1e3*x*l),b=TI(y),j=new Fs([new Ml("phase",b)],{width:"400em",height:Re(y/1e3),viewBox:"0 0 400000 "+y,preserveAspectRatio:"xMinYMin slice"});o=ue.makeSvgSpan(["hide-tail"],[j],t),o.style.height=Re(x),c=n.depth+m+f}else{/cancel/.test(a)?d||n.classes.push("cancel-pad"):a==="angl"?n.classes.push("anglpad"):n.classes.push("boxpad");var k=0,S=0,_=0;/box/.test(a)?(_=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),k=t.fontMetrics().fboxsep+(a==="colorbox"?0:_),S=k):a==="angl"?(_=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),k=4*_,S=Math.max(0,.25-n.depth)):(k=d?.2:0,S=k),o=qs.encloseSpan(n,a,k,S,t),/fbox|boxed|fcolorbox/.test(a)?(o.style.borderStyle="solid",o.style.borderWidth=Re(_)):a==="angl"&&_!==.049&&(o.style.borderTopWidth=Re(_),o.style.borderRightWidth=Re(_)),c=n.depth+S,e.backgroundColor&&(o.style.backgroundColor=e.backgroundColor,e.borderColor&&(o.style.borderColor=e.borderColor))}var M;if(e.backgroundColor)M=ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:o,shift:c},{type:"elem",elem:n,shift:0}]},t);else{var D=/cancel|phase/.test(a)?["svg-align"]:[];M=ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:0},{type:"elem",elem:o,shift:c,wrapperClasses:D}]},t)}return/cancel/.test(a)&&(M.height=n.height,M.depth=n.depth),/cancel/.test(a)&&!d?ue.makeSpan(["mord","cancel-lap"],[M],t):ue.makeSpan(["mord"],[M],t)},xg=(e,t)=>{var n=0,a=new Ee.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[fn(e.body,t)]);switch(e.label){case"\\cancel":a.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":a.setAttribute("notation","downdiagonalstrike");break;case"\\phase":a.setAttribute("notation","phasorangle");break;case"\\sout":a.setAttribute("notation","horizontalstrike");break;case"\\fbox":a.setAttribute("notation","box");break;case"\\angl":a.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(n=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,a.setAttribute("width","+"+2*n+"pt"),a.setAttribute("height","+"+2*n+"pt"),a.setAttribute("lspace",n+"pt"),a.setAttribute("voffset",n+"pt"),e.label==="\\fcolorbox"){var l=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);a.setAttribute("style","border: "+l+"em solid "+String(e.borderColor))}break;case"\\xcancel":a.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return e.backgroundColor&&a.setAttribute("mathbackground",e.backgroundColor),a};Le({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,n){var{parser:a,funcName:l}=e,o=vt(t[0],"color-token").color,c=t[1];return{type:"enclose",mode:a.mode,label:l,backgroundColor:o,body:c}},htmlBuilder:pg,mathmlBuilder:xg});Le({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,n){var{parser:a,funcName:l}=e,o=vt(t[0],"color-token").color,c=vt(t[1],"color-token").color,d=t[2];return{type:"enclose",mode:a.mode,label:l,backgroundColor:c,borderColor:o,body:d}},htmlBuilder:pg,mathmlBuilder:xg});Le({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"enclose",mode:n.mode,label:"\\fbox",body:t[0]}}});Le({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:a}=e,l=t[0];return{type:"enclose",mode:n.mode,label:a,body:l}},htmlBuilder:pg,mathmlBuilder:xg});Le({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:n}=e;return{type:"enclose",mode:n.mode,label:"\\angl",body:t[0]}}});var B8={};function ls(e){for(var{type:t,names:n,props:a,handler:l,htmlBuilder:o,mathmlBuilder:c}=e,d={type:t,numArgs:a.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:l},m=0;m{var t=e.parser.settings;if(!t.displayMode)throw new Ae("{"+e.envName+"} can be used only in display mode.")};function gg(e){if(e.indexOf("ed")===-1)return e.indexOf("*")===-1}function Bl(e,t,n){var{hskipBeforeAndAfter:a,addJot:l,cols:o,arraystretch:c,colSeparationType:d,autoTag:m,singleRow:f,emptySingleRow:p,maxNumCols:x,leqno:y}=t;if(e.gullet.beginGroup(),f||e.gullet.macros.set("\\cr","\\\\\\relax"),!c){var b=e.gullet.expandMacroAsText("\\arraystretch");if(b==null)c=1;else if(c=parseFloat(b),!c||c<0)throw new Ae("Invalid \\arraystretch: "+b)}e.gullet.beginGroup();var j=[],k=[j],S=[],_=[],M=m!=null?[]:void 0;function D(){m&&e.gullet.macros.set("\\@eqnsw","1",!0)}function z(){M&&(e.gullet.macros.get("\\df@tag")?(M.push(e.subparse([new da("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):M.push(!!m&&e.gullet.macros.get("\\@eqnsw")==="1"))}for(D(),_.push(L3(e));;){var L=e.parseExpression(!1,f?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),L={type:"ordgroup",mode:e.mode,body:L},n&&(L={type:"styling",mode:e.mode,style:n,body:[L]}),j.push(L);var E=e.fetch().text;if(E==="&"){if(x&&j.length===x){if(f||d)throw new Ae("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else if(E==="\\end"){z(),j.length===1&&L.type==="styling"&&L.body[0].body.length===0&&(k.length>1||!p)&&k.pop(),_.length0&&(D+=.25),f.push({pos:D,isDashed:Qe[Gn]})}for(z(c[0]),a=0;a0&&(G+=M,RQe))for(a=0;a=d)){var ye=void 0;(l>0||t.hskipBeforeAndAfter)&&(ye=Ht.deflt(Z.pregap,y),ye!==0&&(ae=ue.makeSpan(["arraycolsep"],[]),ae.style.width=Re(ye),J.push(ae)));var Be=[];for(a=0;a0){for(var ve=ue.makeLineSpan("hline",n,p),Ze=ue.makeLineSpan("hdashline",n,p),We=[{type:"elem",elem:m,shift:0}];f.length>0;){var pn=f.pop(),Bn=pn.pos-te;pn.isDashed?We.push({type:"elem",elem:Ze,shift:Bn}):We.push({type:"elem",elem:ve,shift:Bn})}m=ue.makeVList({positionType:"individualShift",children:We},n)}if(q.length===0)return ue.makeSpan(["mord"],[m],n);var sr=ue.makeVList({positionType:"individualShift",children:q},n);return sr=ue.makeSpan(["tag"],[sr],n),ue.makeFragment([m,sr])},Bq={c:"center ",l:"left ",r:"right "},os=function(t,n){for(var a=[],l=new Ee.MathNode("mtd",[],["mtr-glue"]),o=new Ee.MathNode("mtd",[],["mml-eqn-num"]),c=0;c0){var j=t.cols,k="",S=!1,_=0,M=j.length;j[0].type==="separator"&&(y+="top ",_=1),j[j.length-1].type==="separator"&&(y+="bottom ",M-=1);for(var D=_;D0?"left ":"",y+=H[H.length-1].length>0?"right ":"";for(var $=1;$-1?"alignat":"align",o=t.envName==="split",c=Bl(t.parser,{cols:a,addJot:!0,autoTag:o?void 0:gg(t.envName),emptySingleRow:!0,colSeparationType:l,maxNumCols:o?2:void 0,leqno:t.parser.settings.leqno},"display"),d,m=0,f={type:"ordgroup",mode:t.mode,body:[]};if(n[0]&&n[0].type==="ordgroup"){for(var p="",x=0;x0&&b&&(S=1),a[j]={type:"align",align:k,pregap:S,postgap:0}}return c.colSeparationType=b?"align":"alignat",c};ls({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var n=Vm(t[0]),a=n?[t[0]]:vt(t[0],"ordgroup").body,l=a.map(function(c){var d=mg(c),m=d.text;if("lcr".indexOf(m)!==-1)return{type:"align",align:m};if(m==="|")return{type:"separator",separator:"|"};if(m===":")return{type:"separator",separator:":"};throw new Ae("Unknown column alignment: "+m,c)}),o={cols:l,hskipBeforeAndAfter:!0,maxNumCols:l.length};return Bl(e.parser,o,vg(e.envName))},htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],n="c",a={hskipBeforeAndAfter:!1,cols:[{type:"align",align:n}]};if(e.envName.charAt(e.envName.length-1)==="*"){var l=e.parser;if(l.consumeSpaces(),l.fetch().text==="["){if(l.consume(),l.consumeSpaces(),n=l.fetch().text,"lcr".indexOf(n)===-1)throw new Ae("Expected l or c or r",l.nextToken);l.consume(),l.consumeSpaces(),l.expect("]"),l.consume(),a.cols=[{type:"align",align:n}]}}var o=Bl(e.parser,a,vg(e.envName)),c=Math.max(0,...o.body.map(d=>d.length));return o.cols=new Array(c).fill({type:"align",align:n}),t?{type:"leftright",mode:e.mode,body:[o],left:t[0],right:t[1],rightColor:void 0}:o},htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t={arraystretch:.5},n=Bl(e.parser,t,"script");return n.colSeparationType="small",n},htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var n=Vm(t[0]),a=n?[t[0]]:vt(t[0],"ordgroup").body,l=a.map(function(c){var d=mg(c),m=d.text;if("lc".indexOf(m)!==-1)return{type:"align",align:m};throw new Ae("Unknown column alignment: "+m,c)});if(l.length>1)throw new Ae("{subarray} can contain only one column");var o={cols:l,hskipBeforeAndAfter:!1,arraystretch:.5};if(o=Bl(e.parser,o,"script"),o.body.length>0&&o.body[0].length>1)throw new Ae("{subarray} can contain only one column");return o},htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},n=Bl(e.parser,t,vg(e.envName));return{type:"leftright",mode:e.mode,body:[n],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:P8,htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){["gather","gather*"].includes(e.envName)&&Wm(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:gg(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Bl(e.parser,t,"display")},htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:P8,htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){Wm(e);var t={autoTag:gg(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Bl(e.parser,t,"display")},htmlBuilder:is,mathmlBuilder:os});ls({type:"array",names:["CD"],props:{numArgs:0},handler(e){return Wm(e),jq(e.parser)},htmlBuilder:is,mathmlBuilder:os});F("\\nonumber","\\gdef\\@eqnsw{0}");F("\\notag","\\nonumber");Le({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new Ae(e.funcName+" valid only within array environment")}});var P3=B8;Le({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:n,funcName:a}=e,l=t[0];if(l.type!=="ordgroup")throw new Ae("Invalid environment name",l);for(var o="",c=0;c{var n=e.font,a=t.withFont(n);return Pt(e.body,a)},I8=(e,t)=>{var n=e.font,a=t.withFont(n);return fn(e.body,a)},F3={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Le({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{var{parser:n,funcName:a}=e,l=pm(t[0]),o=a;return o in F3&&(o=F3[o]),{type:"font",mode:n.mode,font:o.slice(1),body:l}},htmlBuilder:F8,mathmlBuilder:I8});Le({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{var{parser:n}=e,a=t[0],l=Ht.isCharacterBox(a);return{type:"mclass",mode:n.mode,mclass:Gm(a),body:[{type:"font",mode:n.mode,font:"boldsymbol",body:a}],isCharacterBox:l}}});Le({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{parser:n,funcName:a,breakOnTokenText:l}=e,{mode:o}=n,c=n.parseExpression(!0,l),d="math"+a.slice(1);return{type:"font",mode:o,font:d,body:{type:"ordgroup",mode:n.mode,body:c}}},htmlBuilder:F8,mathmlBuilder:I8});var q8=(e,t)=>{var n=t;return e==="display"?n=n.id>=tt.SCRIPT.id?n.text():tt.DISPLAY:e==="text"&&n.size===tt.DISPLAY.size?n=tt.TEXT:e==="script"?n=tt.SCRIPT:e==="scriptscript"&&(n=tt.SCRIPTSCRIPT),n},yg=(e,t)=>{var n=q8(e.size,t.style),a=n.fracNum(),l=n.fracDen(),o;o=t.havingStyle(a);var c=Pt(e.numer,o,t);if(e.continued){var d=8.5/t.fontMetrics().ptPerEm,m=3.5/t.fontMetrics().ptPerEm;c.height=c.height0?j=3*y:j=7*y,k=t.fontMetrics().denom1):(x>0?(b=t.fontMetrics().num2,j=y):(b=t.fontMetrics().num3,j=3*y),k=t.fontMetrics().denom2);var S;if(p){var M=t.fontMetrics().axisHeight;b-c.depth-(M+.5*x){var n=new Ee.MathNode("mfrac",[fn(e.numer,t),fn(e.denom,t)]);if(!e.hasBarLine)n.setAttribute("linethickness","0px");else if(e.barSize){var a=_n(e.barSize,t);n.setAttribute("linethickness",Re(a))}var l=q8(e.size,t.style);if(l.size!==t.style.size){n=new Ee.MathNode("mstyle",[n]);var o=l.size===tt.DISPLAY.size?"true":"false";n.setAttribute("displaystyle",o),n.setAttribute("scriptlevel","0")}if(e.leftDelim!=null||e.rightDelim!=null){var c=[];if(e.leftDelim!=null){var d=new Ee.MathNode("mo",[new Ee.TextNode(e.leftDelim.replace("\\",""))]);d.setAttribute("fence","true"),c.push(d)}if(c.push(n),e.rightDelim!=null){var m=new Ee.MathNode("mo",[new Ee.TextNode(e.rightDelim.replace("\\",""))]);m.setAttribute("fence","true"),c.push(m)}return ug(c)}return n};Le({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{var{parser:n,funcName:a}=e,l=t[0],o=t[1],c,d=null,m=null,f="auto";switch(a){case"\\dfrac":case"\\frac":case"\\tfrac":c=!0;break;case"\\\\atopfrac":c=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":c=!1,d="(",m=")";break;case"\\\\bracefrac":c=!1,d="\\{",m="\\}";break;case"\\\\brackfrac":c=!1,d="[",m="]";break;default:throw new Error("Unrecognized genfrac command")}switch(a){case"\\dfrac":case"\\dbinom":f="display";break;case"\\tfrac":case"\\tbinom":f="text";break}return{type:"genfrac",mode:n.mode,continued:!1,numer:l,denom:o,hasBarLine:c,leftDelim:d,rightDelim:m,size:f,barSize:null}},htmlBuilder:yg,mathmlBuilder:bg});Le({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{var{parser:n,funcName:a}=e,l=t[0],o=t[1];return{type:"genfrac",mode:n.mode,continued:!0,numer:l,denom:o,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});Le({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var{parser:t,funcName:n,token:a}=e,l;switch(n){case"\\over":l="\\frac";break;case"\\choose":l="\\binom";break;case"\\atop":l="\\\\atopfrac";break;case"\\brace":l="\\\\bracefrac";break;case"\\brack":l="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:t.mode,replaceWith:l,token:a}}});var I3=["display","text","script","scriptscript"],q3=function(t){var n=null;return t.length>0&&(n=t,n=n==="."?null:n),n};Le({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var{parser:n}=e,a=t[4],l=t[5],o=pm(t[0]),c=o.type==="atom"&&o.family==="open"?q3(o.text):null,d=pm(t[1]),m=d.type==="atom"&&d.family==="close"?q3(d.text):null,f=vt(t[2],"size"),p,x=null;f.isBlank?p=!0:(x=f.value,p=x.number>0);var y="auto",b=t[3];if(b.type==="ordgroup"){if(b.body.length>0){var j=vt(b.body[0],"textord");y=I3[Number(j.text)]}}else b=vt(b,"textord"),y=I3[Number(b.text)];return{type:"genfrac",mode:n.mode,numer:a,denom:l,continued:!1,hasBarLine:p,barSize:x,leftDelim:c,rightDelim:m,size:y}},htmlBuilder:yg,mathmlBuilder:bg});Le({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:n,funcName:a,token:l}=e;return{type:"infix",mode:n.mode,replaceWith:"\\\\abovefrac",size:vt(t[0],"size").value,token:l}}});Le({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{var{parser:n,funcName:a}=e,l=t[0],o=mI(vt(t[1],"infix").size),c=t[2],d=o.number>0;return{type:"genfrac",mode:n.mode,numer:l,denom:c,continued:!1,hasBarLine:d,barSize:o,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:yg,mathmlBuilder:bg});var H8=(e,t)=>{var n=t.style,a,l;e.type==="supsub"?(a=e.sup?Pt(e.sup,t.havingStyle(n.sup()),t):Pt(e.sub,t.havingStyle(n.sub()),t),l=vt(e.base,"horizBrace")):l=vt(e,"horizBrace");var o=Pt(l.base,t.havingBaseStyle(tt.DISPLAY)),c=qs.svgSpan(l,t),d;if(l.isOver?(d=ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:c}]},t),d.children[0].children[0].children[1].classes.push("svg-align")):(d=ue.makeVList({positionType:"bottom",positionData:o.depth+.1+c.height,children:[{type:"elem",elem:c},{type:"kern",size:.1},{type:"elem",elem:o}]},t),d.children[0].children[0].children[0].classes.push("svg-align")),a){var m=ue.makeSpan(["mord",l.isOver?"mover":"munder"],[d],t);l.isOver?d=ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:m},{type:"kern",size:.2},{type:"elem",elem:a}]},t):d=ue.makeVList({positionType:"bottom",positionData:m.depth+.2+a.height+a.depth,children:[{type:"elem",elem:a},{type:"kern",size:.2},{type:"elem",elem:m}]},t)}return ue.makeSpan(["mord",l.isOver?"mover":"munder"],[d],t)},Lq=(e,t)=>{var n=qs.mathMLnode(e.label);return new Ee.MathNode(e.isOver?"mover":"munder",[fn(e.base,t),n])};Le({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:a}=e;return{type:"horizBrace",mode:n.mode,label:a,isOver:/^\\over/.test(a),base:t[0]}},htmlBuilder:H8,mathmlBuilder:Lq});Le({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,a=t[1],l=vt(t[0],"url").url;return n.settings.isTrusted({command:"\\href",url:l})?{type:"href",mode:n.mode,href:l,body:Rn(a)}:n.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{var n=Kn(e.body,t,!1);return ue.makeAnchor(e.href,[],n,t)},mathmlBuilder:(e,t)=>{var n=El(e.body,t);return n instanceof ca||(n=new ca("mrow",[n])),n.setAttribute("href",e.href),n}});Le({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,a=vt(t[0],"url").url;if(!n.settings.isTrusted({command:"\\url",url:a}))return n.formatUnsupportedCmd("\\url");for(var l=[],o=0;o{var{parser:n,funcName:a,token:l}=e,o=vt(t[0],"raw").string,c=t[1];n.settings.strict&&n.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var d,m={};switch(a){case"\\htmlClass":m.class=o,d={command:"\\htmlClass",class:o};break;case"\\htmlId":m.id=o,d={command:"\\htmlId",id:o};break;case"\\htmlStyle":m.style=o,d={command:"\\htmlStyle",style:o};break;case"\\htmlData":{for(var f=o.split(","),p=0;p{var n=Kn(e.body,t,!1),a=["enclosing"];e.attributes.class&&a.push(...e.attributes.class.trim().split(/\s+/));var l=ue.makeSpan(a,n,t);for(var o in e.attributes)o!=="class"&&e.attributes.hasOwnProperty(o)&&l.setAttribute(o,e.attributes[o]);return l},mathmlBuilder:(e,t)=>El(e.body,t)});Le({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e;return{type:"htmlmathml",mode:n.mode,html:Rn(t[0]),mathml:Rn(t[1])}},htmlBuilder:(e,t)=>{var n=Kn(e.html,t,!1);return ue.makeFragment(n)},mathmlBuilder:(e,t)=>El(e.mathml,t)});var ax=function(t){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t))return{number:+t,unit:"bp"};var n=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t);if(!n)throw new Ae("Invalid size: '"+t+"' in \\includegraphics");var a={number:+(n[1]+n[2]),unit:n[3]};if(!i8(a))throw new Ae("Invalid unit: '"+a.unit+"' in \\includegraphics.");return a};Le({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,n)=>{var{parser:a}=e,l={number:0,unit:"em"},o={number:.9,unit:"em"},c={number:0,unit:"em"},d="";if(n[0])for(var m=vt(n[0],"raw").string,f=m.split(","),p=0;p{var n=_n(e.height,t),a=0;e.totalheight.number>0&&(a=_n(e.totalheight,t)-n);var l=0;e.width.number>0&&(l=_n(e.width,t));var o={height:Re(n+a)};l>0&&(o.width=Re(l)),a>0&&(o.verticalAlign=Re(-a));var c=new LI(e.src,e.alt,o);return c.height=n,c.depth=a,c},mathmlBuilder:(e,t)=>{var n=new Ee.MathNode("mglyph",[]);n.setAttribute("alt",e.alt);var a=_n(e.height,t),l=0;if(e.totalheight.number>0&&(l=_n(e.totalheight,t)-a,n.setAttribute("valign",Re(-l))),n.setAttribute("height",Re(a+l)),e.width.number>0){var o=_n(e.width,t);n.setAttribute("width",Re(o))}return n.setAttribute("src",e.src),n}});Le({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:n,funcName:a}=e,l=vt(t[0],"size");if(n.settings.strict){var o=a[1]==="m",c=l.value.unit==="mu";o?(c||n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" supports only mu units, "+("not "+l.value.unit+" units")),n.mode!=="math"&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" works only in math mode")):c&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+a+" doesn't support mu units")}return{type:"kern",mode:n.mode,dimension:l.value}},htmlBuilder(e,t){return ue.makeGlue(e.dimension,t)},mathmlBuilder(e,t){var n=_n(e.dimension,t);return new Ee.SpaceNode(n)}});Le({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n,funcName:a}=e,l=t[0];return{type:"lap",mode:n.mode,alignment:a.slice(5),body:l}},htmlBuilder:(e,t)=>{var n;e.alignment==="clap"?(n=ue.makeSpan([],[Pt(e.body,t)]),n=ue.makeSpan(["inner"],[n],t)):n=ue.makeSpan(["inner"],[Pt(e.body,t)]);var a=ue.makeSpan(["fix"],[]),l=ue.makeSpan([e.alignment],[n,a],t),o=ue.makeSpan(["strut"]);return o.style.height=Re(l.height+l.depth),l.depth&&(o.style.verticalAlign=Re(-l.depth)),l.children.unshift(o),l=ue.makeSpan(["thinbox"],[l],t),ue.makeSpan(["mord","vbox"],[l],t)},mathmlBuilder:(e,t)=>{var n=new Ee.MathNode("mpadded",[fn(e.body,t)]);if(e.alignment!=="rlap"){var a=e.alignment==="llap"?"-1":"-0.5";n.setAttribute("lspace",a+"width")}return n.setAttribute("width","0px"),n}});Le({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:n,parser:a}=e,l=a.mode;a.switchMode("math");var o=n==="\\("?"\\)":"$",c=a.parseExpression(!1,o);return a.expect(o),a.switchMode(l),{type:"styling",mode:a.mode,style:"text",body:c}}});Le({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new Ae("Mismatched "+e.funcName)}});var H3=(e,t)=>{switch(t.style.size){case tt.DISPLAY.size:return e.display;case tt.TEXT.size:return e.text;case tt.SCRIPT.size:return e.script;case tt.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};Le({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{var{parser:n}=e;return{type:"mathchoice",mode:n.mode,display:Rn(t[0]),text:Rn(t[1]),script:Rn(t[2]),scriptscript:Rn(t[3])}},htmlBuilder:(e,t)=>{var n=H3(e,t),a=Kn(n,t,!1);return ue.makeFragment(a)},mathmlBuilder:(e,t)=>{var n=H3(e,t);return El(n,t)}});var U8=(e,t,n,a,l,o,c)=>{e=ue.makeSpan([],[e]);var d=n&&Ht.isCharacterBox(n),m,f;if(t){var p=Pt(t,a.havingStyle(l.sup()),a);f={elem:p,kern:Math.max(a.fontMetrics().bigOpSpacing1,a.fontMetrics().bigOpSpacing3-p.depth)}}if(n){var x=Pt(n,a.havingStyle(l.sub()),a);m={elem:x,kern:Math.max(a.fontMetrics().bigOpSpacing2,a.fontMetrics().bigOpSpacing4-x.height)}}var y;if(f&&m){var b=a.fontMetrics().bigOpSpacing5+m.elem.height+m.elem.depth+m.kern+e.depth+c;y=ue.makeVList({positionType:"bottom",positionData:b,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:m.elem,marginLeft:Re(-o)},{type:"kern",size:m.kern},{type:"elem",elem:e},{type:"kern",size:f.kern},{type:"elem",elem:f.elem,marginLeft:Re(o)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else if(m){var j=e.height-c;y=ue.makeVList({positionType:"top",positionData:j,children:[{type:"kern",size:a.fontMetrics().bigOpSpacing5},{type:"elem",elem:m.elem,marginLeft:Re(-o)},{type:"kern",size:m.kern},{type:"elem",elem:e}]},a)}else if(f){var k=e.depth+c;y=ue.makeVList({positionType:"bottom",positionData:k,children:[{type:"elem",elem:e},{type:"kern",size:f.kern},{type:"elem",elem:f.elem,marginLeft:Re(o)},{type:"kern",size:a.fontMetrics().bigOpSpacing5}]},a)}else return e;var S=[y];if(m&&o!==0&&!d){var _=ue.makeSpan(["mspace"],[],a);_.style.marginRight=Re(o),S.unshift(_)}return ue.makeSpan(["mop","op-limits"],S,a)},$8=["\\smallint"],ec=(e,t)=>{var n,a,l=!1,o;e.type==="supsub"?(n=e.sup,a=e.sub,o=vt(e.base,"op"),l=!0):o=vt(e,"op");var c=t.style,d=!1;c.size===tt.DISPLAY.size&&o.symbol&&!$8.includes(o.name)&&(d=!0);var m;if(o.symbol){var f=d?"Size2-Regular":"Size1-Regular",p="";if((o.name==="\\oiint"||o.name==="\\oiiint")&&(p=o.name.slice(1),o.name=p==="oiint"?"\\iint":"\\iiint"),m=ue.makeSymbol(o.name,f,"math",t,["mop","op-symbol",d?"large-op":"small-op"]),p.length>0){var x=m.italic,y=ue.staticSvg(p+"Size"+(d?"2":"1"),t);m=ue.makeVList({positionType:"individualShift",children:[{type:"elem",elem:m,shift:0},{type:"elem",elem:y,shift:d?.08:0}]},t),o.name="\\"+p,m.classes.unshift("mop"),m.italic=x}}else if(o.body){var b=Kn(o.body,t,!0);b.length===1&&b[0]instanceof Ma?(m=b[0],m.classes[0]="mop"):m=ue.makeSpan(["mop"],b,t)}else{for(var j=[],k=1;k{var n;if(e.symbol)n=new ca("mo",[Ea(e.name,e.mode)]),$8.includes(e.name)&&n.setAttribute("largeop","false");else if(e.body)n=new ca("mo",Qr(e.body,t));else{n=new ca("mi",[new ts(e.name.slice(1))]);var a=new ca("mo",[Ea("⁡","text")]);e.parentIsSupSub?n=new ca("mrow",[n,a]):n=v8([n,a])}return n},Pq={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};Le({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(e,t)=>{var{parser:n,funcName:a}=e,l=a;return l.length===1&&(l=Pq[l]),{type:"op",mode:n.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:l}},htmlBuilder:ec,mathmlBuilder:Wu});Le({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var{parser:n}=e,a=t[0];return{type:"op",mode:n.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Rn(a)}},htmlBuilder:ec,mathmlBuilder:Wu});var Fq={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};Le({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:n}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:ec,mathmlBuilder:Wu});Le({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:n}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:ec,mathmlBuilder:Wu});Le({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(e){var{parser:t,funcName:n}=e,a=n;return a.length===1&&(a=Fq[a]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:ec,mathmlBuilder:Wu});var V8=(e,t)=>{var n,a,l=!1,o;e.type==="supsub"?(n=e.sup,a=e.sub,o=vt(e.base,"operatorname"),l=!0):o=vt(e,"operatorname");var c;if(o.body.length>0){for(var d=o.body.map(x=>{var y=x.text;return typeof y=="string"?{type:"textord",mode:x.mode,text:y}:x}),m=Kn(d,t.withFont("mathrm"),!0),f=0;f{for(var n=Qr(e.body,t.withFont("mathrm")),a=!0,l=0;lp.toText()).join("");n=[new Ee.TextNode(d)]}var m=new Ee.MathNode("mi",n);m.setAttribute("mathvariant","normal");var f=new Ee.MathNode("mo",[Ea("⁡","text")]);return e.parentIsSupSub?new Ee.MathNode("mrow",[m,f]):Ee.newDocumentFragment([m,f])};Le({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(e,t)=>{var{parser:n,funcName:a}=e,l=t[0];return{type:"operatorname",mode:n.mode,body:Rn(l),alwaysHandleSupSub:a==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:V8,mathmlBuilder:Iq});F("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Si({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?ue.makeFragment(Kn(e.body,t,!1)):ue.makeSpan(["mord"],Kn(e.body,t,!0),t)},mathmlBuilder(e,t){return El(e.body,t,!0)}});Le({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:n}=e,a=t[0];return{type:"overline",mode:n.mode,body:a}},htmlBuilder(e,t){var n=Pt(e.body,t.havingCrampedStyle()),a=ue.makeLineSpan("overline-line",t),l=t.fontMetrics().defaultRuleThickness,o=ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"kern",size:3*l},{type:"elem",elem:a},{type:"kern",size:l}]},t);return ue.makeSpan(["mord","overline"],[o],t)},mathmlBuilder(e,t){var n=new Ee.MathNode("mo",[new Ee.TextNode("‾")]);n.setAttribute("stretchy","true");var a=new Ee.MathNode("mover",[fn(e.body,t),n]);return a.setAttribute("accent","true"),a}});Le({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,a=t[0];return{type:"phantom",mode:n.mode,body:Rn(a)}},htmlBuilder:(e,t)=>{var n=Kn(e.body,t.withPhantom(),!1);return ue.makeFragment(n)},mathmlBuilder:(e,t)=>{var n=Qr(e.body,t);return new Ee.MathNode("mphantom",n)}});Le({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,a=t[0];return{type:"hphantom",mode:n.mode,body:a}},htmlBuilder:(e,t)=>{var n=ue.makeSpan([],[Pt(e.body,t.withPhantom())]);if(n.height=0,n.depth=0,n.children)for(var a=0;a{var n=Qr(Rn(e.body),t),a=new Ee.MathNode("mphantom",n),l=new Ee.MathNode("mpadded",[a]);return l.setAttribute("height","0px"),l.setAttribute("depth","0px"),l}});Le({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,a=t[0];return{type:"vphantom",mode:n.mode,body:a}},htmlBuilder:(e,t)=>{var n=ue.makeSpan(["inner"],[Pt(e.body,t.withPhantom())]),a=ue.makeSpan(["fix"],[]);return ue.makeSpan(["mord","rlap"],[n,a],t)},mathmlBuilder:(e,t)=>{var n=Qr(Rn(e.body),t),a=new Ee.MathNode("mphantom",n),l=new Ee.MathNode("mpadded",[a]);return l.setAttribute("width","0px"),l}});Le({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var{parser:n}=e,a=vt(t[0],"size").value,l=t[1];return{type:"raisebox",mode:n.mode,dy:a,body:l}},htmlBuilder(e,t){var n=Pt(e.body,t),a=_n(e.dy,t);return ue.makeVList({positionType:"shift",positionData:-a,children:[{type:"elem",elem:n}]},t)},mathmlBuilder(e,t){var n=new Ee.MathNode("mpadded",[fn(e.body,t)]),a=e.dy.number+e.dy.unit;return n.setAttribute("voffset",a),n}});Le({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}});Le({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(e,t,n){var{parser:a}=e,l=n[0],o=vt(t[0],"size"),c=vt(t[1],"size");return{type:"rule",mode:a.mode,shift:l&&vt(l,"size").value,width:o.value,height:c.value}},htmlBuilder(e,t){var n=ue.makeSpan(["mord","rule"],[],t),a=_n(e.width,t),l=_n(e.height,t),o=e.shift?_n(e.shift,t):0;return n.style.borderRightWidth=Re(a),n.style.borderTopWidth=Re(l),n.style.bottom=Re(o),n.width=a,n.height=l+o,n.depth=-o,n.maxFontSize=l*1.125*t.sizeMultiplier,n},mathmlBuilder(e,t){var n=_n(e.width,t),a=_n(e.height,t),l=e.shift?_n(e.shift,t):0,o=t.color&&t.getColor()||"black",c=new Ee.MathNode("mspace");c.setAttribute("mathbackground",o),c.setAttribute("width",Re(n)),c.setAttribute("height",Re(a));var d=new Ee.MathNode("mpadded",[c]);return l>=0?d.setAttribute("height",Re(l)):(d.setAttribute("height",Re(l)),d.setAttribute("depth",Re(-l))),d.setAttribute("voffset",Re(l)),d}});function G8(e,t,n){for(var a=Kn(e,t,!1),l=t.sizeMultiplier/n.sizeMultiplier,o=0;o{var n=t.havingSize(e.size);return G8(e.body,n,t)};Le({type:"sizing",names:U3,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{breakOnTokenText:n,funcName:a,parser:l}=e,o=l.parseExpression(!1,n);return{type:"sizing",mode:l.mode,size:U3.indexOf(a)+1,body:o}},htmlBuilder:qq,mathmlBuilder:(e,t)=>{var n=t.havingSize(e.size),a=Qr(e.body,n),l=new Ee.MathNode("mstyle",a);return l.setAttribute("mathsize",Re(n.sizeMultiplier)),l}});Le({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,n)=>{var{parser:a}=e,l=!1,o=!1,c=n[0]&&vt(n[0],"ordgroup");if(c)for(var d="",m=0;m{var n=ue.makeSpan([],[Pt(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return n;if(e.smashHeight&&(n.height=0,n.children))for(var a=0;a{var n=new Ee.MathNode("mpadded",[fn(e.body,t)]);return e.smashHeight&&n.setAttribute("height","0px"),e.smashDepth&&n.setAttribute("depth","0px"),n}});Le({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,n){var{parser:a}=e,l=n[0],o=t[0];return{type:"sqrt",mode:a.mode,body:o,index:l}},htmlBuilder(e,t){var n=Pt(e.body,t.havingCrampedStyle());n.height===0&&(n.height=t.fontMetrics().xHeight),n=ue.wrapFragment(n,t);var a=t.fontMetrics(),l=a.defaultRuleThickness,o=l;t.style.idn.height+n.depth+c&&(c=(c+x-n.height-n.depth)/2);var y=m.height-n.height-c-f;n.style.paddingLeft=Re(p);var b=ue.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:-(n.height+y)},{type:"elem",elem:m},{type:"kern",size:f}]},t);if(e.index){var j=t.havingStyle(tt.SCRIPTSCRIPT),k=Pt(e.index,j,t),S=.6*(b.height-b.depth),_=ue.makeVList({positionType:"shift",positionData:-S,children:[{type:"elem",elem:k}]},t),M=ue.makeSpan(["root"],[_]);return ue.makeSpan(["mord","sqrt"],[M,b],t)}else return ue.makeSpan(["mord","sqrt"],[b],t)},mathmlBuilder(e,t){var{body:n,index:a}=e;return a?new Ee.MathNode("mroot",[fn(n,t),fn(a,t)]):new Ee.MathNode("msqrt",[fn(n,t)])}});var $3={display:tt.DISPLAY,text:tt.TEXT,script:tt.SCRIPT,scriptscript:tt.SCRIPTSCRIPT};Le({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:n,funcName:a,parser:l}=e,o=l.parseExpression(!0,n),c=a.slice(1,a.length-5);return{type:"styling",mode:l.mode,style:c,body:o}},htmlBuilder(e,t){var n=$3[e.style],a=t.havingStyle(n).withFont("");return G8(e.body,a,t)},mathmlBuilder(e,t){var n=$3[e.style],a=t.havingStyle(n),l=Qr(e.body,a),o=new Ee.MathNode("mstyle",l),c={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},d=c[e.style];return o.setAttribute("scriptlevel",d[0]),o.setAttribute("displaystyle",d[1]),o}});var Hq=function(t,n){var a=t.base;if(a)if(a.type==="op"){var l=a.limits&&(n.style.size===tt.DISPLAY.size||a.alwaysHandleSupSub);return l?ec:null}else if(a.type==="operatorname"){var o=a.alwaysHandleSupSub&&(n.style.size===tt.DISPLAY.size||a.limits);return o?V8:null}else{if(a.type==="accent")return Ht.isCharacterBox(a.base)?hg:null;if(a.type==="horizBrace"){var c=!t.sub;return c===a.isOver?H8:null}else return null}else return null};Si({type:"supsub",htmlBuilder(e,t){var n=Hq(e,t);if(n)return n(e,t);var{base:a,sup:l,sub:o}=e,c=Pt(a,t),d,m,f=t.fontMetrics(),p=0,x=0,y=a&&Ht.isCharacterBox(a);if(l){var b=t.havingStyle(t.style.sup());d=Pt(l,b,t),y||(p=c.height-b.fontMetrics().supDrop*b.sizeMultiplier/t.sizeMultiplier)}if(o){var j=t.havingStyle(t.style.sub());m=Pt(o,j,t),y||(x=c.depth+j.fontMetrics().subDrop*j.sizeMultiplier/t.sizeMultiplier)}var k;t.style===tt.DISPLAY?k=f.sup1:t.style.cramped?k=f.sup3:k=f.sup2;var S=t.sizeMultiplier,_=Re(.5/f.ptPerEm/S),M=null;if(m){var D=e.base&&e.base.type==="op"&&e.base.name&&(e.base.name==="\\oiint"||e.base.name==="\\oiiint");(c instanceof Ma||D)&&(M=Re(-c.italic))}var z;if(d&&m){p=Math.max(p,k,d.depth+.25*f.xHeight),x=Math.max(x,f.sub2);var L=f.defaultRuleThickness,E=4*L;if(p-d.depth-(m.height-x)0&&(p+=R,x-=R)}var H=[{type:"elem",elem:m,shift:x,marginRight:_,marginLeft:M},{type:"elem",elem:d,shift:-p,marginRight:_}];z=ue.makeVList({positionType:"individualShift",children:H},t)}else if(m){x=Math.max(x,f.sub1,m.height-.8*f.xHeight);var $=[{type:"elem",elem:m,marginLeft:M,marginRight:_}];z=ue.makeVList({positionType:"shift",positionData:x,children:$},t)}else if(d)p=Math.max(p,k,d.depth+.25*f.xHeight),z=ue.makeVList({positionType:"shift",positionData:-p,children:[{type:"elem",elem:d,marginRight:_}]},t);else throw new Error("supsub must have either sup or sub.");var I=Yx(c,"right")||"mord";return ue.makeSpan([I],[c,ue.makeSpan(["msupsub"],[z])],t)},mathmlBuilder(e,t){var n=!1,a,l;e.base&&e.base.type==="horizBrace"&&(l=!!e.sup,l===e.base.isOver&&(n=!0,a=e.base.isOver)),e.base&&(e.base.type==="op"||e.base.type==="operatorname")&&(e.base.parentIsSupSub=!0);var o=[fn(e.base,t)];e.sub&&o.push(fn(e.sub,t)),e.sup&&o.push(fn(e.sup,t));var c;if(n)c=a?"mover":"munder";else if(e.sub)if(e.sup){var f=e.base;f&&f.type==="op"&&f.limits&&t.style===tt.DISPLAY||f&&f.type==="operatorname"&&f.alwaysHandleSupSub&&(t.style===tt.DISPLAY||f.limits)?c="munderover":c="msubsup"}else{var m=e.base;m&&m.type==="op"&&m.limits&&(t.style===tt.DISPLAY||m.alwaysHandleSupSub)||m&&m.type==="operatorname"&&m.alwaysHandleSupSub&&(m.limits||t.style===tt.DISPLAY)?c="munder":c="msub"}else{var d=e.base;d&&d.type==="op"&&d.limits&&(t.style===tt.DISPLAY||d.alwaysHandleSupSub)||d&&d.type==="operatorname"&&d.alwaysHandleSupSub&&(d.limits||t.style===tt.DISPLAY)?c="mover":c="msup"}return new Ee.MathNode(c,o)}});Si({type:"atom",htmlBuilder(e,t){return ue.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){var n=new Ee.MathNode("mo",[Ea(e.text,e.mode)]);if(e.family==="bin"){var a=dg(e,t);a==="bold-italic"&&n.setAttribute("mathvariant",a)}else e.family==="punct"?n.setAttribute("separator","true"):(e.family==="open"||e.family==="close")&&n.setAttribute("stretchy","false");return n}});var Y8={mi:"italic",mn:"normal",mtext:"normal"};Si({type:"mathord",htmlBuilder(e,t){return ue.makeOrd(e,t,"mathord")},mathmlBuilder(e,t){var n=new Ee.MathNode("mi",[Ea(e.text,e.mode,t)]),a=dg(e,t)||"italic";return a!==Y8[n.type]&&n.setAttribute("mathvariant",a),n}});Si({type:"textord",htmlBuilder(e,t){return ue.makeOrd(e,t,"textord")},mathmlBuilder(e,t){var n=Ea(e.text,e.mode,t),a=dg(e,t)||"normal",l;return e.mode==="text"?l=new Ee.MathNode("mtext",[n]):/[0-9]/.test(e.text)?l=new Ee.MathNode("mn",[n]):e.text==="\\prime"?l=new Ee.MathNode("mo",[n]):l=new Ee.MathNode("mi",[n]),a!==Y8[l.type]&&l.setAttribute("mathvariant",a),l}});var sx={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},lx={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Si({type:"spacing",htmlBuilder(e,t){if(lx.hasOwnProperty(e.text)){var n=lx[e.text].className||"";if(e.mode==="text"){var a=ue.makeOrd(e,t,"textord");return a.classes.push(n),a}else return ue.makeSpan(["mspace",n],[ue.mathsym(e.text,e.mode,t)],t)}else{if(sx.hasOwnProperty(e.text))return ue.makeSpan(["mspace",sx[e.text]],[],t);throw new Ae('Unknown type of space "'+e.text+'"')}},mathmlBuilder(e,t){var n;if(lx.hasOwnProperty(e.text))n=new Ee.MathNode("mtext",[new Ee.TextNode(" ")]);else{if(sx.hasOwnProperty(e.text))return new Ee.MathNode("mspace");throw new Ae('Unknown type of space "'+e.text+'"')}return n}});var V3=()=>{var e=new Ee.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};Si({type:"tag",mathmlBuilder(e,t){var n=new Ee.MathNode("mtable",[new Ee.MathNode("mtr",[V3(),new Ee.MathNode("mtd",[El(e.body,t)]),V3(),new Ee.MathNode("mtd",[El(e.tag,t)])])]);return n.setAttribute("width","100%"),n}});var G3={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},Y3={"\\textbf":"textbf","\\textmd":"textmd"},Uq={"\\textit":"textit","\\textup":"textup"},W3=(e,t)=>{var n=e.font;if(n){if(G3[n])return t.withTextFontFamily(G3[n]);if(Y3[n])return t.withTextFontWeight(Y3[n]);if(n==="\\emph")return t.fontShape==="textit"?t.withTextFontShape("textup"):t.withTextFontShape("textit")}else return t;return t.withTextFontShape(Uq[n])};Le({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:n,funcName:a}=e,l=t[0];return{type:"text",mode:n.mode,body:Rn(l),font:a}},htmlBuilder(e,t){var n=W3(e,t),a=Kn(e.body,n,!0);return ue.makeSpan(["mord","text"],a,n)},mathmlBuilder(e,t){var n=W3(e,t);return El(e.body,n)}});Le({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"underline",mode:n.mode,body:t[0]}},htmlBuilder(e,t){var n=Pt(e.body,t),a=ue.makeLineSpan("underline-line",t),l=t.fontMetrics().defaultRuleThickness,o=ue.makeVList({positionType:"top",positionData:n.height,children:[{type:"kern",size:l},{type:"elem",elem:a},{type:"kern",size:3*l},{type:"elem",elem:n}]},t);return ue.makeSpan(["mord","underline"],[o],t)},mathmlBuilder(e,t){var n=new Ee.MathNode("mo",[new Ee.TextNode("‾")]);n.setAttribute("stretchy","true");var a=new Ee.MathNode("munder",[fn(e.body,t),n]);return a.setAttribute("accentunder","true"),a}});Le({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:n}=e;return{type:"vcenter",mode:n.mode,body:t[0]}},htmlBuilder(e,t){var n=Pt(e.body,t),a=t.fontMetrics().axisHeight,l=.5*(n.height-a-(n.depth+a));return ue.makeVList({positionType:"shift",positionData:l,children:[{type:"elem",elem:n}]},t)},mathmlBuilder(e,t){return new Ee.MathNode("mpadded",[fn(e.body,t)],["vcenter"])}});Le({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,n){throw new Ae("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var n=X3(e),a=[],l=t.havingStyle(t.style.text()),o=0;oe.body.replace(/ /g,e.star?"␣":" "),wl=x8,W8=`[ \r + ]`,$q="\\\\[a-zA-Z@]+",Vq="\\\\[^\uD800-\uDFFF]",Gq="("+$q+")"+W8+"*",Yq=`\\\\( +|[ \r ]+ +?)[ \r ]*`,Qx="[̀-ͯ]",Wq=new RegExp(Qx+"+$"),Xq="("+W8+"+)|"+(Yq+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(Qx+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(Qx+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+Gq)+("|"+Vq+")");class K3{constructor(t,n){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=t,this.settings=n,this.tokenRegex=new RegExp(Xq,"g"),this.catcodes={"%":14,"~":13}}setCatcode(t,n){this.catcodes[t]=n}lex(){var t=this.input,n=this.tokenRegex.lastIndex;if(n===t.length)return new da("EOF",new Hr(this,n,n));var a=this.tokenRegex.exec(t);if(a===null||a.index!==n)throw new Ae("Unexpected character: '"+t[n]+"'",new da(t[n],new Hr(this,n,n+1)));var l=a[6]||a[3]||(a[2]?"\\ ":" ");if(this.catcodes[l]===14){var o=t.indexOf(` +`,this.tokenRegex.lastIndex);return o===-1?(this.tokenRegex.lastIndex=t.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=o+1,this.lex()}return new da(l,new Hr(this,n,this.tokenRegex.lastIndex))}}class Kq{constructor(t,n){t===void 0&&(t={}),n===void 0&&(n={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=n,this.builtins=t,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new Ae("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var t=this.undefStack.pop();for(var n in t)t.hasOwnProperty(n)&&(t[n]==null?delete this.current[n]:this.current[n]=t[n])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(t){return this.current.hasOwnProperty(t)||this.builtins.hasOwnProperty(t)}get(t){return this.current.hasOwnProperty(t)?this.current[t]:this.builtins[t]}set(t,n,a){if(a===void 0&&(a=!1),a){for(var l=0;l0&&(this.undefStack[this.undefStack.length-1][t]=n)}else{var o=this.undefStack[this.undefStack.length-1];o&&!o.hasOwnProperty(t)&&(o[t]=this.current[t])}n==null?delete this.current[t]:this.current[t]=n}}var Qq=L8;F("\\noexpand",function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}});F("\\expandafter",function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}});F("\\@firstoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[0],numArgs:0}});F("\\@secondoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[1],numArgs:0}});F("\\@ifnextchar",function(e){var t=e.consumeArgs(3);e.consumeSpaces();var n=e.future();return t[0].length===1&&t[0][0].text===n.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}});F("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");F("\\TextOrMath",function(e){var t=e.consumeArgs(2);return e.mode==="text"?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});var Q3={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};F("\\char",function(e){var t=e.popToken(),n,a="";if(t.text==="'")n=8,t=e.popToken();else if(t.text==='"')n=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]==="\\")a=t.text.charCodeAt(1);else{if(t.text==="EOF")throw new Ae("\\char` missing argument");a=t.text.charCodeAt(0)}else n=10;if(n){if(a=Q3[t.text],a==null||a>=n)throw new Ae("Invalid base-"+n+" digit "+t.text);for(var l;(l=Q3[e.future().text])!=null&&l{var l=e.consumeArg().tokens;if(l.length!==1)throw new Ae("\\newcommand's first argument must be a macro name");var o=l[0].text,c=e.isDefined(o);if(c&&!t)throw new Ae("\\newcommand{"+o+"} attempting to redefine "+(o+"; use \\renewcommand"));if(!c&&!n)throw new Ae("\\renewcommand{"+o+"} when command "+o+" does not yet exist; use \\newcommand");var d=0;if(l=e.consumeArg().tokens,l.length===1&&l[0].text==="["){for(var m="",f=e.expandNextToken();f.text!=="]"&&f.text!=="EOF";)m+=f.text,f=e.expandNextToken();if(!m.match(/^\s*[0-9]+\s*$/))throw new Ae("Invalid number of arguments: "+m);d=parseInt(m),l=e.consumeArg().tokens}return c&&a||e.macros.set(o,{tokens:l,numArgs:d}),""};F("\\newcommand",e=>wg(e,!1,!0,!1));F("\\renewcommand",e=>wg(e,!0,!1,!1));F("\\providecommand",e=>wg(e,!0,!0,!0));F("\\message",e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(n=>n.text).join("")),""});F("\\errmessage",e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(n=>n.text).join("")),""});F("\\show",e=>{var t=e.popToken(),n=t.text;return console.log(t,e.macros.get(n),wl[n],yn.math[n],yn.text[n]),""});F("\\bgroup","{");F("\\egroup","}");F("~","\\nobreakspace");F("\\lq","`");F("\\rq","'");F("\\aa","\\r a");F("\\AA","\\r A");F("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");F("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");F("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");F("ℬ","\\mathscr{B}");F("ℰ","\\mathscr{E}");F("ℱ","\\mathscr{F}");F("ℋ","\\mathscr{H}");F("ℐ","\\mathscr{I}");F("ℒ","\\mathscr{L}");F("ℳ","\\mathscr{M}");F("ℛ","\\mathscr{R}");F("ℭ","\\mathfrak{C}");F("ℌ","\\mathfrak{H}");F("ℨ","\\mathfrak{Z}");F("\\Bbbk","\\Bbb{k}");F("·","\\cdotp");F("\\llap","\\mathllap{\\textrm{#1}}");F("\\rlap","\\mathrlap{\\textrm{#1}}");F("\\clap","\\mathclap{\\textrm{#1}}");F("\\mathstrut","\\vphantom{(}");F("\\underbar","\\underline{\\text{#1}}");F("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');F("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");F("\\ne","\\neq");F("≠","\\neq");F("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");F("∉","\\notin");F("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");F("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");F("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");F("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");F("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");F("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");F("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");F("⟂","\\perp");F("‼","\\mathclose{!\\mkern-0.8mu!}");F("∌","\\notni");F("⌜","\\ulcorner");F("⌝","\\urcorner");F("⌞","\\llcorner");F("⌟","\\lrcorner");F("©","\\copyright");F("®","\\textregistered");F("️","\\textregistered");F("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');F("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');F("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');F("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');F("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");F("⋮","\\vdots");F("\\varGamma","\\mathit{\\Gamma}");F("\\varDelta","\\mathit{\\Delta}");F("\\varTheta","\\mathit{\\Theta}");F("\\varLambda","\\mathit{\\Lambda}");F("\\varXi","\\mathit{\\Xi}");F("\\varPi","\\mathit{\\Pi}");F("\\varSigma","\\mathit{\\Sigma}");F("\\varUpsilon","\\mathit{\\Upsilon}");F("\\varPhi","\\mathit{\\Phi}");F("\\varPsi","\\mathit{\\Psi}");F("\\varOmega","\\mathit{\\Omega}");F("\\substack","\\begin{subarray}{c}#1\\end{subarray}");F("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");F("\\boxed","\\fbox{$\\displaystyle{#1}$}");F("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");F("\\implies","\\DOTSB\\;\\Longrightarrow\\;");F("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");F("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");F("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var Z3={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};F("\\dots",function(e){var t="\\dotso",n=e.expandAfterFuture().text;return n in Z3?t=Z3[n]:(n.slice(0,4)==="\\not"||n in yn.math&&["bin","rel"].includes(yn.math[n].group))&&(t="\\dotsb"),t});var jg={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};F("\\dotso",function(e){var t=e.future().text;return t in jg?"\\ldots\\,":"\\ldots"});F("\\dotsc",function(e){var t=e.future().text;return t in jg&&t!==","?"\\ldots\\,":"\\ldots"});F("\\cdots",function(e){var t=e.future().text;return t in jg?"\\@cdots\\,":"\\@cdots"});F("\\dotsb","\\cdots");F("\\dotsm","\\cdots");F("\\dotsi","\\!\\cdots");F("\\dotsx","\\ldots\\,");F("\\DOTSI","\\relax");F("\\DOTSB","\\relax");F("\\DOTSX","\\relax");F("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");F("\\,","\\tmspace+{3mu}{.1667em}");F("\\thinspace","\\,");F("\\>","\\mskip{4mu}");F("\\:","\\tmspace+{4mu}{.2222em}");F("\\medspace","\\:");F("\\;","\\tmspace+{5mu}{.2777em}");F("\\thickspace","\\;");F("\\!","\\tmspace-{3mu}{.1667em}");F("\\negthinspace","\\!");F("\\negmedspace","\\tmspace-{4mu}{.2222em}");F("\\negthickspace","\\tmspace-{5mu}{.277em}");F("\\enspace","\\kern.5em ");F("\\enskip","\\hskip.5em\\relax");F("\\quad","\\hskip1em\\relax");F("\\qquad","\\hskip2em\\relax");F("\\tag","\\@ifstar\\tag@literal\\tag@paren");F("\\tag@paren","\\tag@literal{({#1})}");F("\\tag@literal",e=>{if(e.macros.get("\\df@tag"))throw new Ae("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});F("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");F("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");F("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");F("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");F("\\newline","\\\\\\relax");F("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var X8=Re(es["Main-Regular"][84][1]-.7*es["Main-Regular"][65][1]);F("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+X8+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");F("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+X8+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");F("\\hspace","\\@ifstar\\@hspacer\\@hspace");F("\\@hspace","\\hskip #1\\relax");F("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");F("\\ordinarycolon",":");F("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");F("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');F("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');F("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');F("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');F("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');F("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');F("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');F("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');F("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');F("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');F("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');F("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');F("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');F("∷","\\dblcolon");F("∹","\\eqcolon");F("≔","\\coloneqq");F("≕","\\eqqcolon");F("⩴","\\Coloneqq");F("\\ratio","\\vcentcolon");F("\\coloncolon","\\dblcolon");F("\\colonequals","\\coloneqq");F("\\coloncolonequals","\\Coloneqq");F("\\equalscolon","\\eqqcolon");F("\\equalscoloncolon","\\Eqqcolon");F("\\colonminus","\\coloneq");F("\\coloncolonminus","\\Coloneq");F("\\minuscolon","\\eqcolon");F("\\minuscoloncolon","\\Eqcolon");F("\\coloncolonapprox","\\Colonapprox");F("\\coloncolonsim","\\Colonsim");F("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");F("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");F("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");F("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");F("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");F("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");F("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");F("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");F("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");F("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");F("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");F("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");F("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");F("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");F("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");F("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");F("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");F("\\nleqq","\\html@mathml{\\@nleqq}{≰}");F("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");F("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");F("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");F("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");F("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");F("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");F("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");F("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");F("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");F("\\imath","\\html@mathml{\\@imath}{ı}");F("\\jmath","\\html@mathml{\\@jmath}{ȷ}");F("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");F("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");F("⟦","\\llbracket");F("⟧","\\rrbracket");F("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");F("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");F("⦃","\\lBrace");F("⦄","\\rBrace");F("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");F("⦵","\\minuso");F("\\darr","\\downarrow");F("\\dArr","\\Downarrow");F("\\Darr","\\Downarrow");F("\\lang","\\langle");F("\\rang","\\rangle");F("\\uarr","\\uparrow");F("\\uArr","\\Uparrow");F("\\Uarr","\\Uparrow");F("\\N","\\mathbb{N}");F("\\R","\\mathbb{R}");F("\\Z","\\mathbb{Z}");F("\\alef","\\aleph");F("\\alefsym","\\aleph");F("\\Alpha","\\mathrm{A}");F("\\Beta","\\mathrm{B}");F("\\bull","\\bullet");F("\\Chi","\\mathrm{X}");F("\\clubs","\\clubsuit");F("\\cnums","\\mathbb{C}");F("\\Complex","\\mathbb{C}");F("\\Dagger","\\ddagger");F("\\diamonds","\\diamondsuit");F("\\empty","\\emptyset");F("\\Epsilon","\\mathrm{E}");F("\\Eta","\\mathrm{H}");F("\\exist","\\exists");F("\\harr","\\leftrightarrow");F("\\hArr","\\Leftrightarrow");F("\\Harr","\\Leftrightarrow");F("\\hearts","\\heartsuit");F("\\image","\\Im");F("\\infin","\\infty");F("\\Iota","\\mathrm{I}");F("\\isin","\\in");F("\\Kappa","\\mathrm{K}");F("\\larr","\\leftarrow");F("\\lArr","\\Leftarrow");F("\\Larr","\\Leftarrow");F("\\lrarr","\\leftrightarrow");F("\\lrArr","\\Leftrightarrow");F("\\Lrarr","\\Leftrightarrow");F("\\Mu","\\mathrm{M}");F("\\natnums","\\mathbb{N}");F("\\Nu","\\mathrm{N}");F("\\Omicron","\\mathrm{O}");F("\\plusmn","\\pm");F("\\rarr","\\rightarrow");F("\\rArr","\\Rightarrow");F("\\Rarr","\\Rightarrow");F("\\real","\\Re");F("\\reals","\\mathbb{R}");F("\\Reals","\\mathbb{R}");F("\\Rho","\\mathrm{P}");F("\\sdot","\\cdot");F("\\sect","\\S");F("\\spades","\\spadesuit");F("\\sub","\\subset");F("\\sube","\\subseteq");F("\\supe","\\supseteq");F("\\Tau","\\mathrm{T}");F("\\thetasym","\\vartheta");F("\\weierp","\\wp");F("\\Zeta","\\mathrm{Z}");F("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");F("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");F("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");F("\\bra","\\mathinner{\\langle{#1}|}");F("\\ket","\\mathinner{|{#1}\\rangle}");F("\\braket","\\mathinner{\\langle{#1}\\rangle}");F("\\Bra","\\left\\langle#1\\right|");F("\\Ket","\\left|#1\\right\\rangle");var K8=e=>t=>{var n=t.consumeArg().tokens,a=t.consumeArg().tokens,l=t.consumeArg().tokens,o=t.consumeArg().tokens,c=t.macros.get("|"),d=t.macros.get("\\|");t.macros.beginGroup();var m=x=>y=>{e&&(y.macros.set("|",c),l.length&&y.macros.set("\\|",d));var b=x;if(!x&&l.length){var j=y.future();j.text==="|"&&(y.popToken(),b=!0)}return{tokens:b?l:a,numArgs:0}};t.macros.set("|",m(!1)),l.length&&t.macros.set("\\|",m(!0));var f=t.consumeArg().tokens,p=t.expandTokens([...o,...f,...n]);return t.macros.endGroup(),{tokens:p.reverse(),numArgs:0}};F("\\bra@ket",K8(!1));F("\\bra@set",K8(!0));F("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");F("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");F("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");F("\\angln","{\\angl n}");F("\\blue","\\textcolor{##6495ed}{#1}");F("\\orange","\\textcolor{##ffa500}{#1}");F("\\pink","\\textcolor{##ff00af}{#1}");F("\\red","\\textcolor{##df0030}{#1}");F("\\green","\\textcolor{##28ae7b}{#1}");F("\\gray","\\textcolor{gray}{#1}");F("\\purple","\\textcolor{##9d38bd}{#1}");F("\\blueA","\\textcolor{##ccfaff}{#1}");F("\\blueB","\\textcolor{##80f6ff}{#1}");F("\\blueC","\\textcolor{##63d9ea}{#1}");F("\\blueD","\\textcolor{##11accd}{#1}");F("\\blueE","\\textcolor{##0c7f99}{#1}");F("\\tealA","\\textcolor{##94fff5}{#1}");F("\\tealB","\\textcolor{##26edd5}{#1}");F("\\tealC","\\textcolor{##01d1c1}{#1}");F("\\tealD","\\textcolor{##01a995}{#1}");F("\\tealE","\\textcolor{##208170}{#1}");F("\\greenA","\\textcolor{##b6ffb0}{#1}");F("\\greenB","\\textcolor{##8af281}{#1}");F("\\greenC","\\textcolor{##74cf70}{#1}");F("\\greenD","\\textcolor{##1fab54}{#1}");F("\\greenE","\\textcolor{##0d923f}{#1}");F("\\goldA","\\textcolor{##ffd0a9}{#1}");F("\\goldB","\\textcolor{##ffbb71}{#1}");F("\\goldC","\\textcolor{##ff9c39}{#1}");F("\\goldD","\\textcolor{##e07d10}{#1}");F("\\goldE","\\textcolor{##a75a05}{#1}");F("\\redA","\\textcolor{##fca9a9}{#1}");F("\\redB","\\textcolor{##ff8482}{#1}");F("\\redC","\\textcolor{##f9685d}{#1}");F("\\redD","\\textcolor{##e84d39}{#1}");F("\\redE","\\textcolor{##bc2612}{#1}");F("\\maroonA","\\textcolor{##ffbde0}{#1}");F("\\maroonB","\\textcolor{##ff92c6}{#1}");F("\\maroonC","\\textcolor{##ed5fa6}{#1}");F("\\maroonD","\\textcolor{##ca337c}{#1}");F("\\maroonE","\\textcolor{##9e034e}{#1}");F("\\purpleA","\\textcolor{##ddd7ff}{#1}");F("\\purpleB","\\textcolor{##c6b9fc}{#1}");F("\\purpleC","\\textcolor{##aa87ff}{#1}");F("\\purpleD","\\textcolor{##7854ab}{#1}");F("\\purpleE","\\textcolor{##543b78}{#1}");F("\\mintA","\\textcolor{##f5f9e8}{#1}");F("\\mintB","\\textcolor{##edf2df}{#1}");F("\\mintC","\\textcolor{##e0e5cc}{#1}");F("\\grayA","\\textcolor{##f6f7f7}{#1}");F("\\grayB","\\textcolor{##f0f1f2}{#1}");F("\\grayC","\\textcolor{##e3e5e6}{#1}");F("\\grayD","\\textcolor{##d6d8da}{#1}");F("\\grayE","\\textcolor{##babec2}{#1}");F("\\grayF","\\textcolor{##888d93}{#1}");F("\\grayG","\\textcolor{##626569}{#1}");F("\\grayH","\\textcolor{##3b3e40}{#1}");F("\\grayI","\\textcolor{##21242c}{#1}");F("\\kaBlue","\\textcolor{##314453}{#1}");F("\\kaGreen","\\textcolor{##71B307}{#1}");var Q8={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class Zq{constructor(t,n,a){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=n,this.expansionCount=0,this.feed(t),this.macros=new Kq(Qq,n.macros),this.mode=a,this.stack=[]}feed(t){this.lexer=new K3(t,this.settings)}switchMode(t){this.mode=t}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(t){this.stack.push(t)}pushTokens(t){this.stack.push(...t)}scanArgument(t){var n,a,l;if(t){if(this.consumeSpaces(),this.future().text!=="[")return null;n=this.popToken(),{tokens:l,end:a}=this.consumeArg(["]"])}else({tokens:l,start:n,end:a}=this.consumeArg());return this.pushToken(new da("EOF",a.loc)),this.pushTokens(l),new da("",Hr.range(n,a))}consumeSpaces(){for(;;){var t=this.future();if(t.text===" ")this.stack.pop();else break}}consumeArg(t){var n=[],a=t&&t.length>0;a||this.consumeSpaces();var l=this.future(),o,c=0,d=0;do{if(o=this.popToken(),n.push(o),o.text==="{")++c;else if(o.text==="}"){if(--c,c===-1)throw new Ae("Extra }",o)}else if(o.text==="EOF")throw new Ae("Unexpected end of input in a macro argument, expected '"+(t&&a?t[d]:"}")+"'",o);if(t&&a)if((c===0||c===1&&t[d]==="{")&&o.text===t[d]){if(++d,d===t.length){n.splice(-d,d);break}}else d=0}while(c!==0||a);return l.text==="{"&&n[n.length-1].text==="}"&&(n.pop(),n.shift()),n.reverse(),{tokens:n,start:l,end:o}}consumeArgs(t,n){if(n){if(n.length!==t+1)throw new Ae("The length of delimiters doesn't match the number of args!");for(var a=n[0],l=0;lthis.settings.maxExpand)throw new Ae("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(t){var n=this.popToken(),a=n.text,l=n.noexpand?null:this._getExpansion(a);if(l==null||t&&l.unexpandable){if(t&&l==null&&a[0]==="\\"&&!this.isDefined(a))throw new Ae("Undefined control sequence: "+a);return this.pushToken(n),!1}this.countExpansion(1);var o=l.tokens,c=this.consumeArgs(l.numArgs,l.delimiters);if(l.numArgs){o=o.slice();for(var d=o.length-1;d>=0;--d){var m=o[d];if(m.text==="#"){if(d===0)throw new Ae("Incomplete placeholder at end of macro body",m);if(m=o[--d],m.text==="#")o.splice(d+1,1);else if(/^[1-9]$/.test(m.text))o.splice(d,2,...c[+m.text-1]);else throw new Ae("Not a valid argument number",m)}}}return this.pushTokens(o),o.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var t=this.stack.pop();return t.treatAsRelax&&(t.text="\\relax"),t}throw new Error}expandMacro(t){return this.macros.has(t)?this.expandTokens([new da(t)]):void 0}expandTokens(t){var n=[],a=this.stack.length;for(this.pushTokens(t);this.stack.length>a;)if(this.expandOnce(!0)===!1){var l=this.stack.pop();l.treatAsRelax&&(l.noexpand=!1,l.treatAsRelax=!1),n.push(l)}return this.countExpansion(n.length),n}expandMacroAsText(t){var n=this.expandMacro(t);return n&&n.map(a=>a.text).join("")}_getExpansion(t){var n=this.macros.get(t);if(n==null)return n;if(t.length===1){var a=this.lexer.catcodes[t];if(a!=null&&a!==13)return}var l=typeof n=="function"?n(this):n;if(typeof l=="string"){var o=0;if(l.indexOf("#")!==-1)for(var c=l.replace(/##/g,"");c.indexOf("#"+(o+1))!==-1;)++o;for(var d=new K3(l,this.settings),m=[],f=d.lex();f.text!=="EOF";)m.push(f),f=d.lex();m.reverse();var p={tokens:m,numArgs:o};return p}return l}isDefined(t){return this.macros.has(t)||wl.hasOwnProperty(t)||yn.math.hasOwnProperty(t)||yn.text.hasOwnProperty(t)||Q8.hasOwnProperty(t)}isExpandable(t){var n=this.macros.get(t);return n!=null?typeof n=="string"||typeof n=="function"||!n.unexpandable:wl.hasOwnProperty(t)&&!wl[t].primitive}}var J3=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,O0=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),ix={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},e5={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class Xm{constructor(t,n){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Zq(t,n,this.mode),this.settings=n,this.leftrightDepth=0}expect(t,n){if(n===void 0&&(n=!0),this.fetch().text!==t)throw new Ae("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());n&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(t){this.mode=t,this.gullet.switchMode(t)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var t=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),t}finally{this.gullet.endGroups()}}subparse(t){var n=this.nextToken;this.consume(),this.gullet.pushToken(new da("}")),this.gullet.pushTokens(t);var a=this.parseExpression(!1);return this.expect("}"),this.nextToken=n,a}parseExpression(t,n){for(var a=[];;){this.mode==="math"&&this.consumeSpaces();var l=this.fetch();if(Xm.endOfExpression.indexOf(l.text)!==-1||n&&l.text===n||t&&wl[l.text]&&wl[l.text].infix)break;var o=this.parseAtom(n);if(o){if(o.type==="internal")continue}else break;a.push(o)}return this.mode==="text"&&this.formLigatures(a),this.handleInfixNodes(a)}handleInfixNodes(t){for(var n=-1,a,l=0;l=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+n[0]+'" used in math mode',t);var d=yn[this.mode][n].group,m=Hr.range(t),f;if(II.hasOwnProperty(d)){var p=d;f={type:"atom",mode:this.mode,family:p,loc:m,text:n}}else f={type:d,mode:this.mode,loc:m,text:n};c=f}else if(n.charCodeAt(0)>=128)this.settings.strict&&(l8(n.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+n[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+n[0]+'"'+(" ("+n.charCodeAt(0)+")"),t)),c={type:"textord",mode:"text",loc:Hr.range(t),text:n};else return null;if(this.consume(),o)for(var x=0;xf&&(f=p):p&&(f!==void 0&&f>-1&&m.push(` +`.repeat(f)||" "),f=-1,m.push(p))}return m.join("")}function a9(e,t,n){return e.type==="element"?MH(e,t,n):e.type==="text"?n.whitespace==="normal"?s9(e,n):EH(e):[]}function MH(e,t,n){const a=l9(e,n),l=e.children||[];let o=-1,c=[];if(TH(e))return c;let d,m;for(Jx(e)||c5(e)&&s5(t,e,c5)?m=` +`:CH(e)?(d=2,m=2):r9(e)&&(d=1,m=1);++o{try{o(!0);const ve=await IH({page:c,page_size:p,search:y||void 0,is_registered:j==="all"?void 0:j==="registered",is_banned:S==="all"?void 0:S==="banned",format:M==="all"?void 0:M,sort_by:"usage_count",sort_order:"desc"});t(ve.data),f(ve.total)}catch(ve){const Ze=ve instanceof Error?ve.message:"加载表情包列表失败";W({title:"错误",description:Ze,variant:"destructive"})}finally{o(!1)}},[c,p,y,j,S,M,W]),P=async()=>{try{const ve=await $H();a(ve.data)}catch(ve){console.error("加载统计数据失败:",ve)}};w.useEffect(()=>{oe()},[oe]),w.useEffect(()=>{P()},[]);const je=async ve=>{try{const Ze=await qH(ve.id);L(Ze.data),R(!0)}catch(Ze){const We=Ze instanceof Error?Ze.message:"加载详情失败";W({title:"错误",description:We,variant:"destructive"})}},Z=ve=>{L(ve),$(!0)},O=ve=>{L(ve),G(!0)},Ne=async()=>{if(z)try{await UH(z.id),W({title:"成功",description:"表情包已删除"}),G(!1),L(null),oe(),P()}catch(ve){const Ze=ve instanceof Error?ve.message:"删除失败";W({title:"错误",description:Ze,variant:"destructive"})}},se=async ve=>{try{await VH(ve.id),W({title:"成功",description:"表情包已注册"}),oe(),P()}catch(Ze){const We=Ze instanceof Error?Ze.message:"注册失败";W({title:"错误",description:We,variant:"destructive"})}},Ce=async ve=>{try{await GH(ve.id),W({title:"成功",description:"表情包已封禁"}),oe(),P()}catch(Ze){const We=Ze instanceof Error?Ze.message:"封禁失败";W({title:"错误",description:We,variant:"destructive"})}},ye=ve=>{const Ze=new Set(te);Ze.has(ve)?Ze.delete(ve):Ze.add(ve),we(Ze)},Be=()=>{te.size===e.length&&e.length>0?we(new Set):we(new Set(e.map(ve=>ve.id)))},ie=async()=>{try{const ve=await YH(Array.from(te));W({title:"批量删除完成",description:ve.message}),we(new Set),ae(!1),oe(),P()}catch(ve){W({title:"批量删除失败",description:ve instanceof Error?ve.message:"批量删除失败",variant:"destructive"})}},He=()=>{const ve=parseInt(U),Ze=Math.ceil(m/p);ve>=1&&ve<=Ze?(d(ve),q("")):W({title:"无效的页码",description:`请输入1-${Ze}之间的页码`,variant:"destructive"})},lt=n?.formats?Object.keys(n.formats):[];return r.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[r.jsxs("div",{className:"mb-4 sm:mb-6",children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"表情包管理"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理麦麦的表情包资源"})]}),r.jsx(Xt,{className:"flex-1",children:r.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[n&&r.jsxs("div",{className:"grid gap-4 grid-cols-2 lg:grid-cols-4",children:[r.jsx(ot,{children:r.jsxs(Bt,{className:"pb-2",children:[r.jsx(tr,{children:"总数"}),r.jsx(Lt,{className:"text-2xl",children:n.total})]})}),r.jsx(ot,{children:r.jsxs(Bt,{className:"pb-2",children:[r.jsx(tr,{children:"已注册"}),r.jsx(Lt,{className:"text-2xl text-green-600",children:n.registered})]})}),r.jsx(ot,{children:r.jsxs(Bt,{className:"pb-2",children:[r.jsx(tr,{children:"已封禁"}),r.jsx(Lt,{className:"text-2xl text-red-600",children:n.banned})]})}),r.jsx(ot,{children:r.jsxs(Bt,{className:"pb-2",children:[r.jsx(tr,{children:"未注册"}),r.jsx(Lt,{className:"text-2xl text-gray-600",children:n.unregistered})]})})]}),r.jsxs(ot,{children:[r.jsx(Bt,{children:r.jsxs(Lt,{className:"flex items-center gap-2",children:[r.jsx(yx,{className:"h-5 w-5"}),"搜索和筛选"]})}),r.jsxs(Vt,{className:"space-y-4",children:[r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{children:"搜索"}),r.jsxs("div",{className:"relative",children:[r.jsx(Gr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),r.jsx(Te,{placeholder:"描述或哈希值...",value:y,onChange:ve=>{b(ve.target.value),d(1)},className:"pl-8"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{children:"注册状态"}),r.jsxs(_t,{value:j,onValueChange:ve=>{k(ve),d(1)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"all",children:"全部"}),r.jsx(ze,{value:"registered",children:"已注册"}),r.jsx(ze,{value:"unregistered",children:"未注册"})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{children:"封禁状态"}),r.jsxs(_t,{value:S,onValueChange:ve=>{_(ve),d(1)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"all",children:"全部"}),r.jsx(ze,{value:"banned",children:"已封禁"}),r.jsx(ze,{value:"unbanned",children:"未封禁"})]})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{children:"格式"}),r.jsxs(_t,{value:M,onValueChange:ve=>{D(ve),d(1)},children:[r.jsx(jt,{children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"all",children:"全部"}),lt.map(ve=>r.jsxs(ze,{value:ve,children:[ve.toUpperCase()," (",n?.formats[ve],")"]},ve))]})]})]})]}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 pt-4 border-t",children:[r.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:te.size>0&&r.jsxs("span",{children:["已选择 ",te.size," 个表情包"]})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Q,{htmlFor:"emoji-page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),r.jsxs(_t,{value:p.toString(),onValueChange:ve=>{x(parseInt(ve)),d(1),we(new Set)},children:[r.jsx(jt,{id:"emoji-page-size",className:"w-20",children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"10",children:"10"}),r.jsx(ze,{value:"20",children:"20"}),r.jsx(ze,{value:"50",children:"50"}),r.jsx(ze,{value:"100",children:"100"})]})]}),te.size>0&&r.jsxs(r.Fragment,{children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>we(new Set),children:"取消选择"}),r.jsxs(re,{variant:"destructive",size:"sm",onClick:()=>ae(!0),children:[r.jsx(Ot,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]}),r.jsx("div",{className:"flex justify-end pt-4 border-t",children:r.jsxs(re,{variant:"outline",size:"sm",onClick:oe,disabled:l,children:[r.jsx(Os,{className:`h-4 w-4 mr-2 ${l?"animate-spin":""}`}),"刷新"]})})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"表情包列表"}),r.jsxs(tr,{children:["共 ",m," 个表情包,当前第 ",c," 页"]})]}),r.jsxs(Vt,{children:[r.jsx("div",{className:"hidden md:block rounded-md border overflow-hidden",children:r.jsxs(bi,{children:[r.jsx(wi,{children:r.jsxs(Un,{children:[r.jsx(ct,{className:"w-12",children:r.jsx(br,{checked:e.length>0&&te.size===e.length,onCheckedChange:Be,"aria-label":"全选"})}),r.jsx(ct,{className:"w-16",children:"预览"}),r.jsx(ct,{children:"描述"}),r.jsx(ct,{children:"格式"}),r.jsx(ct,{children:"情绪标签"}),r.jsx(ct,{className:"text-center",children:"状态"}),r.jsx(ct,{className:"text-right",children:"使用次数"}),r.jsx(ct,{className:"text-right",children:"操作"})]})}),r.jsx(ji,{children:e.length===0?r.jsx(Un,{children:r.jsx(et,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(ve=>r.jsxs(Un,{children:[r.jsx(et,{children:r.jsx(br,{checked:te.has(ve.id),onCheckedChange:()=>ye(ve.id),"aria-label":`选择 ${ve.description}`})}),r.jsx(et,{children:r.jsx("div",{className:"w-20 h-20 bg-muted rounded flex items-center justify-center overflow-hidden",children:r.jsx("img",{src:e1(ve.id),alt:ve.description||"表情包",className:"w-full h-full object-cover",onError:Ze=>{const We=Ze.target;We.style.display="none";const pn=We.parentElement;pn&&(pn.innerHTML='')}})})}),r.jsx(et,{children:r.jsxs("div",{className:"space-y-1 max-w-xs",children:[r.jsx("div",{className:"font-medium truncate",title:ve.description||"无描述",children:ve.description||"无描述"}),r.jsxs("div",{className:"text-xs text-muted-foreground font-mono",children:[ve.emoji_hash.slice(0,16),"..."]})]})}),r.jsx(et,{children:r.jsx(on,{variant:"outline",children:ve.format.toUpperCase()})}),r.jsx(et,{children:r.jsx(u5,{emotions:ve.emotion})}),r.jsx(et,{className:"align-middle",children:r.jsxs("div",{className:"flex gap-2 justify-center",children:[ve.is_registered&&r.jsxs(on,{variant:"default",className:"bg-green-600",children:[r.jsx(Ur,{className:"h-3 w-3 mr-1"}),"已注册"]}),ve.is_banned&&r.jsxs(on,{variant:"destructive",children:[r.jsx(px,{className:"h-3 w-3 mr-1"}),"已封禁"]})]})}),r.jsx(et,{className:"text-right font-mono",children:ve.usage_count}),r.jsx(et,{children:r.jsxs("div",{className:"flex items-center justify-end gap-1 flex-wrap",children:[r.jsxs(re,{variant:"default",size:"sm",onClick:()=>je(ve),children:[r.jsx(hi,{className:"h-4 w-4 mr-1"}),"详情"]}),r.jsxs(re,{variant:"default",size:"sm",onClick:()=>Z(ve),children:[r.jsx(Bo,{className:"h-4 w-4 mr-1"}),"编辑"]}),!ve.is_registered&&r.jsxs(re,{size:"sm",onClick:()=>se(ve),className:"bg-green-600 hover:bg-green-700 text-white",children:[r.jsx(Ur,{className:"h-4 w-4 mr-1"}),"注册"]}),!ve.is_banned&&r.jsxs(re,{size:"sm",onClick:()=>Ce(ve),className:"bg-orange-600 hover:bg-orange-700 text-white",children:[r.jsx(Fy,{className:"h-4 w-4 mr-1"}),"封禁"]}),r.jsxs(re,{size:"sm",onClick:()=>O(ve),className:"bg-red-600 hover:bg-red-700 text-white",children:[r.jsx(Ot,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},ve.id))})]})}),r.jsx("div",{className:"md:hidden space-y-3",children:e.length===0?r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(ve=>r.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[r.jsxs("div",{className:"flex gap-3",children:[r.jsx("div",{className:"flex-shrink-0",children:r.jsx("div",{className:"w-16 h-16 bg-muted rounded flex items-center justify-center overflow-hidden",children:r.jsx("img",{src:e1(ve.id),alt:ve.description||"表情包",className:"w-full h-full object-cover",onError:Ze=>{const We=Ze.target;We.style.display="none";const pn=We.parentElement;pn&&(pn.innerHTML='')}})})}),r.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[r.jsxs("div",{className:"min-w-0 w-full overflow-hidden",children:[r.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",title:ve.description||"无描述",children:ve.description||"无描述"}),r.jsxs("p",{className:"text-xs text-muted-foreground font-mono line-clamp-1 w-full break-all",children:[ve.emoji_hash.slice(0,16),"..."]})]}),r.jsxs("div",{className:"flex flex-wrap gap-1 items-center min-w-0",children:[r.jsx(on,{variant:"outline",className:"text-xs flex-shrink-0",children:ve.format.toUpperCase()}),ve.is_registered&&r.jsxs(on,{variant:"default",className:"bg-green-600 text-xs flex-shrink-0",children:[r.jsx(Ur,{className:"h-3 w-3 mr-1"}),"已注册"]}),ve.is_banned&&r.jsxs(on,{variant:"destructive",className:"text-xs flex-shrink-0",children:[r.jsx(px,{className:"h-3 w-3 mr-1"}),"已封禁"]}),r.jsxs("span",{className:"text-xs text-muted-foreground flex-shrink-0",children:["使用: ",ve.usage_count]})]}),ve.emotion&&ve.emotion.length>0&&r.jsx("div",{className:"min-w-0 overflow-hidden",children:r.jsx(u5,{emotions:ve.emotion})})]})]}),r.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[r.jsxs(re,{variant:"default",size:"sm",onClick:()=>je(ve),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[r.jsx(hi,{className:"h-3 w-3 mr-1"}),"详情"]}),r.jsxs(re,{variant:"default",size:"sm",onClick:()=>Z(ve),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[r.jsx(Bo,{className:"h-3 w-3 mr-1"}),"编辑"]}),!ve.is_registered&&r.jsxs(re,{size:"sm",onClick:()=>se(ve),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-green-600 hover:bg-green-700 text-white",children:[r.jsx(Ur,{className:"h-3 w-3 mr-1"}),"注册"]}),!ve.is_banned&&r.jsxs(re,{size:"sm",onClick:()=>Ce(ve),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-orange-600 hover:bg-orange-700 text-white",children:[r.jsx(Fy,{className:"h-3 w-3 mr-1"}),"封禁"]}),r.jsxs(re,{size:"sm",onClick:()=>O(ve),className:"text-xs px-2 py-1 h-auto flex-shrink-0 bg-red-600 hover:bg-red-700 text-white",children:[r.jsx(Ot,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},ve.id))}),m>0&&r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 mt-4",children:[r.jsxs("div",{className:"text-sm text-muted-foreground",children:["显示 ",(c-1)*p+1," 到"," ",Math.min(c*p,m)," 条,共 ",m," 条"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>d(1),disabled:c===1,className:"hidden sm:flex",children:r.jsx(Eu,{className:"h-4 w-4"})}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>d(ve=>Math.max(1,ve-1)),disabled:c===1,children:[r.jsx(vi,{className:"h-4 w-4 sm:mr-1"}),r.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Te,{type:"number",value:U,onChange:ve=>q(ve.target.value),onKeyDown:ve=>ve.key==="Enter"&&He(),placeholder:c.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(m/p)}),r.jsx(re,{variant:"outline",size:"sm",onClick:He,disabled:!U,className:"h-8",children:"跳转"})]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>d(ve=>ve+1),disabled:c>=Math.ceil(m/p),children:[r.jsx("span",{className:"hidden sm:inline",children:"下一页"}),r.jsx(yi,{className:"h-4 w-4 sm:ml-1"})]}),r.jsx(re,{variant:"outline",size:"sm",onClick:()=>d(Math.ceil(m/p)),disabled:c>=Math.ceil(m/p),className:"hidden sm:flex",children:r.jsx(Au,{className:"h-4 w-4"})})]})]})]})]}),r.jsx(XH,{emoji:z,open:E,onOpenChange:R}),r.jsx(KH,{emoji:z,open:H,onOpenChange:$,onSuccess:()=>{oe(),P()}})]})}),r.jsx(cn,{open:J,onOpenChange:ae,children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认批量删除"}),r.jsxs(en,{children:["你确定要删除选中的 ",te.size," 个表情包吗?此操作不可撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:ie,children:"确认删除"})]})]})}),r.jsx(hr,{open:I,onOpenChange:G,children:r.jsxs(nr,{children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"确认删除"}),r.jsx(wr,{children:"确定要删除这个表情包吗?此操作无法撤销。"})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>G(!1),children:"取消"}),r.jsx(re,{variant:"destructive",onClick:Ne,children:"删除"})]})]})})]})}function XH({emoji:e,open:t,onOpenChange:n}){if(!e)return null;const a=l=>l?new Date(l*1e3).toLocaleString("zh-CN"):"-";return r.jsx(hr,{open:t,onOpenChange:n,children:r.jsxs(nr,{className:"max-w-2xl max-h-[90vh]",children:[r.jsx(rr,{children:r.jsx(ar,{children:"表情包详情"})}),r.jsx(Xt,{className:"max-h-[calc(90vh-8rem)] pr-4",children:r.jsxs("div",{className:"space-y-4",children:[r.jsx("div",{className:"flex justify-center",children:r.jsx("div",{className:"w-32 h-32 bg-muted rounded-lg flex items-center justify-center overflow-hidden",children:r.jsx("img",{src:e1(e.id),alt:e.description||"表情包",className:"w-full h-full object-cover",onError:l=>{const o=l.target;o.style.display="none";const c=o.parentElement;c&&(c.innerHTML='')}})})}),r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"ID"}),r.jsx("div",{className:"mt-1 font-mono",children:e.id})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"格式"}),r.jsx("div",{className:"mt-1",children:r.jsx(on,{variant:"outline",children:e.format.toUpperCase()})})]})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"文件路径"}),r.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.full_path})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"哈希值"}),r.jsx("div",{className:"mt-1 font-mono text-sm break-all bg-muted p-2 rounded",children:e.emoji_hash})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"描述"}),e.description?r.jsx("div",{className:"mt-1 rounded-lg border bg-muted/50 p-3",children:r.jsx(FH,{className:"prose-sm",children:e.description})}):r.jsx("div",{className:"mt-1 text-sm text-muted-foreground",children:"-"})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"情绪标签"}),r.jsx("div",{className:"mt-2 flex flex-wrap gap-2",children:(()=>{const l=e.emotion?e.emotion.split(/[,,]/).map(o=>o.trim()).filter(Boolean):[];return l.length>0?l.map((o,c)=>r.jsx(on,{variant:"secondary",children:o},c)):r.jsx("span",{className:"text-sm text-muted-foreground",children:"无"})})()})]}),r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"状态"}),r.jsxs("div",{className:"mt-2 flex gap-2",children:[e.is_registered&&r.jsx(on,{variant:"default",className:"bg-green-600",children:"已注册"}),e.is_banned&&r.jsx(on,{variant:"destructive",children:"已封禁"}),!e.is_registered&&!e.is_banned&&r.jsx(on,{variant:"outline",children:"未注册"})]})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"使用次数"}),r.jsx("div",{className:"mt-1 font-mono text-lg",children:e.usage_count})]})]}),r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"记录时间"}),r.jsx("div",{className:"mt-1 text-sm",children:a(e.record_time)})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"注册时间"}),r.jsx("div",{className:"mt-1 text-sm",children:a(e.register_time)})]})]}),r.jsxs("div",{children:[r.jsx(Q,{className:"text-muted-foreground",children:"最后使用"}),r.jsx("div",{className:"mt-1 text-sm",children:a(e.last_used_time)})]})]})})]})})}function KH({emoji:e,open:t,onOpenChange:n,onSuccess:a}){const[l,o]=w.useState(""),[c,d]=w.useState(""),[m,f]=w.useState(!1),[p,x]=w.useState(!1),[y,b]=w.useState(!1),{toast:j}=pr();w.useEffect(()=>{e&&(o(e.description||""),d(e.emotion||""),f(e.is_registered),x(e.is_banned))},[e]);const k=async()=>{if(e)try{b(!0);const S=c.split(/[,,]/).map(_=>_.trim()).filter(Boolean).join(",");await HH(e.id,{description:l||void 0,emotion:S||void 0,is_registered:m,is_banned:p}),j({title:"成功",description:"表情包信息已更新"}),n(!1),a()}catch(S){const _=S instanceof Error?S.message:"保存失败";j({title:"错误",description:_,variant:"destructive"})}finally{b(!1)}};return e?r.jsx(hr,{open:t,onOpenChange:n,children:r.jsxs(nr,{className:"max-w-2xl",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"编辑表情包"}),r.jsx(wr,{children:"修改表情包的描述和标签信息"})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{children:[r.jsx(Q,{children:"描述"}),r.jsx(vn,{value:l,onChange:S=>o(S.target.value),placeholder:"输入表情包描述...",rows:3,className:"mt-1"})]}),r.jsxs("div",{children:[r.jsx(Q,{children:"情绪标签"}),r.jsx(Te,{value:c,onChange:S=>d(S.target.value),placeholder:"使用逗号分隔多个标签,如:开心, 微笑, 快乐",className:"mt-1"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"输入多个标签时使用逗号分隔(支持中英文逗号)"})]}),r.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(br,{id:"is_registered",checked:m,onCheckedChange:S=>f(S===!0)}),r.jsx(Q,{htmlFor:"is_registered",className:"cursor-pointer",children:"已注册"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(br,{id:"is_banned",checked:p,onCheckedChange:S=>x(S===!0)}),r.jsx(Q,{htmlFor:"is_banned",className:"cursor-pointer",children:"已封禁"})]})]})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>n(!1),children:"取消"}),r.jsx(re,{onClick:k,disabled:y,children:y?"保存中...":"保存"})]})]})}):null}function u5({emotions:e}){const t=e?e.split(/[,,]/).map(o=>o.trim()).filter(Boolean):[];if(t.length===0)return r.jsx("span",{className:"text-xs text-muted-foreground",children:"-"});const n=(o,c=6)=>o.length<=c?o:o.slice(0,c)+"...",a=t.slice(0,3),l=t.length-3;return r.jsxs("div",{className:"flex flex-wrap gap-1 max-w-full overflow-hidden",children:[a.map((o,c)=>r.jsx(on,{variant:"secondary",className:"text-xs flex-shrink-0",title:o,children:n(o)},c)),l>0&&r.jsxs(on,{variant:"outline",className:"text-xs flex-shrink-0",title:`还有 ${l} 个标签: ${t.slice(3).join(", ")}`,children:["+",l]})]})}const Ci="/api/webui/expression";async function QH(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.chat_id&&t.append("chat_id",e.chat_id);const n=await ut(`${Ci}/list?${t}`,{headers:yt()});if(!n.ok){const a=await n.json();throw new Error(a.detail||"获取表达方式列表失败")}return n.json()}async function ZH(e){const t=await ut(`${Ci}/${e}`,{headers:yt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取表达方式详情失败")}return t.json()}async function JH(e){const t=await ut(`${Ci}/`,{method:"POST",headers:yt(),body:JSON.stringify(e)});if(!t.ok){const n=await t.json();throw new Error(n.detail||"创建表达方式失败")}return t.json()}async function eU(e,t){const n=await ut(`${Ci}/${e}`,{method:"PATCH",headers:yt(),body:JSON.stringify(t)});if(!n.ok){const a=await n.json();throw new Error(a.detail||"更新表达方式失败")}return n.json()}async function tU(e){const t=await ut(`${Ci}/${e}`,{method:"DELETE",headers:yt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除表达方式失败")}return t.json()}async function nU(e){const t=await ut(`${Ci}/batch/delete`,{method:"POST",headers:yt(),body:JSON.stringify({ids:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"批量删除表达方式失败")}return t.json()}async function rU(){const e=await ut(`${Ci}/stats/summary`,{headers:yt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}function aU(){const[e,t]=w.useState([]),[n,a]=w.useState(!0),[l,o]=w.useState(0),[c,d]=w.useState(1),[m,f]=w.useState(20),[p,x]=w.useState(""),[y,b]=w.useState(null),[j,k]=w.useState(!1),[S,_]=w.useState(!1),[M,D]=w.useState(!1),[z,L]=w.useState(null),[E,R]=w.useState(new Set),[H,$]=w.useState(!1),[I,G]=w.useState(""),[te,we]=w.useState({total:0,recent_7days:0,chat_count:0,top_chats:{}}),{toast:J}=pr(),ae=async()=>{try{a(!0);const se=await QH({page:c,page_size:m,search:p||void 0});t(se.data),o(se.total)}catch(se){J({title:"加载失败",description:se instanceof Error?se.message:"无法加载表达方式",variant:"destructive"})}finally{a(!1)}},U=async()=>{try{const se=await rU();we(se.data)}catch(se){console.error("加载统计数据失败:",se)}};w.useEffect(()=>{ae(),U()},[c,m,p]);const q=async se=>{try{const Ce=await ZH(se.id);b(Ce.data),k(!0)}catch(Ce){J({title:"加载详情失败",description:Ce instanceof Error?Ce.message:"无法加载表达方式详情",variant:"destructive"})}},W=se=>{b(se),_(!0)},oe=async se=>{try{await tU(se.id),J({title:"删除成功",description:`已删除表达方式: ${se.situation}`}),L(null),ae(),U()}catch(Ce){J({title:"删除失败",description:Ce instanceof Error?Ce.message:"无法删除表达方式",variant:"destructive"})}},P=se=>{const Ce=new Set(E);Ce.has(se)?Ce.delete(se):Ce.add(se),R(Ce)},je=()=>{E.size===e.length&&e.length>0?R(new Set):R(new Set(e.map(se=>se.id)))},Z=async()=>{try{await nU(Array.from(E)),J({title:"批量删除成功",description:`已删除 ${E.size} 个表达方式`}),R(new Set),$(!1),ae(),U()}catch(se){J({title:"批量删除失败",description:se instanceof Error?se.message:"无法批量删除表达方式",variant:"destructive"})}},O=()=>{const se=parseInt(I),Ce=Math.ceil(l/m);se>=1&&se<=Ce?(d(se),G("")):J({title:"无效的页码",description:`请输入1-${Ce}之间的页码`,variant:"destructive"})},Ne=se=>se?new Date(se*1e3).toLocaleString("zh-CN"):"-";return r.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[r.jsx("div",{className:"mb-4 sm:mb-6",children:r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[r.jsxs("div",{children:[r.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[r.jsx(_u,{className:"h-8 w-8",strokeWidth:2}),"表达方式管理"]}),r.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦的表达方式和话术模板"})]}),r.jsxs(re,{onClick:()=>D(!0),className:"gap-2",children:[r.jsx(mr,{className:"h-4 w-4"}),"新增表达方式"]})]})}),r.jsx(Xt,{className:"flex-1",children:r.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsx("div",{className:"text-sm text-muted-foreground",children:"总数量"}),r.jsx("div",{className:"text-2xl font-bold mt-1",children:te.total})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsx("div",{className:"text-sm text-muted-foreground",children:"近7天新增"}),r.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:te.recent_7days})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsx("div",{className:"text-sm text-muted-foreground",children:"关联聊天数"}),r.jsx("div",{className:"text-2xl font-bold mt-1 text-blue-600",children:te.chat_count})]})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsx(Q,{htmlFor:"search",children:"搜索"}),r.jsx("div",{className:"flex flex-col sm:flex-row gap-2 mt-1.5",children:r.jsxs("div",{className:"flex-1 relative",children:[r.jsx(Gr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),r.jsx(Te,{id:"search",placeholder:"搜索情境、风格或上下文...",value:p,onChange:se=>x(se.target.value),className:"pl-9"})]})}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[r.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:E.size>0&&r.jsxs("span",{children:["已选择 ",E.size," 个表达方式"]})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Q,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),r.jsxs(_t,{value:m.toString(),onValueChange:se=>{f(parseInt(se)),d(1),R(new Set)},children:[r.jsx(jt,{id:"page-size",className:"w-20",children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"10",children:"10"}),r.jsx(ze,{value:"20",children:"20"}),r.jsx(ze,{value:"50",children:"50"}),r.jsx(ze,{value:"100",children:"100"})]})]}),E.size>0&&r.jsxs(r.Fragment,{children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>R(new Set),children:"取消选择"}),r.jsxs(re,{variant:"destructive",size:"sm",onClick:()=>$(!0),children:[r.jsx(Ot,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]})]}),r.jsxs("div",{className:"rounded-lg border bg-card",children:[r.jsx("div",{className:"hidden md:block",children:r.jsxs(bi,{children:[r.jsx(wi,{children:r.jsxs(Un,{children:[r.jsx(ct,{className:"w-12",children:r.jsx(br,{checked:E.size===e.length&&e.length>0,onCheckedChange:je})}),r.jsx(ct,{children:"情境"}),r.jsx(ct,{children:"风格"}),r.jsx(ct,{children:"聊天ID"}),r.jsx(ct,{children:"最后活跃"}),r.jsx(ct,{className:"text-right",children:"操作"})]})}),r.jsx(ji,{children:n?r.jsx(Un,{children:r.jsx(et,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?r.jsx(Un,{children:r.jsx(et,{colSpan:6,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(se=>r.jsxs(Un,{children:[r.jsx(et,{children:r.jsx(br,{checked:E.has(se.id),onCheckedChange:()=>P(se.id)})}),r.jsx(et,{className:"font-medium max-w-xs truncate",children:se.situation}),r.jsx(et,{className:"max-w-xs truncate",children:se.style}),r.jsx(et,{className:"font-mono text-sm",children:se.chat_id}),r.jsx(et,{className:"text-sm text-muted-foreground",children:Ne(se.last_active_time)}),r.jsx(et,{className:"text-right",children:r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsxs(re,{variant:"default",size:"sm",onClick:()=>q(se),children:[r.jsx(qa,{className:"h-4 w-4 mr-1"}),"详情"]}),r.jsxs(re,{variant:"default",size:"sm",onClick:()=>W(se),children:[r.jsx(Bo,{className:"h-4 w-4 mr-1"}),"编辑"]}),r.jsxs(re,{size:"sm",onClick:()=>L(se),className:"bg-red-600 hover:bg-red-700 text-white",children:[r.jsx(Ot,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},se.id))})]})}),r.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(se=>r.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(br,{checked:E.has(se.id),onCheckedChange:()=>P(se.id),className:"mt-1"}),r.jsxs("div",{className:"min-w-0 flex-1 overflow-hidden space-y-2",children:[r.jsxs("div",{children:[r.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"情境"}),r.jsx("h3",{className:"font-semibold text-sm line-clamp-2 w-full break-all",title:se.situation,children:se.situation})]}),r.jsxs("div",{children:[r.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"风格"}),r.jsx("p",{className:"text-sm line-clamp-2 w-full break-all",title:se.style,children:se.style})]})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[r.jsxs("div",{children:[r.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"聊天ID"}),r.jsx("p",{className:"font-mono text-xs truncate",children:se.chat_id})]}),r.jsxs("div",{children:[r.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后活跃"}),r.jsx("p",{className:"text-xs",children:Ne(se.last_active_time)})]})]}),r.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>q(se),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[r.jsx(qa,{className:"h-3 w-3 mr-1"}),"查看"]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>W(se),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[r.jsx(Bo,{className:"h-3 w-3 mr-1"}),"编辑"]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>L(se),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[r.jsx(Ot,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},se.id))}),l>0&&r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[r.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",l," 条记录,第 ",c," / ",Math.ceil(l/m)," 页"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>d(1),disabled:c===1,className:"hidden sm:flex",children:r.jsx(Eu,{className:"h-4 w-4"})}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>d(c-1),disabled:c===1,children:[r.jsx(vi,{className:"h-4 w-4 sm:mr-1"}),r.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Te,{type:"number",value:I,onChange:se=>G(se.target.value),onKeyDown:se=>se.key==="Enter"&&O(),placeholder:c.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(l/m)}),r.jsx(re,{variant:"outline",size:"sm",onClick:O,disabled:!I,className:"h-8",children:"跳转"})]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>d(c+1),disabled:c>=Math.ceil(l/m),children:[r.jsx("span",{className:"hidden sm:inline",children:"下一页"}),r.jsx(yi,{className:"h-4 w-4 sm:ml-1"})]}),r.jsx(re,{variant:"outline",size:"sm",onClick:()=>d(Math.ceil(l/m)),disabled:c>=Math.ceil(l/m),className:"hidden sm:flex",children:r.jsx(Au,{className:"h-4 w-4"})})]})]})]})]})}),r.jsx(sU,{expression:y,open:j,onOpenChange:k}),r.jsx(lU,{open:M,onOpenChange:D,onSuccess:()=>{ae(),U(),D(!1)}}),r.jsx(iU,{expression:y,open:S,onOpenChange:_,onSuccess:()=>{ae(),U(),_(!1)}}),r.jsx(cn,{open:!!z,onOpenChange:()=>L(null),children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:['确定要删除表达方式 "',z?.situation,'" 吗? 此操作不可撤销。']})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>z&&oe(z),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),r.jsx(oU,{open:H,onOpenChange:$,onConfirm:Z,count:E.size})]})}function sU({expression:e,open:t,onOpenChange:n}){if(!e)return null;const a=l=>l?new Date(l*1e3).toLocaleString("zh-CN"):"-";return r.jsx(hr,{open:t,onOpenChange:n,children:r.jsxs(nr,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"表达方式详情"}),r.jsx(wr,{children:"查看表达方式的完整信息"})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsx(bo,{label:"情境",value:e.situation}),r.jsx(bo,{label:"风格",value:e.style}),r.jsx(bo,{icon:J0,label:"聊天ID",value:e.chat_id,mono:!0}),r.jsx(bo,{icon:J0,label:"记录ID",value:e.id.toString(),mono:!0})]}),e.context&&r.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[r.jsx(Q,{className:"text-xs text-muted-foreground",children:"上下文"}),r.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.context})]}),e.up_content&&r.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[r.jsx(Q,{className:"text-xs text-muted-foreground",children:"上文内容"}),r.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.up_content})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsx(bo,{icon:ui,label:"最后活跃",value:a(e.last_active_time)}),r.jsx(bo,{icon:ui,label:"创建时间",value:a(e.create_date)})]})]}),r.jsx(Yr,{children:r.jsx(re,{onClick:()=>n(!1),children:"关闭"})})]})})}function bo({icon:e,label:t,value:n,mono:a=!1}){return r.jsxs("div",{className:"space-y-1",children:[r.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&r.jsx(e,{className:"h-3 w-3"}),t]}),r.jsx("div",{className:me("text-sm",a&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function lU({open:e,onOpenChange:t,onSuccess:n}){const[a,l]=w.useState({situation:"",style:"",context:"",up_content:"",chat_id:""}),[o,c]=w.useState(!1),{toast:d}=pr(),m=async()=>{if(!a.situation||!a.style||!a.chat_id){d({title:"验证失败",description:"请填写必填字段:情境、风格和聊天ID",variant:"destructive"});return}try{c(!0),await JH(a),d({title:"创建成功",description:"表达方式已创建"}),l({situation:"",style:"",context:"",up_content:"",chat_id:""}),n()}catch(f){d({title:"创建失败",description:f instanceof Error?f.message:"无法创建表达方式",variant:"destructive"})}finally{c(!1)}};return r.jsx(hr,{open:e,onOpenChange:t,children:r.jsxs(nr,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"新增表达方式"}),r.jsx(wr,{children:"创建新的表达方式记录"})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Q,{htmlFor:"situation",children:["情境 ",r.jsx("span",{className:"text-destructive",children:"*"})]}),r.jsx(Te,{id:"situation",value:a.situation,onChange:f=>l({...a,situation:f.target.value}),placeholder:"描述使用场景"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Q,{htmlFor:"style",children:["风格 ",r.jsx("span",{className:"text-destructive",children:"*"})]}),r.jsx(Te,{id:"style",value:a.style,onChange:f=>l({...a,style:f.target.value}),placeholder:"描述表达风格"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(Q,{htmlFor:"chat_id",children:["聊天ID ",r.jsx("span",{className:"text-destructive",children:"*"})]}),r.jsx(Te,{id:"chat_id",value:a.chat_id,onChange:f=>l({...a,chat_id:f.target.value}),placeholder:"关联的聊天ID"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"context",children:"上下文"}),r.jsx(vn,{id:"context",value:a.context,onChange:f=>l({...a,context:f.target.value}),placeholder:"上下文信息(可选)",rows:3})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"up_content",children:"上文内容"}),r.jsx(vn,{id:"up_content",value:a.up_content,onChange:f=>l({...a,up_content:f.target.value}),placeholder:"上文内容(可选)",rows:3})]})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>t(!1),children:"取消"}),r.jsx(re,{onClick:m,disabled:o,children:o?"创建中...":"创建"})]})]})})}function iU({expression:e,open:t,onOpenChange:n,onSuccess:a}){const[l,o]=w.useState({}),[c,d]=w.useState(!1),{toast:m}=pr();w.useEffect(()=>{e&&o({situation:e.situation,style:e.style,context:e.context||"",up_content:e.up_content||"",chat_id:e.chat_id})},[e]);const f=async()=>{if(e)try{d(!0),await eU(e.id,l),m({title:"保存成功",description:"表达方式已更新"}),a()}catch(p){m({title:"保存失败",description:p instanceof Error?p.message:"无法更新表达方式",variant:"destructive"})}finally{d(!1)}};return e?r.jsx(hr,{open:t,onOpenChange:n,children:r.jsxs(nr,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"编辑表达方式"}),r.jsx(wr,{children:"修改表达方式的信息"})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit_situation",children:"情境"}),r.jsx(Te,{id:"edit_situation",value:l.situation||"",onChange:p=>o({...l,situation:p.target.value}),placeholder:"描述使用场景"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit_style",children:"风格"}),r.jsx(Te,{id:"edit_style",value:l.style||"",onChange:p=>o({...l,style:p.target.value}),placeholder:"描述表达风格"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit_chat_id",children:"聊天ID"}),r.jsx(Te,{id:"edit_chat_id",value:l.chat_id||"",onChange:p=>o({...l,chat_id:p.target.value}),placeholder:"关联的聊天ID"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit_context",children:"上下文"}),r.jsx(vn,{id:"edit_context",value:l.context||"",onChange:p=>o({...l,context:p.target.value}),placeholder:"上下文信息",rows:3})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit_up_content",children:"上文内容"}),r.jsx(vn,{id:"edit_up_content",value:l.up_content||"",onChange:p=>o({...l,up_content:p.target.value}),placeholder:"上文内容",rows:3})]})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>n(!1),children:"取消"}),r.jsx(re,{onClick:f,disabled:c,children:c?"保存中...":"保存"})]})]})}):null}function oU({open:e,onOpenChange:t,onConfirm:n,count:a}){return r.jsx(cn,{open:e,onOpenChange:t,children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认批量删除"}),r.jsxs(en,{children:["您即将删除 ",a," 个表达方式,此操作无法撤销。确定要继续吗?"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:n,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"确认删除"})]})]})})}const tc="/api/webui/person";async function cU(e){const t=new URLSearchParams;e.page&&t.append("page",e.page.toString()),e.page_size&&t.append("page_size",e.page_size.toString()),e.search&&t.append("search",e.search),e.is_known!==void 0&&t.append("is_known",e.is_known.toString()),e.platform&&t.append("platform",e.platform);const n=await ut(`${tc}/list?${t}`,{headers:yt()});if(!n.ok){const a=await n.json();throw new Error(a.detail||"获取人物列表失败")}return n.json()}async function uU(e){const t=await ut(`${tc}/${e}`,{headers:yt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"获取人物详情失败")}return t.json()}async function dU(e,t){const n=await ut(`${tc}/${e}`,{method:"PATCH",headers:yt(),body:JSON.stringify(t)});if(!n.ok){const a=await n.json();throw new Error(a.detail||"更新人物信息失败")}return n.json()}async function mU(e){const t=await ut(`${tc}/${e}`,{method:"DELETE",headers:yt()});if(!t.ok){const n=await t.json();throw new Error(n.detail||"删除人物信息失败")}return t.json()}async function hU(){const e=await ut(`${tc}/stats/summary`,{headers:yt()});if(!e.ok){const t=await e.json();throw new Error(t.detail||"获取统计数据失败")}return e.json()}async function fU(e){const t=await ut(`${tc}/batch/delete`,{method:"POST",headers:yt(),body:JSON.stringify({person_ids:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"批量删除失败")}return t.json()}function pU(){const[e,t]=w.useState([]),[n,a]=w.useState(!0),[l,o]=w.useState(0),[c,d]=w.useState(1),[m,f]=w.useState(20),[p,x]=w.useState(""),[y,b]=w.useState(void 0),[j,k]=w.useState(void 0),[S,_]=w.useState(null),[M,D]=w.useState(!1),[z,L]=w.useState(!1),[E,R]=w.useState(null),[H,$]=w.useState({total:0,known:0,unknown:0,platforms:{}}),[I,G]=w.useState(new Set),[te,we]=w.useState(!1),[J,ae]=w.useState(""),{toast:U}=pr(),q=async()=>{try{a(!0);const ie=await cU({page:c,page_size:m,search:p||void 0,is_known:y,platform:j});t(ie.data),o(ie.total)}catch(ie){U({title:"加载失败",description:ie instanceof Error?ie.message:"无法加载人物信息",variant:"destructive"})}finally{a(!1)}},W=async()=>{try{const ie=await hU();$(ie.data)}catch(ie){console.error("加载统计数据失败:",ie)}};w.useEffect(()=>{q(),W()},[c,m,p,y,j]);const oe=async ie=>{try{const He=await uU(ie.person_id);_(He.data),D(!0)}catch(He){U({title:"加载详情失败",description:He instanceof Error?He.message:"无法加载人物详情",variant:"destructive"})}},P=ie=>{_(ie),L(!0)},je=async ie=>{try{await mU(ie.person_id),U({title:"删除成功",description:`已删除人物信息: ${ie.person_name||ie.nickname||ie.user_id}`}),R(null),q(),W()}catch(He){U({title:"删除失败",description:He instanceof Error?He.message:"无法删除人物信息",variant:"destructive"})}},Z=w.useMemo(()=>Object.keys(H.platforms),[H.platforms]),O=ie=>{const He=new Set(I);He.has(ie)?He.delete(ie):He.add(ie),G(He)},Ne=()=>{I.size===e.length&&e.length>0?G(new Set):G(new Set(e.map(ie=>ie.person_id)))},se=()=>{if(I.size===0){U({title:"未选择任何人物",description:"请先选择要删除的人物",variant:"destructive"});return}we(!0)},Ce=async()=>{try{const ie=await fU(Array.from(I));U({title:"批量删除完成",description:ie.message}),G(new Set),we(!1),q(),W()}catch(ie){U({title:"批量删除失败",description:ie instanceof Error?ie.message:"批量删除失败",variant:"destructive"})}},ye=()=>{const ie=parseInt(J),He=Math.ceil(l/m);ie>=1&&ie<=He?(d(ie),ae("")):U({title:"无效的页码",description:`请输入1-${He}之间的页码`,variant:"destructive"})},Be=ie=>ie?new Date(ie*1e3).toLocaleString("zh-CN"):"-";return r.jsxs("div",{className:"h-[calc(100vh-4rem)] flex flex-col p-4 sm:p-6",children:[r.jsx("div",{className:"mb-4 sm:mb-6",children:r.jsx("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:r.jsxs("div",{children:[r.jsxs("h1",{className:"text-2xl sm:text-3xl font-bold flex items-center gap-2",children:[r.jsx(yT,{className:"h-8 w-8",strokeWidth:2}),"人物信息管理"]}),r.jsx("p",{className:"text-muted-foreground mt-1 text-sm sm:text-base",children:"管理麦麦认识的所有人物信息"})]})})}),r.jsx(Xt,{className:"flex-1",children:r.jsxs("div",{className:"space-y-4 sm:space-y-6 pr-4",children:[r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-4",children:[r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsx("div",{className:"text-sm text-muted-foreground",children:"总人数"}),r.jsx("div",{className:"text-2xl font-bold mt-1",children:H.total})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsx("div",{className:"text-sm text-muted-foreground",children:"已认识"}),r.jsx("div",{className:"text-2xl font-bold mt-1 text-green-600",children:H.known})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsx("div",{className:"text-sm text-muted-foreground",children:"未认识"}),r.jsx("div",{className:"text-2xl font-bold mt-1 text-muted-foreground",children:H.unknown})]})]}),r.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-4 gap-4",children:[r.jsxs("div",{className:"sm:col-span-2",children:[r.jsx(Q,{htmlFor:"search",children:"搜索"}),r.jsxs("div",{className:"relative mt-1.5",children:[r.jsx(Gr,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),r.jsx(Te,{id:"search",placeholder:"搜索名称、昵称或用户ID...",value:p,onChange:ie=>x(ie.target.value),className:"pl-9"})]})]}),r.jsxs("div",{children:[r.jsx(Q,{htmlFor:"filter-known",children:"认识状态"}),r.jsxs(_t,{value:y===void 0?"all":y.toString(),onValueChange:ie=>{b(ie==="all"?void 0:ie==="true"),d(1)},children:[r.jsx(jt,{id:"filter-known",className:"mt-1.5",children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"all",children:"全部"}),r.jsx(ze,{value:"true",children:"已认识"}),r.jsx(ze,{value:"false",children:"未认识"})]})]})]}),r.jsxs("div",{children:[r.jsx(Q,{htmlFor:"filter-platform",children:"平台"}),r.jsxs(_t,{value:j||"all",onValueChange:ie=>{k(ie==="all"?void 0:ie),d(1)},children:[r.jsx(jt,{id:"filter-platform",className:"mt-1.5",children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"all",children:"全部平台"}),Z.map(ie=>r.jsxs(ze,{value:ie,children:[ie," (",H.platforms[ie],")"]},ie))]})]})]})]}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 mt-4 pt-4 border-t",children:[r.jsx("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:I.size>0&&r.jsxs("span",{children:["已选择 ",I.size," 个人物"]})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Q,{htmlFor:"page-size",className:"text-sm whitespace-nowrap",children:"每页显示"}),r.jsxs(_t,{value:m.toString(),onValueChange:ie=>{f(parseInt(ie)),d(1),G(new Set)},children:[r.jsx(jt,{id:"page-size",className:"w-20",children:r.jsx(Mt,{})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"10",children:"10"}),r.jsx(ze,{value:"20",children:"20"}),r.jsx(ze,{value:"50",children:"50"}),r.jsx(ze,{value:"100",children:"100"})]})]}),I.size>0&&r.jsxs(r.Fragment,{children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>G(new Set),children:"取消选择"}),r.jsxs(re,{variant:"destructive",size:"sm",onClick:se,children:[r.jsx(Ot,{className:"h-4 w-4 mr-1"}),"批量删除"]})]})]})]})]}),r.jsxs("div",{className:"rounded-lg border bg-card",children:[r.jsx("div",{className:"hidden md:block",children:r.jsxs(bi,{children:[r.jsx(wi,{children:r.jsxs(Un,{children:[r.jsx(ct,{className:"w-12",children:r.jsx(br,{checked:e.length>0&&I.size===e.length,onCheckedChange:Ne,"aria-label":"全选"})}),r.jsx(ct,{children:"状态"}),r.jsx(ct,{children:"名称"}),r.jsx(ct,{children:"昵称"}),r.jsx(ct,{children:"平台"}),r.jsx(ct,{children:"用户ID"}),r.jsx(ct,{children:"最后更新"}),r.jsx(ct,{className:"text-right",children:"操作"})]})}),r.jsx(ji,{children:n?r.jsx(Un,{children:r.jsx(et,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"加载中..."})}):e.length===0?r.jsx(Un,{children:r.jsx(et,{colSpan:8,className:"text-center py-8 text-muted-foreground",children:"暂无数据"})}):e.map(ie=>r.jsxs(Un,{children:[r.jsx(et,{children:r.jsx(br,{checked:I.has(ie.person_id),onCheckedChange:()=>O(ie.person_id),"aria-label":`选择 ${ie.person_name||ie.nickname||ie.user_id}`})}),r.jsx(et,{children:r.jsx("div",{className:me("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium",ie.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:ie.is_known?"已认识":"未认识"})}),r.jsx(et,{className:"font-medium",children:ie.person_name||r.jsx("span",{className:"text-muted-foreground",children:"-"})}),r.jsx(et,{children:ie.nickname||"-"}),r.jsx(et,{children:ie.platform}),r.jsx(et,{className:"font-mono text-sm",children:ie.user_id}),r.jsx(et,{className:"text-sm text-muted-foreground",children:Be(ie.last_know)}),r.jsx(et,{className:"text-right",children:r.jsxs("div",{className:"flex justify-end gap-2",children:[r.jsxs(re,{variant:"default",size:"sm",onClick:()=>oe(ie),children:[r.jsx(qa,{className:"h-4 w-4 mr-1"}),"详情"]}),r.jsxs(re,{variant:"default",size:"sm",onClick:()=>P(ie),children:[r.jsx(Bo,{className:"h-4 w-4 mr-1"}),"编辑"]}),r.jsxs(re,{size:"sm",onClick:()=>R(ie),className:"bg-red-600 hover:bg-red-700 text-white",children:[r.jsx(Ot,{className:"h-4 w-4 mr-1"}),"删除"]})]})})]},ie.id))})]})}),r.jsx("div",{className:"md:hidden space-y-3 p-4",children:n?r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"加载中..."}):e.length===0?r.jsx("div",{className:"text-center py-8 text-muted-foreground",children:"暂无数据"}):e.map(ie=>r.jsxs("div",{className:"rounded-lg border bg-card p-4 space-y-3 overflow-hidden",children:[r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(br,{checked:I.has(ie.person_id),onCheckedChange:()=>O(ie.person_id),className:"mt-1"}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("div",{className:me("inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium mb-2",ie.is_known?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":"bg-gray-100 text-gray-700 dark:bg-gray-800 dark:text-gray-400"),children:ie.is_known?"已认识":"未认识"}),r.jsx("h3",{className:"font-semibold text-sm line-clamp-1 w-full break-all",children:ie.person_name||r.jsx("span",{className:"text-muted-foreground",children:"未命名"})}),ie.nickname&&r.jsxs("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-1 w-full break-all",children:["昵称: ",ie.nickname]})]})]}),r.jsxs("div",{className:"grid grid-cols-2 gap-2 text-sm",children:[r.jsxs("div",{children:[r.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"平台"}),r.jsx("p",{className:"font-medium text-xs",children:ie.platform})]}),r.jsxs("div",{children:[r.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"用户ID"}),r.jsx("p",{className:"font-mono text-xs truncate",title:ie.user_id,children:ie.user_id})]}),r.jsxs("div",{className:"col-span-2",children:[r.jsx("div",{className:"text-xs text-muted-foreground mb-1",children:"最后更新"}),r.jsx("p",{className:"text-xs",children:Be(ie.last_know)})]})]}),r.jsxs("div",{className:"flex flex-wrap gap-1 pt-2 border-t overflow-hidden",children:[r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>oe(ie),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[r.jsx(qa,{className:"h-3 w-3 mr-1"}),"查看"]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>P(ie),className:"text-xs px-2 py-1 h-auto flex-shrink-0",children:[r.jsx(Bo,{className:"h-3 w-3 mr-1"}),"编辑"]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>R(ie),className:"text-xs px-2 py-1 h-auto flex-shrink-0 text-destructive hover:text-destructive",children:[r.jsx(Ot,{className:"h-3 w-3 mr-1"}),"删除"]})]})]},ie.id))}),l>0&&r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4 px-4 py-3 border-t",children:[r.jsxs("div",{className:"text-sm text-muted-foreground",children:["共 ",l," 条记录,第 ",c," / ",Math.ceil(l/m)," 页"]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>d(1),disabled:c===1,className:"hidden sm:flex",children:r.jsx(Eu,{className:"h-4 w-4"})}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>d(c-1),disabled:c===1,children:[r.jsx(vi,{className:"h-4 w-4 sm:mr-1"}),r.jsx("span",{className:"hidden sm:inline",children:"上一页"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Te,{type:"number",value:J,onChange:ie=>ae(ie.target.value),onKeyDown:ie=>ie.key==="Enter"&&ye(),placeholder:c.toString(),className:"w-16 h-8 text-center",min:1,max:Math.ceil(l/m)}),r.jsx(re,{variant:"outline",size:"sm",onClick:ye,disabled:!J,className:"h-8",children:"跳转"})]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:()=>d(c+1),disabled:c>=Math.ceil(l/m),children:[r.jsx("span",{className:"hidden sm:inline",children:"下一页"}),r.jsx(yi,{className:"h-4 w-4 sm:ml-1"})]}),r.jsx(re,{variant:"outline",size:"sm",onClick:()=>d(Math.ceil(l/m)),disabled:c>=Math.ceil(l/m),className:"hidden sm:flex",children:r.jsx(Au,{className:"h-4 w-4"})})]})]})]})]})}),r.jsx(xU,{person:S,open:M,onOpenChange:D}),r.jsx(gU,{person:S,open:z,onOpenChange:L,onSuccess:()=>{q(),W(),L(!1)}}),r.jsx(cn,{open:!!E,onOpenChange:()=>R(null),children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认删除"}),r.jsxs(en,{children:['确定要删除人物信息 "',E?.person_name||E?.nickname||E?.user_id,'" 吗? 此操作不可撤销。']})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:()=>E&&je(E),className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"删除"})]})]})}),r.jsx(cn,{open:te,onOpenChange:we,children:r.jsxs(Kt,{children:[r.jsxs(Qt,{children:[r.jsx(Jt,{children:"确认批量删除"}),r.jsxs(en,{children:["确定要删除选中的 ",I.size," 个人物信息吗? 此操作不可撤销。"]})]}),r.jsxs(Zt,{children:[r.jsx(nn,{children:"取消"}),r.jsx(tn,{onClick:Ce,className:"bg-destructive text-destructive-foreground hover:bg-destructive/90",children:"批量删除"})]})]})})]})}function xU({person:e,open:t,onOpenChange:n}){if(!e)return null;const a=l=>l?new Date(l*1e3).toLocaleString("zh-CN"):"-";return r.jsx(hr,{open:t,onOpenChange:n,children:r.jsxs(nr,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"人物详情"}),r.jsxs(wr,{children:["查看 ",e.person_name||e.nickname||e.user_id," 的完整信息"]})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsx(Es,{icon:Z5,label:"人物名称",value:e.person_name}),r.jsx(Es,{icon:_u,label:"昵称",value:e.nickname}),r.jsx(Es,{icon:J0,label:"用户ID",value:e.user_id,mono:!0}),r.jsx(Es,{icon:J0,label:"人物ID",value:e.person_id,mono:!0}),r.jsx(Es,{label:"平台",value:e.platform}),r.jsx(Es,{label:"状态",value:e.is_known?"已认识":"未认识"})]}),e.name_reason&&r.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[r.jsx(Q,{className:"text-xs text-muted-foreground",children:"名称设定原因"}),r.jsx("p",{className:"mt-1 text-sm",children:e.name_reason})]}),e.memory_points&&r.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[r.jsx(Q,{className:"text-xs text-muted-foreground",children:"个人印象"}),r.jsx("p",{className:"mt-1 text-sm whitespace-pre-wrap",children:e.memory_points})]}),e.group_nick_name&&e.group_nick_name.length>0&&r.jsxs("div",{className:"rounded-lg border bg-muted/50 p-3",children:[r.jsx(Q,{className:"text-xs text-muted-foreground",children:"群昵称"}),r.jsx("div",{className:"mt-2 space-y-1",children:e.group_nick_name.map((l,o)=>r.jsxs("div",{className:"text-sm flex items-center gap-2",children:[r.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:l.group_id}),r.jsx("span",{children:"→"}),r.jsx("span",{children:l.group_nick_name})]},o))})]}),r.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[r.jsx(Es,{icon:ui,label:"认识时间",value:a(e.know_times)}),r.jsx(Es,{icon:ui,label:"首次记录",value:a(e.know_since)}),r.jsx(Es,{icon:ui,label:"最后更新",value:a(e.last_know)})]})]}),r.jsx(Yr,{children:r.jsx(re,{onClick:()=>n(!1),children:"关闭"})})]})})}function Es({icon:e,label:t,value:n,mono:a=!1}){return r.jsxs("div",{className:"space-y-1",children:[r.jsxs(Q,{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e&&r.jsx(e,{className:"h-3 w-3"}),t]}),r.jsx("div",{className:me("text-sm",a&&"font-mono",!n&&"text-muted-foreground"),children:n||"-"})]})}function gU({person:e,open:t,onOpenChange:n,onSuccess:a}){const[l,o]=w.useState({}),[c,d]=w.useState(!1),{toast:m}=pr();w.useEffect(()=>{e&&o({person_name:e.person_name||"",name_reason:e.name_reason||"",nickname:e.nickname||"",memory_points:e.memory_points||"",is_known:e.is_known})},[e]);const f=async()=>{if(e)try{d(!0),await dU(e.person_id,l),m({title:"保存成功",description:"人物信息已更新"}),a()}catch(p){m({title:"保存失败",description:p instanceof Error?p.message:"无法更新人物信息",variant:"destructive"})}finally{d(!1)}};return e?r.jsx(hr,{open:t,onOpenChange:n,children:r.jsxs(nr,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"编辑人物信息"}),r.jsxs(wr,{children:["修改 ",e.person_name||e.nickname||e.user_id," 的信息"]})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"person_name",children:"人物名称"}),r.jsx(Te,{id:"person_name",value:l.person_name||"",onChange:p=>o({...l,person_name:p.target.value}),placeholder:"为这个人设置一个名称"})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"nickname",children:"昵称"}),r.jsx(Te,{id:"nickname",value:l.nickname||"",onChange:p=>o({...l,nickname:p.target.value}),placeholder:"昵称"})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"name_reason",children:"名称设定原因"}),r.jsx(vn,{id:"name_reason",value:l.name_reason||"",onChange:p=>o({...l,name_reason:p.target.value}),placeholder:"为什么这样称呼这个人?",rows:2})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"memory_points",children:"个人印象"}),r.jsx(vn,{id:"memory_points",value:l.memory_points||"",onChange:p=>o({...l,memory_points:p.target.value}),placeholder:"对这个人的印象和记忆点...",rows:4})]}),r.jsxs("div",{className:"flex items-center justify-between rounded-lg border p-3",children:[r.jsxs("div",{children:[r.jsx(Q,{htmlFor:"is_known",className:"text-base font-medium",children:"已认识"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"标记是否已经认识这个人"})]}),r.jsx(gt,{id:"is_known",checked:l.is_known,onCheckedChange:p=>o({...l,is_known:p})})]})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>n(!1),children:"取消"}),r.jsx(re,{onClick:f,disabled:c,children:c?"保存中...":"保存"})]})]})}):null}function vU(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const yU={},ru={};function ci(e,t){try{const a=(yU[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return a in ru?ru[a]:d5(a,a.split(":"))}catch{if(e in ru)return ru[e];const n=e?.match(bU);return n?d5(e,n.slice(1)):NaN}}const bU=/([+-]\d\d):?(\d\d)?/;function d5(e,t){const n=+(t[0]||0),a=+(t[1]||0),l=+(t[2]||0)/60;return ru[e]=n*60+a>0?n*60+a+l:n*60-a-l}class ns extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(ci(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),i9(this),t1(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new ns(...n,t):new ns(Date.now(),t)}withTimeZone(t){return new ns(+this,t)}getTimezoneOffset(){const t=-ci(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),t1(this),+this}[Symbol.for("constructDateFrom")](t){return new ns(+new Date(t),this.timeZone)}}const m5=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!m5.test(e))return;const t=e.replace(m5,"$1UTC");ns.prototype[t]&&(e.startsWith("get")?ns.prototype[e]=function(){return this.internal[t]()}:(ns.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),wU(this),+this},ns.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),t1(this),+this}))});function t1(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-ci(e.timeZone,e)*60))}function wU(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),i9(e)}function i9(e){const t=ci(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),a=new Date(+e);a.setUTCHours(a.getUTCHours()-1);const l=-new Date(+e).getTimezoneOffset(),o=-new Date(+a).getTimezoneOffset(),c=l-o,d=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();c&&d&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+c);const m=l-n;m&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+m);const f=new Date(+e);f.setUTCSeconds(0);const p=l>0?f.getSeconds():(f.getSeconds()-60)%60,x=Math.round(-(ci(e.timeZone,e)*60))%60;(x||p)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+x),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+x+p));const y=ci(e.timeZone,e),b=y>0?Math.floor(y):Math.ceil(y),k=-new Date(+e).getTimezoneOffset()-b,S=b!==n,_=k-m;if(S&&_){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+_);const M=ci(e.timeZone,e),D=M>0?Math.floor(M):Math.ceil(M),z=b-D;z&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+z),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+z))}}class xr extends ns{static tz(t,...n){return n.length?new xr(...n,t):new xr(Date.now(),t)}toISOString(){const[t,n,a]=this.tzComponents(),l=`${t}${n}:${a}`;return this.internal.toISOString().slice(0,-1)+l}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,a,l]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${a} ${n} ${l}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,a,l]=this.tzComponents();return`${t} GMT${n}${a}${l} (${vU(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",a=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),l=String(Math.abs(t)%60).padStart(2,"0");return[n,a,l]}withTimeZone(t){return new xr(+this,t)}[Symbol.for("constructDateFrom")](t){return new xr(+new Date(t),this.timeZone)}}const o9=6048e5,jU=864e5,h5=Symbol.for("constructDateFrom");function $n(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&h5 in e?e[h5](t):e instanceof Date?new e.constructor(t):new Date(t)}function un(e,t){return $n(t||e,e)}function c9(e,t,n){const a=un(e,n?.in);return isNaN(t)?$n(e,NaN):(t&&a.setDate(a.getDate()+t),a)}function u9(e,t,n){const a=un(e,n?.in);if(isNaN(t))return $n(e,NaN);if(!t)return a;const l=a.getDate(),o=$n(e,a.getTime());o.setMonth(a.getMonth()+t+1,0);const c=o.getDate();return l>=c?o:(a.setFullYear(o.getFullYear(),o.getMonth(),l),a)}let NU={};function Xu(){return NU}function Al(e,t){const n=Xu(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,l=un(e,t?.in),o=l.getDay(),c=(o=o.getTime()?a+1:n.getTime()>=d.getTime()?a:a-1}function f5(e){const t=un(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Ti(e,...t){const n=$n.bind(null,e||t.find(a=>typeof a=="object"));return t.map(n)}function Nu(e,t){const n=un(e,t?.in);return n.setHours(0,0,0,0),n}function m9(e,t,n){const[a,l]=Ti(n?.in,e,t),o=Nu(a),c=Nu(l),d=+o-f5(o),m=+c-f5(c);return Math.round((d-m)/jU)}function SU(e,t){const n=d9(e,t),a=$n(e,0);return a.setFullYear(n,0,4),a.setHours(0,0,0,0),ju(a)}function kU(e,t,n){return c9(e,t*7,n)}function CU(e,t,n){return u9(e,t*12,n)}function TU(e,t){let n,a=t?.in;return e.forEach(l=>{!a&&typeof l=="object"&&(a=$n.bind(null,l));const o=un(l,a);(!n||n{!a&&typeof l=="object"&&(a=$n.bind(null,l));const o=un(l,a);(!n||n>o||isNaN(+o))&&(n=o)}),$n(a,n||NaN)}function MU(e,t,n){const[a,l]=Ti(n?.in,e,t);return+Nu(a)==+Nu(l)}function h9(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function EU(e){return!(!h9(e)&&typeof e!="number"||isNaN(+un(e)))}function AU(e,t,n){const[a,l]=Ti(n?.in,e,t),o=a.getFullYear()-l.getFullYear(),c=a.getMonth()-l.getMonth();return o*12+c}function DU(e,t){const n=un(e,t?.in),a=n.getMonth();return n.setFullYear(n.getFullYear(),a+1,0),n.setHours(23,59,59,999),n}function f9(e,t){const[n,a]=Ti(e,t.start,t.end);return{start:n,end:a}}function zU(e,t){const{start:n,end:a}=f9(t?.in,e);let l=+n>+a;const o=l?+n:+a,c=l?a:n;c.setHours(0,0,0,0),c.setDate(1);let d=1;const m=[];for(;+c<=o;)m.push($n(n,c)),c.setMonth(c.getMonth()+d);return l?m.reverse():m}function OU(e,t){const n=un(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function RU(e,t){const n=un(e,t?.in),a=n.getFullYear();return n.setFullYear(a+1,0,0),n.setHours(23,59,59,999),n}function p9(e,t){const n=un(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function BU(e,t){const{start:n,end:a}=f9(t?.in,e);let l=+n>+a;const o=l?+n:+a,c=l?a:n;c.setHours(0,0,0,0),c.setMonth(0,1);let d=1;const m=[];for(;+c<=o;)m.push($n(n,c)),c.setFullYear(c.getFullYear()+d);return l?m.reverse():m}function x9(e,t){const n=Xu(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,l=un(e,t?.in),o=l.getDay(),c=(o{let a;const l=PU[e];return typeof l=="string"?a=l:t===1?a=l.one:a=l.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function Oo(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const IU={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},qU={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},HU={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},UU={date:Oo({formats:IU,defaultWidth:"full"}),time:Oo({formats:qU,defaultWidth:"full"}),dateTime:Oo({formats:HU,defaultWidth:"full"})},$U={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},VU=(e,t,n,a)=>$U[e];function Za(e){return(t,n)=>{const a=n?.context?String(n.context):"standalone";let l;if(a==="formatting"&&e.formattingValues){const c=e.defaultFormattingWidth||e.defaultWidth,d=n?.width?String(n.width):c;l=e.formattingValues[d]||e.formattingValues[c]}else{const c=e.defaultWidth,d=n?.width?String(n.width):e.defaultWidth;l=e.values[d]||e.values[c]}const o=e.argumentCallback?e.argumentCallback(t):t;return l[o]}}const GU={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},YU={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},WU={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},XU={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},KU={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},QU={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},ZU=(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},JU={ordinalNumber:ZU,era:Za({values:GU,defaultWidth:"wide"}),quarter:Za({values:YU,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Za({values:WU,defaultWidth:"wide"}),day:Za({values:XU,defaultWidth:"wide"}),dayPeriod:Za({values:KU,defaultWidth:"wide",formattingValues:QU,defaultFormattingWidth:"wide"})};function Ja(e){return(t,n={})=>{const a=n.width,l=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],o=t.match(l);if(!o)return null;const c=o[0],d=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],m=Array.isArray(d)?t$(d,x=>x.test(c)):e$(d,x=>x.test(c));let f;f=e.valueCallback?e.valueCallback(m):m,f=n.valueCallback?n.valueCallback(f):f;const p=t.slice(c.length);return{value:f,rest:p}}}function e$(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function t$(e,t){for(let n=0;n{const a=t.match(e.matchPattern);if(!a)return null;const l=a[0],o=t.match(e.parsePattern);if(!o)return null;let c=e.valueCallback?e.valueCallback(o[0]):o[0];c=n.valueCallback?n.valueCallback(c):c;const d=t.slice(l.length);return{value:c,rest:d}}}const n$=/^(\d+)(th|st|nd|rd)?/i,r$=/\d+/i,a$={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},s$={any:[/^b/i,/^(a|c)/i]},l$={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},i$={any:[/1/i,/2/i,/3/i,/4/i]},o$={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},c$={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},u$={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},d$={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},m$={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},h$={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},f$={ordinalNumber:g9({matchPattern:n$,parsePattern:r$,valueCallback:e=>parseInt(e,10)}),era:Ja({matchPatterns:a$,defaultMatchWidth:"wide",parsePatterns:s$,defaultParseWidth:"any"}),quarter:Ja({matchPatterns:l$,defaultMatchWidth:"wide",parsePatterns:i$,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Ja({matchPatterns:o$,defaultMatchWidth:"wide",parsePatterns:c$,defaultParseWidth:"any"}),day:Ja({matchPatterns:u$,defaultMatchWidth:"wide",parsePatterns:d$,defaultParseWidth:"any"}),dayPeriod:Ja({matchPatterns:m$,defaultMatchWidth:"any",parsePatterns:h$,defaultParseWidth:"any"})},Cg={code:"en-US",formatDistance:FU,formatLong:UU,formatRelative:VU,localize:JU,match:f$,options:{weekStartsOn:0,firstWeekContainsDate:1}};function p$(e,t){const n=un(e,t?.in);return m9(n,p9(n))+1}function v9(e,t){const n=un(e,t?.in),a=+ju(n)-+SU(n);return Math.round(a/o9)+1}function y9(e,t){const n=un(e,t?.in),a=n.getFullYear(),l=Xu(),o=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??l.firstWeekContainsDate??l.locale?.options?.firstWeekContainsDate??1,c=$n(t?.in||e,0);c.setFullYear(a+1,0,o),c.setHours(0,0,0,0);const d=Al(c,t),m=$n(t?.in||e,0);m.setFullYear(a,0,o),m.setHours(0,0,0,0);const f=Al(m,t);return+n>=+d?a+1:+n>=+f?a:a-1}function x$(e,t){const n=Xu(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,l=y9(e,t),o=$n(t?.in||e,0);return o.setFullYear(l,0,a),o.setHours(0,0,0,0),Al(o,t)}function b9(e,t){const n=un(e,t?.in),a=+Al(n,t)-+x$(n,t);return Math.round(a/o9)+1}function Wt(e,t){const n=e<0?"-":"",a=Math.abs(e).toString().padStart(t,"0");return n+a}const bl={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return Wt(t==="yy"?a%100:a,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Wt(n+1,2)},d(e,t){return Wt(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Wt(e.getHours()%12||12,t.length)},H(e,t){return Wt(e.getHours(),t.length)},m(e,t){return Wt(e.getMinutes(),t.length)},s(e,t){return Wt(e.getSeconds(),t.length)},S(e,t){const n=t.length,a=e.getMilliseconds(),l=Math.trunc(a*Math.pow(10,n-3));return Wt(l,t.length)}},wo={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},p5={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});case"GGGG":default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const a=e.getFullYear(),l=a>0?a:1-a;return n.ordinalNumber(l,{unit:"year"})}return bl.y(e,t)},Y:function(e,t,n,a){const l=y9(e,a),o=l>0?l:1-l;if(t==="YY"){const c=o%100;return Wt(c,2)}return t==="Yo"?n.ordinalNumber(o,{unit:"year"}):Wt(o,t.length)},R:function(e,t){const n=d9(e);return Wt(n,t.length)},u:function(e,t){const n=e.getFullYear();return Wt(n,t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return Wt(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return Wt(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return bl.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return Wt(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const l=b9(e,a);return t==="wo"?n.ordinalNumber(l,{unit:"week"}):Wt(l,t.length)},I:function(e,t,n){const a=v9(e);return t==="Io"?n.ordinalNumber(a,{unit:"week"}):Wt(a,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):bl.d(e,t)},D:function(e,t,n){const a=p$(e);return t==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):Wt(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});case"EEEE":default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const l=e.getDay(),o=(l-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(o);case"ee":return Wt(o,2);case"eo":return n.ordinalNumber(o,{unit:"day"});case"eee":return n.day(l,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(l,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(l,{width:"short",context:"formatting"});case"eeee":default:return n.day(l,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const l=e.getDay(),o=(l-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(o);case"cc":return Wt(o,t.length);case"co":return n.ordinalNumber(o,{unit:"day"});case"ccc":return n.day(l,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(l,{width:"narrow",context:"standalone"});case"cccccc":return n.day(l,{width:"short",context:"standalone"});case"cccc":default:return n.day(l,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),l=a===0?7:a;switch(t){case"i":return String(l);case"ii":return Wt(l,t.length);case"io":return n.ordinalNumber(l,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});case"iiii":default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const l=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(l,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(l,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let l;switch(a===12?l=wo.noon:a===0?l=wo.midnight:l=a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(l,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(l,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let l;switch(a>=17?l=wo.evening:a>=12?l=wo.afternoon:a>=4?l=wo.morning:l=wo.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(l,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(l,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(l,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let a=e.getHours()%12;return a===0&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return bl.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):bl.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return t==="Ko"?n.ordinalNumber(a,{unit:"hour"}):Wt(a,t.length)},k:function(e,t,n){let a=e.getHours();return a===0&&(a=24),t==="ko"?n.ordinalNumber(a,{unit:"hour"}):Wt(a,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):bl.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):bl.s(e,t)},S:function(e,t){return bl.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(a===0)return"Z";switch(t){case"X":return g5(a);case"XXXX":case"XX":return ii(a);case"XXXXX":case"XXX":default:return ii(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return g5(a);case"xxxx":case"xx":return ii(a);case"xxxxx":case"xxx":default:return ii(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+x5(a,":");case"OOOO":default:return"GMT"+ii(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+x5(a,":");case"zzzz":default:return"GMT"+ii(a,":")}},t:function(e,t,n){const a=Math.trunc(+e/1e3);return Wt(a,t.length)},T:function(e,t,n){return Wt(+e,t.length)}};function x5(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),l=Math.trunc(a/60),o=a%60;return o===0?n+String(l):n+String(l)+t+Wt(o,2)}function g5(e,t){return e%60===0?(e>0?"-":"+")+Wt(Math.abs(e)/60,2):ii(e,t)}function ii(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),l=Wt(Math.trunc(a/60),2),o=Wt(a%60,2);return n+l+t+o}const v5=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},w9=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},g$=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],l=n[2];if(!l)return v5(e,t);let o;switch(a){case"P":o=t.dateTime({width:"short"});break;case"PP":o=t.dateTime({width:"medium"});break;case"PPP":o=t.dateTime({width:"long"});break;case"PPPP":default:o=t.dateTime({width:"full"});break}return o.replace("{{date}}",v5(a,t)).replace("{{time}}",w9(l,t))},v$={p:w9,P:g$},y$=/^D+$/,b$=/^Y+$/,w$=["D","DD","YY","YYYY"];function j$(e){return y$.test(e)}function N$(e){return b$.test(e)}function S$(e,t,n){const a=k$(e,t,n);if(console.warn(a),w$.includes(e))throw new RangeError(a)}function k$(e,t,n){const a=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const C$=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,T$=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,_$=/^'([^]*?)'?$/,M$=/''/g,E$=/[a-zA-Z]/;function X0(e,t,n){const a=Xu(),l=n?.locale??a.locale??Cg,o=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,c=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,d=un(e,n?.in);if(!EU(d))throw new RangeError("Invalid time value");let m=t.match(T$).map(p=>{const x=p[0];if(x==="p"||x==="P"){const y=v$[x];return y(p,l.formatLong)}return p}).join("").match(C$).map(p=>{if(p==="''")return{isToken:!1,value:"'"};const x=p[0];if(x==="'")return{isToken:!1,value:A$(p)};if(p5[x])return{isToken:!0,value:p};if(x.match(E$))throw new RangeError("Format string contains an unescaped latin alphabet character `"+x+"`");return{isToken:!1,value:p}});l.localize.preprocessor&&(m=l.localize.preprocessor(d,m));const f={firstWeekContainsDate:o,weekStartsOn:c,locale:l};return m.map(p=>{if(!p.isToken)return p.value;const x=p.value;(!n?.useAdditionalWeekYearTokens&&N$(x)||!n?.useAdditionalDayOfYearTokens&&j$(x))&&S$(x,t,String(e));const y=p5[x[0]];return y(d,x,l.localize,f)}).join("")}function A$(e){const t=e.match(_$);return t?t[1].replace(M$,"'"):e}function D$(e,t){const n=un(e,t?.in),a=n.getFullYear(),l=n.getMonth(),o=$n(n,0);return o.setFullYear(a,l+1,0),o.setHours(0,0,0,0),o.getDate()}function z$(e,t){return un(e,t?.in).getMonth()}function O$(e,t){return un(e,t?.in).getFullYear()}function R$(e,t){return+un(e)>+un(t)}function B$(e,t){return+un(e)<+un(t)}function L$(e,t,n){const[a,l]=Ti(n?.in,e,t);return+Al(a,n)==+Al(l,n)}function P$(e,t,n){const[a,l]=Ti(n?.in,e,t);return a.getFullYear()===l.getFullYear()&&a.getMonth()===l.getMonth()}function F$(e,t,n){const[a,l]=Ti(n?.in,e,t);return a.getFullYear()===l.getFullYear()}function I$(e,t,n){const a=un(e,n?.in),l=a.getFullYear(),o=a.getDate(),c=$n(e,0);c.setFullYear(l,t,15),c.setHours(0,0,0,0);const d=D$(c);return a.setMonth(t,Math.min(o,d)),a}function q$(e,t,n){const a=un(e,n?.in);return isNaN(+a)?$n(e,NaN):(a.setFullYear(t),a)}const y5=5,H$=4;function U$(e,t){const n=t.startOfMonth(e),a=n.getDay()>0?n.getDay():7,l=t.addDays(e,-a+1),o=t.addDays(l,y5*7-1);return t.getMonth(e)===t.getMonth(o)?y5:H$}function j9(e,t){const n=t.startOfMonth(e),a=n.getDay();return a===1?n:a===0?t.addDays(n,-6):t.addDays(n,-1*(a-1))}function $$(e,t){const n=j9(e,t),a=U$(e,t);return t.addDays(n,a*7-1)}class ma{constructor(t,n){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?xr.tz(this.options.timeZone):new this.Date,this.newDate=(a,l,o)=>this.overrides?.newDate?this.overrides.newDate(a,l,o):this.options.timeZone?new xr(a,l,o,this.options.timeZone):new Date(a,l,o),this.addDays=(a,l)=>this.overrides?.addDays?this.overrides.addDays(a,l):c9(a,l),this.addMonths=(a,l)=>this.overrides?.addMonths?this.overrides.addMonths(a,l):u9(a,l),this.addWeeks=(a,l)=>this.overrides?.addWeeks?this.overrides.addWeeks(a,l):kU(a,l),this.addYears=(a,l)=>this.overrides?.addYears?this.overrides.addYears(a,l):CU(a,l),this.differenceInCalendarDays=(a,l)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(a,l):m9(a,l),this.differenceInCalendarMonths=(a,l)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(a,l):AU(a,l),this.eachMonthOfInterval=a=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(a):zU(a),this.eachYearOfInterval=a=>{const l=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(a):BU(a),o=new Set(l.map(d=>this.getYear(d)));if(o.size===l.length)return l;const c=[];return o.forEach(d=>{c.push(new Date(d,0,1))}),c},this.endOfBroadcastWeek=a=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(a):$$(a,this),this.endOfISOWeek=a=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(a):LU(a),this.endOfMonth=a=>this.overrides?.endOfMonth?this.overrides.endOfMonth(a):DU(a),this.endOfWeek=(a,l)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(a,l):x9(a,this.options),this.endOfYear=a=>this.overrides?.endOfYear?this.overrides.endOfYear(a):RU(a),this.format=(a,l,o)=>{const c=this.overrides?.format?this.overrides.format(a,l,this.options):X0(a,l,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(c):c},this.getISOWeek=a=>this.overrides?.getISOWeek?this.overrides.getISOWeek(a):v9(a),this.getMonth=(a,l)=>this.overrides?.getMonth?this.overrides.getMonth(a,this.options):z$(a,this.options),this.getYear=(a,l)=>this.overrides?.getYear?this.overrides.getYear(a,this.options):O$(a,this.options),this.getWeek=(a,l)=>this.overrides?.getWeek?this.overrides.getWeek(a,this.options):b9(a,this.options),this.isAfter=(a,l)=>this.overrides?.isAfter?this.overrides.isAfter(a,l):R$(a,l),this.isBefore=(a,l)=>this.overrides?.isBefore?this.overrides.isBefore(a,l):B$(a,l),this.isDate=a=>this.overrides?.isDate?this.overrides.isDate(a):h9(a),this.isSameDay=(a,l)=>this.overrides?.isSameDay?this.overrides.isSameDay(a,l):MU(a,l),this.isSameMonth=(a,l)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(a,l):P$(a,l),this.isSameYear=(a,l)=>this.overrides?.isSameYear?this.overrides.isSameYear(a,l):F$(a,l),this.max=a=>this.overrides?.max?this.overrides.max(a):TU(a),this.min=a=>this.overrides?.min?this.overrides.min(a):_U(a),this.setMonth=(a,l)=>this.overrides?.setMonth?this.overrides.setMonth(a,l):I$(a,l),this.setYear=(a,l)=>this.overrides?.setYear?this.overrides.setYear(a,l):q$(a,l),this.startOfBroadcastWeek=(a,l)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(a,this):j9(a,this),this.startOfDay=a=>this.overrides?.startOfDay?this.overrides.startOfDay(a):Nu(a),this.startOfISOWeek=a=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(a):ju(a),this.startOfMonth=a=>this.overrides?.startOfMonth?this.overrides.startOfMonth(a):OU(a),this.startOfWeek=(a,l)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(a,this.options):Al(a,this.options),this.startOfYear=a=>this.overrides?.startOfYear?this.overrides.startOfYear(a):p9(a),this.options={locale:Cg,...t},this.overrides=n}getDigitMap(){const{numerals:t="latn"}=this.options,n=new Intl.NumberFormat("en-US",{numberingSystem:t}),a={};for(let l=0;l<10;l++)a[l.toString()]=n.format(l);return a}replaceDigits(t){const n=this.getDigitMap();return t.replace(/\d/g,a=>n[a]||a)}formatNumber(t){return this.replaceDigits(t.toString())}getMonthYearOrder(){const t=this.options.locale?.code;return t&&ma.yearFirstLocales.has(t)?"year-first":"month-first"}formatMonthYear(t){const{locale:n,timeZone:a,numerals:l}=this.options,o=n?.code;if(o&&ma.yearFirstLocales.has(o))try{return new Intl.DateTimeFormat(o,{month:"long",year:"numeric",timeZone:a,numberingSystem:l}).format(t)}catch{}const c=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(t,c)}}ma.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);const cs=new ma;class N9{constructor(t,n,a=cs){this.date=t,this.displayMonth=n,this.outside=!!(n&&!a.isSameMonth(t,n)),this.dateLib=a}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class V${constructor(t,n){this.date=t,this.weeks=n}}class G${constructor(t,n){this.days=n,this.weekNumber=t}}function Y$(e){return Fe.createElement("button",{...e})}function W$(e){return Fe.createElement("span",{...e})}function X$(e){const{size:t=24,orientation:n="left",className:a}=e;return Fe.createElement("svg",{className:a,width:t,height:t,viewBox:"0 0 24 24"},n==="up"&&Fe.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),n==="down"&&Fe.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),n==="left"&&Fe.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),n==="right"&&Fe.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function K$(e){const{day:t,modifiers:n,...a}=e;return Fe.createElement("td",{...a})}function Q$(e){const{day:t,modifiers:n,...a}=e,l=Fe.useRef(null);return Fe.useEffect(()=>{n.focused&&l.current?.focus()},[n.focused]),Fe.createElement("button",{ref:l,...a})}var Xe;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(Xe||(Xe={}));var Tn;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(Tn||(Tn={}));var Fa;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(Fa||(Fa={}));var oa;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(oa||(oa={}));function Z$(e){const{options:t,className:n,components:a,classNames:l,...o}=e,c=[l[Xe.Dropdown],n].join(" "),d=t?.find(({value:m})=>m===o.value);return Fe.createElement("span",{"data-disabled":o.disabled,className:l[Xe.DropdownRoot]},Fe.createElement(a.Select,{className:c,...o},t?.map(({value:m,label:f,disabled:p})=>Fe.createElement(a.Option,{key:m,value:m,disabled:p},f))),Fe.createElement("span",{className:l[Xe.CaptionLabel],"aria-hidden":!0},d?.label,Fe.createElement(a.Chevron,{orientation:"down",size:18,className:l[Xe.Chevron]})))}function J$(e){return Fe.createElement("div",{...e})}function eV(e){return Fe.createElement("div",{...e})}function tV(e){const{calendarMonth:t,displayIndex:n,...a}=e;return Fe.createElement("div",{...a},e.children)}function nV(e){const{calendarMonth:t,displayIndex:n,...a}=e;return Fe.createElement("div",{...a})}function rV(e){return Fe.createElement("table",{...e})}function aV(e){return Fe.createElement("div",{...e})}const S9=w.createContext(void 0);function Ku(){const e=w.useContext(S9);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function sV(e){const{components:t}=Ku();return Fe.createElement(t.Dropdown,{...e})}function lV(e){const{onPreviousClick:t,onNextClick:n,previousMonth:a,nextMonth:l,...o}=e,{components:c,classNames:d,labels:{labelPrevious:m,labelNext:f}}=Ku(),p=w.useCallback(y=>{l&&n?.(y)},[l,n]),x=w.useCallback(y=>{a&&t?.(y)},[a,t]);return Fe.createElement("nav",{...o},Fe.createElement(c.PreviousMonthButton,{type:"button",className:d[Xe.PreviousMonthButton],tabIndex:a?void 0:-1,"aria-disabled":a?void 0:!0,"aria-label":m(a),onClick:x},Fe.createElement(c.Chevron,{disabled:a?void 0:!0,className:d[Xe.Chevron],orientation:"left"})),Fe.createElement(c.NextMonthButton,{type:"button",className:d[Xe.NextMonthButton],tabIndex:l?void 0:-1,"aria-disabled":l?void 0:!0,"aria-label":f(l),onClick:p},Fe.createElement(c.Chevron,{disabled:l?void 0:!0,orientation:"right",className:d[Xe.Chevron]})))}function iV(e){const{components:t}=Ku();return Fe.createElement(t.Button,{...e})}function oV(e){return Fe.createElement("option",{...e})}function cV(e){const{components:t}=Ku();return Fe.createElement(t.Button,{...e})}function uV(e){const{rootRef:t,...n}=e;return Fe.createElement("div",{...n,ref:t})}function dV(e){return Fe.createElement("select",{...e})}function mV(e){const{week:t,...n}=e;return Fe.createElement("tr",{...n})}function hV(e){return Fe.createElement("th",{...e})}function fV(e){return Fe.createElement("thead",{"aria-hidden":!0},Fe.createElement("tr",{...e}))}function pV(e){const{week:t,...n}=e;return Fe.createElement("th",{...n})}function xV(e){return Fe.createElement("th",{...e})}function gV(e){return Fe.createElement("tbody",{...e})}function vV(e){const{components:t}=Ku();return Fe.createElement(t.Dropdown,{...e})}const yV=Object.freeze(Object.defineProperty({__proto__:null,Button:Y$,CaptionLabel:W$,Chevron:X$,Day:K$,DayButton:Q$,Dropdown:Z$,DropdownNav:J$,Footer:eV,Month:tV,MonthCaption:nV,MonthGrid:rV,Months:aV,MonthsDropdown:sV,Nav:lV,NextMonthButton:iV,Option:oV,PreviousMonthButton:cV,Root:uV,Select:dV,Week:mV,WeekNumber:pV,WeekNumberHeader:xV,Weekday:hV,Weekdays:fV,Weeks:gV,YearsDropdown:vV},Symbol.toStringTag,{value:"Module"}));function Ds(e,t,n=!1,a=cs){let{from:l,to:o}=e;const{differenceInCalendarDays:c,isSameDay:d}=a;return l&&o?(c(o,l)<0&&([l,o]=[o,l]),c(t,l)>=(n?1:0)&&c(o,t)>=(n?1:0)):!n&&o?d(o,t):!n&&l?d(l,t):!1}function k9(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function Tg(e){return!!(e&&typeof e=="object"&&"from"in e)}function C9(e){return!!(e&&typeof e=="object"&&"after"in e)}function T9(e){return!!(e&&typeof e=="object"&&"before"in e)}function _9(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function M9(e,t){return Array.isArray(e)&&e.every(t.isDate)}function zs(e,t,n=cs){const a=Array.isArray(t)?t:[t],{isSameDay:l,differenceInCalendarDays:o,isAfter:c}=n;return a.some(d=>{if(typeof d=="boolean")return d;if(n.isDate(d))return l(e,d);if(M9(d,n))return d.includes(e);if(Tg(d))return Ds(d,e,!1,n);if(_9(d))return Array.isArray(d.dayOfWeek)?d.dayOfWeek.includes(e.getDay()):d.dayOfWeek===e.getDay();if(k9(d)){const m=o(d.before,e),f=o(d.after,e),p=m>0,x=f<0;return c(d.before,d.after)?x&&p:p||x}return C9(d)?o(e,d.after)>0:T9(d)?o(d.before,e)>0:typeof d=="function"?d(e):!1})}function bV(e,t,n,a,l){const{disabled:o,hidden:c,modifiers:d,showOutsideDays:m,broadcastCalendar:f,today:p}=t,{isSameDay:x,isSameMonth:y,startOfMonth:b,isBefore:j,endOfMonth:k,isAfter:S}=l,_=n&&b(n),M=a&&k(a),D={[Tn.focused]:[],[Tn.outside]:[],[Tn.disabled]:[],[Tn.hidden]:[],[Tn.today]:[]},z={};for(const L of e){const{date:E,displayMonth:R}=L,H=!!(R&&!y(E,R)),$=!!(_&&j(E,_)),I=!!(M&&S(E,M)),G=!!(o&&zs(E,o,l)),te=!!(c&&zs(E,c,l))||$||I||!f&&!m&&H||f&&m===!1&&H,we=x(E,p??l.today());H&&D.outside.push(L),G&&D.disabled.push(L),te&&D.hidden.push(L),we&&D.today.push(L),d&&Object.keys(d).forEach(J=>{const ae=d?.[J];ae&&zs(E,ae,l)&&(z[J]?z[J].push(L):z[J]=[L])})}return L=>{const E={[Tn.focused]:!1,[Tn.disabled]:!1,[Tn.hidden]:!1,[Tn.outside]:!1,[Tn.today]:!1},R={};for(const H in D){const $=D[H];E[H]=$.some(I=>I===L)}for(const H in z)R[H]=z[H].some($=>$===L);return{...E,...R}}}function wV(e,t,n={}){return Object.entries(e).filter(([,l])=>l===!0).reduce((l,[o])=>(n[o]?l.push(n[o]):t[Tn[o]]?l.push(t[Tn[o]]):t[Fa[o]]&&l.push(t[Fa[o]]),l),[t[Xe.Day]])}function jV(e){return{...yV,...e}}function NV(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([n,a])=>{n.startsWith("data-")&&(t[n]=a)}),t}function _g(){const e={};for(const t in Xe)e[Xe[t]]=`rdp-${Xe[t]}`;for(const t in Tn)e[Tn[t]]=`rdp-${Tn[t]}`;for(const t in Fa)e[Fa[t]]=`rdp-${Fa[t]}`;for(const t in oa)e[oa[t]]=`rdp-${oa[t]}`;return e}function E9(e,t,n){return(n??new ma(t)).formatMonthYear(e)}const SV=E9;function kV(e,t,n){return(n??new ma(t)).format(e,"d")}function CV(e,t=cs){return t.format(e,"LLLL")}function TV(e,t,n){return(n??new ma(t)).format(e,"cccccc")}function _V(e,t=cs){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function MV(){return""}function A9(e,t=cs){return t.format(e,"yyyy")}const EV=A9,AV=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:E9,formatDay:kV,formatMonthCaption:SV,formatMonthDropdown:CV,formatWeekNumber:_V,formatWeekNumberHeader:MV,formatWeekdayName:TV,formatYearCaption:EV,formatYearDropdown:A9},Symbol.toStringTag,{value:"Module"}));function DV(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...AV,...e}}function zV(e,t,n,a,l){const{startOfMonth:o,startOfYear:c,endOfYear:d,eachMonthOfInterval:m,getMonth:f}=l;return m({start:c(e),end:d(e)}).map(y=>{const b=a.formatMonthDropdown(y,l),j=f(y),k=t&&yo(n)||!1;return{value:j,label:b,disabled:k}})}function OV(e,t={},n={}){let a={...t?.[Xe.Day]};return Object.entries(e).filter(([,l])=>l===!0).forEach(([l])=>{a={...a,...n?.[l]}}),a}function RV(e,t,n){const a=e.today(),l=t?e.startOfISOWeek(a):e.startOfWeek(a),o=[];for(let c=0;c<7;c++){const d=e.addDays(l,c);o.push(d)}return o}function BV(e,t,n,a,l=!1){if(!e||!t)return;const{startOfYear:o,endOfYear:c,eachYearOfInterval:d,getYear:m}=a,f=o(e),p=c(t),x=d({start:f,end:p});return l&&x.reverse(),x.map(y=>{const b=n.formatYearDropdown(y,a);return{value:m(y),label:b,disabled:!1}})}function D9(e,t,n,a){let l=(a??new ma(n)).format(e,"PPPP");return t.today&&(l=`Today, ${l}`),t.selected&&(l=`${l}, selected`),l}const LV=D9;function z9(e,t,n){return(n??new ma(t)).formatMonthYear(e)}const PV=z9;function FV(e,t,n,a){let l=(a??new ma(n)).format(e,"PPPP");return t?.today&&(l=`Today, ${l}`),l}function IV(e){return"Choose the Month"}function qV(){return""}function HV(e){return"Go to the Next Month"}function UV(e){return"Go to the Previous Month"}function $V(e,t,n){return(n??new ma(t)).format(e,"cccc")}function VV(e,t){return`Week ${e}`}function GV(e){return"Week Number"}function YV(e){return"Choose the Year"}const WV=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:PV,labelDay:LV,labelDayButton:D9,labelGrid:z9,labelGridcell:FV,labelMonthDropdown:IV,labelNav:qV,labelNext:HV,labelPrevious:UV,labelWeekNumber:VV,labelWeekNumberHeader:GV,labelWeekday:$V,labelYearDropdown:YV},Symbol.toStringTag,{value:"Module"})),Qu=e=>e instanceof HTMLElement?e:null,cx=e=>[...e.querySelectorAll("[data-animated-month]")??[]],XV=e=>Qu(e.querySelector("[data-animated-month]")),ux=e=>Qu(e.querySelector("[data-animated-caption]")),dx=e=>Qu(e.querySelector("[data-animated-weeks]")),KV=e=>Qu(e.querySelector("[data-animated-nav]")),QV=e=>Qu(e.querySelector("[data-animated-weekdays]"));function ZV(e,t,{classNames:n,months:a,focused:l,dateLib:o}){const c=w.useRef(null),d=w.useRef(a),m=w.useRef(!1);w.useLayoutEffect(()=>{const f=d.current;if(d.current=a,!t||!e.current||!(e.current instanceof HTMLElement)||a.length===0||f.length===0||a.length!==f.length)return;const p=o.isSameMonth(a[0].date,f[0].date),x=o.isAfter(a[0].date,f[0].date),y=x?n[oa.caption_after_enter]:n[oa.caption_before_enter],b=x?n[oa.weeks_after_enter]:n[oa.weeks_before_enter],j=c.current,k=e.current.cloneNode(!0);if(k instanceof HTMLElement?(cx(k).forEach(D=>{if(!(D instanceof HTMLElement))return;const z=XV(D);z&&D.contains(z)&&D.removeChild(z);const L=ux(D);L&&L.classList.remove(y);const E=dx(D);E&&E.classList.remove(b)}),c.current=k):c.current=null,m.current||p||l)return;const S=j instanceof HTMLElement?cx(j):[],_=cx(e.current);if(_?.every(M=>M instanceof HTMLElement)&&S&&S.every(M=>M instanceof HTMLElement)){m.current=!0,e.current.style.isolation="isolate";const M=KV(e.current);M&&(M.style.zIndex="1"),_.forEach((D,z)=>{const L=S[z];if(!L)return;D.style.position="relative",D.style.overflow="hidden";const E=ux(D);E&&E.classList.add(y);const R=dx(D);R&&R.classList.add(b);const H=()=>{m.current=!1,e.current&&(e.current.style.isolation=""),M&&(M.style.zIndex=""),E&&E.classList.remove(y),R&&R.classList.remove(b),D.style.position="",D.style.overflow="",D.contains(L)&&D.removeChild(L)};L.style.pointerEvents="none",L.style.position="absolute",L.style.overflow="hidden",L.setAttribute("aria-hidden","true");const $=QV(L);$&&($.style.opacity="0");const I=ux(L);I&&(I.classList.add(x?n[oa.caption_before_exit]:n[oa.caption_after_exit]),I.addEventListener("animationend",H));const G=dx(L);G&&G.classList.add(x?n[oa.weeks_before_exit]:n[oa.weeks_after_exit]),D.insertBefore(L,D.firstChild)})}})}function JV(e,t,n,a){const l=e[0],o=e[e.length-1],{ISOWeek:c,fixedWeeks:d,broadcastCalendar:m}=n??{},{addDays:f,differenceInCalendarDays:p,differenceInCalendarMonths:x,endOfBroadcastWeek:y,endOfISOWeek:b,endOfMonth:j,endOfWeek:k,isAfter:S,startOfBroadcastWeek:_,startOfISOWeek:M,startOfWeek:D}=a,z=m?_(l,a):c?M(l):D(l),L=m?y(o):c?b(j(o)):k(j(o)),E=p(L,z),R=x(o,l)+1,H=[];for(let G=0;G<=E;G++){const te=f(z,G);if(t&&S(te,t))break;H.push(te)}const I=(m?35:42)*R;if(d&&H.length{const l=a.weeks.reduce((o,c)=>o.concat(c.days.slice()),t.slice());return n.concat(l.slice())},t.slice())}function tG(e,t,n,a){const{numberOfMonths:l=1}=n,o=[];for(let c=0;ct)break;o.push(d)}return o}function b5(e,t,n,a){const{month:l,defaultMonth:o,today:c=a.today(),numberOfMonths:d=1}=e;let m=l||o||c;const{differenceInCalendarMonths:f,addMonths:p,startOfMonth:x}=a;if(n&&f(n,m){const _=n.broadcastCalendar?x(S,a):n.ISOWeek?y(S):b(S),M=n.broadcastCalendar?o(S):n.ISOWeek?c(d(S)):m(d(S)),D=t.filter(R=>R>=_&&R<=M),z=n.broadcastCalendar?35:42;if(n.fixedWeeks&&D.length{const $=z-D.length;return H>M&&H<=l(M,$)});D.push(...R)}const L=D.reduce((R,H)=>{const $=n.ISOWeek?f(H):p(H),I=R.find(te=>te.weekNumber===$),G=new N9(H,S,a);return I?I.days.push(G):R.push(new G$($,[G])),R},[]),E=new V$(S,L);return k.push(E),k},[]);return n.reverseMonths?j.reverse():j}function rG(e,t){let{startMonth:n,endMonth:a}=e;const{startOfYear:l,startOfDay:o,startOfMonth:c,endOfMonth:d,addYears:m,endOfYear:f,newDate:p,today:x}=t,{fromYear:y,toYear:b,fromMonth:j,toMonth:k}=e;!n&&j&&(n=j),!n&&y&&(n=t.newDate(y,0,1)),!a&&k&&(a=k),!a&&b&&(a=p(b,11,31));const S=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return n?n=c(n):y?n=p(y,0,1):!n&&S&&(n=l(m(e.today??x(),-100))),a?a=d(a):b?a=p(b,11,31):!a&&S&&(a=f(e.today??x())),[n&&o(n),a&&o(a)]}function aG(e,t,n,a){if(n.disableNavigation)return;const{pagedNavigation:l,numberOfMonths:o=1}=n,{startOfMonth:c,addMonths:d,differenceInCalendarMonths:m}=a,f=l?o:1,p=c(e);if(!t)return d(p,f);if(!(m(t,e)n.concat(a.weeks.slice()),t.slice())}function Km(e,t){const[n,a]=w.useState(e);return[t===void 0?n:t,a]}function iG(e,t){const[n,a]=rG(e,t),{startOfMonth:l,endOfMonth:o}=t,c=b5(e,n,a,t),[d,m]=Km(c,e.month?c:void 0);w.useEffect(()=>{const E=b5(e,n,a,t);m(E)},[e.timeZone]);const f=tG(d,a,e,t),p=JV(f,e.endMonth?o(e.endMonth):void 0,e,t),x=nG(f,p,e,t),y=lG(x),b=eG(x),j=sG(d,n,e,t),k=aG(d,a,e,t),{disableNavigation:S,onMonthChange:_}=e,M=E=>y.some(R=>R.days.some(H=>H.isEqualTo(E))),D=E=>{if(S)return;let R=l(E);n&&Rl(a)&&(R=l(a)),m(R),_?.(R)};return{months:x,weeks:y,days:b,navStart:n,navEnd:a,previousMonth:j,nextMonth:k,goToMonth:D,goToDay:E=>{M(E)||D(E.date)}}}var Ka;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(Ka||(Ka={}));function w5(e){return!e[Tn.disabled]&&!e[Tn.hidden]&&!e[Tn.outside]}function oG(e,t,n,a){let l,o=-1;for(const c of e){const d=t(c);w5(d)&&(d[Tn.focused]&&ow5(t(c)))),l}function cG(e,t,n,a,l,o,c){const{ISOWeek:d,broadcastCalendar:m}=o,{addDays:f,addMonths:p,addWeeks:x,addYears:y,endOfBroadcastWeek:b,endOfISOWeek:j,endOfWeek:k,max:S,min:_,startOfBroadcastWeek:M,startOfISOWeek:D,startOfWeek:z}=c;let E={day:f,week:x,month:p,year:y,startOfWeek:R=>m?M(R,c):d?D(R):z(R),endOfWeek:R=>m?b(R):d?j(R):k(R)}[e](n,t==="after"?1:-1);return t==="before"&&a?E=S([a,E]):t==="after"&&l&&(E=_([l,E])),E}function O9(e,t,n,a,l,o,c,d=0){if(d>365)return;const m=cG(e,t,n.date,a,l,o,c),f=!!(o.disabled&&zs(m,o.disabled,c)),p=!!(o.hidden&&zs(m,o.hidden,c)),x=m,y=new N9(m,x,c);return!f&&!p?y:O9(e,t,y,a,l,o,c,d+1)}function uG(e,t,n,a,l){const{autoFocus:o}=e,[c,d]=w.useState(),m=oG(t.days,n,a||(()=>!1),c),[f,p]=w.useState(o?m:void 0);return{isFocusTarget:k=>!!m?.isEqualTo(k),setFocused:p,focused:f,blur:()=>{d(f),p(void 0)},moveFocus:(k,S)=>{if(!f)return;const _=O9(k,S,f,t.navStart,t.navEnd,e,l);_&&(e.disableNavigation&&!t.days.some(D=>D.isEqualTo(_))||(t.goToDay(_),p(_)))}}}function dG(e,t){const{selected:n,required:a,onSelect:l}=e,[o,c]=Km(n,l?n:void 0),d=l?n:o,{isSameDay:m}=t,f=b=>d?.some(j=>m(j,b))??!1,{min:p,max:x}=e;return{selected:d,select:(b,j,k)=>{let S=[...d??[]];if(f(b)){if(d?.length===p||a&&d?.length===1)return;S=d?.filter(_=>!m(_,b))}else d?.length===x?S=[b]:S=[...S,b];return l||c(S),l?.(S,b,j,k),S},isSelected:f}}function mG(e,t,n=0,a=0,l=!1,o=cs){const{from:c,to:d}=t||{},{isSameDay:m,isAfter:f,isBefore:p}=o;let x;if(!c&&!d)x={from:e,to:n>0?void 0:e};else if(c&&!d)m(c,e)?n===0?x={from:c,to:e}:l?x={from:c,to:void 0}:x=void 0:p(e,c)?x={from:e,to:c}:x={from:c,to:e};else if(c&&d)if(m(c,e)&&m(d,e))l?x={from:c,to:d}:x=void 0;else if(m(c,e))x={from:c,to:n>0?void 0:e};else if(m(d,e))x={from:e,to:n>0?void 0:e};else if(p(e,c))x={from:e,to:d};else if(f(e,c))x={from:c,to:e};else if(f(e,d))x={from:c,to:e};else throw new Error("Invalid range");if(x?.from&&x?.to){const y=o.differenceInCalendarDays(x.to,x.from);a>0&&y>a?x={from:e,to:void 0}:n>1&&ytypeof d!="function").some(d=>typeof d=="boolean"?d:n.isDate(d)?Ds(e,d,!1,n):M9(d,n)?d.some(m=>Ds(e,m,!1,n)):Tg(d)?d.from&&d.to?j5(e,{from:d.from,to:d.to},n):!1:_9(d)?hG(e,d.dayOfWeek,n):k9(d)?n.isAfter(d.before,d.after)?j5(e,{from:n.addDays(d.after,1),to:n.addDays(d.before,-1)},n):zs(e.from,d,n)||zs(e.to,d,n):C9(d)||T9(d)?zs(e.from,d,n)||zs(e.to,d,n):!1))return!0;const c=a.filter(d=>typeof d=="function");if(c.length){let d=e.from;const m=n.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=m;f++){if(c.some(p=>p(d)))return!0;d=n.addDays(d,1)}}return!1}function pG(e,t){const{disabled:n,excludeDisabled:a,selected:l,required:o,onSelect:c}=e,[d,m]=Km(l,c?l:void 0),f=c?l:d;return{selected:f,select:(y,b,j)=>{const{min:k,max:S}=e,_=y?mG(y,f,k,S,o,t):void 0;return a&&n&&_?.from&&_.to&&fG({from:_.from,to:_.to},n,t)&&(_.from=y,_.to=void 0),c||m(_),c?.(_,y,b,j),_},isSelected:y=>f&&Ds(f,y,!1,t)}}function xG(e,t){const{selected:n,required:a,onSelect:l}=e,[o,c]=Km(n,l?n:void 0),d=l?n:o,{isSameDay:m}=t;return{selected:d,select:(x,y,b)=>{let j=x;return!a&&d&&d&&m(x,d)&&(j=void 0),l||c(j),l?.(j,x,y,b),j},isSelected:x=>d?m(d,x):!1}}function gG(e,t){const n=xG(e,t),a=dG(e,t),l=pG(e,t);switch(e.mode){case"single":return n;case"multiple":return a;case"range":return l;default:return}}function vG(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new xr(t.today,t.timeZone)),t.month&&(t.month=new xr(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new xr(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new xr(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new xr(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new xr(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(at=>new xr(at,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new xr(t.selected.from,t.timeZone):void 0,to:t.selected.to?new xr(t.selected.to,t.timeZone):void 0}));const{components:n,formatters:a,labels:l,dateLib:o,locale:c,classNames:d}=w.useMemo(()=>{const at={...Cg,...t.locale};return{dateLib:new ma({locale:at,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:jV(t.components),formatters:DV(t.formatters),labels:{...WV,...t.labels},locale:at,classNames:{..._g(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:m,mode:f,navLayout:p,numberOfMonths:x=1,onDayBlur:y,onDayClick:b,onDayFocus:j,onDayKeyDown:k,onDayMouseEnter:S,onDayMouseLeave:_,onNextClick:M,onPrevClick:D,showWeekNumber:z,styles:L}=t,{formatCaption:E,formatDay:R,formatMonthDropdown:H,formatWeekNumber:$,formatWeekNumberHeader:I,formatWeekdayName:G,formatYearDropdown:te}=a,we=iG(t,o),{days:J,months:ae,navStart:U,navEnd:q,previousMonth:W,nextMonth:oe,goToMonth:P}=we,je=bV(J,t,U,q,o),{isSelected:Z,select:O,selected:Ne}=gG(t,o)??{},{blur:se,focused:Ce,isFocusTarget:ye,moveFocus:Be,setFocused:ie}=uG(t,we,je,Z??(()=>!1),o),{labelDayButton:He,labelGridcell:lt,labelGrid:ve,labelMonthDropdown:Ze,labelNav:We,labelPrevious:pn,labelNext:Bn,labelWeekday:sr,labelWeekNumber:Qe,labelWeekNumberHeader:Gn,labelYearDropdown:Sr}=l,Er=w.useMemo(()=>RV(o,t.ISOWeek),[o,t.ISOWeek]),Sn=f!==void 0||b!==void 0,lr=w.useCallback(()=>{W&&(P(W),D?.(W))},[W,P,D]),Ue=w.useCallback(()=>{oe&&(P(oe),M?.(oe))},[P,oe,M]),Ln=w.useCallback((at,xn)=>it=>{it.preventDefault(),it.stopPropagation(),ie(at),O?.(at.date,xn,it),b?.(at.date,xn,it)},[O,b,ie]),K=w.useCallback((at,xn)=>it=>{ie(at),j?.(at.date,xn,it)},[j,ie]),ge=w.useCallback((at,xn)=>it=>{se(),y?.(at.date,xn,it)},[se,y]),Oe=w.useCallback((at,xn)=>it=>{const Ut={ArrowLeft:[it.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[it.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[it.shiftKey?"year":"week","after"],ArrowUp:[it.shiftKey?"year":"week","before"],PageUp:[it.shiftKey?"year":"month","before"],PageDown:[it.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(Ut[it.key]){it.preventDefault(),it.stopPropagation();const[Zn,bt]=Ut[it.key];Be(Zn,bt)}k?.(at.date,xn,it)},[Be,k,t.dir]),nt=w.useCallback((at,xn)=>it=>{S?.(at.date,xn,it)},[S]),kt=w.useCallback((at,xn)=>it=>{_?.(at.date,xn,it)},[_]),Qn=w.useCallback(at=>xn=>{const it=Number(xn.target.value),Ut=o.setMonth(o.startOfMonth(at),it);P(Ut)},[o,P]),Ar=w.useCallback(at=>xn=>{const it=Number(xn.target.value),Ut=o.setYear(o.startOfMonth(at),it);P(Ut)},[o,P]),{className:he,style:Me}=w.useMemo(()=>({className:[d[Xe.Root],t.className].filter(Boolean).join(" "),style:{...L?.[Xe.Root],...t.style}}),[d,t.className,t.style,L]),dt=NV(t),mt=w.useRef(null);ZV(mt,!!t.animate,{classNames:d,months:ae,focused:Ce,dateLib:o});const Dr={dayPickerProps:t,selected:Ne,select:O,isSelected:Z,months:ae,nextMonth:oe,previousMonth:W,goToMonth:P,getModifiers:je,components:n,classNames:d,styles:L,labels:l,formatters:a};return Fe.createElement(S9.Provider,{value:Dr},Fe.createElement(n.Root,{rootRef:t.animate?mt:void 0,className:he,style:Me,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"],...dt},Fe.createElement(n.Months,{className:d[Xe.Months],style:L?.[Xe.Months]},!t.hideNavigation&&!p&&Fe.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:d[Xe.Nav],style:L?.[Xe.Nav],"aria-label":We(),onPreviousClick:lr,onNextClick:Ue,previousMonth:W,nextMonth:oe}),ae.map((at,xn)=>Fe.createElement(n.Month,{"data-animated-month":t.animate?"true":void 0,className:d[Xe.Month],style:L?.[Xe.Month],key:xn,displayIndex:xn,calendarMonth:at},p==="around"&&!t.hideNavigation&&xn===0&&Fe.createElement(n.PreviousMonthButton,{type:"button",className:d[Xe.PreviousMonthButton],tabIndex:W?void 0:-1,"aria-disabled":W?void 0:!0,"aria-label":pn(W),onClick:lr,"data-animated-button":t.animate?"true":void 0},Fe.createElement(n.Chevron,{disabled:W?void 0:!0,className:d[Xe.Chevron],orientation:t.dir==="rtl"?"right":"left"})),Fe.createElement(n.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:d[Xe.MonthCaption],style:L?.[Xe.MonthCaption],calendarMonth:at,displayIndex:xn},m?.startsWith("dropdown")?Fe.createElement(n.DropdownNav,{className:d[Xe.Dropdowns],style:L?.[Xe.Dropdowns]},(()=>{const it=m==="dropdown"||m==="dropdown-months"?Fe.createElement(n.MonthsDropdown,{key:"month",className:d[Xe.MonthsDropdown],"aria-label":Ze(),classNames:d,components:n,disabled:!!t.disableNavigation,onChange:Qn(at.date),options:zV(at.date,U,q,a,o),style:L?.[Xe.Dropdown],value:o.getMonth(at.date)}):Fe.createElement("span",{key:"month"},H(at.date,o)),Ut=m==="dropdown"||m==="dropdown-years"?Fe.createElement(n.YearsDropdown,{key:"year",className:d[Xe.YearsDropdown],"aria-label":Sr(o.options),classNames:d,components:n,disabled:!!t.disableNavigation,onChange:Ar(at.date),options:BV(U,q,a,o,!!t.reverseYears),style:L?.[Xe.Dropdown],value:o.getYear(at.date)}):Fe.createElement("span",{key:"year"},te(at.date,o));return o.getMonthYearOrder()==="year-first"?[Ut,it]:[it,Ut]})(),Fe.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},E(at.date,o.options,o))):Fe.createElement(n.CaptionLabel,{className:d[Xe.CaptionLabel],role:"status","aria-live":"polite"},E(at.date,o.options,o))),p==="around"&&!t.hideNavigation&&xn===x-1&&Fe.createElement(n.NextMonthButton,{type:"button",className:d[Xe.NextMonthButton],tabIndex:oe?void 0:-1,"aria-disabled":oe?void 0:!0,"aria-label":Bn(oe),onClick:Ue,"data-animated-button":t.animate?"true":void 0},Fe.createElement(n.Chevron,{disabled:oe?void 0:!0,className:d[Xe.Chevron],orientation:t.dir==="rtl"?"left":"right"})),xn===x-1&&p==="after"&&!t.hideNavigation&&Fe.createElement(n.Nav,{"data-animated-nav":t.animate?"true":void 0,className:d[Xe.Nav],style:L?.[Xe.Nav],"aria-label":We(),onPreviousClick:lr,onNextClick:Ue,previousMonth:W,nextMonth:oe}),Fe.createElement(n.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":ve(at.date,o.options,o)||void 0,className:d[Xe.MonthGrid],style:L?.[Xe.MonthGrid]},!t.hideWeekdays&&Fe.createElement(n.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:d[Xe.Weekdays],style:L?.[Xe.Weekdays]},z&&Fe.createElement(n.WeekNumberHeader,{"aria-label":Gn(o.options),className:d[Xe.WeekNumberHeader],style:L?.[Xe.WeekNumberHeader],scope:"col"},I()),Er.map(it=>Fe.createElement(n.Weekday,{"aria-label":sr(it,o.options,o),className:d[Xe.Weekday],key:String(it),style:L?.[Xe.Weekday],scope:"col"},G(it,o.options,o)))),Fe.createElement(n.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:d[Xe.Weeks],style:L?.[Xe.Weeks]},at.weeks.map(it=>Fe.createElement(n.Week,{className:d[Xe.Week],key:it.weekNumber,style:L?.[Xe.Week],week:it},z&&Fe.createElement(n.WeekNumber,{week:it,style:L?.[Xe.WeekNumber],"aria-label":Qe(it.weekNumber,{locale:c}),className:d[Xe.WeekNumber],scope:"row",role:"rowheader"},$(it.weekNumber,o)),it.days.map(Ut=>{const{date:Zn}=Ut,bt=je(Ut);if(bt[Tn.focused]=!bt.hidden&&!!Ce?.isEqualTo(Ut),bt[Fa.selected]=Z?.(Zn)||bt.selected,Tg(Ne)){const{from:Ei,to:Fl}=Ne;bt[Fa.range_start]=!!(Ei&&Fl&&o.isSameDay(Zn,Ei)),bt[Fa.range_end]=!!(Ei&&Fl&&o.isSameDay(Zn,Fl)),bt[Fa.range_middle]=Ds(Ne,Zn,!0,o)}const Mi=OV(bt,L,t.modifiersStyles),Pl=wV(bt,d,t.modifiersClassNames),th=!Sn&&!bt.hidden?lt(Zn,bt,o.options,o):void 0;return Fe.createElement(n.Day,{key:`${o.format(Zn,"yyyy-MM-dd")}_${o.format(Ut.displayMonth,"yyyy-MM")}`,day:Ut,modifiers:bt,className:Pl.join(" "),style:Mi,role:"gridcell","aria-selected":bt.selected||void 0,"aria-label":th,"data-day":o.format(Zn,"yyyy-MM-dd"),"data-month":Ut.outside?o.format(Zn,"yyyy-MM"):void 0,"data-selected":bt.selected||void 0,"data-disabled":bt.disabled||void 0,"data-hidden":bt.hidden||void 0,"data-outside":Ut.outside||void 0,"data-focused":bt.focused||void 0,"data-today":bt.today||void 0},!bt.hidden&&Sn?Fe.createElement(n.DayButton,{className:d[Xe.DayButton],style:L?.[Xe.DayButton],type:"button",day:Ut,modifiers:bt,disabled:bt.disabled||void 0,tabIndex:ye(Ut)?0:-1,"aria-label":He(Zn,bt,o.options,o),onClick:Ln(Ut,bt),onBlur:ge(Ut,bt),onFocus:K(Ut,bt),onKeyDown:Oe(Ut,bt),onMouseEnter:nt(Ut,bt),onMouseLeave:kt(Ut,bt)},R(Zn,o.options,o)):!bt.hidden&&R(Ut.date,o.options,o))})))))))),t.footer&&Fe.createElement(n.Footer,{className:d[Xe.Footer],style:L?.[Xe.Footer],role:"status","aria-live":"polite"},t.footer)))}function N5({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:a="label",buttonVariant:l="ghost",formatters:o,components:c,...d}){const m=_g();return r.jsx(vG,{showOutsideDays:n,className:me("bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:a,formatters:{formatMonthDropdown:f=>f.toLocaleString("default",{month:"short"}),...o},classNames:{root:me("w-fit",m.root),months:me("relative flex flex-col gap-4 md:flex-row",m.months),month:me("flex w-full flex-col gap-4",m.month),nav:me("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",m.nav),button_previous:me(pu({variant:l}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",m.button_previous),button_next:me(pu({variant:l}),"h-[--cell-size] w-[--cell-size] select-none p-0 aria-disabled:opacity-50",m.button_next),month_caption:me("flex h-[--cell-size] w-full items-center justify-center px-[--cell-size]",m.month_caption),dropdowns:me("flex h-[--cell-size] w-full items-center justify-center gap-1.5 text-sm font-medium",m.dropdowns),dropdown_root:me("has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border",m.dropdown_root),dropdown:me("bg-popover absolute inset-0 opacity-0",m.dropdown),caption_label:me("select-none font-medium",a==="label"?"text-sm":"[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5",m.caption_label),table:"w-full border-collapse",weekdays:me("flex",m.weekdays),weekday:me("text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal",m.weekday),week:me("mt-2 flex w-full",m.week),week_number_header:me("w-[--cell-size] select-none",m.week_number_header),week_number:me("text-muted-foreground select-none text-[0.8rem]",m.week_number),day:me("group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md",m.day),range_start:me("bg-accent rounded-l-md",m.range_start),range_middle:me("rounded-none",m.range_middle),range_end:me("bg-accent rounded-r-md",m.range_end),today:me("bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none",m.today),outside:me("text-muted-foreground aria-selected:text-muted-foreground",m.outside),disabled:me("text-muted-foreground opacity-50",m.disabled),hidden:me("invisible",m.hidden),...t},components:{Root:({className:f,rootRef:p,...x})=>r.jsx("div",{"data-slot":"calendar",ref:p,className:me(f),...x}),Chevron:({className:f,orientation:p,...x})=>p==="left"?r.jsx(vi,{className:me("size-4",f),...x}):p==="right"?r.jsx(yi,{className:me("size-4",f),...x}):r.jsx(hu,{className:me("size-4",f),...x}),DayButton:yG,WeekNumber:({children:f,...p})=>r.jsx("td",{...p,children:r.jsx("div",{className:"flex size-[--cell-size] items-center justify-center text-center",children:f})}),...c},...d})}function yG({className:e,day:t,modifiers:n,...a}){const l=_g(),o=w.useRef(null);return w.useEffect(()=>{n.focused&&o.current?.focus()},[n.focused]),r.jsx(re,{ref:o,variant:"ghost",size:"icon","data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:me("data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-[--cell-size] flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70",l.day,e),...a})}class bG{ws=null;reconnectTimeout=null;reconnectAttempts=0;maxReconnectAttempts=10;heartbeatInterval=null;logCallbacks=new Set;connectionCallbacks=new Set;isConnected=!1;logCache=[];maxCacheSize=1e3;getWebSocketUrl(){{const t=window.location.protocol==="https:"?"wss:":"ws:",n=window.location.host;return`${t}//${n}/ws/logs`}}connect(){if(this.ws?.readyState===WebSocket.OPEN||this.ws?.readyState===WebSocket.CONNECTING)return;const t=this.getWebSocketUrl();try{this.ws=new WebSocket(t),this.ws.onopen=()=>{this.isConnected=!0,this.reconnectAttempts=0,this.notifyConnection(!0),this.startHeartbeat()},this.ws.onmessage=n=>{try{if(n.data==="pong")return;const a=JSON.parse(n.data);this.notifyLog(a)}catch(a){console.error("解析日志消息失败:",a)}},this.ws.onerror=n=>{console.error("❌ WebSocket 错误:",n),this.isConnected=!1,this.notifyConnection(!1)},this.ws.onclose=()=>{this.isConnected=!1,this.notifyConnection(!1),this.stopHeartbeat(),this.attemptReconnect()}}catch(n){console.error("创建 WebSocket 连接失败:",n),this.attemptReconnect()}}attemptReconnect(){if(this.reconnectAttempts>=this.maxReconnectAttempts)return;this.reconnectAttempts+=1;const t=Math.min(1e3*this.reconnectAttempts,1e4);this.reconnectTimeout=window.setTimeout(()=>{this.connect()},t)}startHeartbeat(){this.heartbeatInterval=window.setInterval(()=>{this.ws?.readyState===WebSocket.OPEN&&this.ws.send("ping")},3e4)}stopHeartbeat(){this.heartbeatInterval!==null&&(clearInterval(this.heartbeatInterval),this.heartbeatInterval=null)}disconnect(){this.reconnectTimeout!==null&&(clearTimeout(this.reconnectTimeout),this.reconnectTimeout=null),this.stopHeartbeat(),this.ws&&(this.ws.close(),this.ws=null),this.isConnected=!1,this.reconnectAttempts=0}onLog(t){return this.logCallbacks.add(t),()=>this.logCallbacks.delete(t)}onConnectionChange(t){return this.connectionCallbacks.add(t),t(this.isConnected),()=>this.connectionCallbacks.delete(t)}notifyLog(t){this.logCache.some(a=>a.id===t.id)||(this.logCache.push(t),this.logCache.length>this.maxCacheSize&&(this.logCache=this.logCache.slice(-this.maxCacheSize)),this.logCallbacks.forEach(a=>{try{a(t)}catch(l){console.error("日志回调执行失败:",l)}}))}notifyConnection(t){this.connectionCallbacks.forEach(n=>{try{n(t)}catch(a){console.error("连接状态回调执行失败:",a)}})}getAllLogs(){return[...this.logCache]}clearLogs(){this.logCache=[]}getConnectionStatus(){return this.isConnected}}const To=new bG;typeof window<"u"&&To.connect();const wG={lessThanXSeconds:{one:"不到 1 秒",other:"不到 {{count}} 秒"},xSeconds:{one:"1 秒",other:"{{count}} 秒"},halfAMinute:"半分钟",lessThanXMinutes:{one:"不到 1 分钟",other:"不到 {{count}} 分钟"},xMinutes:{one:"1 分钟",other:"{{count}} 分钟"},xHours:{one:"1 小时",other:"{{count}} 小时"},aboutXHours:{one:"大约 1 小时",other:"大约 {{count}} 小时"},xDays:{one:"1 天",other:"{{count}} 天"},aboutXWeeks:{one:"大约 1 个星期",other:"大约 {{count}} 个星期"},xWeeks:{one:"1 个星期",other:"{{count}} 个星期"},aboutXMonths:{one:"大约 1 个月",other:"大约 {{count}} 个月"},xMonths:{one:"1 个月",other:"{{count}} 个月"},aboutXYears:{one:"大约 1 年",other:"大约 {{count}} 年"},xYears:{one:"1 年",other:"{{count}} 年"},overXYears:{one:"超过 1 年",other:"超过 {{count}} 年"},almostXYears:{one:"将近 1 年",other:"将近 {{count}} 年"}},jG=(e,t,n)=>{let a;const l=wG[e];return typeof l=="string"?a=l:t===1?a=l.one:a=l.other.replace("{{count}}",String(t)),n?.addSuffix?n.comparison&&n.comparison>0?a+"内":a+"前":a},NG={full:"y'年'M'月'd'日' EEEE",long:"y'年'M'月'd'日'",medium:"yyyy-MM-dd",short:"yy-MM-dd"},SG={full:"zzzz a h:mm:ss",long:"z a h:mm:ss",medium:"a h:mm:ss",short:"a h:mm"},kG={full:"{{date}} {{time}}",long:"{{date}} {{time}}",medium:"{{date}} {{time}}",short:"{{date}} {{time}}"},CG={date:Oo({formats:NG,defaultWidth:"full"}),time:Oo({formats:SG,defaultWidth:"full"}),dateTime:Oo({formats:kG,defaultWidth:"full"})};function S5(e,t,n){const a="eeee p";return L$(e,t,n)?a:e.getTime()>t.getTime()?"'下个'"+a:"'上个'"+a}const TG={lastWeek:S5,yesterday:"'昨天' p",today:"'今天' p",tomorrow:"'明天' p",nextWeek:S5,other:"PP p"},_G=(e,t,n,a)=>{const l=TG[e];return typeof l=="function"?l(t,n,a):l},MG={narrow:["前","公元"],abbreviated:["前","公元"],wide:["公元前","公元"]},EG={narrow:["1","2","3","4"],abbreviated:["第一季","第二季","第三季","第四季"],wide:["第一季度","第二季度","第三季度","第四季度"]},AG={narrow:["一","二","三","四","五","六","七","八","九","十","十一","十二"],abbreviated:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],wide:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},DG={narrow:["日","一","二","三","四","五","六"],short:["日","一","二","三","四","五","六"],abbreviated:["周日","周一","周二","周三","周四","周五","周六"],wide:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]},zG={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},OG={narrow:{am:"上",pm:"下",midnight:"凌晨",noon:"午",morning:"早",afternoon:"下午",evening:"晚",night:"夜"},abbreviated:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"},wide:{am:"上午",pm:"下午",midnight:"凌晨",noon:"中午",morning:"早晨",afternoon:"中午",evening:"晚上",night:"夜间"}},RG=(e,t)=>{const n=Number(e);switch(t?.unit){case"date":return n.toString()+"日";case"hour":return n.toString()+"时";case"minute":return n.toString()+"分";case"second":return n.toString()+"秒";default:return"第 "+n.toString()}},BG={ordinalNumber:RG,era:Za({values:MG,defaultWidth:"wide"}),quarter:Za({values:EG,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Za({values:AG,defaultWidth:"wide"}),day:Za({values:DG,defaultWidth:"wide"}),dayPeriod:Za({values:zG,defaultWidth:"wide",formattingValues:OG,defaultFormattingWidth:"wide"})},LG=/^(第\s*)?\d+(日|时|分|秒)?/i,PG=/\d+/i,FG={narrow:/^(前)/i,abbreviated:/^(前)/i,wide:/^(公元前|公元)/i},IG={any:[/^(前)/i,/^(公元)/i]},qG={narrow:/^[1234]/i,abbreviated:/^第[一二三四]刻/i,wide:/^第[一二三四]刻钟/i},HG={any:[/(1|一)/i,/(2|二)/i,/(3|三)/i,/(4|四)/i]},UG={narrow:/^(一|二|三|四|五|六|七|八|九|十[二一])/i,abbreviated:/^(一|二|三|四|五|六|七|八|九|十[二一]|\d|1[12])月/i,wide:/^(一|二|三|四|五|六|七|八|九|十[二一])月/i},$G={narrow:[/^一/i,/^二/i,/^三/i,/^四/i,/^五/i,/^六/i,/^七/i,/^八/i,/^九/i,/^十(?!(一|二))/i,/^十一/i,/^十二/i],any:[/^一|1/i,/^二|2/i,/^三|3/i,/^四|4/i,/^五|5/i,/^六|6/i,/^七|7/i,/^八|8/i,/^九|9/i,/^十(?!(一|二))|10/i,/^十一|11/i,/^十二|12/i]},VG={narrow:/^[一二三四五六日]/i,short:/^[一二三四五六日]/i,abbreviated:/^周[一二三四五六日]/i,wide:/^星期[一二三四五六日]/i},GG={any:[/日/i,/一/i,/二/i,/三/i,/四/i,/五/i,/六/i]},YG={any:/^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i},WG={any:{am:/^上午?/i,pm:/^下午?/i,midnight:/^午夜/i,noon:/^[中正]午/i,morning:/^早上/i,afternoon:/^下午/i,evening:/^晚上?/i,night:/^凌晨/i}},XG={ordinalNumber:g9({matchPattern:LG,parsePattern:PG,valueCallback:e=>parseInt(e,10)}),era:Ja({matchPatterns:FG,defaultMatchWidth:"wide",parsePatterns:IG,defaultParseWidth:"any"}),quarter:Ja({matchPatterns:qG,defaultMatchWidth:"wide",parsePatterns:HG,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Ja({matchPatterns:UG,defaultMatchWidth:"wide",parsePatterns:$G,defaultParseWidth:"any"}),day:Ja({matchPatterns:VG,defaultMatchWidth:"wide",parsePatterns:GG,defaultParseWidth:"any"}),dayPeriod:Ja({matchPatterns:YG,defaultMatchWidth:"any",parsePatterns:WG,defaultParseWidth:"any"})},R0={code:"zh-CN",formatDistance:jG,formatLong:CG,formatRelative:_G,localize:BG,match:XG,options:{weekStartsOn:1,firstWeekContainsDate:4}};function KG(){const[e,t]=w.useState([]),[n,a]=w.useState(""),[l,o]=w.useState("all"),[c,d]=w.useState("all"),[m,f]=w.useState(void 0),[p,x]=w.useState(void 0),[y,b]=w.useState(!0),[j,k]=w.useState(!1),S=w.useRef(null),_=w.useRef(null);w.useEffect(()=>{const G=To.getAllLogs();t(G);const te=To.onLog(()=>{t(To.getAllLogs())}),we=To.onConnectionChange(J=>{k(J)});return()=>{te(),we()}},[]),w.useEffect(()=>{y&&_.current&&_.current.scrollIntoView({behavior:"smooth",block:"end"})},[e,y]);const M=w.useMemo(()=>{const G=new Set(e.map(te=>te.module));return Array.from(G).sort()},[e]),D=G=>{switch(G){case"DEBUG":return"text-muted-foreground";case"INFO":return"text-blue-500 dark:text-blue-400";case"WARNING":return"text-yellow-600 dark:text-yellow-500";case"ERROR":return"text-red-600 dark:text-red-500";case"CRITICAL":return"text-red-700 dark:text-red-400 font-bold";default:return"text-foreground"}},z=G=>{switch(G){case"DEBUG":return"bg-gray-800/30 dark:bg-gray-800/50";case"INFO":return"bg-blue-900/20 dark:bg-blue-500/20";case"WARNING":return"bg-yellow-900/20 dark:bg-yellow-500/20";case"ERROR":return"bg-red-900/20 dark:bg-red-500/20";case"CRITICAL":return"bg-red-900/30 dark:bg-red-600/30";default:return"bg-gray-800/20 dark:bg-gray-800/30"}},L=()=>{window.location.reload()},E=()=>{To.clearLogs(),t([])},R=()=>{const G=I.map(ae=>`${ae.timestamp} [${ae.level.padEnd(8)}] [${ae.module}] ${ae.message}`).join(` +`),te=new Blob([G],{type:"text/plain;charset=utf-8"}),we=URL.createObjectURL(te),J=document.createElement("a");J.href=we,J.download=`logs-${X0(new Date,"yyyy-MM-dd-HHmmss")}.txt`,J.click(),URL.revokeObjectURL(we)},H=()=>{b(!y)},$=()=>{f(void 0),x(void 0)},I=w.useMemo(()=>e.filter(G=>{const te=n===""||G.message.toLowerCase().includes(n.toLowerCase())||G.module.toLowerCase().includes(n.toLowerCase()),we=l==="all"||G.level===l,J=c==="all"||G.module===c;let ae=!0;if(m||p){const U=new Date(G.timestamp);if(m){const q=new Date(m);q.setHours(0,0,0,0),ae=ae&&U>=q}if(p){const q=new Date(p);q.setHours(23,59,59,999),ae=ae&&U<=q}}return te&&we&&J&&ae}),[e,n,l,c,m,p]);return r.jsx(Xt,{className:"h-full",children:r.jsxs("div",{className:"space-y-4 p-3 sm:p-4 lg:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center justify-between gap-3",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-xl sm:text-2xl lg:text-3xl font-bold",children:"日志查看器"}),r.jsx("p",{className:"text-xs sm:text-sm text-muted-foreground mt-1",children:"实时查看和分析麦麦运行日志"})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("div",{className:me("h-2.5 w-2.5 sm:h-3 sm:w-3 rounded-full",j?"bg-green-500 animate-pulse":"bg-red-500")}),r.jsx("span",{className:"text-xs sm:text-sm text-muted-foreground",children:j?"已连接":"未连接"})]})]}),r.jsx(ot,{className:"p-3 sm:p-4",children:r.jsxs("div",{className:"flex flex-col gap-3 sm:gap-4",children:[r.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:gap-4",children:[r.jsxs("div",{className:"flex-1 relative",children:[r.jsx(Gr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),r.jsx(Te,{placeholder:"搜索日志...",value:n,onChange:G=>a(G.target.value),className:"pl-9 h-9 text-sm"})]}),r.jsxs(_t,{value:l,onValueChange:o,children:[r.jsxs(jt,{className:"w-full sm:w-[140px] lg:w-[180px] h-9 text-sm",children:[r.jsx(yx,{className:"h-4 w-4 mr-2"}),r.jsx(Mt,{placeholder:"级别"})]}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"all",children:"全部级别"}),r.jsx(ze,{value:"DEBUG",children:"DEBUG"}),r.jsx(ze,{value:"INFO",children:"INFO"}),r.jsx(ze,{value:"WARNING",children:"WARNING"}),r.jsx(ze,{value:"ERROR",children:"ERROR"}),r.jsx(ze,{value:"CRITICAL",children:"CRITICAL"})]})]}),r.jsxs(_t,{value:c,onValueChange:d,children:[r.jsxs(jt,{className:"w-full sm:w-[160px] lg:w-[200px] h-9 text-sm",children:[r.jsx(yx,{className:"h-4 w-4 mr-2"}),r.jsx(Mt,{placeholder:"模块"})]}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"all",children:"全部模块"}),M.map(G=>r.jsx(ze,{value:G,children:G},G))]})]})]}),r.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:gap-4",children:[r.jsxs(kl,{children:[r.jsx(Cl,{asChild:!0,children:r.jsxs(re,{variant:"outline",size:"sm",className:me("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!m&&"text-muted-foreground"),children:[r.jsx(Iy,{className:"mr-2 h-4 w-4"}),r.jsx("span",{className:"text-xs sm:text-sm",children:m?X0(m,"PPP",{locale:R0}):"开始日期"})]})}),r.jsx(Ps,{className:"w-auto p-0",align:"start",children:r.jsx(N5,{mode:"single",selected:m,onSelect:f,initialFocus:!0,locale:R0})})]}),r.jsxs(kl,{children:[r.jsx(Cl,{asChild:!0,children:r.jsxs(re,{variant:"outline",size:"sm",className:me("w-full sm:w-[200px] lg:w-[240px] justify-start text-left font-normal h-9",!p&&"text-muted-foreground"),children:[r.jsx(Iy,{className:"mr-2 h-4 w-4"}),r.jsx("span",{className:"text-xs sm:text-sm",children:p?X0(p,"PPP",{locale:R0}):"结束日期"})]})}),r.jsx(Ps,{className:"w-auto p-0",align:"start",children:r.jsx(N5,{mode:"single",selected:p,onSelect:x,initialFocus:!0,locale:R0})})]}),(m||p)&&r.jsxs(re,{variant:"outline",size:"sm",onClick:$,className:"w-full sm:w-auto h-9",children:[r.jsx(Mu,{className:"h-4 w-4 sm:mr-2"}),r.jsx("span",{className:"hidden sm:inline text-sm",children:"清除时间筛选"}),r.jsx("span",{className:"sm:hidden text-sm",children:"清除"})]})]}),r.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center",children:[r.jsxs("div",{className:"flex gap-2 flex-wrap",children:[r.jsxs(re,{variant:y?"default":"outline",size:"sm",onClick:H,className:"flex-1 sm:flex-none h-9",children:[y?r.jsx(bT,{className:"h-4 w-4"}):r.jsx(wT,{className:"h-4 w-4"}),r.jsx("span",{className:"ml-2 text-sm",children:y?"自动滚动":"已暂停"})]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:L,className:"flex-1 sm:flex-none h-9",children:[r.jsx(Os,{className:"h-4 w-4"}),r.jsx("span",{className:"ml-2 text-sm",children:"刷新"})]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:E,className:"flex-1 sm:flex-none h-9",children:[r.jsx(Ot,{className:"h-4 w-4"}),r.jsx("span",{className:"ml-2 text-sm",children:"清空"})]}),r.jsxs(re,{variant:"outline",size:"sm",onClick:R,className:"flex-1 sm:flex-none h-9",children:[r.jsx(Z0,{className:"h-4 w-4"}),r.jsx("span",{className:"ml-2 text-sm",children:"导出"})]})]}),r.jsx("div",{className:"flex-1 hidden sm:block"}),r.jsxs("div",{className:"text-xs sm:text-sm text-muted-foreground flex items-center justify-center sm:justify-end",children:[r.jsxs("span",{className:"font-mono",children:[I.length," / ",e.length]}),r.jsx("span",{className:"ml-1",children:"条日志"})]})]})]})}),r.jsx(ot,{className:"bg-black dark:bg-gray-950 border-gray-800 dark:border-gray-900",children:r.jsx(Xt,{className:"h-[calc(100vh-280px)] sm:h-[calc(100vh-320px)] lg:h-[calc(100vh-400px)]",children:r.jsxs("div",{ref:S,className:"p-2 sm:p-3 lg:p-4 font-mono text-xs sm:text-sm space-y-1",children:[I.length===0?r.jsx("div",{className:"text-gray-500 dark:text-gray-600 text-center py-8 text-sm",children:"暂无日志数据"}):I.map(G=>r.jsxs("div",{className:me("py-2 px-2 sm:px-3 rounded hover:bg-white/5 transition-colors group",z(G.level)),children:[r.jsxs("div",{className:"flex flex-col gap-1 sm:hidden",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"text-gray-500 dark:text-gray-600 text-xs",children:G.timestamp}),r.jsxs("span",{className:me("text-xs font-semibold",D(G.level)),children:["[",G.level,"]"]})]}),r.jsx("div",{className:"text-cyan-400 dark:text-cyan-500 text-xs truncate",children:G.module}),r.jsx("div",{className:"text-gray-300 dark:text-gray-400 text-xs break-all",children:G.message})]}),r.jsxs("div",{className:"hidden sm:flex gap-3 items-start",children:[r.jsx("span",{className:"text-gray-500 dark:text-gray-600 flex-shrink-0 w-[140px] lg:w-[180px] text-xs lg:text-sm",children:G.timestamp}),r.jsxs("span",{className:me("flex-shrink-0 w-[70px] lg:w-[80px] font-semibold text-xs lg:text-sm",D(G.level)),children:["[",G.level,"]"]}),r.jsx("span",{className:"text-cyan-400 dark:text-cyan-500 flex-shrink-0 w-[120px] lg:w-[150px] truncate text-xs lg:text-sm",children:G.module}),r.jsx("span",{className:"text-gray-300 dark:text-gray-400 flex-1 break-all text-xs lg:text-sm",children:G.message})]})]},G.id)),r.jsx("div",{ref:_,className:"h-4"})]})})})]})})}const QG="Mai-with-u",ZG="plugin-repo",JG="main",eY="plugin_details.json";async function tY(){try{const e=await ut("/api/webui/plugins/fetch-raw",{method:"POST",headers:yt(),body:JSON.stringify({owner:QG,repo:ZG,branch:JG,file_path:eY})});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success||!t.data)throw new Error(t.error||"获取插件列表失败");return JSON.parse(t.data).filter(l=>!l?.id||!l?.manifest?(console.warn("跳过无效插件数据:",l),!1):!l.manifest.name||!l.manifest.version?(console.warn("跳过缺少必需字段的插件:",l.id),!1):!0).map(l=>({id:l.id,manifest:{manifest_version:l.manifest.manifest_version||1,name:l.manifest.name,version:l.manifest.version,description:l.manifest.description||"",author:l.manifest.author||{name:"Unknown"},license:l.manifest.license||"Unknown",host_application:l.manifest.host_application||{min_version:"0.0.0"},homepage_url:l.manifest.homepage_url,repository_url:l.manifest.repository_url,keywords:l.manifest.keywords||[],categories:l.manifest.categories||[],default_locale:l.manifest.default_locale||"zh-CN",locales_path:l.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!1,published_at:new Date().toISOString(),updated_at:new Date().toISOString()}))}catch(e){throw console.error("Failed to fetch plugin list:",e),e}}async function nY(){try{const e=await ut("/api/webui/plugins/git-status");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to check Git status:",e),{installed:!1,error:"无法检测 Git 安装状态"}}}async function rY(){try{const e=await ut("/api/webui/plugins/version");if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);return await e.json()}catch(e){return console.error("Failed to get Maimai version:",e),{version:"0.0.0",version_major:0,version_minor:0,version_patch:0}}}function aY(e,t,n){const a=e.split(".").map(d=>parseInt(d)||0),l=a[0]||0,o=a[1]||0,c=a[2]||0;if(n.version_majorparseInt(x)||0),m=d[0]||0,f=d[1]||0,p=d[2]||0;if(n.version_major>m||n.version_major===m&&n.version_minor>f||n.version_major===m&&n.version_minor===f&&n.version_patch>p)return!1}return!0}function sY(e,t){const n=window.location.protocol==="https:"?"wss:":"ws:",a=window.location.host,l=new WebSocket(`${n}//${a}/api/webui/ws/plugin-progress`);return l.onopen=()=>{console.log("Plugin progress WebSocket connected");const o=setInterval(()=>{l.readyState===WebSocket.OPEN?l.send("ping"):clearInterval(o)},3e4)},l.onmessage=o=>{try{if(o.data==="pong")return;const c=JSON.parse(o.data);e(c)}catch(c){console.error("Failed to parse progress data:",c)}},l.onerror=o=>{console.error("Plugin progress WebSocket error:",o),t?.(o)},l.onclose=()=>{console.log("Plugin progress WebSocket disconnected")},l}async function B0(){try{const e=await ut("/api/webui/plugins/installed",{headers:yt()});if(!e.ok)throw new Error(`HTTP error! status: ${e.status}`);const t=await e.json();if(!t.success)throw new Error(t.message||"获取已安装插件列表失败");return t.plugins||[]}catch(e){return console.error("Failed to get installed plugins:",e),[]}}function L0(e,t){return t.some(n=>n.id===e)}function P0(e,t){const n=t.find(a=>a.id===e);if(n)return n.manifest?.version||n.version}async function lY(e,t,n="main"){const a=await ut("/api/webui/plugins/install",{method:"POST",headers:yt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"安装失败")}return await a.json()}async function iY(e){const t=await ut("/api/webui/plugins/uninstall",{method:"POST",headers:yt(),body:JSON.stringify({plugin_id:e})});if(!t.ok){const n=await t.json();throw new Error(n.detail||"卸载失败")}return await t.json()}async function oY(e,t,n="main"){const a=await ut("/api/webui/plugins/update",{method:"POST",headers:yt(),body:JSON.stringify({plugin_id:e,repository_url:t,branch:n})});if(!a.ok){const l=await a.json();throw new Error(l.detail||"更新失败")}return await a.json()}const k5={"Group Management":"群组管理","Entertainment & Interaction":"娱乐互动","Utility Tools":"实用工具","Content Generation":"内容生成",Multimedia:"多媒体","External Integration":"外部集成","Data Analysis & Insights":"数据分析与洞察",Other:"其他"};function cY(){const e=rs(),[t,n]=w.useState(null),[a,l]=w.useState(""),[o,c]=w.useState("all"),[d,m]=w.useState("all"),[f,p]=w.useState(!1),[x,y]=w.useState([]),[b,j]=w.useState(!0),[k,S]=w.useState(null),[_,M]=w.useState(null),[D,z]=w.useState(null),[L,E]=w.useState(null),[,R]=w.useState([]),{toast:H}=pr();w.useEffect(()=>{let q=null,W=!1;return(async()=>{if(q=sY(P=>{W||(z(P),P.stage==="success"?setTimeout(()=>{W||z(null)},2e3):P.stage==="error"&&(j(!1),S(P.error||"加载失败")))},P=>{console.error("WebSocket error:",P),W||H({title:"WebSocket 连接失败",description:"无法实时显示加载进度",variant:"destructive"})}),await new Promise(P=>{if(!q){P();return}const je=()=>{q&&q.readyState===WebSocket.OPEN?(console.log("WebSocket connected, starting to load plugins"),P()):q&&q.readyState===WebSocket.CLOSED?(console.warn("WebSocket closed before loading plugins"),P()):setTimeout(je,100)};je()}),!W){const P=await nY();M(P),P.installed||H({title:"Git 未安装",description:P.error||"请先安装 Git 才能使用插件安装功能",variant:"destructive"})}if(!W){const P=await rY();E(P)}if(!W)try{j(!0),S(null);const P=await tY();if(!W){const je=await B0();R(je);const Z=P.map(O=>{const Ne=L0(O.id,je),se=P0(O.id,je);return{...O,installed:Ne,installed_version:se}});for(const O of je)!Z.some(se=>se.id===O.id)&&O.manifest&&Z.push({id:O.id,manifest:{manifest_version:O.manifest.manifest_version||1,name:O.manifest.name,version:O.manifest.version,description:O.manifest.description||"",author:O.manifest.author,license:O.manifest.license||"Unknown",host_application:O.manifest.host_application,homepage_url:O.manifest.homepage_url,repository_url:O.manifest.repository_url,keywords:O.manifest.keywords||[],categories:O.manifest.categories||[],default_locale:O.manifest.default_locale||"zh-CN",locales_path:O.manifest.locales_path},downloads:0,rating:0,review_count:0,installed:!0,installed_version:O.manifest.version,published_at:new Date().toISOString(),updated_at:new Date().toISOString()});y(Z)}}catch(P){if(!W){const je=P instanceof Error?P.message:"加载插件列表失败";S(je),H({title:"加载失败",description:je,variant:"destructive"})}}finally{W||j(!1)}})(),()=>{W=!0,q&&q.close()}},[H]);const $=q=>{if(!q.installed&&L&&!I(q))return r.jsxs(on,{variant:"destructive",className:"gap-1",children:[r.jsx(fi,{className:"h-3 w-3"}),"不兼容"]});if(q.installed){const W=q.installed_version?.trim(),oe=q.manifest.version?.trim();if(W!==oe){const P=W?.split(".").map(Number)||[0,0,0],je=oe?.split(".").map(Number)||[0,0,0];for(let Z=0;Z<3;Z++){if((je[Z]||0)>(P[Z]||0))return r.jsxs(on,{variant:"outline",className:"gap-1 text-orange-600 border-orange-600",children:[r.jsx(fi,{className:"h-3 w-3"}),"可更新"]});if((je[Z]||0)<(P[Z]||0))break}}return r.jsxs(on,{variant:"default",className:"gap-1",children:[r.jsx(Ur,{className:"h-3 w-3"}),"已安装"]})}return null},I=q=>!L||!q.manifest?.host_application?!0:aY(q.manifest.host_application.min_version,q.manifest.host_application.max_version,L),G=q=>{if(!q.installed||!q.installed_version||!q.manifest?.version)return!1;const W=q.installed_version.trim(),oe=q.manifest.version.trim();if(W===oe)return!1;const P=W.split(".").map(Number),je=oe.split(".").map(Number);for(let Z=0;Z<3;Z++){if((je[Z]||0)>(P[Z]||0))return!0;if((je[Z]||0)<(P[Z]||0))return!1}return!1},te=x.filter(q=>{if(!q.manifest)return console.warn("[过滤] 跳过无 manifest 的插件:",q.id),!1;const W=a===""||q.manifest.name?.toLowerCase().includes(a.toLowerCase())||q.manifest.description?.toLowerCase().includes(a.toLowerCase())||q.manifest.keywords&&q.manifest.keywords.some(Z=>Z.toLowerCase().includes(a.toLowerCase())),oe=o==="all"||q.manifest.categories&&q.manifest.categories.includes(o);let P=!0;d==="installed"?P=q.installed===!0:d==="updates"&&(P=q.installed===!0&&G(q));const je=!f||!L||I(q);return W&&oe&&P&&je}),we=()=>{n(null)},J=async q=>{if(!_?.installed){H({title:"无法安装",description:"Git 未安装",variant:"destructive"});return}if(L&&!I(q)){H({title:"无法安装",description:"插件与当前麦麦版本不兼容",variant:"destructive"});return}try{await lY(q.id,q.manifest.repository_url||"","main"),H({title:"安装成功",description:`${q.manifest.name} 已成功安装`});const W=await B0();R(W),y(oe=>oe.map(P=>{if(P.id===q.id){const je=L0(P.id,W),Z=P0(P.id,W);return{...P,installed:je,installed_version:Z}}return P}))}catch(W){H({title:"安装失败",description:W instanceof Error?W.message:"未知错误",variant:"destructive"})}},ae=async q=>{try{await iY(q.id),H({title:"卸载成功",description:`${q.manifest.name} 已成功卸载`});const W=await B0();R(W),y(oe=>oe.map(P=>{if(P.id===q.id){const je=L0(P.id,W),Z=P0(P.id,W);return{...P,installed:je,installed_version:Z}}return P}))}catch(W){H({title:"卸载失败",description:W instanceof Error?W.message:"未知错误",variant:"destructive"})}},U=async q=>{if(!_?.installed){H({title:"无法更新",description:"Git 未安装",variant:"destructive"});return}try{const W=await oY(q.id,q.manifest.repository_url||"","main");H({title:"更新成功",description:`${q.manifest.name} 已从 ${W.old_version} 更新到 ${W.new_version}`});const oe=await B0();R(oe),y(P=>P.map(je=>{if(je.id===q.id){const Z=L0(je.id,oe),O=P0(je.id,oe);return{...je,installed:Z,installed_version:O}}return je}))}catch(W){H({title:"更新失败",description:W instanceof Error?W.message:"未知错误",variant:"destructive"})}};return r.jsx(Xt,{className:"h-full",children:r.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件市场"}),r.jsx("p",{className:"text-muted-foreground mt-2",children:"浏览和管理麦麦的插件"})]}),r.jsxs(re,{onClick:()=>e({to:"/plugin-mirrors"}),children:[r.jsx(jT,{className:"h-4 w-4 mr-2"}),"配置镜像源"]})]}),_&&!_.installed&&r.jsxs(ot,{className:"border-orange-600 bg-orange-50 dark:bg-orange-950/20",children:[r.jsx(Bt,{children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Mo,{className:"h-5 w-5 text-orange-600"}),r.jsxs("div",{children:[r.jsx(Lt,{className:"text-lg text-orange-900 dark:text-orange-100",children:"Git 未安装"}),r.jsx(tr,{className:"text-orange-800 dark:text-orange-200",children:_.error||"请先安装 Git 才能使用插件安装功能"})]})]})}),r.jsx(Vt,{children:r.jsxs("p",{className:"text-sm text-orange-800 dark:text-orange-200",children:["您可以从 ",r.jsx("a",{href:"https://git-scm.com/downloads",target:"_blank",rel:"noopener noreferrer",className:"underline font-medium",children:"git-scm.com"})," 下载并安装 Git。 安装完成后,请重启麦麦应用。"]})})]}),r.jsx(ot,{className:"p-4",children:r.jsxs("div",{className:"flex flex-col gap-4",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[r.jsxs("div",{className:"flex-1 relative",children:[r.jsx(Gr,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),r.jsx(Te,{placeholder:"搜索插件...",value:a,onChange:q=>l(q.target.value),className:"pl-9"})]}),r.jsxs(_t,{value:o,onValueChange:c,children:[r.jsx(jt,{className:"w-full sm:w-[200px]",children:r.jsx(Mt,{placeholder:"选择分类"})}),r.jsxs(Nt,{children:[r.jsx(ze,{value:"all",children:"全部分类"}),r.jsx(ze,{value:"Group Management",children:"群组管理"}),r.jsx(ze,{value:"Entertainment & Interaction",children:"娱乐互动"}),r.jsx(ze,{value:"Utility Tools",children:"实用工具"}),r.jsx(ze,{value:"Content Generation",children:"内容生成"}),r.jsx(ze,{value:"Multimedia",children:"多媒体"}),r.jsx(ze,{value:"External Integration",children:"外部集成"}),r.jsx(ze,{value:"Data Analysis & Insights",children:"数据分析与洞察"}),r.jsx(ze,{value:"Other",children:"其他"})]})]})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(br,{id:"compatible-only",checked:f,onCheckedChange:q=>p(q===!0)}),r.jsx("label",{htmlFor:"compatible-only",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 cursor-pointer",children:"只显示兼容当前版本的插件"})]})]})}),r.jsx(Sl,{value:d,onValueChange:m,className:"w-full",children:r.jsxs(Ls,{className:"grid w-full grid-cols-3",children:[r.jsxs(Rt,{value:"all",children:["全部插件 (",x.length,")"]}),r.jsxs(Rt,{value:"installed",children:["已安装 (",x.filter(q=>q.installed).length,")"]}),r.jsxs(Rt,{value:"updates",children:["可更新 (",x.filter(q=>q.installed&&G(q)).length,")"]})]})}),D&&D.stage==="loading"&&r.jsx(ot,{className:"p-4",children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(fu,{className:"h-4 w-4 animate-spin"}),r.jsxs("span",{className:"text-sm font-medium",children:[D.operation==="fetch"&&"加载插件列表",D.operation==="install"&&`安装插件${D.plugin_id?`: ${D.plugin_id}`:""}`,D.operation==="uninstall"&&`卸载插件${D.plugin_id?`: ${D.plugin_id}`:""}`,D.operation==="update"&&`更新插件${D.plugin_id?`: ${D.plugin_id}`:""}`]})]}),r.jsxs("span",{className:"text-sm font-medium",children:[D.progress,"%"]})]}),r.jsx(Lu,{value:D.progress,className:"h-2"}),r.jsx("div",{className:"text-xs text-muted-foreground",children:D.message}),D.operation==="fetch"&&D.total_plugins>0&&r.jsxs("div",{className:"text-xs text-muted-foreground text-center",children:["已加载 ",D.loaded_plugins," / ",D.total_plugins," 个插件"]})]})}),D&&D.stage==="error"&&D.error&&r.jsx(ot,{className:"border-destructive bg-destructive/10",children:r.jsx(Bt,{children:r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(Mo,{className:"h-5 w-5 text-destructive"}),r.jsxs("div",{children:[r.jsx(Lt,{className:"text-lg text-destructive",children:"加载失败"}),r.jsx(tr,{className:"text-destructive/80",children:D.error})]})]})})}),b?r.jsxs("div",{className:"flex items-center justify-center py-12",children:[r.jsx(fu,{className:"h-8 w-8 animate-spin text-muted-foreground"}),r.jsx("span",{className:"ml-3 text-muted-foreground",children:"加载插件列表中..."})]}):k?r.jsx(ot,{className:"p-6",children:r.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[r.jsx(Mo,{className:"h-12 w-12 text-destructive mb-4"}),r.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),r.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:k}),r.jsx(re,{onClick:()=>window.location.reload(),children:"重新加载"})]})}):te.length===0?r.jsx(ot,{className:"p-6",children:r.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[r.jsx(Gr,{className:"h-12 w-12 text-muted-foreground mb-4"}),r.jsx("h3",{className:"text-lg font-semibold mb-2",children:"未找到插件"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:a||o!=="all"?"尝试调整搜索条件或筛选器":"暂无可用插件"})]})}):r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:te.map(q=>r.jsxs(ot,{className:"flex flex-col hover:shadow-lg transition-shadow h-full",children:[r.jsxs(Bt,{children:[r.jsxs("div",{className:"flex items-start justify-between gap-2",children:[r.jsx(Lt,{className:"text-xl",children:q.manifest?.name||q.id}),r.jsxs("div",{className:"flex flex-col gap-1",children:[q.manifest?.categories&&q.manifest.categories[0]&&r.jsx(on,{variant:"secondary",className:"text-xs whitespace-nowrap",children:k5[q.manifest.categories[0]]||q.manifest.categories[0]}),$(q)]})]}),r.jsx(tr,{className:"line-clamp-2",children:q.manifest?.description||"无描述"})]}),r.jsx(Vt,{className:"flex-1",children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-center gap-4 text-sm text-muted-foreground",children:[r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx(Z0,{className:"h-4 w-4"}),r.jsx("span",{children:q.downloads.toLocaleString()})]}),r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx(qy,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),r.jsx("span",{children:q.rating.toFixed(1)})]})]}),r.jsxs("div",{className:"flex flex-wrap gap-2",children:[q.manifest?.keywords&&q.manifest.keywords.slice(0,3).map(W=>r.jsx(on,{variant:"outline",className:"text-xs",children:W},W)),q.manifest?.keywords&&q.manifest.keywords.length>3&&r.jsxs(on,{variant:"outline",className:"text-xs",children:["+",q.manifest.keywords.length-3]})]}),r.jsxs("div",{className:"text-xs text-muted-foreground pt-2 border-t space-y-1",children:[r.jsxs("div",{children:["v",q.manifest?.version||"unknown"," · ",q.manifest?.author?.name||"Unknown"]}),q.manifest?.host_application&&r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx("span",{children:"支持:"}),r.jsxs("span",{className:"font-medium",children:[q.manifest.host_application.min_version,q.manifest.host_application.max_version?` - ${q.manifest.host_application.max_version}`:" - 最新版本"]})]})]})]})}),r.jsx(F6,{className:"pt-4",children:r.jsxs("div",{className:"flex items-center justify-end gap-2 w-full",children:[r.jsx(re,{variant:"outline",size:"sm",onClick:()=>n(q),children:"查看详情"}),q.installed?G(q)?r.jsxs(re,{size:"sm",disabled:!_?.installed,title:_?.installed?void 0:"Git 未安装",onClick:()=>U(q),children:[r.jsx(Os,{className:"h-4 w-4 mr-1"}),"更新"]}):r.jsxs(re,{variant:"destructive",size:"sm",disabled:!_?.installed,title:_?.installed?void 0:"Git 未安装",onClick:()=>ae(q),children:[r.jsx(Ot,{className:"h-4 w-4 mr-1"}),"卸载"]}):r.jsxs(re,{size:"sm",disabled:!_?.installed||D?.operation==="install"||L!==null&&!I(q),title:_?.installed?L!==null&&!I(q)?`不兼容当前版本 (需要 ${q.manifest?.host_application?.min_version||"未知"}${q.manifest?.host_application?.max_version?` - ${q.manifest.host_application.max_version}`:"+"},当前 ${L?.version})`:void 0:"Git 未安装",onClick:()=>J(q),children:[r.jsx(Z0,{className:"h-4 w-4 mr-1"}),D?.operation==="install"&&D?.plugin_id===q.id?"安装中...":"安装"]})]})})]},q.id))}),r.jsx(hr,{open:t!==null,onOpenChange:we,children:t&&t.manifest&&r.jsxs(nr,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[r.jsx(rr,{children:r.jsxs("div",{className:"flex items-start justify-between gap-4",children:[r.jsxs("div",{className:"space-y-2 flex-1",children:[r.jsx(ar,{className:"text-2xl",children:t.manifest.name}),r.jsxs(wr,{children:["作者: ",t.manifest.author?.name||"Unknown",t.manifest.author?.url&&r.jsx("a",{href:t.manifest.author.url,target:"_blank",rel:"noopener noreferrer",className:"ml-2 text-primary hover:underline",children:r.jsx(lu,{className:"h-3 w-3 inline"})})]})]}),r.jsxs("div",{className:"flex flex-col gap-2",children:[t.manifest.categories&&t.manifest.categories[0]&&r.jsx(on,{variant:"secondary",children:k5[t.manifest.categories[0]]||t.manifest.categories[0]}),$(t)]})]})}),r.jsxs("div",{className:"space-y-6",children:[r.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4",children:[r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"版本"}),r.jsxs("p",{className:"text-sm text-muted-foreground",children:["v",t.manifest?.version||"unknown"]}),t.installed&&t.installed_version&&r.jsxs("p",{className:"text-xs text-muted-foreground",children:["已安装: v",t.installed_version]})]}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"下载量"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:t.downloads.toLocaleString()})]}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"评分"}),r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx(qy,{className:"h-4 w-4 fill-yellow-400 text-yellow-400"}),r.jsxs("span",{className:"text-sm text-muted-foreground",children:[t.rating.toFixed(1)," (",t.review_count,")"]})]})]}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"许可证"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.license||"Unknown"})]}),r.jsxs("div",{className:"col-span-2",children:[r.jsx("p",{className:"text-sm font-medium",children:"支持版本"}),r.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.manifest.host_application?.min_version||"未知",t.manifest.host_application?.max_version?` - ${t.manifest.host_application.max_version}`:" - 最新版本"]})]})]}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium mb-2",children:"关键词"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:t.manifest.keywords&&t.manifest.keywords.map(q=>r.jsx(on,{variant:"outline",children:q},q))})]}),t.detailed_description&&r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium mb-2",children:"详细说明"}),r.jsx("p",{className:"text-sm text-muted-foreground whitespace-pre-line",children:t.detailed_description})]}),!t.detailed_description&&r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium mb-2",children:"说明"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:t.manifest.description||"无描述"})]}),r.jsxs("div",{className:"space-y-2",children:[t.manifest.homepage_url&&r.jsxs("div",{className:"text-sm",children:[r.jsx("span",{className:"font-medium",children:"主页: "}),r.jsx("a",{href:t.manifest.homepage_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.homepage_url})]}),t.manifest.repository_url&&r.jsxs("div",{className:"text-sm",children:[r.jsx("span",{className:"font-medium",children:"仓库: "}),r.jsx("a",{href:t.manifest.repository_url,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:t.manifest.repository_url})]})]})]}),r.jsxs(Yr,{children:[t.manifest.homepage_url&&r.jsxs(re,{onClick:()=>window.open(t.manifest.homepage_url,"_blank"),children:[r.jsx(lu,{className:"h-4 w-4 mr-2"}),"访问主页"]}),t.manifest.repository_url&&r.jsxs(re,{variant:"outline",onClick:()=>window.open(t.manifest.repository_url,"_blank"),children:[r.jsx(lu,{className:"h-4 w-4 mr-2"}),"查看仓库"]})]})]})})]})})}function uY(){return r.jsx(Xt,{className:"h-full",children:r.jsxs("div",{className:"space-y-4 sm:space-y-6 p-4 sm:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-start sm:justify-between gap-4",children:[r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"插件配置"}),r.jsx("p",{className:"text-muted-foreground mt-1 sm:mt-2 text-sm sm:text-base",children:"管理和配置已安装的插件"})]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(re,{variant:"outline",size:"sm",children:[r.jsx(Os,{className:"h-4 w-4 mr-2"}),"刷新"]}),r.jsxs(re,{size:"sm",children:[r.jsx(Pa,{className:"h-4 w-4 mr-2"}),"全局设置"]})]})]}),r.jsxs("div",{className:"grid gap-4 grid-cols-1 xs:grid-cols-2 lg:grid-cols-4",children:[r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"已安装插件"}),r.jsx(em,{className:"h-4 w-4 text-muted-foreground"})]}),r.jsxs(Vt,{children:[r.jsx("div",{className:"text-2xl font-bold",children:"0"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"正在加载..."})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"已启用"}),r.jsx(Ur,{className:"h-4 w-4 text-green-600"})]}),r.jsxs(Vt,{children:[r.jsx("div",{className:"text-2xl font-bold",children:"0"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"运行中的插件"})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"已禁用"}),r.jsx(fi,{className:"h-4 w-4 text-orange-600"})]}),r.jsxs(Vt,{children:[r.jsx("div",{className:"text-2xl font-bold",children:"0"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"未激活的插件"})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{className:"flex flex-row items-center justify-between space-y-0 pb-2",children:[r.jsx(Lt,{className:"text-sm font-medium",children:"可更新"}),r.jsx(Os,{className:"h-4 w-4 text-blue-600"})]}),r.jsxs(Vt,{children:[r.jsx("div",{className:"text-2xl font-bold",children:"0"}),r.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:"有新版本可用"})]})]})]}),r.jsxs(ot,{children:[r.jsxs(Bt,{children:[r.jsx(Lt,{children:"已安装的插件"}),r.jsx(tr,{children:"查看和管理已安装插件的配置"})]}),r.jsx(Vt,{children:r.jsxs("div",{className:"flex flex-col items-center justify-center py-12 space-y-4",children:[r.jsx(em,{className:"h-16 w-16 text-muted-foreground/50"}),r.jsxs("div",{className:"text-center space-y-2",children:[r.jsx("p",{className:"text-lg font-medium text-muted-foreground",children:"插件配置功能开发中"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:"即将支持插件的启用/禁用、参数配置等功能"})]}),r.jsx("div",{className:"flex gap-2",children:r.jsx(re,{variant:"outline",asChild:!0,children:r.jsxs("a",{href:"/plugins",children:[r.jsx(lu,{className:"h-4 w-4 mr-2"}),"前往插件市场"]})})})]})})]}),r.jsxs("div",{className:"grid gap-4 grid-cols-1 lg:grid-cols-2",children:[r.jsxs(ot,{children:[r.jsx(Bt,{children:r.jsx(Lt,{className:"text-base",children:"即将推出的功能"})}),r.jsx(Vt,{children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:r.jsx(Ur,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"插件启用/禁用"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"快速切换插件运行状态"})]})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:r.jsx(Ur,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"配置参数编辑"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"可视化编辑插件配置文件"})]})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:r.jsx(Ur,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"依赖管理"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"查看和安装插件依赖包"})]})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"rounded-full bg-primary/10 p-1 mt-0.5",children:r.jsx(Ur,{className:"h-4 w-4 text-primary"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"插件日志"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"查看插件运行日志和错误信息"})]})]})]})})]}),r.jsxs(ot,{children:[r.jsx(Bt,{children:r.jsx(Lt,{className:"text-base",children:"开发者工具"})}),r.jsx(Vt,{children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:r.jsx(Pa,{className:"h-4 w-4 text-blue-600"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"热重载"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"无需重启即可重新加载插件"})]})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:r.jsx(Pa,{className:"h-4 w-4 text-blue-600"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"配置验证"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"检查配置文件格式和完整性"})]})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:r.jsx(Pa,{className:"h-4 w-4 text-blue-600"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"性能监控"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"监控插件的资源占用情况"})]})]}),r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx("div",{className:"rounded-full bg-blue-500/10 p-1 mt-0.5",children:r.jsx(Pa,{className:"h-4 w-4 text-blue-600"})}),r.jsxs("div",{children:[r.jsx("p",{className:"text-sm font-medium",children:"调试模式"}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"详细的调试信息和错误追踪"})]})]})]})})]})]}),r.jsx(ot,{className:"border-blue-200 bg-blue-50 dark:bg-blue-950/20 dark:border-blue-900",children:r.jsx(Vt,{className:"pt-6",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(fi,{className:"h-5 w-5 text-blue-600 mt-0.5 flex-shrink-0"}),r.jsxs("div",{className:"space-y-1",children:[r.jsx("p",{className:"text-sm font-medium text-blue-900 dark:text-blue-100",children:"开发进行中"}),r.jsxs("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:["插件配置功能正在积极开发中。目前您可以通过",r.jsx("strong",{children:"插件市场"}),"安装和卸载插件,完整的配置管理功能即将推出。"]})]})]})})})]})})}function dY(){const e=rs(),{toast:t}=pr(),[n,a]=w.useState([]),[l,o]=w.useState(!0),[c,d]=w.useState(null),[m,f]=w.useState(null),[p,x]=w.useState(!1),[y,b]=w.useState(!1),[j,k]=w.useState({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),S=w.useCallback(async()=>{try{o(!0),d(null);const R=localStorage.getItem("access-token"),H=await fetch("/api/webui/plugins/mirrors",{headers:{Authorization:`Bearer ${R}`}});if(!H.ok)throw new Error("获取镜像源列表失败");const $=await H.json();a($.mirrors||[])}catch(R){const H=R instanceof Error?R.message:"加载镜像源失败";d(H),t({title:"加载失败",description:H,variant:"destructive"})}finally{o(!1)}},[t]);w.useEffect(()=>{S()},[S]);const _=async()=>{try{const R=localStorage.getItem("access-token"),H=await fetch("/api/webui/plugins/mirrors",{method:"POST",headers:{Authorization:`Bearer ${R}`,"Content-Type":"application/json"},body:JSON.stringify(j)});if(!H.ok){const $=await H.json();throw new Error($.detail||"添加镜像源失败")}t({title:"添加成功",description:"镜像源已添加"}),x(!1),k({id:"",name:"",raw_prefix:"",clone_prefix:"",enabled:!0,priority:1}),S()}catch(R){t({title:"添加失败",description:R instanceof Error?R.message:"未知错误",variant:"destructive"})}},M=async()=>{if(m)try{const R=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${m.id}`,{method:"PUT",headers:{Authorization:`Bearer ${R}`,"Content-Type":"application/json"},body:JSON.stringify({name:j.name,raw_prefix:j.raw_prefix,clone_prefix:j.clone_prefix,enabled:j.enabled,priority:j.priority})})).ok)throw new Error("更新镜像源失败");t({title:"更新成功",description:"镜像源已更新"}),b(!1),f(null),S()}catch(R){t({title:"更新失败",description:R instanceof Error?R.message:"未知错误",variant:"destructive"})}},D=async R=>{if(confirm("确定要删除这个镜像源吗?"))try{const H=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${R}`,{method:"DELETE",headers:{Authorization:`Bearer ${H}`}})).ok)throw new Error("删除镜像源失败");t({title:"删除成功",description:"镜像源已删除"}),S()}catch(H){t({title:"删除失败",description:H instanceof Error?H.message:"未知错误",variant:"destructive"})}},z=async R=>{try{const H=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${R.id}`,{method:"PUT",headers:{Authorization:`Bearer ${H}`,"Content-Type":"application/json"},body:JSON.stringify({enabled:!R.enabled})})).ok)throw new Error("更新状态失败");S()}catch(H){t({title:"更新失败",description:H instanceof Error?H.message:"未知错误",variant:"destructive"})}},L=R=>{f(R),k({id:R.id,name:R.name,raw_prefix:R.raw_prefix,clone_prefix:R.clone_prefix,enabled:R.enabled,priority:R.priority}),b(!0)},E=async(R,H)=>{const $=H==="up"?R.priority-1:R.priority+1;if(!($<1))try{const I=localStorage.getItem("access-token");if(!(await fetch(`/api/webui/plugins/mirrors/${R.id}`,{method:"PUT",headers:{Authorization:`Bearer ${I}`,"Content-Type":"application/json"},body:JSON.stringify({priority:$})})).ok)throw new Error("更新优先级失败");S()}catch(I){t({title:"更新失败",description:I instanceof Error?I.message:"未知错误",variant:"destructive"})}};return r.jsx(Xt,{className:"h-full",children:r.jsxs("div",{className:"space-y-6 p-4 sm:p-6",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4",children:[r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsx(re,{variant:"ghost",size:"icon",onClick:()=>e({to:"/plugins"}),children:r.jsx(J5,{className:"h-5 w-5"})}),r.jsxs("div",{children:[r.jsx("h1",{className:"text-2xl sm:text-3xl font-bold",children:"镜像源配置"}),r.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:"管理 Git 克隆和文件下载的镜像源"})]})]}),r.jsxs(re,{onClick:()=>x(!0),children:[r.jsx(mr,{className:"h-4 w-4 mr-2"}),"添加镜像源"]})]}),l?r.jsx(ot,{className:"p-6",children:r.jsx("div",{className:"flex items-center justify-center py-8",children:r.jsx(fu,{className:"h-8 w-8 animate-spin text-primary"})})}):c?r.jsx(ot,{className:"p-6",children:r.jsxs("div",{className:"flex flex-col items-center justify-center py-8 text-center",children:[r.jsx(Mo,{className:"h-12 w-12 text-destructive mb-4"}),r.jsx("h3",{className:"text-lg font-semibold mb-2",children:"加载失败"}),r.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:c}),r.jsx(re,{onClick:S,children:"重新加载"})]})}):r.jsxs(ot,{children:[r.jsx("div",{className:"hidden md:block",children:r.jsxs(bi,{children:[r.jsx(wi,{children:r.jsxs(Un,{children:[r.jsx(ct,{children:"状态"}),r.jsx(ct,{children:"名称"}),r.jsx(ct,{children:"ID"}),r.jsx(ct,{children:"优先级"}),r.jsx(ct,{className:"text-right",children:"操作"})]})}),r.jsx(ji,{children:n.map(R=>r.jsxs(Un,{children:[r.jsx(et,{children:r.jsx(gt,{checked:R.enabled,onCheckedChange:()=>z(R)})}),r.jsx(et,{children:r.jsxs("div",{children:[r.jsx("div",{className:"font-medium",children:R.name}),r.jsxs("div",{className:"text-xs text-muted-foreground mt-1",children:["Raw: ",R.raw_prefix]})]})}),r.jsx(et,{children:r.jsx(on,{variant:"outline",children:R.id})}),r.jsx(et,{children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("span",{className:"font-mono",children:R.priority}),r.jsxs("div",{className:"flex flex-col gap-1",children:[r.jsx(re,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>E(R,"up"),disabled:R.priority===1,children:r.jsx(vx,{className:"h-3 w-3"})}),r.jsx(re,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:()=>E(R,"down"),children:r.jsx(hu,{className:"h-3 w-3"})})]})]})}),r.jsx(et,{className:"text-right",children:r.jsxs("div",{className:"flex items-center justify-end gap-2",children:[r.jsx(re,{variant:"ghost",size:"icon",onClick:()=>L(R),children:r.jsx(Ro,{className:"h-4 w-4"})}),r.jsx(re,{variant:"ghost",size:"icon",onClick:()=>D(R.id),children:r.jsx(Ot,{className:"h-4 w-4 text-destructive"})})]})})]},R.id))})]})}),r.jsx("div",{className:"md:hidden p-4 space-y-4",children:n.map(R=>r.jsx(ot,{className:"p-4",children:r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{className:"flex items-start justify-between",children:[r.jsxs("div",{className:"flex-1",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("h3",{className:"font-semibold",children:R.name}),R.enabled&&r.jsx(on,{variant:"default",className:"text-xs",children:"启用"})]}),r.jsx(on,{variant:"outline",className:"mt-1 text-xs",children:R.id})]}),r.jsx(gt,{checked:R.enabled,onCheckedChange:()=>z(R)})]}),r.jsxs("div",{className:"text-sm space-y-1",children:[r.jsxs("div",{className:"text-muted-foreground",children:[r.jsx("span",{className:"font-medium",children:"Raw: "}),r.jsx("span",{className:"break-all",children:R.raw_prefix})]}),r.jsxs("div",{className:"text-muted-foreground",children:[r.jsx("span",{className:"font-medium",children:"优先级: "}),r.jsx("span",{className:"font-mono",children:R.priority})]})]}),r.jsxs("div",{className:"flex items-center gap-2 pt-2 border-t",children:[r.jsxs(re,{variant:"outline",size:"sm",className:"flex-1",onClick:()=>L(R),children:[r.jsx(Ro,{className:"h-4 w-4 mr-1"}),"编辑"]}),r.jsx(re,{variant:"outline",size:"sm",onClick:()=>E(R,"up"),disabled:R.priority===1,children:r.jsx(vx,{className:"h-4 w-4"})}),r.jsx(re,{variant:"outline",size:"sm",onClick:()=>E(R,"down"),children:r.jsx(hu,{className:"h-4 w-4"})}),r.jsx(re,{variant:"destructive",size:"sm",onClick:()=>D(R.id),children:r.jsx(Ot,{className:"h-4 w-4"})})]})]})},R.id))})]}),r.jsx(hr,{open:p,onOpenChange:x,children:r.jsxs(nr,{className:"max-w-lg",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"添加镜像源"}),r.jsx(wr,{children:"添加新的 Git 镜像源配置"})]}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"add-id",children:"镜像源 ID *"}),r.jsx(Te,{id:"add-id",placeholder:"例如: my-mirror",value:j.id,onChange:R=>k({...j,id:R.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"add-name",children:"名称 *"}),r.jsx(Te,{id:"add-name",placeholder:"例如: 我的镜像源",value:j.name,onChange:R=>k({...j,name:R.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"add-raw",children:"Raw 文件前缀 *"}),r.jsx(Te,{id:"add-raw",placeholder:"https://example.com/raw",value:j.raw_prefix,onChange:R=>k({...j,raw_prefix:R.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"add-clone",children:"克隆前缀 *"}),r.jsx(Te,{id:"add-clone",placeholder:"https://example.com/clone",value:j.clone_prefix,onChange:R=>k({...j,clone_prefix:R.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"add-priority",children:"优先级"}),r.jsx(Te,{id:"add-priority",type:"number",min:"1",value:j.priority,onChange:R=>k({...j,priority:parseInt(R.target.value)||1})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"add-enabled",checked:j.enabled,onCheckedChange:R=>k({...j,enabled:R})}),r.jsx(Q,{htmlFor:"add-enabled",children:"启用此镜像源"})]})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>x(!1),children:"取消"}),r.jsx(re,{onClick:_,children:"添加"})]})]})}),r.jsx(hr,{open:y,onOpenChange:b,children:r.jsxs(nr,{className:"max-w-lg",children:[r.jsxs(rr,{children:[r.jsx(ar,{children:"编辑镜像源"}),r.jsx(wr,{children:"修改镜像源配置"})]}),r.jsxs("div",{className:"space-y-4 py-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{children:"镜像源 ID"}),r.jsx(Te,{value:j.id,disabled:!0})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit-name",children:"名称 *"}),r.jsx(Te,{id:"edit-name",value:j.name,onChange:R=>k({...j,name:R.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit-raw",children:"Raw 文件前缀 *"}),r.jsx(Te,{id:"edit-raw",value:j.raw_prefix,onChange:R=>k({...j,raw_prefix:R.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit-clone",children:"克隆前缀 *"}),r.jsx(Te,{id:"edit-clone",value:j.clone_prefix,onChange:R=>k({...j,clone_prefix:R.target.value})})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(Q,{htmlFor:"edit-priority",children:"优先级"}),r.jsx(Te,{id:"edit-priority",type:"number",min:"1",value:j.priority,onChange:R=>k({...j,priority:parseInt(R.target.value)||1})}),r.jsx("p",{className:"text-xs text-muted-foreground",children:"数字越小优先级越高"})]}),r.jsxs("div",{className:"flex items-center space-x-2",children:[r.jsx(gt,{id:"edit-enabled",checked:j.enabled,onCheckedChange:R=>k({...j,enabled:R})}),r.jsx(Q,{htmlFor:"edit-enabled",children:"启用此镜像源"})]})]}),r.jsxs(Yr,{children:[r.jsx(re,{variant:"outline",onClick:()=>b(!1),children:"取消"}),r.jsx(re,{onClick:M,children:"保存"})]})]})})]})})}const mY=Wo("pointer-events-none inline-flex select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono font-medium opacity-100",{variants:{size:{sm:"h-5 text-[10px]",default:"h-6 text-xs",lg:"h-7 text-sm"}},defaultVariants:{size:"default"}}),R9=w.forwardRef(({className:e,size:t,abbrTitle:n,children:a,...l},o)=>r.jsx("kbd",{className:me(mY({size:t,className:e})),ref:o,...l,children:n?r.jsx("abbr",{title:n,children:a}):a}));R9.displayName="Kbd";const hY=[{icon:K0,title:"首页",description:"查看仪表板概览",path:"/",category:"概览"},{icon:jl,title:"麦麦主程序配置",description:"配置麦麦的核心设置",path:"/config/bot",category:"配置"},{icon:e6,title:"麦麦模型提供商配置",description:"配置模型提供商",path:"/config/modelProvider",category:"配置"},{icon:t6,title:"麦麦模型配置",description:"配置模型参数",path:"/config/model",category:"配置"},{icon:v1,title:"表情包管理",description:"管理麦麦的表情包",path:"/resource/emoji",category:"资源"},{icon:_u,title:"表达方式管理",description:"管理麦麦的表达方式",path:"/resource/expression",category:"资源"},{icon:n6,title:"人物信息管理",description:"管理人物信息",path:"/resource/person",category:"资源"},{icon:NT,title:"统计信息",description:"查看使用统计",path:"/statistics",category:"监控"},{icon:em,title:"插件市场",description:"浏览和安装插件",path:"/plugins",category:"扩展"},{icon:Q0,title:"日志查看器",description:"查看系统日志",path:"/logs",category:"监控"},{icon:Pa,title:"系统设置",description:"配置系统参数",path:"/settings",category:"系统"}];function fY({open:e,onOpenChange:t}){const[n,a]=w.useState(""),[l,o]=w.useState(0),c=rs(),d=hY.filter(p=>p.title.toLowerCase().includes(n.toLowerCase())||p.description.toLowerCase().includes(n.toLowerCase())||p.category.toLowerCase().includes(n.toLowerCase()));w.useEffect(()=>{e&&(a(""),o(0))},[e]);const m=w.useCallback(p=>{c({to:p}),t(!1)},[c,t]),f=w.useCallback(p=>{p.key==="ArrowDown"?(p.preventDefault(),o(x=>(x+1)%d.length)):p.key==="ArrowUp"?(p.preventDefault(),o(x=>(x-1+d.length)%d.length)):p.key==="Enter"&&d[l]&&(p.preventDefault(),m(d[l].path))},[d,l,m]);return r.jsx(hr,{open:e,onOpenChange:t,children:r.jsxs(nr,{className:"max-w-2xl p-0 gap-0",children:[r.jsxs(rr,{className:"px-4 pt-4 pb-0",children:[r.jsx(ar,{className:"sr-only",children:"搜索"}),r.jsxs("div",{className:"relative",children:[r.jsx(Gr,{className:"absolute left-3 top-1/2 h-5 w-5 -translate-y-1/2 text-muted-foreground"}),r.jsx(Te,{value:n,onChange:p=>{a(p.target.value),o(0)},onKeyDown:f,placeholder:"搜索页面...",className:"h-12 pl-11 text-base border-0 focus-visible:ring-0 shadow-none",autoFocus:!0})]})]}),r.jsx("div",{className:"border-t",children:r.jsx(Xt,{className:"h-[400px]",children:d.length>0?r.jsx("div",{className:"p-2",children:d.map((p,x)=>{const y=p.icon;return r.jsxs("button",{onClick:()=>m(p.path),onMouseEnter:()=>o(x),className:me("w-full flex items-center gap-3 px-3 py-2.5 rounded-md text-left transition-colors",x===l?"bg-accent text-accent-foreground":"hover:bg-accent/50"),children:[r.jsx(y,{className:"h-5 w-5 flex-shrink-0"}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("div",{className:"font-medium text-sm",children:p.title}),r.jsx("div",{className:"text-xs text-muted-foreground truncate",children:p.description})]}),r.jsx("div",{className:"text-xs text-muted-foreground px-2 py-1 bg-muted rounded",children:p.category})]},p.path)})}):r.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[r.jsx(Gr,{className:"h-12 w-12 text-muted-foreground/50 mb-4"}),r.jsx("p",{className:"text-sm text-muted-foreground",children:n?"未找到匹配的页面":"输入关键词开始搜索"})]})})}),r.jsx("div",{className:"border-t px-4 py-3 flex items-center justify-between text-xs text-muted-foreground",children:r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↑"}),r.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"↓"}),"导航"]}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Enter"}),"选择"]}),r.jsxs("span",{className:"flex items-center gap-1",children:[r.jsx("kbd",{className:"px-1.5 py-0.5 bg-muted rounded border",children:"Esc"}),"关闭"]})]})})]})})}function pY(e){const t=xY(e),n=w.forwardRef((a,l)=>{const{children:o,...c}=a,d=w.Children.toArray(o),m=d.find(vY);if(m){const f=m.props.children,p=d.map(x=>x===m?w.Children.count(f)>1?w.Children.only(null):w.isValidElement(f)?f.props.children:null:x);return r.jsx(t,{...c,ref:l,children:w.isValidElement(f)?w.cloneElement(f,void 0,p):null})}return r.jsx(t,{...c,ref:l,children:o})});return n.displayName=`${e}.Slot`,n}function xY(e){const t=w.forwardRef((n,a)=>{const{children:l,...o}=n;if(w.isValidElement(l)){const c=bY(l),d=yY(o,l.props);return l.type!==w.Fragment&&(d.ref=a?Nl(a,c):c),w.cloneElement(l,d)}return w.Children.count(l)>1?w.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var gY=Symbol("radix.slottable");function vY(e){return w.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gY}function yY(e,t){const n={...t};for(const a in t){const l=e[a],o=t[a];/^on[A-Z]/.test(a)?l&&o?n[a]=(...d)=>{const m=o(...d);return l(...d),m}:l&&(n[a]=l):a==="style"?n[a]={...l,...o}:a==="className"&&(n[a]=[l,o].filter(Boolean).join(" "))}return{...e,...n}}function bY(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var n1=["Enter"," "],wY=["ArrowDown","PageUp","Home"],B9=["ArrowUp","PageDown","End"],jY=[...wY,...B9],NY={ltr:[...n1,"ArrowRight"],rtl:[...n1,"ArrowLeft"]},SY={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Zu="Menu",[Su,kY,CY]=vm(Zu),[_i,L9]=Ha(Zu,[CY,Uo,Mm]),Ju=Uo(),P9=Mm(),[F9,Ll]=_i(Zu),[TY,ed]=_i(Zu),I9=e=>{const{__scopeMenu:t,open:n=!1,children:a,dir:l,onOpenChange:o,modal:c=!0}=e,d=Ju(t),[m,f]=w.useState(null),p=w.useRef(!1),x=gr(o),y=Tu(l);return w.useEffect(()=>{const b=()=>{p.current=!0,document.addEventListener("pointerdown",j,{capture:!0,once:!0}),document.addEventListener("pointermove",j,{capture:!0,once:!0})},j=()=>p.current=!1;return document.addEventListener("keydown",b,{capture:!0}),()=>{document.removeEventListener("keydown",b,{capture:!0}),document.removeEventListener("pointerdown",j,{capture:!0}),document.removeEventListener("pointermove",j,{capture:!0})}},[]),r.jsx(jm,{...d,children:r.jsx(F9,{scope:t,open:n,onOpenChange:x,content:m,onContentChange:f,children:r.jsx(TY,{scope:t,onClose:w.useCallback(()=>x(!1),[x]),isUsingKeyboardRef:p,dir:y,modal:c,children:a})})})};I9.displayName=Zu;var _Y="MenuAnchor",Mg=w.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e,l=Ju(n);return r.jsx(Nm,{...l,...a,ref:t})});Mg.displayName=_Y;var Eg="MenuPortal",[MY,q9]=_i(Eg,{forceMount:void 0}),H9=e=>{const{__scopeMenu:t,forceMount:n,children:a,container:l}=e,o=Ll(Eg,t);return r.jsx(MY,{scope:t,forceMount:n,children:r.jsx(Wr,{present:n||o.open,children:r.jsx(wm,{asChild:!0,container:l,children:a})})})};H9.displayName=Eg;var _a="MenuContent",[EY,Ag]=_i(_a),U9=w.forwardRef((e,t)=>{const n=q9(_a,e.__scopeMenu),{forceMount:a=n.forceMount,...l}=e,o=Ll(_a,e.__scopeMenu),c=ed(_a,e.__scopeMenu);return r.jsx(Su.Provider,{scope:e.__scopeMenu,children:r.jsx(Wr,{present:a||o.open,children:r.jsx(Su.Slot,{scope:e.__scopeMenu,children:c.modal?r.jsx(AY,{...l,ref:t}):r.jsx(DY,{...l,ref:t})})})})}),AY=w.forwardRef((e,t)=>{const n=Ll(_a,e.__scopeMenu),a=w.useRef(null),l=dn(t,a);return w.useEffect(()=>{const o=a.current;if(o)return $5(o)},[]),r.jsx(Dg,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:Pe(e.onFocusOutside,o=>o.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),DY=w.forwardRef((e,t)=>{const n=Ll(_a,e.__scopeMenu);return r.jsx(Dg,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),zY=pY("MenuContent.ScrollLock"),Dg=w.forwardRef((e,t)=>{const{__scopeMenu:n,loop:a=!1,trapFocus:l,onOpenAutoFocus:o,onCloseAutoFocus:c,disableOutsidePointerEvents:d,onEntryFocus:m,onEscapeKeyDown:f,onPointerDownOutside:p,onFocusOutside:x,onInteractOutside:y,onDismiss:b,disableOutsideScroll:j,...k}=e,S=Ll(_a,n),_=ed(_a,n),M=Ju(n),D=P9(n),z=kY(n),[L,E]=w.useState(null),R=w.useRef(null),H=dn(t,R,S.onContentChange),$=w.useRef(0),I=w.useRef(""),G=w.useRef(0),te=w.useRef(null),we=w.useRef("right"),J=w.useRef(0),ae=j?V5:w.Fragment,U=j?{as:zY,allowPinchZoom:!0}:void 0,q=oe=>{const P=I.current+oe,je=z().filter(ye=>!ye.disabled),Z=document.activeElement,O=je.find(ye=>ye.ref.current===Z)?.textValue,Ne=je.map(ye=>ye.textValue),se=VY(Ne,P,O),Ce=je.find(ye=>ye.textValue===se)?.ref.current;(function ye(Be){I.current=Be,window.clearTimeout($.current),Be!==""&&($.current=window.setTimeout(()=>ye(""),1e3))})(P),Ce&&setTimeout(()=>Ce.focus())};w.useEffect(()=>()=>window.clearTimeout($.current),[]),G5();const W=w.useCallback(oe=>we.current===te.current?.side&&YY(oe,te.current?.area),[]);return r.jsx(EY,{scope:n,searchRef:I,onItemEnter:w.useCallback(oe=>{W(oe)&&oe.preventDefault()},[W]),onItemLeave:w.useCallback(oe=>{W(oe)||(R.current?.focus(),E(null))},[W]),onTriggerLeave:w.useCallback(oe=>{W(oe)&&oe.preventDefault()},[W]),pointerGraceTimerRef:G,onPointerGraceIntentChange:w.useCallback(oe=>{te.current=oe},[]),children:r.jsx(ae,{...U,children:r.jsx(Y5,{asChild:!0,trapped:l,onMountAutoFocus:Pe(o,oe=>{oe.preventDefault(),R.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:c,children:r.jsx(p1,{asChild:!0,disableOutsidePointerEvents:d,onEscapeKeyDown:f,onPointerDownOutside:p,onFocusOutside:x,onInteractOutside:y,onDismiss:b,children:r.jsx(V6,{asChild:!0,...D,dir:_.dir,orientation:"vertical",loop:a,currentTabStopId:L,onCurrentTabStopIdChange:E,onEntryFocus:Pe(m,oe=>{_.isUsingKeyboardRef.current||oe.preventDefault()}),preventScrollOnEntryFocus:!0,children:r.jsx(x1,{role:"menu","aria-orientation":"vertical","data-state":lN(S.open),"data-radix-menu-content":"",dir:_.dir,...M,...k,ref:H,style:{outline:"none",...k.style},onKeyDown:Pe(k.onKeyDown,oe=>{const je=oe.target.closest("[data-radix-menu-content]")===oe.currentTarget,Z=oe.ctrlKey||oe.altKey||oe.metaKey,O=oe.key.length===1;je&&(oe.key==="Tab"&&oe.preventDefault(),!Z&&O&&q(oe.key));const Ne=R.current;if(oe.target!==Ne||!jY.includes(oe.key))return;oe.preventDefault();const Ce=z().filter(ye=>!ye.disabled).map(ye=>ye.ref.current);B9.includes(oe.key)&&Ce.reverse(),UY(Ce)}),onBlur:Pe(e.onBlur,oe=>{oe.currentTarget.contains(oe.target)||(window.clearTimeout($.current),I.current="")}),onPointerMove:Pe(e.onPointerMove,ku(oe=>{const P=oe.target,je=J.current!==oe.clientX;if(oe.currentTarget.contains(P)&&je){const Z=oe.clientX>J.current?"right":"left";we.current=Z,J.current=oe.clientX}}))})})})})})})});U9.displayName=_a;var OY="MenuGroup",zg=w.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e;return r.jsx(Ft.div,{role:"group",...a,ref:t})});zg.displayName=OY;var RY="MenuLabel",$9=w.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e;return r.jsx(Ft.div,{...a,ref:t})});$9.displayName=RY;var xm="MenuItem",C5="menu.itemSelect",Qm=w.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:a,...l}=e,o=w.useRef(null),c=ed(xm,e.__scopeMenu),d=Ag(xm,e.__scopeMenu),m=dn(t,o),f=w.useRef(!1),p=()=>{const x=o.current;if(!n&&x){const y=new CustomEvent(C5,{bubbles:!0,cancelable:!0});x.addEventListener(C5,b=>a?.(b),{once:!0}),X5(x,y),y.defaultPrevented?f.current=!1:c.onClose()}};return r.jsx(V9,{...l,ref:m,disabled:n,onClick:Pe(e.onClick,p),onPointerDown:x=>{e.onPointerDown?.(x),f.current=!0},onPointerUp:Pe(e.onPointerUp,x=>{f.current||x.currentTarget?.click()}),onKeyDown:Pe(e.onKeyDown,x=>{const y=d.searchRef.current!=="";n||y&&x.key===" "||n1.includes(x.key)&&(x.currentTarget.click(),x.preventDefault())})})});Qm.displayName=xm;var V9=w.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:a=!1,textValue:l,...o}=e,c=Ag(xm,n),d=P9(n),m=w.useRef(null),f=dn(t,m),[p,x]=w.useState(!1),[y,b]=w.useState("");return w.useEffect(()=>{const j=m.current;j&&b((j.textContent??"").trim())},[o.children]),r.jsx(Su.ItemSlot,{scope:n,disabled:a,textValue:l??y,children:r.jsx(G6,{asChild:!0,...d,focusable:!a,children:r.jsx(Ft.div,{role:"menuitem","data-highlighted":p?"":void 0,"aria-disabled":a||void 0,"data-disabled":a?"":void 0,...o,ref:f,onPointerMove:Pe(e.onPointerMove,ku(j=>{a?c.onItemLeave(j):(c.onItemEnter(j),j.defaultPrevented||j.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:Pe(e.onPointerLeave,ku(j=>c.onItemLeave(j))),onFocus:Pe(e.onFocus,()=>x(!0)),onBlur:Pe(e.onBlur,()=>x(!1))})})})}),BY="MenuCheckboxItem",G9=w.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:a,...l}=e;return r.jsx(Q9,{scope:e.__scopeMenu,checked:n,children:r.jsx(Qm,{role:"menuitemcheckbox","aria-checked":gm(n)?"mixed":n,...l,ref:t,"data-state":Bg(n),onSelect:Pe(l.onSelect,()=>a?.(gm(n)?!0:!n),{checkForDefaultPrevented:!1})})})});G9.displayName=BY;var Y9="MenuRadioGroup",[LY,PY]=_i(Y9,{value:void 0,onValueChange:()=>{}}),W9=w.forwardRef((e,t)=>{const{value:n,onValueChange:a,...l}=e,o=gr(a);return r.jsx(LY,{scope:e.__scopeMenu,value:n,onValueChange:o,children:r.jsx(zg,{...l,ref:t})})});W9.displayName=Y9;var X9="MenuRadioItem",K9=w.forwardRef((e,t)=>{const{value:n,...a}=e,l=PY(X9,e.__scopeMenu),o=n===l.value;return r.jsx(Q9,{scope:e.__scopeMenu,checked:o,children:r.jsx(Qm,{role:"menuitemradio","aria-checked":o,...a,ref:t,"data-state":Bg(o),onSelect:Pe(a.onSelect,()=>l.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});K9.displayName=X9;var Og="MenuItemIndicator",[Q9,FY]=_i(Og,{checked:!1}),Z9=w.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:a,...l}=e,o=FY(Og,n);return r.jsx(Wr,{present:a||gm(o.checked)||o.checked===!0,children:r.jsx(Ft.span,{...l,ref:t,"data-state":Bg(o.checked)})})});Z9.displayName=Og;var IY="MenuSeparator",J9=w.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e;return r.jsx(Ft.div,{role:"separator","aria-orientation":"horizontal",...a,ref:t})});J9.displayName=IY;var qY="MenuArrow",eN=w.forwardRef((e,t)=>{const{__scopeMenu:n,...a}=e,l=Ju(n);return r.jsx(g1,{...l,...a,ref:t})});eN.displayName=qY;var Rg="MenuSub",[HY,tN]=_i(Rg),nN=e=>{const{__scopeMenu:t,children:n,open:a=!1,onOpenChange:l}=e,o=Ll(Rg,t),c=Ju(t),[d,m]=w.useState(null),[f,p]=w.useState(null),x=gr(l);return w.useEffect(()=>(o.open===!1&&x(!1),()=>x(!1)),[o.open,x]),r.jsx(jm,{...c,children:r.jsx(F9,{scope:t,open:a,onOpenChange:x,content:f,onContentChange:p,children:r.jsx(HY,{scope:t,contentId:Ta(),triggerId:Ta(),trigger:d,onTriggerChange:m,children:n})})})};nN.displayName=Rg;var au="MenuSubTrigger",rN=w.forwardRef((e,t)=>{const n=Ll(au,e.__scopeMenu),a=ed(au,e.__scopeMenu),l=tN(au,e.__scopeMenu),o=Ag(au,e.__scopeMenu),c=w.useRef(null),{pointerGraceTimerRef:d,onPointerGraceIntentChange:m}=o,f={__scopeMenu:e.__scopeMenu},p=w.useCallback(()=>{c.current&&window.clearTimeout(c.current),c.current=null},[]);return w.useEffect(()=>p,[p]),w.useEffect(()=>{const x=d.current;return()=>{window.clearTimeout(x),m(null)}},[d,m]),r.jsx(Mg,{asChild:!0,...f,children:r.jsx(V9,{id:l.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":l.contentId,"data-state":lN(n.open),...e,ref:Nl(t,l.onTriggerChange),onClick:x=>{e.onClick?.(x),!(e.disabled||x.defaultPrevented)&&(x.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:Pe(e.onPointerMove,ku(x=>{o.onItemEnter(x),!x.defaultPrevented&&!e.disabled&&!n.open&&!c.current&&(o.onPointerGraceIntentChange(null),c.current=window.setTimeout(()=>{n.onOpenChange(!0),p()},100))})),onPointerLeave:Pe(e.onPointerLeave,ku(x=>{p();const y=n.content?.getBoundingClientRect();if(y){const b=n.content?.dataset.side,j=b==="right",k=j?-5:5,S=y[j?"left":"right"],_=y[j?"right":"left"];o.onPointerGraceIntentChange({area:[{x:x.clientX+k,y:x.clientY},{x:S,y:y.top},{x:_,y:y.top},{x:_,y:y.bottom},{x:S,y:y.bottom}],side:b}),window.clearTimeout(d.current),d.current=window.setTimeout(()=>o.onPointerGraceIntentChange(null),300)}else{if(o.onTriggerLeave(x),x.defaultPrevented)return;o.onPointerGraceIntentChange(null)}})),onKeyDown:Pe(e.onKeyDown,x=>{const y=o.searchRef.current!=="";e.disabled||y&&x.key===" "||NY[a.dir].includes(x.key)&&(n.onOpenChange(!0),n.content?.focus(),x.preventDefault())})})})});rN.displayName=au;var aN="MenuSubContent",sN=w.forwardRef((e,t)=>{const n=q9(_a,e.__scopeMenu),{forceMount:a=n.forceMount,...l}=e,o=Ll(_a,e.__scopeMenu),c=ed(_a,e.__scopeMenu),d=tN(aN,e.__scopeMenu),m=w.useRef(null),f=dn(t,m);return r.jsx(Su.Provider,{scope:e.__scopeMenu,children:r.jsx(Wr,{present:a||o.open,children:r.jsx(Su.Slot,{scope:e.__scopeMenu,children:r.jsx(Dg,{id:d.contentId,"aria-labelledby":d.triggerId,...l,ref:f,align:"start",side:c.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:p=>{c.isUsingKeyboardRef.current&&m.current?.focus(),p.preventDefault()},onCloseAutoFocus:p=>p.preventDefault(),onFocusOutside:Pe(e.onFocusOutside,p=>{p.target!==d.trigger&&o.onOpenChange(!1)}),onEscapeKeyDown:Pe(e.onEscapeKeyDown,p=>{c.onClose(),p.preventDefault()}),onKeyDown:Pe(e.onKeyDown,p=>{const x=p.currentTarget.contains(p.target),y=SY[c.dir].includes(p.key);x&&y&&(o.onOpenChange(!1),d.trigger?.focus(),p.preventDefault())})})})})})});sN.displayName=aN;function lN(e){return e?"open":"closed"}function gm(e){return e==="indeterminate"}function Bg(e){return gm(e)?"indeterminate":e?"checked":"unchecked"}function UY(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function $Y(e,t){return e.map((n,a)=>e[(t+a)%e.length])}function VY(e,t,n){const l=t.length>1&&Array.from(t).every(f=>f===t[0])?t[0]:t,o=n?e.indexOf(n):-1;let c=$Y(e,Math.max(o,0));l.length===1&&(c=c.filter(f=>f!==n));const m=c.find(f=>f.toLowerCase().startsWith(l.toLowerCase()));return m!==n?m:void 0}function GY(e,t){const{x:n,y:a}=e;let l=!1;for(let o=0,c=t.length-1;oa!=y>a&&n<(x-f)*(a-p)/(y-p)+f&&(l=!l)}return l}function YY(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return GY(n,t)}function ku(e){return t=>t.pointerType==="mouse"?e(t):void 0}var WY=I9,XY=Mg,KY=H9,QY=U9,ZY=zg,JY=$9,eW=Qm,tW=G9,nW=W9,rW=K9,aW=Z9,sW=J9,lW=eN,iW=nN,oW=rN,cW=sN,Lg="ContextMenu",[uW]=Ha(Lg,[L9]),Nr=L9(),[dW,iN]=uW(Lg),oN=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:a,dir:l,modal:o=!0}=e,[c,d]=w.useState(!1),m=Nr(t),f=gr(a),p=w.useCallback(x=>{d(x),f(x)},[f]);return r.jsx(dW,{scope:t,open:c,onOpenChange:p,modal:o,children:r.jsx(WY,{...m,dir:l,open:c,onOpenChange:p,modal:o,children:n})})};oN.displayName=Lg;var cN="ContextMenuTrigger",uN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,disabled:a=!1,...l}=e,o=iN(cN,n),c=Nr(n),d=w.useRef({x:0,y:0}),m=w.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...d.current})}),f=w.useRef(0),p=w.useCallback(()=>window.clearTimeout(f.current),[]),x=y=>{d.current={x:y.clientX,y:y.clientY},o.onOpenChange(!0)};return w.useEffect(()=>p,[p]),w.useEffect(()=>void(a&&p()),[a,p]),r.jsxs(r.Fragment,{children:[r.jsx(XY,{...c,virtualRef:m}),r.jsx(Ft.span,{"data-state":o.open?"open":"closed","data-disabled":a?"":void 0,...l,ref:t,style:{WebkitTouchCallout:"none",...e.style},onContextMenu:a?e.onContextMenu:Pe(e.onContextMenu,y=>{p(),x(y),y.preventDefault()}),onPointerDown:a?e.onPointerDown:Pe(e.onPointerDown,F0(y=>{p(),f.current=window.setTimeout(()=>x(y),700)})),onPointerMove:a?e.onPointerMove:Pe(e.onPointerMove,F0(p)),onPointerCancel:a?e.onPointerCancel:Pe(e.onPointerCancel,F0(p)),onPointerUp:a?e.onPointerUp:Pe(e.onPointerUp,F0(p))})]})});uN.displayName=cN;var mW="ContextMenuPortal",dN=e=>{const{__scopeContextMenu:t,...n}=e,a=Nr(t);return r.jsx(KY,{...a,...n})};dN.displayName=mW;var mN="ContextMenuContent",hN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=iN(mN,n),o=Nr(n),c=w.useRef(!1);return r.jsx(QY,{...o,...a,ref:t,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:d=>{e.onCloseAutoFocus?.(d),!d.defaultPrevented&&c.current&&d.preventDefault(),c.current=!1},onInteractOutside:d=>{e.onInteractOutside?.(d),!d.defaultPrevented&&!l.modal&&(c.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});hN.displayName=mN;var hW="ContextMenuGroup",fW=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(ZY,{...l,...a,ref:t})});fW.displayName=hW;var pW="ContextMenuLabel",fN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(JY,{...l,...a,ref:t})});fN.displayName=pW;var xW="ContextMenuItem",pN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(eW,{...l,...a,ref:t})});pN.displayName=xW;var gW="ContextMenuCheckboxItem",xN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(tW,{...l,...a,ref:t})});xN.displayName=gW;var vW="ContextMenuRadioGroup",yW=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(nW,{...l,...a,ref:t})});yW.displayName=vW;var bW="ContextMenuRadioItem",gN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(rW,{...l,...a,ref:t})});gN.displayName=bW;var wW="ContextMenuItemIndicator",vN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(aW,{...l,...a,ref:t})});vN.displayName=wW;var jW="ContextMenuSeparator",yN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(sW,{...l,...a,ref:t})});yN.displayName=jW;var NW="ContextMenuArrow",SW=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(lW,{...l,...a,ref:t})});SW.displayName=NW;var bN="ContextMenuSub",wN=e=>{const{__scopeContextMenu:t,children:n,onOpenChange:a,open:l,defaultOpen:o}=e,c=Nr(t),[d,m]=Dl({prop:l,defaultProp:o??!1,onChange:a,caller:bN});return r.jsx(iW,{...c,open:d,onOpenChange:m,children:n})};wN.displayName=bN;var kW="ContextMenuSubTrigger",jN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(oW,{...l,...a,ref:t})});jN.displayName=kW;var CW="ContextMenuSubContent",NN=w.forwardRef((e,t)=>{const{__scopeContextMenu:n,...a}=e,l=Nr(n);return r.jsx(cW,{...l,...a,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});NN.displayName=CW;function F0(e){return t=>t.pointerType!=="mouse"?e(t):void 0}var TW=oN,_W=uN,MW=dN,SN=hN,kN=fN,CN=pN,TN=xN,_N=gN,MN=vN,EN=yN,EW=wN,AN=jN,DN=NN;const AW=TW,DW=_W,zW=EW,zN=w.forwardRef(({className:e,inset:t,children:n,...a},l)=>r.jsxs(AN,{ref:l,className:me("flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",t&&"pl-8",e),...a,children:[n,r.jsx(yi,{className:"ml-auto h-4 w-4"})]}));zN.displayName=AN.displayName;const ON=w.forwardRef(({className:e,...t},n)=>r.jsx(DN,{ref:n,className:me("z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-[--radix-context-menu-content-transform-origin]",e),...t}));ON.displayName=DN.displayName;const RN=w.forwardRef(({className:e,...t},n)=>r.jsx(MW,{children:r.jsx(SN,{ref:n,className:me("z-50 max-h-[--radix-context-menu-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 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 origin-[--radix-context-menu-content-transform-origin]",e),...t})}));RN.displayName=SN.displayName;const Ba=w.forwardRef(({className:e,inset:t,...n},a)=>r.jsx(CN,{ref:a,className:me("relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t&&"pl-8",e),...n}));Ba.displayName=CN.displayName;const OW=w.forwardRef(({className:e,children:t,checked:n,...a},l)=>r.jsxs(TN,{ref:l,className:me("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),checked:n,...a,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(MN,{children:r.jsx(di,{className:"h-4 w-4"})})}),t]}));OW.displayName=TN.displayName;const RW=w.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(_N,{ref:a,className:me("relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[r.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(MN,{children:r.jsx(ST,{className:"h-2 w-2 fill-current"})})}),t]}));RW.displayName=_N.displayName;const BW=w.forwardRef(({className:e,inset:t,...n},a)=>r.jsx(kN,{ref:a,className:me("px-2 py-1.5 text-sm font-semibold text-foreground",t&&"pl-8",e),...n}));BW.displayName=kN.displayName;const su=w.forwardRef(({className:e,...t},n)=>r.jsx(EN,{ref:n,className:me("-mx-1 my-1 h-px bg-border",e),...t}));su.displayName=EN.displayName;const _o=({className:e,...t})=>r.jsx("span",{className:me("ml-auto text-xs tracking-widest text-muted-foreground",e),...t});_o.displayName="ContextMenuShortcut";var LW=Symbol("radix.slottable");function PW(e){const t=({children:n})=>r.jsx(r.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=LW,t}var[Zm]=Ha("Tooltip",[Uo]),Jm=Uo(),BN="TooltipProvider",FW=700,r1="tooltip.open",[IW,Pg]=Zm(BN),LN=e=>{const{__scopeTooltip:t,delayDuration:n=FW,skipDelayDuration:a=300,disableHoverableContent:l=!1,children:o}=e,c=w.useRef(!0),d=w.useRef(!1),m=w.useRef(0);return w.useEffect(()=>{const f=m.current;return()=>window.clearTimeout(f)},[]),r.jsx(IW,{scope:t,isOpenDelayedRef:c,delayDuration:n,onOpen:w.useCallback(()=>{window.clearTimeout(m.current),c.current=!1},[]),onClose:w.useCallback(()=>{window.clearTimeout(m.current),m.current=window.setTimeout(()=>c.current=!0,a)},[a]),isPointerInTransitRef:d,onPointerInTransitChange:w.useCallback(f=>{d.current=f},[]),disableHoverableContent:l,children:o})};LN.displayName=BN;var Cu="Tooltip",[qW,td]=Zm(Cu),PN=e=>{const{__scopeTooltip:t,children:n,open:a,defaultOpen:l,onOpenChange:o,disableHoverableContent:c,delayDuration:d}=e,m=Pg(Cu,e.__scopeTooltip),f=Jm(t),[p,x]=w.useState(null),y=Ta(),b=w.useRef(0),j=c??m.disableHoverableContent,k=d??m.delayDuration,S=w.useRef(!1),[_,M]=Dl({prop:a,defaultProp:l??!1,onChange:R=>{R?(m.onOpen(),document.dispatchEvent(new CustomEvent(r1))):m.onClose(),o?.(R)},caller:Cu}),D=w.useMemo(()=>_?S.current?"delayed-open":"instant-open":"closed",[_]),z=w.useCallback(()=>{window.clearTimeout(b.current),b.current=0,S.current=!1,M(!0)},[M]),L=w.useCallback(()=>{window.clearTimeout(b.current),b.current=0,M(!1)},[M]),E=w.useCallback(()=>{window.clearTimeout(b.current),b.current=window.setTimeout(()=>{S.current=!0,M(!0),b.current=0},k)},[k,M]);return w.useEffect(()=>()=>{b.current&&(window.clearTimeout(b.current),b.current=0)},[]),r.jsx(jm,{...f,children:r.jsx(qW,{scope:t,contentId:y,open:_,stateAttribute:D,trigger:p,onTriggerChange:x,onTriggerEnter:w.useCallback(()=>{m.isOpenDelayedRef.current?E():z()},[m.isOpenDelayedRef,E,z]),onTriggerLeave:w.useCallback(()=>{j?L():(window.clearTimeout(b.current),b.current=0)},[L,j]),onOpen:z,onClose:L,disableHoverableContent:j,children:n})})};PN.displayName=Cu;var a1="TooltipTrigger",FN=w.forwardRef((e,t)=>{const{__scopeTooltip:n,...a}=e,l=td(a1,n),o=Pg(a1,n),c=Jm(n),d=w.useRef(null),m=dn(t,d,l.onTriggerChange),f=w.useRef(!1),p=w.useRef(!1),x=w.useCallback(()=>f.current=!1,[]);return w.useEffect(()=>()=>document.removeEventListener("pointerup",x),[x]),r.jsx(Nm,{asChild:!0,...c,children:r.jsx(Ft.button,{"aria-describedby":l.open?l.contentId:void 0,"data-state":l.stateAttribute,...a,ref:m,onPointerMove:Pe(e.onPointerMove,y=>{y.pointerType!=="touch"&&!p.current&&!o.isPointerInTransitRef.current&&(l.onTriggerEnter(),p.current=!0)}),onPointerLeave:Pe(e.onPointerLeave,()=>{l.onTriggerLeave(),p.current=!1}),onPointerDown:Pe(e.onPointerDown,()=>{l.open&&l.onClose(),f.current=!0,document.addEventListener("pointerup",x,{once:!0})}),onFocus:Pe(e.onFocus,()=>{f.current||l.onOpen()}),onBlur:Pe(e.onBlur,l.onClose),onClick:Pe(e.onClick,l.onClose)})})});FN.displayName=a1;var Fg="TooltipPortal",[HW,UW]=Zm(Fg,{forceMount:void 0}),IN=e=>{const{__scopeTooltip:t,forceMount:n,children:a,container:l}=e,o=td(Fg,t);return r.jsx(HW,{scope:t,forceMount:n,children:r.jsx(Wr,{present:n||o.open,children:r.jsx(wm,{asChild:!0,container:l,children:a})})})};IN.displayName=Fg;var Ho="TooltipContent",qN=w.forwardRef((e,t)=>{const n=UW(Ho,e.__scopeTooltip),{forceMount:a=n.forceMount,side:l="top",...o}=e,c=td(Ho,e.__scopeTooltip);return r.jsx(Wr,{present:a||c.open,children:c.disableHoverableContent?r.jsx(HN,{side:l,...o,ref:t}):r.jsx($W,{side:l,...o,ref:t})})}),$W=w.forwardRef((e,t)=>{const n=td(Ho,e.__scopeTooltip),a=Pg(Ho,e.__scopeTooltip),l=w.useRef(null),o=dn(t,l),[c,d]=w.useState(null),{trigger:m,onClose:f}=n,p=l.current,{onPointerInTransitChange:x}=a,y=w.useCallback(()=>{d(null),x(!1)},[x]),b=w.useCallback((j,k)=>{const S=j.currentTarget,_={x:j.clientX,y:j.clientY},M=XW(_,S.getBoundingClientRect()),D=KW(_,M),z=QW(k.getBoundingClientRect()),L=JW([...D,...z]);d(L),x(!0)},[x]);return w.useEffect(()=>()=>y(),[y]),w.useEffect(()=>{if(m&&p){const j=S=>b(S,p),k=S=>b(S,m);return m.addEventListener("pointerleave",j),p.addEventListener("pointerleave",k),()=>{m.removeEventListener("pointerleave",j),p.removeEventListener("pointerleave",k)}}},[m,p,b,y]),w.useEffect(()=>{if(c){const j=k=>{const S=k.target,_={x:k.clientX,y:k.clientY},M=m?.contains(S)||p?.contains(S),D=!ZW(_,c);M?y():D&&(y(),f())};return document.addEventListener("pointermove",j),()=>document.removeEventListener("pointermove",j)}},[m,p,c,f,y]),r.jsx(HN,{...e,ref:o})}),[VW,GW]=Zm(Cu,{isInside:!1}),YW=PW("TooltipContent"),HN=w.forwardRef((e,t)=>{const{__scopeTooltip:n,children:a,"aria-label":l,onEscapeKeyDown:o,onPointerDownOutside:c,...d}=e,m=td(Ho,n),f=Jm(n),{onClose:p}=m;return w.useEffect(()=>(document.addEventListener(r1,p),()=>document.removeEventListener(r1,p)),[p]),w.useEffect(()=>{if(m.trigger){const x=y=>{y.target?.contains(m.trigger)&&p()};return window.addEventListener("scroll",x,{capture:!0}),()=>window.removeEventListener("scroll",x,{capture:!0})}},[m.trigger,p]),r.jsx(p1,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:c,onFocusOutside:x=>x.preventDefault(),onDismiss:p,children:r.jsxs(x1,{"data-state":m.stateAttribute,...f,...d,ref:t,style:{...d.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[r.jsx(YW,{children:a}),r.jsx(VW,{scope:n,isInside:!0,children:r.jsx(tT,{id:m.contentId,role:"tooltip",children:l||a})})]})})});qN.displayName=Ho;var UN="TooltipArrow",WW=w.forwardRef((e,t)=>{const{__scopeTooltip:n,...a}=e,l=Jm(n);return GW(UN,n).isInside?null:r.jsx(g1,{...l,...a,ref:t})});WW.displayName=UN;function XW(e,t){const n=Math.abs(t.top-e.y),a=Math.abs(t.bottom-e.y),l=Math.abs(t.right-e.x),o=Math.abs(t.left-e.x);switch(Math.min(n,a,l,o)){case o:return"left";case l:return"right";case n:return"top";case a:return"bottom";default:throw new Error("unreachable")}}function KW(e,t,n=5){const a=[];switch(t){case"top":a.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":a.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":a.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":a.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return a}function QW(e){const{top:t,right:n,bottom:a,left:l}=e;return[{x:l,y:t},{x:n,y:t},{x:n,y:a},{x:l,y:a}]}function ZW(e,t){const{x:n,y:a}=e;let l=!1;for(let o=0,c=t.length-1;oa!=y>a&&n<(x-f)*(a-p)/(y-p)+f&&(l=!l)}return l}function JW(e){const t=e.slice();return t.sort((n,a)=>n.xa.x?1:n.ya.y?1:0),eX(t)}function eX(e){if(e.length<=1)return e.slice();const t=[];for(let a=0;a=2;){const o=t[t.length-1],c=t[t.length-2];if((o.x-c.x)*(l.y-c.y)>=(o.y-c.y)*(l.x-c.x))t.pop();else break}t.push(l)}t.pop();const n=[];for(let a=e.length-1;a>=0;a--){const l=e[a];for(;n.length>=2;){const o=n[n.length-1],c=n[n.length-2];if((o.x-c.x)*(l.y-c.y)>=(o.y-c.y)*(l.x-c.x))n.pop();else break}n.push(l)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var tX=LN,nX=PN,rX=FN,aX=IN,$N=qN;const sX=tX,lX=nX,iX=rX,VN=w.forwardRef(({className:e,sideOffset:t=4,...n},a)=>r.jsx(aX,{children:r.jsx($N,{ref:a,sideOffset:t,className:me("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-[--radix-tooltip-content-transform-origin]",e),...n})}));VN.displayName=$N.displayName;function oX({children:e}){jA();const[t,n]=w.useState(!0),[a,l]=w.useState(!1),[o,c]=w.useState(!1),{theme:d,setTheme:m}=z1(),f=_C(),p=rs();w.useEffect(()=>{const k=S=>{(S.metaKey||S.ctrlKey)&&S.key==="k"&&(S.preventDefault(),c(!0))};return window.addEventListener("keydown",k),()=>window.removeEventListener("keydown",k)},[]);const x=[{title:"概览",items:[{icon:K0,label:"首页",path:"/"}]},{title:"麦麦配置编辑",items:[{icon:jl,label:"麦麦主程序配置",path:"/config/bot"},{icon:e6,label:"麦麦模型提供商配置",path:"/config/modelProvider"},{icon:t6,label:"麦麦模型配置",path:"/config/model"},{icon:Hy,label:"麦麦适配器配置",path:"/config/adapter"}]},{title:"麦麦资源管理",items:[{icon:v1,label:"表情包管理",path:"/resource/emoji"},{icon:_u,label:"表达方式管理",path:"/resource/expression"},{icon:n6,label:"人物信息管理",path:"/resource/person"}]},{title:"扩展与监控",items:[{icon:em,label:"插件市场",path:"/plugins"},{icon:Hy,label:"插件配置",path:"/plugin-config"},{icon:Q0,label:"日志查看器",path:"/logs"}]},{title:"系统",items:[{icon:Pa,label:"系统设置",path:"/settings"}]}],b=d==="system"?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":d,j=()=>{localStorage.removeItem("access-token"),p({to:"/auth"})};return r.jsx(sX,{delayDuration:300,children:r.jsxs("div",{className:"flex h-screen overflow-hidden",children:[r.jsxs("aside",{className:me("fixed inset-y-0 left-0 z-50 flex flex-col border-r bg-card transition-all duration-300 lg:relative lg:z-0","w-64 lg:w-auto",t?"lg:w-64":"lg:w-16",a?"translate-x-0":"-translate-x-full lg:translate-x-0"),children:[r.jsx("div",{className:"flex h-16 items-center border-b px-4",children:r.jsxs("div",{className:me("relative flex items-center justify-center flex-1 transition-all overflow-hidden","lg:flex-1",!t&&"lg:flex-none lg:w-8"),children:[r.jsxs("div",{className:me("flex items-baseline gap-2",!t&&"lg:hidden"),children:[r.jsx("span",{className:"font-bold text-xl text-primary-gradient whitespace-nowrap",children:"MaiBot WebUI"}),r.jsx("span",{className:"text-xs text-primary/60 whitespace-nowrap",children:ZE()})]}),!t&&r.jsx("span",{className:"hidden lg:block font-bold text-primary-gradient text-2xl",children:"M"})]})}),r.jsx("nav",{className:"flex-1 overflow-y-auto p-4",children:r.jsx("ul",{className:me("space-y-6",!t&&"lg:space-y-3"),children:x.map((k,S)=>r.jsxs("li",{children:[r.jsx("div",{className:me("px-3 h-[1.25rem]","mb-2",!t&&"lg:mb-1 lg:invisible"),children:r.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wider text-muted-foreground/60 whitespace-nowrap",children:k.title})}),!t&&S>0&&r.jsx("div",{className:"hidden lg:block mb-2 border-t border-border"}),r.jsx("ul",{className:"space-y-1",children:k.items.map(_=>{const M=f({to:_.path}),D=_.icon,z=r.jsxs(r.Fragment,{children:[M&&r.jsx("div",{className:"absolute left-0 top-1/2 h-8 w-1 -translate-y-1/2 rounded-r-full bg-primary transition-opacity duration-300"}),r.jsxs("div",{className:me("flex items-center transition-all duration-300",t?"gap-3":"lg:gap-0"),children:[r.jsx(D,{className:me("h-5 w-5 flex-shrink-0",M&&"text-primary"),strokeWidth:2,fill:"none"}),r.jsx("span",{className:me("text-sm font-medium whitespace-nowrap transition-all duration-300",M&&"font-semibold",t?"opacity-100 max-w-[200px]":"lg:opacity-0 lg:max-w-0 lg:overflow-hidden"),children:_.label})]})]});return r.jsx("li",{className:"relative",children:r.jsxs(lX,{children:[r.jsx(iX,{asChild:!0,children:r.jsx(MC,{to:_.path,className:me("relative flex items-center rounded-lg py-2 transition-all duration-300","hover:bg-accent hover:text-accent-foreground",M?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground",t?"px-3":"lg:px-0 lg:justify-center"),onClick:()=>l(!1),children:z})}),!t&&r.jsx(VN,{side:"right",className:"hidden lg:block",children:r.jsx("p",{children:_.label})})]})},_.path)})})]},k.title))})})]}),a&&r.jsx("div",{className:"fixed inset-0 z-40 bg-black/50 lg:hidden",onClick:()=>l(!1)}),r.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r.jsxs("header",{className:"flex h-16 items-center justify-between border-b bg-card/80 backdrop-blur-md px-4 sticky top-0 z-10",children:[r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsx("button",{onClick:()=>l(!a),className:"rounded-lg p-2 hover:bg-accent lg:hidden",children:r.jsx(kT,{className:"h-5 w-5"})}),r.jsx("button",{onClick:()=>n(!t),className:"hidden rounded-lg p-2 hover:bg-accent lg:block",title:t?"收起侧边栏":"展开侧边栏",children:r.jsx(vi,{className:me("h-5 w-5 transition-transform",!t&&"rotate-180")})})]}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsxs("button",{onClick:()=>c(!0),className:"relative hidden md:flex items-center w-64 h-9 pl-9 pr-16 bg-background/50 border rounded-md hover:bg-accent/50 transition-colors text-left",children:[r.jsx(Gr,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),r.jsx("span",{className:"text-sm text-muted-foreground",children:"搜索..."}),r.jsxs(R9,{size:"sm",className:"absolute right-2 top-1/2 -translate-y-1/2",children:[r.jsx("span",{className:"text-xs",children:"⌘"}),"K"]})]}),r.jsx(fY,{open:o,onOpenChange:c}),r.jsxs(re,{variant:"ghost",size:"sm",onClick:()=>window.open("https://docs.mai-mai.org","_blank"),className:"gap-2",title:"查看麦麦文档",children:[r.jsx(CT,{className:"h-4 w-4"}),r.jsx("span",{className:"hidden sm:inline",children:"麦麦文档"})]}),r.jsx("button",{onClick:k=>{LE(b==="dark"?"light":"dark",m,k)},className:"rounded-lg p-2 hover:bg-accent",title:b==="dark"?"切换到浅色模式":"切换到深色模式",children:b==="dark"?r.jsx(xx,{className:"h-5 w-5"}):r.jsx(gx,{className:"h-5 w-5"})}),r.jsx("div",{className:"h-6 w-px bg-border"}),r.jsxs(re,{variant:"ghost",size:"sm",onClick:j,className:"gap-2",title:"登出系统",children:[r.jsx(Uy,{className:"h-4 w-4"}),r.jsx("span",{className:"hidden sm:inline",children:"登出"})]})]})]}),r.jsxs(AW,{children:[r.jsx(DW,{asChild:!0,children:r.jsx("main",{className:"flex-1 overflow-hidden bg-background",children:e})}),r.jsxs(RN,{className:"w-64",children:[r.jsxs(Ba,{onClick:()=>p({to:"/"}),children:[r.jsx(K0,{className:"mr-2 h-4 w-4"}),"首页"]}),r.jsxs(Ba,{onClick:()=>p({to:"/settings"}),children:[r.jsx(Pa,{className:"mr-2 h-4 w-4"}),"系统设置"]}),r.jsxs(Ba,{onClick:()=>p({to:"/logs"}),children:[r.jsx(Q0,{className:"mr-2 h-4 w-4"}),"日志查看器"]}),r.jsx(su,{}),r.jsxs(zW,{children:[r.jsxs(zN,{children:[r.jsx(Q5,{className:"mr-2 h-4 w-4"}),"切换主题"]}),r.jsxs(ON,{className:"w-48",children:[r.jsxs(Ba,{onClick:()=>m("light"),disabled:d==="light",children:[r.jsx(xx,{className:"mr-2 h-4 w-4"}),"浅色",d==="light"&&r.jsx(_o,{children:"✓"})]}),r.jsxs(Ba,{onClick:()=>m("dark"),disabled:d==="dark",children:[r.jsx(gx,{className:"mr-2 h-4 w-4"}),"深色",d==="dark"&&r.jsx(_o,{children:"✓"})]}),r.jsxs(Ba,{onClick:()=>m("system"),disabled:d==="system",children:[r.jsx(Pa,{className:"mr-2 h-4 w-4"}),"跟随系统",d==="system"&&r.jsx(_o,{children:"✓"})]})]})]}),r.jsx(su,{}),r.jsxs(Ba,{onClick:()=>window.location.reload(),children:[r.jsx(TT,{className:"mr-2 h-4 w-4"}),"刷新页面",r.jsx(_o,{children:"⌘R"})]}),r.jsxs(Ba,{onClick:()=>c(!0),children:[r.jsx(Gr,{className:"mr-2 h-4 w-4"}),"搜索",r.jsx(_o,{children:"⌘K"})]}),r.jsx(su,{}),r.jsxs(Ba,{onClick:()=>window.open("https://docs.mai-mai.org","_blank"),children:[r.jsx(lu,{className:"mr-2 h-4 w-4"}),"麦麦文档"]}),r.jsx(su,{}),r.jsxs(Ba,{onClick:j,className:"text-destructive focus:text-destructive",children:[r.jsx(Uy,{className:"mr-2 h-4 w-4"}),"登出系统"]})]})]})]})]})})}const nd=EC({component:()=>r.jsxs(r.Fragment,{children:[r.jsx(_5,{}),!1]}),beforeLoad:()=>{if(window.location.pathname==="/"&&!l7())throw DC({to:"/auth"})}}),cX=fr({getParentRoute:()=>nd,path:"/auth",component:NA}),uX=fr({getParentRoute:()=>nd,path:"/setup",component:HA}),Zr=fr({getParentRoute:()=>nd,id:"protected",component:()=>r.jsx(oX,{children:r.jsx(_5,{})})}),dX=fr({getParentRoute:()=>Zr,path:"/",component:RE}),mX=fr({getParentRoute:()=>Zr,path:"/config/bot",component:zD}),hX=fr({getParentRoute:()=>Zr,path:"/config/modelProvider",component:XD}),fX=fr({getParentRoute:()=>Zr,path:"/config/model",component:Nz}),pX=fr({getParentRoute:()=>Zr,path:"/config/adapter",component:Sz}),xX=fr({getParentRoute:()=>Zr,path:"/resource/emoji",component:WH}),gX=fr({getParentRoute:()=>Zr,path:"/resource/expression",component:aU}),vX=fr({getParentRoute:()=>Zr,path:"/resource/person",component:pU}),yX=fr({getParentRoute:()=>Zr,path:"/logs",component:KG}),bX=fr({getParentRoute:()=>Zr,path:"/plugins",component:cY}),wX=fr({getParentRoute:()=>Zr,path:"/plugin-config",component:uY}),jX=fr({getParentRoute:()=>Zr,path:"/plugin-mirrors",component:dY}),NX=fr({getParentRoute:()=>Zr,path:"/settings",component:pA}),SX=fr({getParentRoute:()=>nd,path:"*",component:c7}),kX=nd.addChildren([cX,uX,Zr.addChildren([dX,mX,hX,fX,pX,xX,gX,vX,bX,wX,jX,yX,NX]),SX]),CX=AC({routeTree:kX,defaultNotFoundComponent:c7});function TX({children:e,defaultTheme:t="system",storageKey:n="ui-theme",...a}){const[l,o]=w.useState(()=>localStorage.getItem(n)||t);w.useEffect(()=>{const d=window.document.documentElement;if(d.classList.remove("light","dark"),l==="system"){const m=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";d.classList.add(m);return}d.classList.add(l)},[l]),w.useEffect(()=>{const d=localStorage.getItem("accent-color");if(d){const m=document.documentElement,p={blue:{hsl:"221.2 83.2% 53.3%",darkHsl:"217.2 91.2% 59.8%",gradient:null},purple:{hsl:"271 91% 65%",darkHsl:"270 95% 75%",gradient:null},green:{hsl:"142 71% 45%",darkHsl:"142 76% 36%",gradient:null},orange:{hsl:"25 95% 53%",darkHsl:"20 90% 48%",gradient:null},pink:{hsl:"330 81% 60%",darkHsl:"330 85% 70%",gradient:null},red:{hsl:"0 84% 60%",darkHsl:"0 90% 70%",gradient:null},"gradient-sunset":{hsl:"15 95% 60%",darkHsl:"15 95% 65%",gradient:"linear-gradient(135deg, hsl(25 95% 53%) 0%, hsl(330 81% 60%) 100%)"},"gradient-ocean":{hsl:"200 90% 55%",darkHsl:"200 90% 60%",gradient:"linear-gradient(135deg, hsl(221.2 83.2% 53.3%) 0%, hsl(189 94% 43%) 100%)"},"gradient-forest":{hsl:"150 70% 45%",darkHsl:"150 75% 40%",gradient:"linear-gradient(135deg, hsl(142 71% 45%) 0%, hsl(158 64% 52%) 100%)"},"gradient-aurora":{hsl:"310 85% 65%",darkHsl:"310 90% 70%",gradient:"linear-gradient(135deg, hsl(271 91% 65%) 0%, hsl(330 81% 60%) 100%)"},"gradient-fire":{hsl:"15 95% 55%",darkHsl:"15 95% 60%",gradient:"linear-gradient(135deg, hsl(0 84% 60%) 0%, hsl(25 95% 53%) 100%)"},"gradient-twilight":{hsl:"250 90% 60%",darkHsl:"250 95% 65%",gradient:"linear-gradient(135deg, hsl(239 84% 67%) 0%, hsl(271 91% 65%) 100%)"}}[d];p&&(m.style.setProperty("--primary",p.hsl),p.gradient?(m.style.setProperty("--primary-gradient",p.gradient),m.classList.add("has-gradient")):(m.style.removeProperty("--primary-gradient"),m.classList.remove("has-gradient")))}},[]);const c={theme:l,setTheme:d=>{localStorage.setItem(n,d),o(d)}};return r.jsx(Mw.Provider,{...a,value:c,children:e})}function _X({children:e,defaultEnabled:t=!0,defaultWavesEnabled:n=!0,storageKey:a="enable-animations",wavesStorageKey:l="enable-waves-background"}){const[o,c]=w.useState(()=>{const p=localStorage.getItem(a);return p!==null?p==="true":t}),[d,m]=w.useState(()=>{const p=localStorage.getItem(l);return p!==null?p==="true":n});w.useEffect(()=>{const p=document.documentElement;o?p.classList.remove("no-animations"):p.classList.add("no-animations"),localStorage.setItem(a,String(o))},[o,a]),w.useEffect(()=>{localStorage.setItem(l,String(d))},[d,l]);const f={enableAnimations:o,setEnableAnimations:c,enableWavesBackground:d,setEnableWavesBackground:m};return r.jsx(Ew.Provider,{value:f,children:e})}var Ig="ToastProvider",[qg,MX,EX]=vm("Toast"),[GN]=Ha("Toast",[EX]),[AX,eh]=GN(Ig),YN=e=>{const{__scopeToast:t,label:n="Notification",duration:a=5e3,swipeDirection:l="right",swipeThreshold:o=50,children:c}=e,[d,m]=w.useState(null),[f,p]=w.useState(0),x=w.useRef(!1),y=w.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${Ig}\`. Expected non-empty \`string\`.`),r.jsx(qg.Provider,{scope:t,children:r.jsx(AX,{scope:t,label:n,duration:a,swipeDirection:l,swipeThreshold:o,toastCount:f,viewport:d,onViewportChange:m,onToastAdd:w.useCallback(()=>p(b=>b+1),[]),onToastRemove:w.useCallback(()=>p(b=>b-1),[]),isFocusedToastEscapeKeyDownRef:x,isClosePausedRef:y,children:c})})};YN.displayName=Ig;var WN="ToastViewport",DX=["F8"],s1="toast.viewportPause",l1="toast.viewportResume",XN=w.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:a=DX,label:l="Notifications ({hotkey})",...o}=e,c=eh(WN,n),d=MX(n),m=w.useRef(null),f=w.useRef(null),p=w.useRef(null),x=w.useRef(null),y=dn(t,x,c.onViewportChange),b=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=c.toastCount>0;w.useEffect(()=>{const S=_=>{a.length!==0&&a.every(D=>_[D]||_.code===D)&&x.current?.focus()};return document.addEventListener("keydown",S),()=>document.removeEventListener("keydown",S)},[a]),w.useEffect(()=>{const S=m.current,_=x.current;if(j&&S&&_){const M=()=>{if(!c.isClosePausedRef.current){const E=new CustomEvent(s1);_.dispatchEvent(E),c.isClosePausedRef.current=!0}},D=()=>{if(c.isClosePausedRef.current){const E=new CustomEvent(l1);_.dispatchEvent(E),c.isClosePausedRef.current=!1}},z=E=>{!S.contains(E.relatedTarget)&&D()},L=()=>{S.contains(document.activeElement)||D()};return S.addEventListener("focusin",M),S.addEventListener("focusout",z),S.addEventListener("pointermove",M),S.addEventListener("pointerleave",L),window.addEventListener("blur",M),window.addEventListener("focus",D),()=>{S.removeEventListener("focusin",M),S.removeEventListener("focusout",z),S.removeEventListener("pointermove",M),S.removeEventListener("pointerleave",L),window.removeEventListener("blur",M),window.removeEventListener("focus",D)}}},[j,c.isClosePausedRef]);const k=w.useCallback(({tabbingDirection:S})=>{const M=d().map(D=>{const z=D.ref.current,L=[z,...VX(z)];return S==="forwards"?L:L.reverse()});return(S==="forwards"?M.reverse():M).flat()},[d]);return w.useEffect(()=>{const S=x.current;if(S){const _=M=>{const D=M.altKey||M.ctrlKey||M.metaKey;if(M.key==="Tab"&&!D){const L=document.activeElement,E=M.shiftKey;if(M.target===S&&E){f.current?.focus();return}const $=k({tabbingDirection:E?"backwards":"forwards"}),I=$.findIndex(G=>G===L);mx($.slice(I+1))?M.preventDefault():E?f.current?.focus():p.current?.focus()}};return S.addEventListener("keydown",_),()=>S.removeEventListener("keydown",_)}},[d,k]),r.jsxs(nT,{ref:m,role:"region","aria-label":l.replace("{hotkey}",b),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&r.jsx(i1,{ref:f,onFocusFromOutsideViewport:()=>{const S=k({tabbingDirection:"forwards"});mx(S)}}),r.jsx(qg.Slot,{scope:n,children:r.jsx(Ft.ol,{tabIndex:-1,...o,ref:y})}),j&&r.jsx(i1,{ref:p,onFocusFromOutsideViewport:()=>{const S=k({tabbingDirection:"backwards"});mx(S)}})]})});XN.displayName=WN;var KN="ToastFocusProxy",i1=w.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:a,...l}=e,o=eh(KN,n);return r.jsx(K5,{tabIndex:0,...l,ref:t,style:{position:"fixed"},onFocus:c=>{const d=c.relatedTarget;!o.viewport?.contains(d)&&a()}})});i1.displayName=KN;var rd="Toast",zX="toast.swipeStart",OX="toast.swipeMove",RX="toast.swipeCancel",BX="toast.swipeEnd",QN=w.forwardRef((e,t)=>{const{forceMount:n,open:a,defaultOpen:l,onOpenChange:o,...c}=e,[d,m]=Dl({prop:a,defaultProp:l??!0,onChange:o,caller:rd});return r.jsx(Wr,{present:n||d,children:r.jsx(FX,{open:d,...c,ref:t,onClose:()=>m(!1),onPause:gr(e.onPause),onResume:gr(e.onResume),onSwipeStart:Pe(e.onSwipeStart,f=>{f.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Pe(e.onSwipeMove,f=>{const{x:p,y:x}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","move"),f.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${p}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${x}px`)}),onSwipeCancel:Pe(e.onSwipeCancel,f=>{f.currentTarget.setAttribute("data-swipe","cancel"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Pe(e.onSwipeEnd,f=>{const{x:p,y:x}=f.detail.delta;f.currentTarget.setAttribute("data-swipe","end"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),f.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),f.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${p}px`),f.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${x}px`),m(!1)})})})});QN.displayName=rd;var[LX,PX]=GN(rd,{onClose(){}}),FX=w.forwardRef((e,t)=>{const{__scopeToast:n,type:a="foreground",duration:l,open:o,onClose:c,onEscapeKeyDown:d,onPause:m,onResume:f,onSwipeStart:p,onSwipeMove:x,onSwipeCancel:y,onSwipeEnd:b,...j}=e,k=eh(rd,n),[S,_]=w.useState(null),M=dn(t,J=>_(J)),D=w.useRef(null),z=w.useRef(null),L=l||k.duration,E=w.useRef(0),R=w.useRef(L),H=w.useRef(0),{onToastAdd:$,onToastRemove:I}=k,G=gr(()=>{S?.contains(document.activeElement)&&k.viewport?.focus(),c()}),te=w.useCallback(J=>{!J||J===1/0||(window.clearTimeout(H.current),E.current=new Date().getTime(),H.current=window.setTimeout(G,J))},[G]);w.useEffect(()=>{const J=k.viewport;if(J){const ae=()=>{te(R.current),f?.()},U=()=>{const q=new Date().getTime()-E.current;R.current=R.current-q,window.clearTimeout(H.current),m?.()};return J.addEventListener(s1,U),J.addEventListener(l1,ae),()=>{J.removeEventListener(s1,U),J.removeEventListener(l1,ae)}}},[k.viewport,L,m,f,te]),w.useEffect(()=>{o&&!k.isClosePausedRef.current&&te(L)},[o,L,k.isClosePausedRef,te]),w.useEffect(()=>($(),()=>I()),[$,I]);const we=w.useMemo(()=>S?aS(S):null,[S]);return k.viewport?r.jsxs(r.Fragment,{children:[we&&r.jsx(IX,{__scopeToast:n,role:"status","aria-live":a==="foreground"?"assertive":"polite",children:we}),r.jsx(LX,{scope:n,onClose:G,children:zC.createPortal(r.jsx(qg.ItemSlot,{scope:n,children:r.jsx(rT,{asChild:!0,onEscapeKeyDown:Pe(d,()=>{k.isFocusedToastEscapeKeyDownRef.current||G(),k.isFocusedToastEscapeKeyDownRef.current=!1}),children:r.jsx(Ft.li,{tabIndex:0,"data-state":o?"open":"closed","data-swipe-direction":k.swipeDirection,...j,ref:M,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Pe(e.onKeyDown,J=>{J.key==="Escape"&&(d?.(J.nativeEvent),J.nativeEvent.defaultPrevented||(k.isFocusedToastEscapeKeyDownRef.current=!0,G()))}),onPointerDown:Pe(e.onPointerDown,J=>{J.button===0&&(D.current={x:J.clientX,y:J.clientY})}),onPointerMove:Pe(e.onPointerMove,J=>{if(!D.current)return;const ae=J.clientX-D.current.x,U=J.clientY-D.current.y,q=!!z.current,W=["left","right"].includes(k.swipeDirection),oe=["left","up"].includes(k.swipeDirection)?Math.min:Math.max,P=W?oe(0,ae):0,je=W?0:oe(0,U),Z=J.pointerType==="touch"?10:2,O={x:P,y:je},Ne={originalEvent:J,delta:O};q?(z.current=O,I0(OX,x,Ne,{discrete:!1})):T5(O,k.swipeDirection,Z)?(z.current=O,I0(zX,p,Ne,{discrete:!1}),J.target.setPointerCapture(J.pointerId)):(Math.abs(ae)>Z||Math.abs(U)>Z)&&(D.current=null)}),onPointerUp:Pe(e.onPointerUp,J=>{const ae=z.current,U=J.target;if(U.hasPointerCapture(J.pointerId)&&U.releasePointerCapture(J.pointerId),z.current=null,D.current=null,ae){const q=J.currentTarget,W={originalEvent:J,delta:ae};T5(ae,k.swipeDirection,k.swipeThreshold)?I0(BX,b,W,{discrete:!0}):I0(RX,y,W,{discrete:!0}),q.addEventListener("click",oe=>oe.preventDefault(),{once:!0})}})})})}),k.viewport)})]}):null}),IX=e=>{const{__scopeToast:t,children:n,...a}=e,l=eh(rd,t),[o,c]=w.useState(!1),[d,m]=w.useState(!1);return UX(()=>c(!0)),w.useEffect(()=>{const f=window.setTimeout(()=>m(!0),1e3);return()=>window.clearTimeout(f)},[]),d?null:r.jsx(wm,{asChild:!0,children:r.jsx(K5,{...a,children:o&&r.jsxs(r.Fragment,{children:[l.label," ",n]})})})},qX="ToastTitle",ZN=w.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e;return r.jsx(Ft.div,{...a,ref:t})});ZN.displayName=qX;var HX="ToastDescription",JN=w.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e;return r.jsx(Ft.div,{...a,ref:t})});JN.displayName=HX;var eS="ToastAction",tS=w.forwardRef((e,t)=>{const{altText:n,...a}=e;return n.trim()?r.jsx(rS,{altText:n,asChild:!0,children:r.jsx(Hg,{...a,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${eS}\`. Expected non-empty \`string\`.`),null)});tS.displayName=eS;var nS="ToastClose",Hg=w.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e,l=PX(nS,n);return r.jsx(rS,{asChild:!0,children:r.jsx(Ft.button,{type:"button",...a,ref:t,onClick:Pe(e.onClick,l.onClose)})})});Hg.displayName=nS;var rS=w.forwardRef((e,t)=>{const{__scopeToast:n,altText:a,...l}=e;return r.jsx(Ft.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":a||void 0,...l,ref:t})});function aS(e){const t=[];return Array.from(e.childNodes).forEach(a=>{if(a.nodeType===a.TEXT_NODE&&a.textContent&&t.push(a.textContent),$X(a)){const l=a.ariaHidden||a.hidden||a.style.display==="none",o=a.dataset.radixToastAnnounceExclude==="";if(!l)if(o){const c=a.dataset.radixToastAnnounceAlt;c&&t.push(c)}else t.push(...aS(a))}}),t}function I0(e,t,n,{discrete:a}){const l=n.originalEvent.currentTarget,o=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&l.addEventListener(e,t,{once:!0}),a?X5(l,o):l.dispatchEvent(o)}var T5=(e,t,n=0)=>{const a=Math.abs(e.x),l=Math.abs(e.y),o=a>l;return t==="left"||t==="right"?o&&a>n:!o&&l>n};function UX(e=()=>{}){const t=gr(e);A5(()=>{let n=0,a=0;return n=window.requestAnimationFrame(()=>a=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(a)}},[t])}function $X(e){return e.nodeType===e.ELEMENT_NODE}function VX(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const l=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||l?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function mx(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var GX=YN,sS=XN,lS=QN,iS=ZN,oS=JN,cS=tS,uS=Hg;const YX=GX,dS=w.forwardRef(({className:e,...t},n)=>r.jsx(sS,{ref:n,className:me("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));dS.displayName=sS.displayName;const WX=Wo("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),mS=w.forwardRef(({className:e,variant:t,...n},a)=>r.jsx(lS,{ref:a,className:me(WX({variant:t}),e),...n}));mS.displayName=lS.displayName;const XX=w.forwardRef(({className:e,...t},n)=>r.jsx(cS,{ref:n,className:me("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));XX.displayName=cS.displayName;const hS=w.forwardRef(({className:e,...t},n)=>r.jsx(uS,{ref:n,className:me("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:r.jsx(Mu,{className:"h-4 w-4"})}));hS.displayName=uS.displayName;const fS=w.forwardRef(({className:e,...t},n)=>r.jsx(iS,{ref:n,className:me("text-sm font-semibold [&+div]:text-xs",e),...t}));fS.displayName=iS.displayName;const pS=w.forwardRef(({className:e,...t},n)=>r.jsx(oS,{ref:n,className:me("text-sm opacity-90",e),...t}));pS.displayName=oS.displayName;function KX(){const{toasts:e}=pr();return r.jsxs(YX,{children:[e.map(function({id:t,title:n,description:a,action:l,...o}){return r.jsxs(mS,{...o,children:[r.jsxs("div",{className:"grid gap-1",children:[n&&r.jsx(fS,{children:n}),a&&r.jsx(pS,{children:a})]}),l,r.jsx(hS,{})]},t)}),r.jsx(dS,{})]})}DT.createRoot(document.getElementById("root")).render(r.jsx(w.StrictMode,{children:r.jsx(TX,{defaultTheme:"system",children:r.jsxs(_X,{children:[r.jsx(OC,{router:CX}),r.jsx(KX,{})]})})})); diff --git a/webui/dist/index.html b/webui/dist/index.html index cbf594de..379c953d 100644 --- a/webui/dist/index.html +++ b/webui/dist/index.html @@ -5,13 +5,13 @@ MaiBot Dashboard - + - - + +